限制SSH的登录IP

为了保证服务器的安全,我们可以对SSH的登录IP进行限制。要实现这个功能,有两个方法:
1.IPTABLES大法
使用如下指令可以将1.2.3.4添加到可访问的IP列表内。如果要添加多个IP,只要多次执行第一句即可。第二句只需要执行一次。
# All connectsion from address 1.2.3.4 to SSH (port 22)
iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT

# Deny all other SSH connections
iptables -A INPUT -p tcp --dport 22 -j DROP

执行完了之后别忘了service iptables save保存修改
2.使用hosts.allow和hosts.deny
按照如下方式修改/etc/hosts.allow
# /etc/hosts.allow
sshd: 1.2.3.0/255.255.255.0
sshd: 192.168.0.0/255.255.255.0

其中如果是单台电脑的话可以不加掩码直接写IP。掩码可以用/24之类的方法来表示。

然后,关键的一步到了。更改了/hosts.allow只是让这些IP可以访问,但是并没有禁止其余IP的访问!所以一定要记得修改/etc/hosts.deny
# /etc/hosts.deny
sshd: ALL

这样就可以禁止不在hosts.allow中的IP使用SSH连接服务器了。

顺便一说,修改/etc/ssh/sshd_config可以做到只允许某些用户访问或只禁止某些用户访问。这两项分别是:
AllowUsers bob chris
DenyUsers badness paula

最好再设置
PermitRootLogin no
禁用root登录保证安全。
注意,修改/etc/ssh/sshd_config需要重启SSD服务。使用servise ssh restart或service sshd restart来重启。

CC BY-NC-SA 4.0 限制SSH的登录IP by 桔子小窝 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

One thought on “限制SSH的登录IP

回复 an9 取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据