前言

==前面的DNS一定要成功才能做!!!==

实训任务1:FTP服务器加密传输 任务情境描述,某公司在需要使用vsftpd搭建一台FTP服务器,用于web站点资料的更新和公司公用文件的存放。为了保证客户机和服务器之间传输数据的保密性和完整性,公司决定使用SSL/TLS协议加固FTP服务器,客户机和服务器之间采用SSL/TLS协议加密数据。

虚拟机需求: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 //安装vsftp服务
systemctl start vsftpd //开启vsftp服务
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 /*server是我的用户名,看情况来*/
[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个不能再多了!

结尾

至此,实验结束。希望对你有所帮助,有任何问题请在下方留言。可以关注我的 公众号以及订阅我的文章 ,感谢你的支持,是对我最大的动力,当然了,更多的是因为热爱。