25 Linuxi serverite turvanõuandeid


Kõik ütlevad, et Linux on vaikimisi turvaline ja nõustus teatud laiendusega (see on vaieldav teema). Siiski on Linuxil vaikimisi sisseehitatud turvamudel. Vajadus seda häälestada ja kohandada vastavalt teie vajadustele, mis võib aidata süsteemi turvalisemaks muuta. Linuxit on raskem hallata, kuid see pakub rohkem paindlikkust ja seadistamisvõimalusi.

Tootmises süsteemi kindlustamine häkkerite ja kräkkerite käe alt on süsteemiadministraatori jaoks keeruline ülesanne. See on meie esimene artikkel, mis on seotud teemadega „Kuidas kaitsta Linuxi kasti” või „Linuxi kasti karastamine”. Selles postituses selgitame 25 kasulikku nõuannet ja nippi teie Linuxi süsteemi turvamiseks. Loodetavasti aitavad allolevad näpunäited ja nipid teie süsteemi turvamiseks pikendada.

1. Füüsiline süsteemi turvalisus

Konfigureerige BIOS, et keelata BIOS-is CD/DVD-lt, välisseadmetelt, disketilt käivitamine. Järgmisena lubage BIOS-i parool ja kaitske ka GRUB-i parooliga, et piirata teie süsteemi füüsilist juurdepääsu.

  1. Määrake GRUB-i parool Linuxi serverite kaitsmiseks

2. Ketta vaheseinad

Kõrgema andmeturbe saamiseks on oluline, et katastroofi korral oleks suurem partitsioon. Erinevate partitsioonide loomisega saab andmeid eraldada ja rühmitada. Ootamatu õnnetuse korral kahjustatakse ainult selle sektsiooni andmeid, teiste sektsioonide andmed jäid siiski alles. Veenduge, et teil peaks olema järgmised eraldi sektsioonid ja et kolmandate osapoolte rakendused tuleks installida eraldi failisüsteemidesse jaotises/opt.

/
/boot
/usr
/var
/home
/tmp
/opt

3. Haavatavuse vähendamiseks minimeerige pakette

Kas soovite, et kõikvõimalikud teenused oleksid installitud? Pakettide haavatavuse vältimiseks on soovitatav vältida kasutute pakettide installimist. See võib minimeerida riski, et ühe teenuse rikkumine võib viia teiste teenuste ohtu. Haavatavuse minimeerimiseks leidke soovimatud teenused serverist ja eemaldage need või keelake need. Kasutage käsku 'chkconfig', et leida 3. tasemel töötavaid teenuseid.

# /sbin/chkconfig --list |grep '3:on'

Kui olete teada saanud, et mõni soovimatu teenus töötab, keelake see järgmise käsu abil.

# chkconfig serviceName off

Kasutage RPM-i paketihaldurit, näiteks tööriistu “yum” või “apt-get”, et loetleda kõik süsteemis installitud paketid ja eemaldada need järgmise käsu abil.

# yum -y remove package-name
# sudo apt-get remove package-name

  1. 5 käsku chkconfig
  2. 20 RPM-käskude praktilist näidet
  3. 20 Linuxi YUM-i käsku Linuxi pakettide haldamiseks
  4. 25 APT-GET ja APT-CACHE käsku paketihalduse haldamiseks

4. Märkige ruut Kuulamisvõrgu sadamad

Võrgukäsu ‘netstat’ abil saate vaadata kõiki avatud porte ja nendega seotud programme. Nagu ma eespool ütlesin, kasutage kõigi soovimatute võrguteenuste keelamiseks süsteemis käsku 'chkconfig'.

# netstat -tulpn

  1. 20 Netstati käsku võrguhalduseks Linuxis

5. Kasutage Secure Shelli (SSH)

Telneti ja rlogini protokollid kasutavad lihtteksti, mitte krüpteeritud vormingut, mis on turvarikkumine. SSH on turvaline protokoll, mis kasutab serveriga suhtlemisel krüptimistehnoloogiat.

Ärge kunagi logige otse juurkasutajana sisse, kui see pole vajalik. Kasutage käskude täitmiseks nuppu „sudo”. sudo on määratud failis/etc/sudoers-faili saab redigeerida ka VI redaktoris avatava visudo-utiliidiga.

Samuti on soovitatav muuta SSH 22 vaikenumbrit mõne muu kõrgema pordi numbriga. Avage peamine SSH-konfiguratsioonifail ja tehke mõned järgmised parameetrid, et piirata kasutajate juurdepääsu.

# vi /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers username
Protocol 2

  1. 5 parimat tava SSH-serveri turvamiseks ja kaitsmiseks

6. Hoidke süsteemi ajakohasena

Hoidke süsteemi alati värskeimate versioonide, turvaparanduste ja tuumaga, kui see on saadaval.

# yum updates
# yum check-update

7. Lukustuse Cronjobs

Cronil on oma sisseehitatud funktsioon, kus see võimaldab täpsustada, kes tohib ja kes ei soovi töid juhtida. Seda kontrollib failide nimed /etc/cron.allow ja /etc/cron.deny. Kasutaja lukustamiseks croni abil lisage lihtsalt kasutajanimed faili cron.deny ja lubage kasutajal faili cron.allow käivitada. Kui soovite keelata kõigi kasutajate croni kasutamise, lisage faili cron.deny rida KÕIK.

# echo ALL >>/etc/cron.deny

  1. 11 Linuxi kroonide ajastamise näidet

8. Keelake tuvastamiseks USB-mälupulk

Mitu korda juhtub, et soovime kasutajatel piirata USB-mälupulga kasutamist süsteemides andmete varastamise eest kaitsmiseks. Looge fail '/etc/modprobe.d/no-usb' ja rea alla lisamine ei tuvasta USB-mäluseadet.

install usb-storage /bin/true

9. Lülitage SELinux sisse

Turvalisusega täiustatud Linux (SELinux) on tuuma pakutav kohustuslik juurdepääsukontrolli turvamehhanism. SELinuksi keelamine tähendab turvamehhanismi eemaldamist süsteemist. Mõelge enne eemaldamist hoolikalt läbi, kui teie süsteem on Internetiga ühendatud ja avalikkusele juurdepääsetav, siis mõelge sellele veel.

SELinux pakub kolme põhilist töörežiimi ja need on.

  1. Jõustamine: see on vaikerežiim, mis lubab ja jõustab masinas SELinuksi turbepoliitika.
  2. Lubav: selles režiimis ei jõusta SELinux süsteemi turbepoliitikat, vaid hoiatab ja logib toiminguid. See režiim on SELinuxiga seotud probleemide tõrkeotsinguks väga kasulik
  3. Keelatud: SELinux on välja lülitatud.

SELinuxi režiimi praegust olekut saate käsureal vaadata käskudega 'system-config-selinux', 'getenforce' või 'sestatus'.

# sestatus

Kui see on keelatud, lubage SELinux järgmise käsuga.

# setenforce enforcing

Seda saab hallata ka failist '/ etc/selinux/config', kus saate selle lubada või keelata.

10. Eemaldage KDE/GNOME töölauad

Teie spetsiaalses LAMP-serveris pole vaja käivitada X Window'i töölaudu nagu KDE või GNOME. Serveri turvalisuse ja jõudluse suurendamiseks võite need eemaldada või keelata. Lihtsa funktsiooni keelamiseks avage fail '/ etc/inittab' ja määrake käivitustasemeks 3. Kui soovite selle süsteemist täielikult eemaldada, kasutage allolevat käsku.

# yum groupremove "X Window System"

11. Lülitage IPv6 välja

Kui te ei kasuta IPv6-protokolli, peaksite selle keelama, kuna enamik rakendusi või reegleid ei vaja IPv6-protokolli ja praegu pole seda serveris vaja. Minge võrgu konfiguratsioonifaili ja lisage selle keelamiseks järgmised read.

# vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

12. Piirake kasutajaid vanade paroolide kasutamisel

See on väga kasulik, kui soovite keelata kasutajatel kasutada samu vanu paroole. Vana paroolifail asub aadressil/etc/security/opasswd. Seda saab saavutada PAM-mooduli abil.

Avage fail RHEL/CentOS/Fedora all '/etc/pam.d/system-auth'.

# vi /etc/pam.d/system-auth

Avage Ubuntu/Debiani/Linuxi rahapaja all fail „/etc/pam.d/common-password’.

# vi /etc/pam.d/common-password

Lisage jaotisele ‘auth’ järgmine rida.

auth        sufficient    pam_unix.so likeauth nullok

Lisage jaotisele „parool” järgmine rida, et keelata kasutajal tema viimase viie parooli uuesti kasutamist.

password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5

Server mäletab ainult viimast 5 parooli. Kui proovisite kasutada mõnda viimast 5 vana parooli, kuvatakse viga nagu

Password has been already used. Choose another.

13. Kuidas kontrollida kasutaja parooli aegumist

Linuxis on kasutaja paroolid salvestatud failis „/ etc/shadow” krüptitud vormingus. Kasutaja parooli aegumise kontrollimiseks peate kasutama käsku chage. See kuvab parooli aegumise üksikasjade teavet koos viimase parooli muutmise kuupäevaga. Neid üksikasju kasutab süsteem, et otsustada, millal kasutaja peab oma parooli muutma.

Olemasoleva kasutaja vananemisteabe, näiteks aegumiskuupäeva ja kellaaja, vaatamiseks kasutage järgmist käsku.

#chage -l username

Iga kasutaja parooli vananemise muutmiseks kasutage järgmist käsku.

#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName

  1. -M määrake päevade maksimaalne arv
  2. -m Määra päevade miinimumarv
  3. -W Määrake hoiatuspäevade arv

14. Konto käsitsi lukustamine ja avamine

Lukustamis- ja avamisfunktsioonid on väga kasulikud, selle asemel, et konto süsteemist eemaldada, saate selle lukustada nädalaks või kuuks. Konkreetse kasutaja lukustamiseks võite kasutada käsku follow.

# passwd -l accountName

Märkus. Lukustatud kasutaja on endiselt saadaval ainult juurkasutajale. Lukustamine toimub krüptitud parooli asendamisega (!) Stringiga. Kui keegi üritab selle konto abil süsteemile juurde pääseda, saab ta allpool toodud vea.

# su - accountName
This account is currently not available.

Lukustatud konto avamiseks või juurdepääsu lubamiseks kasutage käsku kui. See eemaldab (!) Stringi krüptitud parooliga.

# passwd -u accountName

15. Tugevamate paroolide jõustamine

Paljud kasutajad kasutavad pehmeid või nõrku paroole ja nende parooli võidakse häkkida sõnastikupõhiste või jõhkrate rünnakute korral. Moodul “pam_cracklib” on saadaval moodulivirnades PAM (Pluggable Authentication Modules), mis sunnib kasutajat seadma tugevaid paroole. Avage redaktoriga järgmine fail.

Loe ka:

# vi /etc/pam.d/system-auth

Ja lisage rida, kasutades krediidiparameetreid järgmiselt (lcredit, ucredit, dcredit ja/või ocredit vastavalt väiketähed, suurtähed, arvud ja muud)

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16. Luba Iptables (tulemüür)

Oma serverite volitamata juurdepääsu kindlustamiseks on tungivalt soovitatav lubada Linuxi tulemüür. Rakendage iptablesi reegleid sissetulevate, väljaminevate ja edastavate pakettide filtreerimiseks. Konkreetses udp/tcp pordinumbris lubame ja keelame allika ja sihtkoha aadressi.

  1. IPTabelite põhijuhend ja näpunäited

17. Keela Inittabis Ctrl + Alt + Delete

Enamikus Linuxi distributsioonides viib „CTRL-ALT-DELETE” vajutamine teie süsteemi protsessi taaskäivitamiseks. Seega pole hea mõte seda võimalust vähemalt tootmisserverites lubada, kui keegi seda ekslikult teeb.

See on määratletud failis '/ etc/inittab'. Kui uurite seda faili tähelepanelikult, näete allpool olevat rida. Vaikimisi rida ei kommenteerita. Peame selle välja kommenteerima. See konkreetne võtmejada signaalimine lülitab süsteemi välja.

# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18. Tühjade paroolide kontode kontrollimine

Iga tühja parooliga konto tähendab, et see on avatud volitamata juurdepääsuks kõigile veebis olevatele isikutele ja see on osa Linuxi serveri turvalisusest. Seega peate veenduma, et kõigil kontodel on tugevad paroolid ja kellelgi pole volitatud juurdepääsu. Tühjad paroolikontod on turvariskid ja neid saab hõlpsasti häkkida. Tühja parooliga kontode kontrollimiseks kasutage järgmist käsku.

# cat /etc/shadow | awk -F: '($2==""){print $1}'

19. Enne sisselogimist kuvage SSH-bänner

Alati on parem mõte, kui enne SSH-i autentimist on seaduslik bänner või turvabännerid koos mõne hoiatusega. Selliste bännerite seadistamiseks lugege järgmist artiklit.

  1. Kuva kasutajatele SSH-hoiatusteade

20. Jälgige kasutaja tegevust

Kui teil on tegemist paljude kasutajatega, on oluline koguda teavet kõigi nende poolt tarbitud kasutajate tegevuste ja protsesside kohta ning neid hiljem analüüsida või juhul, kui on mingeid toiminguid, turvaküsimusi. Aga kuidas saame jälgida ja koguda kasutajate tegevust käsitlevat teavet.

Süsteemi kasutaja tegevuste ja protsesside jälgimiseks kasutatakse kahte kasulikku tööriista, mida nimetatakse psacct ja acct. Need tööriistad töötavad süsteemi taustal ja jälgivad pidevalt iga kasutaja tegevust süsteemis ning ressursse, mida tarbivad sellised teenused nagu Apache, MySQL, SSH, FTP jne. Installimise, seadistamise ja kasutamise kohta lisateabe saamiseks külastage allolevat URL-i.

  1. Kasutajategevuse jälgimine käskude psacct või acct abil

21. Vaadake logisid regulaarselt üle

Liigutage logisid spetsiaalsesse logiserverisse, see võib takistada sissetungijaid kohalikke logisid hõlpsalt muutma. Allpool on üldine Linuxi vaikefailifailide nimi ja nende kasutamine:

  1. /var/log/message - kus on saadaval kogu süsteemi logid või praeguse tegevuse logid.
  2. /var/log/auth.log - autentimislogid.
  3. /var/log/kern.log - tuuma logid.
  4. /var/log/cron.log - krondilogid (croni töö).
  5. /var/log/maillog - meiliserveri logid.
  6. /var/log/boot.log - süsteemi käivitamislogi.
  7. /var/log/mysqld.log - MySQL-i andmebaasiserveri logifail.
  8. /var/log/secure - autentimislogi.
  9. /var/log/utmp või/var/log/wtmp: sisselogimisfail.
  10. /var/log/yum.log: Yumi logifailid.

22. Oluline faili varundamine

Tootmissüsteemis on katastroofide taastamiseks vaja teha olulistest failidest varukoopia ja hoida need turvavarjus, kaugsaidil või väljaspool seda.

23. NIC-i liimimine

NIC-liimimisel on kahte tüüpi režiimi, mida tuleb liimimisliideses mainida.

  1. mode = 0 - ring Robin
  2. mode = 1 - aktiivne ja varundatud

NIC-liimimine aitab meil vältida ühte ebaõnnestumispunkti. Võrguühenduse ühendamisel ühendame kaks või enam võrgu Etherneti kaarti kokku ja teeme ühe virtuaalse liidese, kus saame IP-aadressi määrata teiste serveritega rääkimiseks. Meie võrk on saadaval juhul, kui üks NIC-kaart on katki või pole mingil põhjusel saadaval.

24. Hoidke/käivitage kirjutuskaitstud kujul

Linuxi kernel ja sellega seotud failid asuvad kataloogis/boot, mis on vaikimisi kirjutus-kirjutus. Selle muutmine kirjutuskaitstuks vähendab kriitiliste alglaadimisfailide volitamata muutmise riski. Selleks avage fail "/ etc/fstab".

# vi /etc/fstab

Lisage allpool järgmine rida, salvestage ja sulgege.

LABEL=/boot     /boot     ext2     defaults,ro     1 2

Pange tähele, et kui peate tulevikus tuuma täiendama, peate muudatuse lähtestama kirjutamis- ja kirjutamisseadetele.

25. Eirake ICMP-d või ringhäälingutaotlust

Pingi või ringhäälingutaotluse eiramiseks lisage järgmine rida faili “/etc/sysctl.conf”.

Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1

Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1

Laadige uued sätted või muudatused, käivitades järgmise käsu

#sysctl -p

Kui teil on ülaltoodud loendis vahele jäänud mõni oluline turvalisuse või karastamise näpunäide või teil on mõni muu näpunäide, mis tuleb loendisse lisada. Pange oma kommentaarid meie kommentaarikasti. TecMint on alati huvitatud kommentaaride, ettepanekute ja arutelu saamisest.