------------------转载:亲身实践,确实好用(http://www.cnblogs.com/jack-Star/p/4089547.html)
1、VSFTP简介
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器(ftp.redhat.com)的数据,VSFTP服务器可以支持15000个并发用户。
2、VSFTP安装及配置
安装该软件需要使用最高用户(root)进行安装,否则不能进行。
2.1 安装
首先用命令检查VSFTP是否已经安装。
chkconfig --list | grep vsftpd
显示结果如下,没有任何反应,说明没有安装VSFTP。
接着使用yum命令直接安装
yum install –y vsftpd
上图中表示正在下载,需要耐心等一下,如果网络不畅通,也可能需要下载失败,不过不要担心,只要在重新提交一次命令就行。
今天在安装ftp是出现了新的错误:
在运行yum install –y vsftpd时,出现了一下错误
Error: Cannot find a valid baseurl for repo: base
这样的话,访问外网ip是不通的
ping www.baidu.com
unknow host
解决办法:
vi /etc/resolv.conf
在此文件的最后加上nameserver 8.8.8.8
再次验证ping www.baidu.com
是可以ping 通的
然后为它创建日志文件:
touch /var/log/vsftpd.log
这样简单的两个命令就完成了vsftp的安装,但是如果你现在想这样ftp://your_ip来访问的话,那还不行,还需要配置权限!
2.2 启动与配置自启动
再次使用"chkconfig --list | grep vsfpd"来查看vsftpd服务启动项情况;
服务全部都是关闭(off)的,注意这里的关闭(off)表示的是服务器启动的时候是否会自启动服务,我们使用如下命令来配置其自启动:
chkconfig vsftpd on
或者
chkconfig --level vsftpd on
查看与管理ftp服务:
启动ftp服务:service vsftpd start 查看ftp服务状态:service vsftpd status 重启ftp服务:service vsftpd restart 关闭ftp服务:service vsftpd stop
2.3 配置vsfpd服务
编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:
vim /etc/vsftpd/vsftpd.conf
先按键盘上的"a"就可以进行编辑了,按照下面进行操作。
anonymous_enable=YES --> anonymous_enable=NO //不允许匿名用户访问,默认是允许 xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来 #idle_session_timeout= --> idle_session_timeout= //会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改 #async_abor_enable=YES --> async_abor_enable=YES //支持异步传输功能,默认是注释掉的,去掉注释 #async_abor_enable=YES --> async_abor_enable=YES //支持异步传输功能,默认是注释掉的,去掉注释 #ascii_upload_enable=YES --> ascii_upload_enable=YES //支持ASCII模式的下载功能,默认是注释掉的,去掉注释 #ascii_download_enable=YES --> ascii_download_enable=YES //支持ASCII模式的上传功能,默认是注释掉的,去掉注释 #ftpd_banner=Welcome to blah FTP service //FTP的登录欢迎语,本身是被注释掉的,去不去都行 #chroot_local_user=YES --> chroot_local_user=YES //禁止本地用户登出自己的FTP主目录,本身被注释
下面几个都是已经去掉的,只是写出来,明白其用意。
local_enable=YES //允许本地用户访问,默认就是YES,不用改 write_enable=YES //允许写入,默认是YES,不用改 local_umask= //上传后文件的权限掩码,不用改 dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行 xferlog_enable=YES //开启日志,默认是YES,不用改 connect_from_port_20=YES //设定连接端口20 xferlog_std_format=YES //设定vsftpd的服务日志保存路径,不用改 pam_service_name=vsftpd //设定pam服务下vsftpdd的验证配置文件名,不用改 userlist_enable=YES //拒绝登录用户名单,不用改 TCP_wrappers=YES //限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置)
按照上面修改完之后,按键盘"Esc"退出编辑,再按":",并在后面输入"wq",进行保存并退出。
2.4 配置iptables防火墙
按照以上步骤还不能运行,用下面命令可以查看一下防火墙允许的端口号,我们知道ftp的端口号是"20、21",从结果中可以看出,并没有。
service iptables status
这时需要对"/etc/sysconfig/iptables"进行配置:
vim /etc/sysconfig/iptables
在用上面的命名对"iptables"文件进行添加下面的内容。
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
2.5 设置selinux问题
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux史上最杰出的新安全子系统。SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。对于目前可用的 Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念SELinux提供了比传统的UNIX权限更好的访问控制。
正式如此,所以此时还不能访问FTP服务器。用下面命令查询:
getsebool -a | grep ftp
可以通过下面命令把上图中红色圈住的两个的值设置为"on"。
setsebool -P ftp_home_dir setsebool -P allow_ftpd_full_access
2.6 重启相关服务
最后就是把"vsftpd"和"iptables"两个服务重新启动一下。
service vsftpd restart
如果出现下图,说明刚才没有把vsftpd服务启动起来。
service vsftpd start
最后把防火墙重新启动一下。
service iptables restart
到此为止FTP服务器就搭建完毕了,下面可以通过"FlashFXP.exe"软件进行访问了。