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.
- 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:
- Nmap - võrguskanner 29 Nmapi käsu näited
- Nessus - turvaskanner
- OpenVAS - kasutatakse haavatavuste otsimiseks ja haavatavuse terviklikuks haldamiseks.
- 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:
- AIDE - täiustatud sissetungide tuvastamise keskkond - http://aide.sourceforge.net/
- ClamAV - viirusetõrje skanner https://www.clamav.net
- Rkhunter - juurkomplekti skanner
- Lynis - Linuxi turvalisuse auditeerimise ja skannimise tööriist
- Tripwire - turvalisus ja andmete terviklikkus http://www.tripwire.com/
- Fail2Ban - sissetungivõrgu ennetamine
- OSSEC - (HIDS) hostipõhine sissetungide tuvastamise süsteem http://ossec.github.io/
- 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.