25 Hærdningssikkerhedstip til Linux-servere


Alle siger, at Linux er sikker som standard og er enig i en vis udstrækning (det kan diskuteres emner). Linux har dog indbygget sikkerhedsmodel på plads som standard. Brug for at tune det op og tilpasse efter dit behov, hvilket kan hjælpe med at gøre et mere sikkert system. Linux er sværere at administrere, men tilbyder mere fleksibilitet og konfigurationsmuligheder.

At sikre et system i en produktion fra hænderne på hackere og crackere er en udfordrende opgave for en systemadministrator. Dette er vores første artikel relateret til "Sådan sikres Linux-boksen" eller "Hærdning af en Linux-boks". I dette indlæg forklarer vi 25 nyttige tip og tricks til at sikre dit Linux-system. Håb, nedenstående tip og tricks hjælper dig med at udvide dig til at sikre dit system.

1. Fysisk systemsikkerhed

Konfigurer BIOS til at deaktivere opstart fra CD/DVD, eksterne enheder, diskettedrev i BIOS. Derefter skal du aktivere BIOS-adgangskode og også beskytte GRUB med adgangskode for at begrænse fysisk adgang til dit system.

  1. Indstil GRUB-adgangskode for at beskytte Linux-servere

2. Diskpartitioner

Det er vigtigt at have forskellige partitioner for at opnå højere datasikkerhed, hvis der sker en katastrofe. Ved at oprette forskellige partitioner kan data adskilles og grupperes. Når der opstår en uventet ulykke, vil kun data for denne partition blive beskadiget, mens dataene for andre partitioner overlevede. Sørg for, at du skal have følgende separate partitioner, og at tredjepartsapplikationer skal installeres på separate filsystemer under/opt.

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

3. Minimer pakker for at minimere sårbarhed

Vil du virkelig have alle slags tjenester installeret ?. Det anbefales at undgå at installere ubrugelige pakker for at undgå sårbarheder i pakker. Dette kan minimere risikoen for, at kompromis med en tjeneste kan føre til kompromis med andre tjenester. Find og fjern eller deaktiver uønskede tjenester fra serveren for at minimere sårbarhed. Brug kommandoen 'chkconfig' til at finde ud af tjenester, der kører på runlevel 3.

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

Når du har fundet ud af, at en uønsket tjeneste kører, skal du deaktivere dem ved hjælp af følgende kommando.

# chkconfig serviceName off

Brug RPM-pakkehåndteringen såsom “yum” eller “apt-get” -værktøjer til at liste alle installerede pakker på et system og fjerne dem ved hjælp af følgende kommando.

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

  1. 5 chkconfig kommandoeksempler
  2. 20 Praktiske eksempler på RPM-kommandoer
  3. 20 Linux YUM-kommandoer til Linux-pakkehåndtering
  4. 25 APT-GET- og APT-CACHE-kommandoer til at styre pakkehåndtering

4. Kontroller lytte-netværksporte

Ved hjælp af netværkskommandoen ‘netstat’ kan du se alle åbne porte og tilknyttede programmer. Som jeg sagde ovenfor, brug kommandoen 'chkconfig' til at deaktivere alle uønskede netværkstjenester fra systemet.

# netstat -tulpn

  1. 20 Netstat-kommandoer til netværksadministration i Linux

5. Brug Secure Shell (SSH)

Telnet- og rlogin-protokoller bruger almindelig tekst, ikke krypteret format, hvilket er sikkerhedsbrudene. SSH er en sikker protokol, der bruger krypteringsteknologi under kommunikation med serveren.

Log ind aldrig direkte som root, medmindre det er nødvendigt. Brug “sudo” til at udføre kommandoer. sudo er specificeret i/etc/sudoers-filen kan også redigeres med hjælpeprogrammet “visudo”, der åbnes i VI-editoren.

Det anbefales også at ændre standard SSH 22-portnummer med et andet portnummer på højere niveau. Åbn SSH-hovedkonfigurationsfilen, og lav nogle af følgende parametre for at begrænse brugernes adgang.

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

  1. 5 bedste fremgangsmåder til sikring og beskyttelse af SSH-server

6. Hold systemet opdateret

Hold altid systemet opdateret med de nyeste udgivelsesrettelser, sikkerhedsrettelser og kerne, når det er tilgængeligt.

# yum updates
# yum check-update

7. Lockdown Cronjobs

Cron har sin egen indbyggede funktion, hvor det gør det muligt at specificere, hvem der kan og ikke måske vil køre job. Dette styres af brugen af filer kaldet /etc/cron.allow og /etc/cron.deny. For at låse en bruger ved hjælp af cron skal du blot tilføje brugernavne i cron.deny og tillade en bruger at køre cron add i cron.allow-fil. Hvis du vil deaktivere alle brugere fra at bruge cron, skal du tilføje linjen 'ALL' til filen cron.deny.

# echo ALL >>/etc/cron.deny

  1. 11 Cron Scheduling Eksempler i Linux

8. Deaktiver USB-nøgle for at registrere

Mange gange sker det, at vi vil begrænse brugerne fra at bruge USB-stick i systemer for at beskytte og sikre data mod stjæling. Opret en fil ‘/etc/modprobe.d/no-usb’, og tilføjelse under linjen registrerer ikke USB-lagring.

install usb-storage /bin/true

9. Tænd SELinux

Sikkerhedsforbedret Linux (SELinux) er en obligatorisk adgangskontrolsikkerhedsmekanisme, der findes i kernen. Deaktivering af SELinux betyder at fjerne sikkerhedsmekanismen fra systemet. Tænk to gange omhyggeligt, før du fjerner det, hvis dit system er knyttet til internettet og adgang til offentligheden, så tænk lidt mere på det.

SELinux giver tre grundlæggende driftsformer, og det er de.

  1. Håndhævelse: Dette er standardtilstand, der aktiverer og håndhæver SELinux-sikkerhedspolitikken på maskinen.
  2. Tilladelig: I denne tilstand håndhæver SELinux ikke sikkerhedspolitikken på systemet, kun advarer og logger handlinger. Denne tilstand er meget nyttig i forbindelse med fejlfinding af SELinux-relaterede problemer.
  3. Deaktiveret: SELinux er slået fra.

Du kan se den aktuelle status for SELinux-tilstand fra kommandolinjen ved hjælp af kommandoerne 'system-config-selinux', 'getenforce' eller 'sestatus'.

# sestatus

Hvis det er deaktiveret, skal du aktivere SELinux ved hjælp af følgende kommando.

# setenforce enforcing

Det kan også administreres fra '/ etc/selinux/config' fil, hvor du kan aktivere eller deaktivere den.

10. Fjern KDE/GNOME-desktops

Det er ikke nødvendigt at køre X Window-desktops som KDE eller GNOME på din dedikerede LAMP-server. Du kan fjerne eller deaktivere dem for at øge sikkerheden for serveren og ydeevnen. For at deaktivere simpelt skal du åbne filen ‘/ etc/inittab’ og indstille kørselsniveau til 3. Hvis du ønsker at fjerne det helt fra systemet, skal du bruge kommandoen nedenfor.

# yum groupremove "X Window System"

11. Sluk for IPv6

Hvis du ikke bruger en IPv6-protokol, skal du deaktivere den, fordi de fleste applikationer eller politikker ikke kræver IPv6-protokol, og i øjeblikket er det ikke påkrævet på serveren. Gå til netværkskonfigurationsfil og tilføj følgende linjer for at deaktivere den.

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

12. Begræns brugere til at bruge gamle adgangskoder

Dette er meget nyttigt, hvis du vil tillade brugere at bruge samme gamle adgangskoder. Den gamle adgangskodefil findes på/etc/security/opasswd. Dette kan opnås ved hjælp af PAM-modulet.

Åbn '/etc/pam.d/system-auth' fil under RHEL/CentOS/Fedora.

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

Åbn '/etc/pam.d/common-password' fil under Ubuntu/Debian/Linux Mint.

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

Føj følgende linje til 'auth' sektionen.

auth        sufficient    pam_unix.so likeauth nullok

Føj følgende linje til afsnittet 'adgangskode' for at forhindre en bruger i at genbruge de sidste 5 adgangskoder for hans eller hende.

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

Kun de sidste 5 adgangskoder kan huskes af serveren. Hvis du forsøgte at bruge en af de sidste 5 gamle adgangskoder, får du en fejl som.

Password has been already used. Choose another.

13. Sådan kontrolleres brugerens udløb af adgangskode

I Linux gemmes brugerens adgangskoder i '/ etc/shadow' fil i krypteret format. For at kontrollere adgangskodens udløb af brugerens, skal du bruge kommandoen 'chage'. Det viser oplysninger om adgangskodens udløbsoplysninger sammen med den sidste dato for ændring af adgangskode. Disse detaljer bruges af systemet til at beslutte, hvornår en bruger skal ændre sin adgangskode.

Brug følgende kommando for at få vist eksisterende brugers aldringsoplysninger såsom udløbsdato og -tid.

#chage -l username

Brug følgende kommando til at ændre adgangskodealdring for enhver bruger.

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

  1. -M Indstil maksimalt antal dage
  2. -m Indstil minimum antal dage
  3. -W Indstil antallet af dage med advarsel

14. Lås og oplås konto manuelt

Lås- og oplåsningsfunktionerne er meget nyttige, i stedet for at fjerne en konto fra systemet kan du låse den i en uge eller en måned. For at låse en bestemt bruger kan du bruge følgende kommando.

# passwd -l accountName

Bemærk: Den låste bruger er stadig kun tilgængelig for root-brugere. Låsning udføres ved at erstatte krypteret adgangskode med en (!) Streng. Hvis nogen forsøger at få adgang til systemet ved hjælp af denne konto, får han en lignende fejl som nedenfor.

# su - accountName
This account is currently not available.

For at låse op eller aktivere adgang til en låst konto skal du bruge kommandoen som. Dette fjerner (!) Streng med krypteret adgangskode.

# passwd -u accountName

15. Håndhævelse af stærkere adgangskoder

Et antal brugere bruger bløde eller svage adgangskoder, og deres adgangskode kan blive hacket med en ordbogsbaseret eller brute-force angreb. Modulet 'pam_cracklib' er tilgængeligt i PAM-modulstakken (Pluggable Authentication Modules), som tvinger brugeren til at indstille stærke adgangskoder. Åbn følgende fil med en editor.

Læs også:

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

Og tilføj linje ved hjælp af kreditparametre som (lcredit, ucredit, dcredit og/eller ocredit henholdsvis små, store bogstaver, cifre og andet)

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

16. Aktivér Iptables (Firewall)

Det anbefales stærkt at aktivere Linux-firewall for at sikre uautoriseret adgang til dine servere. Anvend regler i iptables på filtre for indgående, udgående og videresendende pakker. Vi kan specificere kilde og destinationsadresse, der skal tillades og nægtes i specifikt udp/tcp-portnummer.

  1. Grundlæggende vejledning og tip til IPTables

17. Deaktiver Ctrl + Alt + Slet i Inittab

I de fleste Linux-distributioner, skal du trykke på 'CTRL-ALT-DELETE' for at dit system genstarter processen. Så det er ikke en god ide at have denne mulighed aktiveret i det mindste på produktionsservere, hvis nogen fejlagtigt gør dette.

Dette er defineret i '/ etc/inittab' fil, hvis du ser nøje i den fil, vil du se en linje, der ligner nedenunder. Som standard kommenteres ikke linjen. Vi er nødt til at kommentere det. Denne bestemte nøglesekvenssignalering lukker et system ned.

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

18. Kontrol af konti for tomme adgangskoder

Enhver konto, der har en tom adgangskode, betyder, at den åbnes for uautoriseret adgang til nogen på nettet, og den er en del af sikkerheden inden for en Linux-server. Så du skal sørge for, at alle konti har stærke adgangskoder, og at ingen har nogen autoriseret adgang. Tomme adgangskodekonti er sikkerhedsrisici, og det kan let hackes. Brug følgende kommando for at kontrollere, om der var konti med tom adgangskode.

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

19. Vis SSH-banner inden login

Det er altid en bedre idé at have et lovligt banner eller sikkerhedsbannere med nogle sikkerhedsadvarsler før SSH-godkendelse. Læs følgende artikel for at indstille sådanne bannere.

  1. Vis SSH-advarselsmeddelelse til brugere

20. Overvåg brugeraktiviteter

Hvis du har at gøre med mange brugere, er det vigtigt at indsamle oplysningerne om hver brugeraktivitet og processer, der forbruges af dem, og analysere dem på et senere tidspunkt eller i tilfælde af nogen form for ydeevne, sikkerhedsproblemer. Men hvordan vi kan overvåge og indsamle oplysninger om brugeraktiviteter.

Der er to nyttige værktøjer kaldet 'psacct' og 'acct' bruges til at overvåge brugeraktiviteter og processer på et system. Disse værktøjer kører i en systembaggrund og sporer kontinuerligt hver brugeraktivitet på et system og ressourcer, der forbruges af tjenester såsom Apache, MySQL, SSH, FTP osv. For mere information om installation, konfiguration og brug, se nedenstående url.

  1. Overvåg brugeraktivitet med psacct- eller acct-kommandoer

21. Gennemgå logfilerne regelmæssigt

Flyt logfiler i dedikeret log-server, dette forhindrer måske ubudne gæster i at ændre lokale logfiler. Nedenfor er det almindelige Linux-standardlogfils navn og deres anvendelse:

  1. /var/log/message - Hvor hele systemlogfiler eller aktuelle aktivitetslogfiler er tilgængelige.
  2. /var/log/auth.log - Autentificeringslogfiler.
  3. /var/log/kern.log - Kernelogfiler.
  4. /var/log/cron.log - Crond logs (cron job).
  5. /var/log/maillog - Mailserverlogfiler.
  6. /var/log/boot.log - Systemstartlog.
  7. /var/log/mysqld.log - MySQL-databaseserver-logfil.
  8. /var/log/secure - Godkendelseslog.
  9. /var/log/utmp eller/var/log/wtmp: Logfil registrerer fil.
  10. /var/log/yum.log: Yum-logfiler.

22. Vigtig backup af filer

I et produktionssystem er det nødvendigt at tage sikkerhedskopier af vigtige filer og opbevare dem i sikkerhedshvelv, fjerntliggende sted eller uden for stedet for katastrofegendannelse.

23. NIC-binding

Der er to typer tilstande i NIC-binding, skal nævnes i bonding-interface.

  1. mode = 0 - Round Robin
  2. -tilstand = 1 - Aktiv og backup

NIC Bonding hjælper os med at undgå et enkelt fejlpunkt. I NIC-binding binder vi to eller flere netværks-Ethernet-kort sammen og laver et enkelt virtuelt interface, hvor vi kan tildele IP-adresse til at tale med andre servere. Vores netværk vil være tilgængeligt, hvis et NIC-kort er nede eller utilgængeligt på grund af en eller anden grund.

24. Gem/start som skrivebeskyttet

Linux-kernen og dens relaterede filer er i/boot-biblioteket, som som standard er read-skriv. Ændring af den til skrivebeskyttet reducerer risikoen for uautoriseret ændring af kritiske opstartsfiler. For at gøre dette skal du åbne filen “/ etc/fstab”.

# vi /etc/fstab

Tilføj følgende linje i bunden, gem og luk den.

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

Bemærk, at du skal nulstille ændringen til læse/skrive, hvis du har brug for at opgradere kernen i fremtiden.

25. Ignorer ICMP eller Broadcast Request

Tilføj følgende linje i "/etc/sysctl.conf" -filen for at ignorere ping- eller udsendelsesanmodning.

Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1

Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1

Indlæs nye indstillinger eller ændringer ved at køre følgende kommando

#sysctl -p

Hvis du har gået glip af noget vigtigt sikkerheds- eller hærdningstip på ovenstående liste, eller hvis du har et andet tip, der skal medtages på listen. Send dine kommentarer i vores kommentarfelt. TecMint er altid interesseret i at modtage kommentarer, forslag samt diskussion til forbedring.