Vsftpd简单搭建

我的生产环境是Centos6.5,由于需要提供ftp服务,就找了一款比较小巧的ftp服务器端软件,vsftpd(vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。)

1.查看是否安装vsftp
rpm -qa | grep vsftpd
如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp

安装vsftp
yum -y install vsftpd

2.装完后关闭iptables和Selinux就可以访问了,但这样不安全
临时关闭selinux并查看当前seelinux状态:

setenforce 0
getenforce

3.为了显示出点技术量,我们得做下调整
还是需要先将selinux临时关闭
然后修改下vsftpd的配置文件

vim /etc/vsftpd/vsftpd.conf

模板在最下边

4.这里需要提到的是关于安全
默认vsftpd的配置里
用户使用FTP访问远程服务器时,用户可以通过FTP会话浏览整个系统,只要文件/目录都是可读取的。包括读取和下载/etc、/var、/usr 及其他位置下面的系统文件,这是很危险的。
所以我们需要将用户访问时限制用户只能访问自己的家目录,则需要在vsftpd.conf增加这个

chroot_local_user=YES

同时,FTP原本是一种明文协议,这意味着谁都可以轻松窥视在客户机与远程FTP服务器之间所传输的文件。想对FTP通信内容进行加密,可以启用vsftpd中的SSL/TLS。

第一步是创建SSL/TLS证书和私钥,如下所示。它会将所创建的证书/私钥存放在目标.pem文件中。

[root@cloud ~]# yum -y install openssl
[root@cloud ~]# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem  
Generating a 2048 bit RSA private key
...................................................+++
..................................+++    
writing new private key to '/etc/vsftpd/vsftpd.pem'
-----  
You are about to be asked to enter information that will be incorporated
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----  
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@cloud ~]# 

第二步。将下面这些配置参数添加到vsftpd.conf配置文件中

[root@cloud ~]# vim /etc/vsftpd/vsftpd.conf 

# 启用TLS/SSL
ssl_enable=YES
# 强迫客户机在登录时使用TLS
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
# 指定SSL证书/私钥
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
# 为被动模式下的连接定义端口范围
pasv_max_port=21000
pasv_min_port=20000

5.iptables放行端口,重启vsftpd服务:

[root@cloud ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p TCP --dport 20000:21000 -j ACCEPT
-A OUTPUT -p TCP --sport 20000:21000 -j ACCEPT
[root@cloud ~]# service iptables reload
[root@cloud ~]# service vsftpd reload
[root@cloud ~]# chkconfig vsftpd on

6 到此,整个小巧的ftp服务器搭建成功。可以使用FileZilla FTP或FlashFXP等客户端软件登陆ftp server了。

模板:

[root@cloud ~]# cat /etc/vsftpd/vsftpd.conf |grep -vE "^#|^$"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
chroot_local_user=YES
pasv_enable=Yes
pasv_max_port=21000
pasv_min_port=20000
ftpd_banner=Welcome to Ftp Server!
[root@cloud ~]# 
comments powered by Disqus