Vsftpd传输文件

FTP(File Transfer Protocol)文件传输协议,默认20端口传输 数据21端口传输Ftp 指令

主动模式:FTP服务器主动向客户机发起连接
被动模式:FTP服务器等待客户机发起连接(默认)

Vsftpd(very secure ftp daemon)
yum -y install vsftpd ftp #安装vsftpd服务端程序,ftp客户端程序

vsftpd服务的主配置文件常用参数以及作用

/etc/vsftpd/vsftpd.conf

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]	#是否允许匿名用户访问
anony_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	#匿名用户的最大传输速率(B/s),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	#本地用户最大传输速率(B/s),0为不限制

三种认证模式

1、匿名开放模式:不安全的认证模式,无须密码验证直接登录到FTP服务器
2、本地用户模式:本地的账户密码信息进行认证的模式,相对更加安全,配置较为简单
3、虚拟用户模式:单独建立用户数据库文件,虚拟出用来进行密码验证的账户信息,仅供FTP服务程序认证使用。

匿名开放模式

权限不足,需要更改/var/ftp/pub目录的所有者或者变更权限
chown -R ftp /var/ftp/pub #更改目录的所有者
chmod -R 777 /var/ftp/pub #变更权限
vsftpd服务自身带有安全保护机制,不能直接修改/var/ftp的权限,可能导致服务被安全锁定不能登录

本地用户模式

默认访问该用户的家目录,默认所有者所属组都是该用户
/etc/vsftpd/user_list/etc/vsftpd/ftpusers限制用户登录FTP服务器
userlist_deny=NOuser_list变成强制白名单(常用)

虚拟用户模式(常用)

最安全的认证模式,专门创建一个账户登录FTP传输服务并且不能以SSH方式登录。
1、
vim vuser.list #创建用户文件,奇数为账户,偶数为密码
db_load -T -t hash -f vuser.list vuser.db #使用哈希算法将明文转换成数据库文件
chmod 600 vuser.db #降低数据库文件的权限
rm -f vuser.list #删除蛛丝马迹

linux系统中每一个文件都有所有者所属组属性,为避免找不到虚拟用户导致文件权限出现错误。虚拟用户默认登录到有映射关联的本地用户的家目录中,权限也归属于本地用户。

2、
useradd -d /var/vsftp -s /sbin/nologin virtual #创建存储文件的根目录和虚拟用户映射的系统本地用户
chmod -Rf 755 /var/vsftp/ #更改权限

PAM(可插拔认证模块)Pluggable Authentication Module 是一种认证机制,通过动态链接库和统一的API把提供的服务和认证方式分开。
PAM就是一组安全机制的模块,管理员可轻易调整服务程序的认证方式,不必对应用程序进行修改,采用了分层设计(应用程序层、应用接口层、鉴别模块层)

3、

vim /etc/pam.d/vsftpd.pam	#新建用于虚拟用户认证的PAM文件
auth	required	pam_userdb.so	db=/etc/vsftpd/vuser
auth	required	pam_userdb.so	db=/etc/vsftpd/vuser
#db=填写账户密码数据库文件的路径,不用写后缀

4、

vim /etc/vsftpd/vsftpd.conf	#修改配置文件
anonymous_enable=NO	#禁止匿名模式
local_enable=YES	#允许本地用户模式
guest_enable=YES	#开启虚拟用户模式
guest_username=virtual	#指定虚拟用户账户
pam_service_name=vsftpd.pam	#指定PAM文件
allow_writeable_chroot=YES	#允许对禁锢的FTP根目录写入,不拒绝用户的登录请求
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
userlist_enable=YES

5、给用户赋予不同权限
在配置文件添加参数:
user_config_dir=/etc/vsftpd/vusers_dir
mkdir /etc/vsftpd/vusers_dir #创建用户目录
touch test1 #用户1权限
vim test2 #用户2权限如下
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

每次修改配置文件都需要运行systemctl restart vsftpd是服务生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值