FTP服务器一般在服务器集群中做为一个上传资源的节点。比如视频或者图片网站,一般是先将资源上传到FTP服务器中,然后再利用文件分发或者同步等功能将资源调度到其它节点。
ftp服务器的配置本身不难,但前提是要理解到它的主动模式和被动模式;
在两种模式中,ftp服务器都是通过21(默认)号端口与客户端建立连接,但是传输数据却是通过另一个端口。
在主动模式中,由服务器的20号端口主动向客户端的一个随机端口发起连接请求,从而建立数据传输通道。
在被动模式中,服务器端需要配置自身被动连接的随机端口范围,如果需要传输数据,服务端主动向客户端报告自己打开的随机端口,然后由客户端向这个随机端口发起连接请求,从而建立数据传输通道。
反映在防火墙上:主动模式,服务器端需要开启21,20号端口;被动模式,服务器端需要开启21号端口,和配置文件中所配置的随机端口范围内的所有端口。
注意:本次配置为被动模式。
安装:
yum install vsftpd -y 直接用rpm包安装
vim /etc/vsftpd/vsftpd.conf 修改配置文件
anonymous_enable=NO #是否开启匿名登录
local_enable=YES #是否允许本地用户登录
write_enable=YES #配置可写
local_umask=022 #反权限码,等同于744的目录权限
dirmessage_enable=YES
xferlog_enable=YES #是否记录ftp传输过程
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES #是否限制系统用户只能登录家目录
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
reverse_lookup_enable=NO
pasv_enable=YES #启用被动模式
pasv_min_port=10000 #规定被动模式端口范围起点
pasv_max_port=11000 #规定被动模式端口范围终点
pasv_promiscuous=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
这里的ftp服务器,没有在配置文件中指明root,是通过创建ftp服务器的用户时直接指明家目录,来实现登陆这个用户时直接到这个家目录下的。而这个家目录事先应该是不存在的。
useradd ftpuser -d /test -s /sbin/nologin ; echo "test123" | passwd ftpuser --stdin #创建用户并指明家目录,配置密码
chown -R ftpuser:ftpuser /test
打开防火墙的端口
iptables -I INPUT -m state --state NEW -p tcp -m multiport --dports 20,21 -j ACCEPT
iptables -I INPUT 2 -p TCP --dport 10000:11000 -j ACCEPT
service iptables save
vim /etc/vsftpd/chroot_list #需要登录的用户加入到这个文件下
ftpuser
service vsftpd start
最后注意:
一定要关闭selinux