23 CentOS Server Hardening Security Vinkkejä - Osa 2
Jatkamme aiempaa opetusohjelmaa CentOS-palvelimen suojaamisesta ja kovetamisesta, tässä artikkelissa keskustelemme muista turvallisuusvinkeistä, jotka esitetään alla olevassa tarkistusluettelossa.
Vaatimukset
- 20 CentOS-palvelimen suojausvinkkiä – Osa 1
21. Poista käytöstä hyödyttömät SUID- ja SGID-komennot
Jos setuid- ja setgid-bitit on asetettu binääriohjelmiin, nämä komennot voivat suorittaa tehtäviä muilla käyttäjä- tai ryhmäoikeuksilla, kuten root-oikeuksilla, jotka voi paljastaa vakavia turvallisuusongelmia.
Usein puskurin ylivuotohyökkäykset voivat hyödyntää tällaisia suoritettavien tiedostojen binaareja ajaakseen luvatonta koodia pääkäyttäjän oikeuksilla.
find / -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
Poistaaksesi setuid-bitin asetukset, suorita seuraava komento:
chmod u-s /path/to/binary_file
Poista setgid-bitin asetukset suorittamalla alla oleva komento:
chmod g-s /path/to/binary_file
22. Tarkista tuntemattomat tiedostot ja hakemistot
Tiedostot tai hakemistot, jotka eivät kuulu kelvolliseen tiliin, on poistettava tai niille on annettava käyttäjän ja ryhmän käyttöoikeudet.
Anna alla oleva Find-komento listataksesi tiedostoja tai hakemistoja, joissa ei ole käyttäjää tai ryhmää.
find / -nouser -o -nogroup -exec ls -l {} \;
23. Listaa maailmassa kirjoitettavat tiedostot
Maailmanlaajuisesti kirjoitettavan tiedoston säilyttäminen järjestelmässä voi olla vaarallista, koska kuka tahansa voi muokata niitä. Suorita alla oleva komento näyttääksesi sanalla kirjoitettavat tiedostot, paitsi Symlinkit, jotka ovat aina kirjoitettavia.
find / -path /proc -prune -o -perm -2 ! -type l –ls
24. Luo vahvoja salasanoja
Luo vähintään kahdeksan merkkiä pitkä salasana. Salasanan tulee sisältää numeroita, erikoismerkkejä ja isoja kirjaimia. Käytä pwmakea luodaksesi 128-bittisen salasanan /dev/urandom-tiedostosta.
pwmake 128
25. Käytä vahvaa salasanakäytäntöä
Pakota järjestelmä käyttämään vahvoja salasanoja lisäämällä alla oleva rivi /etc/pam.d/passwd-tiedostoon.
password required pam_pwquality.so retry=3
Kun lisäät yllä olevan rivin, annetussa salasanassa voi olla enintään 3 merkkiä monotonisessa järjestyksessä, kuten abcd, ja enintään kolme identtistä peräkkäistä merkkiä, kuten 1111.
Jos haluat pakottaa käyttäjät käyttämään salasanaa, jonka pituus on vähintään 8 merkkiä, mukaan lukien kaikki merkkiluokat, tarkista merkkijonojen ja peräkkäisten merkkien vahvuus lisäämällä seuraavat rivit tiedostoon /etc/security /pwquality.conf-tiedosto.
minlen = 8
minclass = 4
maxsequence = 3
maxrepeat = 3
26. Käytä salasanan ikääntymistä
Chage-komentoa voidaan käyttää käyttäjän salasanan vanhentamiseen. Jos haluat asettaa käyttäjän salasanan vanhentumaan 45 päivän kuluttua, käytä seuraavaa komentoa:
chage -M 45 username
Voit poistaa salasanan vanhenemisajan käytöstä komennolla:
chage -M -1 username
Pakota salasanan välitön vanheneminen (käyttäjän on vaihdettava salasana seuraavan kirjautumisen yhteydessä) suorittamalla seuraava komento:
chage -d 0 username
27. Lukitse tilit
Käyttäjätilit voidaan lukita suorittamalla passwd- tai usermod-komento:
passwd -l username
usermod -L username
Avaa tilien lukitus käyttämällä -u
-vaihtoehtoa passwd-komennolle ja -U
-vaihtoehtoa komennolle usermod.
28. Estä tilien käyttöliittymän käyttö
Jos haluat estää järjestelmätiliä (tavallinen tili tai palvelutili) pääsemästä Bash-kuoreen, vaihda pääpohjaksi /usr/sbin/nologin tai /bin/false /etc/passwd-tiedostoon antamalla alla oleva komento:
usermod -s /bin/false username
Jos haluat vaihtaa komentotulkin uutta käyttäjää luotaessa, anna seuraava komento:
useradd -s /usr/sbin/nologin username
29. Lukitse virtuaalinen käyttäjäkonsoli vlockilla
vlock on ohjelma, jota käytetään yhden usean istunnon lukitsemiseen Linux-konsolissa. Asenna ohjelma ja aloita pääte-istunnon lukitseminen suorittamalla seuraavat komennot:
yum install vlock
vlock
30. Käytä keskitettyä järjestelmää tilien ja todennuksen hallintaan
Keskitetyn todennusjärjestelmän käyttö voi yksinkertaistaa tilinhallintaa ja valvontaa huomattavasti. Palveluja, jotka voivat tarjota tämän tyyppistä tilinhallintaa, ovat IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS tai Winbind.
Jotkut näistä palveluista ovat oletuksena erittäin suojattuja kryptografisilla protokollilla ja symmetrisellä avaimella, kuten Kerberos.
31. Pakota USB-median vain luku -asennus
blockdev-apuohjelman avulla voit pakottaa kaikki irrotettavat tietovälineet liitettäväksi vain luku -muotoon. Luo esimerkiksi uusi udev-määritystiedosto nimeltä 80-readonly-usb.rules hakemistoon /etc/udev/rules.d/. seuraavalla sisällöllä:
SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"
Käytä sitten sääntöä alla olevalla komennolla:
udevadm control -reload
32. Root Accessin poistaminen käytöstä TTY:n kautta
Jos haluat estää root-tiliä suorittamasta järjestelmään kirjautumista kaikkien konsolilaitteiden (TTY) kautta, poista suojaustiedoston sisältö kirjoittamalla seuraava komentokehote pääkäyttäjänä.
cp /etc/securetty /etc/securetty.bak
cat /dev/null > /etc/securetty
Muista, että tämä sääntö ei koske SSH-kirjautumisistuntoja
Jos haluat estää pääkäyttäjän kirjautumisen SSH:n kautta, muokkaa tiedostoa /etc/ssh/sshd_config ja lisää alla oleva rivi:
PermitRootLogin no
33. Käytä POSIX ACL:iä järjestelmän käyttöoikeuksien laajentamiseen
Kulunvalvontaluettelot voivat määrittää käyttöoikeudet useammalle kuin yhdelle käyttäjälle tai ryhmälle, ja ne voivat määrittää oikeudet ohjelmille, prosesseille, tiedostoille ja hakemistoille. Jos asetat ACL:n hakemistoon, sen jälkeläiset perivät samat oikeudet automaattisesti.
Esimerkiksi,
setfacl -m u:user:rw file
getfacl file
34. Aseta SELinux Enforce Mode -tilaan
Linux-ytimen SELinux-parannus toteuttaa pakollisen käytönvalvontakäytännön (MAC), jonka avulla käyttäjät voivat määrittää suojauskäytännön, joka tarjoaa yksityiskohtaiset käyttöoikeudet kaikille käyttäjille, ohjelmille, prosesseille, tiedostoille ja laitteille.
Ytimen pääsynhallintapäätökset perustuvat kaikkeen tietoturvaan liittyvään kontekstiin eivätkä todennettuun käyttäjän identiteettiin.
Saadaksesi Selinux-tilan ja valvoaksesi käytäntöä, suorita seuraavat komennot:
getenforce
setenforce 1
sestatus
35. Asenna SELinuxin lisäapuohjelmat
Asenna paketti policycoreutils-python, joka tarjoaa lisää Python-apuohjelmia SELinuxin käyttöön: audit2allow, audit2why, chcat ja semanage.
Voit näyttää kaikki loogiset arvot yhdessä lyhyen kuvauksen kanssa käyttämällä seuraavaa komentoa:
semanage boolean -l
Jos haluat esimerkiksi näyttää ja asettaa arvon httpd_enable_ftp_server, suorita alla oleva komento:
getsebool httpd_enable_ftp_server
Jos haluat, että boolen arvo säilyy uudelleen käynnistyksissä, määritä -P
-vaihtoehdon arvoksi setsebool seuraavan esimerkin mukaisesti:
setsebool -P httpd_enable_ftp_server on
36. Käytä keskitettyä lokipalvelinta
Määritä rsyslog-daemon lähettämään arkaluonteisia apuohjelmien lokiviestejä keskitetylle lokipalvelimelle. Voit myös seurata lokitiedostoja logwatch-apuohjelman avulla.
Lokiviestien lähettäminen etäpalvelimelle varmistaa, että kun järjestelmä on vaarantunut, pahantahtoiset käyttäjät eivät voi täysin piilottaa toimintaansa ja jättävät aina jälkiä etälokitiedostoihin.
37. Ota prosessikirjanpito käyttöön
Ota prosessikirjanpito käyttöön asentamalla psacct-apuohjelma ja käyttämällä lastcomm-komentoa näyttääksesi tiedot aiemmin suoritetuista komennoista sellaisina kuin ne on tallennettu järjestelmän kirjanpitotiedostoon ja sa tehdäksesi yhteenvedon tiedoista aiemmin suoritetuista komennoista sellaisina kuin ne on tallennettu. järjestelmän kirjanpitotiedostossa.
38. Kovetus /etc/sysctl.conf
Käytä seuraavia ytimen parametrisääntöjä järjestelmän suojaamiseen:
Lähdereitityksen poistaminen käytöstä
net.ipv4.conf.all.accept_source_route=0
Poista IPv4-edelleenlähetys käytöstä
ipv4.conf.all.forwarding=0
Poista IPv6 käytöstä
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Poista käytöstä ICMP-uudelleenohjattujen pakettien hyväksyminen ja lähettäminen, ellei sitä erikseen vaadita.
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
Poista käänteisen polun edelleenlähetys käytöstä
net.ipv4.conf.all.rp_filter=2
Ohita kaikki ICMP-kaikupyynnöt (asettamalla arvoksi 1 ottaaksesi käyttöön)
net.ipv4.icmp_echo_ignore_all = 0
39. Käytä VPN-palveluita päästäksesi tiloihin suojaamattomien julkisten verkkojen kautta
Käytä aina VPN-palveluita operaattoreille päästäkseen etäyhteyden LAN-tiloihin Internetin kautta. Tällaiset palvelut voidaan määrittää käyttämällä ilmaista avoimen lähdekoodin ratkaisua, kuten OpenVPN, tai käyttämällä patentoitua ratkaisua, kuten Cisco VPN (asenna Epel Repositoriesin tarjoama vpnc-komentorivityökalu).
40. Suorita ulkoinen järjestelmätarkistus
Arvioi järjestelmäsi suojaus haavoittuvuuksien varalta skannaamalla järjestelmä lähiverkon etäpisteistä käyttämällä erityisiä työkaluja, kuten:
- Nmap – verkkoskanneri 29 Esimerkkejä Nmap-komennoista
- Nessus – turvaskanneri
- OpenVAS – käytetään haavoittuvuuksien etsimiseen ja kattavaan haavoittuvuuksien hallintaan.
- Nikto – erinomainen Common Gateway Interface (CGI) -skriptitarkistus Scan Web Vulnerability Linuxissa
41. Suojaa järjestelmä sisäisesti
Käytä sisäistä järjestelmäsuojausta viruksia, rootkit-ohjelmia ja haittaohjelmia vastaan ja asenna hyvän käytännön mukaisesti tunkeutumisen havaitsemisjärjestelmiä, jotka voivat havaita luvattoman toiminnan (DDOS-hyökkäykset, porttitarkistukset), kuten:
- AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
- ClamAV – Antivirus Scanner https://www.clamav.net
- Rkhunter - Rootkit-skanneri
- Lynis – Tietoturvan valvonta- ja tarkistustyökalu Linuxille
- Tripwire – Tietoturva ja tietojen eheys http://www.tripwire.com/
- Fail2Ban – tunkeutumisen esto
- OSSEC – (HIDS) isäntäpohjainen tunkeutumisen tunnistusjärjestelmä http://ossec.github.io/
- Mod_Security – Suojaa Brute Force- tai DDoS-hyökkäykset
42. Muokkaa käyttäjän ympäristömuuttujia
Liitä päivämäärä- ja aika-muodot komentojen suoritusten tallentamiseen antamalla alla oleva komento:
echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> .bashrc'
Pakota välittömästi tallentamaan HISTFILE joka kerta, kun komento kirjoitetaan (uloskirjautumisen sijaan):
echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc
Rajoita aikakatkaisun kirjautumisistuntoa. Purkaa kuori automaattisesti, kun mitään toimintaa ei suoriteta tyhjäkäynnin aikana. Erittäin hyödyllinen SSH-istuntojen automaattiseen katkaisemiseen.
echo ‘TMOUT=120’ >> .bashrc
Käytä kaikkia sääntöjä suorittamalla:
source .bashrc
43. Varmuuskopiotiedot
Käytä varmuuskopiointiapuohjelmia, kuten tar, cat, rsync, scp, LVM snapshots jne., tallentaaksesi kopion järjestelmästäsi, mieluiten ulkopuolelta, järjestelmävian varalta.
Jos järjestelmä vaarantuu, voit palauttaa tiedot aiemmista varmuuskopioista.
Lopuksi, älä unohda, että riippumatta siitä, kuinka monta turva- ja vastatoimia käytät pitääksesi järjestelmäsi turvassa, et ole koskaan 100 % täysin suojattu niin kauan kuin koneesi on kytkettynä ja päällä.