前言 ==前面的DNS一定要成功才能做!!!== 虚拟机需求:1台DNS服务器(Server)、1台Web服务器(Ftp Server)、1台客户端(Client1)
在第五章的基础上继续实训
FTP服务器加密传输
任务情境描述 某公司在需要使用vsftpd搭建一台FTP服务器,用于web站点资料的更新和公司公用文件的存放。为了保证客户机和服务器之间传输数据的保密性和完整性,公司决定使用SSL/TLS协议加固FTP服务器,客户机和服务器之间采用SSL/TLS协议加密数据。
任务要求:
1. 禁止使用不安全的FTP,请使用“CA”证书颁发机构,颁发的证书,启用FTPS服务; Country Name (2 letter code) [XX]:CN State or Province Name (fullname) []:GD Locality Name (eg, city) [Default City]:GuangZhou Organization Name (eg, company) [Default Company Ltd]:mydomain.com Organizational Unit Name (eg, section) []:Operations Departments Common Name (eg, your name or your server’s hostname)[]:ftp.mydomain.com
2. 使用ftp.mydomian.com域名访问服务器; 3. 用户webadmin,登录ftp服务器,根目录为/webdata/; 4. 登录后限制在自己的根目录; 5. 允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件; 6. 限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人; 7.用于通过工具或者浏览器下载的最大速度不超过100kb/s; 8. 一个IP地址同时登陆的用户进程/人数不超过2人。
一、配置Ftp服务器(Ftp Server)的IP地址 1 2 3 4 5 6 BOOTPROTO=static IPADDR=192.168.1.100 GATEWAY=192.168.1.2 NETMASK=255.255.255.0 DNS1=192.168.1.10 DNS2=202.96.128.86
二、 为Ftp服务器(Ftp Server)安装vsftp服务 1 2 3 yum -y install vsftpd systemctl start vsftpd systemctl enable vsftpd
三、Ftp服务器(Ftp Server)生成证书 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 创建目录[root@webserver webserver]# mkdir /etc/ssl/serverkey 生成证书[root@webserver webserver]# openssl req -x509 -nodes -keyout /etc/ssl/serverkey/vsftpd.pem -out /etc/ssl/serverkey/vsftpd.pem -days 365 -newkey rsa:2048 Generating a 2048 bit RSA private key ................+++ .....+++ writing new private key to '/etc/ssl/serverkey/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) [CN]: State or Province Name (full name) [China]:GD Locality Name (eg, city) [GuangZhou]: Organization Name (eg, company) [ymx.com]: Organizational Unit Name (eg, section) []:Operations Departments Common Name (eg, your name or your server's hostname) []:ftp.ymx.com Email Address []: [root@webserver webserver]#
图片打反了 别按照图片 按上面的文本
四、 Ftp服务器(Ftp Server)防火墙设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 允许ftp通过[root@webserver webserver]# firewall-cmd --permanent --zone=public --add-service=ftp success 允许端口通过[root@webserver webserver]# firewall-cmd --permanent --zone=public --add-port=990 /tcp success 允许端口通过[root@webserver webserver]# firewall-cmd --permanent --zone=public --add-port=990 /udp success 允许端口通过[root@webserver webserver]# firewall-cmd --permanent --zone=public --add-port=40000 -50000 /tcp success 允许端口通过[root@webserver webserver]# firewall-cmd --permanent --zone=public --add-port=40000 -50000 /udp success 重启防火墙[root@webserver webserver]# firewall-cmd --reload success [root@webserver webserver]#
五、 Ftp服务器(Ftp Server)配置vsftp文件 1 vim /etc/vsftpd/vsftpd.conf
最后插入
1 2 3 4 5 6 7 8 9 10 11 12 ssl_enable=yes ssl_tlsv1=yes ssl_sslv2=no ssl_sslv3=no rsa_private_key_file=/etc/ssl/serverkey/vsftpd.pem rsa_cert_file=/etc/ssl/serverkey/vsftpd.pem allow_anon_ssl=no force_local_logins_ssl=yes force_local_data_ssl=yes pasv_min_port=40000 pasv_max_port=50000 systemctl restart vsftpd //重启
图片打错了请按照上面文本打
六、创建用户和根目录以及虚拟用户(详情看学习通ftp虚拟用户章节 这里不做过多解释) 看不懂去看ppt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [root@webserver webserver]# useradd webadmin -s /sbin/nologin [root@webserver webserver]# useradd admin -s /sbin/nologin [root@webserver webserver]# passwd --stdin webadmin 更改用户 webadmin 的密码 。 root passwd:所有的身份验证令牌已经成功更新。 [root@webserver webserver]# passwd --stdin admin 更改用户 admin 的密码 。 root passwd:所有的身份验证令牌已经成功更新。 [root@webserver webserver]# vim /etc/vsftpd/vusr.txt webadmin root admin root [root@webserver webserver]# mkdir -p /var /ftp/pub/ /webdata [root@webserver webserver]# chmod 777 /webdata [root@webserver webserver]# chown webadmin /var /ftp/pub/ /webdata [root@webserver webserver]# rpm -qf /usr/bin/db_load libdb-utils-5.3 .21 -24. el7.x86_64 [root@webserver webserver]# db_load -T -t hash -f /etc/vsftpd/vusr.txt /etc/vsftpd/vusr.db [root@webserver webserver]# file /etc/vsftpd/vusr.db /etc/vsftpd/vusr.db: Berkeley DB (Hash, version 9 , native byte -order) [root@webserver webserver]# chmod 600 /etc/vsftpd/vusr.* [root@webserver webserver]# cp -p /etc/pam.d/vsftpd /etc/pam.d/vsftpd-vusr [root@webserver webserver]# vim /etc/pam.d/vsftpd-vusr auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusr account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusr [root@webserver webserver]# vim /etc/vsftpd/vsftpd.conf local_enable=yes chroot_local_user=yes pam_service_name=vsftpd-vusr guest_enable=yes guest_username=webadmin user_config_dir=/etc/vsftpd/vconfig virtual_use_local_privs=yes allow_writeable_chroot=yes [root@webserver webserver]# mkdir /etc/vsftpd/vconfig/ [root@webserver webserver]# vim /etc/vsftpd/vconfig/webadmin local_root=/webdata [root@webserver webserver]# vim /etc/vsftpd/vconfig/admin local_root=/webdata write_enable=no [root@webserver webserver]# setsebool -P ftpd_full_access on [root@webserver webserver]# systemctl restart vsftpd
七、 使用域名登录要在Dns服务器(Dns Server)上正反向加上一条(略过)
八、任务需求后四项Ftp服务器(Ftp Server)上修改配置文件 1 2 3 4 5 6 7 8 9 10 vim /etc/vsftpd/vsftpd.conf #允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件; deny_file={*.doc,*.docx,*.xlsx} #限制用户的下载最大速度为100kb/s;用于通过工具或者浏览器下载的最大速度不超过100kb/s;人数为2 人; local_max_rate=102400 #最大同一IP在线 max_per_ip=2 #一个IP地址同时登陆的用户进程/人数不超过2 人。 max_clients=2 systemctl restart vsftpd
九、客户端(client1)测试 1. 安装ftp服务和FileZilla 1 2 yum -y install epel-release yum -y install filezilla
2. 创建测试文件 1 2 3 4 5 6 7 [root@client server]# mkdir /home/server/test [root@client server]# chmod 777 /home/server/test [root@client server]# cd /home/server/test/ [root@client test]# vim test.txt [root@client test]# vim test.doc [root@client test]# vim test.docx [root@client test]# vim test.xlsx
3. 尝试域名带证书CA登录ftp 登录成功!
4. 尝试禁止上传文件类型上传 上传失败!
5. 尝试下载文件 成功!
6. 单IP多用户登录 最多只能2个不能再多了!
至此,实验结束。