搭建vsftp服务器
201服务器搭建ftp服务器
环境ubuntu16.04
一、安装并建立用户
sudo apt-get update
sudo apt-get install vsftpd
vsftpd –version //检测是否安装
sudo groupadd ftpusers //创建ftpusers用户组
sudo useradd -m ftpuser//创建一个用户并且自动创建家目录为/home/ftpuser
usermod -G ftpusers ftpuser //将这个新用户加入到ftpusers用户组中
sudo passwd ftpuser //更改密码
mkdir /home/ftpuser/dev_new //为用户添加一个具有一定权限的文件夹
chmod 777 -R /home/ftpuser/dev_new //新建一个dev_new目录用于存放文件,并且赋予全部权限,因为vsftp不运行将根目录作为可访问的目录
usermod -s /sbin/nologin username //限制用户登录方式;限制用户username只能通过ftp登陆,而不能直接登陆服务器,或者直接改/etc/passwd文件
二、改配置文件,连接不成功
vim /etc/vsftp.conf 改动这几行
write_enable=YES
ftpd_banner=Welcome to BIOS FTP service.
chroot_local_user=YES //对本地用户是否实施限制
chroot_list_enable=YES //开启限制白名单
chroot_list_file=/etc/vsftpd.chroot_list //白名单路径,若无这个文件需要自己创建
utf8_filesystem=YES 并且vim /etc/vsftpd.chroot_list 写入ftpuser用户
ufw allow 21
service vsftpd restart 访问失败,报口令错误
三、找到原因一
绕开linux的pam认证,将/etc/pam.d/vsftpd文件里的required改为optional
auth optional pam_listfile.so
auth optional pam_shells.so因为/etc/vsftp.conf 中有pam_service_name=vsftpd 这一行
service vsftpd restart filezalli访问失败,list目录失败
四、找到原因二
改为被动模式,在vsftp文件中加入
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010命令行执行 ufw allow 30000:30010/tcp
service vsftpd restart filezalli访问失败,仍然是list目录失败
五、找到原因三
在命令行用ftp xxx.201访问,输入用户名口令报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
vim /etc/vsftp.conf文件,加入 allow_writeable_chroot=YES
service vsftpd restart filezalli访问成功
六、将原vsftpd配置文件和改动后的文件进行比较
diff /etc/vsftpd.conf.well /etc/vsftpd.conf
1 |
|
七、将原认证模块文件和改动后的文件进行比较
diff /etc/pam.d/vsftpd.well /etc/pam.d/vsftpd
1 |
|
八、总结
用ftp命令行方式报错信息更清晰!