10 trin til at sikre Linux Server til produktionsmiljø

nov 28, 2021
admin
Megha Pandey
Megha Pandey

Follow

5. oktober, 2017 – 6 min read

Sikring af Linux Server er afgørende for at beskytte vores data fra hackere. Men sikring af en server behøver ikke at være kompliceret .Vi bør vedtage en metode, der vil beskytte vores server mod de mest hyppige angreb sammen med effektiv administration .

Du skal dog ikke tage tingene for givet. Selv de mest hærdede servere kan blive kapret ved at udnytte enhver sårbar komponent, der kører på den pågældende server.

Installer det, du har brug for

Den første regel er at holde din server slank og middelmådig. Installer kun de pakker, som du virkelig har brug for. Hvis der er uønskede pakker; rens dem ud. Jo færre pakker, jo mindre chance for ikke-patchet kode.

Tænd for SELinux

Security-Enhanced Linux (SELinux) er en sikkerhedsmekanisme til adgangskontrol, der leveres i kernen.

SELinux giver 3 grundlæggende funktionsmåder :

  • Enforcing: Dette er standardtilstanden, som aktiverer og håndhæver SELinux-sikkerhedspolitikken på maskinen.
  • Tilladende: I denne tilstand vil SELinux ikke håndhæve sikkerhedspolitikken på systemet, kun advare og logge handlinger.
  • Deaktiveret: SELinux vil ikke håndhæve sikkerhedspolitikken på systemet, kun advare og logge handlinger.
  • Deaktiveret: SELinux er slået fra.

Det kan administreres fra filen ‘/etc/selinux/config’, hvor du kan aktivere eller deaktivere det.

Sikker konsoladgang

Du skal beskytte Linux-serveres konsoladgang ved at deaktivere opstart fra eksterne enheder som dvd’er/cd’er/USB-penne efter BIOS-opsætning. Indstil også BIOS og grub boot loader password for at beskytte disse indstillinger.

Begræns brugen af gamle adgangskoder

Vi kan begrænse brugerne til at bruge de samme gamle adgangskoder. Den gamle adgangskodefil ligger på /etc/security/opasswd. Dette kan gøres ved at bruge PAM-modulet.

Åbn filen ‘/etc/pam.d/system-auth’ under RHEL / CentOS / Fedora.

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

Åbn filen ‘/etc/pam.d/common-password’ under Ubuntu/Debian/Linux.

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

Føj følgende linje til afsnittet ‘auth’.

auth sufficient pam_unix.so likeauth nullok

Føj nedenstående linje til afsnittet ‘password’ for at forhindre en bruger i at genbruge de sidste 3 adgangskoder.

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

Sidste 3 adgangskoder huskes af serveren. Hvis du forsøger at bruge et af de sidste 3 gamle adgangskoder, vil du få en fejl som.

Check Listening Ports

Brug kommandoen ‘netstat’ til at se åbne porte og tilsvarende tjenester.

netstat -tunlp 

Disabler de uønskede tjenester fra systemet ved hjælp af kommandoen ‘chkconfig’ og luk de porte, der ikke er nødvendige.

chkconfig serviceName off

Disable Root login

Det er ikke tilrådeligt at ssh ind på din server som superbruger (root). Vi bør deaktivere ssh som root-bruger på serveren, men før vi gør det, skal vi oprette en bruger med sudo beføjelser, så du kan ssh ind på serveren og udføre administrative opgaver. Når du er logget ind på serveren, kan du altid skifte bruger til root, hvis det er nødvendigt.

Opret en ny bruger :

useradd user1

Opret adgangskode til den tilføjede bruger :

passwd user1

Giv den nyligt tilføjede bruger sudo tilladelser :

echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers

SSH til serveren med den nye bruger og sørg for, at login virker.

Vi vil nu deaktivere root-login, hvilket betyder, at ingen kan ssh’e eller logge ind på serveren som root-bruger. For at gøre det skal du åbne konfigurationsfilen sshd:

nano /etc/ssh/sshd_conf

Næst skal du udkommentere den linje, der siger

PermitRootLogin no

Så gem og luk denne fil, og genstart tjenesten

service sshd restart

Vigtigt: Du må ikke logge ud af serveren endnu. Test først, om du med succes kan ssh’e ind på serveren ved hjælp af den tidligere oprettede bruger. Åbn en anden instans af terminalen, og ssh ind på serveren med den bruger, du tidligere har oprettet. Hvis alt fungerer fint, kan du sikkert logge ud af serveren som root.

Ændre port

Vi kan ændre standard SSH-porten for at tilføje et lag af uigennemsigtighed for at holde din server sikker .

Åbn filen /etc/ssh/sshd_config

erstat standardport 22 med et andet portnummer, lad os sige 1110

Save & Afslut fra filen

service sshd restart

Nu skal du logge ind definere port nr.

ssh username@IP -p 1110

Disabler Ctrl+Alt+Slet i Inittab

Hvis du trykker på Ctrl+Alt+Slet vil din server tage din server til genstart. Så det er altid tilrådeligt at deaktivere dette, da nogen ved en fejltagelse kan genstarte systemet.

Den ctrl+Alt+Del handling er defineret i /etc/init/control-alt-delete.conf .Kommenter nedenstående linje

Password-less Login

Vi kan nemt logge ind på vores server via SSH uden adgangskode ved at generere ssh-nøgler. Du skal bare være opmærksom på, at du kun kan logge ind på din server fra den maskine, hvor du har genereret ssh-nøglerne

Generering af SSH-nøgler :

ssh-keygen - t rsa

Kopier din offentlige SSH-nøgle , og tilføj derefter den samme i serveren

cat ~/.ssh/id_rsa.pub

For at tilføje ssh-nøgler i serveren

Sæt at vi har bruger-user1 til at give ssh-nøgleadgang til serveren

cd /home/user1
ls -ll

Opret en .ssh-mappen og opret i den en fil med navnet authorized_keys og tilføj brugerens offentlige ssh-nøgle i den samme

mkdir .ssh
cd /home/admin/.ssh
vim authorized_keys

Føj den offentlige SSH-nøgle til, og skift derefter ejeren af filen

chown user1 authorized_keys

Disable ssh login

Rediger /etc/ssh/sshd_config

Passwordauthentication no
PermitRootLogin no

Nu, kan kun den autoriserede bruger logge ind på serveren med kommandoen

ssh user-name@serverIP -p(port Number)

Fail2Ban for SSH-login

Fail2ban fungerer ved dynamisk at ændre firewallreglerne for at forbyde adresser, der uden held har forsøgt at logge ind et bestemt antal gange.

Installer Fail2ban :

sudo apt-get update
apt-get install fail2ban

Opret en ny fil jail.local og kopier indholdet af jail.config til den samme, og lav kun ændringerne i filen jail.local

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Rediger /etc/fail2ban/jail.local-filen

Før de ønskede ændringer:


enabled = true
port = ssh ( provide the port number if the default port is changed )
protocol = tcp
filter = sshd
logpath = /var/log/secure
maxretry = 3 ( max no. of tries after which the host should be banned)
findtime = 600 (This parameter sets the window that fail2ban will pay attention to when looking for repeated failed authentication attempts in seconds)
bantime = 600 (time duration for which the host is banned -in seconds)

Derpå genstartes fail2ban-tjenesterne

service fail2ban restart

IP kan blokeres permanent ved at indstille bantime = -1.

Bemærk: FAIL2BAN vil blokere den globale IP .

Sikkerhed plejede at være en ulempe nogle gange, men nu er det en nødvendighed hele tiden – Martina Navratilova

Tak for læsning . Hvis du fandt denne artikel nyttig, ville nogle klapsalver betyde meget!

Stay tuned 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.