利用ca服务器实现安全的ftp服务器连接

1:实验要求简单说明

   1.增加硬盘  50g  

   2.分区 50g

   3.格式化ext3    挂载  /mnt/part1

   4. /mnt/part1目录下创建

                 public   匿名帐号根目录  ro 

 

                 home  所有用户的加目录位置  空间限制10M

        

        本地帐号使用ftps进行访问

 

        本地用户速率 1M/S  匿名  100k/S

        同时在线用户数量  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限制级别     在里面是按块表示一块表示1k10m所以是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

产生私钥放在privatecakey.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.cnf4654

产生下一个证书需要现有这些文件

默认的认证匹配是必须要给相同的国家相同的城市相同的生颁发证书,如下:

# 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