安装、查看
#yum install vsftpd -y
#rpm -ql vsftpd
# vsftpd -v
#whereis vsftpd
启动
#systemctl start vsftpd
#systemctl enable vsftpd
防火墙和selinux的配置
selinux:
#sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#setenforce 0
firewalld防火墙:
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --permanent --zone=public --add-ports=21/tcp
#firewall-cmd --permanent --zone=public --add-ports=22/tcp
#firewall-cmd --reload
创建用于ftp远程登录的本地用户和组
创建用户ftpcest和ftpcest1,两者同属于一个组ftpcest
#useradd ftpcest -s /sbin/nologin -d /databak #这样就创建了用户和组ftpcest
#useradd ftpcest1 -s /sbin/nologin -d /databak -g ftpcest
#passwd ftpcest
#passwd ftpcest1
修改配置文件
# cat /etc/vsftpd/vsftpd.conf | grep -v "#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/data/var/logs/vsftpd/xferlog
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
listen_port=2201
log_ftp_protocol=YES
dual_log_enable=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=2202
pasv_max_port=2202
reverse_lookup_enable=NO
添加允许ftp远程访问的用户
# pwd
/etc/vsftpd
#ls
ftpusers vsftpd_conf_migrate.sh user_list vsftpd.conf
# cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
ftpcest
ftpcest1
重启vsftpd服务
#systemctl restart vsftpd
centos7:本机测试
# ftp localhost 2201
Trying ::1...
ftp: connect to address ::1拒绝连接
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftpcest
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,8,154).
150 Here comes the directory listing.
drwxrwxr-x 2 1003 1003 6 Apr 11 10:00 新文件夹
226 Directory send OK.
ftp>
windows客户端测试
比如:ftp://192.168.0.10:2201
参考网站和错误收集
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
其他情况:
与ssh一样,vsftp的配置文件默认开启了DNS反向解析,这可能会造成用户在登陆到FTP服务器的时候奇慢无比,只要在配置文件中禁用DNS反向解析即可解决文件。
编辑/etc/vsftpd/vsftpd.conf
添加
reverse_lookup_enable=NO
重启vsftpd服务后问题解决,现在登陆看看