centos ftpserver安全策略
小樊
34
2025-12-13 15:32:06
CentOS FTP 服务器安全策略
一 基础安全配置
- 以 vsftpd 为例,安装与启动:sudo yum install -y vsftpd && sudo systemctl enable --now vsftpd。核心配置 /etc/vsftpd/vsftpd.conf:禁用匿名访问 anonymous_enable=NO;仅允许本地用户 local_enable=YES;按需开启写入 write_enable=YES;将本地用户限制在主目录 chroot_local_user=YES;为 chroot 环境安全,建议 allow_writeable_chroot=NO;启用日志 xferlog_enable=YES、xferlog_file=/var/log/vsftpd.log;限制可登录用户 userlist_enable=YES 并在 /etc/vsftpd/user_list 中白名单化;禁止 root 登录(在 /etc/vsftpd/ftpusers 中保留 root)。以上可显著降低暴露面与提权风险。
二 加密与认证
- 启用 SSL/TLS:生成证书(示例)sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt;在 vsftpd.conf 中启用 ssl_enable=YES、rsa_cert_file、rsa_private_key_file,并强制加密登录与数据传输 force_local_logins_ssl=YES、force_local_data_ssl=YES;为兼容性可禁用不安全协议(如 ssl_sslv2/ssl_sslv3=NO)。客户端需使用 FTPS(显式) 连接。若环境允许,优先评估更安全的 SFTP(基于 SSH) 替代方案。
三 防火墙与被动模式端口
- 被动模式必须限定端口范围并在防火墙放行。vsftpd.conf 中设置 pasv_min_port=40000、pasv_max_port=50000;firewalld 放行:sudo firewall-cmd --permanent --add-port=21/tcp;sudo firewall-cmd --permanent --add-port=40000-50000/tcp;sudo firewall-cmd --reload。如使用 iptables 且未使用 FTP 连接跟踪模块,需加载 ip_conntrack_ftp 以支撑被动模式数据通道:在 /etc/sysconfig/iptables-config 的 IPTABLES_MODULES 加入 ip_conntrack_ftp,或执行 modprobe ip_conntrack_ftp;规则示例:iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT;iptables -A INPUT -p tcp --dport 40000:50000 -m state --state NEW,ESTABLISHED -j ACCEPT;iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT。主动模式涉及服务器向客户端发起数据连接,通常还需放行 20/tcp。
四 用户与权限控制
- 创建专用系统用户且仅用于 FTP:useradd -m -s /sbin/nologin ftpuser;按需设置目录与权限(如上传目录 775、只读根目录 755),避免使用 root 登录;通过 /etc/vsftpd/ftpusers 黑名单与 /etc/vsftpd/user_list 白名单精细化控制;启用 chroot 后,若需写入,请为上传目录单独赋权,避免将用户主目录整体设为可写(配合 allow_writeable_chroot=NO)。启用日志(xferlog)并定期审计上传/下载行为,有助于发现异常与数据泄露。
五 SELinux 与入侵防护
- SELinux 场景:启用 FTP 相关布尔值(示例)sudo setsebool -P ftp_home_dir on、sudo setsebool -P allow_ftpd_full_access on;如切换根目录或权限异常,使用 getsebool -a | grep ftp 核查。入侵防护:部署 Fail2Ban 监控 vsftpd 日志并自动封禁暴力破解来源 IP,降低口令猜测风险。持续维护:保持 vsftpd 与系统组件更新,最小化开放端口与功能,定期复核用户、证书与防火墙策略。