Verharden is het proces van het verminderen van kwetsbaarheden en het beveiligen van een systeem tegen mogelijke aanvalspunten. Het verminderen van kwetsbaarheden omvat het verwijderen van onnodige services, gebruikersnamen en logins en het uitschakelen van onnodige poorten. In dit artikel laten we je zien hoe je een Ubuntu-server kunt verharden.

Vereisten

Ubuntu 14.04 LTS-server met Open SSH geïnstalleerd.

Aan de slag: werk het systeem bij

Het systeem up-to-date houden is nodig na het installeren van een besturingssysteem. Dit zal de bekende kwetsbaarheden in uw systeem verminderen.

Voor Ubuntu 14.04 voer je het volgende uit:

 sudo apt-get update sudo apt-get upgrade sudo apt-get autoremove sudo apt-get autoclean 

Schakel automatische beveiligingsupdates in

Het inschakelen van automatische updates kan erg belangrijk zijn om uw server te beveiligen. Om de "onbeheerde upgrades" te installeren, uitvoeren

 sudo apt-get installeer onbewaakte upgrades 

Voer de volgende opdracht uit om dit in te schakelen:

 sudo dpkg-reconfigure -plow onbeheerd-upgrades 

Hiermee wordt het bestand "/etc/apt/apt.conf.d/20auto-upgrades" gemaakt dat hieronder wordt weergegeven.

 APT :: Periodiek :: Update-Pakket-lijsten "1"; APT :: Periodiek :: Onbeheerde upgrade "1"; 

Maak "shadow user" met sudo-bevoegdheden

Het gebruik van een "schaduwgebruiker" in plaats van het root-account is om veiligheidsredenen noodzakelijk. U kunt een gebruiker maken die voor andere gebruikers niet eenvoudig te raden is. In deze tutorial gebruiken we "maketech111" als gebruikersnaam.

Voer de volgende opdracht uit om een ​​gebruiker te maken:

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

Voer de volgende opdracht uit om de gebruiker sudo-toegang te geven:

 sudo usermod -a -G sudo maketech111 

Voer de volgende opdracht uit om een ​​wachtwoord in te stellen:

 sudo passwd maketech111 

Opmerking: zorg dat uw wachtwoord ten minste acht tekens lang is en een complexe combinatie van cijfers, letters en leestekens bevat.

Om de wachtwoordprompt voor sudo te verwijderen, bewerkt u het sudoers-bestand.

 sudo nano / etc / sudoers 

Toevoegen / bewerken zoals hieronder beschreven.

 maketech111 ALL = (ALL) NOPASSWD: ALL 

Sla het bestand op en sluit af.

Schakel root-account uit

Het uitschakelen van het root-account is om veiligheidsredenen noodzakelijk.

Gebruik de volgende opdracht om het root-account uit te schakelen:

 sudo passwd -l root 

Als u het account opnieuw moet inschakelen, voert u de volgende opdracht uit:

 sudo passwd -u root 

Voeg een SWAP-partitie toe

Sommige Ubuntu-servers zijn niet geconfigureerd met SWAP. SWAP wordt gebruikt wanneer de hoeveelheid totaal fysiek geheugen (RAM) vol is.

Voer de volgende opdracht uit om te controleren op SWAP-ruimte:

 sudo swapon -s 

Als er geen SWAP-bestand is, zou u de volgende uitvoer moeten krijgen.

 Bestandsnaam Type Formaat Gebruikte prioriteit 

Als u het 4 GB-SWAP-bestand wilt maken, moet u de opdracht "dd" gebruiken.

 sudo dd if = / dev / zero of = / swapfile bs = 4M count = 1000 

Voer de volgende opdracht uit om het SWAP-bestand in te stellen:

 sudo mkswap / swapfile 

Om het wisselbestand te activeren, voert u uit

 sudo swapon / swapfile sudo swapon -s 

Dit wordt als volgt uitgevoerd:

 Bestandsnaam Type Grootte Gebruikt Priority / swapfile-bestand 4096000 0 -1 

Om het permanent in te schakelen, bewerkt u het bestand "/ etc / fstab".

 sudo nano / etc / fstab 

Voeg de volgende regel toe:

 / swapfile swap-verwisseling standaard 0 0 

Verbeter de SWAP-prestaties

Stel de juiste swappiness-waarde in om de algehele prestaties van het systeem te verbeteren.

U kunt dit doen met de volgende opdracht:

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

Start het systeem opnieuw op om te controleren of SWAP correct wordt geactiveerd.

Schakel IPv6 uit

Het wordt aanbevolen om IPv6 uit te schakelen, omdat dit problemen oplevert bij een trage internetverbinding.

Als u IPv6 wilt uitschakelen, bewerkt u het bestand "/etc/sysctl.conf".

 sudo nano /etc/sysctl.conf 

Bewerken zoals hieronder beschreven:

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

Om de configuratie opnieuw te laden, voert u uit

 sudo sysctl -p 

Schakel IRQBALANCE uit

IRQBALANCE wordt gebruikt om hardware-interrupts over meerdere CPU's te verdelen om de systeemprestaties te verbeteren. Het wordt aanbevolen om IRQBALANCE uit te schakelen om onderbrekingen in de hardware in uw threads te voorkomen.

Om IRQBALANCE uit te schakelen, bewerk "/ etc / default / irqbalance"

 sudo nano / etc / default / irqbalance 

en verander de ENABLED waarde in 0:

 INGESCHAKELD = 0 

Fix OpenSSL heartbleed bug

De Heartbleed is een ernstige kwetsbaarheid in de OpenSSL. Hiermee kan een gebruiker op afstand het geheugen in 64k-blokken lekken. Hackers kunnen vervolgens de persoonlijke sleutels ophalen om gegevens zoals de gebruikersnaam en het wachtwoord van de gebruiker te ontsleutelen.

De heartbleed bug werd gevonden in OpenSSL 1.0.1 en is aanwezig in de volgende versies:

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

Voer de volgende opdrachten uit om de versie van OpenSSL in uw systeem te controleren:

 sudo openssl-versie -v sudo openssl-versie -b 

Dit zal iets als het volgende weergeven:

 OpenSSL 1.0.1 10 maart 2012 gebouwd op: wo 2 januari 18:45:51 UTC 2015 

Als de datum ouder is dan "Mon 7 april 20:33:29 UTC 2014" en de versie is "1.0.1", is uw systeem kwetsbaar voor de Heartbleed-bug.

Om deze bug te verhelpen, update OpenSSL naar de nieuwste versie en voer het uit

 sudo apt-get update sudo apt-get upgrade openssl libssl-dev sudo apt-cache tactiek openssl libssl-dev 

Controleer nu de versie en voer uit

 sudo openssl-versie -b 

Dit zal iets als het volgende weergeven:

 gebouwd op: Mon Apr 7 20:31:55 UTC 2014 

Beveilig de console, het gedeelde geheugen, / tmp en / var / tmp

Beveilig de console

Standaard zijn veel terminals ingeschakeld in uw systeem. U kunt slechts één terminal toestaan ​​en de andere terminals uitschakelen.

Als u alleen "tty1" wilt toestaan ​​en andere terminals wilt uitschakelen, bewerkt u het bestand "/ etc / securetty".

 sudo nano / etc / securetty 

Voeg de volgende regels toe / bewerk deze:

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

Om het bestand "/ etc / securetty" te beveiligen, wijzigt u de toestemming van het bestand en voert u de volgende opdrachten uit:

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

Secure Shared Memory

Elke gebruiker kan gedeeld geheugen gebruiken om aanvallen uit te voeren op een actieve service, zoals apache of httpd. Standaard is gedeeld geheugen lees / schrijf gemount met execute permissie.

Om het veiliger te maken, bewerkt u het bestand "/ etc / fstab".

 sudo nano / etc / fstab 

Voeg de volgende regel toe:

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

Om de wijzigingen aan te brengen zonder opnieuw op te starten, kunt u uitvoeren

 sudo mount -a 

Secure / tmp en / var / tmp

Tijdelijke directory's zoals / tmp, / var / tmp en / dev / shm openen de deur voor aanvallers om ruimte te bieden voor het uitvoeren van scripts en schadelijke uitvoerbare bestanden.

Beveiligde map / tmp

Maak een bestandssysteembestand van 1 GB voor de / tmp-partitie.

 sudo dd if = / dev / zero of = / usr / tmpDSK bs = 1024 count = 1024000 sudo mkfs.ext4 / usr / tmpDSK 

Maak een back-up van de huidige / tmp-map:

 sudo cp -avr / tmp / tmpbackup 

Koppel de nieuwe / tmp-partitie en stel de juiste machtigingen in.

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

Kopieer de gegevens uit de back-upmap en verwijder de back-upmap.

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

Stel de / tmp in de fbtab in.

 sudo nano / etc / fstab 

Voeg de volgende regel toe:

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

Test uw fstab-invoer.

 sudo mount -a 

Secure / var / tmp:

Sommige software gebruikt deze map als een tijdelijke map, dus we moeten deze ook beveiligen.

Om te beveiligen / var / tmp, maak een symbolische link die / var / tmp naar / tmp wijst.

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

Stel beveiligingslimieten in en schakel ongewenste services uit

Stel beveiligingslimieten in

Om uw systeem tegen aanvallen van vorkbommen te beschermen, moet u een proceslimiet instellen voor uw gebruikers.

Om dit in te stellen, bewerkt u het bestand "/etc/security/limits.conf",

 sudo nano /etc/security/limits.conf 

en bewerk de volgende regel:

 user1 hard nproc 100 @ group1 hard nproc 20 

Dit voorkomt dat gebruikers van een specifieke groep maximaal twintig processen hebben en maximaliseren het aantal processen tot honderd voor gebruiker1.

Schakel onnodige services uit

Veel services in Ubuntu nemen geheugen en schijfruimte in beslag die u mogelijk nodig heeft. Het uitschakelen of verwijderen van onnodige services kan de algehele systeemprestaties verbeteren.

Om uit te vinden welke services momenteel worden uitgevoerd, voert u de volgende opdracht uit:

 sudo initctl lijst | grep running 

U kunt het uitschakelen door deze opdracht uit te voeren.

 sudo update-rc.d -f servicenaam verwijderen sudo apt-get purge service_name 

Fix Shellshock Bash-kwetsbaarheid:

Door de kwetsbaarheid van Shellshock kunnen hackers Bash-omgevingsvariabelen toewijzen en ongeoorloofde toegang krijgen tot het systeem. Deze kwetsbaarheid is heel gemakkelijk te exploiteren.

Voer de volgende opdracht uit om de kwetsbaarheid van het systeem te controleren:

 sudo env i = '() {:;}; echo Uw systeem is Bash-kwetsbaar 'bash -c' echo Bash-kwetsbaarheidstest ' 

Als u de onderstaande uitvoer ziet, betekent dit dat uw systeem kwetsbaar is.

 Uw systeem is een Bash-kwetsbare Bash-kwetsbaarheidstest 

Om dit beveiligingslek te verhelpen, voert u de volgende opdracht uit:

 sudo apt-get update; sudo apt-get install - alleen-upgrade bash 

Als u de opdracht opnieuw uitvoert, ziet u:

 bash: waarschuwing: VAR: negeren functiedefinitie poging bash: foutimportfunctie-definitie voor `VAR 'Bash-kwetsbaarheidstest 

Conclusie:

Hier hebben we basiszaken uitgelegd die je zou kunnen doen om Ubuntu te verharden. U zou nu voldoende kennis moeten hebben van elementaire beveiligingspraktijken die u kunt implementeren op uw Ubuntu-server. Ik hoop dat dit bericht nuttig voor je zal zijn.

Referentie : Ubuntu verhardingsgids