原理介绍:
一、帐号登录:
1.匿名帐号 anonymous
2.本地帐号 服务器本地的帐号
3.虚拟帐号 虚拟帐号-->映射-->物理帐号
二、ftp的安全性:
由于ftp协议属于明文传输,因此帐号安全是ftp的一个重大问题因此我们需要通过一些方法来确保ftp的安全;在vsftp中,默认使用本地帐号和匿名帐号登录服务器,如果被他人获取ftp帐号,便可以通过此帐号登录ftp服务器的主机,因此对ftp的安全性会有很大的威胁;
再次通过两种方法来增加ftp服务器的安全性:
1 使用ssl安全套接层对ftp进行加密传输;
2 使用虚拟帐号技术来保证帐号和服务器的安全性;
三、为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:
1 、未经授权的用户禁止在服务器上进行FTP操作。
2 、FTP用户不能读取未经系统所有者允许的文件或目录。
3 、未经允许,FTP用户不能在服务器上建立文件或目录。
4 、FTP用户不能删除服务器上的文件或目录。
5 、FTP用户不能切换目录;
四、SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
五、虚拟帐号登录原理:
案例一:通过ssl安全套接层来实现ftps加密传输;
一、实验步骤:
配置服务器ip地址:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启network服务:
# service network restart
编辑证书配置文档:
# vim /etc/pki/tls/openssl.cnf
//证书文件的主目录
//默认国家
//默认省份
//默认城市
搭建CA证书服务器
# cd /etc/pki/CA/
# mkdir crl certs newcerts //创建证书服务器中所必需的三个目录
# touch index.txt serial //创建证书服务器中所必须的两个文件
# echo "01" >serial //在serial文件中写入‘01’的值
# cd private/
# openssl genrsa 1024 >cakey.pem //产生证书的私钥
# chmod 600 cakey.pem //改变证书私钥的权限,保护期安全
# cd /etc/pki/CA/
# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem //通过私钥产生CA服务器的证书文件
挂载光盘:
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/ //挂载
安装vsftp服务
# cd /mnt/cdrom/Server/
# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm //安装vsftpd服务的包
给vsftp颁发证书:
# mkdir /etc/vsftpd/certs //创建vsftpd证书存放目录
# cd /etc/vsftpd/certs/
# openssl genrsa 1024 >vsftpd.key //产生vsftpd自己的私钥
# openssl req -new -key vsftpd.key -out vsftpd.csr //vsftpd通过自己的私钥产生证书请求
# openssl ca -in vsftpd.csr -out vsftpd.cert //通过证书请求,申请证书
# chmod 600 * 改变vsftpd证书相关文件的权限
配置vsfpt配置文档:
# vim /etc/vsftpd/vsftpd.conf
添加一下命令:
rsa_cert_file=/etc/vsftpd/certs/vsftpd.cert //vsftpd证书所在位置
rsa_private_key_file=/etc/vsftpd/certs/vsftpd.key //vsftpd私钥所在位置
ssl_tlsv1=YES //支持ssl的1版本
ssl_sslv2=YES //支持ssl的2版本
ssl_sslv3=YES //支持ssl的3版本
ssl_enable=YES //开启vsftpd的ssl加密
force_local_logins_ssl=YES //对本地用户的登录信息进行加密
启动vsftpd:
# service vsftpd start
创建本地帐号:
# useradd test1
# passwd test1
二、实验测试:
使用FlashFXP ftp客户端进行测试:
下载安装FlashFXP后,创建一个ftp站点:
新建站点:
点击连接后,会弹出ftp的证书:
验证成功!!
案例二:通过虚拟帐号保证ftp服务器帐号的安全性;
一、实验步骤:
挂载光盘:
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
安装vsftpd:
# cd /mnt/cdrom/Server/
# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
安装db_load包:
# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm
创建虚拟帐号数据库的一个文本文件:
# vim /etc/vsftpd/viruser.txt
将viruser.txt生成一个虚拟帐号数据库:
# cd /etc/vsftpd/
# db_load -T -t hash -f viruser.txt viruser.db
编辑vsftp的主配置文档,查看用户通过pam身份验证的接口文件:
# vim /etc/vsftpd/vsftpd.conf
打开pem的接口文件,用于将ftp验证指向定义的用户数据库:
# vim /etc/pam.d/vsftpd
编辑vsftpd.conf虚拟帐号映射成真是目录:添加两行
# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=localuser
启动vsftpd服务:
# service vsftpd start
创建虚拟帐号的映射本地帐号:
# useradd localuser
# passwd localuser
更改localuser家目录的权限:
# chmod a+rx /home/localuser
二、验证测试:
在localuser家目录中创建一个测试文件:
# touch /home/localuser/test.txt
首先登录ftp:
使用创建的虚拟帐号test1登录ftp:右击-->登录
输入帐号test1:
登录成功!!