VSFTPD - konfigurace FTP serveru
Konfigurace ftp serveru pro uživatele ftpcamera. Chtěl jsem zapnout chroot tak, aby uživatel neměl přístup do jiných adresářů na disku. Zároveň by měl být přístup pouze na jednoho uživatele a na nikoho jiného.
anonymous_enable=NO local_enable=YES #bez tohoto nebylo možné na disk zapisovat write_enable=YES local_umask=022 #bez tohoto nebylo možné vylistovat obsah adresáře dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES user_sub_token=$USER local_root=/mnt/ftpcamera userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO utf8_filesystem=YES # tohle je rozsah portů pro přístup pro data. Tyto parametry vůbec nebyly # obsaženy v konfiguračním souboru a musel jsem je tam dopsat. pasv_min_port=40000 pasv_max_port=50000
V dalším kroku jsem musel nastavit kvůli chrootu práva.
chown root:root /mnt/ftpcamera mkdir /mnt/ftpcamera/upload chown ftpcamera:ftpcamera /mnt/ftpcamera/upload
Ještě nastavit seznam povolených uživatelů.
echo "ftpcamera" | sudo tee -a /etc/vsftpd.userlist
A restart serveru:
systemctl restart vsftpd
V případě problémů je dobré sledovat
tail -f /var/log/vsftpd.log
firewall
FTP server jsem chtěl povolit pouze ve vnitřní síti na bridge. Musí se povolit port 21 pro připojení, tak i porty pro data - v mém případě to jsou 40000 - 50000.
ufw allow in on br0 from 192.168.0.1/24 to 192.168.1.1/32 port 21 proto tcp comment "FTP" ufw allow in on br0 from 192.168.0.1/24 to 192.168.1.1/32 port 40000:50000 proto tcp comment "FTP vsftpd"