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