使用vsftpd服务传输文件

文件传输协议:
主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)
vsftpd服务程序:
①匿名开放模式
②本地用户模式
③虚拟用户模式
匿名用户开放的权限参数及作用:
参数 : 作用:
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录
匿名:
yum install ftp(安装ftp yum仓库)
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目
yum install -y httpd 安装vsftpd服务程序
iptables -F 清空iptables防火墙策略
service iptables save 把当前已经被清理的防火墙策略状态保存下来
vsftpd服务程序的主配置文件:/etc/vsftpd/vsftpd.conf

cd /etc/vsftpd 进入vsftpd主配置文件所在目录
mv vsftpd.conf vfstpd.conf_bak 把vsftpd服务的主配置文件重命名为vsftpd.conf_bak
grep -v “#” vsftpd.conf_bak > vsftpd.conf 在grep命令后面添加-v参数,过滤并反选出没有包含井号(#)的参数行(即过滤掉所有的注释信息),然后将过滤后的参数行通过输出重定向符写回原始的主配置文件中
cat vsftpd.conf 查看删除所有注释信息后的vsftpd主配置文件
anonymous_enable=YES 是否允许匿名用户访问
local_enable=YES 是否允许本地用户登录FTP
write_enable=YES 是否允许用户进行写操作
local_umask=022 本地用户上传文件的umask值(反掩码),如022,若是文件,则该文件权限为666-022=644,若是目录,则目录权限777-022=755
dirmessage_enable=YES
xferlog_enable=YES 是否开启日志
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO 是否进行独立监听
listen_ipv6=YES
pam_service_name=vsftpd 支持pam模块
userlist_enable=YES 是否支持用户黑名单
tcp_wrappers=YES
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为不限制
①.编辑vsftpd服务的主配置文件,使其开启匿名开放模式,并开放匿名用户的上传下载文件的权限,以及让匿名用户创建删除重命名文件的权限。
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

②.重启vsftpd服务并加入开机启动项
systemctl restart vsftpd
systemctl enable vsftpd
③.匿名用户的FTP根目录为/var/ftp,该目录下还有一个pub目录,pub目录默认只有root管理员才有写入权限。需要更改目录所有者为ftp。
ls -ld /var/ftp/pub
chown -Rf ftp /var/ftp/pub #更改pub目录的属主为ftp
ls -ld /var/ftp/pub
④.修改SELinux域策略ftpd_full_access为永久允许,经过这一步用户才能进行增删改文件的操作。
getsebool -a | grep ftp #查看与FTP相关的SELinux域策略
setsebool -P ftpd_full_access=on
⑤.用客户端执行“ftp 服务端ip地址”登录ftp服务器。登录帐号为anonymous,密码为空。执行文件的增删改操作验证vsftpd服务配置是否成功。
ftp 192.168.10.10 #登录ftp
Name (192.168.10.10:root): anonymous #匿名模式下的账户
Password: #匿名模式下的密码为空,直接Enter
ftp> cd pub #进入目录pub
ftp> mkdir test #创建目录test
ftp> rename test abc #把目录test重命名为abc
ftp> rmdir abc #删除目录abc
ftp> exit #退出ftp
本地用户模式:
参数 作用
anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的umask值
userlist_deny=YES 启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES 开启用户作用名单文件功能
yum install ftp(安装ftp yum仓库)
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目
yum install -y httpd 安装vsftpd服务程序
iptables -F 清空iptables防火墙策略
service iptables save 把当前已经被清理的防火墙策略状态保存下来
vsftpd服务程序的主配置文件:/etc/vsftpd/vsftpd.conf

cd /etc/vsftpd 进入vsftpd主配置文件所在目录
mv vsftpd.conf vfstpd.conf_bak 把vsftpd服务的主配置文件重命名为vsftpd.conf_bak
grep -v “#” vsftpd.conf_bak > vsftpd.conf 在grep命令后面添加-v参数,过滤并反选出没有包含井号(#)的参数行(即过滤掉所有的注释信息),然后将过滤后的参数行通过输出重定向符写回原始的主配置文件中
cat vsftpd.conf 查看删除所有注释信息后的vsftpd主配置文件
anonymous_enable=YES 是否允许匿名用户访问
local_enable=YES 是否允许本地用户登录FTP
write_enable=YES 是否允许用户进行写操作
local_umask=022 本地用户上传文件的umask值(反掩码),如022,若是文件,则该文件权限为666-022=644,若是目录,则目录权限777-022=755
dirmessage_enable=YES
xferlog_enable=YES 是否开启日志
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO 是否进行独立监听
listen_ipv6=YES
pam_service_name=vsftpd 支持pam模块
userlist_enable=YES 是否支持用户黑名单
tcp_wrappers=YES
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为不限制
①.编辑vsftpd服务的主配置文件,使其开启本地用户模式。开启用户名单文件功能(不设置userlist_deny参数则默认把user_list作为黑名单)
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

userlist_enable=YES
②.重启vsftpd服务
systemctl restart vsftpd
systemctl enable vsftpd
③.root默认在ftpusers和user_list中(上面配置使得user_list是黑名单),因此不能登录。要修改这两个文件。
vim /etc/vsftpd/user_list

#root

vim /etc/vsftpd/ftpusers

#root

④.此时客户端就能以root身份登录ftp服务器了,默认访问的是该用户的家目录,而且该目录的默认所有者、所属组都是该用户自己,因此不存在写入权限不足的情况。但是当前的操作仍然会因为SELinux域策略的设置而被拒绝。需要在服务端把相关域策略设置为允许。
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
虚拟用户模式;
yum install ftp(安装ftp yum仓库)
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目
yum install -y httpd 安装vsftpd服务程序
iptables -F 清空iptables防火墙策略
service iptables save 把当前已经被清理的防火墙策略状态保存下来
vsftpd服务程序的主配置文件:/etc/vsftpd/vsftpd.conf

cd /etc/vsftpd 进入vsftpd主配置文件所在目录
mv vsftpd.conf vfstpd.conf_bak 把vsftpd服务的主配置文件重命名为vsftpd.conf_bak
grep -v “#” vsftpd.conf_bak > vsftpd.conf 在grep命令后面添加-v参数,过滤并反选出没有包含井号(#)的参数行(即过滤掉所有的注释信息),然后将过滤后的参数行通过输出重定向符写回原始的主配置文件中
cat vsftpd.conf 查看删除所有注释信息后的vsftpd主配置文件
anonymous_enable=YES 是否允许匿名用户访问
local_enable=YES 是否允许本地用户登录FTP
write_enable=YES 是否允许用户进行写操作
local_umask=022 本地用户上传文件的umask值(反掩码),如022,若是文件,则该文件权限为666-022=644,若是目录,则目录权限777-022=755
dirmessage_enable=YES
xferlog_enable=YES 是否开启日志
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO 是否进行独立监听
listen_ipv6=YES
pam_service_name=vsftpd 支持pam模块
userlist_enable=YES 是否支持用户黑名单
tcp_wrappers=YES
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为不限制
#1-1.创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
cd /etc/vsftpd/
vim vuser.list
zhangsan
lisi
①.这样创建的文件都是明文信息,不安全,也不符合让vsftpd服务程序直接加载的格式,需要使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件。
db_load -T -t hash -f vuser.list vuser.db #-T加密 -t指定加密协议 -f要加密的文件。对文件vuser.list用hash算法加密为vuser.db
file vuser.db #查看文件类型
chmod 600 vuser.db #降低文件的权限。避免其他人看到数据库文件内容
rm -Rf vuser.list #删掉明文信息文件
②.由于Linux系统中的每一个文件都有所有者、所属组属性,为此需要创建一个可以映射到虚拟用户的系统本地用户,让虚拟用户默认登录到与之有映射关系的这个系统本地用户的家目录中,虚拟用户创建的文件的属性也都归属于这个系统本地用户,从而避免Linux系统无法处理虚拟用户所创建文件的属性权限。
useradd -d /var/ftproot -s /sbin/nologin virtual #创建用户virtual,shell解释器为nologin,即不允许登录,默认家目录为/var/ftproot,即虚拟用户登录ftp后的默认目录
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/ #设置权限保证其他用户能对该目录进行相关操作
③.建立用于支持虚拟用户的PAM文件。配置参数格式可以参考/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd.vu #新建用于虚拟用户认证的PAM文件vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser #“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀
account required pam_userdb.so db=/etc/vsftpd/vuser
④为虚拟用户设置不同权限。创建一个目录,在目录里生成与虚拟用户同名的权限参数配置文件。在后续配置vsftpd服务主配置文件时通过添加user_config_dir参数来引用。
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi #创建空白文件lisi,即不赋予lisi任何权限
vim zhangsan #创建并编辑文件zhangsan
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #允许修改或删除目录
⑤.编辑vsftpd服务的主配置文件,开启虚拟用户模式。
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名开放模式
local_enable=YES #允许本地用户模式
guest_enable=YES #开启虚拟用户模式
guest_username=virtual #指定虚拟用户账户
allow_writeable_chroot=YES #允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求(牢笼机制,只能在FTP根目录操作)

pam_service_name=vsftpd.vu #指定PAM文件

user_config_dir=/etc/vsftpd/vusers_dir #定义虚拟用户权限配置文件所在路径
⑥.重启vsftpd服务
systemctl restart vsftpd
systemctl enable vsftpd
⑦设置SELinux域允许策略
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
测试:
zhangsan:可以增删改目录
lisi:没有增删改权限
TFTP简单文件传输协议:
①.在xinetd服务程序中将TFTP服务开启,把默认的禁用(disable)参数修改为no。
vim /etc/xinetd.d/tftp #此文件只有安装了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
}
②.重启xinetd服务
systemctl restart xinetd
systemctl enable xinetd
③.手动将UDP协议的69端口加入到防火墙的允许策略中。
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
④.服务端在TFTP根目录创建一个文件,供服务端测试。
echo “Hello,liwh” > /var/lib/tftpboot/liwh.txt
⑤.服务端和客户端都需要清空防火墙并永久生效,客户端才能访问服务端的TFTP服务。
iptables -F
service iptables save
⑥.客户端访问服务端的TFTP服务,并下载根目录下的liwh.txt文件,文件会下载到客户端在登录到tftp之前的路径
tftp 192.168.10.10
tftp>get liwh.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值