25 Linux serveru drošības uzlabošanas padomi


Visi saka, ka Linux pēc noklusējuma ir drošs un ir piekritis kādam pagarinājumam (tas ir apspriežams temats). Tomēr Linux pēc noklusējuma ir iebūvēts drošības modelis. Nepieciešams to noregulēt un pielāgot atbilstoši jūsu vajadzībām, kas var palīdzēt padarīt drošāku sistēmu. Linux ir grūtāk pārvaldīt, bet piedāvā vairāk elastības un konfigurācijas iespēju.

Sistēmas nodrošināšana produkcijā no hakeriem un krekeriem ir sarežģīts uzdevums sistēmas administratoram. Šis ir mūsu pirmais raksts, kas saistīts ar “Kā nodrošināt Linux box” vai “Linux Box rūdīšana”. Šajā ziņojumā mēs izskaidrosim 25 noderīgus padomus un ieteikumus, kā aizsargāt jūsu Linux sistēmu. Ceru, ka tālāk sniegtie padomi un ieteikumi palīdzēs jums paplašināt sistēmas drošību.

1. Fiziskās sistēmas drošība

Konfigurējiet BIOS, lai atspējotu sāknēšanu no CD/DVD, ārējām ierīcēm, disketes BIOS. Pēc tam iespējojiet BIOS paroli un arī aizsargājiet GRUB ar paroli, lai ierobežotu jūsu sistēmas fizisko piekļuvi.

  1. Iestatiet GRUB paroli Linux serveru aizsardzībai

2. Disku nodalījumi

Lai iegūtu lielāku datu drošību gadījumā, ja notiktu kāda nelaime, ir svarīgi, lai būtu atšķirīgi nodalījumi. Izveidojot dažādas nodalījumus, datus var atdalīt un grupēt. Ja notiks negaidīts negadījums, tiks bojāti tikai šī nodalījuma dati, bet dati par citiem nodalījumiem izdzīvoja. Pārliecinieties, vai jums ir jābūt sekojošiem atsevišķiem nodalījumiem un vai trešo pušu lietojumprogrammas ir jāinstalē atsevišķās failu sistēmās sadaļā/opt.

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

3. Samaziniet paketes, lai mazinātu ievainojamību

Vai tiešām vēlaties instalēt visu veidu pakalpojumus ?. Lai izvairītos no paku ievainojamības, ieteicams izvairīties no bezjēdzīgu pakotņu instalēšanas. Tas var samazināt risku, ka viena pakalpojuma kompromiss var izraisīt citu pakalpojumu kompromisu. Atrodiet un noņemiet vai atspējojiet no servera nevēlamus pakalpojumus, lai mazinātu ievainojamību. Izmantojiet komandu ‘chkconfig’, lai uzzinātu pakalpojumus, kas darbojas 3. darbības līmenī.

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

Kad esat uzzinājis, ka darbojas kāds nevēlams pakalpojums, atspējojiet tos, izmantojot šo komandu.

# chkconfig serviceName off

Izmantojiet RPM pakotņu pārvaldnieku, piemēram, “yum” vai “apt-get” rīkus, lai uzskaitītu visus sistēmā instalētos pakotnes un noņemtu tos, izmantojot šo komandu.

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

  1. 5 komandu piemēri chkconfig
  2. 20 praktiski RPM komandu piemēri
  3. 20 Linux YUM komandas Linux pakotņu pārvaldībai
  4. 25 komandas APT-GET un APT-CACHE pakotņu pārvaldības pārvaldībai

4. Pārbaudiet Klausīšanās tīkla porti

Izmantojot tīkla komandu ‘netstat’, varat apskatīt visas atvērtās ostas un saistītās programmas. Kā jau teicu iepriekš, izmantojiet komandu ‘chkconfig’, lai atspējotu visus nevēlamos tīkla pakalpojumus no sistēmas.

# netstat -tulpn

  1. 20 Netstat komandas tīkla pārvaldībai operētājsistēmā Linux

5. Izmantojiet Secure Shell (SSH)

Telnet un rlogin protokoli izmanto vienkāršu tekstu, nevis šifrētu formātu, kas ir drošības pārkāpumi. SSH ir drošs protokols, kas saziņā ar serveri izmanto šifrēšanas tehnoloģiju.

Nekad nepiesakieties tieši kā root, ja tas nav nepieciešams. Izmantojiet “sudo”, lai izpildītu komandas. sudo ir norādīti/etc/sudoers failā, tos var rediģēt arī ar “visudo” utilītu, kas tiek atvērta VI redaktorā.

Ir arī ieteicams nomainīt noklusējuma SSH 22 porta numuru ar kādu citu augstāka līmeņa porta numuru. Atveriet galveno SSH konfigurācijas failu un izveidojiet dažus šādus parametrus, lai ierobežotu lietotāju piekļuvi.

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

  1. 5 labākās prakses SSH servera drošībai un aizsardzībai

6. Atjauniniet sistēmu

Vienmēr atjauniniet sistēmu ar jaunākajiem laidieniem, drošības labojumiem un kodolu, kad tas ir pieejams.

# yum updates
# yum check-update

7. Lockdown Cronjobs

Kronam ir sava iebūvētā funkcija, kurā tas ļauj norādīt, kurš drīkst un kurš nevēlas vadīt darbus. To kontrolē, izmantojot failus ar nosaukumu /etc/cron.allow un /etc/cron.deny. Lai bloķētu lietotāju, izmantojot cron, vienkārši pievienojiet lietotājvārdus mapē cron.deny un ļaujiet lietotājam palaist cron add failā cron.allow. Ja vēlaties atspējot visiem lietotājiem cron lietošanu, pievienojiet failam cron.deny līniju ALL.

# echo ALL >>/etc/cron.deny

  1. 11 Linux plānošanas piemēri Linux

8. Atspējojiet USB atmiņu, lai noteiktu

Daudzas reizes gadās, ka mēs vēlamies ierobežot lietotājus izmantot USB atmiņu sistēmās, lai pasargātu un aizsargātu datus no zagšanas. Izveidojiet failu “/etc/modprobe.d/no-usb”, un, pievienojot zem rindas, USB atmiņa netiks konstatēta.

install usb-storage /bin/true

9. Ieslēdziet SELinux

Uzlabota drošība Linux (SELinux) ir obligāts piekļuves kontroles drošības mehānisms, kas paredzēts kodolā. SELinux atspējošana nozīmē drošības mehānisma noņemšanu no sistēmas. Pirms noņemšanas rūpīgi padomājiet divreiz, ja jūsu sistēma ir pievienota internetam un tai ir pieejama sabiedrība, tad padomājiet par to vēl.

SELinux nodrošina trīs pamata darbības režīmus, un tie ir.

  1. Izpilde: tas ir noklusējuma režīms, kas mašīnā iespējo un izpilda SELinux drošības politiku.
  2. Atļauts: šajā režīmā SELinux neieviesīs drošības politikas sistēmā, tikai brīdinās un reģistrēs darbības. Šis režīms ir ļoti noderīgs ar SELinux saistīto problēmu novēršanai.
  3. Atspējots: SELinux ir izslēgts.

Izmantojot komandu ‘system-config-selinux’, ‘getenforce’ vai ‘sestatus’, komandrindā varat apskatīt pašreizējo SELinux režīma statusu.

# sestatus

Ja tas ir atspējots, iespējojiet SELinux, izmantojot šādu komandu.

# setenforce enforcing

To var pārvaldīt arī no faila “/ etc/selinux/config”, kur to var iespējot vai atspējot.

10. Noņemiet KDE/GNOME darbvirsmas

Jums nav nepieciešams palaist X Window darbvirsmas, piemēram, KDE vai GNOME, jūsu paredzētajā LAMP serverī. Jūs varat tos noņemt vai atspējot, lai palielinātu servera drošību un veiktspēju. Lai atspējotu vienkāršo, atveriet failu ‘/ etc/inittab’ un iestatiet izpildes līmeni uz 3. Ja vēlaties to pilnībā noņemt no sistēmas, izmantojiet zemāk esošo komandu.

# yum groupremove "X Window System"

11. Izslēdziet IPv6

Ja neizmantojat IPv6 protokolu, tas ir jāatspējo, jo lielākajai daļai lietojumprogrammu vai politikas nav nepieciešams IPv6 protokols, un pašlaik tas nav nepieciešams serverī. Dodieties uz tīkla konfigurācijas failu un pievienojiet sekojošās rindas, lai to atspējotu.

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

12. Ierobežojiet lietotājus izmantot vecās paroles

Tas ir ļoti noderīgi, ja vēlaties neļaut lietotājiem izmantot tās pašas vecās paroles. Vecais paroles fails atrodas vietnē/etc/security/opasswd. To var panākt, izmantojot PAM moduli.

Atveriet failu “/etc/pam.d/system-auth” zem RHEL/CentOS/Fedora.

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

Sadaļā Ubuntu/Debian/Linux Mint atveriet failu “/etc/pam.d/common-password”.

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

Sadaļā “auth” pievienojiet šādu rindu.

auth        sufficient    pam_unix.so likeauth nullok

Pievienojiet šādu rindu sadaļai “parole”, lai liegtu lietotājam atkārtoti izmantot viņa pēdējās 5 paroles.

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

Serveris atceras tikai pēdējās 5 paroles. Ja mēģinājāt izmantot kādu no pēdējām 5 vecajām parolēm, saņemsit tādu kļūdu kā.

Password has been already used. Choose another.

13. Kā pārbaudīt lietotāja paroles derīguma termiņu

Operētājsistēmā Linux lietotāja paroles tiek glabātas failā “/ etc/shadow” šifrētā formātā. Lai pārbaudītu lietotāja paroles derīguma termiņu, jums jāizmanto komanda “chage”. Tajā tiek parādīta informācija par paroles derīguma termiņu kopā ar pēdējās paroles maiņas datumu. Šo informāciju sistēma izmanto, lai izlemtu, kad lietotājam ir jāmaina sava parole.

Lai skatītu visu esošo lietotāju novecojošo informāciju, piemēram, derīguma termiņu un laiku, izmantojiet šo komandu.

#chage -l username

Lai mainītu jebkura lietotāja paroles novecošanu, izmantojiet šo komandu.

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

  1. -M iestatiet maksimālo dienu skaitu
  2. -m iestatiet minimālo dienu skaitu
  3. -W Iestatiet brīdinājumu dienu skaitu

14. Konta bloķēšana un atbloķēšana manuāli

Bloķēšanas un atbloķēšanas funkcijas ir ļoti noderīgas, tā vietā, lai noņemtu kontu no sistēmas, to var bloķēt uz nedēļu vai mēnesi. Lai bloķētu konkrētu lietotāju, varat izmantot komandu follow.

# passwd -l accountName

Piezīme. Bloķētais lietotājs joprojām ir pieejams tikai root lietotājam. Bloķēšana tiek veikta, aizstājot šifrētu paroli ar (!) Virkni. Ja kāds mēģina piekļūt sistēmai, izmantojot šo kontu, viņš saņems līdzīgu kļūdu kā zemāk.

# su - accountName
This account is currently not available.

Lai atbloķētu vai iespējotu piekļuvi bloķētam kontam, izmantojiet komandu kā. Tas noņems (!) Virkni ar šifrētu paroli.

# passwd -u accountName

15. Spēcīgāku paroļu ieviešana

Daudzi lietotāji izmanto parastas vai vājas paroles, un viņu parole, iespējams, tiek uzlauzta, izmantojot vārdnīcas vai brutālu spēku uzbrukumus. Modulis “pam_cracklib” ir pieejams PAM (Pluggable Authentication Modules) moduļu kaudzē, kas lietotājam liks iestatīt stingras paroles. Atveriet šo failu ar redaktoru.

Lasīt arī:

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

Un pievienojiet rindu, izmantojot kredīta parametrus kā (lcredit, ucredit, dcredit un/vai ocredit attiecīgi mazie, lielie, cipari un citi)

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

16. Iespējot Iptables (ugunsmūri)

Ir ļoti ieteicams iespējot Linux ugunsmūri, lai nodrošinātu nesankcionētu piekļuvi jūsu serveriem. Pielietojiet iptables kārtulas, lai filtrētu ienākošās, izejošās un pārsūtītās paketes. Mēs varam norādīt avota un galamērķa adresi, lai atļautu un noliegtu konkrētu udp/tcp porta numuru.

  1. IPTables pamata rokasgrāmata un padomi

17. Inittab atspējojiet Ctrl + Alt + Delete

Lielākajā daļā Linux izplatījumu nospiežot taustiņu CTRL-ALT-DELETE, sistēma tiks restartēta. Tāpēc nav ieteicams šo iespēju iespējot vismaz ražošanas serveros, ja kāds to kļūdaini dara.

Tas ir definēts failā ‘/ etc/inittab’, ja rūpīgi ieskatīsieties šajā failā, redzēsit līdzīgu rindiņu kā zemāk. Pēc noklusējuma rinda netiek komentēta. Mums tas ir jākomentē. Šī konkrētā atslēgu secības signalizācija izslēgs sistēmu.

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

18. Kontu pārbaude par tukšām parolēm

Jebkurš konts ar tukšu paroli nozīmē, ka tas ir atvērts nesankcionētai piekļuvei ikvienam tīmeklī, un tas ir daļa no drošības Linux serverī. Tātad, jums jāpārliecinās, ka visiem kontiem ir stingras paroles un nevienam nav autorizētas piekļuves. Tukši paroles konti ir drošības riski, un tos var viegli uzlauzt. Lai pārbaudītu, vai ir kādi konti ar tukšu paroli, izmantojiet šo komandu.

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

19. Pirms pieteikšanās parādīt SSH reklāmkarogu

Pirms SSH autentifikācijas vienmēr ir labāk izmantot juridisku reklāmkarogu vai drošības banerus ar dažiem drošības brīdinājumiem. Lai iestatītu šādus reklāmkarogus, izlasiet šo rakstu.

  1. Parādīt lietotājiem SSH brīdinājuma ziņojumu

20. Pārraudzīt lietotāju darbības

Ja jums ir darīšana ar daudziem lietotājiem, ir svarīgi savākt informāciju par katru lietotāju darbību un procesu, ko viņi patērē, un tos analizēt vēlāk vai, ja rodas kāda veida veiktspēja, drošības problēmas. Bet kā mēs varam uzraudzīt un apkopot informāciju par lietotāju darbībām.

Lietotāju darbību un procesu uzraudzībai sistēmā tiek izmantoti divi noderīgi rīki, ko sauc par “psacct” un “acct”. Šie rīki darbojas sistēmas fonā un nepārtraukti izseko katru lietotāja darbību sistēmā un resursus, ko patērē tādi pakalpojumi kā Apache, MySQL, SSH, FTP utt. Lai iegūtu papildinformāciju par instalēšanu, konfigurēšanu un lietošanu, apmeklējiet zemāk esošo URL.

  1. Pārraugiet lietotāju aktivitātes, izmantojot psacct vai acct komandas

21. Regulāri pārskatiet žurnālus

Pārvietojiet žurnālus īpašā žurnālu serverī, tas var neļaut iebrucējiem viegli modificēt vietējos žurnālus. Zemāk ir kopīgais Linux noklusējuma žurnālfailu nosaukums un to lietojums:

  1. /var/log/message - kur ir pieejami visas sistēmas žurnāli vai pašreizējo darbību žurnāli.
  2. /var/log/auth.log - autentifikācijas žurnāli.
  3. /var/log/kern.log - kodola žurnāli.
  4. /var/log/cron.log - Crond žurnāli (cron darbs).
  5. /var/log/maillog - pasta servera žurnāli.
  6. /var/log/boot.log - sistēmas sāknēšanas žurnāls.
  7. /var/log/mysqld.log - MySQL datu bāzes servera žurnāla fails.
  8. /var/log/secure - autentifikācijas žurnāls.
  9. /var/log/utmp vai/var/log/wtmp: pieteikšanās ierakstu fails.
  10. /var/log/yum.log: Yum žurnālfaili.

22. Svarīga faila dublēšana

Ražošanas sistēmā katastrofu atkopšanai ir nepieciešams veikt svarīgu failu dublēšanu un glabāt tos drošības glabātuvē, attālā vietnē vai ārpus tā.

23. NIC līmēšana

NIC savienošanā ir divu veidu režīmi, kas jāpiemin savienošanas saskarnē.

  1. mode = 0 - apaļais robins
  2. mode = 1 - aktīvs un dublēts

NIC līmēšana palīdz mums izvairīties no viena neveiksmes punkta. NIC savienojumā mēs sasaistām divas vai vairākas tīkla Ethernet kartes kopā un izveidojam vienu virtuālo saskarni, kur mēs varam piešķirt IP adresi sarunai ar citiem serveriem. Mūsu tīkls būs pieejams gadījumā, ja viena NIC karte kāda iemesla dēļ nedarbosies vai nebūs pieejama.

24. Saglabājiet/palaidiet kā tikai lasāmu

Linux kodols un ar to saistītie faili atrodas direktorijā/boot, kas pēc noklusējuma ir rakstīšanas un lasīšanas veids. Nomainot to uz tikai lasāmu, tiek samazināts kritisko sāknēšanas failu neatļautas modifikācijas risks. Lai to izdarītu, atveriet failu “/ etc/fstab”.

# vi /etc/fstab

Apakšā pievienojiet šādu rindu, saglabājiet un aizveriet to.

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

Lūdzu, ņemiet vērā, ka, ja nākotnē būs nepieciešams jaunināt kodolu, izmaiņas ir jāatiestata uz lasīšanas un rakstīšanas iespējām.

25. Ignorēt ICMP vai Broadcast Request

Pievienojiet šādu rindu failā “/etc/sysctl.conf”, lai ignorētu ping vai apraides pieprasījumu.

Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1

Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1

Ielādējiet jaunus iestatījumus vai izmaiņas, izpildot komandu

#sysctl -p

Ja iepriekšminētajā sarakstā esat palaidis garām kādu svarīgu drošības vai cietināšanas padomu vai ir kāds cits padoms, kas jāiekļauj sarakstā. Lūdzu, nometiet komentārus mūsu komentāru lodziņā. TecMint vienmēr ir ieinteresēts saņemt komentārus, ieteikumus, kā arī diskusijas par uzlabojumiem.