Raspberry Pi als FTP-Server für IP-Kameras
Hier wird ein Raspberry Pi als FTP-Server für die Speicherung von Aufnahmen von IP-Kameras verwendet. Wie geht das?
(Stand 10/2021)
VSFTPD
Als erstes müssen VSFTP und einige andere Sachen installiert werden:
apt-get install vsftpd apache2-utils ssl-cert libpam-pwdfile
vsftpd.conf
Dann muß noch die Konfigurationsdatei angepaßt werden:
nano /etc/vsftpd
listen=YES
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
# Benutzer
nopriv_user=pi
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/home/pi/Share
chroot_local_user=YES
hide_ids=YES
# FXP erlauben
pasv_promiscuous=YES
pasv_enable=YES
pasv_min_port=49152
pasv_max_port=50000
port_promiscuous=YES
# SSL fuer Verbindung
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
SSL-Zertifikat
Dann wird das selbst-signierte SSL-Zertifikat für vsftpd angelegt:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/vsftpd.pem
Nun muss die PAM-Authentifizierung von vsftpd angepasst werden, sodass vsftpd die Daten aus einer Datei liest. Dafür wird der Inhalt der Datei /etc/pam.d/vsftpd gelöscht und durch folgenden Inhalt ersetzt:
auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd
account required pam_permit.so
Die genannte Datei /etc/ftpd.passwd kann durch das Werkzeug htpasswd mit Benutzern und Passwörtern befüllt werden.
# Für den ersten Benutzer
htpasswd -c /etc/ftpd.passwd pi
# Für alle folgenden Benutzer
htpasswd /etc/ftpd.passwd camdata
Nach einem Neustart von vsftpd mit /etc/init.d/vsftpd restart ist der neue FTP-Server einsatzbereit.