CentOSSFTP安全配置指南

一基础安全基线

保持系统更新:执行sudoyumupdate-y,及时修补漏洞。

安装并启用OpenSSH服务:执行sudoyuminstall-yopenssh-server&&sudosystemctlenable--nowsshd。

禁止root直接登录:在/etc/ssh/sshd_config中设置PermitRootLoginno。

使用密钥认证优先:设置PasswordAuthenticationno,并为账户部署公钥(置于~/.ssh/authorized_keys,权限600,目录700)。

仅启用内部SFTP子系统:设置Subsystemsftpinternal-sftp,便于chroot与权限控制。

禁用不必要功能:在全局或针对SFTP用户的Match块中关闭AllowTcpForwardingno、X11Forwardingno。

防火墙放行SSH:使用firewall-cmd--permanent--add-service=ssh&&firewall-cmd--reload。

日志与审计:保留并定期查看/var/log/secure,监控失败登录与异常行为。

二用户与目录权限

创建专用用户与组:

组:sudogroupaddsftpusers

用户:sudouseradd-m-Gsftpuserssftpuser&&sudopasswdsftpuser

正确设置chroot根目录权限:

chroot目标(如/home/sftpuser)及其所有上级目录必须属主为root:root,权限755,否则internal-sftp会拒绝登录。

为用户提供可写目录:

例如:mkdir-p/home/sftpuser/upload&&chownsftpuser:sftpusers/home/sftpuser/upload&&chmod755/home/sftpuser/upload。

仅SFTP的受限Shell(可选):创建用户时可使用-s/sbin/nologin,进一步降低交互式登录风险。

三加固后的sshd_config示例

#全局基线Port22PermitRootLoginnoPasswordAuthenticationnoChallengeResponseAuthenticationnoUsePAMyesX11ForwardingnoAllowTcpForwardingnoSubsystemsftpinternal-sftp#仅允许sftpusers组使用SFTP并chroot到其家目录MatchGroupsftpusersChrootDirectory%hForceCommandinternal-sftpAllowTcpForwardingnoX11Forwardingno

修改后执行:sudosystemctlrestartsshd并测试连接。

如需自定义端口(例如2222),在全局Port增加或替换端口,并在防火墙放行对应端口。

四网络与访问控制

防火墙放行:

默认端口:firewall-cmd--permanent--add-service=ssh&&firewall-cmd--reload

自定义端口:firewall-cmd--permanent--add-port=2222/tcp&&firewall-cmd--reload

限制来源IP(两种做法,择一或并用):

防火墙层面:

放通白名单到trusted区域:firewall-cmd--permanent--zone=trusted--add-source=1.2.3.4

仅trusted区域放行SSH:firewall-cmd--permanent--zone=trusted--add-service=ssh

重载:firewall-cmd--reload

SSH层面(MatchAddress):

在/etc/ssh/sshd_config的Match块中加入MatchAddress1.2.3.4,5.6.7.8以限制仅这些来源可用SFTP。

五运维与故障排查

连接与权限验证:

连接测试:sftpsftpuser@your_server_ip(或-P2222指定端口)。

常见登录失败原因:chroot目录或其上级目录属主非root、权限非755、用户家目录未对SFTP用户可写(应在chroot下单独建可写子目录)。

SELinux场景:

不建议直接关闭SELinux。若遇到权限问题,优先使用restorecon恢复默认上下文,或按需调整布尔值与策略;确需临时排障可setenforce0,验证后恢复setenforce1。

日志与监控:

实时查看:sudotail-f/var/log/secure;对失败登录、异常IP、非法命令进行告警与封禁。