在CentOS系统上进行SFTP安全设置,主要包括以下几个方面:
1. 安装和配置OpenSSH服务器
首先,确保你的CentOS系统上安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
2. 配置SFTP子系统
编辑SSH配置文件 /etc/ssh/sshd_config
,确保以下配置项已正确设置:
# 启用SFTP子系统 Subsystem sftp /usr/libexec/openssh/sftp-server # 禁用FTP协议 # Subsystem sftp /bin/false # 禁止root用户登录 PermitRootLogin no
3. 创建SFTP用户
创建一个新用户,专门用于SFTP文件传输,并设置密码:
sudo useradd -G sftp -s /sbin/nologin sftp_user sudo passwd sftp_user
4. 配置用户目录和权限
为SFTP用户创建一个目录,并设置适当的权限:
sudo mkdir /srv/sftp/sftp_user sudo chown root:sftp /srv/sftp/sftp_user sudo chmod 755 /srv/sftp/sftp_user sudo usermod -d /srv/sftp/sftp_user sftp_user
5. 限制用户访问目录
在 /etc/ssh/sshd_config
文件中添加以下内容,以限制SFTP用户只能访问其主目录:
Match User sftp_user ChrootDirectory /srv/sftp/\u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
6. 禁用不必要的超级用户
检查并删除不必要的超级用户账户,以减少系统受攻击的风险。
7. 强化用户口令
设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。
8. 保护口令文件
使用 chattr
命令给 /etc/passwd
, /etc/shadow
, /etc/group
, 和 /etc/gshadow
文件加上不可更改属性,以防止未授权访问。
9. 设置root账户自动注销时限
通过修改 /etc/profile
文件中的 TMOUT
参数,设置root账户的自动注销时限。
10. 限制su命令
编辑 /etc/pam.d/su
文件,限制只有特定组的用户才能使用 su
命令切换为root。
11. 禁用ctrl+alt+delete重启命令
通过修改 /etc/inittab
文件,禁用ctrl+alt+delete组合键重启机器的命令。
12. 设置开机启动服务权限
确保 /etc/rc.d/init.d/
目录下所有文件的权限,以确保只有root用户可以操作这些服务。
13. 防止登录时显示系统信息
避免在登录时显示系统和版本信息,以减少信息泄露的风险。
14. 限制NFS网络访问
对于使用NFS网络文件系统服务的系统,确保 /etc/exports
文件具有最严格的访问权限设置。
15. 登录终端设置
通过编辑 /etc/securetty
文件,限制root用户只能在特定的tty设备上登录。
16. 防止攻击
编辑 host.conf
文件和设置资源限制,如最大进程数和内存使用量,以防止IP欺骗和DoS攻击。