第七章 Centos 7 Linux配置ftp 实训任务1:FTP服务器加密传输

  • ~6.29K 字
  1. 1. 前言
    1. 1.1. FTP服务器加密传输
    2. 1.2. 任务要求:
      1. 1.2.1. 1. 禁止使用不安全的FTP,请使用“CA”证书颁发机构,颁发的证书,启用FTPS服务;
      2. 1.2.2. 2. 使用ftp.mydomian.com域名访问服务器;
      3. 1.2.3. 3. 用户webadmin,登录ftp服务器,根目录为/webdata/;
      4. 1.2.4. 4. 登录后限制在自己的根目录;
      5. 1.2.5. 5. 允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件;
      6. 1.2.6. 6. 限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人;
      7. 1.2.7. 7.用于通过工具或者浏览器下载的最大速度不超过100kb/s;
      8. 1.2.8. 8. 一个IP地址同时登陆的用户进程/人数不超过2人。
    3. 1.3. 一、配置Ftp服务器(Ftp Server)的IP地址
    4. 1.4. 二、 为Ftp服务器(Ftp Server)安装vsftp服务
    5. 1.5. 三、Ftp服务器(Ftp Server)生成证书
    6. 1.6. 四、 Ftp服务器(Ftp Server)防火墙设置
    7. 1.7. 五、 Ftp服务器(Ftp Server)配置vsftp文件
    8. 1.8. 六、创建用户和根目录以及虚拟用户(详情看学习通ftp虚拟用户章节 这里不做过多解释)
    9. 1.9. 七、 使用域名登录要在Dns服务器(Dns Server)上正反向加上一条(略过)
    10. 1.10. 八、任务需求后四项Ftp服务器(Ftp Server)上修改配置文件
    11. 1.11. 九、客户端(client1)测试
      1. 1.11.1. 1. 安装ftp服务和FileZilla
      2. 1.11.2. 2. 创建测试文件
      3. 1.11.3. 3. 尝试域名带证书CA登录ftp
      4. 1.11.4. 4. 尝试禁止上传文件类型上传
      5. 1.11.5. 5. 尝试下载文件
      6. 1.11.6. 6. 单IP多用户登录
    12. 1.12. 结尾

前言

==前面的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个不能再多了!

结尾

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