23 CentOS-serveri karastamisnõuannet - 2. osa


Jätkates selle artikli eelmist õpetust CentOS-i serveri turvalisuse ja karastamise kohta, arutame selles artiklis muid turvanõuandeid, mis esitatakse allpool toodud kontroll-loendis.

  1. 20 CentOS-serveri karastamisnõuannet - 1. osa

21. Keelake kasutud SUID ja SGID käsud

Kui binaarprogrammidele on seatud setuid ja setgid bitid, võivad need käsud käivitada ülesandeid teiste kasutaja- või rühmaõigustega, näiteks juurõigustega, mis võivad paljastada tõsiseid turbeprobleeme.

Sageli võivad puhvri ületatud rünnakud kasutada selliseid käivitatavate failide kahendfaile volitamata koodi käivitamiseks juurtehnoloogia kasutaja õigustega.

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

Setuid'i biti tühistamiseks käivitage järgmine käsk:

# chmod u-s /path/to/binary_file

Bitti setgid tühistamiseks käivitage järgmine käsk:

# chmod g-s /path/to/binary_file

22. Kontrollige omamata faile ja katalooge

Failid või kataloogid, mis ei kuulu kehtivale kontole, tuleb kustutada või määrata kasutaja ja rühma õigustega.

Andke failide või kataloogide loenditesse ilma kasutaja ja rühmata allpool käsk Leia.

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

23. Loetlege maailmas kirjutatavaid faile

Maailmas kirjutatava faili hoidmine süsteemis võib olla ohtlik, kuna igaüks saab neid muuta. Sõnas kirjutatavate failide kuvamiseks käivitage järgmine käsk, välja arvatud Symlinkid, mis on alati kogu maailmas kirjutatavad.

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

24. Looge tugevad paroolid

Looge vähemalt kaheksa tähemärgiga parool. Parool peab sisaldama numbreid, erimärke ja suuri tähti. Kasutage pwmake'i abil 128-bitise parooli loomiseks failist/dev/urandom.

# pwmake 128

25. Rakenda tugevat paroolipoliitikat

Sundige süsteemi kasutama tugevaid paroole, lisades /etc/pam.d/passwd faili allpool oleva rea.

password required pam_pwquality.so retry=3

Ülaltoodud rea lisamisel ei tohi sisestatud parool monotoonses järjestuses olla rohkem kui 3 tähemärki, näiteks abcd, ja rohkem kui 3 järjestikust järjestikust märki, näiteks 1111.

Kasutajate sundimiseks kasutama parooli, mille pikkus on vähemalt 8 tähemärki, kaasa arvatud kõik klasside märgid, lisage failijärjestusse /etc/security/pwquality.conf järgmised read ja kontrollige märgijärjestusi ja järjestikuseid märke.

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

26. Kasutage parooli vananemist

Käsku chage saab kasutada kasutaja parooli vananemiseks. Kasutaja parooli aegumise määramiseks 45 päeva pärast kasutage järgmist käsku:

# chage -M 45 username

Parooli aegumiskuupäeva keelamiseks kasutage käsku:

# chage -M -1 username

Parooli kohese aegumise sundimine (kasutaja peab parooli järgmisel sisselogimisel muutma), käivitades järgmise käsu:

# chage -d 0 username

27. Kontode lukustamine

Kasutajakontosid saab lukustada, käivitades käsu passwd või usermod:

# passwd -l username
# usermod -L username

Kontode avamiseks kasutage parooli passwd jaoks valikut -u ja kasutajaliidese jaoks -U .

28. Takistage juurdepääsu kontode kestale

Süsteemikonto (tavakonto või teenuse konto) bash-i kestale juurde pääsemise takistamiseks muutke root-shell failis/etc/passwd/usr/sbin/nologin või/bin/false, väljastades alltoodud käsu:

# usermod -s /bin/false username

Shelli muutmiseks uue kasutaja loomisel väljastage järgmine käsk:

# useradd -s /usr/sbin/nologin username

29. Lukusta virtuaalne kasutajakonsool vlockiga

vlock on programm, mida kasutatakse ühe mitme seansi lukustamiseks Linuxi konsoolis. Installige programm ja alustage terminaliseansi lukustamist, käivitades järgmised käsud:

# yum install vlock
# vlock

30. Kasutage kontode ja autentimise haldamiseks tsentraliseeritud süsteemi

Tsentraliseeritud autentimissüsteemi kasutamine võib oluliselt lihtsustada konto haldamist ja haldamist. Seda tüüpi kontohaldust pakuvad teenused on IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS või Winbind.

Mõni neist teenustest on vaikimisi krüptograafiliste protokollide ja sümmeetrilise võtmega krüptograafiaga kindlustatud, näiteks Kerberos.

31. Sundige USB-andmekandja kirjutuskaitstud paigaldamist

Blockdevi utiliidi abil saate sundida kõiki eemaldatavaid andmekandjaid kirjutuskaitsega ühendama. Näiteks looge kataloogis /etc/udev/rules.d/ järgmine udev-i konfiguratsioonifail nimega 80-readonly-usb.rules järgmise sisuga:

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

Seejärel rakendage reegel järgmise käsuga:

# udevadm control -reload

32. Juurdepääsu keelamine TTY kaudu

Et juurkonto ei saaks süsteemi sisse logida kõigi konsooliseadmete (TTY) kaudu, kustutage securetty-faili sisu, tippides järgmise käsuterminali viiba root.

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

Pidage meeles, et see reegel ei kehti SSH sisselogimisseansside kohta
Juurdepääsu takistamiseks SSH kaudu muutke faili/etc/ssh/sshd_config ja lisage järgmine rida:

PermitRootLogin no

33. Kasutage süsteemilubade laiendamiseks POSIX ACL-e

Juurdepääsukontrolli loendid võivad määratleda juurdepääsuõigused rohkem kui ühele kasutajale või rühmale ning programmide, protsesside, failide ja kataloogide õigused. Kui määrate ACL-i kataloogi, pärivad selle järeltulijad samad õigused automaatselt.

Näiteks,

# setfacl -m u:user:rw file
# getfacl file

34. Seadistage SELinux käivitusrežiimis

Linuxi kerneli SELinuxi täiustamine rakendab kohustusliku juurdepääsukontrolli (MAC) poliitikat, mis võimaldab kasutajatel määratleda turbepoliitika, mis pakub üksikasjalikke õigusi kõigile kasutajatele, programmidele, protsessidele, failidele ja seadmetele.

Kerneli juurdepääsukontrolli otsused põhinevad kogu turvalisusega seotud kontekstil, mitte autentitud kasutaja identiteedil.

Selinuksi oleku saamiseks ja poliitika jõustamiseks käivitage järgmised käsud:

# getenforce
# setenforce 1
# sestatus

35. Installige SELinuksi täiendavad utiliidid

Paigaldage pakett policycoreutils-python, mis pakub täiendavaid Pythoni utiliite SELinuksi käitamiseks: audit2allow, audit2why, chcat ja semanage.

Kõigi tõeväärtuse väärtuste ja lühikese kirjelduse kuvamiseks kasutage järgmist käsku:

# semanage boolean -l

Näiteks rakenduse httpd_enable_ftp_server väärtuse kuvamiseks ja määramiseks käivitage järgmine käsk:

# getsebool httpd_enable_ftp_server

Boolean väärtuse püsimiseks taaskäivitamisel määrake vahemälu määramiseks suvand -P , nagu on illustreeritud järgmises näites:

# setsebool -P httpd_enable_ftp_server on

36. Kasutage tsentraliseeritud logiserverit

Konfigureerige rsyslogi deemon tundlike utiliitide logisõnumite saatmiseks tsentraliseeritud logiserverisse. Samuti jälgige logifaile logwatchi utiliidi abil.

Logisõnumite saatmine kaugserverisse tagab, et kui süsteem on rikutud, ei saa pahatahtlikud kasutajad oma tegevust täielikult varjata, jättes kaugjälgifailidele alati jälgi.

37. Luba protsessiarvestus

Lubage protsessiarvestus, installides utiliidi psacct ja kasutage käsku lastcomm, et kuvada teave varem täidetud käskude kohta, nagu see on salvestatud süsteemi raamatupidamisfailis, ja sa kokkuvõtlikult teabe varem täidetud käskude kohta, mis on salvestatud süsteemi raamatupidamisfaili.

38. Kõvenemine /etc/sysctl.conf

Süsteemi kaitsmiseks kasutage järgmisi kerneli parameetrite reegleid:

net.ipv4.conf.all.accept_source_route=0
ipv4.conf.all.forwarding=0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Keelake ICMP ümbersuunatud pakettide vastuvõtmine ja saatmine, kui see pole konkreetselt nõutav.

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

Eirake kõiki ICMP kajasoove (lubamiseks määrake väärtus 1)

net.ipv4.icmp_echo_ignore_all = 0

39. Kasutage VPN-teenuseid, et pääseda oma ruumidesse kaitsmata avalike võrkude kaudu

Kasutage operaatorite jaoks alati VPN-teenuseid, et Interneti kaudu LAN-i ruumidele kaugjuurdepääsu võimaldada. Sellist tüüpi teenuseid saab konfigureerida tasuta avatud lähtekoodiga lahenduse abil, näiteks Epeli hoidlad).

40. Tehke välise süsteemi skannimine

Hinnake oma süsteemi turvalisust haavatavuste suhtes, skannides süsteemi oma kohtvõrgu kaudu kaugpunktidest, kasutades järgmisi tööriistu:

  1. Nmap - võrguskanner 29 Nmapi käsu näited
  2. Nessus - turvaskanner
  3. OpenVAS - kasutatakse haavatavuste otsimiseks ja haavatavuse terviklikuks haldamiseks.
  4. Nikto - suurepärane ühise lüüsi liidese (CGI) skanneriskanner, mis skannib veebis veebi haavatavust

41. Kaitske süsteemi sisemiselt

Kasutage sisemist süsteemi kaitset viiruste, juurkomplektide, pahavara eest ja hea tava kohaselt installige sissetungimise tuvastamise süsteemid, mis suudavad tuvastada volitamata tegevust (DDOS-i rünnakud, pordi skannimine), näiteks:

  1. AIDE - täiustatud sissetungide tuvastamise keskkond - http://aide.sourceforge.net/
  2. ClamAV - viirusetõrje skanner https://www.clamav.net
  3. Rkhunter - juurkomplekti skanner
  4. Lynis - Linuxi turvalisuse auditeerimise ja skannimise tööriist
  5. Tripwire - turvalisus ja andmete terviklikkus http://www.tripwire.com/
  6. Fail2Ban - sissetungivõrgu ennetamine
  7. OSSEC - (HIDS) hostipõhine sissetungide tuvastamise süsteem http://ossec.github.io/
  8. Mod_Security - kaitske jõhkraid jõude või DDoS-rünnakuid

42. Muuda kasutajakeskkonna muutujaid

Lisage käskude täitmise salvestamiseks kuupäeva ja kellaaja vorming, väljastades järgmise käsu:

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

Sundige käsu HISTFILE kohest salvestamist iga käsu sisestamise korral (väljalogimise asemel):

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

Piirake ajalõpu sisselogimisseansi. Lõhestage kest automaatselt, kui jõudeoleku ajal ei tehta ühtegi tegevust. Väga kasulik SSH-seansside automaatseks lahtiühendamiseks.

# echo ‘TMOUT=120’ >> .bashrc

Rakendage kõiki reegleid, käivitades:

# source .bashrc

43. Varukoopiad

Kasutage LVM-i hetktõmmiseid jms, et süsteemi tõrke korral salvestada koopia oma süsteemist, eelistatavalt väljastpoolt.

Kui süsteem satub ohtu, saate andmete taastada eelmistest varukoopiatest.

Lõpuks ärge unustage, et hoolimata sellest, kui palju turvameetmeid ja vastumeetmeid te oma süsteemi turvalisuse tagamiseks kasutate, ei ole te kunagi 100% täielikult kaitstud seni, kuni teie masin on sisse lülitatud ja sisse lülitatud.