LINUX VSFTP配置及安装

------------------转载:亲身实践,确实好用(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 2345 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=600 --> idle_session_timeout=600 //会话超时,客户端连接到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=022 //上传后文件的权限掩码,不用改

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 21 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -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 1

setsebool -P allow_ftpd_full_access 1

 

2.6 重启相关服务
  最后就是把"vsftpd"和"iptables"两个服务重新启动一下。

service vsftpd restart

 

 

 如果出现下图,说明刚才没有把vsftpd服务启动起来。

service vsftpd start

 

 

  最后把防火墙重新启动一下。

service iptables restart

 

 

到此为止FTP服务器就搭建完毕了,下面可以通过"FlashFXP.exe"软件进行访问了。

posted @ 2018-11-20 15:05  LeoLiY  阅读(914)  评论(0编辑  收藏  举报