Linux miniserver met Intel Atom - 3
Ubuntu server beheren via de bash shell en SSH
Na de succesvolle installatie van Ubuntu server starten we het systeem opnieuw op en krijgen we een zogenaamde
shell voorgeschoteld zoals in afbeelding 1.
Afbeelding 1.
Als het systeem succesvol is geinstalleerd staat na opnieuw opstarten een shell met login prompt onderaan
je scherm.
De standaard shell in de meeste Linux-distributies is
BASH. De commando's die je kunt uitvoeren in de BASH-shell zijn erg krachtig, en zijn prima in
scripts te gebruiken.
Om je server te beheren met enkel de BASH shell dien je je wel enigzins te verdiepen in de
commando's die je kunt gebruiken. Kennis van de Engelse taal is hierbij erg handig. Om software te installeren/deinstalleren en de al
geinstalleerde programma's te updaten maak je in Ubuntu gebruik van
apt-get. Voor het bewerken van configuratiebestanden kun je gebruik maken
van
VIM, een eenvoudige text-editor.
Je kunt om veiligheidsredenen in Ubuntu niet als beheerder (root) inloggen. Je kunt opdrachten wel als beheerder uitvoeren door sudo
voor je opdracht te typen. Het systeem zal dan om je beheerderswachtwoord vragen, waarna de opdracht wordt uitgevoerd. Aangezien Linux veel met
rechten werkt, kun je als normale gebruiker weinig aan je systeeminstellingen wijzigen. Je zult sudo dus vaak gebruiken als je in de shell werkt.
De shell zoals je in afbeelding 1 ziet, kun je lokaal bedienen, dat wil zeggen met behulp van de monitor en het toetsenbord die zijn aangesloten
op je linux-systeem, maar ook op afstand, via het lokale netwerk of via internet, met behulp van
SSH. Tijdens de installatie van Ubuntu Server 9.04 op ons systeem hebben we SSH-server al mee-geinstalleerd, maar mocht het nog niet op je
systeem hebben dan kun je het installeren met de volgende commando's:
sudo apt-get update
sudo apt-get install openssh-server
Via je thuisnetwerk kun je met een andere Linux-machine inloggen op je server met het commando
ssh gevolgd door een spatie en het
ip-adres van je server. Vanaf een computer met Windows kun je gebruikmaken van het programma
PuTTY. Wil je je server via internet benaderen, dan moet je in ieder geval zorgen dat poort 22 (standaard voor SSH) in je router geforward
wordt naar het ip-adres van je server. Dit brengt ons meteen bij het eerste stukje extra beveiliging van onze server. Dat iedereen nu via
internet poort 22 onze server kan bereiken wil niet meteen zeggen dat de deur openstaat voor iedereen om in te loggen. Daarvoor heb je
natuurlijk je gebruikersnaam en wachtwoord nodig. Zorg in ieder geval dat die niet makkelijk te raden zijn. Een gebruikersnaam als
admin
en een wachtwoord als
P4ssw0rd zijn veel te voor de hand liggend, en gebruik natuurlijk het liefst ook geen combinatie van
gebruikersnaam en wachtwoord die je al ergens anders in gebruik hebt. De reden waarom we hier voorzichtig moeten zijn is vanwege de vele
brute-force attacks en dictionary attacks die op een server worden uitgevoerd. De server van marisan.nl wordt bijvoorbeeld tientallen keren
per dag bestookt door
scriptkiddies en wanna-be hackers. Per uur worden duizenden combinaties van gebruikersnamen en wachtwoorden op de SSH-server op poort 22
afgevuurd, en dat proces gaat 24 uur per dag door als je geen maatregelen neemt. Een van de beste maatregelen die je hiertegen kunt nemen
is het installeren van het programma
Fail2ban. Alle geslaagde en mislukte inlogpogingen worden door je Linux-systeem bijgehouden in een logfile,
namelijk in
/var/log/auth.log. Fail2ban houdt deze logfile continu in de gaten en grijpt in bij het vooraf ingestelde aantal mislukte
inlogpogingen. Het ip-adres van waar de inlogpogingen kwamen wordt dan voor een bepaalde, instelbare tijd geblokkeerd. Meestal haakt de aanvaller
dan af, zo niet, dan nog is de kans klein dat de attack slaagt, omdat er bijvoorbeeld maar drie inlogpogingen per halfuur kunnen worden gedaan
voordat het ip-adres van de aanvaller weer geblokkeerd wordt. Fail2ban installeer je eenvoudig door middel van onderstaand commando:
sudo apt-get install fail2ban
Afbeelding 2.
Installatie van Fail2ban
Standaard na installatie van Fail2ban wordt de SSH poort (22) beschermd. Na 6 mislukte inlogpogingen wordt het bijbehorende ip-adres
voor 10 minuten geblokkeerd. Deze waarden kun je aanpassen in /etc/fail2ban/jail.conf.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Bovenstaande code kun je vervangen door de volgende:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1800
Dit resulteert in een blokkering van het ip-adres na 3 ipv de standaard 6 mislukte inlog-pogingen, en de blokkering duurt 1800 seconden
(30 minuten) ipv de standaard-instelling van 600 seconden (10 minuten). Let er wel op dat je zelf dan ook niet te vaak een typefout in je
gebruikersnaam of wachtwoord moet maken, anders word je zelf ook geblokkeerd. :-)
In het vervolg van dit artikel, wat binnenkort verschijnt, installeren installeren we Gnome, een grafische desktop, voor mensen die liever een muis vasthouden...
5 oktober 2009 21:39 door Sander.
Tags:
Linux, Ubuntu
1