FTP服务器原理及FTP服务器搭建
一、FTP服务
1、FTP介绍
FTP是文件传输协议,用于Internet上的控制文件的双向传输,是一个应用程序。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件
2、端口说明
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
3、FTP数据链接的两种方式
主动模式:服务器主动发起数据连接
客户端------>服务器建立控制连接(21端口)
客户端随机选择一个未使用的端口,告知服务器使用这个端口进行数据连接,服务器通过控制连接把请求发送到客户端指定的端口
被动模式:服务器被动等待数据连接
客户端------>服务器建立控制连接(21端口)
服务器随机选择一个端口,作为数据连接,数据传出。服务器告知客户端使用服务器指定的端口进行数据连接和数据传输
被动模式更容易穿越防火墙,因此在实际应用中被广泛使用
二、实验
实验前的准备
svftpd安装 rpm -q vsftpd //检查vsftpd安装包是否存在,存在即不需要安装 yum install -y vsftpd //yum 安装vsftpd cd /etc/vsftpd ls //切换到安装好vsftpd目录下查看文件 cp vsftpd.conf vsftpd.conf.bak //将vsftpd的配置文件进行备份
1、匿名用户可登录,可上传,下载文件
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# cd /var/ftp/ [root@localhost ftp]# ls pub [root@localhost ftp]# chmod 777 pub/ [root@localhost ftp]# cd pub/ [root@localhost pub]# vim test.txt [root@localhost pub]# ls test.txt [root@localhost pub]# cat test.txt hello hello world
*验证:Win+R**cmd*
2、禁止匿名用户登录
[root@localhost pub]# cd /etc/vsftpd/ [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd.conf.bak20230519 vsftpd_conf_migrate.sh [root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# systemctl restart vsftpd
*验证:*
3、普通用户登录
[root@localhost vsftpd]# useradd yun [root@localhost vsftpd]# echo 123 | passwd --stdin yun 更改用户 yun 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@localhost vsftpd]# useradd ji [root@localhost vsftpd]# echo 123 | passwd --stdin ji 更改用户 ji 的密码 。 passwd:所有的身份验证令牌已经成功更新。
4、对本地用户访问切换目录进行限制
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# systemctl restart vsftpd
5、账号的权限控制
- 黑名单:在黑名单上标记的用户,是我们禁止访问的对象
- 白名单:在白名单上标记的用户是我们允许访问的对象,白名单比黑名单的制定更为严格和安全
5.1 黑名单
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# vim user_list
[root@localhost vsftpd]# systemctl restart vsftpd
5.2 白名单
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# systemctl restart vsftpd
注:要想使用root用户,需要把ftpusers里面的root用户注销掉即可
6、使用工具