Erősítse meg Linux rendszerét a rendszerbiztonsági beállításokkal

A Systemd felügyeli a szolgáltatások indítását és működését a legtöbb modern Linux rendszeren, és hatékony biztonsági opciókat kínál a szolgáltatások korlátozására és elkülönítésére. Ezen biztonsági beállítások alkalmazása csökkenti a szolgáltatás kompromittálásának kockázatát azáltal, hogy korlátozza a hozzáférést a rendszer erőforrásaihoz, képességeihez és fájljaihoz.

A systemd beépített eszközeinek és direktíváinak segítségével ellenőrizheti szolgáltatásai jelenlegi biztonsági helyzetét, majd fokozatosan alkalmazhat korlátozásokat a támadási felületük csökkentése érdekében, miközben biztosítja, hogy továbbra is megfelelően működjenek.

Auditing Service Security a systemd-analyze segítségével

Mielőtt bármilyen szolgáltatást módosítana, alapvető fontosságú, hogy megértse a jelenlegi biztonsági kitettségét. Asystemd-analyze securityA parancs minden egyes szolgáltatáshoz jelentést készít, amely 0-tól (biztonságos) 10-ig (nagyon védett) skálán értékeli a biztonsági kitettséget. Ez a pontszám a systemd biztonsági funkcióinak használatát tükrözi, nem magának az alkalmazásnak a belső biztonságát.

1. lépés:Futtassa a következő parancsot az összes szolgáltatás megtekintéséhez:

systemd-analyze security

Ez megjeleníti a szolgáltatások listáját az expozíciós pontszámokkal, valamint az engedélyezett vagy hiányzó biztonsági funkciók összefoglalásával.

2. lépés:Egy adott szolgáltatás, például az Apache HTTP-kiszolgáló fókuszált nézetéhez (httpd.service), futtassa:

systemd-analyze security httpd.service

Tekintse át a kimenetet, hogy megállapítsa, mely biztonsági irányelvek nincsenek jelenleg alkalmazva, és melyek járulnak hozzá leginkább a szolgáltatás kitettségi pontszámához.

Biztonsági irányelvek alkalmazása rendszeres szolgáltatási egységekre

A Systemd lehetővé teszi a szervizegység-konfigurációk felülbírálását vagy kiterjesztését az eredeti egységfájlok módosítása nélkül a beugró felülbírálási fájlok létrehozásával. Ez a megközelítés megőrzi a változtatásokat a csomagfrissítések között.

1. lépés:Hozzon létre vagy szerkesszen felülbíráló fájlt a célszolgáltatáshoz:

sudo systemctl edit httpd.service

Ezzel megnyílik egy szövegszerkesztő, ahol biztonsággal kapcsolatos direktívákat adhat hozzá a[Service]szakasz.

Főbb biztonsági irányelvek a kitettség csökkentésére

  • PrivateTmp=igen: Privát /tmp könyvtárat biztosít a szolgáltatásnak, elkülönítve az ideiglenes fájlokat más szolgáltatásoktól.
  • NoNewPrivileges=true: Megakadályozza, hogy a szolgáltatás és az alárendelt folyamatok új jogosultságokat szerezzenek, és lezárja a jogosultság-eszkalációs útvonalakat.
  • ProtectSystem=strict: Csak olvashatóként csatlakoztatja a kritikus rendszerkönyvtárakat, például a /usr, /boot és /etc, így megakadályozza az illetéktelen módosításokat.
  • CapabilityBoundingSet=...: A Linux képességeit csak a szolgáltatás által igényeltekre korlátozza, minimálisra csökkentve a birtokában lévő jogosultságokat.
  • RestrictNamespaces=...: Korlátozza a Linux névterek használatát az erőforrás-elkülönítési képességek csökkentése érdekében.
  • ProtectKernelTunables=igen: Blokkolja a /proc/sys és hasonló interfészeken keresztül hangolható kernel-módosításokat.
  • ProtectKernelModules=igen: Megakadályozza a kernelmodulok betöltését vagy eltávolítását.
  • ProtectControlGroups=igen: Korlátozza a kontrollcsoportok módosítását.
  • PrivateDevices=igen: Megtagadja a hozzáférést a fizikai eszközökhöz, csak pszeudoeszközöket engedélyez.
  • RestrictSUIDSGID=igaz: Nem engedélyezi a SUID/SGID fájlok létrehozását.
  • IPAddressAllow=...: A hálózati hozzáférést meghatározott IP-tartományokra korlátozza, ha van ilyen.

2. lépés:Szükség szerint adja hozzá ezeket az utasításokat a felülbírálási fájlhoz. Például:


[Service]
PrivateTmp=yes
NoNewPrivileges=true
ProtectSystem=strict
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH
RestrictNamespaces=uts ipc pid user cgroup
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
PrivateDevices=yes
RestrictSUIDSGID=true
IPAddressAllow=192.168.1.0/24
    

3. lépés:Mentse a fájlt, majd töltse be újra a systemd-t, és indítsa újra a szolgáltatást a változtatások alkalmazásához:


sudo systemctl daemon-reload
sudo systemctl restart httpd.service
    

Futtassa újrasystemd-analyze security httpd.servicea csökkentett expozíciós pontszám megfigyelésére.

A képességek és a rendszerhívások korlátozása

A Linux képességei a root jogosultságokat finom szemcsés egységekre osztják. A Systemd lehetővé teszi a szolgáltatás által használható képességek korlátozását, csökkentve a kockázatot, ha a szolgáltatás veszélybe kerül.

1. lépés:Határozza meg, mely képességekre van szüksége a szolgáltatásnak. A közös képességek a következők:

  • CAP_NET_BIND_SERVICE: 1024 alatti kiemelt portokhoz kötődik.
  • CAP_CHOWN: Fájl tulajdonjogának módosítása.
  • CAP_DAC_OVERRIDE: A fájlengedély-ellenőrzések megkerülése.
  • CAP_SETUIDésCAP_SETGID: Felhasználói és csoportazonosítók módosítása.

2. lépés:A felülbírálási fájl képességeinek korlátozása:


[Service]
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETUID CAP_SETGID
AmbientCapabilities=CAP_NET_BIND_SERVICE
    

AAmbientCapabilitiesdirektíva szükséges, ha a szolgáltatás elveszíti a jogosultságokat, de még mindig szüksége van bizonyos képességekre.

3. lépés:A rendszerhívások további korlátozásához használja aSystemCallFilter=csak engedélyezett syscallok engedélyezése. A szükséges rendszerhívások azonosítása olyan eszközökkel végezhető el, mint plstracevagy systemd-nélSystemCallLog=irányelv.

Példa:


[Service]
SystemCallFilter=@system-service chroot
    

Jegyzet:A Syscall szűrés hatékony, de érzékeny beállítás; a szükséges rendszerhívások kizárása szolgáltatási hibákat okozhat.

A fájlrendszerhez való hozzáférés korlátozása

A Systemd korlátozhatja a fájlrendszerhez való hozzáférést azáltal, hogy a fájlrendszer egyes részeit csak olvashatóként vagy elérhetetlenként csatlakoztatja, és elválasztja a szolgáltatásokat az érzékeny adatoktól.

  • ProtectHome=igen: A /home, /root és /run/user elérhetetlenné teszi.
  • InaccessiblePaths=: Megtagadja a hozzáférést bizonyos útvonalakhoz.
  • ReadOnlyPaths=ésReadWritePaths=: Adott könyvtárakhoz való hozzáférés szabályozása.
  • PrivateDevices=igen: Korlátozza az eszköz hozzáférését.
  • UMask=: Beállítja az alapértelmezett engedélymaszkot a szolgáltatás által létrehozott fájlokhoz.

Lépés:Adja hozzá ezeket a direktívákat a felülbírálási fájlhoz, hogy a szolgáltatásnak megfelelően korlátozza a fájlrendszerhez való hozzáférést.

Szolgáltatások futtatása nem root felhasználóként

A szolgáltatások rootként való futtatása szükségtelenül növeli a kockázatot. A Systemd lehetővé teszi a felhasználó és a csoport megadását, amely alatt a szolgáltatás fut.

Lépés:Adja hozzá a következőket a felülbírálási fájlhoz, hogy a szolgáltatást kevésbé jogosult felhasználóként futtassa:


[Service]
User=apache
Group=apache
    

Győződjön meg arról, hogy a szolgáltatás rendelkezik a szükséges engedélyekkel azokhoz a fájlokhoz és könyvtárakhoz, amelyekhez hozzá kell férnie.

A DynamicUser használata rövid távú felhasználói fiókokhoz

A DynamicUser ideiglenes felhasználói fiókot hoz létre a szolgáltatáshoz, amely csak a szolgáltatás futása közben létezik, így javítva az elszigeteltséget anélkül, hogy manuális felhasználói kezelésre lenne szükség.

Lépés:Adja hozzá ezt a direktívát a felülbíráló fájlhoz:


[Service]
DynamicUser=yes
    

Ez ideális olyan szolgáltatásokhoz, amelyek nem igényelnek állandó felhasználói identitást vagy hozzáférést a felhasználói adatokhoz.

A címtár létrehozásának automatizálása

A Systemd automatikusan létrehozhat és kezelhet könyvtárakat a gyorsítótárhoz, állapothoz, naplókhoz és futásidejű adatokhoz, amelyek a szolgáltatás életciklusához vannak kötve.

Lépés:Adja hozzá ezeket az utasításokat a felülbíráló fájlhoz a címtárkezelés automatizálásához:


[Service]
CacheDirectory=myservice
StateDirectory=myservice
LogsDirectory=myservice
RuntimeDirectory=myservice
    

Cserélje kimyserviceszolgáltatásának megfelelő névvel. Ezeket a címtárakat megfelelő tulajdonjoggal hozzák létre, és a szolgáltatás leállásakor megtisztítják.

Monitoring és hibaelhárítás

A biztonsági beállítások alkalmazása után figyelje a szolgáltatásnaplókat és a viselkedést, hogy biztosítsa a funkcionalitás sértetlenségét. Használatjournalctl -u servicenamenaplók megtekintéséhez.

Ha a szolgáltatás nem indul el, vagy váratlanul viselkedik, tekintse át az alkalmazott biztonsági direktívákat, és szükség szerint módosítsa, esetleg enyhítsen néhány korlátozást.

Olyan eszközök, mintstracesegíthet a hiányzó engedélyek vagy rendszerhívások azonosításában a rendszerhívások nyomon követésével a szolgáltatás végrehajtása során.


A rendszerbiztonsági opciók alkalmazása szisztematikusan megerősíti a Linux-szolgáltatásokat azáltal, hogy csökkenti a jogosultsági szinteket, és elkülöníti azokat a kritikus rendszerelemektől. A beállítások rendszeres ellenőrzése és hangolása biztosítja, hogy a szolgáltatások biztonságosan működjenek a funkcionalitás feláldozása nélkül.

Related Posts