Fail2ban

Naar aanleiding van de Problemen Arkon (4) heb ik vandaag een volautomatisch blockprogramma geinstalleerd. De keuze is gevallen op fail2ban. Waarom zul je denken? Ik had het namelijk de vorige keer over snort en snortblock. Snort is inderdaad een intrusion detection systeem wat al een behoorlijke tijd aan de weg timmert. Blokkeer mogelijkheden zitten er niet in en snortblock was een shell script wat iemand van het Freesco support forum in elkaar geknutseld heeft. In hoevere dit bijgehouden wordt weet ik niet, dus vandaar dat ik op zoek ben gegaan naar een vervanger. Uiteindelijk kwam ik uit op fail2ban als enkel pakket wat zowel het detecteren als het blokkeren voor zijn rekening neemt. Continue reading “Fail2ban”

PureFTPd-mysql installeren (6)

De ftp-server draait al een paar dagen op poort 2121. Vanuit het interne netwerk is daar geen enkel probleem mee. Maar van buitenaf is er een behoorlijk probleem. De ftp-client wil in passive mode gaan en kan vervolgens niet connecten.

Na wat nazoekwerk kom ik erachter dat de router (een sitecom DC-202v5) een stukje verkeer aan het blokkeren is. De poorten die namelijk gebruikt worden voor de Passive verbinding worden niet doorgelaten.

Aanmaken bestand PassivePortRange:

Arkon:~# nano /etc/pure-ftpd/conf/PassivePortRange
Arkon:~# /etc/init.d/pure-ftpd-mysql restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/d
40000 45000

En vervolgens het herstarten van de ftp-server:

/etc/init.d/pureftpd restart

En die forwarden. Als het goed is moet het nu wel lukken.

PureFTPd-mysql installeren (5)

Voordat ik het uitzoekwerk van snortblock afgerond heb zal ik toch iets moeten doen om ftp misbruik te beperken. De enige snelle oplossing die ik hiervoor het is het aanpassen van het poortnummer. Dit kan ik in mijn geval op 2 plaatsen doen, namelijk in de router door een poort door te sturen naar het interne ip adres van Arkon op poort 21 (standaard). Of door pureftpd te laten luisteren op een andere poort. Dit doe je door een bestand aan te maken in /etc/pureftpd/conf en hierna de server te herstarten:

Arkon:~# nano /etc/pure-ftpd/conf/Bind
Arkon:~# /etc/init.d/pure-ftpd-mysql restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -j -A -E -S **** -B

In dit bestand zet je enkel het poortnummer waarop je de ftp-server wil draaien.

Zoals je (niet) ziet staat nu het poortnummer op een andere poort door middel van de optie -S die staat voor –bind

Nu nog even de gegevens in de router updaten naar deze wijziging zodat we ook van buitenaf bereikbaar zijn op dat poortnummer. Helaas werkt mijn router niet zo vernuftigd zoals ik hierboven noemde, ik kan enkel poorten 1:1 doorsturen. Een poortwissel met het forwarden kent ie niet 🙁

Problemen Arkon (2)

Ik heb ondertussen van mijn systeem ook een mailtje ontvangen:

puredatabase.ftptabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_commentstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_linkstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_optionstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_postmeta
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_poststabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_term_relationshiptabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_term_taxonomytabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_termstabel
warning  : 1 client is using or hasn't closed the table properly
wordpressdatabase.wp_usermetatabel
warning  : 1 client is using or hasn't closed the table properly

Dat verklaart meteen waarom ik op dit blog geen wijzigingen kon doorvoeren.

*edit* Tabelstructuur even aangepast, niet iedereen hoeft te weten hoe mijn database en de daarin opgeslagen tabellen genoemd worden.

PureFTPd-mysql installeren (3)

De ftp-server draait nu dus helemaal naar behoren. Maar hoe zit het nu met de rechten die de bestanden meekrijgen. Elk bestand krijgt nu de groep ‘ftpgroup’ en user ‘ftpuser’ mee. Op zich prima natuurlijk. Maar als je ook enkele gebruikers hebt met shell toegang dan wil je die toch de beschikking geven over hun eigen bestanden.

Heel simpel te realiseren, als je in de pureftpd mysql tabel onder GID en UID het juiste id-nummer van de gebruiker meegeeft dan komt dat meteen goed.

PureFTPd-mysql installeren (2)

Het installeren van de ftp-server ging gisteren voorspoedig. Vandaag kwam ik er echter achter dat ik niet de mogelijkheid heb om symlinks te volgen. Als de ftp-login dus gebruikt wordt om een website te beheren dan heb ik een probleem want ik wil de homedir van de gebruikers wel onder /home laten staan. En de website blijft onder /var/www dus dan blijft enkel het symlinken over.

Nu is dat vrij makkelijk op te lossen. Door in het bestand /etc/default/pure-ftpd-common de optie virtualchroot op true te zetten.

# VIRTUALCHROOT:# whether to use binary with virtualchroot support
# valid values are "true" or "false"
# Any change here overrides the setting in debconf.VIRTUALCHROOT=true

Hiermee kun je dus de symlinks volgen maar daarbuiten kun je nergens naartoe.

Even de ftp-server herstarten met

Arkon:~# /etc/init.d/pure-ftpd-mysql restart

en de boel is aangepast.

PureFTPd-mysql installeren

Bronpagina vanaf http://www.howtoforge.com

Vandaag gaan we een database gestuurde ftp-server aanmaken. Ik had hier mijn twijfels over, zoveel gebruikers ga ik niet hebben. De server gaat namelijk gebruikt worden voor mijzelf en een enkeling waar ik data voor wil hebben staan. Meer dan 10 gebruikers gaan er zeker niet komen, ik twijfel er al aan of ik er 5 ga halen. Henk van de Kamer heeft me echter overgehaald. Voor ftp wil je om beveiligingstechnische redenen geen echte gebruikers aanmaken. Een goed punt dus.
Continue reading “PureFTPd-mysql installeren”