1、安装vsftpd
sudo apt-get install vsftpd
2、配置参数
vim /etc/vsftpd.conf
使用如下配置
# Example config file /etc/vsftpd.conf
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
user_sub_token=$USER
local_root=/home/$USER/ftp
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
3、配置说明
• anonymous_enable=NO 拒绝匿名登陆
• write_enable=YES 设置可以上传文件,这个设置看需要个人需要
• xferlog_enable=YES 开启日志记录
• xferlog_file=/var/log/vsftpd.log 设置日志文件路径
• xferlog_std_format=YES 设置日志格式为标准输出
• connect_from_port_20=YES 绑定20端口
• ftpd_banner=Welcome to FTP service. 欢迎语句,在使用shell时可以看到
• chroot_local_user=YES
• # Default umask for local users is 077. You may wish to change this to 022,
• # if your users expect that (022 is used by most other ftpd's)
• #local_umask=022
• local_umask=022 配置上传的文件在ftp默认存放目录的权限,默认为077,配置ftp服务器多用户时,建议配置为local_umask=022
• chroot_list_enable=YES
• chroot_list_file=/etc/vsftpd.chroot_list 上面的这几个配置实现的功能是:用户被限制在自己的主目录下。用户名单来源于/etc/vsftpd.chroot_list
• user_sub_token=$USER
• local_root=/home/$USER/ftp
添加一个user_sub_token ,以便插入用户名在我们local_root directory路径,以便我们的配置将为该用户,并可能被添加任何未来的用户
一个重要的配置
• pam_service_name=ftp 原配置中为vsftpd,ubuntu用户需要更改成ftp
如果登录后出现如下错误,则在/etc/vsftpd.conf文件内添加allow_writeable_chroot=YES
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
创建ftp用户
#mkdir /home/ftpuser
#sudo useradd ftpuser
#usermod -d /home/ftpuser ftpuser
#sudo passwd ftpuser #配置ftp用户名密码
#mkdir /home/ftpuser/ftp
#usermod -s /sbin/nologin ftpuser 限制用户username只能通过ftp登陆,而不能直接登陆服务器
重要的一点
/etc/vsftpd.chroot_list要自己创建,并将ftpuser放进去
启动vsftpd或者重启
• systemctl start vsftpd 或 service vsftpd start
• systemctl restart vsftpd 或 service vsftpd restart
登陆
• 使用filezilla或者打开文件管理器输入ftp://ipaddress