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
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"