vsftpd

2023-05-16

vsftpd

  • 服务脚本
  • 配置文件路径
  • 修改配置选项
    • 命令端口
    • 主动模式端口
    • 被动模式端口范围
    • 使用当地时间
    • 匿名用户
    • 指定上传文件的默认的所有者和权限
    • Linux系统用户
    • 禁锢所有系统用户在家目录中
    • 禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反
    • wu-ftp日志:默认启用
    • vsftpd日志:默认不启用
    • 登录提示信息
    • 目录访问提示信息
    • 使用pam(Pluggable Authentication Modules)完成用户认证
    • 是否启用控制用户登录的列表文件
    • vsftpd服务指定用户身份运行
    • 连接数限制
    • 传输速率:字节/秒
    • 连接时间:秒为单位
    • 优先以文本方式传输
    • 实现基于SSL的FTPS
      • 查看是否支持SSL
      • 创建自签名证书
      • 配置vsftpd服务支持SSL:/etc/vsftpd/vsftpd.conf
  • vsftpd虚拟用户
    • 虚拟用户
    • 虚拟用户帐号的存储方式
  • 实现基于文件验证的vsftpd虚拟用户
    • 创建用户数据库文件
    • 创建用户和访问FTP目录
    • 创建pam配置文件
    • 指定pam配置文件
    • 虚拟用户建立独立的配置文件
    • 允许ftpuser用户可读写,其它用户只读
    • 创建各用户自已的配置文件

服务脚本

 /usr/lib/systemd/system/vsftpd.service
/etc/rc.d/init.d/vsftpd

配置文件路径

/etc/vsftpd/vsftpd.conf

修改配置选项

命令端口

listen_port=21

主动模式端口

connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口

被动模式端口范围

linux 				客户端默认使用被动模式
windows 			客户端默认使用主动模式
pasv_min_port=6000 	0为随机分配
pasv_max_port=6010

使用当地时间

use_localtime=YES 使用当地时间(默认为NO,使用GMT)

因为有些浏览器会自动修正时间,所以修改意义不大,无法保证所有时间都正确

匿名用户

anonymous_enable=YES 				支持匿名用户
no_anon_password=YES(默认NO) 		匿名用户略过口令检查
anon_upload_enable=YES 				匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 		匿名建目录
anon_world_readable_only 			(默认YES)只能下载全部读的文件
anon_umask=0333 					指定匿名上传文件的umask,默认077
anon_other_write_enable=YES 		可删除和修改上传的文件

指定上传文件的默认的所有者和权限

chown_uploads=YES(默认NO)
chown_username=wang
chown_upload_mode=0644

Linux系统用户

local_enable=YES 				是否允许linux用户登录
write_enable=YES 				允许linux用户上传文件
local_umask=022 				指定系统用户上传文件的默认权限
guest_enable=YES 				所有系统用户都映射成guest用户
guest_username=ftp 				配合上面选项才生效,指定guest用户
local_root=/ftproot				guest用户登录所在目录

禁锢所有系统用户在家目录中

chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户

禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反

chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list
当chroot_local_user=YES时,则chroot_list中用户不禁锢
当chroot_local_user=NO时,则chroot_list中用户禁锢

wu-ftp日志:默认启用

xferlog_enable=YES 						(默认)启用记录上传下载日志
xferlog_std_format=YES 					(默认)使用wu-ftp日志格式
xferlog_file=/var/log/xferlog 			(默认)可自动生成

vsftpd日志:默认不启用

dual_log_enable=YES 					使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log		(默认)可自动生成

登录提示信息

ftpd_banner=“welcome to li ftp server" 
banner_file=/etc/vsftpd/ftpbanner.txt

目录访问提示信息

dirmessage_enable=YES (默认)
message_file=.message(默认) 信息存放在指定目录下.message

使用pam(Pluggable Authentication Modules)完成用户认证

pam_service_name=vsftpd
pam配置文件:/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers 			默认文件中用户拒绝登录

是否启用控制用户登录的列表文件

userlist_enable=YES 默认有此设置
userlist_deny=YES(默认值) 黑名单,不提示口令,NO为白名单
userlist_file=/etc/vsftpd/users_list 此为默认值

vsftpd服务指定用户身份运行

nopriv_user=nobody (默认值)

连接数限制

max_clients=0 最大并发连接数
max_per_ip=0 每个IP同时发起的最大连接数

传输速率:字节/秒

anon_max_rate=0 匿名用户的最大传输速率
local_max_rate=0 本地用户的最大传输速率

连接时间:秒为单位

connect_timeout=60 				主动模式数据连接超时时长
accept_timeout=60 				被动模式数据连接超时时长
data_connection_timeout=300 	数据连接无数据输超时时长
idle_session_timeout=60 		无命令操作超时时长

优先以文本方式传输

ascii_upload_enable=YES
ascii_download_enable=YES

不推荐使用,可能会破坏文件本身,建议用默认的二进制方式传输

实现基于SSL的FTPS

查看是否支持SSL

ldd `which vsftpd` 查看到libssl.so

创建自签名证书

cd /etc/pki/tls/certs/
make vsftpd.pem
openssl x509 -in vsftpd.pem -noout –text
make test1.key  #可以生成私钥
make test2.crt  #先生成私钥,后生成自签名证书
cp vsftpd.pem /etc/vsftpd/  #把生成的自签名证书拷贝到配置文件夹里

配置vsftpd服务支持SSL:/etc/vsftpd/vsftpd.conf

ssl_enable=YES 						启用SSL
allow_anon_ssl=NO 					匿名不支持SSL
force_local_logins_ssl=YES 			本地用户登录加密
force_local_data_ssl=YES 			本地用户数据传输加密
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem  不复制的话这个是原路径
rsa_cert_file=/etc/vsftpd/vsftpd.pem  复制的话是这个路径

vsftpd虚拟用户

虚拟用户

所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号的家目录
各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

虚拟用户帐号的存储方式

文件:编辑文本文件,此文件需要被编码为hash格式
奇数行为用户名,偶数行为密码

db_load -T -t hash -f vusers.txt vusers.db

实现基于文件验证的vsftpd虚拟用户

创建用户数据库文件

vim /etc/vsftpd/vusers.txt
li
123456
ftpuser
centos


cd /etc/vsftpd/ 
db_load -T -t hash -f vusers.txt vusers.db
chmod 600 vusers.db

创建用户和访问FTP目录

useradd -d /data/ftproot -s /sbin/nologin vuser
chmod a=rx /var/ftproot/   #因为此目录会变成根目录,根目录不能有写权限

创建pam配置文件

vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

指定pam配置文件

vim /etc/vsftpd/vsftpd.conf
guest_enable=YES 
guest_username=vuser
pam_service_name=vsftpd.db

虚拟用户建立独立的配置文件

mdkir /etc/vsftpd/vusers.d/
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/

允许ftpuser用户可读写,其它用户只读

cd vusers.d/
vim ftpuser
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

创建各用户自已的配置文件

vim li
local_root=/data/ftproot2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vsftpd 的相关文章

随机推荐