CentOS下如何限制SSH登录IP且有哪些工具推荐?

代码编程 2025-08-14 1161

CentOS限制SSH登录IP:为服务器安全加把锁

咱们搞服务器运维的,都知道SSH登录是管理服务器的重要方式,但有时候,为了安全起见,咱们得限制一下SSH登录的IP地址,别让啥人都随便连进来,我就跟大伙儿聊聊,在CentOS系统上,怎么限制SSH登录的IP。

为啥要限制SSH登录IP?

你想啊,服务器就像是咱们家的门,SSH登录就像是开门的钥匙,要是这钥匙谁都能用,那家里东西还安全吗?同样,服务器要是随便谁都能SSH登录,那数据泄露、被黑的风险可就大了去了,限制SSH登录IP,就像是给家门加了个锁,只有特定的人(IP)才能进来,这样服务器就安全多了。

CentOS限制SSH登录IP-工具推荐-工具推荐

限制SSH登录IP的方法

在CentOS上限制SSH登录IP,其实挺简单的,主要就是改改SSH的配置文件,下面,我就一步步教你怎么做。

第一步:找到SSH配置文件

SSH的配置文件一般藏在/etc/ssh/sshd_config这个路径下,你得用root权限去编辑这个文件,不然改不动,你可以用vivim或者nano这些编辑器来打开它,用vi打开就是:

sudo vi /etc/ssh/sshd_config

第二步:修改配置文件

打开配置文件后,你得找到AllowUsers或者AllowGroupsDenyUsersDenyGroups这些选项,咱们今天主要说的是限制IP,所以得用AllowUsers配合IP地址来实现,或者直接用iptables或者firewalld来限制,但为了简单明了,我先说说怎么在sshd_config里配合AllowUsers和IP(虽然直接这么写sshd_config不支持IP,但思路是类似的,实际我们通过其他方式实现IP限制)。

实际做法:我们通常不直接在sshd_config里写IP,而是通过iptables或者firewalld来限制,但为了讲解,我假设一个场景,比如你只想让IP为168.1.100的机器SSH登录,你可以这么做:

  1. iptables限制

    CentOS限制SSH登录IP-工具推荐-工具推荐

    先安装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端口。

  2. 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

注意事项

  1. 测试:改完配置后,一定要测试一下,确保只有你允许的IP能SSH登录,其他IP都被拒绝了。

  2. 备份:改配置文件前,最好备份一下原文件,万一改错了还能恢复。

  3. 多IP:如果你有多个IP需要允许SSH登录,就在iptables或者firewalld里多加几条规则就行了。

  4. 日志:可以看看SSH的日志文件(一般在/var/log/secure或者/var/log/auth.log),看看有没有异常登录尝试。

举个例子

比如说,你有个小团队,团队里有三台机器,IP分别是168.1.100168.1.101168.1.102,你们都想SSH登录到服务器上,那你就可以用iptables或者firewalld添加三条规则,分别允许这三个IP访问22端口,然后拒绝所有其他IP。

限制SSH登录IP,是保护服务器安全的一个重要措施,在CentOS上,你可以通过iptables或者firewalld来实现这个功能,改配置前,一定要备份好原文件,改完后要测试一下,确保配置生效且没有误伤,这样,你的服务器就安全多了,不用担心谁都能随便SSH登录进来了。

好了,今天就跟大伙儿聊到这儿,希望这篇文章能帮到你,让你的服务器更安全!

CentOS安全加固的工作流程究竟是怎样的?
« 上一篇 2025-08-14

文章评论

用CentOS限制SSH登录IP超安心,firewalld工具真给力!