Härdning är processen att minska sårbarheter och säkra ett system från möjliga attackpunkter. Att minska sårbarheter inkluderar att ta bort onödiga tjänster, användarnamn och inloggningar och inaktivera onödiga portar. I den här artikeln kommer vi att visa dig hur du kan härda en Ubuntu-server.

Krav

Ubuntu 14.04 LTS-server med Open SSH installerad.

Komma igång: Uppdatera systemet

Att hålla systemet uppdaterat är nödvändigt efter installation av något operativsystem. Detta kommer att minska kända svagheter som finns i ditt system.

För Ubuntu 14.04 kör följande:

 sudo apt-få uppdatering sudo apt-få uppgradering sudo apt-få autoremove sudo apt-get autoclean 

Aktivera automatiska säkerhetsuppdateringar

Att aktivera automatiska uppdateringar kan vara mycket viktigt för att säkra din server. För att installera "obevakade uppgraderingar", kör

 sudo apt-get installera obevakade uppgraderingar 

För att aktivera det, kör följande kommando:

 sudo dpkg-reconfigure -plugga obevakade uppgraderingar 

Detta skapar filen "/etc/apt/apt.conf.d/20auto-upgrades" nedan.

 APT :: Periodic :: Update-Package-Lists "1"; APT :: Periodisk :: obevakad uppgradering "1"; 

Skapa "skugganvändare" med sudo-krafter

Att använda en "skugganvändare" istället för rotkontot är nödvändigt av säkerhetsskäl. Du kan skapa en användare som inte är lätt för andra användare att gissa. I denna handledning använder vi "maketech111" som användarnamn.

För att skapa en användare, kör följande kommando:

 sudo useradd -d / home / maketech111-s / bin / bash -m maketech111 

För att ge användaren sudo-åtkomst, kör följande kommando:

 sudo usermod -a -G sudo maketech111 

För att ange ett lösenord, kör följande kommando:

 sudo passwd maketech111 

Obs! Kontrollera att ditt lösenord är minst åtta tecken långt och innehåller en komplex kombination av siffror, bokstäver och skiljetecken.

För att ta bort lösenordsprompten för sudo, rediger sudoersfilen.

 sudo nano / etc / sudoers 

Lägg till / redigera som beskrivs nedan.

 maketech111 ALL = (ALL) NOPASSWD: ALL 

Spara filen och avsluta.

Inaktivera root-konto

Inaktivera rootkontot är nödvändigt av säkerhetsskäl.

För att inaktivera rotkontot, använd följande kommando:

 sudo passwd -l root 

Om du behöver återaktivera kontot, kör följande kommando:

 sudo passwd -u root 

Lägg till en SWAP-partition

Vissa Ubuntu-servrar är inte konfigurerade med SWAP. SWAP används när mängden totalt fysiskt minne (RAM) är fullt.

För att söka efter SWAP-utrymme, kör följande kommando:

 sudo swapon -s 

Om det inte finns någon SWAP-fil, ska du få en följande utmatning.

 Filnamn Typ Storlek Används Prioritet 

För att skapa 4 GB SWAP-filen måste du använda kommandot "dd".

 sudo dd om = / dev / noll av = / swapfile bs = 4M count = 1000 

För att konfigurera SWAP-filen, kör följande kommando:

 sudo mkswap / swapfile 

För att aktivera swapfilen kör du

 sudo swapon / swapfile sudo swapon -s 

Detta kommer att mata ut som följande:

 Filnamn Typ Storlek Används Prioritet / swapfil fil 4096000 0 -1 

För att aktivera det permanent, redigera filen "/ etc / fstab".

 sudo nano / etc / fstab 

Lägg till följande rad:

 / swapfile swap swap default 0 0 

Förbättra SWAP-prestanda

Ange rätt swappiness-värde för att förbättra systemets totala prestanda.

Det här kan du göra med följande kommando:

 sudo echo 0 >> / proc / sys / vm / swappiness sudo echo vm.swappiness = 0 >> /etc/sysctl.conf 

Starta om systemet för att kontrollera om SWAP aktiveras korrekt.

Inaktivera IPv6

Det rekommenderas att inaktivera IPv6 eftersom det orsakar problem med att Internet-anslutningen är långsam.

För att inaktivera IPv6, redigera filen "/etc/sysctl.conf".

 sudo nano /etc/sysctl.conf 

Redigera som beskrivs nedan:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

För att ladda om konfigurationen kör du

 sudo sysctl -p 

Inaktivera IRQBALANCE

IRQBALANCE används för att distribuera hårdvaruproblem över flera CPU-enheter för att öka systemets prestanda. Det rekommenderas att inaktivera IRQBALANCE för att undvika hårdvaruproblem i dina trådar.

För att inaktivera IRQBALANCE, redigera "/ etc / default / irqbalance"

 sudo nano / etc / default / irbalbalance 

och ändra ANVÄNDAT värde till 0:

 AKTIVERAD = 0 

Fix OpenSSL heartbleed bug

Heartbleed är en allvarlig sårbarhet i OpenSSL. Det gör det möjligt för en avlägsen användare att läcka minnet i upp till 64k bitar. Hackers kan sedan hämta privata nycklar för att dekryptera alla data som användarens användarnamn och lösenord.

Den heartbleed bug hittades i OpenSSL 1.0.1 och finns i följande versioner:

  • 1.0.1
  • 1.0.1a
  • 1.0.1b
  • 1.0.1c
  • 1.0.1d
  • 1.0.1e
  • 1.0.1f

För att kontrollera versionen av OpenSSL i ditt system, kör följande kommandon:

 sudo openssl version -v sudo openssl version -b 

Detta kommer att mata ut något som följande:

 OpenSSL 1.0.1 10 Mar 2012 byggd på: ons jan 2 18:45:51 UTC 2015 

Om datumet är äldre än "måndag 7 april 20:33:29 UTC 2014" och versionen är "1.0.1", så är ditt system sårbart för Heartbleed-felet.

För att åtgärda det här felet, uppdatera OpenSSL till den senaste versionen och kör

 sudo apt-uppdatera sudo apt-få uppgradera openssl libssl-dev sudo apt-cache-policy openssl libssl-dev 

Kontrollera nu versionen och kör

 sudo openssl version -b 

Detta kommer att mata ut något som följande:

 byggd den: ma 7 april 20:31:55 UTC 2014 

Säkra konsolen, delat minne, / tmp och / var / tmp

Säkra konsolen

Som standard är många terminaler aktiverade i ditt system. Du kan bara tillåta en terminal och stänga av de andra terminalerna.

För att bara tillåta "tty1" och inaktivera andra terminaler, redigera filen "/ etc / securetty".

 sudo nano / etc / securetty 

Lägg till / ändra följande rader:

 tty1 # tty2 # tty3 # tty4 # etc ... 

För att säkra filen "/ etc / securetty" ändrar du tillståndet för filen och kör följande kommandon:

 sudo chown root: root / etc / securetty sudo chmod 0600 / etc / securetty 

Säkert delat minne

Alla användare kan använda delat minne för att attackera en körtjänst, som apache eller httpd. Som standard är delat minne monterat läs / skriv med exekutivt tillstånd.

För att göra det säkrare, redigera filen "/ etc / fstab".

 sudo nano / etc / fstab 

Lägg till följande rad:

 tmpfs / run / shm tmpfs ro, noexec, nosuid 0 0 

För att göra ändringarna utan omstart kan du springa

 sudo mount -a 

Säkra / tmp och / var / tmp

Tillfälliga kataloger som / tmp, / var / tmp och / dev / shm öppnar dörren för angripare för att ge utrymme att köra skript och skadliga körbara filer.

Säker / tmp-mapp

Skapa en 1 GB filsystemfil för / tmp-partitionen.

 sudo dd om = / dev / noll av = / usr / tmpDSK bs = 1024 count = 1024000 sudo mkfs.ext4 / usr / tmpDSK 

Skapa en säkerhetskopia av nuvarande / tmp-mappen:

 sudo cp -avr / tmp / tmpbackup 

Montera den nya / tmp-partitionen och ställ in rätt behörigheter.

 sudo mount -t tmpfs -o loop, noexec, nosuid, rw / usr / tmpDSK / tmp sudo chmod 1777 / tmp 

Kopiera data från backupmappen och ta bort backupmappen.

 sudo cp -avr / tmpbackup / * / tmp / sudo rm -rf / tmpbackup 

Ställ in / tmp i fbtab.

 sudo nano / etc / fstab 

Lägg till följande rad:

 / usr / tmpDSK / tmp tmpfs loop, nosuid, noexec, rw 0 0 

Testa din fstab-post.

 sudo mount -a 

Säkra / var / tmp:

Vissa program använder den här mappen som en tillfällig mapp, så vi bör också säkra den här.

För att säkra / var / tmp, skapa en symbolisk länk som gör / var / tmp peka på / tmp.

 sudo mv / var / tmp / var / tmpold sudo ln -s / tmp / var / tmp sudo cp -avr / var / tmpold / * / tmp / 

Ange säkerhetsgränser och inaktivera oönskade tjänster

Ange säkerhetsgränser

För att skydda ditt system från gaffelbombattacker bör du skapa en processgräns för dina användare.

För att ställa in detta, redigera filen "/etc/security/limits.conf"

 sudo nano /etc/security/limits.conf 

och redigera följande rad:

 user1 hard nproc 100 @ group1 hard nproc 20 

Detta kommer att förhindra användare av en viss grupp från att ha maximalt tjugo processer och maximera antalet processer till hundra till användare1.

Inaktivera onödiga tjänster

Massor av tjänster i Ubuntu tar minne och diskutrymme som du kanske behöver använda. Inaktivera eller ta bort onödiga tjänster kan förbättra systemets totala prestanda.

För att ta reda på vilka tjänster som körs, kör följande kommando:

 sudo initctl lista | grep springande 

Du kan inaktivera det genom att köra det här kommandot.

 sudo update-rc.d -f service_name ta bort sudo apt-get purge service_name 

Fix Shell Shock Bash sårbarhet:

Skallskaktsårbarheten tillåter hackare att tilldela Bash-miljövariabler och få obehörig åtkomst till systemet. Denna sårbarhet är mycket lätt att utnyttja.

För att kontrollera systemets sårbarhet, kör följande kommando:

 sudo env i = '() {:;}; echo Ditt system är Bash sårbart "bash-c" echo Bash vulnerability test " 

Om du ser nedre utmatningen betyder det att ditt system är sårbart.

 Ditt system är Bash sårbart Bash vulnerability test 

För att åtgärda detta sårbarhet, kör följande kommando:

 sudo apt-get uppdatering; sudo apt-get installera - bara uppgradera bash 

Om du kör kommandot igen ser du:

 bash: varning: VAR: ignorerar funktionsdefinitionsförsök bash: fel import av funktionsdefinition för `VAR 'Bas-sårbarhetstest 

Slutsats:

Här har vi förklarat grundläggande saker som du kan göra för att härda Ubuntu. Du bör nu ha tillräckligt med förståelse för grundläggande säkerhetspraxis som du kan implementera på din Ubuntu-server. Jag hoppas att det här inlägget kommer att vara användbart för dig.

Referens : Ubuntu Härdningsguide