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
- 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:
- Nmap – hálózati szkenner 29 Példák az Nmap parancsra
- Nessus – biztonsági szkenner
- OpenVAS – a sebezhetőségek keresésére és átfogó sebezhetőségkezelésre szolgál.
- 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:
- AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
- ClamAV – Víruskereső https://www.clamav.net
- Rkhunter – Rootkit Scanner
- Lynis – Biztonsági auditáló és ellenőrző eszköz Linuxhoz
- Tripwire – Biztonság és adatintegritás http://www.tripwire.com/
- Fail2Ban – Behatolás-hálózat megelőzése
- OSSEC – (HIDS) gazdagép alapú behatolásérzékelő rendszer http://ossec.github.io/
- 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.