vsftpd
匿名用户
anonymous_enable=YESanon_umask
=022anon_upload_enable
=YESanon_mkdir_write_enable
=YESanon_other_write_enable
=YESanon_root
=/var/ftpanon_max_rate
=0
本地用户
local_enable=YESlocal_umask
=022local_root
=/var/ftpchroot_local_user
=YES #开启用户家目录限制chroot_list_enable
=YES # 开启白名单chroot_list_file
=/etc/vsftpd/chroot_list #允许chroot_list里面的用户可以切换目录local_max_rate
=0userlist_enable
=YES &userlist_deny=YES#禁止/etc/vsftpd/user_list里面的用户登录ftpuserlist_enable
=YES &userlist_deny=NO#仅允许/etc/vsftpd/user_list里面的用户登录ftp#配置文件ftpusers
禁止
/etc/vsftpd/ftpusers里面的用户登录ftp且权限比user_list还要高,即时生效#被动模式
pasv_enable
=YESpasv_min_port
=30000pasv_max_port
=35000
虚拟用户
需要生成数据库文件而且要拿一个本地用户来映射虚拟用户,做虚拟用户配置文件设置时,必须将主配置文件中的 自定义的匿名用户相关设置 注释掉,给映射用户的家目录设置o+r让虚拟用户有读权限
vim vsftpd.user #奇数行:用户,偶数行:密码db_load
-T -t hash -f vsftpd.user vsftpd.db #对文件加密#修改权限
chmod
600 vsftpd.db#创建虚拟用户的映射用户,并指定其家目录
useradd
-d /var/ftproot -s /sbin/nologin virtual#建立PAM文件,添加虚拟用户支持
cp
-a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pamcat
/etc/pam.d/vsftpd.pamauth required pam_userdb.so db
=/etc/vsftpd/vsftpdaccount required pam_userdb.so db
=/etc/vsftpd/vsftpd#修改vsftpd.conf 添加支持配置
#pam_service_name
=vsftpdpam_service_name
=vsftpd.pamguest_enable
=YESguest_username
=virtualuser_config_dir
=/etc/vsftpd/dir#做虚拟用独立户配置文件设置时,必须将主配置文件中的 自定义的匿名用户相关设置 注释掉
#给映射用户的家目录设置o+r让虚拟用户有读权限
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #允许修改文件
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
chmod a-w /var/ftproot 或者配置文件(主配置文件或者虚拟用户配置文件都可以)添加allow_writeable_chroot=YES
安全
抓包tcpdump
-i ens32 -nn -X -vv tcp port 21 and ip host 源ip-i #interface-n #对地址以数字方式显示,否则显示主机名
-nn #除了-n作用外,将端口显示为数值,否则显示市口服务名
-X #输出包的头部数据,以16进制和ascii两种方式同时输出
-vv #显示更详细的输出
openssl
rpm -q openssl查看vsftpd是否支持openssl
ldd
/usr/sbin/vsftpd | grep libssl生成加密信息的秘钥和证书文件
位置:
/etc/ssl/certs/openssl genrsa
-out vsftpd.key 1024openssl req
-new -key vsftpd.key -out vsftpd.csropenssl x509
-req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt生成秘钥和证书文件后,将本目录(
/etc/ssl/certs/)的权限修改为500chmod
500 /etc/ssl/certs/
修改主配置文件
#启用sslssl_enable
=YES#开启TLSV1 SSLV2 SSLV3支持
ssl_tlsv1
=YESssl_sslv2
=YESssl_sslv3
=YES#允许匿名用户[虚拟用户]
allow_anon_ssl
=YES#匿名用户登录和传输时强制使用ssl
force_anon_logins_ssl
=YESforce_anon_data_ssl
=YES#本地登录和传输时强制使用ssl
force_local_logins_ssl
=YESforce_local_data_ssl
=YESrsa_cert_file
=/etc/ssl/certs/vsftpd.crtrsa_private_key_file
=/etc/ssl/certs/vsftpd.key
配置完之后重启服务
使用客户端连接的时候选择 TLS/SSL显示加密可以看到证书信息
以上是 vsftpd 的全部内容, 来源链接: utcz.com/z/514177.html