Pure Ftpd
Autor: Yehudi
Durch eine erweiterte Konfiguration mit Pure-ftpd kann der Server ausreichend/umfangreich abgesichert werden.
Pure-ftpd bietet mit wenig Editierungen eine großartige Funktionalität
Mit Pure FTP können individuelle Einstellungen für diverse User gemacht werden, so dass es einem großen Teil von Internet-Providern zum Einsatz kommt.
Inhaltsverzeichnis
Installation
Mit Apt/Synaptic lässt sich der Dienst kinderleicht installieren. Wir geben „pure“ in die Suche von Synaptic ein, klicken es an, und apt erledigt alles von alleine, zu lösende Abhängigkeiten brauchen uns nicht weiter belasten.
in der Konsole mit
apt-get install pure-ftpd
oder
smart install pure-ftpd
Konfiguration
openSUSE sollte nun als default Einstellung /srv/ftp/ gewählt haben.
Um den Server zu starten müssen wir nutzen wir als root den Befehl:
pure-ftpd &
Und um das zu überprüfen:
netstat -a | grep ftp
und stoppen tun wir das ganze mit dem Befehl:
killall pure-ftpd
Die Einstellungen sind in der Datei /etc/pure-ftpd/pureftpd.conf veränderbar.
Mit den Editierungen aus diesem Konfigurationsfile startet man mit der Konsolenaufforderung:
pure-conf.pl/etc/pure-ftpd/pureftpd.conf
den Dienst.
Um sich aber die Bequemlichkeit von Linux zu nutze zu machen, den Dämon bereits mit einschalten des PCs zu starten, muss im Runlevel-Editor, welcher in SuSE unter Yast in Systeme zu finden ist, im einfachen Modus ganz unkompliziert nur pure-ftpd auf Ja gesetzt werden.
In der Firewall muss hierfür ganz einfach nur der Port 21 unter TCP freigeschaltet werden.
Mit ftp ip-Adresse kann jetzt der Server getestet werden.
Bis jetzt ist der Server als Anonymus zugänglich, und der Upload nur als Anonymus nicht erlaubt. Diese Einstellung sollte auch so beibehalten werden, oder den Anonymen Zugang komplett ausstellen. Da FTP-Server im Internet schnell bekannt werden, und missbraucht werden kann. Für alle Dateien, die sich auf einem Server befinden ist letztendlich der Betreiber verantwortlich.
Werden in der zentralen Konfigurationsdatei Änderungen vorgenommen, dann müssen sie mit dem Befehl
rcpure-ftpd restart
neu gestartet werden.
In der Defaulteinstellung wird bei Pure-ftpd die bereits bestehende Benutzerverwaltung des Betriebssystemes genutzt. Bei Linux ist es gewöhnlich eine Mischung aus /etc/passwd und /etc/shadow, mit der man sich auch auf dem PC als Benutzer sich einloggen kann.
Wer sich jetzt mit einem vorhandenen Benutzernamen und korrektem Passwort einloggt, der landet nun im Homeverzeichnis des Users. Als Anonymus, landet man in dem Verzeichnis /srv/ftp/.
Wollen wir den Anonymus aber aussperren, und nur noch dem Benutzern mit Passwort Zugang gewähren, so ändern wir in der pure-ftpd.conf die Zeile
AnonymousOnly yes
in
AnonymousOnly no
ChrootEveryone yes sollte niemals geändert werden, da sonst der besucher das Homeverzeichnis verlassen kann, und den Rest des PCs ausspionieren kann, auch wenn er auf Grund der Rechte, keinen Schaden am System verursachen kann.
Mit
NoAnonymos yes
verweigert man den Zugriff der anonymen Besucher total.
Um allen Benutzer einen gemeinsamen Ordner einzubinden, auf den alle zugreifen können, erstellen wir im Verzeichnis /srv/ den Ordner public.
mkdir -p /srv/public/
Bei allen Benutzern erstellen wir ebenfalls diesen Ordner:
mkdir -p /home/yehudi/public/
yehudi, wird durch die jeweiligen vorhandenen Benutzer des Systemes ausgetauscht. Die Verzeichnisse sollten für die schreibende Gruppe beschreibbar sein.
Dann binden wir sie mit dem Befehl:
mount --bind /srv/public /home/yehudi/public
jeweils ein.
Da man wir ja nicht jedes mal nach dem Einschalten des PCs wieder die Prozedur des mounten vornehmen wollen, automatisieren wir das Ganze. Unter root rufen wir in der Konsole mit dem Befehl kate das Programm auf, mit dem wir dann folgende Zeil zufügen:
/srv/public /home/yehudi/public none bind, auto, rw 0 0
Logischerweise muss dieser Vorgang für jeden Benutzer gemacht werden.
Ein anderer Weg, Austauschverzeichnisse umzusetzen, bringt Pure-ftpd von Haus aus mit. Dazu muss in der Konfigurationsdatei ChrootEveryone ausdokumentiert sein
# ChrootEveryone yes
Nun muss in /etc/pure-ftp/pureftpd-dir-aliases erstellt werden.
Dort wird dann
public /srv/public
eingegeben. Da mit dieser Methode alle User sich frei im Dateisystem bewegen können sei davon abgeraten.
Mit openSUSE werden alle Zugriffe unter /var/log/messages protokoliert. Mit dem Befehl
cat /var/log/messages | grep -i „ftp“
kann man sich alle log-Notizen zu ftp anschauen.
Mit
/usr/sbin/pure-ftpwho
kann man kontrollieren, wer gerade auf dem Rechner eingeloggt ist.
Mit
AnonymousBandwidth 8 UserBandwith 8 Quota 1000:10
kann man festlegen mit wieviel kb/sec der Datendurchsatz für die User ist. (Hier 8kb/sec) Mit der Quota wird angeordnet, dass alle User 1000 Dateien bis zu 10MB ansammeln können.
Virtuelle Benutzer
Ein weiteres Plus an Sicherheit ist, dass mit virtuellen Benutzern die ftp-User nicht an die User des Betriebssystems gebunden sind.
Mit 4 Befehlen wird eine entsprechende Gruppe angelegt:
group ftpgroup useradd -g ftp -s /bin/false ftpuser mkdir /home/ftpuser chwn ftpuser /home/ftpuser
In dem Konfig-File werden jetzt die FTP-User festgelegt:
PureDB /etc/pure-ftpd/pure-ftpd.fdb
Nach dem Neustart von Pure ist die bestehende Benutzerverwaltung abgekoppelt. Nun soll der User tux angelegt werden:
pure-pw useradd tux -j -u ftpuser -d /home/ftpuser/tux
Eine Übersicht über die Passwortdatei erhält man mit dem Befehl:
pure-pw show tux
Um die Benutzerdaten in Binärform zu übersetzen genügt:
pure-pw mkdb
Nun liegt der Benutzer in der Userdatenbank /etc/pure-ftpd/pureftpd.pdb
Quellen
- PCWELT Linux(Ausgabe folgt noch)