FTP连接及连接模式
控制连接:TCP 21,用于发送FTP命令信息
数据连接:TCP 20,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从 20 端口主动向客户端发起连接
被动模式:服务端在指定范围内某个端口被动等待客户端连接
FTP传输模式
文本模式:ASCII 模式,以文本序列传输数据
二进制模式:Binary 模式,以二进制序列传输数据
基于系统用户的 FTP 服务(匿名用户)
首先挂载光盘 切换到/yum.repos.d/目录 删除所有文件 修改文件
然后安装ftp服务器


切换到vsftpd目录 重启发ftp服务 关闭防火墙和安全Linux
![[ rootOlocalhost yum. repos. d] # cd /etc/vsftpd
root•localhost vsftpdl systemctl restart vsftpd
[ root810calhost vsftpd] # systemctl stop firewalld
I rootalocalhost vsftpdl setenforce O
setenforce: SELinux is disabled [ rootOlocalhost yum. repos. d] # cd /etc/vsftpd
root•localhost vsftpdl systemctl restart vsftpd
[ root810calhost vsftpd] # systemctl stop firewalld
I rootalocalhost vsftpdl setenforce O
setenforce: SELinux is disabled](https://s4.51cto.com/images/202111/85b0eb513be125c60d4506076ccdf33b7ad57a.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
切换到/ftp/pub目录下 创建一个文件 然后登录ftp可以下载
![root@localhost vsftpd] # cd /var/ftp
rootatocalhost ftpl#
drwxr- xr-x 2 root root 6 10k 2020 pub
root•tocalhost
bash: cd: 'pub:
rootatocalhost
root•tocalhost
root@localhost
ftpl# cd /pub
ftpl# cd pub
publ # touch qqq
publ# root@localhost vsftpd] # cd /var/ftp
rootatocalhost ftpl#
drwxr- xr-x 2 root root 6 10k 2020 pub
root•tocalhost
bash: cd: 'pub:
rootatocalhost
root•tocalhost
root@localhost
ftpl# cd /pub
ftpl# cd pub
publ # touch qqq
publ#](https://s4.51cto.com/images/202111/55cec6147bbcea3736547502e4f2cc1a4f868e.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

切换到vsftpd目录下 复制一份配置文件 然后进ftp服务的配置文件

开启匿名用户:去掉前面#符号 保存退出 重启ftp服务

切换到ftp目录下 给pub这个目录可以上传的权限

随便拖一个文件上传到ftp
![kroot8toca1host pub] #
- I ftp ftp 5071
26
11: 57
r--r-- 1 root root
26
LAMP- 7. 3. txt kroot8toca1host pub] #
- I ftp ftp 5071
26
11: 57
r--r-- 1 root root
26
LAMP- 7. 3. txt](https://s4.51cto.com/images/202111/b419a4614a4dd9bd898454a362cd64515cba65.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
再切换到vsftpd目录,进配置文件修改

开启用户

允许上传

创建目录权限,其他写入和删除权限,传输速率

基于系统用户的 FTP 服务(实名用户)
切换到vsftpd目录 然后编辑ftp配置文件 重启发ftp服务 并创建一个用户

编辑配置文件
将用户禁锢在主目录 允许家目录具有写入权限 白名单

创建黑名单 然后切换到用户查看上传的文件
![root810calhost
rootatocalhost
root8tocathost
rootOlocalhost
8
vsftpd] #
vsftpdl
vs ftpd] #
tom] # Il
touch chroot list
systemctl restart vsftpd
cd /home/tom/
rwr r - 1 tom tom 3071 27 13:42 LAMP-7.3. txt root810calhost
rootatocalhost
root8tocathost
rootOlocalhost
8
vsftpd] #
vsftpdl
vs ftpd] #
tom] # Il
touch chroot list
systemctl restart vsftpd
cd /home/tom/
rwr r - 1 tom tom 3071 27 13:42 LAMP-7.3. txt](https://s4.51cto.com/images/202111/b6c17f989f61a61ef6a044ce8e705e2a60fde3.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
切换到上行目录 不让他进去家目录,修改黑名单的配置,就添加用户tom到列表里,就不会被锁定
重启ftp服务 如果要换一个目录就修改ftp配置文件 创建目录 给他权限 重启一下服务
最后给ftp目录所有权限 可以实现在目录下可以上传下载删除等
![[ root@locathost
/etc/vsftpd
[ root'tocalhost
I root@localhost
I root•tocalhost
[ root@localhost
I root@localhost
chroot list
ftpusers
[ root8toca1host
I root@localhost
I root'localhost
tom] # cd -
vsftpdl #
vim chroot list
vsftpdl #
systemctl restart vsftpd
vsftpdl
vim vsftpd. conf
vsftpdl #
mkdlr • p /ftp/test
vsftpdl
chmod 777
user list
vs ftpd. conf
vsftpdl # chmod 777 /ftp/test/
vsftpdl cd /
c2mod 777 / ftp
vs ftp
vs ftp [ root@locathost
/etc/vsftpd
[ root'tocalhost
I root@localhost
I root•tocalhost
[ root@localhost
I root@localhost
chroot list
ftpusers
[ root8toca1host
I root@localhost
I root'localhost
tom] # cd -
vsftpdl #
vim chroot list
vsftpdl #
systemctl restart vsftpd
vsftpdl
vim vsftpd. conf
vsftpdl #
mkdlr • p /ftp/test
vsftpdl
chmod 777
user list
vs ftpd. conf
vsftpdl # chmod 777 /ftp/test/
vsftpdl cd /
c2mod 777 / ftp
vs ftp
vs ftp](https://s4.51cto.com/images/202111/76e6b0f90b589b9ef9a476f9c8391554da1940.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)


构建基于虚拟用户的 FTP 服务
切换到vsftpd目录下 过滤监听ftp端口号 然后修改ftp的配置文件 重启服务
![[ rootOlocalhost
rootOlocaIhost
tcp6
[ root8tocathost
[ rootOlocalhost
root•tocalhost
[ root810calhost
cd /etc/vsftpd
vsftpdl
vsftpd] #
vsftpd] #
vsftpdl
vsftpd] #
netstat - anptl grep ftp
vim vsftpd. conf
systemctl restart vsftpd
vim user list
systemctl restart vsftpd [ rootOlocalhost
rootOlocaIhost
tcp6
[ root8tocathost
[ rootOlocalhost
root•tocalhost
[ root810calhost
cd /etc/vsftpd
vsftpdl
vsftpd] #
vsftpd] #
vsftpdl
vsftpd] #
netstat - anptl grep ftp
vim vsftpd. conf
systemctl restart vsftpd
vim user list
systemctl restart vsftpd](https://s4.51cto.com/images/202111/a9fc0c5336c8687643634736c643dbbc881696.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
独立运行的监听服务 地址 和端口号 去掉ipv6


启用 user_list 列表文件 禁用 user_list 中的用户

用户加入到里就不能连接


配置虚拟用户密码 转换成数据库文件 更改权限 指定家目录不能登入操作系统并添加用户
![[ root•tocalhost vsttpd] # vim vusers. txt
[ rootOlocalhost vsftpd] # db load -T -t hash -f vusers. txt vusers. db
rootalocalhost vsftpdl chmod 600 vusers.
[ root810calhost vsttpd] # useradd -d /srv/ -s /sbin/notogin vuser
user-add : : [ root•tocalhost vsttpd] # vim vusers. txt
[ rootOlocalhost vsftpd] # db load -T -t hash -f vusers. txt vusers. db
rootalocalhost vsftpdl chmod 600 vusers.
[ root810calhost vsttpd] # useradd -d /srv/ -s /sbin/notogin vuser
user-add : :](https://s4.51cto.com/images/202111/e6bfba34936fe996b209413b0588ff2b243210.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

编辑虚拟用户的认证模块 重启服务


编辑ftp配置文件

再次修改配置文件 创建vdir目录 切换到vdir目录 然后在/opt/创建t01目录
再给那个目录属主为vuser权限

修改后重启

编辑用户user1

切换目录 修改配置文件 重启服务后切换到/opt/目录下查看
![[ root810caIhost vdirlä cd .
rootalocalhost vsftpdl vim vsftpd. conf
[ rootstocathost vsftpd] # systemctl restart vsftpd
rootBIocaIhost vsftpdl cd / opt/
krootBtocathost opt] # 11
40 [ root810caIhost vdirlä cd .
rootalocalhost vsftpdl vim vsftpd. conf
[ rootstocathost vsftpd] # systemctl restart vsftpd
rootBIocaIhost vsftpdl cd / opt/
krootBtocathost opt] # 11
40](https://s4.51cto.com/images/202111/a34688c90a1a0d135ae93932f8654de1b4c4b1.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

最后测试查看 user1


切换目录 再编辑user2 创建目录 属主改为vuser 切换到目录下做测试



















