Linux安全提升–SSH仅允许指定IP访问的三种方法
内容提要
为了加强服务器安全性,使用堡垒机限制业务服务器的SSH访问。可以通过修改配置文件允许指定用户/用户组或IP登录,禁止指定用户登录。还可以使用DenyHosts允许或禁止指定IP通过SSH登录。通过配置防火墙开放指定端口,添加过滤规则屏蔽IP。配置完成后需保存并添加到自启动。
延伸解读
三种方法的选择与组合
文章介绍了三种限制SSH访问的方法:修改sshd_config、使用hosts.allow/deny、配置iptables。它们作用层面不同:sshd_config控制用户和IP的登录权限,hosts.allow/deny基于TCP包装器,iptables则过滤网络包。实际部署时可组合使用,例如用iptables限制来源IP,再用sshd_config细化用户权限,形成多层防护。
配置生效与持久化要点
修改sshd_config后需重启sshd服务,CentOS 6与7/EulerOS命令不同。hosts.allow/deny修改后立即生效,无需重启。iptables规则默认保存在内存,重启丢失,必须执行service iptables save保存,并用chkconfig或systemctl enable iptables.service加入自启动。忽略保存步骤会导致重启后规则失效。
防火墙规则顺序与默认策略
iptables规则按顺序匹配,删除时需指定规则序号,如iptables -D INPUT 2。添加过滤规则有两种方式:设置默认策略iptables -P INPUT DROP,或追加拒绝规则iptables -A INPUT -j REJECT。前者改变链的默认行为,后者保留默认ACCEPT但显式拒绝未匹配流量。选择时需注意对现有连接的影响。
云服务器额外注意事项
文章特别提醒,如果使用阿里云服务器,除了在系统内配置iptables,还需在阿里云后台安全组中开放相应端口,否则外部仍无法访问。此外,屏蔽攻击IP时可使用CIDR格式,如-s 170.64.130.0/24 -j DROP,一次性屏蔽整个网段。配置后可通过开放/关闭80端口验证防火墙是否生效。
Q&A
如何通过配置文件限制SSH访问的用户和IP?
可以通过修改/etc/ssh/sshd_config文件,使用AllowUsers选项允许指定用户登录,使用DenyUsers选项禁止指定用户登录。
DenyHosts文件的作用是什么?
DenyHosts文件用于限制或允许特定IP通过SSH登录,优先级高于hosts.allow文件。
如何配置iptables防火墙以限制SSH访问?
可以通过iptables命令开放指定端口(如22),并添加过滤规则以禁止所有非允许的请求。
如何保存iptables配置以防止重启后丢失?
执行命令service iptables save可以保存iptables配置,并将其添加到自启动项。
如何屏蔽特定IP地址以防止攻击?
可以使用iptables命令指定IP地址进行屏蔽,例如使用-s选项和DROP动作。
重启sshd服务后需要做什么?
重启sshd服务后,新的配置更改将生效,允许或禁止的用户和IP访问将被更新。