11_ 使用 vsftpd 服务传输文件(RHEL7)

本文档详细介绍了在RHEL7系统上使用vsftpd服务进行文件传输的过程,包括匿名开放模式、本地用户模式、虚拟用户模式的设置,以及简单文件传输协议的应用。

11_ 使用 vsftpd 服务传输文件(RHEL7)—学习笔记

文件传输协议

#FTP 是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用 20、 21
#号端口,其中端口 20(数据端口)用于进行数据传输,端口 21(命令端口)用于接受客户端
#发出的相关 FTP 命令与参数


yum install vsftpd  #very secure ftp daemon
                    #运行在 Linux 操作系统上的 FTP 服务程序
iptables -F
service iptables save

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
cat /etc/vsftpd/vsftpd.conf

#vsftpd 服务程序常用的参数以及作用
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP 地址 设置要监听的 IP 地址
listen_port=21 设置 FTP 服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数, 0 为不限制
max_per_ip=0 同一 IP 地址的最大连接数, 0 为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的 umask 值
anon_root=/var/ftp 匿名用户的 FTP 根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒), 0 为不限制
local_enable=[YES|NO] 是否允许本地用户登录 FTP
local_umask=022 本地用户上传文件的 umask 值
local_root=/var/ftp 本地用户的 FTP 根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在 FTP 目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒), 0 为不限制


yum install ftp   # Linux 系统中以命令行界面的方式来管理 FTP 传输服务的客户端工具

匿名开放模式

 #//任何人都可以无需密码验证而直接登录到 FTP 服务器

anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的 umask 值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES
2 anon_umask=022
3 anon_upload_enable=YES
4 anon_mkdir_write_enable=YES
5 anon_other_write_enable=YES

systemctl restart vsftpd
systemctl enable vsftpd
ftp 192.168.10.10
#Name (192.168.10.10:root): anonymous
#/var/ftp 
cd pub
mkdir files  #显示拒绝创建目录! Permission denied

ls -ld /var/ftp/pub
chown -Rf ftp /var/ftp/pub  # 将目录的所有者身份改成系统账户 ftp 
ls -ld /var/ftp/pub

getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
ftp 192.168.10.10
ftp> cd pub
ftp> mkdir files
ftp> rename files database
ftp> rmdir database
ftp> exit

本地用户模式

anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的 umask 值
userlist_enable=YES 启用“禁止用户名单”,名单文件为 ftpusers 和 user_list
userlist_deny=YES 开启用户作用名单文件功能

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
systemctl restart vsftpd
systemctl enable vsftpd

ftp 192.168.10.10
Name (192.168.10.10:root): root

cat /etc/vsftpd/user_list   #只要里面写有某位用户的名字,就不再允许这位
cat /etc/vsftpd/ftpusers    #用户登录到 FTP服务器上

getsebool -a | grep ftp
setsebool -P ftpd_full_access=on

虚拟用户模式

#1_ 创建用于进行 FTP 认证的用户数据库文件
cd /etc/vsftpd/  #创建用于进行 FTP 认证的用户数据库文件
vim vuser.list  # 奇数行为账户名,偶数行为密码
zhangsan
redhat
lisi
redhat

db_load -T -t hash -f vuser.list vuser.db  #用 db_load 命令用哈希(hash)算法加密
file vuser.db
chmod 600 vuser.db
rm -f vuser.list

#2_ 创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户
useradd -d /var/ftproot -s /sbin/nologin virtual #让虚拟用户默认登录
ls -ld /var/ftproot/                            #到与之有映射关系的这个系统本地用户的家目录中,避免 Linux 系统无法处理虚拟用户所创建文件的属性权限
chmod -Rf 755 /var/ftproot/

#3_ 建立用于支持虚拟用户的 PAM 文件
vim /etc/pam.d/vsftpd.vu
auth    required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

#4_ 将 PAM 认证文件的名称修改为 vsftpd.vu
anonymous_enable=NO 禁止匿名开放模式
local_enable=YES 允许本地用户模式
guest_enable=YES 开启虚拟用户模式
guest_username=virtual 指定虚拟用户账户
pam_service_name=vsftpd.vu 指定 PAM 文件
allow_writeable_chroot=YES允许对禁锢的 FTP 根目录执行写入操作,而且不拒绝用户的登录请求

vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 guest_enable=YES
4 guest_username=virtual
5 allow_writeable_chroot=YES
14 pam_service_name=vsftpd.vu

#5_ 为虚拟用户设置不同的权限

mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

vim /etc/vsftpd/vsftpd.conf   #添加 user_config_dir 参数来定义这两个虚拟用户不同权限的配置文件所存放的路径
user_config_dir=/etc/vsftpd/vusers_dir
systemctl restart vsftpd
systemctl enable vsftpd

#6_ 设置 SELinux 域允许策略
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
ftp 192.168.10.10
Name (192.168.10.10:root): zhangsan
ftp> mkdir files
ftp> rename files database
ftp> rmdir database
ftp> exit

简单文件传输协议

// 简单文件传输协议(Trivial File Transfer Protocol, TFTP

yum install tftp-server tftp
vim /etc/xinetd.d/tftp   # 在 xinetd 服务程序中将其开启
  disable = no
systemctl restart xinetd
systemctl enable xinetd
firewall-cmd --permanent --add-port=69/udp  # 防火墙默认没有允许 UDP 协议的 69 端口
firewall-cmd --reload

? 帮助信息
put 上传文件
get 下载文件
verbose 显示详细的处理信息
status 显示当前的状态信息
binary 使用二进制进行传输
ascii 使用 ASCII 码进行传输
timeout 设置重传的超时时间
quit 退出

echo "i love linux" > /var/lib/tftpboot/readme.txt    # TFTP 的根目录为/var/lib/tftpboot
tftp 192.168.10.10
get readme.txt
quit
ls
cat readme.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值