一 CentOS 6.8安装FTP
1 检测是否已经安装FTP
rpm -qa | grep vsftpd
2 若没有,则进行安装
yum install vsftpd
二 设置vsftpd开机启动chkconfig --level 35 vsftpd on
三 配置FTP服务器(开启基于用户的访问控制)1 配置文件的修改
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 是否开启匿名登录 local_enable=YES # 是否允许本地用户登录 write_enable=YES # 是否允许上传 local_umask=022 # 默认的umask码 diremssage_enable=YES # 是否显示目录说明文件 xferlog_enable=YES # 是否记录ftp传输过程 connect_from_prot_20=YES # 是否确定端口传输来自20 xferlog_ftd_format=YES # 是否使用标准的ftp xferlog模式 chroot_list_enable=YES # 是否将系统用户限制在自己的home目录下 chroot_list_file=/etc/vsftpd/chroot_list # 列表不受限制的用户 listen=YES # 是否开启监听 pam_service_name=vsftpd # 服务名称 userlist_enable=YES tcp_wrappers=YES
2 修改selinux
getsebool -a | grep ftp
若报错,getsebool: SELinux is disabled。则
vim /etc/selinux/config
修改 SELINUX=1。
然后重启LINUX,"shutdown -r now" 立刻重启(root用户使用)。
重新执行 "getsebool -a | grep ftp"。
修改selinux,允许用户在家目录写入数据
setsebool -P allow_ftpd_anon_write off setsebool -P ftp_home_dir on
四 创建虚拟用户1 创建一个用户,然后修改用户的登陆shell为nologin,让用户不能登陆系统,只能使用ftp之内的服务
useradd -d /home/www/test -g ftp -s /sbin/nologin test # 指定用户 test 属于组 ftp,只能访问的目录是 /home/www/test,不能登陆系统 passwd test # 设置该用户的密码
2 把用户 test 添加到chroot_list中
vim /etc/vsftpd/chroot_list # 把 test 加入该文件
五 测试虚拟用户在浏览器的地址栏输入 "ftp://你的ip",在弹出的对话框中输入账号、密码,即可连接成功。
六 其他配置打开配置文件 vsftpd.conf
max_client=100 # vsftpd最大支持链接数100个IP
max_per=5 # 每个IP能支持5个链接
local_max_rate=81920 # 限制传输速度
listen_address=某个IP # 绑定某个IP到vsftpd,只允许该IP访问
xferlog_file=/var/log/vsftpd.log # 日志存放位置
更多Vsftpd相关教程见以下内容:
Linux CentOS 6.5 下搭建 vsftpd ftp服务器
openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd
Ubuntu 14.04 配置vsftpd实现FTP服务器 - 通过FTP连接AWS