在RHEL6平台下的多数生产线上的FTP应用基本很少开启SeLinux,因为这玩意实在太麻烦了。这里给出一个小案例,基于RHEL 6.3平台。 系统状态: RedHad Enterprises Linux 6.3 32bit SeLinux - Enforcing iptables - disabled (这个开启端口其实很简单,本案例中就不讨论了) 1.安装略(yum -y install vsftpd) 2.默认启动以及测试 这里说明下,就是安装之后,直接启动vsftpd,不修改任何参数,普通用户是可以登陆并且上传下载的,当然是vsftp的默认情况,但是SeLinux存在就不这么默认了。先要开启: [root@localhost cto.luxiaok.com]# setsebool -P ftp_home_dir=on 否则会报无法切换目录的500错误。其实,vsftp的默认情况允许本地用户登录并且允许上传下载是很危险,因为可以切换到别的目录去,当然是默认情况下。这当然也是可以通过vsftpd.conf进行控制的。 3.开启匿名用户的上传下载 这是本文的主题。再来说说默认情况,默认修改vsftpd.conf的情况下只允许匿名用户进行登录并允许下载,不允许上传。 允许匿名上传设置:
取消上面两行的注释就行了,然后重启vsftpd。这里也可以注释掉local_enable来禁用掉本地用户的登陆。 但是会发现还是无法上传。 首先 [root@luxiaok.com ~]# chmod -R 777 /var/ftp/pub 非常重要的一点,这里不能更改/var/ftp的权限,否则在匿名用户登陆的是就会直接500错误,这是vsftp的默认机制。这里的上传以pub目录为例。 然后 [root@localhost cto.luxiaok.com]# setsebool -P allow_ftpd_anon_write=on 再进行测试,就OK了。 这里只是一个很简单的案例,不过多解释SeLinux的相关知识了。 (责任编辑:IT) |