CentOS用vsftpd搭建FTP服务器
准备工作
安装vsftpd
yum install vsftpd
设置开机启动vsftpd ftp服务
chkconfig vsftpd on
打开vsftpd配置文件
vi /etc/vsftpd/vsftpd.conf
需求及配置
1. 不允许匿名访问
anonymous_enable=NO
2. 使用本地帐户进行FTP用户登录验证
2.1 允许使用本地帐户进行FTP用户登录验证
local_enable=YES
2.2 创建用于FTP登录的本地帐户
增加用户ftpuser,主目录为/home/ftp,禁止登录SSH权限。
useradd -d /home/ftp -g ftp -s /sbin/nologin ftpuser -p password
2.3 只允许刚创建的ftpuser登录FTP
vi /etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=NO
vi /etc/vsftpd/user_list
注释所有帐户,添加ftpuser
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
#root
#bin
#daemon
#adm
#lp
#sync
#shutdown
#halt
#mail
#news
#uucp
#operator
#games
#nobody
ftpuser
配置到这里,就可以远程用FTP客户端登录并上传文件,文件会保存在ftpuser的主目录,也就是/home/ftp。
3. 不允许FTP下载
vi /etc/vsftpd/vsftpd.conf
download_enable=NO
4. 只允许指定的IP才能连接
4.1 安装tcp_wrappers
yum -y install tcp_wrappers
4.2 检查tcp_wrappers是否被设置为YES
vi /etc/vsftpd/vsftpd.conf
tcp_wrappers=YES
4.3 添回允许的IP
vi /etc/hosts.allow
vsftpd:允许的IP地址
4.4 拒绝所有其他的IP
vi /etc/hosts.deny
vsftpd:ALL
启动ftp服务器:
service vsftpd start
在连接时出现错误提示:500 OOPS: cannot change directory:/home/ftp
原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
//查看SELinux设置
# getsebool -a|grep ftp
ftpd_disable_trans --> off
或者
ftp_home_dir-->off
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
//查看当前状态是否是on的状态
# getsebool -a|grep ftp
ftpd_disable_trans --> on
或者
ftp_home_dir-->on
//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1(centos6.2可用)
# service vsftpd restart
有关selinux的配置
如关闭,仅仅警告,强制等等 需要编辑/etc/sysconfig/selinux 默认是强制
浙公网安备 33010602011771号