ubuntu16.04部署vsftpd
问题描述:
之前在centos6/7可以快速构建vsftpd服务,在ubuntu上频繁出错。最后发现是vsftpd版本比较新(新增安全特性导致的)
问题解决:
加上对应参数即可解决问题
window资源管理器登录ftp
ftp://user:pass@ip/xxx/ //账户认证登录
ftp://ip/xxx
ftp://anonymous:@ip/xxx //匿名登录ftp
ftp://ftp:@ip/xxx
部署环境:
01、系统发行版本
02、vsftpd版本
apt-get install -y vsftpd
03、匿名登录ftp
/etc/vsftpd.conf
listen=YES anonymous_enable=YES local_enable=NO write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES #人工定义根目录 anon_root=/ldata/ftp_pub allow_writeable_chroot=YES chroot_local_user=NO
注意:结尾不能有空格,血的教训
mkdir -p /ldata/ftp_pub ###进入后的跟目录
mkdir /ldata/ftp_pub/pub ###匿名帐户可以出创建删除文件的目录
chown -R ftp:ftp /ldata/ftp_pub
chmod a-w /ldata/ftp_pub
04、匿名登录测试
systemctl restart vsftpd ###观察服务是否启动正常 ss -lnt|grep 21
journalctl -u vsftpd -f ###日志是否正常
root@bogon:~# ftp localhost //注意也可以使用IP登录 ftp: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. 220 (vsFTPd 3.0.3) Name (localhost:user): ftp //匿名登录可以使用的账户 ftp/anonymous密码不用填写 331 Please specify the password. Password: 230 Login successful. //登录成功 Remote system type is UNIX. Using binary mode to transfer files. ftp> dir //注意根目录不能创建目录及上传文件,需要在pub目录下 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 4 111 118 4096 Aug 30 15:57 pub 226 Directory send OK. ftp> cd pub 250 Directory successfully changed. ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwx------ 2 111 118 4096 Aug 30 15:56 cd drwx------ 2 111 118 4096 Aug 30 15:57 sb 226 Directory send OK. ftp> mkdir good 257 "/pub/good" created ftp> cd good 250 Directory successfully changed. ftp> touch sb ?Invalid command ftp> mkdir sb 257 "/pub/good/sb" created ftp>
05、linux本地账户登录
###本地账户登录进入根目录/home/xxx/
root@bogon:/etc# cat vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES //本地账户许可登录ftp
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
allow_writeable_chroot=YES
#指定本地账户可以登录ftp
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/ftpuser_list //清单中的账户可以登录ftp
root@bogon:/etc# cat ftpuser_list
ftp_test
local_root=/ldata/ftp_data //指定本地登录账户的根目录,
chown -R ftp_test: /ldata/ftp_data //把可以登录账户的权限赋值正确
06、用户登录测试
注意:man 5 vsftpd.conf //查看详细的参数配置及含义