Linux-system är säkra genom design och ger robusta administrationsverktyg. Men oavsett hur väldesignat ett system är beror dess säkerhet på användaren.
Nybörjare tar ofta år att hitta den bästa säkerhetspolicyn för sina maskiner. Det är därför vi delar med oss av dessa viktiga Linux-härdningstips för nya användare som du. Ge dem ett försök.
1. Tillämpa policyer för starka lösenord
Lösenord är den primära autentiseringsmetoden för de flesta system. Oavsett om du är hemanvändare eller professionell, är det ett måste att upprätthålla solida lösenord. Inaktivera först tomma lösenord. Du kommer inte att tro hur många som fortfarande använder dem.
awk -F: '($2 == "") {print}' /etc/shadow
Kör kommandot ovan som root för att se vilka konton som har tomma lösenord. Om du hittar någon med ett tomt lösenord, lås användaren direkt. Du kan göra detta genom att använda följande.
passwd -l USERNAME
Du kan också ställa in lösenordsåldring för att säkerställa att användare inte kan använda gamla lösenord. Använd kommandot chage för att göra detta från din terminal.
chage -l USERNAME
Detta kommando visar det aktuella utgångsdatumet. Använd kommandot nedan för att ställa in lösenordets utgång efter 30 dagar. Användare kan använda Linux-lösenordshanterare för att hålla onlinekonton säkra.
chage -M 30 USERNAME
2. Säkerhetskopiera väsentliga data
Om du menar allvar med dina data, ställ in regelbundna säkerhetskopior. På så sätt, även om ditt system kraschar, kan du återställa data snabbt. Men att välja rätt backupmetod är avgörande för Linux-härdning.
Om du är en hemanvändare kan det räcka med att klona data till en hårddisk. Företag behöver dock sofistikerade säkerhetskopieringssystem som erbjuder snabb återställning.
3. Undvik äldre kommunikationsmetoder
Linux stöder många fjärrkommunikationsmetoder. Men äldre Unix-tjänster som telnet, rlogin och ftp kan utgöra allvarliga säkerhetsproblem. Så försök att undvika dem. Du kan ta bort dem helt för att minska säkerhetsproblemen i samband med dem.
apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd
> rsh-server rsh-redone-server
Detta kommando tar bort några ofta använda men föråldrade tjänster från Ubuntu/Debian-maskiner. Om du använder ett RPM-baserat system, använd följande istället.
yum erase xinetd ypserv tftp-server telnet-server rsh-server
4. Säkra OpenSSH
SSH-protokollet är den rekommenderade metoden för fjärrkommunikation för Linux. Se till att säkra din OpenSSH-serverkonfiguration (sshd). Du kan lära dig mer om hur du konfigurerar en SSH-server här.
Redigera /etc/ssh/sshd_config fil för att ställa in säkerhetspolicyer för ssh. Nedan finns några vanliga säkerhetspolicyer som alla kan använda.
PermitRootLogin no # disables root login
MaxAuthTries 3 # limits authentication attempts
PasswordAuthentication no # disables password authentication
PermitEmptyPasswords no # disables empty passwords
X11Forwarding no # disables GUI transmission
DebianBanner no # disbales verbose banner
AllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP range
5. Begränsa CRON-användning
CRON är en robust jobbschemaläggare för Linux. Det tillåter administratörer att schemalägga uppgifter i Linux med hjälp av crontab. Därför är det viktigt att begränsa vem som kan köra CRON-jobb. Du kan ta reda på alla aktiva cronjobs för en användare genom att använda följande kommando.
crontab -l -u USERNAME
Kontrollera jobben för varje användare för att ta reda på om någon utnyttjar CRON. Du kanske vill blockera alla användare från att använda crontab förutom du. Kör följande kommando för detta.
echo $(whoami) >> /etc/cron.d/cron.allow
# echo ALL >> /etc/cron.d/cron.deny
6. Genomför PAM-moduler
Linux PAM (Pluggable Authentication Modules) erbjuder kraftfulla autentiseringsfunktioner för appar och tjänster. Du kan använda olika PAM-policyer för att säkra systemets inloggning. Till exempel, kommandona nedan begränsar återanvändning av lösenord.
# CentOS/RHEL
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/system-auth
# Ubuntu/Debian
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/common-password
De begränsar användningen av lösenord som har använts under de senaste fem veckorna. Det finns många fler PAM-policyer som ger extra lager av säkerhet.
7. Ta bort oanvända paket
Att ta bort oanvända paket minskar attackytan på din maskin. Så vi rekommenderar att du tar bort sällan använda paket. Du kan se alla för närvarande installerade paket med hjälp av kommandona nedan.
yum list installed # CentOS/RHEL
apt list --installed # Ubuntu/Debian
Säg att du vill ta bort det oanvända paketet vlc. Du kan göra detta genom att köra följande kommandon som root.
yum remove vlc # CentOS/RHEL
apt remove vlc # Ubuntu/Debian
8. Säkra kärnparametrar
Ett annat effektivt sätt för Linux-härdning är att säkra kärnparametrarna. Du kan konfigurera dessa parametrar med sysctl eller genom att ändra konfigurationsfilen. Nedan finns några vanliga konfigurationer.
kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stack
kernel.panic=10 # reboot after 10 sec following a kernel panic
net.ipv4.icmp_ignore_bogus_error_responses # protects bad error messages
net.ipv4.ip_forward=0 # disables IP forwarding
net.ipv4.icmp_ignore_bogus_error_responses=1 # ignores ICP errors
Detta är bara några grundläggande konfigurationer. Du kommer att lära dig olika sätt att konfigurera kärnan med erfarenhet.
9. Konfigurera iptables
Linux-kärnor tillhandahåller robusta filtreringsmetoder för nätverkspaket via dess Netfilter API. Du kan använda iptables för att interagera med detta API och ställa in anpassade filter för nätverksförfrågningar. Nedan finns några grundläggande iptables-regler för säkerhetsfokuserade användare.
-A INPUT -j REJECT # reject all inbound requests
-A FORWARD -j REJECT # reject traffic forwarding
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost
# allow ping requests
-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings
# allow established/related connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow DNS lookups
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# allow http/https requests
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
# allow SSH access
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
10. Övervaka loggar
Du kan använda loggar för att bättre förstå din Linux-maskin. Ditt system lagrar flera loggfiler för appar och tjänster. Vi skisserar de väsentliga här.
/var/log/auth.log — loggar auktoriseringsförsök /var/log/daemon.log — loggar bakgrundsappar /var/log/debug — loggar felsökningsdata /var/log/kern.log — – loggar kärndata /var/log/syslog — loggar systemdata /var/log/faillog — loggar misslyckade inloggningar
Bästa Linux-härdningstips för nybörjare
Att säkra ett Linux-system är inte så svårt som du tror. Du kan stärka säkerheten genom att följa några av tipsen som nämns i den här guiden. Du kommer att bemästra fler sätt att säkra Linux när du får erfarenhet.
Om författaren
Rubaiat Hossain (47 artiklar publicerade)
Rubaiat är en CS-examen med en stark passion för öppen källkod. Förutom att vara en Unix-veteran, är han också intresserad av nätverkssäkerhet, kryptografi och funktionell programmering. Han är en ivrig samlare av begagnade böcker och har en aldrig sinande beundran för klassisk rock.
Mer från Rubaiat Hossain
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
