10 trin til at sikre Linux Server til produktionsmiljø
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 🙂