该配置指令旨在明确网络访问策略,规定仅允许第一个IP地址访问22端口,通常用于SSH服务的安全设置,通过限制连接源,确保只有指定设备能建立连接,从而有效防止未授权访问,提升系统安全性。
Linux安全加固实战:限制SSH(22端口)仅允许指定IP访问
在Linux服务器管理中,安全性永远是第一位的,默认开放的SSH端口(22端口)往往是黑客暴力破解的重点攻击目标,为了提高服务器的安全性,最有效的措施之一就是实施“白名单”策略,即只允许特定的IP地址访问SSH服务,而拒绝其他所有IP的连接请求。
本文将详细介绍如何通过配置防火墙规则,限制SSH端口仅允许两个指定IP访问。

使用 iptables(传统且底层的方法)
iptables 是Linux内核自带的防火墙工具,能够提供非常精确的访问控制,以下是基于 iptables 的配置步骤。
查看当前规则
建议查看一下当前的防火墙状态,以免覆盖了重要的现有规则:
sudo iptables -L -n
清除现有规则(可选,为了干净的配置)
如果你希望重新开始配置,可以先清除所有规则:
sudo iptables -F
设置默认策略
为了安全起见,建议将默认策略设置为拒绝(DROP):
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
注意:OUTPUT ACCEPT 允许服务器主动发起外部连接,这是必要的。
允许本地回环流量
确保服务器本身能访问自己(防止SSH断开):
sudo iptables -A INPUT -i lo -j ACCEPT
允许已建立的连接
确保已经建立的SSH连接不会因为规则更新而断开:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许指定的两个IP访问22端口
假设你要允许的IP分别是 168.1.100 和 0.0.50,你需要分别添加允许规则(注意顺序,允许规则要在拒绝规则之前):
# 允许第二个IP访问22端口 sudo iptables -A INPUT -p tcp -s 10.0.0.50 --dport 22 -j ACCEPT
拒绝其他所有访问22端口的请求
拒绝其他所有IP访问22端口:
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
保存规则
配置完成后,需要保存规则,否则重启系统后配置会丢失,根据你的Linux发行版选择以下命令之一:
- CentOS 6/RHEL 6:
sudo service iptables save
- CentOS 7/RHEL 7/8/9 (使用 iptables-service):
sudo service iptables save
- Ubuntu/Debian (使用 netfilter-persistent):
sudo netfilter-persistent save
使用 UFW(简单易用的防火墙管理工具)
如果你使用的是 Ubuntu 或 Debian 系统,或者更喜欢图形化/命令行的简化管理,ufw 是更好的选择。
启用 UFW
sudo
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

