10 steg för att säkra Linuxservern i produktionsmiljö
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 🙂