1.3.1 配置SSH服务
1.配置SSH服务的配置文件、key文件权限
风险分析 /etc/ssh/sshd_config是SSH服务的配置文件,若未授权用户具有该文件的操作权限,则可能给系统造成巨大的损失。
加固详情 确保/etc/ssh/sshd_config仅root用户可操作。
加固步骤 在主机执行以下命令。
chmod 600 /etc/ssh/sshd_config find /etc/ssh/ -xdev -type f -name 'ssh_host_*_key' -exec chown root:root {} \; find /etc/ssh/ -xdev -type f -name 'ssh_host_*_key' -exec chmod u-x,go-rwx {} \; find /etc/ssh/ -xdev -type f -name 'ssh_host_*_key.pub' -exec chmod u-x,go-wx {} \; find /etc/ssh/ -xdev -type f -name 'ssh_host_*_key.pub' -exec chown root:root {} \;
2.修改SSH默认远程端口
风险分析 当前所有的攻击手段都对端口进行攻击,使用默认的22端口更容易受到外部攻击,比如DoS(Denial of Service,拒绝服务)攻击、暴力破解等。
加固详情 对默认的22端口进行修改,使用高位端口。这样可以更好地规避工具扫描,毕竟Nmap扫描器默认也只扫描0~1024端口。
加固步骤 编辑/etc/ssh/sshd_config文件,设置Port为高位端口50000(40000~65534均可),如图1-3所示。
图1-3 设置Port为高位端口50000
3.禁止端口转发
风险分析 启用端口转发会使组织面临安全风险和后门攻击,攻击者可以利用SSH服务隐藏其未经授权的通信,或者从目标网络中过滤被盗数据。
加固详情 禁止端口转发。
加固步骤 编辑 /etc/ssh/sshd_config文件,将AllowTcpForwarding参数设置为no。
4.配置MaxStartups参数
风险分析 MaxStartups参数指定SSH守护进程的未经验证的并发连接的最大数量,如果不对其做限制,则会造成DoS攻击。
加固详情 配置MaxStartups参数。
加固步骤 编辑/etc/ssh/sshd_config文件,将MaxStartups参数设置为maxstartups 10:30:60。
5.配置最大打开会话数
风险分析 构造大量并发会话可能导致系统遭受DoS攻击。
加固详情 配置最大打开会话数。
加固步骤 编辑 /etc/ssh/sshd_config文件,将MaxSessions参数设置为10。
6.配置可通过SSH服务连接到系统的用户
风险分析 配置指定用户,可以将连接权限最小化,防止未知用户连接到系统,将风险降到最低。
加固详情 配置可通过SSH服务连接到系统的用户。
加固步骤 编辑/etc/ssh/sshd_config文件,配置AllowUsers参数,配置形式为AllowUsers <userlist>。图1-4表示仅允许root用户可通过SSH服务连接到系统。
图1-4 表示仅允许root用户可通过SSH服务连接到系统
7.配置鉴权失败次数
风险分析 MaxAuthTries参数指定尝试身份验证的最大次数,配置它可以防止暴力破解。
加固详情 配置鉴权失败次数。
加固步骤 编辑/etc/ssh/sshd_config文件,配置MaxAuthTries参数为3。
8.配置强制输入密码
风险分析 不输入密码等于失去系统的一部分鉴权,使系统的防护更加薄弱。
加固详情 配置强制输入密码。
加固步骤 编辑 /etc/ssh/sshd_config文件,配置IgnoreRhosts参数为yes。设置此参数会强制用户在使用SSH服务进行身份验证时输入密码。
9.配置禁止空密码登录
风险分析 当用户名泄露或者被破解时,如果允许空密码登录,那么攻击者可以很轻易地进入系统。
加固详情 配置禁止空密码登录。
加固步骤 编辑 /etc/ssh/sshd_config文件,配置PermitEmptyPasswords参数为no。
注意
本小节主要介绍对SSH服务的配置文件进行修改,修改完后需要重启SSH服务才能使配置生效。重启命令为:service ssh restart。