VSFTPD的基础安全加固
与SSL配置相关的设置(要添加)
ssl_enabe=YES| NO #是否启用ssl
ssl_sslv2=YES|NO #是否激活sslv2加密
ssl_sslv3=YES|NO #是否激活sslv3加密
ssl_tlsv1=YES|NO #是否激活tlsv1加密
force_local_logins_ssl=yes|NO #非匿名用户登陆时是否加密
force_local_data_ssl=YES|NO #传输数据是否加密
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem #证书位置
配置ftp仅允许ssl连接
#利用openssl创建证书 openssl req -new -x509 -nodes (-days 3650) -out vsftpd.pem -keyout vsftpd.pem # openssl req会在任何需要私钥的地方自动创建私钥 -new 生成一个新的证书签署请求 -x509:专用于CA生成自签证书,如果不是自签证书则不需要此项 vi /etc/vsftpd/vsfptd.conf ssl_enable=YES force_local_login_ssl=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem
可能错误:
425 Failed to establish connection 设置selinux为disable /etc/selinux/config
530 login incorrect /etc/pam.d/vsftpd 文件里的这一行,#auth required pam_shells.so 意思是只有包含shell的用户才能登录,但是我们用户的bash是nologin不允许登陆
530 Non-anonymous sessions must use encryption 非匿名用户必须使用证书连接登陆
对本地用户的目录穿越设置
关键词: chroot
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(1)对local_user设置的理解: chroot_local_user为YES时,即代表本地用户的活动范围限制在自家目录
(2)指定用户执行chroot -可以进行目录穿越
chroot_local_user=No
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
只有在list_file里指定的用户可以进行 list_file的格式为每个用户名占一行
对本地用户的访问控制
关键词:userlist tips:centos7 只有userlist_enable 其余可能要自己添加
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list #该文件指定的本地用户可以访问ftp服务器 其他则不可以
banner信息控制
关键词: banner
file_banner=xxx
配置基本的性能和安全选项
1. 空闲用户会话中断时间 #keyword=timeout
idle_session_timeout=xx #unit is seconds
2.空闲数据连接的中断时间
data_connection_timeout= xx # also seconds
3.传输速率配置 #important 对本地用户和匿名用户
#要自己添加
local_max_rate=50000 #50kbytes /sec
anon_max_rate=30000
4.设置客户端连接的端口范围 #passive mode
pasv_min_port=50000
pasv_max_port=60000
服务器环境相关配置(要自己添加的)
connect_timeout=xx #units is seconds 主动模式下 设定时间没有得到响应 中断连接
accept_timeout=xx #also seconds 被动模式
max_clients=0 #最大连接数 如果vsftpd是stadalone启动 可以限制客户端同时在线的数量
max_per_ip=0 # 限制同一个ip最多能有多少个客户端在线
与本地用户相关设置
guest_enable=YES|NO #默认为NO 如果为YES 所有的本地用户被将被设置成guest用户
guest_username=ftp # 当guest_enable=YES生效 指定guest用户名称
匿名用户相关设置
anon_other_write_enable=YES|NO # 是否允许匿名用户有“写”之外的权限,包括删除、修改、重命名的权限
anon_max_rate=0 #匿名用户的传输速率,0 表示不限制
anon_umask=077 #匿名用户上传文件的默认权限
系统安全相关设置
tcp_wrappers=YES |NO # 是否支持 tcp_wrappers
dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log #是否启用双日志,及另一份日志的路径
配置一个/sbin/nologin的用户
家目录在/home/lisen 所属组www 目录权限700
useradd -d /home/lisen -s /sbin/nologin lisen
passwd miller
chown -R www:www lisen/ 递归修改lisen目录所有者所属组为www
chmod -R 700 lisen/ 递归修改lisen目录所有者和所属组权限为775