10 steg för att säkra Linuxservern i produktionsmiljö

nov 28, 2021
admin
Megha Pandey
Megha Pandey

Följ

5 oktober, 2017 – 6 min read

Säkring av Linux Server är viktigt att skydda våra data från hackare. Men att säkra en server behöver inte vara komplicerat .Vi bör anta en metod som skyddar vår server från de vanligaste attackerna tillsammans med effektiv administration .

Hur som helst, ta inte saker och ting för givet. Även de mest härdade servrarna kan kapas genom att utnyttja någon sårbar komponent som körs på servern.

Installera det du behöver

Den första regeln är att hålla din server smal och smidig. Installera endast de paket som du verkligen behöver. Om det finns oönskade paket; rensa ut. Ju färre paket desto mindre chans att det finns olämplig kod.

Sätt på SELinux

Security-Enhanced Linux (SELinux) är en säkerhetsmekanism för åtkomstkontroll som tillhandahålls i kärnan.

SELinux tillhandahåller 3 grundläggande driftlägen :

  • Enforcing:
  • Tillåtande: I det här läget kommer SELinux inte att tillämpa säkerhetspolicyn på systemet, utan endast varna och logga åtgärder.
  • Inaktiverad:

Det kan hanteras från filen ”/etc/selinux/config”, där du kan aktivera eller inaktivera det.

Säker konsolåtkomst

Du måste skydda Linux-servrars konsolåtkomst genom att inaktivera uppstart från externa enheter, t.ex. dvd:er/cd:er/usb-penna, efter BIOS-installation. Ställ också in lösenord för BIOS och grub boot loader för att skydda dessa inställningar.

Begränsad användning av gamla lösenord

Vi kan begränsa användarna till att använda samma gamla lösenord. Filen med gamla lösenord finns i /etc/security/opasswd. Detta kan göras med hjälp av PAM-modulen.

Öppna filen ”/etc/pam.d/system-auth” under RHEL/CentOS/Fedora.

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

Öppna filen ”/etc/pam.d/common-password” under Ubuntu/Debian/Linux.

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

Tillägg följande rad i avsnittet ”auth”.

auth sufficient pam_unix.so likeauth nullok

Tillägg nedanstående rad i avsnittet ”password” för att hindra en användare från att återanvända de tre senaste lösenorden.

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

Serveren kommer ihåg de tre senaste lösenorden. Om du försöker använda något av de tre senaste gamla lösenorden kommer du att få ett felmeddelande.

Kontrollera lyssnande portar

Använd kommandot ”netstat” för att visa öppna portar och motsvarande tjänster.

netstat -tunlp 

Desaktivera de oönskade tjänsterna från systemet med kommandot chkconfig och stäng de portar som inte behövs.

chkconfig serviceName off

Desaktivera root-inloggning

Det är inte tillrådligt att ssh-ansluta sig till servern som superanvändare (root). Vi bör inaktivera ssh som root-användare på servern, men innan vi gör det ska vi skapa en användare med sudo-befogenheter så att du kan ssh in på servern och utföra administrativa uppgifter. När du väl är inloggad på servern kan du alltid byta användare till root om det behövs.

Skapa en ny användare :

useradd user1

Skapa ett lösenord för den tillagda användaren :

passwd user1

Giv den nyligen tillagda användaren sudo-behörigheter :

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

SSH till servern med den nya användaren och se till att inloggningen fungerar.

Vi kommer nu att inaktivera root-inloggning, vilket innebär att ingen kan ssh:a eller logga in på servern som root-användare. För att göra detta öppnar du konfigurationsfilen sshd:

nano /etc/ssh/sshd_conf

Nästan, avkommenterar du raden som säger

PermitRootLogin no

Spara och stäng sedan den här filen och starta om tjänsten

service sshd restart

Viktigt: Logga inte ut från servern ännu. Testa först om du framgångsrikt kan ssh in på servern med hjälp av den tidigare skapade användaren. Öppna en annan instans av terminalen och ssh in på servern med användaren du tidigare skapat. Om allt fungerar bra kan du säkert logga ut från servern som root.

Ändra port

Vi kan ändra standardporten för SSH för att lägga till ett lager av opacitet för att hålla din server säker .

Öppna filen /etc/ssh/sshd_config

ersätt standardport 22 med ett annat portnummer, till exempel 1110

Spara & avsluta filen

service sshd restart

Nu kan du för att logga in definiera portnummer.

ssh username@IP -p 1110

Disaktivera Ctrl+Alt+Delete i Inittab

Om du trycker på Ctrl+Alt+Delete startar din server om. Det är därför alltid tillrådligt att inaktivera detta eftersom någon av misstag kan starta om systemet.

Ctrl+Alt+Del-åtgärden definieras i /etc/init/control-alt-delete.conf .Kommentera nedanstående rad

Lösenordslös inloggning

Vi kan enkelt logga in på vår server via SSH utan lösenord genom att generera ssh-nycklar. Var bara försiktig så att du bara kan logga in på din server från den maskin på vilken du genererade ssh-nycklarna

Generering av SSH-nycklar :

ssh-keygen - t rsa

Kopiera din offentliga SSH-nyckel , lägg sedan till samma i servern

cat ~/.ssh/id_rsa.pub

För att lägga till ssh-nycklar i servern

Antag att vi har user-user1 för att ge ssh-nyckel åtkomst till servern

cd /home/user1
ls -ll

Skapa en .ssh-katalogen och i den skapar du en fil som heter authorized_keys och lägger till användarens offentliga ssh-nyckel i den samma

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

Lägg till den offentliga ssh-nyckeln och byt sedan ägare till filen

chown user1 authorized_keys

Disable ssh login

Redigera /etc/ssh/sshd_config

Passwordauthentication no
PermitRootLogin no

Nu, endast den auktoriserade användaren kan logga in på servern med kommandot

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

Fail2Ban för SSH-inloggning

Fail2ban fungerar genom att dynamiskt ändra brandväggsreglerna för att förbjuda adresser som utan framgång har försökt logga in ett visst antal gånger.

Installera Fail2ban :

sudo apt-get update
apt-get install fail2ban

Skapa en ny fil jail.local och kopiera innehållet i jail.config till densamma och gör ändringarna i filen jail.local endast

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

Redigera /etc/fail2ban/jail.local-filen

Gör önskade ändringar:


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)

Starta sedan om fail2ban-tjänsterna

service fail2ban restart

IP kan blockeras permanent genom att ställa in bantime = -1.

Notera: FAIL2BAN blockerar Global IP .

Säkerhet brukade vara en olägenhet ibland, men nu är det en nödvändighet hela tiden – Martina Navratilova

Tack för att du läste . Om du tyckte att den här artikeln var till hjälp skulle några applåder betyda mycket!

Stay tuned 🙂

Lämna ett svar

Din e-postadress kommer inte publiceras.