Weboldal keresés

23 CentOS-kiszolgáló megerősítési biztonsági tipp – 2. rész


Folytatva az előző oktatóanyagot a CentOS-kiszolgáló biztonságossá tételéről és megszilárdításáról, ebben a cikkben további biztonsági tippeket fogunk megvitatni, amelyek az alábbi ellenőrzőlistán kerülnek bemutatásra.

Követelmények

  1. 20 CentOS szerver keményítési biztonsági tipp – 1. rész

21. Tiltsa le a haszontalan SUID és SGID parancsokat

Ha a setuid és a setgid bitek be vannak állítva bináris programokon, ezek a parancsok más felhasználói vagy csoportjogokkal is futtathatnak feladatokat, például root jogosultságokkal, amelyek komoly biztonsági problémákat vethet fel.

A puffertúlcsordulási támadások gyakran kihasználhatják az ilyen végrehajtható bináris fájlokat, hogy jogosulatlan kódot futtathassanak a root felhasználó jogaival.

find /  -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

A setuid bit hatástalanításához hajtsa végre az alábbi parancsot:

chmod u-s /path/to/binary_file

A setgid bit hatástalanításához futtassa az alábbi parancsot:

chmod g-s /path/to/binary_file

22. Keressen nem birtokolt fájlokat és könyvtárakat

A nem érvényes fiókhoz tartozó fájlokat vagy könyvtárakat törölni kell, vagy jogosultságokkal kell hozzárendelni egy felhasználótól és csoporttól.

Adja ki az alábbi find parancsot a fájlok vagy könyvtárak listázásához felhasználó és csoport nélkül.

find / -nouser -o -nogroup -exec ls -l {} \;

23. Sorolja fel a világra írható fájlokat

A világra írható fájlok rendszerben tartása veszélyes lehet, mivel bárki módosíthatja azokat. Hajtsa végre az alábbi parancsot a szavakkal írható fájlok megjelenítéséhez, kivéve a Symlinks-eket, amelyek mindig írhatók a világon.

find / -path /proc -prune -o -perm -2 ! -type l –ls

24. Hozzon létre erős jelszavakat

Hozzon létre egy legalább nyolc karakterből álló jelszót. A jelszónak számjegyeket, speciális karaktereket és nagybetűket kell tartalmaznia. A pwmake használatával 128 bites jelszót hozhat létre a /dev/urandom fájlból.

pwmake 128

25. Alkalmazza az erős jelszóházirendet

Kényszerítse a rendszert erős jelszavak használatára az alábbi sor hozzáadásával az /etc/pam.d/passwd fájlban.

password required pam_pwquality.so retry=3

A fenti sort hozzáadva a megadott jelszó nem tartalmazhat több mint 3 karaktert monoton sorozatban, például abcd, és 3-nál több azonos egymást követő karaktert, például 1111re.

Ha arra szeretné kényszeríteni a felhasználókat, hogy legalább 8 karakter hosszúságú jelszót használjanak, beleértve az összes karakterosztályt, ellenőrizze a karaktersorozatok és az egymást követő karakterek erősségét, adja hozzá a következő sorokat az /etc/security fájlhoz /pwquality.conf fájlt.

minlen = 8
minclass = 4
maxsequence = 3
maxrepeat = 3

26. Használja a Password Aging funkciót

A chage parancs a felhasználói jelszó öregítésére használható. Ha azt szeretné, hogy a felhasználó jelszava 45 napon belül lejárjon, használja a következő parancsot:

chage -M 45 username

A jelszó lejárati idejének letiltásához használja a következő parancsot:

chage -M -1 username

A jelszó azonnali lejáratának kényszerítése (a felhasználónak a következő bejelentkezéskor meg kell változtatnia a jelszót) a következő parancs futtatásával:

chage -d 0 username

27. Fiókok zárolása

A felhasználói fiókok zárolhatók a passwd vagy usermod parancs végrehajtásával:

passwd -l username
usermod -L username

A fiókok zárolásának feloldásához használja a -u kapcsolót a passwd parancshoz, és a -U opciót a usermod parancshoz.

28. A fiókok shell hozzáférésének megakadályozása

Ha meg szeretné akadályozni, hogy egy rendszerfiók (közönséges fiók vagy szolgáltatásfiók) hozzáférjen egy bash shellhez, módosítsa a gyökérhéjat /usr/sbin/nologin vagy /bin/false értékre az /etc/passwd fájlt az alábbi parancs kiadásával:

usermod -s /bin/false username

A shell megváltoztatásához új felhasználó létrehozásakor adja ki a következő parancsot:

useradd -s /usr/sbin/nologin username

29. A virtuális felhasználói konzol zárolása vlock segítségével

A vlock egy olyan program, amely több munkamenet zárolására szolgál Linux konzolon. Telepítse a programot, és indítsa el a terminál munkamenet zárolását az alábbi parancsok futtatásával:

yum install vlock
vlock

30. Használjon központi rendszert a fiókok kezelésére és a hitelesítésre

A központosított hitelesítési rendszer használata nagymértékben leegyszerűsítheti a számlakezelést és ellenőrzést. Az ilyen típusú fiókkezelést kínáló szolgáltatások az IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS vagy Winbind.

E szolgáltatások némelyike alapértelmezés szerint nagy biztonságú kriptográfiai protokollokkal és szimmetrikus kulcsú titkosítással, mint például a Kerberos.

31. Az USB adathordozó írásvédett csatlakoztatásának kényszerítése

A blockdev segédprogram segítségével az összes cserélhető adathordozót csak olvashatóként csatlakoztathatja. Például hozzon létre egy új udev konfigurációs fájlt 80-readonly-usb.rules néven az /etc/udev/rules.d/ könyvtárban. a következő tartalommal:

SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"

Ezután alkalmazza a szabályt az alábbi paranccsal:

udevadm control -reload

32. Root hozzáférés letiltása TTY-n keresztül

Ha meg szeretné akadályozni, hogy a root fiók minden konzoleszközön (TTY) keresztül lépjen be a rendszerbe, törölje a safetytty fájl tartalmát úgy, hogy rootként írja be a következő parancssort.

cp /etc/securetty /etc/securetty.bak
cat /dev/null > /etc/securetty

Ne feledje, hogy ez a szabály nem vonatkozik az SSH bejelentkezési munkamenetekre
Az SSH-n keresztüli root bejelentkezés megakadályozásához szerkessze az /etc/ssh/sshd_config fájlt, és adja hozzá az alábbi sort:

PermitRootLogin no

33. Használja a POSIX ACL-eket a rendszerengedélyek bővítéséhez

A hozzáférés-szabályozási listák nem csak egyetlen felhasználóhoz vagy csoporthoz határozhatnak meg hozzáférési jogokat, hanem programokhoz, folyamatokhoz, fájlokhoz és könyvtárakhoz is megadhatnak jogokat. Ha beállítja az ACL-t egy könyvtárban, a leszármazottai automatikusan öröklik ugyanazokat a jogokat.

Például,

setfacl -m u:user:rw file
getfacl file

34. Állítsa be a SELinuxot kényszerítő módba

A Linux kernel SELinux továbbfejlesztése megvalósítja a kötelező hozzáférés-szabályozás (MAC) házirendjét, amely lehetővé teszi a felhasználók számára, hogy meghatározzanak egy olyan biztonsági házirendet, amely részletes engedélyeket biztosít minden felhasználóhoz, programhoz, folyamathoz, fájlhoz és eszközhöz.

A kernel hozzáférés-vezérlési döntései a biztonsággal kapcsolatos összes kontextuson alapulnak, nem pedig a hitelesített felhasználói identitáson.

A Selinux állapot eléréséhez és az irányelvek érvényesítéséhez futtassa az alábbi parancsokat:

getenforce
setenforce 1
sestatus

35. Telepítse a SELinux kiegészítő segédprogramjait

Telepítse a policycoreutils-python csomagot, amely további Python segédprogramokat biztosít a SELinux működéséhez: audit2allow, audit2why, chcat és semanage.

Az összes logikai érték megjelenítéséhez egy rövid leírással együtt használja a következő parancsot:

semanage boolean -l

Például a httpd_enable_ftp_server értékének megjelenítéséhez és beállításához futtassa az alábbi parancsot:

getsebool httpd_enable_ftp_server

Ha azt szeretné, hogy a logikai érték az újraindítások során is megmaradjon, adja meg a -P kapcsolót setsebool értékre, amint azt a következő példa mutatja:

setsebool -P httpd_enable_ftp_server on

36. Használja a Centralized Log Servert

Állítsa be az rsyslog démont, hogy érzékeny segédprogramok naplóüzeneteit küldje egy központi naplószervernek. Ezenkívül a logwatch segédprogram segítségével figyelheti a naplófájlokat.

A naplóüzenetek távoli szerverre küldése biztosítja, hogy a rendszer feltörését követően a rosszindulatú felhasználók nem tudják teljesen elrejteni tevékenységüket, és mindig nyomokat hagynak a távoli naplófájlokon.

37. Engedélyezze a folyamatszámlálást

Engedélyezze a folyamatszámlálást a psacct segédprogram telepítésével, és használja a lastcomm parancsot a korábban végrehajtott parancsok információinak megjelenítéséhez a rendszer elszámolási fájljában rögzített módon, és az sa segítségével összefoglalja a korábban végrehajtott parancsok adatait rögzített formában. a rendszer könyvelési fájljában.

38. Az /etc/sysctl.conf keményítése

Használja a következő kernelparaméter-szabályokat a rendszer védelmére:

Forrásútválasztás letiltása

net.ipv4.conf.all.accept_source_route=0

Az IPv4 továbbítás letiltása

ipv4.conf.all.forwarding=0

Az IPv6 letiltása

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Tiltsa le az ICMP átirányított csomagok elfogadását és küldését, kivéve, ha erre kifejezetten szükség van.

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0

Fordított úttovábbítás letiltása

net.ipv4.conf.all.rp_filter=2

Az összes ICMP visszhang kérés figyelmen kívül hagyása (az engedélyezéshez állítsa 1-re)

net.ipv4.icmp_echo_ignore_all = 0

39. Használja a VPN-szolgáltatásokat a helyiségek nem védett nyilvános hálózatokon keresztüli eléréséhez

Mindig használja a VPN szolgáltatásokat a szolgáltatók számára, hogy az interneten keresztül távolról hozzáférjenek a helyi hálózathoz. Az ilyen típusú szolgáltatások konfigurálhatók ingyenes nyílt forráskódú megoldással, például OpenVPN-nel, vagy szabadalmaztatott megoldással, például Cisco VPN-nel (telepítse az Epel Repositories által biztosított vpnc parancssori segédprogramot).

40. Végezze el a külső rendszer vizsgálatát

Értékelje a rendszer biztonságát a sebezhetőségek szempontjából úgy, hogy a LAN-on keresztül távoli pontokról vizsgálja át a rendszert olyan speciális eszközökkel, mint például:

  1. Nmap – hálózati szkenner 29 Példák az Nmap parancsra
  2. Nessus – biztonsági szkenner
  3. OpenVAS – a sebezhetőségek keresésére és átfogó sebezhetőségkezelésre szolgál.
  4. Nikto – egy kiváló közös átjáró felület (CGI) szkriptszkenner Webes sebezhetőség vizsgálata Linuxban

41. A rendszer belső védelme

Használjon belső rendszervédelmet a vírusok, rootkitek, rosszindulatú programok ellen, és jó gyakorlatként telepítsen behatolásészlelő rendszereket, amelyek képesek észlelni a jogosulatlan tevékenységeket (DDOS-támadások, portellenőrzések), például:

  1. AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
  2. ClamAV – Víruskereső https://www.clamav.net
  3. Rkhunter – Rootkit Scanner
  4. Lynis – Biztonsági auditáló és ellenőrző eszköz Linuxhoz
  5. Tripwire – Biztonság és adatintegritás http://www.tripwire.com/
  6. Fail2Ban – Behatolás-hálózat megelőzése
  7. OSSEC – (HIDS) gazdagép alapú behatolásérzékelő rendszer http://ossec.github.io/
  8. Mod_Security – Védje a Brute Force vagy a DDoS támadásokat

42. Felhasználói környezeti változók módosítása

Adja hozzá a dátum és az idő formátumot a parancsok végrehajtásának tárolásához az alábbi parancs kiadásával:

echo 'HISTTIMEFORMAT="%d/%m/%y  %T  "' >> .bashrc'

A(z) HISTFILE azonnali rögzítésének kényszerítése minden parancs begépelésekor (kijelentkezés helyett):

echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc

Korlátozza az időtúllépési bejelentkezési munkamenetet. Automatikusan lebontja a héjat, ha nem végez semmilyen tevékenységet tétlenségi idő alatt. Nagyon hasznos az SSH-munkamenetek automatikus leválasztásához.

echo ‘TMOUT=120’ >> .bashrc

Alkalmazza az összes szabályt a következő végrehajtással:

source .bashrc

43. Adatok biztonsági mentése

Használjon biztonsági mentési segédprogramokat, mint például a tar, cat, rsync, scp, LVM snapshots stb., hogy elmentse a rendszer másolatát, lehetőleg külső helyen, rendszerhiba esetén.

Ha a rendszer veszélybe kerül, elvégezheti az adatok visszaállítását a korábbi biztonsági mentésekből.

Végül ne felejtse el, hogy akárhány biztonsági intézkedést és ellenintézkedést tesz is a rendszer biztonságának megőrzése érdekében, soha nem lesz 100%-ban teljes biztonságban, amíg a gép csatlakoztatva van és be van kapcsolva.