匿名FTP服务器自定义目录可写入配置

Table of Contents

网上很多匿名FTP配置的教程都是基于vsftpd系统安装目录/var/ftp,但是实际应用中我们需要设置的目录很多情况下不是这个目录,经过自己的琢磨,来看看自定义目录的匿名可写入配置。

一、系统安全放行配置

(1)开放21端口
# service iptables stop //关闭iptables
# iptables -A INPUT -p tcp –dport 21 -j ACCEPT
(2)防火墙配置VSFTPD 被动端口开放:
# iptables -A INPUT -p tcp –dport 30000:30100 -j ACCEPT //端口30000-30100只是举例,可以根据实际情况自定义
# service iptables save //保存iptables配置
# service iptables restart //重启防火墙
(3)SELINUX永久开启FTP支持
# setsebool -P ftp_home_dir on

# setsebool -P allow_ftpd_full_access on

# setsebool -P allow_anon_write_enable on
亦可立刻关闭 SELINUX:
# /usr/sbin/setenforce 0

但是文艺青年一般都是会开启selinux的!

二、vsftpd的安装和配置

# rpm -q vsftpd //查看是否已经安装vsftpd
如果没有安装
# yum install vsftpd -y
# cp /etc/vsftpd/conf /etc/vsftpd/vsftpd.conf.bak //备份 etc/vsftpd/vsftpd.conf
编辑vsftpd.config文件
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 设定允许匿名用户访问

anon_upload_enable=yes   设置允许匿名用户上传文件

anon_mkdir_write_enable=yes    设置允许匿名用户创建文件夹

anon_other_write_enable=yes    允许匿名用户对文件和文件夹进行删除等操作

anon_umask=022      设置匿名用户上传文件的权限,此步骤相当重要,否则匿名上传的文件不能下载
为了让FLASHFXP之类的软件更好的连接服务器,得让VSFTPD支持被动模式才行,上面已经开通相应端口防火墙,在末尾加入:
pasv_enable=YES
pasv_max_port=30100
pasv_min_port=30000
(上面的30000–30100端口号可以自定义,在此举例)

三、FTP用户和目录配置

# mkdir /tmp/test   //  创建ftp主目录

# mkdir /tmp/test/public     //  创建匿名可写入目录
# adduser -m -d /tmp/test -g ftp -s /sbin/nologin test        //-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/tmp/test ,即该账户只能登陆ftp,却不能用做登陆系统用 , -g 是指定为FTP用户组
#passwd test //设置用户test登录密码
修改/tmp/test目录属性:
# chmod -R 755 /tmp/test//递归地给此目录下所有文件和子目录的读、写、执行权限
# chown -R test:ftp   /tmp/test //递归地把此目录及该目录下所有文件和子目录的拥有者为test

注意:已挂载的根目录不能作为FTP的主目录。

修改test的安全上下文(重要):

chcon -R -t public_content_rw_t /tmp/test

chmod -R 755 /tmp/test    修改ftp主目录的修改权限

限制用户目录,不得改变目录到上级:
修改/etc/vsftpd/vsftpd.conf
将这两行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
注释去掉,修改为
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# touch /etc/vsftpd/chroot_list //新增一个chroot_list文件
# echo ‘test’>>/etc/vsftpd/chroot_list //添加需要限制的用户名
# service vsftpd restart //重启vsftpd

四、开机启动vsftpd
# echo ‘service vsftpd start’>>/etc/rc.local

或者chkconfig –level 35 vsftpd on

五、测试匿名用户的上传、删除、创建文件夹等权限

Capture