Addons:vsftpd
Aus IPFireWiki
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

