利用ca服务器实现安全的ftp服务器连接
1:实验要求简单说明:
1.增加硬盘
2.分区
3.格式化ext3 挂载 /mnt/part1
4.在 /mnt/part1目录下创建
public 匿名帐号根目录 ro
home 所有用户的加目录位置 空间限制10M
本地帐号使用ftps进行访问
本地用户速率
同时在线用户数量 10
每个用户连接数 2
建立ca服务器并颁发证书
使用tshark抓包分析验证
2:实验分析:
新增加硬盘要对硬盘分区格式化并且挂载,另外还要修改一个文件,让系统每一次启动都自动挂载,不用再麻烦自己手动了
安装vsftp并实现ftp的用户控制,这个保存更改用户主目录和用户下载最大速度,每个用户连接数等等
建立ca,这个才是重点,使用ca颁发证书,让每一个用户都能加密安全的连接到ftp服务器,因为一般情况下ftp是明文传递,任意一个抓包工具就可以抓取账号和密码,太不安全了,但是使用了ca之后,有了加密和证书,一切就都变的安全了。
3:实验步骤:
[root@mail vsftpd]# fdisk /dev/sdb
[root@mail vsftpd]# mkfs -t ext3 /dev/sdb1 /////格式化
mkdir /mnt/part1
[root@mail ~]# vi /etc/fstab //////做磁盘配额 加入如下
/dev/sdb1 /mnt/part1 auto defaults,usrquota 0 0
mount -a
[root@mail ~]# quotacheck -augvc
[root@mail ~]# cd /mnt/part1/
[root@mail part1]# edquota -u user1
其中blocks表示已经使用了多少空间
soft表示警告级别 hard限制级别 在里面是按块表示一块表示1k分10m所以是10000
10000 10000 /////所以在soft hard都写10000
inodes表示文件数量
[root@mail part1]# quotaon /dev/sdb1
[root@mail part1]# vi /etc/rc.d/rc.local
quotaon /dev/sdb1
[root@mail part1]# mkdir public
[root@mail part1]# mkdir home
[root@mail part1]# cd /home/
[root@mail home]# mv * /mnt/part1/home/
[root@mail home]# vi /etc/passwd
[root@mail home]# useradd -D
[root@mail home]# useradd -D -b /mnt/part1/home
[root@mail home]# vi /etc/vsftpd/vsftpd.conf
anon_root=/mnt/part1/public
max_clients=10 /////最大连接数
max_per_ip=2 //////每个用户最多连接数
local_max_rate=1000000 /////本地用户下载速率/字节
anon_max_rate=100000 /////匿名用户下载速率/字节
建立ca:
root@server ~]# cd /etc/pki/
[root@server pki]# vi tls/openssl.cnf
34 [ algs ]
35 # Algorithm configuration options. Currently just fips_mode
36 fips_mode = no
37
38 ####################################################################
39 [ ca ]
40 default_ca = CA_default # The default ca section
41
42 ####################################################################
43 [ CA_default ]
44
45 dir = ../../CA # Where everything is kept
46 certs = $dir/certs # Where the issued certs are kep t
47 crl_dir = $dir/crl # Where the issued crl are kept
48 database = $dir/index.txt # database index file.
49 #unique_subject = no # Set to 'no' to allow creation of
50 # several ctificates with same s ubject.
51 new_certs_dir = $dir/newcerts # default place for new certs.
52
53 certificate = $dir/cacert.pem # The CA certificate
54 serial = $dir/serial # The current serial number
55 crlnumber = $dir/crlnumber # the current crl number
56 # must be commented out to leave a V1 CRL
57 crl = $dir/crl.pem # The current CRL
58 private_key = $dir/private/cakey.pem# The private key
59 RANDFILE = $dir/private/.rand # private random number file
60
61 x509_extensions = usr_cert # The extentions to add to the c ert
62
63 # Comment out the following two lines for the "traditional"
64 # (and highly broken) format.
65 name_opt = ca_default # Subject Name options
66 cert_opt = ca_default # Certificate field options
67
68 # Extension copying option: use with caution.
69 # copy_extensions = copy
70
71 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 C RLs
72 # so this is commented out by default to leave a V1 CRL.
73 # crlnumber must also be commented out to leave a V1 CRL.
46 certs = $dir/certs :这个中的$dir是变量引用,前面定义了dir 这里引用
45 dir = /etc/pki/CA # Where ever
[root@server pki]# cd /etc/pki/CA/
[root@server CA]# ll
total 8
drwx------ 2 root root 4096 Dec 17 2008 private
机构自己的私钥在private
[root@server CA]# openssl genrsa 1024 >private/cakey.pem
产生私钥放在private的cakey.pem
[root@server CA]# chmod 600 private/*
使私钥只有管理员可以访问所以修改权限
[root@server CA]# openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3655
[root@server CA]# cd /etc/vsftpd/
[root@server vsftpd]# mkdir certs
[root@server certs]# openssl genrsa 1024 >vsftpd.key
产生钥匙
[root@server certs]# chmod 600 vsftpd.key
修改权限
[root@server certs]# openssl req -new -key vsftpd.key -out vsftpd.csr
产生一个请求文件
[root@server certs]# cd /etc/pki/CA/
[root@server CA]# mkdir certs crl newcerts
[root@server CA]# touch index.txt serial //新建的这些东西在vi tls/openssl.cnf的46到54行
产生下一个证书需要现有这些文件
默认的认证匹配是必须要给相同的国家相同的城市相同的生颁发证书,如下:
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
可以改了 一下都改了: :88,90 s/match/optional 就可以全部换成optional了
[root@server CA]# echo "01" >serial
给serial一个值
[root@server CA]# cd /etc/vsftpd/certs/
[root@mail certs]# openssl genrsa 1024 >vsftpd.key
openssl req -new -key vsftpd.key -out vsftpd.csr
[root@server certs]# openssl ca -in vsftpd.csr -out vsftpd.crt
在ftp中启用登录验证
[root@mail home]# vi /etc/vsftpd/vsftpd.conf
force_local_logins_ssl=YES /////登陆验证
force_local_data_ssl=YES /////数据验证
ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
rsa_cert_file=/etc/vsftpd/certs/vsftpd.crt /////证书位置
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key /////密钥位置
安装tshark:
[root@mail Server]# yum install wireshark-1.0.8-1.el5_3.1.i386.rpm
[root@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 21"
截图说明吧:
4:实验最后验证:
使用ca实现安全ftp连接之前可以看到抓包情况:
很容易就可以把账号和密码都抓起来了,很不安全。
使用ca实现安全ftp连接后的抓包:
显示的都是乱码,说明是加密过的,这样安全多了。
另外当使用这种方式后登陆ftp服务器就不可以再用以前的方法了,需要用到专门的软件:名称叫:FlashFXP4_1548_Setup.exe 或其他的客户端软件
点击accept &save