使用iptables或firewalld可限制IP访问,如iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP禁止SSH访问,firewalld通过rich rule拒绝指定IP,也可通过/etc/hosts.deny限制服务级访问。

在Linux系统中,可以通过防火墙工具来限制某个IP访问特定服务。最常用的方式是使用 iptables 或 firewalld。以下是具体操作方法。
使用 iptables 限制IP访问
iptables 是 Linux 内核中强大的网络包过滤工具,可以直接控制进出系统的网络流量。
假设要禁止 IP 地址 192.168.1.100 访问本机的 SSH 服务(端口 22),可以执行以下命令:
-
禁止特定IP访问指定端口:
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j DROP -
允许特定IP访问(白名单):
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT -
查看当前规则:
iptables -L -n -v -
删除规则(例如删除INPUT链第3条规则):
iptables -D INPUT 3
注意:DROP 表示直接丢弃数据包,对方无响应;REJECT 会返回拒绝信息。

使用 firewalld 限制IP(适用于CentOS/RHEL/Fedora)
firewalld 是动态防火墙管理工具,支持区域(zone)概念,便于管理不同来源的访问策略。
艾零三(a03web)企业网站系统免费版,本系统特点为后台有可视化的用户控件引用功能,无需编程即可使用丰富的企业网站功能,此版本为免费版,无任何功能限制。 系统环境 asp.net2.0+access,发布包中包含一个微服务器环境,不需要装Microsoft .NET Framework v2.0 也可以访问网站。 艾零三(a03web)企业网站系统包含功能有: 网站单页资料模块:可在后台分组设立
将特定IP加入受信任区域之外,或直接拒绝其访问:
-
拒绝某个IP访问所有服务:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' -
拒绝某个IP访问特定端口(如22):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" reject' -
重新加载配置:
firewall-cmd --reload -
查看已添加的规则:
firewall-cmd --list-all

通过服务自身配置限制(如SSH)
某些服务支持在配置文件中设置访问控制,例如SSH服务可通过 /etc/hosts.deny 和 /etc/hosts.allow 控制。
- 编辑文件 /etc/hosts.deny,添加:
sshd: 192.168.1.100 - 若要允许某些IP,可在 /etc/hosts.allow 添加:
sshd: 192.168.1.50
注意:/etc/hosts.allow 优先级高于 .deny 文件。
基本上就这些常用方法。选择哪种方式取决于你使用的系统和防火墙工具。iptables 更底层灵活,firewalld 更适合动态管理,服务级限制则适用于特定场景。关键是确保规则生效并测试效果,避免误封自己。不复杂但容易忽略。









