Ebben a cikkben megvitatjuk azokat az alapvető fogalmakat és konkrét beállításokat, amelyek elősegítik a CentOS szerver biztonságának fokozását az interneten. Ezeknek a megközelítéseknek a használatával javul a kiszolgáló védelme a feltörések és a fertőzés ellen. A kézikönyv nagyrészt univerzális, és a fő pontok alkalmasak bármely Linux szerver biztonságának fokozására.
Tartalom:
- A leválasztó meghajtók particionálási és beillesztési lehetőségei
- Szoftver telepítése és frissítése Linuxon (CentOS)
- SSH védelem, kulcs engedélyezése
- A Linux jelszava rendszeresen megváltozik
- A szerver biztonságának javítása a SELinux segítségével
- Konfigurálja a tűzfalat
- Távolítsa el az X Windows szoftvert
- Linux kernel védelem
- Linux fájl engedélyek
- Webszerver biztonsága
- Fizikai szervervédelem
- Biztonsági mentés a Linux szerverről
A leválasztó meghajtók particionálási és beillesztési lehetőségei
A CentOS (és minden Linux disztribúció) telepítésekor a lemezpartíciós szakaszban ne hozzon létre egy partíciót, hanem külön háló-tér a fő partíciótól, hozzon létre rendszerpartíciókat is:
- / gyökér
- / boot
- / var
- / tmp
- /
A partíciók elszigetelésekor a támadók nem tudnak emelkedni a könyvtár fölé háló amikor egy webhelyet feltörnek és rosszindulatú szkripteket vezetnek be.
Használjon speciális opciókat egyes partíciók biztonságos felszereléséhez:
- noexec - nem engedélyezi a bináris fájlok futtatását (nem használható a gyökérkönyvtárban, mivel ez a rendszer működésképtelenségéhez vezet);
- nodev - feltételezi, hogy az eszközfájlokat nem fogják létrehozni a csatolt fájlrendszeren / dev. A gyökérkönyvtárra sem alkalmazható;
- nosuid - tiltja a suid és sgid bit.
Ezeket a paramétereket csak akkor lehet könyvtárba állítani, ha külön szakaszként létezik. Testreszabhatja / etc / fstab a következő ajánlások szerint, ha vannak partíciók a lemezen:
- / otthon - felszerelés opcióval nodev, nosuid, usrquota (kvóták felvétele);
- / boot - felszerelés opcióval nodev, nosuid, noexes - erre a szakaszra a rendszer indításához van szükség, tilos bármi megváltoztatása benne;
- / var - nosuid - a root felhasználóként történő futtatás nem tilos;
- / var / log - felszerelés opcióval nodev, nosuid, noexeс;
- / var / www - felszerelés opcióval nodev, nosuid;
- / tmp - felszerelés opcióval nodev, nosuid, noexe - erre a szakaszra csak ideiglenes fájlok tárolására és rögzítésére van szükség.
Szoftver telepítése és frissítése Linuxon (CentOS)
A szerver telepítésekor soha ne használjon ismeretlen személyek által összeállított operációs rendszer disztribúciókat. Töltse le a disztribúciókat csak a hivatalos tükrökből, és ne használjon mások kezdő fájljait a telepítéshez. Ha nem érti valaki másnak a kódját, akkor jobb, ha megszünteti ezt a vállalkozást, és mindent manuálisan telepít, vagy teljesen elemezte a kick-fájlt, hogy ne telepítsen rosszindulatú kiszolgálóra.
Csak a minimálisan szükséges szoftvert telepítse. Telepítés és beállítás csak az esetre és a telepítő segítségével yum és DNF. Ellenőrizze az összes telepített szoftvert és távolítsa el a felesleges csomagokat:
yum lista telepítve
yum list packageName
yum remove packName
Csak hivatalos és megbízható csomaglerakatot használjon..
Ne használjon titkosítatlan FTP-t, Telnet-t, Rlogin-t, Rsh-t.
Kapcsolja ki a nem használt szolgáltatásokat a szerveren, ha a szolgáltatás eltávolítása jelenleg nem felel meg Önnek.
Az összes szolgáltatás listájának ellenőrzéséhez használja a következő parancsot:
systemctl list-unit-files --type = service
Egy szolgáltatás letiltásához és eltávolításához az induláskor a CentOS-ban használja a systemctl:
systemctl stop szolgáltatás
a systemctl szolgáltatás letiltása
Például a szolgáltatás letiltásához httpd a következő parancs kerül felhasználásra:
systemctl stop httpd.service
a systemctl letiltja a httpd.service szolgáltatást
A kiszolgálón telepített szoftvert mindig frissítse. Az időben frissített szoftver megvédi Önt az ismert sebezhetőségektől. Beállíthatja az automatikus rendszerfrissítéseket, így ezt nem minden alkalommal kell manuálisan elvégeznie.
yum frissítés
- rendszerfrissítés
SSH védelem, kulcs engedélyezése
A biztonságos hitelesítéshez a kiszolgálón használja a privát kulcsot. Generálja a kulcsot az ssh-keygen segédprogrammal:
# ssh-keygen
Nyilvános / magán rsa kulcspár létrehozása. Írja be azt a fájlt, amelybe menti a kulcsot (/ root /.ssh/id_rsa): Írja be a jelmondatot (üres, ha nincs jelmondat): Írja be újra ugyanazt a jelmondatot: Azonosításait a /root/.ssh/id_rsa fájlba mentettük. A nyilvános kulcsot a /root/.ssh/id_rsa.pub mappába mentettük. A kulcs ujjlenyomata: SHA256: ffIDjWIfOgMZmOVbQmDWaOCADK4G3cYYy0dTIjqLkD8 [email protected] A kulcs véletlenszerű képe: + --- [RSA 2048] ---- + | * + .B = + | | oO @oO. | | *. *. B +. | | = + o *. o | | + .E + S * o | | ... o + * | | +. o | | o. | | | + ---- [SHA256]-----+
A generálás után ennek a kulcsnak a segítségével kapcsolódhat a kiszolgálóhoz ssh-az ügyfél.
Hozzon létre egy további felhasználót, és hajtsa végre a parancsokat a (z) keresztül sudo.
sudo groupadd sudo
- csoport létrehozása sudo
adduser webmester
- felhasználó létrehozása
passwd webmester
- jelszó megváltoztatása
usermod -aG sudo webmester
- felhasználó hozzáadása a csoporthoz sudo
Aktában / etc / sudoers sor hozzáadása:
% sudo ALL = (ALL: ALL) MINDEN
Letiltja a beállítást ssh-szerver engedélyezése a gyökér és bejelentkezés / jelszó:
nano / etc / ssh / sshd_config
És változtassa meg az alábbi sorok értékét:
PermitRootLogin nem JelszóHitelesítés nem KihívásVálaszpontHitelesítés nem HasználatPAM nem HitelesítésMódok publickey PubkeyHitelesítés igen
Módosítsa az alapértelmezett portot ssh. Az alapértelmezett port a ssh, elsősorban hajlamos a repedésekre.
A standard port megváltoztatása ssh, a konfigurációs fájlban / etc / ssh / sshd_config cserélje ki az értéket a sorban:
22. kikötő
A Linux jelszava rendszeresen megváltozik
Ha továbbra is jelszavakat használ hitelesítéshez Linuxban, akkor konfigurálja a jelszó jelszavát a segédprogramon keresztül chage.
Annak ellenőrzéséhez, hogy hány napig érvényes egy jelszó bármely felhasználó számára, használja a következő parancsot:
chage -l gyökér
Alapértelmezés szerint 99999 napot állítottam be a root számára:
# chage -l gyökér
Utolsó jelszócsere: soha A jelszó nem jár le: soha a jelszó inaktív: soha a fiók nem jár le: soha A jelszócsere közötti minimális napok száma: 0 A jelszócsere közötti napok maximális száma: 99999 A jelszó lejárta előtti figyelmeztető napok száma: 7
A jelszó érvényességi idejének (például 9 nap) megváltoztatásához használja a következő parancsot:
chage -M 9 gyökér
Most, amikor ellenőrizte a root felhasználó jelszavak érvényességi adatait, az információ megváltozott:
# chage -l gyökér
Utolsó jelszócsere: soha A jelszó nem jár le: soha a jelszó inaktív: soha a fiók nem jár le: soha a jelszócsere közötti minimális napok száma: 0 A jelszócsere közötti napok maximális száma: 9 A jelszó lejárta előtti figyelmeztető napok száma: 7
A Chage segédprogram további lehetőségeit a súgóból szerezheti be:
ember chage
A segédprogram segítségével blokkolja a felhasználókat, ha rossz jelszót ír be fail2ban (lehetővé teszi a csoportházirendek analógjának bevezetését a fiókok zárolásához Windows rendszeren). A Fail2ban megvédi a Linux szervert és a szolgáltatásokat a jelszó kitalálásától.
A fail2ban futtatás telepítéséhez:
yum install epel-release fail2ban -y
A fail2ban konfigurációs fájl az /etc/fail2ban/jail.conf fájlban található. Beállítások, amelyeket érintünk:
- bantime = 600 - tiltási idő a blokkolásnál
- maxretry = 3 - a jelszó helytelen beírására tett kísérletek száma, amely után a felhasználót letiltják
- findtime = 600 - az az időszak, amely alatt a felhasználónak be kell jelentkeznie
Más beállításokat kívánunk használni. Ezenkívül konfigurálhatja a jelentések küldését az e-mailbe.
Hozzon létre fájlt /etc/fail2ban/jail.local és adjuk hozzá a következő sorokat:
A konfigurációs fájl megváltoztatása után indítsa újra a szolgáltatást.
[DEFAULT] ignoreip = 127.0.0.1/24 [ssh-iptables] engedélyezve = true port = ssh filter = sshd action = iptables [név = sshd, port = ssh, protokoll = tcp] logpath = / var / napló / biztonságos
Ezután mentse el a fájlt, és indítsa újra a szolgáltatást fail2ban:
systemctl újraindítás fail2ban
Ezért beállítottuk az ssh felhasználói blokkolását:
Ha a jelszót helytelenül adták meg, tíz percre blokkoltam. Beállíthatja a fail2ban-t, hogy működjön bármilyen szolgáltatással, amely a felhasználókkal működik, például:
- ProFTPD
- EXIM
- postfix
A szerver biztonságának javítása a SELinux segítségével
Általában a szerver beállításakor kikapcsolok SELinux, bár ez nem ajánlott. De beállítva SELinux nagyon specifikus és kiterjedt. A SELinux kiszolgálón történő konfigurálása több napot is igénybe vehet. Ha van ideje a SELinux rendszer konfigurálására és hibakeresésére, használja azt a szerver biztonságához.
SELinux 3 üzemmóddal rendelkezik:
- érvényesítése
- engedékeny
- mozgássérült
Üzemmódban enforsing A SELinux házirendjét alkalmazza a rendszerre, és figyeli a felhasználók jogosulatlan hozzáférését. Minden kísérletet naplózunk.
Üzemmódban engedékeny A SELinux házirendet nem alkalmazzák, de az összes információt a naplókba rögzítik, majd elemezhetik azokat. Ez az üzemmód a rendszer beállításához és hibakereséséhez hasznos..
és mozgássérült ennek megfelelően teljesen letiltja a SELinux-et, és annak irányelve egyáltalán nem vonatkozik.
Konfigurációs fájl SELinux - / etc / selinux / config
Aprólékos környezetben SELinux több cikkre is írhat, ha részletes információra van szüksége, használhatja a hivatalos dokumentációt RedHat. Általában a szerver beállításakor minden teljesen működik, bekapcsolva vagyok SELinux észrevette, hogy vannak problémák a ftp-szerver, valamint néhány fizetett szoftver.
Állapot-ellenőrzés:# sestatus
SELinux állapota: letiltva
A SELinux naplók kényelmesebb tanulmányozásához javasoljuk az aureport és a sealer segédprogramok használatát.
Konfigurálja a tűzfalat
Csak a minimálisan szükséges portokat nyissa meg a kiszolgálón, amelyek valóban szükségesek a munkához. Például dolgozni háló-elegendő a 80-as és a 443-as kiszolgálók megnyitásához mysql /MariaDB, letiltja a távoli kiszolgálókról a 3306-os porthoz történő kapcsolódás képességét (ha az adatbázis csak helyileg használatos, akkor nem tartozik a Galera-fürtbe, és a replikációs szkriptek nem használják).
Ha a számítógép / hozzáférési átjáró statikus IP címet, adja hozzá a megbízható címet a tűzfal kivételeihez, és csatlakozzon belőle a kiszolgálóhoz. További információ a tűzfalaknak a CentOS-on történő konfigurálásáról (ha megszokta az iptable-kat, lásd: A Linux tűzfal konfigurálása az iptable-kel).
A szerver nyitott portjainak ellenőrzéséhez használja a segédprogramot netstat:
netstat -tulpn
Távolítsa el az X Windows szoftvert
Ne használja a rendszert a szerveren X ablakok. Távolítson el minden, a rendszerhez társított szoftvert, nincs rá szükség Linux szerver:
yum group eltávolítani a "GNOME Desktop"
yum group eltávolítani a "KDE plazma munkaterületeket"
yum group eltávolítás "Server with GUI"
yum group eltávolítani a "MATE Desktop"
Linux kernel védelem
Használja a fájl beállításait /etc/sysctl.conf a biztonság fokozása érdekében a Linux kernel indításakor.
Kapcsolja be execshield:
kernel.exec-pajzs = 1
Az IP-útválasztás letiltása (ha a szervert nem használják internet-hozzáférési átjáróként a LAN-tól):
net.ipv4.conf.all.accept_source_route = 0
Engedélyezze a hamisítás védelmét
net.ipv4.conf.all.rp_filter = 1
Engedélyezze a sugárzási kérelmek figyelmen kívül hagyását
net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_messages = 1
Engedélyezze a gyanús csomag regisztrációt
net.ipv4.conf.all.log_martians = 1
Linux fájl engedélyek
Fájlt kereshet felhasználó és csoport nélkül, ezek az fájlok potenciálisan veszélyesek, és a számítógépes bűnözők használhatják azokat. Az ilyen fájlok megtalálásához használja a következő parancsot:
find / könyvtár -xdev \ (-felhasználó -o -nogroup \) -print
Ha a fájlok megtalálhatók, cserélje ki a tulajdonosot és a csoportot.
Állítsa be a zászlót chattr a szükséges fájlokhoz, hogy megóvja őket a módosításoktól. Senki sem módosíthatja a fájlt, amíg ez a jelző be van állítva. Például:
chattr + i /etc/mysript.sh
Ne állítson túl magas engedélyeket a könyvtárakhoz és a fájlokhoz, például a szokásos jogokhoz háló:
- 755 könyvtárakhoz
- 644 fájlok esetén
Bizonyos esetekben vannak kivételek, de mindig körültekintően keresse ezt a kérdést. Tilos a felhasználókat engedélyezni 777. Az ilyen fájlokat megtalálja:
keresési / otthoni f-perm 777
Webszerver biztonsága
Ha szervert használ a háló, vigyázzon a webszolgáltatások beállítására. Zárja be a könyvtár tartalmának megtekintését a Opciók -Indexek, is hozzá X-frame.
A fejléc mindig csatolja az X-Frame-Options SAMEORIGIN elemet
Ez a paraméter megtiltja az oldal keretben történő megnyitását, ez megakadályozza webhelye tartalmának beágyazását más webhelyekre.
Letiltja a (z) verziójának megjelenítését háló-szerver. mert apache a konfigurációs fájlba írja:
serverSignature ki
mert nginx a konfigurációs fájlban a szakaszhoz http írja le:
server_tokens ki;
Php használata esetén tiltsa le a nem biztonságos funkciókat php.ini:
expose_php = Ki
- tiltsa a php verzió megjelenítését
Disable_functions = exec, passthru, shell_exec, system, proc_open, popen
- tiltja ezen funkciók használatát
Állítsa be a szkriptek végrehajtásának korlátozásait és méretét is, ez megvédi a kisebb támadásoktól.
Telepítse az SSL tanúsítványt a webhelyére és az e-mailbe úgy, hogy a böngészőben és az e-mailek küldése során a kapcsolat titkosítva legyen. Használhat egy ingyenes igazolást a Let's Encrypt-től, vagy megfizethet egy olcsó, fizetett tanúsítványt.
Fizikai szervervédelem
Ha a szerver rendelkezik konzollal a távoli eléréshez ILO/IPMI/ BMC, zárja be kívülről, csak a megbízhatókat hagyja el IP, ez korlátozza magát a szükségtelen problémáktól.
Ha a fizikai kiszolgálója az irodán / otthonon kívül található, zárja be BIOS / UEFI jelszó.
És a lényeg: helyezze el kiszolgálóit megbízható szolgáltatókkal.
Biztonsági mentés a Linux szerverről
Természetesen ne felejtsük el a szerver biztonsági mentését. Biztonsági másolatot készíthet a teljes szerverről, valamint az egyes fájlokról vagy könyvtárakról (konfigurálhat biztonsági mentést a felhőalapú tároló szkriptek ingyen). Baleset esetén mindig kéznél lesz az aktuális biztonsági másolat, ahonnan telepítheti a kiszolgálót, vagy kicserélheti a konfigurációs fájlokat.