CentOS下如何限制SSH登录IP且有哪些工具推荐?
CentOS限制SSH登录IP:为服务器安全加把锁
咱们搞服务器运维的,都知道SSH登录是管理服务器的重要方式,但有时候,为了安全起见,咱们得限制一下SSH登录的IP地址,别让啥人都随便连进来,我就跟大伙儿聊聊,在CentOS系统上,怎么限制SSH登录的IP。
为啥要限制SSH登录IP?
你想啊,服务器就像是咱们家的门,SSH登录就像是开门的钥匙,要是这钥匙谁都能用,那家里东西还安全吗?同样,服务器要是随便谁都能SSH登录,那数据泄露、被黑的风险可就大了去了,限制SSH登录IP,就像是给家门加了个锁,只有特定的人(IP)才能进来,这样服务器就安全多了。

限制SSH登录IP的方法
在CentOS上限制SSH登录IP,其实挺简单的,主要就是改改SSH的配置文件,下面,我就一步步教你怎么做。
第一步:找到SSH配置文件
SSH的配置文件一般藏在/etc/ssh/sshd_config
这个路径下,你得用root权限去编辑这个文件,不然改不动,你可以用vi
、vim
或者nano
这些编辑器来打开它,用vi
打开就是:
sudo vi /etc/ssh/sshd_config
第二步:修改配置文件
打开配置文件后,你得找到AllowUsers
或者AllowGroups
、DenyUsers
、DenyGroups
这些选项,咱们今天主要说的是限制IP,所以得用AllowUsers
配合IP地址来实现,或者直接用iptables
或者firewalld
来限制,但为了简单明了,我先说说怎么在sshd_config
里配合AllowUsers
和IP(虽然直接这么写sshd_config
不支持IP,但思路是类似的,实际我们通过其他方式实现IP限制)。
实际做法:我们通常不直接在sshd_config
里写IP,而是通过iptables
或者firewalld
来限制,但为了讲解,我假设一个场景,比如你只想让IP为168.1.100
的机器SSH登录,你可以这么做:
-
用
iptables
限制:先安装
iptables
(如果还没装的话),然后添加一条规则,只允许168.1.100
访问22端口(SSH默认端口):sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j DROP
这两条命令的意思是,先允许
168.1.100
访问22端口,然后拒绝所有其他IP访问22端口。 -
用
firewalld
限制(如果你的CentOS用的是firewalld
):先启动并启用
firewalld
(如果还没启动的话),然后添加一条规则:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="22" reject' sudo firewall-cmd --reload
这两条
firewalld
命令的意思跟iptables
差不多,也是先允许后拒绝。
第三步:重启SSH服务
不管你是用iptables
还是firewalld
,改完配置后,都得重启SSH服务让配置生效,这里要注意,重启SSH服务后,你当前这个SSH连接可能会断掉,所以最好先开个新的SSH连接测试一下,或者确保你有其他方式(比如控制台)能连回服务器。
重启SSH服务的命令是:
sudo systemctl restart sshd
注意事项
-
测试:改完配置后,一定要测试一下,确保只有你允许的IP能SSH登录,其他IP都被拒绝了。
-
备份:改配置文件前,最好备份一下原文件,万一改错了还能恢复。
-
多IP:如果你有多个IP需要允许SSH登录,就在
iptables
或者firewalld
里多加几条规则就行了。 -
日志:可以看看SSH的日志文件(一般在
/var/log/secure
或者/var/log/auth.log
),看看有没有异常登录尝试。
举个例子
比如说,你有个小团队,团队里有三台机器,IP分别是168.1.100
、168.1.101
、168.1.102
,你们都想SSH登录到服务器上,那你就可以用iptables
或者firewalld
添加三条规则,分别允许这三个IP访问22端口,然后拒绝所有其他IP。
限制SSH登录IP,是保护服务器安全的一个重要措施,在CentOS上,你可以通过iptables
或者firewalld
来实现这个功能,改配置前,一定要备份好原文件,改完后要测试一下,确保配置生效且没有误伤,这样,你的服务器就安全多了,不用担心谁都能随便SSH登录进来了。
好了,今天就跟大伙儿聊到这儿,希望这篇文章能帮到你,让你的服务器更安全!
文章评论
用CentOS限制SSH登录IP超安心,firewalld工具真给力!