vsftp install and selinux config on centos6.x

ftp

1.安装 vsftpd
yum install vsftpd -y

2.同步数据和配置
rsync -avz root@192.168.1.3:/data/vsftp/ vsftp/

rsync -avz root@192.168.1.3:/etc/vsftpd/ vsftpd/
/etc/init.d/vsftpd restart

3.添加用户
useradd -d /data/vsftp -g ftp -s /sbin/nologin dkmftp

4.selinux设置

setenforce 0 #关
setenforce 1 #开

setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
setsebool -P ftpd_connect_db=on

service vsftpd restart

5. selinux 配置
SELinux在enforcing模式下配置vsftp,运行指定用户访问
https://wiki.centos.org/zh/HowTos/SELinux#head-23b32edada724aa8a29ab04685b53de6455e08a0
http://www.linuxquestions.org/questions/linux-software-2/vsftpd-and-selinux-449313/
http://dingxuan.info/blog/read.php/313.htm
http://nameyjj.blog.51cto.com/788669/496025

### 下面是乱的 可以不用看

setsebool -P ftp_home_dir 1

#CentOS6里,是这样
setsebool -P allow_ftpd_full_access 1
setsebool -P ftpd_connect_db=on

service vsftpd restart

/etc/selinux/config

此时访问ftp,你会发现无法访问,这是由于SELinux引起的。
[root@localhost yjj]# setsebool -P ftp_home_dir=on
[root@localhost yjj]# setsebool -P ftpd_connect_db=on

getsebool -a|grep ftp

2. 经过研究,又找到了另一个更理想的办法。首先查看SELinux中有关FTP的设置状态:
getsebool -a|grep ftp

allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
allow_tftp_anon_write –> off
ftp_home_dir –> off
ftpd_connect_db –> off
ftpd_disable_trans –> on
ftpd_is_daemon –> on
httpd_enable_ftp_server –> off
tftpd_disable_trans –> off

经过尝试发现,打开ftp_home_dir或者 ftpd_disable_trans。都可以达到在enforcing级别下,允许FTP正常登录的效果。

setsebool -P ftp_home_dir 1
#CentOS6里,是这样
setsebool -P allow_ftpd_full_access 1

setsebool -P ftpd_connect_db=on

service vsftpd restart

加-P是保存选项,每次重启时不必重新执行这个命令了。最后别忘了在/etc/sysconfig/selinux中,修改SELINUX=enforcing。