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

  1. 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:

  1. Nmap – verkkoskanneri 29 Esimerkkejä Nmap-komennoista
  2. Nessus – turvaskanneri
  3. OpenVAS – käytetään haavoittuvuuksien etsimiseen ja kattavaan haavoittuvuuksien hallintaan.
  4. 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:

  1. AIDE – Advanced Intrusion Detection Environment – http://aide.sourceforge.net/
  2. ClamAV – Antivirus Scanner https://www.clamav.net
  3. Rkhunter - Rootkit-skanneri
  4. Lynis – Tietoturvan valvonta- ja tarkistustyökalu Linuxille
  5. Tripwire – Tietoturva ja tietojen eheys http://www.tripwire.com/
  6. Fail2Ban – tunkeutumisen esto
  7. OSSEC – (HIDS) isäntäpohjainen tunkeutumisen tunnistusjärjestelmä http://ossec.github.io/
  8. 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ä.