{"id":20468,"date":"2026-08-09T08:33:19","date_gmt":"2026-08-09T06:33:19","guid":{"rendered":"https:\/\/webhosting.de\/per-site-cagefs-shared-hosting-sicherheit-architektur\/"},"modified":"2026-08-09T08:33:19","modified_gmt":"2026-08-09T06:33:19","slug":"per-webbplats-cagefs-delad-hosting-saekerhet-arkitektur","status":"publish","type":"post","link":"https:\/\/webhosting.de\/sv\/per-site-cagefs-shared-hosting-sicherheit-architektur\/","title":{"rendered":"Per-Site CageFS: Ny s\u00e4kerhetsarkitektur f\u00f6r delad hosting"},"content":{"rendered":"<p><strong>CageFS per webbplats<\/strong> separerar enskilda webbplatser inom ett delat webbhotellskonto strikt fr\u00e5n varandra och begr\u00e4nsar d\u00e4rmed risken f\u00f6r sidleds spridning efter ett intr\u00e5ng. Jag redog\u00f6r f\u00f6r den nya s\u00e4kerhetsarkitekturen, visar praktiska anv\u00e4ndningsscenarier och f\u00f6rklarar hur du med hj\u00e4lp av den kan driva flera projekt s\u00e4kert inom ett och samma konto.<\/p>\n\n<h2>Centrala punkter<\/h2>\n\n<ul>\n  <li><strong>Webbplatsisolering<\/strong>: Ytterligare uppdelning inom ett konto minskar sidorisker.<\/li>\n  <li><strong>CloudLinux<\/strong>: Utvidgning av CageFS-konceptet till dom\u00e4nniv\u00e5.<\/li>\n  <li><strong>WordPress<\/strong>: Driva flera instanser s\u00e4kert parallellt.<\/li>\n  <li><strong>Resurser<\/strong>: Begr\u00e4nsningar f\u00f6r CPU\/RAM\/I\/O kompletterar uppdelningen av filvyer.<\/li>\n  <li><strong>\u00d6vning<\/strong>: Aktivering per dom\u00e4n och en tydlig strategi f\u00f6r beh\u00f6righeter och s\u00f6kv\u00e4gar.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/sicherheitsserverraum-8432.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Vad \u201ePer-Site CageFS\u201c konkret kan g\u00f6ra<\/h2>\n\n<p>Utvidgningen isolerar enskilda <strong>Dom\u00e4ner<\/strong> inom ett befintligt anv\u00e4ndar-CageFS, s\u00e5 att varje webbplats endast ser sina egna filer och processer. P\u00e5 s\u00e5 s\u00e4tt f\u00f6rhindrar jag att ett komprometterat projekt kommer \u00e5t konfigurationsfiler, uppladdningar eller nycklar fr\u00e5n andra webbplatser i samma konto. Enligt <strong>CloudLinux<\/strong> Blogg (beta-tillk\u00e4nnagivande): Per-Site CageFS ut\u00f6kar isoleringen mellan webbplatser inom samma anv\u00e4ndarkonto och minskar d\u00e4rmed risken f\u00f6r sidledsr\u00f6relser. F\u00f6r mig \u00e4r f\u00f6rdelarna uppenbara: jag kan tydligt segmentera byr\u00e5konton, multisite-installationer och testmilj\u00f6er utan att st\u00f6ra hostingstrukturen. Denna bakgrundsinformation ger en snabb \u00f6versikt \u00f6ver principen bakom CageFS: <a href=\"https:\/\/webhosting.de\/sv\/cloudlinux-cagefs-filsystem-isolering-saekerhet-hostingshield\/\">CageFS-filsystemet<\/a>, som utg\u00f6r grunden f\u00f6r isoleringen per webbplats.<\/p>\n\n<h2>Varf\u00f6r det inte r\u00e4cker med enbart kontoisolering<\/h2>\n\n<p>Ett konto samlar ofta flera <strong>Projekt<\/strong> \u2013 ungef\u00e4r tv\u00e5 webbutiker, tre bloggar och en staging-milj\u00f6. Om en exploit angriper ett s\u00e5rbart plugin kan en angripare, utan ytterligare segmentering, f\u00e5 tillg\u00e5ng till angr\u00e4nsande kataloger och placera ytterligare payloads d\u00e4r. Det \u00e4r just h\u00e4r som Per-Site CageFS avsk\u00e4rmar \u00e5tkomsten till filsystemet och processerna s\u00e5 att varje webbplats fungerar som om den befann sig i en egen <strong>F\u00e4ngelse<\/strong> fungerar. S\u00e4rskilt vid separata WordPress-instanser med gemensam PHP-anv\u00e4ndare uppst\u00e5r annars en risk f\u00f6r eskaleringar, som jag eliminerar genom dom\u00e4nisolering. Detta minskar f\u00f6ljdskador, f\u00f6renklar fels\u00f6kningen och g\u00f6r det enklare att planera \u00e5terst\u00e4llningar.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/sicherheitskonferenz_8765.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>S\u00e5 h\u00e4r fungerar webbplatsisolering rent tekniskt<\/h2>\n\n<p>CloudLinux skapar med hj\u00e4lp av CageFS en virtuell, anv\u00e4ndarspecifik <strong>filsystem<\/strong>; Per-Site-lagret ut\u00f6kar detta till att omfatta dom\u00e4ngr\u00e4nser. Varje aktiverad dom\u00e4n tilldelas ett separat visningsomr\u00e5de inom anv\u00e4ndarens CageFS, inklusive begr\u00e4nsade s\u00f6kv\u00e4gar, egna tempor\u00e4ra kataloger och isolerad skriptexekvering. D\u00e4rigenom f\u00f6rsvinner fr\u00e4mmande wp-config.php-filer, uppladdningsmappar eller nyckelfiler ur den angripna webbplatsens synf\u00e4lt. Cron-jobb, PHP och eventuellt SSH-kommandon anv\u00e4nder samma systembibliotek, men ser endast de tilldelade <strong>Delm\u00e4ngder<\/strong> i filsystemet. Enligt dokumentationen g\u00e5r det att aktivera eller inaktivera separationen per dom\u00e4n, vilket ger mig m\u00f6jlighet till detaljerad styrning av live-, staging- och testinstanser.<\/p>\n\n<h2>J\u00e4mf\u00f6relse: Kontoisolering, CageFS per webbplats och containrar<\/h2>\n\n<p>F\u00f6r att kunna fatta ett v\u00e4l genomt\u00e4nkt beslut j\u00e4mf\u00f6r jag tre vanliga <strong>Modeller<\/strong> utifr\u00e5n isoleringsdjup, arbetsinsats och kompatibilitet. Kontoisolering l\u00f6ser problemet med separering mellan kunder, men l\u00e4mnar interna gr\u00e4nser \u00f6ppna. CageFS per webbplats t\u00e4cker denna lucka ur filsystem- och processperspektiv. Containrar skapar h\u00e5rda gr\u00e4nser, men kr\u00e4ver ofta mer underh\u00e5ll och anpassningar. En v\u00e4lgrundad klassificering av processisolering tillhandah\u00e5lls av denna <a href=\"https:\/\/webhosting.de\/sv\/process-isolering-hosting-chroot-cagefs-container-jails-saekerhet-jaemfoerelse\/\">J\u00e4mf\u00f6relse mellan chroot, CageFS och jails<\/a>.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Tillv\u00e4gag\u00e5ngss\u00e4tt<\/th>\n      <th>\u00c5tskillnad mellan konton<\/th>\n      <th>\u00c5tskillnad mellan webbplatser i kontot<\/th>\n      <th>Kompatibilitet (PHP\/CGI\/SSH\/Cron)<\/th>\n      <th>R\u00f6relsens kostnader<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Kontoisolering (klassisk)<\/td>\n      <td><strong>H\u00f6g<\/strong><\/td>\n      <td>L\u00e5g<\/td>\n      <td>Mycket bra<\/td>\n      <td>L\u00e5g<\/td>\n    <\/tr>\n    <tr>\n      <td>CageFS per webbplats<\/td>\n      <td><strong>H\u00f6g<\/strong><\/td>\n      <td>Medelh\u00f6g till h\u00f6g<\/td>\n      <td>Mycket bra<\/td>\n      <td>L\u00e5g till medelh\u00f6g<\/td>\n    <\/tr>\n    <tr>\n      <td>Containrar per anl\u00e4ggning<\/td>\n      <td><strong>Mycket h\u00f6g<\/strong><\/td>\n      <td>Mycket h\u00f6g<\/td>\n      <td>Bra till mycket bra<\/td>\n      <td>Medelh\u00f6g till h\u00f6g<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>I milj\u00f6er med delad hosting erbjuder Per-Site CageFS en kraftfull kombination av finjusterad <strong>Separation<\/strong> och med minimala anpassningar, eftersom skripten i regel k\u00f6rs utan \u00e4ndringar. P\u00e5 s\u00e5 s\u00e4tt s\u00e4kerst\u00e4ller jag den vanligaste s\u00e5rbarheten: flera frist\u00e5ende webbplatser under ett enda anv\u00e4ndarkonto.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/sicherheitsarchitektur-cagefs-blog-4719.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>I praktiken: Att driva flera WordPress-instanser p\u00e5 ett s\u00e4kert s\u00e4tt<\/h2>\n\n<p>Jag separerar varje WordPress-instans d\u00e4r <strong>Dom\u00e4nisolering<\/strong> och skapar separata PHP-FPM-pooler f\u00f6r varje webbplats, s\u00e5 att loggar, opcache och begr\u00e4nsningar kan tilldelas korrekt. Dessutom anger jag separata SALT-v\u00e4rden och nycklar f\u00f6r varje webbplats i wp-config.php och f\u00f6rhindrar all korsreferens genom filbeh\u00f6righeter och motsvarigheter till open_basedir. Uppladdningar placerar jag strikt inom respektive dokumentrot och f\u00f6rbjuder globala delade uppladdningskataloger. Under distributioner h\u00e5ller jag tillf\u00e4lliga s\u00f6kv\u00e4gar inom webbplatsen och rensar bort byggartefakter omedelbart s\u00e5 att inga on\u00f6diga angreppsyta kvarst\u00e5r. F\u00f6r Composer- eller NPM-cacher anv\u00e4nder jag webbplatslokala <strong>Kataloger<\/strong>, s\u00e5 att inga korsreaktioner uppst\u00e5r.<\/p>\n\n<h2>Prestanda och resursstyrning i samspel<\/h2>\n\n<p>Per-Site CageFS hanterar filvyn; den <strong>Prestanda<\/strong> Jag s\u00e4kerst\u00e4ller detta genom att s\u00e4tta gr\u00e4nser f\u00f6r CPU, RAM, I\/O och processer p\u00e5 konto- eller poolniv\u00e5. P\u00e5 s\u00e5 s\u00e4tt f\u00f6rhindrar jag att en webbplats orsakar f\u00f6r stor belastning p\u00e5 grund av felaktiga plugins och bromsar upp hela kontot. I m\u00e5nga konfigurationer ing\u00e5r detta i LVE- eller liknande kvoter, som jag finjusterar per pool eller konto. Jag kombinerar detta med beg\u00e4ranbegr\u00e4nsning i webbservern eller WAF, s\u00e5 att trafiktoppar hanteras p\u00e5 ett ordnat s\u00e4tt. Denna kombination av isolering och kvoter \u00f6kar tj\u00e4nsternas s\u00e4kerhet och f\u00f6ruts\u00e4gbarhet <strong>Lastf\u00f6rdelning<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/techoffice_cagefs_1234.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Skyddskedja: Vad Per-Site CageFS inte ers\u00e4tter<\/h2>\n\n<p>Isoleringen f\u00f6rhindrar genomsk\u00e5dning, men jag h\u00e5ller uppdateringar, <strong>H\u00e4rdning<\/strong> av PHP och strikta l\u00f6senord till\u00e4mpas fortfarande konsekvent. \u00c4ven MFA f\u00f6r administrat\u00f6rsinloggningar, minimala filbeh\u00f6righeter och uppladdningsfilter \u00e4r fortfarande obligatoriska. En WAF, hastighetsbegr\u00e4nsningar och kontinuerlig loggning t\u00e4cker ytterligare v\u00e4gar som ren fil\u00e5tkomstseparering inte kontrollerar. Jag kontrollerar dessutom regelbundet cron-jobb och integrationstoken, som angripare ofta gl\u00f6mmer bort att ta bort. Mer information om samspelet mellan kundseparering och s\u00e4kerhetsh\u00e4rdning finns i denna guide till <a href=\"https:\/\/webhosting.de\/sv\/delad-hosting-saekerhet-hyresgaest-isolering-serverguard\/\">S\u00e4kerhet vid delad hosting<\/a>, som understryker denna tankeg\u00e5ng.<\/p>\n\n<h2>Uppbyggnad och vanliga hinder<\/h2>\n\n<p>Jag aktiverar dom\u00e4nisoleringen selektivt f\u00f6r varje <strong>Webbplats<\/strong> och testar d\u00e4refter SSH-, Cron- och PHP-\u00e5tkomst under verkliga f\u00f6rh\u00e5llanden. Absoluta s\u00f6kv\u00e4gar i distributionsskript eller plugins kan orsaka problem, d\u00e4rf\u00f6r anv\u00e4nder jag relativa s\u00f6kv\u00e4gar eller variabler. Jag undviker symboliska l\u00e4nkar mellan projekt eftersom de urholkar separationsprincipen; ist\u00e4llet l\u00e4gger jag hellre in n\u00f6dv\u00e4ndiga bibliotek i repositoriet f\u00f6r varje webbplats. F\u00f6r s\u00e4kerhetskopior definierar jag separata arkiv och s\u00e4kerhetskopierar loggar per dom\u00e4n, s\u00e5 att \u00e5terst\u00e4llning och forensisk analys f\u00f6rblir \u00f6versk\u00e5dliga. N\u00e4r det g\u00e4ller beh\u00f6righeter har 640 f\u00f6r filer och 750 f\u00f6r mappar visat sig fungera bra, plus <strong>\u00c4gare<\/strong> som passar respektive PHP-pool.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/sicherheit_shared_hosting_3647.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Kostnads-nyttoanalys f\u00f6r byr\u00e5er och frilansare<\/h2>\n\n<p>Jag v\u00e4ger s\u00e4kerhetsvinsten mot den administrativa tids\u00e5tg\u00e5ngen och de potentiella kostnaderna f\u00f6r driftstopp som en avvikande h\u00e4ndelse skulle medf\u00f6ra, och kommer fram till f\u00f6ljande <strong>Euro<\/strong>-Grund. Redan n\u00e5gra timmars incidenthantering kostar ofta betydligt mer \u00e4n en liten m\u00e5natlig till\u00e4ggskostnad f\u00f6r b\u00e4ttre isolering. F\u00f6r byr\u00e5konton med flera kundprojekt minskar segmenteringen m\u00e4rkbart ansvars- och anseenderisken. \u00c4ven s\u00e4kerhetskopierings- och \u00e5terst\u00e4llningsprocesser l\u00f6per smidigare, eftersom jag kan \u00e5terst\u00e4lla enskilda webbplatser med precision. Sammantaget bidrar CageFS per webbplats till en mer tillf\u00f6rlitlig <strong>Operativ ledning<\/strong> med f\u00f6ruts\u00e4gbara arbetsfl\u00f6den.<\/p>\n\n<h2>Checklista: N\u00e4r CageFS per anl\u00e4ggning blir obligatoriskt<\/h2>\n\n<p>Jag aktiverar dom\u00e4nisoleringen s\u00e5 snart flera <strong>Installationer<\/strong> k\u00f6rs i ett och samma konto och har olika uppdateringscykler. Lika viktigt: separata projektteam eller externa administrat\u00f6rskonton, vilket \u00f6kar risken f\u00f6r oavsiktliga ingrepp. Stora uppladdningsvolymer, filkonverterare eller bildbehandling motiverar dessutom en uppdelning, eftersom det ofta \u00e4r h\u00e4r som s\u00e4kerhetsluckor uppst\u00e5r. Olika efterlevnadskrav (t.ex. kunder, marknader, dataskydd) talar ocks\u00e5 f\u00f6r mer detaljerade segment. Den som driver staging, testning och live-drift parallellt drar nytta av tydligt \u00e5tskilda feldom\u00e4ner och en klar <strong>Kriminalteknik<\/strong>.<\/p>\n\n<h2>Krav och kompatibilitet i praktiken<\/h2>\n\n<p>Innan jag tar Per-Site CageFS i drift kontrollerar jag k\u00f6rmilj\u00f6n: vilken PHP-hanterare som anv\u00e4nds (till exempel PHP-FPM, lsapi), vilken webbserver som \u00e4r aktiv, om panelintegration finns tillg\u00e4nglig samt hur cron-jobb och SSH-sessioner hanteras. I typiska delade milj\u00f6er forts\u00e4tter applikationerna att fungera utan kod\u00e4ndringar. Jag ser till att det finns en egen dokumentrot per dom\u00e4n, att s\u00f6kv\u00e4garna \u00e4r entydiga (t.ex. \/home\/user\/sites\/projekt-a\/public) och att en dedikerad PHP-FPM-pool anv\u00e4nds per webbplats. F\u00f6r cron-jobb anv\u00e4nder jag separata crontabs per dom\u00e4n eller \u2013 d\u00e4r kontrollpanelen sammanf\u00f6r dem \u2013 tydliga prefix och loggv\u00e4gar, s\u00e5 att jobben inom sina <strong>F\u00e4ngelser<\/strong> arbete.<\/p>\n\n<h2>Att tydligt skilja mellan databaser, cacheminnen och sessioner<\/h2>\n\n<p>Filvyn \u00e4r bara en del av helheten. Jag drar gr\u00e4nsen \u00e4nda till databasen och cacheminnena. F\u00f6r varje webbplats skapar jag en egen databas och en egen databasanv\u00e4ndare med minimala beh\u00f6righeter. F\u00f6r objekt- eller sidcacher (t.ex. Redis, Memcached) anv\u00e4nder jag separata instanser per webbplats eller \u00e5tminstone nyckelprefix och dedikerade databaser\/namnrymder. PHP-sessioner hamnar i webbplatsspecifika s\u00f6kv\u00e4gar; jag st\u00e4ller in session.save_path separat f\u00f6r varje FPM-pool. Om jag anv\u00e4nder en central k\u00f6 eller ett s\u00f6kbackend separerar jag index och \u00e4mnen per webbplats. Denna princip om \u201eseparering \u00e4nda till sista ledet\u201c f\u00f6rhindrar att incidenter sprider sig till andra system.<\/p>\n\n<h2>CI\/CD och drifts\u00e4ttningar under isolering<\/h2>\n\n<p>I byggpipelines g\u00f6r jag isolering till standard: F\u00f6r varje webbplats finns ett eget distributionsjobb som endast har \u00e5tkomst till webbplatsens katalog. Jag packar upp artefakterna inom dom\u00e4nroten, utf\u00f6r d\u00e4refter \u00e4gar-\/gruppkorrigeringar och ogiltigf\u00f6rklarar endast de cacher som ber\u00f6rs. WP-CLI-kommandon k\u00f6rs i respektive CageFS-kontext, s\u00e5 att de inte p\u00e5verkar andra projekt. Milj\u00f6variabler h\u00e5ller jag separata f\u00f6r varje webbplats, medan hemligheter f\u00f6rblir i webbplatsens egna konfigurationsfiler eller i panelens hemlighetslagring. F\u00f6r att undvika driftstopp anv\u00e4nder jag atom\u00e4ra syml\u00e4nk-v\u00e4xlingar inom dom\u00e4nens gr\u00e4nser (t.ex. current\/releases), men ser till att syml\u00e4nkarna inte pekar p\u00e5 angr\u00e4nsande projekt. Kontroller efter drifts\u00e4ttning (h\u00e4lsokontroll, 404\/500-skanning, beh\u00f6righetskontroll) \u00e4r obligatoriska f\u00f6r varje webbplats.<\/p>\n\n<h2>\u00d6vervakning, loggning och forensisk analys<\/h2>\n\n<p>Jag separerar loggarna konsekvent: \u00e5tkomst- och felloggar per dom\u00e4n, separata PHP- och Cron-loggar inklusive rotation och lagringstid. Vid en incident kan jag p\u00e5 s\u00e5 s\u00e4tt rekonstruera tidslinjen f\u00f6r en enskild webbplats utan att beh\u00f6va g\u00e5 igenom hela kontot. Som komplement anv\u00e4nder jag filintegritetskontroller (kontrollsummor f\u00f6r k\u00e4rnkataloger), distribuerade revisionsloggar f\u00f6r administrat\u00f6rs\u00e5tg\u00e4rder och enkla Canary-filer som tidigt uppt\u00e4cker manipulationer. F\u00f6r larm r\u00e4cker det ofta med tr\u00f6skelv\u00e4rden: pl\u00f6tsliga \u00f6kningar av 500-fel, ovanliga uppladdningsstorlekar, kraftigt v\u00e4xande inod-bel\u00e4ggningar eller \u00f6verdrivna startar av PHP-arbetare. Dessa signaler kopplar jag till tydliga handlingsplaner: sp\u00e4rra webbplatsen, kontrollera s\u00e4kerhetskopior, s\u00e4kerhetskopiera artefakter, \u00e5terstart i isolerad milj\u00f6.<\/p>\n\n<h2>S\u00e4rskilda fall i WordPress: Multisite, MU-plugins och uppladdningsfl\u00f6den<\/h2>\n\n<p>N\u00e4r det g\u00e4ller WordPress Multisite v\u00e4ger jag f\u00f6r- och nackdelar: En Multisite-installation drar mindre nytta av CageFS per webbplats, eftersom flera webbplatser medvetet delar samma kodbas och struktur. Om jag beh\u00f6ver str\u00e4ngare gr\u00e4nser (oberoende team, separata cacher, tydlig sp\u00e5rbarhet) f\u00f6redrar jag att s\u00e4tta upp enskilda instanser och isolera dem. MU-plugins, drop-ins eller globala Must-Use-bibliotek distribuerar jag endast internt p\u00e5 webbplatsen och undviker delade mappar. Mediearbetsfl\u00f6den (CDN, bildoptimering, konverterare) k\u00f6rs inom dom\u00e4nens \u201dcage\u201d; jag utesluter uppladdningar fr\u00e5n en webbplats till kataloger p\u00e5 en annan. Om ett team vill dela tillg\u00e5ngspipelines replikerar jag dessa per webbplats eller kapslar in dem som ett paket som integreras i respektive repo.<\/p>\n\n<h2>Migrationsv\u00e4g: Fr\u00e5n monolitisk till segmenterad kontoarkitektur<\/h2>\n\n<p>M\u00e5nga konton b\u00f6rjar med en stor public_html-mapp och v\u00e4xer med tiden. Jag g\u00e5r tillv\u00e4ga i fem steg: 1) Inventering: Vilka webbplatser, dom\u00e4ner, cron-jobb, databaser och hemligheter finns? 2) Fastst\u00e4lla s\u00f6kv\u00e4gslayout: separat rotmapp, temp-mapp, loggmapp och s\u00e4kerhetskopieringsmapp f\u00f6r varje webbplats. 3) Definiera PHP-FPM-pooler per dom\u00e4n och st\u00e4lla in gr\u00e4nsv\u00e4rden. 4) Flytta filer, justera beh\u00f6righeter, rensa upp absoluta s\u00f6kv\u00e4gar och inkluderingar. 5) Aktivera CageFS per webbplats, k\u00f6ra belastningstester, s\u00e4tta ig\u00e5ng \u00f6vervakning. Under tiden har jag en \u00e5terst\u00e4llningsstrategi redo (snapshots, separata s\u00e4kerhetskopior). Efter \u00f6verg\u00e5ngen kontrollerar jag om verktyg som WP-CLI, Composer, bildbehandlingsprocesser och cron-jobb k\u00f6rs inom r\u00e4tt omfattning och justerar vid behov s\u00f6kv\u00e4gsvariablerna.<\/p>\n\n<h2>Felbilder och fels\u00f6kning<\/h2>\n\n<ul>\n  <li>403\/404 efter aktivering: Oftast pekar omskrivningsregler eller inkluderingar p\u00e5 s\u00f6kv\u00e4gar utanf\u00f6r dom\u00e4nens rotkatalog. Jag korrigerar s\u00f6kv\u00e4garna till relativa varianter eller anv\u00e4nder variabler.<\/li>\n  <li>Composer\/NPM kraschar: Globala cacheminnen syns inte. Jag skapar webbplatsspecifika cachekataloger och justerar HOME\/TMP-variablerna vid drifts\u00e4ttningen.<\/li>\n  <li>WP-CLI hittar inte wp-config.php: k\u00f6rs inte i dom\u00e4nens rotkatalog. Jag anger arbetskatalogen korrekt eller anger s\u00f6kv\u00e4gen uttryckligen.<\/li>\n  <li>Cron-jobb: Cron-anv\u00e4ndare eller s\u00f6kv\u00e4gar har inte angetts per dom\u00e4n. Jag kontrollerar milj\u00f6variabler, bin\u00e4ra s\u00f6kv\u00e4gar och loggm\u00e5l inom webbplatsens isolerade milj\u00f6.<\/li>\n  <li>Uppladdningar misslyckas: session.save_path eller tmp_dir pekar p\u00e5 fel katalog. Jag tilldelar webbplatsspecifika tempor\u00e4ra s\u00f6kv\u00e4gar f\u00f6r varje FPM-pool.<\/li>\n  <li>Delad bibliotek saknas: Syml\u00e4nken till det angr\u00e4nsande projektet \u00e4r blockerad. Jag replikerar biblioteket till varje webbplats eller integrerar det som ett paket i distributionen.<\/li>\n<\/ul>\n\n<h2>Styrning och \u00e5tkomstmodell<\/h2>\n\n<p>\u00c4ven om allt \u00e4r tekniskt \u00e5tskilt kvarst\u00e5r fr\u00e5gan om \u00e5tkomst. Jag tilldelar dedikerade SSH-\/SFTP-\u00e5tkomster per webbplats eller begr\u00e4nsar \u00e5tkomsten till kontrollpanelen till respektive dom\u00e4n. Utvecklare och byr\u00e5team f\u00e5r endast de nycklar och beh\u00f6righeter som de verkligen beh\u00f6ver. F\u00f6r n\u00f6dfall har jag en \u201dbreak-glass\u201d-process redo (tillf\u00e4lligt ut\u00f6kade beh\u00f6righeter, fullst\u00e4ndig loggning, efterf\u00f6ljande \u00e5terkallande). Vid revisioner dokumenterar jag per webbplats: s\u00f6kv\u00e4gar, pooler, gr\u00e4nsv\u00e4rden, ansvariga, RBAC-tilldelningar och s\u00e4kerhetskopior. P\u00e5 s\u00e5 s\u00e4tt f\u00f6rblir segmenteringen inte bara tekniskt, utan \u00e4ven organisatoriskt robust.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/hosting-sicherheitskonzept-4812.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Kortfattat sammanfattat<\/h2>\n\n<p>Per-Site CageFS kompletterar den befintliga anv\u00e4ndarseparationen med en <strong>Webbplats<\/strong>-niv\u00e5 och minskar d\u00e4rmed effektivt risken f\u00f6r laterala r\u00f6relser. Jag anser att detta \u00e4r ett praktiskt steg, eftersom m\u00e5nga konton sammanf\u00f6r flera oberoende projekt. Kombinationen av separata filvyer och resursbegr\u00e4nsningar skapar ordning i prestanda, s\u00e4kerhet och drift. Den som hostar flera WordPress- eller webbutiksinstanser sparar tid vid fels\u00f6kning, s\u00e4kerhetskopiering och \u00e5terst\u00e4llning efter incidenter. Med tydliga beh\u00f6righeter, uppdateringar, MFA och loggning skapas en h\u00e5llbar <strong>S\u00e4kerhetskedja<\/strong>, vilket g\u00f6r delad hosting betydligt mer stabil.<\/p>","protected":false},"excerpt":{"rendered":"<p>Per-Site CageFS f\u00f6rb\u00e4ttrar s\u00e4kerheten vid delad hosting med hj\u00e4lp av CloudLinux Isolates och tydlig isolering av webbplatser inom ett konto.<\/p>","protected":false},"author":1,"featured_media":20461,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[794],"tags":[],"class_list":["post-20468","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sicherheit-computer_und_internet"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"117","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Per-Site CageFS","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"20461","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/20468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/comments?post=20468"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/posts\/20468\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media\/20461"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/media?parent=20468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/categories?post=20468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/sv\/wp-json\/wp\/v2\/tags?post=20468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}