CentOS7系统vsftp安装及配置

1. 安装vsftpd的

yum -y install vsftpd

2. 设置开机启动

systemctl enable vsftpdsystemctl -l | grep vsftpd  #查看是否开机自启动

3. 启动ftp服务

 systemctl start vsftpd.service

4. 打开防火墙,开放21端口

1 firewall-cmd --zone=public --add-port=21/tcp --permanent
2 firewall-cmd --permanent --zone=public --add-service=ftp
3 firewall-cmd --reload

5. 添加ftp用户

 useradd -g root -d /apuser/ftp -s /sbin/nologin ftpuser

注:表示新增一个ftpuser(用户名),且指定上传目录在/apuser/ftp下

如果后期想变更此用户的上传目录到(/opt/ftpfile),请使用下面的命令:

usermod -d /opt/ftpfile ftpuser

6. 设置用户密码

passwd ftpuser

7. 配置selinux 允许ftp访问home和外网访问

1 setsebool -P allow_ftpd_full_access on
2 setsebool -P ftp_home_dir on3 3 getsebool -a | grep ftp  #查看ftp设置

8. 设置权限(此用户可以访问整个主机目录,后面备注设置权限问题)

chown -R ftpuser:root /apuser/ftp

9. 修改vsftp配置文件

路径:vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 改为: anonymous_enable=NOallow_writeable_chroot=YES  #允许用户具有主目录写权限 
reverse_lookup_enable=NO # 表示不查找dns服务器

10. 错误处理

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

要修复这个错误,可以用命令chmod a-w /apuser/ftp去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列设置:allow_writeable_chroot=YES

vsftpd--530 Login incorrect. Login failed

解决办法:

cat /etc/passwd

查看对应的ftp用户所对应的主目录和登陆shell
在这里插入图片描述
对应我的为:sbin/nologin

接着:

vim /etc/shells

在这里插入图片描述
添加/sbin/nologin即可。

500 OOPS: cannot change directory:/home/frank

selinux如果打开,执行如下命令运行ftp。

setsebool ftpd_disable_trans 1
service vsftpd restart

如果selinux已经disabled。那么应该是ftp目录的权限问题。检查ftp用户的对应主目录及上级目录。ftp用户是否有相应的权限。如果没有请添加。

chmod 777 /apuser/ftp -R   #777为最高权限,请根据各自情况设定相应权限。

如果还有问题,尝试以下解决方法

修改/etc/pam.d/vsftpd

auth required pam_shells.so修改为->auth required pam_nologin.so

11. 其他参考配置参数

1)如果客户端登录vsftp很慢,加上reverse_lookup_enable=NO表示不查找dns服务器
2)local_root=path 指定本地用户根目录
3)anon_root=path 指定匿名用户根目录
4)user_config_dir=path 指定用户个人配置文件所在的目录,用户的个人配置文件为该目录中的同名文件
5)anon_max_rate=0 指定匿名用户最大的传输速度
6)local_max_rate=0 指定本地用户最大的传输速度
7)max_clients=0 指定vsftp允许的最大连接数
8)max_per_ip=0 指定每个ip地址允许建立的最大连接数
9)accept_timeout=60 指定pasc模式的连接超时时间(秒)
10)connect_timeout=60 指定port方式的连接超时时间
11)data_connection_timeout=300 ftp数据的连接超时时间
12)idle_session_timeout=600 限制空闲时间过多久就中断连接
13)chroot_list_enable=yes 限制用户在宿主目录中,不能通过cd切换到系统的其他目录中
14)chroot_list_file=/etc/vsftpd/chroot_list 在chroot_list中存放的是被锁定的用户列表,这些用户只能在其宿主目录中操作,不能通过cd切换目录到系统的其他目录中去
15)ftpd_banner=char 设置ftp登录时的欢迎信息
16)限制客户端可连接的ip地址tcp_wrappers=yes:tcp_wrappers是一种使用访问控制列表(acl)来防止主机名和主机地址欺骗的保护机制
17)限制黑名单用户userlist_enable=yesvim /etc/vsftpd/user_list在这个文件中加入黑名单用户

12. vsftpd.conf参考配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
reverse_lookup_enable=NO
allow_writeable_chroot=YES

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章