当前位置: > Linux服务器 > ftp >

Vsftpd的安全配置案例分析(4)

时间:2016-05-30 19:25来源:linux.it.net.cn 作者:IT







案例二 配置解析
 
1.查看服务器是否支持tcp_wrapper
 
[root@localhost Server]# ldd $(which vsftpd)
 
linux-gate.so.1 =>  (0x00138000)
 
libssl.so.6 => /lib/libssl.so.6 (0x001ba000)
 
 libwrap.so.0 => /lib/libwrap.so.0 (0x00af5000)
 
 可以看到是该服务器是支持tcp_wrapper的 只允许某个ip登录或者一个网段
 
vim /etc/hosts.allow    
 
vsftpd:192.168.10.10:allow  #也可以 vsftpd:192.168.10.0/255.255.255.0:allow 允许某个网段
 
vim /etc/hosta.deny
 
vsftpd:all:deny
 
验证ftp server 的ip是192.168.10.10
 
C:\Documents and Settings\Administrator>ftp 192.168.10.10
 
Connected to 192.168.10.10.
 
421 Service not available.
 
使用ip为192.168.10.10 登录
 
User (192.168.10.10:(none)): user1
 
Connection closed[root@localhost etc]# ftp 192.168.10.10
 
Connected to 192.168.10.10.
 
220 (vsFTPd 2.0.5)
 
530 Please login with USER and PASS.
 
530 Please login with USER and PASS.
 
KERBEROS_V4 rejected as an authentication type
 
Name (192.168.10.10:root): user1
 
230 Login successful. by remote host.
 
看到可以登录。
 
Ftps的配置部分
 
 注意:先把tcp_wrapper里面的配置清空以免影响访问
 
[root@localhost Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm 
 
[root@localhost Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
 
[root@localhost Server]# tshark -ni eth0 -R "tcp.dstport eq 21"
 
使用抓包工具是可以看到用户名和密码的。
 

 
CA 部分
 
私钥是cakey.pem,根证书是cacer.pem
 
 45 dir            = /etc/pki/CA 
 
 87 [ policy_match ]
 
 88 countryName            = optional
 
 89 stateOrProvinceName    = optional
 
 90 organizationName        = optional
 
 91 organizationalUnitName  = optional
 
 92 commonName              = optional
 
 93 emailAddress            = optional
 
[root@localhost CA]# mkdir certs newcerts crl
 
[root@localhost CA]# touch index.txt serial
 
5.CA服务器产生自己的证书
 
[root@localhost CA]# openssl genrsa 1024 > private/cakey.pem
 
CA服务器产生证书
 
[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem
 
7.ftp服务器产生自己的私钥
 
[root@localhost CA]# mkdir /etc/vsftpd/certs
 
[root@localhost CA]# cd /etc/vsftpd/certs/
 
[root@localhost certs]# openssl genrsa 1024 >vsftpd.key
 
8.ftp服务器产生请求
 
[root@localhost certs]# openssl req -new -key vsftpd.key -out vsftpd.csr

9.CA 服务器颁发证书
 
[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert
 
10.修改CA服务器的证书及私钥的权限
 
[root@localhost vsftpd]# cd /etc/pki/CA
 
[root@localhost CA]# chmod 600 private/cakey.pem
 
[root@localhost CA]# chmod 600 cacert.pem 
 
当用户通过ftps方式访问ftp服务器是,要使用ftp服务器的证书。所以要在ftp的配置文件中说明证书及私钥位置
 
force_local_data_ssl=YES
 
force_local_logins_ssl=YES
 
ssl_enable=YES
 
ssl_sslv2=YES
 
ssl_sslv3=YES
 
ssl_tlsv1=YES
 
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert
 
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key
 
测试:
 
C:\Documents and Settings\Administrator>ftp 192.168.10.10
 
Connected to 192.168.10.10.
 
220 (vsFTPd 2.0.5)
 
User (192.168.10.10:(none)): user1
 
530 Non-anonymous sessions must use encryption.  #可以看到已经加密了
 
Login failed.                《-- 不支持加密访问
 
使用第三方软件进行测试如下
 
 


默认进入自己的家目录
 


可以切换目录


使用抓包工具进行抓包,可以发现已经加密了
 
[root@localhost vsftpd]# tshark -ni eth0 -R "tcp.dstport eq 21"





(责任编辑:IT)
------分隔线----------------------------