Addons:vsftpd

Aus IPFireWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Very Secure FTP Server



Der vsftps ist ein GPL Lizenzsierter FTP Server für UNIX und Linux Systeme. Er ist sicher, extrem schnell und auch sehr stabil. Die Konfiguration Erfolg über den Konfigfile in /etc/vsftpd.conf. Sie kann bequem mit "vi" oder "nano" editiert werden.

Als allererstes muß der vsftpd mittels pakfire installiert werden. Das könnt ihr bequem über das Webinterface machen oder auf der Konsole mit:

pakfire -y install vsftpd

Nach der Installation läuft der vsftpd schon! Wenn ihr die Konfiguration ändert, sollte der vsftpd aus sein. Der Befehl:

/etc/init.d/vsftpd stop

...beendet den vsftpd.

Hier folgt nun Schritt für Schritt Anleitung für einen FTP Benutzer. Um dieses zu vereinfachen nehme ich folgendes Beispiel Szenario an:

FTP-Benutzer heißt ftpuser

Homeverzeichnis liegt bei /var/ftp/ftpuser

Zuerst müssen die Verzeichnisse anglegt werden:

mkdir /var/ftp/
mkdir /var/ftp/ftpuser 

Standardmässig sind Lokale User logins erlaubt. Um nun den lokalen Benutzer am IPFire anzulegen, gebt folgendes in der Konsole ein

useradd ftpuser -d /var/ftp/ftpuser -s /bin/false

FTP-Benutzer können beliebige benannt werden, jedoch muss man drauf achten das keine Systembenutzer genommen werden: "root", "samba" oder ähnliche!!

Das "-s /bin/false" verbietet hier dem Benutzer sich über ssh zu verbinden, dies sollte auch nicht für jeden FTP Benutzer möglich sein.

Das Passwort für den Benutzer legt man mit:

passwd ftpuser

an.

Nun sollte man den Benutzer in seinem Homeverzeichnis einschliessen, dazu folgendes in die Konsole eingeben:

 chown -R ftpuser /var/ftp/ftpuser

Ein kleiner Schritt ist noch notwendig um den angelegten Benutzer den Zugriff zu ermöglichen. Editiert die Datei /etc/vsftpd_user.list und fügt den Benutzernamen am Ende ein. Man kann dies mit dem Midnight Commander, der sich ebenfals über den pakfire installieren lässt machen oder einfach folgendes in die Konsole eingeben:

echo ftpuser >> /etc/vsftpd.user_list

Am ende den vsftpd wieder starten mit:

/etc/init.d/vsftpd start

SSL


In Anlehnung an diese Anleitung folgendes ausführen um SSL Verschlüsselung ein zu schalten.

Zuerst muss ein SSL Zertifikat angelegt werden:

openssl req -new -x509 -days 365 -keyout vsftp.key -out vsftp.crt

Danach müssen die Passphrase vom Schlüssel entfernt werden, damit vsftpd ohne Passwort starten kann

openssl rsa -in vsftp.key -out vsftp_clear.key

Dann muss das Zertifikat und der Schluessel in eine Datei kopiert werden und wird für vsftpd in /etc abgelegt:

cat vsftp.crt vsftp_clear.key > /etc/vsftpd.pem

Nun muss die Konfigurationsdatei /etc/vsftpd.conf editiert werden und folgende einfügt werden:


ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd.pem


Wer auch Clients zulassen will die ohne SSL sich verbinden dürfen muss force_local_data_ssl und force_local_login_ssl auf =NO setzen. Datei speichern und mit

/etc/vsftpd restart

den vsftpd neustarten damit die geänderte Konfigurationsdatei geladen wird.

Wichtig!! Wenn der FTP von aussen auch mit SSL erreich sein soll, müssen die Passive Port fest gelegt werden und genau so wie der Port auf dem vsftpd horcht (Standart: 21) dies geht wie folgt:

In die /etc/vsftpd.conf dies einfügen

pasv_min_port=2000
pasv_max_port=2020
listen_port=21

Hier mit würde der FTP auf dem Standartport 21 horchen und zusätzlich würden 20 Passive Ports zur Verfügung gestellt, dies sollte für 5 Benutzer völlig ausreichen. Man sollte nur soviel Ports wie man auch wirklich brauch öffnen.

Im Webinterface muss nun noch unter -> Firewall -> externe Zugänge noch einmal Ziel-Port: 21 so wie Ziel-Port: 2000:2020 hinzugefügt werden.

Nicht vergessen wieder den vsftpd mit

/etc/vsftpd restart

neuzustarten das die Änderungen auch übernommen werde.


hilfreiches


Wenn ihr einen Sambauser über das Webinterface angelegt habt, könnt ihr den angelegten User verwenden. Ihr braucht dann nur das Passwort anlegen. Es sollte gleich wie das des Sambauser sein, den ihr angelegt habt und nicht vergessen diesen in die /etc/vsftpd_user.list zu schreiben.

Wer Probleme hinter Routern oder mit passive FTP Übertragungen hat, sollte mal HIER reinschauen!


Autostart des vsftp Server


Durch das Anlegen der Autostart-links könnt ihr nun auch im Webinterface unter

--status - dienste - "Addon - Dienste"

hacken setzen, ob der vsftpd automatisch beim Sytemstart gestartet werden soll!

Autostart Einschalten

ln -s ../init.d/vsftpd /etc/rc.d/rc3.d/S65vsftpd
ln -s ../init.d/vsftpd /etc/rc.d/rc0.d/K35vsftpd
ln -s ../init.d/vsftpd /etc/rc.d/rc6.d/K35vsftpd

Autostart Ausschalten

rm /etc/rc.d/rc3.d/S65vsftpd
rm /etc/rc.d/rc0.d/K35vsftpd
rm /etc/rc.d/rc6.d/K35vsftpd


Beispiel Konfig


# Default config for vsftpd on ipfire
background=YES
listen=YES
#
nopriv_user=vsftpd
#
local_enable=YES
write_enable=YES
#
local_umask=022
#
#anonymous_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#
dirmessage_enable=YES
#
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
#
connect_from_port_20=YES
#
#chown_uploads=YES
#chown_username=whoever
#
idle_session_timeout=600
data_connection_timeout=120
#
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
ftpd_banner=Welcome on ftp.ipfire.org
#
chroot_local_user=YES
#chroot_list_enable=YES
secure_chroot_dir=/var/ftp/empty
#
ls_recurse_enable=YES
#
# ssl an
ssl_enable=YES
#
# ohne ssl keine Verbindung moeglich
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd.pem
#
# nicht noetig
#rsa_private_key_file=/etc/vsftpd.key
#
# passive port freischalten:
pasv_min_port=2000
pasv_max_port=2020
#
# ftp hoert auf port:
listen_port=21
#
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
#
#max.Fehlerhaften Logins
max_login_fails=3
Persönliche Werkzeuge