文章目录

第九章 使用Vsftpd服务传输文件

一、文件传输协议

1、FTP介绍
2、FTP工作模式

二、Vsftpd服务程序

1、安装Vsftpd服务程序
[root@centos ~]# yum install vsftpd
CentOS-8.5.2111 - Base - mirrors.aliyun.com      18 kB/s | 3.9 kB     00:00    
CentOS-8.5.2111 - Extras - mirrors.aliyun.com    12 kB/s | 1.5 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors.aliyun.co  29 kB/s | 4.3 kB     00:00    
软件包 vsftpd-3.0.3-34.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
2、防火墙配置
//清空防火墙默认策略
[root@centos ~]# iptables -F
//保存已被清理的防火墙策略
[root@centos ~]# iptables-save
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*filter
:INPUT ACCEPT [112:10766]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [139:13257]
:LIBVIRT_INP - [0:0]
:LIBVIRT_OUT - [0:0]
:LIBVIRT_FWO - [0:0]
:LIBVIRT_FWI - [0:0]
:LIBVIRT_FWX - [0:0]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*security
:INPUT ACCEPT [70:5717]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [140:13597]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*raw
:PREROUTING ACCEPT [117:11838]
:OUTPUT ACCEPT [142:13949]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*mangle
:PREROUTING ACCEPT [118:11878]
:INPUT ACCEPT [114:10846]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [144:14285]
:POSTROUTING ACCEPT [170:17293]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*nat
:PREROUTING ACCEPT [23:3213]
:INPUT ACCEPT [2:100]
:POSTROUTING ACCEPT [20:1556]
:OUTPUT ACCEPT [20:1556]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Tue May  9 11:03:18 2023
//将FTP协议添加到firewalld服务的允许列表中
[root@centos ~]# firewall-cmd --zone=public --add-service=ftp --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
3、过滤注释信息并通过重定向符写回原始的主配置文件
//复制并重命名为备份文件
[root@centos ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
//过滤注释信息并通过重定向符写回原始的主配置文件
[root@centos ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
//查看配置文件
[root@centos ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
4、Vsftpd服务程序常用的参数以及作用
5、匿名访问模式
(1)、匿名访问模式介绍
(2)、匿名用户模式使用的权限参数以及作用
(3)、配置文件并重启服务设置开机自启动
//配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
//重启服务设置开机自启动
[root@centos ~]# systemctl restart vsftpd.service
[root@centos ~]# systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
(4)、递归目录权限
//设置递归权限
[root@centos ~]# chown -R ftp /var/ftp/pub/
(5)、访问服务器并尝试创建目录
//访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): anonymous
331 Please specify the password.
密码:		//直接按回车即可
230 Login successful.
//切换目录
ftp> cd pub
250 Directory successfully changed.
//创建文件夹
ftp> mkdir files
550 Create directory operation failed.
(5)、修改策略规则
[root@centos ~]# setsebool -P ftpd_full_access on
(6)、访问服务器并尝试创建目录
//访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): anonymous
331 Please specify the password.
密码:		//直接按回车即可
230 Login successful.
//切换目录
ftp> cd pub
250 Directory successfully changed.
//创建文件夹
ftp> mkdir files
257 "/pub/files" created
//重命名文件夹
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
//删除文件夹
ftp> rmdir database
250 Remove directory operation successful.
6、本地用户模式
(1)、本地用户模式介绍
(2)、本地用户模式使用的权限参数以及作用
(3)、配置文件并重启服务
//配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
//重启服务
[root@centos ~]# systemctl restart vsftpd.service
(4)、访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): root
530 Permission denied.
登录失败。
(5)查看用户名单
[root@centos ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@centos ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
(6)、删除root用户
[root@centos ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@centos ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
(7)、访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): root
331 Please specify the password.
密码:123456
230 Login successful.
7、虚拟用户模式
(1)、虚拟用户模式介绍
(2)、创建两个用户
//用户名kali、debain,密码均为123456
[root@centos ~]# cat /etc/vsftpd/vuser.list
kali
123456
debain
123456
(3)、创建数据库文件并降低权限,删除原文件
//创建数据库文件并使用hash算法进行加密
[root@centos ~]# db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
//降低权限
[root@centos ~]# chmod 600 /etc/vsftpd/vuser.db
//删除是原始明文信息文件
[root@centos ~]# rm -f /etc/vsftpd/vuser.list
(4)、创建目录并映射用户
//创建目录以及虚拟用户映射的系统本地用户,设置为不允许登录FTP服务器
[root@centos ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
//递归更改权限 
[root@centos ~]# chmod -Rf 755 /var/ftproot/
(5)、建立用于支持虚拟用户的PAM文件

第九章 使用Vsftpd服务传输文件-LMLPHP

[root@centos ~]# vim /etc/pam.d/vsftpd.vu
auth    required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
(6)、利用PAM文件进行认证时使用的参数以及作用
(7)、配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
(8)、创建目录并创建两个以kali和debain命名的文件
//创建目录
[root@centos ~]# mkdir /etc/vsftpd/vusers_dir
//创建kali文件,只允许kali查看文件
[root@centos ~]# touch /etc/vsftpd/vusers_dir/kali
//创建debain文件,允许debain上传、创建、修改、查看、删除文件
[root@centos ~]# vim /etc/vsftpd/vusers_dir/debain
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
(9)、配置文件并重启服务
//定义虚拟用户不同权的配置文件所存放的路径
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
user_config_dir=/etc/vsftpd/vusers_dir
//重启服务
[root@centos ~]# systemctl restart vsftpd.service
(10)访问服务器
//使用kali用户访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): kali
331 Please specify the password.
密码:123456
230 Login successful.
//创建文件夹
ftp> mkdir files
550 Permission denied.
ftp> quit
221 Goodbye.

//使用debain用户访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): debain
331 Please specify the password.
密码:123456
230 Login successful.
//创建文件夹
ftp> mkdir files
257 "/files" created
//重命名文件夹
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
//删除文件夹
ftp> rmdir database
250 Remove directory operation successful.

三、TFTP简单文件传输协议

1、TFTP介绍
2、安装软件
[root@centos ~]# yum install tftp-server tftp xinetd
3、配置文件
[root@centos ~]# vim /etc/xinetd.d/tftp
service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot
        disable         = no
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}
4、防火墙配置
//防火墙策略中允许UDP协议的69端口
[root@centos ~]# firewall-cmd --zone=public --add-port=69/udp --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
5、重启服务并设置开机自启动
//重启服务
[root@centos ~]# systemctl restart xinetd.service
//设置开机自启动
[root@centos ~]# systemctl enable xinetd.service
6、tftp命令中可用的参数以及作用
05-09 15:32