{"id":20284,"date":"2026-08-03T11:50:45","date_gmt":"2026-08-03T09:50:45","guid":{"rendered":"https:\/\/webhosting.de\/linux-capabilities-root-rechte-granular-aufteilen-sicherheitskonzept\/"},"modified":"2026-08-03T11:50:45","modified_gmt":"2026-08-03T09:50:45","slug":"linux-kapaciteter-root-rettigheder-detaljeret-fordeling-sikkerhedskoncept","status":"publish","type":"post","link":"https:\/\/webhosting.de\/da\/linux-capabilities-root-rechte-granular-aufteilen-sicherheitskonzept\/","title":{"rendered":"Linux-kapaciteter: Sikker og detaljeret fordeling af root-rettigheder"},"content":{"rendered":"<p>Med Linux Capabilities opdeler jeg root-rettighederne i sm\u00e5, klart definerede privilegier og reducerer dermed risikoen drastisk. P\u00e5 den m\u00e5de styrer jeg m\u00e5lrettet, hvilke processer der m\u00e5 udf\u00f8re bestemte handlinger, og begr\u00e6nser dermed angrebsfladen for hver enkelt applikation.<\/p>\n\n<h2>Centrale punkter<\/h2>\n\n<ul>\n  <li><strong>Finkornet<\/strong> I stedet for at v\u00e6re alm\u00e6gtig: Opdel root-rettighederne i mindre privilegier.<\/li>\n  <li><strong>Filfunktioner<\/strong> I stedet for Set-UID: Bind de n\u00f8dvendige rettigheder direkte til bin\u00e6rfilerne.<\/li>\n  <li><strong>Kompetences\u00e6t<\/strong> Konfigurer m\u00e5lrettet: Tilladt, Effektiv, Arvelig, Afgr\u00e6nsende.<\/li>\n  <li><strong>Adskillelse af privilegier<\/strong>: Adskil tjenester, v\u00e6rkt\u00f8jer og opgaver strengt fra hinanden.<\/li>\n  <li><strong>Forsvar i dybden<\/strong>: Udvid funktionerne med sudo, roller og logfiler.<\/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\/linux-serververwaltung-8291.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Hvorfor adskille root-rettigheder?<\/h2>\n\n<p>En root-konto giver <strong>Fuld adgang<\/strong> p\u00e5 fil- og procesniveau, men netop det \u00e5bner op for alvorlige fejl. En forkert kommando eller et exploit er nok til at f\u00e5 en hel installation til at bryde sammen. Derfor begr\u00e6nser jeg omfattende handlinger til det absolut n\u00f8dvendige og reducerer dermed skadeomfanget og gendannelsestiden. Princippet om minimale rettigheder holder tjenesterne sm\u00e5 og overskuelige. Jeg deaktiverer direkte root-login, satser p\u00e5 roller og skriver fuldst\u00e6ndige logfiler.<\/p>\n\n<h2>Linux-kapaciteter kort forklaret<\/h2>\n\n<p>Linux-kapaciteter opdeler den klassiske root-bef\u00f8jelse i klart afgr\u00e6nsede <strong>Privilegier<\/strong>. Hver proces f\u00e5r kun de komponenter, som den virkelig har brug for til sin opgave, f.eks. tilbindning til porte under 1024 eller afsendelse af specielle signaler. P\u00e5 den m\u00e5de undg\u00e5r jeg det tidligere \u00bbalt eller intet\u00ab-princip. Kernen administrerer disse komponenter for hver proces og implementerer dem strengt. P\u00e5 den m\u00e5de forbliver kontrollen detaljeret og gennemsigtig.<\/p>\n\n<p>Teknisk set knytter jeg f\u00e6rdigheder enten til <strong>Processer<\/strong> (via deres kompetences\u00e6t) eller til <strong>Filer<\/strong> (som udvidet attribut <code>sikkerhed.kapacitet<\/code> (ELF-bin\u00e6rfiler). Ved <code>execve()<\/code>-Ved opstart sammenl\u00e6gger kernen filkapaciteterne med proces-s\u00e6ttene: Enkelt sagt kombineres de tilladte kapaciteter fra filattributten samt de arvelige rettigheder fra den kaldende proces til det nye \u00bbPermitted-Set\u00ab og \u2013 hvis det er markeret \u2013 aktiveres de samtidig i \u00bbEffective-Set\u00ab. Dette undg\u00e5r Set-UID-omveje og holder privilegier synlige og kontrollerbare.<\/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\/linux_rechte_besprechung_3820.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>At forst\u00e5 kapacitetss\u00e6t i en procesm\u00e6ssig sammenh\u00e6ng<\/h2>\n\n<p>Hver proces har flere s\u00e6t rettigheder, som jeg m\u00e5lrettet <strong>kontrol<\/strong>. Permitted-set definerer, hvad en proces i princippet m\u00e5 have. Effective-set fastl\u00e6gger, hvad der aktuelt er aktivt. Inheritable-set regulerer, hvilke privilegier der kan overf\u00f8res til underprocesser. Bounding-set s\u00e6tter en fast \u00f8vre gr\u00e6nse og forhindrer, at processer overskrider denne.<\/p>\n\n<h2>Ambient Capabilities og Securebits<\/h2>\n\n<p>Ud over de velkendte s\u00e6t findes der ogs\u00e5 <strong>Ambient-s\u00e6t<\/strong>, som ved <code>execve()<\/code> ikke udl\u00f8ber automatisk. Jeg bruger det, n\u00e5r en proces uden privilegier m\u00e5lrettet skal have minimale rettigheder over flere <code>Eksekutor<\/code>-skal bevare rettighederne p\u00e5 tv\u00e6rs af niveauer (f.eks. ved opkald til eksterne hj\u00e6lpeprogrammer). Ambient-rettigheder indg\u00e5r kun i de effektive rettigheder, hvis den p\u00e5kaldte fil ikke selv angiver filkapaciteter \u2013 p\u00e5 den m\u00e5de forhindrer jeg utilsigtet eskalering.<\/p>\n\n<p>Med de <strong>Securebits<\/strong> Jeg styrer detaljerne i overgangene, f.eks. om en proces efter \u00e6ndringen af UID m\u00e5 beholde de evner, den tidligere havde (<code>keepcaps<\/code>) eller om han generelt ikke m\u00e5 opn\u00e5 nye privilegier (<code>no_new_privs<\/code>). I praksis indstiller jeg Securebits strengt og g\u00e5r p\u00e5 kompromis med brugervenligheden for at bryde udnyttelsesk\u00e6der.<\/p>\n\n<h2>Filfunktioner i stedet for Set-UID<\/h2>\n\n<p>Jeg erstatter Set-UID-bin\u00e6rfiler med filkapaciteter for at mindske risikoen for <strong>s\u00e6nke<\/strong>. I stedet for at give et program root-rettigheder, tildeler jeg blot den n\u00f8dvendige rettighed. En typisk \u00e6ndring ser s\u00e5dan ud: <code>setcap 'cap_net_bind_service=+ep' \/usr\/bin\/meinserver<\/code>. Med <code>getcap -r \/<\/code> Jeg tjekker, hvilke filer der indeholder kompetencer. Det reducerer antallet af eskaleringsveje m\u00e6rkbart.<\/p>\n\n<p>Det er vigtigt, at filfunktioner kun anvendes p\u00e5 <strong>ELF-bin\u00e6rfiler<\/strong> virker. Interpreter-scripts (f.eks. Python, Bash) arver dem ikke p\u00e5lideligt. I s\u00e5danne tilf\u00e6lde indkapsler jeg den privilegerede handling i et lille, statisk kontrolleret hj\u00e6lpeprogram eller bruger socket-aktivering, s\u00e5 min tjeneste slet ikke selv beh\u00f8ver at oprette en forbindelse. Desuden holder jeg \u00f8je med filrettigheder: Capabilities giver s\u00e6rlige rettigheder over for kernen, men erstatter ikke <strong>ingen<\/strong> almindelige ACL'er eller POSIX-rettigheder.<\/p>\n\n<p>N\u00e5r man kopierer eller pakker, g\u00e5r f\u00e6rdigheder hurtigt tabt: <code>cp<\/code> uden XATTR-underst\u00f8ttelse, forkert indstillet <code>umask<\/code> eller fjerne et build-artefakt i et filsystem uden udvidede attributter <code>sikkerhed.kapacitet<\/code> uden at sige noget. Derfor arbejder jeg p\u00e5 en reproducerbar m\u00e5de og bruger: <code>cp --preserve=xattr ...<\/code>, <code>tar --xattrs<\/code>, <code>rsync -X<\/code>. I pakkebygninger angiver jeg filfunktioner eksplicit i installationsskriptet, tester installationen i en ren VM og kontrollerer <code>getcap<\/code> i CI.<\/p>\n\n<h2>Adskillelse af privilegier med realistiske scenarier<\/h2>\n\n<p>En webserver skal have adgang til port 80\/443, men ikke til kernemoduler eller systemgenstarter, derfor indstiller jeg <strong>CAP_NET_BIND_SERVICE<\/strong> og intet andet. En backup-agent m\u00e5 l\u00e6se og skrive filer, men m\u00e5 ikke \u00e6ndre netv\u00e6rkskonfigurationen. Et overv\u00e5gningsv\u00e6rkt\u00f8j f\u00e5r l\u00e6seadgang til n\u00f8gletal, men har ingen rettigheder til at foretage \u00e6ndringer. Disse tilpasninger begr\u00e6nser angreb til det lokale niveau i stedet for at lade dem p\u00e5virke hele systemet. Netop denne adskillelse g\u00f8r tjenesterne h\u00e5ndterbare og holder fejlkonfigurationer i skak.<\/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\/balancing-linux-capabilities-5618.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Kombination af sudo og roller<\/h2>\n\n<p>Funktioner kan ikke erstatte en ordentlig <strong>Rollestruktur<\/strong>, de supplerer dem. Jeg tildeler sudo-rettigheder med stor tilbageholdenhed, bruger fulde kommandostier og holder mig v\u00e6k fra generelle regler som \u201eALL=(ALL) ALL\u201c. Jeg logger hver eneste tildeling. Grupper samler ansvarsomr\u00e5der, mens kapaciteter s\u00e6tter tekniske gr\u00e6nser for processer. P\u00e5 den m\u00e5de skabes der klare ansvarsomr\u00e5der uden overdrevne rettigheder.<\/p>\n\n<h2>Almindelige faldgruber og bedste praksis<\/h2>\n\n<ul>\n  <li><strong>CAP_SYS_ADMIN m\u00e5 ikke bruges som forkortelse:<\/strong> Denne lov er en samlebetegnelse. Jeg erstatter den med mere specifikke alternativer (f.eks. <code>CAP_SYS_CHROOT<\/code>, <code>CAP_SYS_TIME<\/code>, <code>CAP_SYS_NICE<\/code>) eller lad helt v\u00e6re.<\/li>\n  <li><strong>Filerettighederne forbliver strenge:<\/strong> Funktioner s\u00e6tter ikke generelt DAC ud af spil. Uden <code>CAP_DAC_OVERRIDE<\/code> Kernen respekterer fortsat ejer- og modusbits. Jeg tildeler derfor fortsat kun minimale l\u00e6serettigheder.<\/li>\n  <li><strong>H\u00e6rdning af stien:<\/strong> N\u00e5r jeg tildeler en bin\u00e6rfil filkapaciteter, forhindrer jeg PATH-spoofing (absolutte stier i <code>sudoers<\/code>, begr\u00e6nsede skriverettigheder til mapper i s\u00f8gestien).<\/li>\n  <li><strong>Start tidligt, start ofte:<\/strong> Processer starter i nogle tilf\u00e6lde med flere rettigheder end n\u00f8dvendigt. Jeg fjerner de overfl\u00f8dige rettigheder umiddelbart efter det kritiske trin (<code>prctl()<\/code>\/libcap) og indstil <code>no_new_privs<\/code>, hvor det er muligt.<\/li>\n  <li><strong>Begr\u00e6ns arv:<\/strong> Jeg holder Inheritable- og Ambient-s\u00e6ttet lille. Underprocesser m\u00e5 ikke \u00e5bne nye d\u00f8re.<\/li>\n  <li><strong>Kontrol af build- og deploy-pipeline:<\/strong> Jeg bekr\u00e6fter, at <code>sikkerhed.kapacitet<\/code> bevares, og at ingen staging-trin (containerlag, NFS, artefakt-scanner) fjerner XATTR\u2019er.<\/li>\n<\/ul>\n\n<h2>Oversigt over vigtige kompetencer og risici<\/h2>\n\n<p>Inden tildelingen fastl\u00e6gger jeg klart de n\u00f8dvendige rettigheder og vurderer risikoen ved dem. Den f\u00f8lgende tabel viser typiske eksempler med virkning og klassificering. Jeg tager altid h\u00f8jde for alternativer for at undg\u00e5 omfattende rettigheder. Is\u00e6r <strong>CAP_SYS_ADMIN<\/strong> Jeg tildeler dem yderst sparsomt. Hvor det er muligt, erstatter jeg bredt definerede privilegier med m\u00e5lrettede, sn\u00e6vre varianter.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Kapacitet<\/th>\n      <th>Form\u00e5l<\/th>\n      <th>Risiko<\/th>\n      <th>Eksempel<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>CAP_NET_BIND_SERVICE<\/td>\n      <td>Binde til porte &lt; 1024<\/td>\n      <td>Lav til middel<\/td>\n      <td>Webserver p\u00e5 80\/443<\/td>\n    <\/tr>\n    <tr>\n      <td>CAP_SYS_BOOT<\/td>\n      <td>Genstart systemet<\/td>\n      <td>H\u00f8j<\/td>\n      <td>Planlagt genstart<\/td>\n    <\/tr>\n    <tr>\n      <td>CAP_SYS_MODULE<\/td>\n      <td>Indl\u00e6sning\/fjernelse af kerne-moduler<\/td>\n      <td>Meget h\u00f8j<\/td>\n      <td>Driveradministration<\/td>\n    <\/tr>\n    <tr>\n      <td>CAP_SYS_ADMIN<\/td>\n      <td>Alsidige administrative opgaver<\/td>\n      <td>Meget h\u00f8j<\/td>\n      <td>Forskellige vedligeholdelsesopgaver<\/td>\n    <\/tr>\n    <tr>\n      <td>CAP_SETUID \/ CAP_SETGID<\/td>\n      <td>Skift UID\/GID<\/td>\n      <td>Middel til h\u00f8j<\/td>\n      <td>Skift af ret i tjenesten<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\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\/linux_capabilities_tech-office_4738.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<p>Ud over tabellen er jeg lige i gang med at vurdere <code>CAP_SYS_PTRACE<\/code> (fejlfinding i processer), <code>CAP_NET_ADMIN<\/code> (netv\u00e6rksparametrisering) og <code>CAP_DAC_OVERRIDE<\/code> (Omg\u00e5else af filadgangsbegr\u00e6nsninger) er yderst kritisk. Der findes ofte m\u00f8nstre, der undg\u00e5r disse rettigheder: dedikerede metrik-endepunkter i stedet for process-snooping, socket-aktivering eller port-videresendelse i stedet for bind-rettigheder og veldefinerede filrettigheder i stedet for generel omg\u00e5else af DAC.<\/p>\n\n<h2>H\u00e6rdning i containere og hosting<\/h2>\n\n<p>I multi-tenant-milj\u00f8er anser jeg kompetencer for at v\u00e6re radikalt <strong>lille<\/strong> og forhindrer arv i underprocesser. Containere drager stor fordel af det, s\u00e5 snart bounding-s\u00e6ttet er stramt defineret. Jeg kombinerer dette med isolerede filsystem- og procesrum. Denne introduktion hj\u00e6lper mig med at f\u00e5 et overblik over isoleringsmetoder <a href=\"https:\/\/webhosting.de\/da\/proces-isolation-hosting-chroot-cagefs-container-jails-sikkerhed-sammenligning\/\">Procesisolering<\/a>. P\u00e5 den m\u00e5de forbliver tjenesterne adskilte, selv hvis et program svigter.<\/p>\n\n<p>I praksis indstiller jeg som standard containere til \u201eslet alt, tilf\u00f8j specifikt\u201c: <code>--cap-drop=ALL --cap-add=NET_BIND_SERVICE<\/code> til webtjenester, ingen mount-rettigheder, ingen <code>SYS_ADMIN<\/code>. I orkestrerede milj\u00f8er opbevarer jeg profilen centralt og kontrollerer den i politikker. Vigtigt: Jeg stoler ikke p\u00e5 filrettigheder i billedet, men tildeler rettigheder under k\u00f8rsel i orkestratoren \u2013 p\u00e5 en m\u00e5de, der kan gentages og kontrolleres.<\/p>\n\n<h2>Samspil med SELinux og AppArmor<\/h2>\n\n<p>Capabilities styrer, hvad en proces m\u00e5 g\u00f8re, mens MAC-profiler fastl\u00e6gger, hvad den har adgang til, og de to fungerer i harmoni <strong>godt<\/strong>. Jeg definerer \u00bbcapabilities\u00ab sn\u00e6vert og lader SELinux eller AppArmor begr\u00e6nse adgangen til filer og sockets. Det skaber et lagbeskyttelse, der stiller flere hindringer i vejen for exploits. Her finder jeg en hurtig sammenligning: <a href=\"https:\/\/webhosting.de\/da\/selinux-vs-apparmor-linux-sikkerhed-serverhaerdning-beskyttelse\/\">SELinux kontra AppArmor<\/a>. Dermed forbliver en kompromitteret tjeneste isoleret og kan for\u00e5rsage mindre skade.<\/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\/entwickler_schreibtisch2345.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Praksis: G\u00e5 frem trin for trin<\/h2>\n\n<p>Jeg begynder med at lave en oversigt over alle tjenester og deres <strong>Kravene<\/strong>. Derefter fjerner jeg un\u00f8dvendige Set-UID-bin\u00e6rfiler eller erstatter dem med m\u00e5lrettede filrettigheder. Jeg konfigurerer sudo restriktivt og dokumenterer hver enkelt indtastning. Jeg tildeler opgaver til roller og grupper og holder rettighederne p\u00e5 et minimum. Derefter tester jeg systemet under belastning og gennemg\u00e5r logposterne for uventede afvisninger.<\/p>\n\n<p>En kort tjekliste hj\u00e6lper mig med overgangen:<\/p>\n<ul>\n  <li>Kravene til hver tjeneste skal fastl\u00e6gges skriftligt (kun det, der virkelig er n\u00f8dvendigt).<\/li>\n  <li>Oversigt over eksisterende s\u00e6rrettigheder (<code>find \/ -perm -4000<\/code>, <code>getcap -r \/<\/code>).<\/li>\n  <li>M\u00e5lrettet udskiftning: Afskaf Set-UID, indstil filkapaciteter, fjern rettigheder i god tid.<\/li>\n  <li>Luk arv: Stram bounding-s\u00e6ttet, minimer Inheritable\/Ambient.<\/li>\n  <li>Sikring af systemd-\/container-profiler (<code>CapabilityBoundingSet=<\/code>, <code>NoNewPrivileges=yes<\/code>).<\/li>\n  <li>Test under belastning, gennemg\u00e5 logfiler og revisionsposter, dokumenter undtagelser.<\/li>\n<\/ul>\n\n<h2>Overv\u00e5gning, navneomr\u00e5der og l\u00f8bende revisioner<\/h2>\n\n<p>Jeg overv\u00e5ger logfiler, alarmer og systemkald, s\u00e5 u\u00f8nskede handlinger straks <strong>skille sig ud<\/strong>. Jeg kontrollerer regelm\u00e6ssigt \u00e6ndringer i capabiliteter, sudo-regler og roller. Hvor det er hensigtsm\u00e6ssigt, adskiller jeg desuden arbejdsbelastninger ved hj\u00e6lp af kernel-isoleringsmekanismer. Dette overblik giver et godt udgangspunkt for <a href=\"https:\/\/webhosting.de\/da\/serverkontekst-isolation-namespaces-cgroups-hosting-sikkerhed\/\">Navneomr\u00e5der og cgroups<\/a>. P\u00e5 den m\u00e5de opdager jeg afvigelser i god tid og holder omgivelserne rene.<\/p>\n\n<p>I hverdagen bruger jeg enkle tests: <code>capsh --print<\/code> viser mig den aktuelle s\u00e6t af f\u00e6rdigheder, <code>getpcaps<\/code> opregner procesrettigheder og i <code>\/proc\/\/status<\/code> l\u00e6ser jeg <code>CapEff<\/code>, <code>CapPrm<\/code>, <code>CapBnd<\/code>. Med <code>auditd<\/code> Jeg f\u00f8lger med i \u00e6ndringer i kapacitetsstatus (f.eks. regel til <code>capset<\/code>), sammenholder jeg h\u00e6ndelser med implementeringer og opretter alarmer, hvis der pludselig dukker omfattende rettigheder op. I komplicerede tilf\u00e6lde hj\u00e6lper det mig at <code>strace -e capget,capset<\/code>, for at synligg\u00f8re manipulationer af rettigheder.<\/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\/linux-capabilities-8123.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Praktiske eksempler p\u00e5 systemd og containere<\/h2>\n\n<p>Mange tjenester k\u00f8rer jeg som systemd-enheder, hvor jeg indkapsler rettighederne:<\/p>\n<ul>\n  <li><code>CapabilityBoundingSet=CAP_NET_BIND_SERVICE<\/code> begr\u00e6nser det tilg\u00e6ngelige rettighedsvindue til det absolut n\u00f8dvendige.<\/li>\n  <li><code>AmbientCapabilities=CAP_NET_BIND_SERVICE<\/code> giver tjenesten ret til at oprette en forbindelse til port 80\/443 uden filfunktioner.<\/li>\n  <li><code>NoNewPrivileges=yes<\/code> forhindrer senere udvidelser af rettighederne.<\/li>\n  <li><code>Bruger=<\/code>, <code>Gruppe=<\/code>, <code>ProtectSystem=strict<\/code>, <code>PrivateTmp=yes<\/code> fuldender isoleringen.<\/li>\n<\/ul>\n<p>I containere starter jeg processer s\u00e5 minimalt som muligt: <code>docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE --read-only<\/code>. Til kortvarige opgaver bruger jeg k\u00f8rselstidsfunktioner i stedet for filfunktioner i billedet, s\u00e5 build-processerne forbliver reproducerbare, og rettighederne er bundet til milj\u00f8et.<\/p>\n\n<h2>Konkrete migreringer fra praksis<\/h2>\n\n<ul>\n  <li><strong>ping uden Set-UID:<\/strong> I stedet for <code>setuid root<\/code> s\u00e6tter jeg <code>setcap 'cap_net_raw=+ep' \/bin\/ping<\/code>. Dermed kan enhver bruger \u00e5bne ICMP-sockets uden fulde root-rettigheder. Jeg tjekker regelm\u00e6ssigt med <code>getcap \/bin\/ping<\/code>, om attributten er bevaret.<\/li>\n  <li><strong>Webtjeneste p\u00e5 port 80\/443:<\/strong> Jeg k\u00f8rer min tjeneste som en bruger uden s\u00e6rlige rettigheder og indtaster kun <code>cap_net_bind_service<\/code>. Hvis tjenesten alligevel k\u00f8rer bag en reverse proxy, kan jeg alternativt ogs\u00e5 binde den til port 80\/443 der og bruge en h\u00f8j port internt \u2013 helt uden yderligere kompetencer.<\/li>\n  <li><strong>Skift af parter i retssagen:<\/strong> For v\u00e6rkt\u00f8jer, der kortvarigt har brug for udvidede rettigheder (f.eks. til at indstille nice-niveauer), indstiller jeg <code>cap_sys_nice<\/code>, udf\u00f8r handlingen tidligt og slip derefter evnen igen. Jeg undg\u00e5r varigt udvidede rettigheder.<\/li>\n<\/ul>\n\n<h2>Gr\u00e6nser og alternativer<\/h2>\n\n<p>Det er ikke alle anvendelsessituationer, der kr\u00e6ver Capabilities. Ofte findes der sikre alternativer med lavere risiko:<\/p>\n<ul>\n  <li><strong>Aktivering af stik:<\/strong> Init-tjenesten (f.eks. systemd) \u00e5bner privilegerede sockets og videregiver dem til processen. Min tjeneste beh\u00f8ver derfor ikke Bind-rettigheder.<\/li>\n  <li><strong>Port-videresendelse:<\/strong> Ved hj\u00e6lp af firewall-regler omdirigerer jeg 80\/443 til en h\u00f8j port. Tjenesten forbliver uden privilegier, og systemets adf\u00e6rd \u00e6ndres ikke.<\/li>\n  <li><strong>Ikke-privilegerede low-ports:<\/strong> Hvor det er hensigtsm\u00e6ssigt, kan jeg h\u00e6ve t\u00e6rsklen for ikke-privilegerede porte. Det udvider dog handlingsrummet for alle processer \u2013 jeg afvejer n\u00f8je risiko og bekvemmelighed.<\/li>\n  <li><strong>Sm\u00e5 hj\u00e6lpere i stedet for altmuligm\u00e6nd:<\/strong> Hellere en lille, testet bin\u00e6rfil med pr\u00e6cis \u00e9n funktion end en stor monolit med et bredt udvalg af rettigheder.<\/li>\n<\/ul>\n\n<h2>Kort opsummeret<\/h2>\n\n<p>Med <strong>Linux-funktioner<\/strong> Jeg opdeler root-rettigheder i sm\u00e5, let h\u00e5ndterbare privilegier. Filkapaciteter erstatter risikable Set-UID-bin\u00e6rfiler og mindsker konsekvenserne af et angreb. I kombination med strenge sudo-regler, roller og MAC-profiler skabes der et lagdelt sikkerhedssystem med klare gr\u00e6nser. Bounding- og Inheritable-s\u00e6t begr\u00e6nser arv og holder processerne p\u00e5 rette spor. Ved at f\u00f8lge denne fremgangsm\u00e5de mindskes angrebsfladen m\u00e6rkbart, og administrationsbyrden holdes p\u00e5 et overskueligt niveau.<\/p>","protected":false},"excerpt":{"rendered":"<p>Linux-capabilities opdeler root-rettigheder i detaljerede privilegier. L\u00e6r, hvordan capability-modellen styrker din serversikkerhed og muligg\u00f8r adskillelse af privilegier p\u00e5 Linux-systemer.<\/p>","protected":false},"author":1,"featured_media":20277,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[794],"tags":[],"class_list":["post-20284","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":"93","_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":"Linux Capabilities","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":"20277","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts\/20284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/comments?post=20284"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/posts\/20284\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/media\/20277"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/media?parent=20284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/categories?post=20284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/da\/wp-json\/wp\/v2\/tags?post=20284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}