【技术指南】CentOS安装FTP及配置用户
什么是vsftpd
安装vsftpd
[ ]
[ ]
[ ]
[ ]
[ ]
配置防火墙
[ ]
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
[ ]
配置vsftpd服务器
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
[ ]
[ ]
[ ]
如:这里是在wwj用户下面追加了刚添加sgl用户 wwj
sgl
[ ]
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
配置规则
chroot_list_enable=YES/NO(NO)
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES/NO(NO)
通过搭配能实现以下几种效果:
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
vsftpd的防火墙配置
[ ]
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
[ ]
[ ]
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES
[ ]
[ ]
-A INPUT -p tcp -m multiport --dports 40000:40080 -j ACCEPT
[ ]
可能的错误
报以下错误:
响应: 500 OOPS: cannot change directory:/home/sgl
错误: 严重错误: 无法连接到服务器
错误原因:由于selinux里设置了关闭ftp,运行命令查看SE:getsebool -a
|grep ftp,解决如下:
[root@localhost vsftpd]# getsebool -a|grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off
解决方法:将ftp_home_dir设置为on,执行以下命令,然后即可ftp登录:
[root@localhost vsftpd]# setsebool ftp_home_dir 1
或者
[root@localhost vsftpd]# setsebool -P ftp_home_dir 1
-P参数表示永久生效,关机重启后无需再设置
报以下错误:
响应: 553 Could not create file.
错误: 严重文件传输错误
问题原因:也是selinux设置的问题
解决方法:运行命令
[root@localhost vsftpd]# setsebool allow_ftpd_full_access 1
或者
[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access 1
如果按上面设置还是无法搞定,终极解决方法:关闭SELinux
方法1:永久关闭,需要重启服务器
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
方法2:临时关闭
使用命令setenforce 0
[ ]
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
内容来源于网络,侵删
鉴于篇幅有限,更多详细课程大纲/知识体系/实体书籍/网工必备工具包等请扫码加群获取!
领取福利