iptables防火墙
前言#
在早期的 Linux 系统中,默认使用的是 iptables
配置防火墙。尽管新型 的 firewalld
防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。
iptables 是基于内核的防火墙,功能非常强大;iptables 内置了filter
,nat
和mangle
三张表。所有规则配置后,立即生效,不需要重启服务。
配置文件:
/etc/sysconfig/iptables
iptables 命令基本语法#
“iptables [-t table] command [链名] [条件匹配] [-j 目标动作]
command参数#
指定iptables 对我们提交的规则要做什么样的操作,以下是command常用参数:
-A
Append,追加一条规则(放到最后)
举例:iptables -A INPUT -j DROP #拒绝所有人访问服务器(作为最后一条规则)
-I
Insert,在指定的位置插入规则(忽略序号,放在最前面)
举例:iptables -I INPUT 2 -s 10.0.0.10 -j DROP #拒绝10.0.0.10访问服务器(作为第二条规则)
列出所有规则:#
举例:iptables -nL --line-number #带序号的规则列表
删除一条规则:#
举例:iptables -D INPUT 6 #删除序号为6的一条规则
允许一个IP访问:#
举例:iptables -A INPUT -s 192.168.1.1 -j ACCEPT #允许192.168.1.1访问所有协议的所有端口
允许一组IP访问:#
举例:iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #允许192.168.1.0/24网段访问所有协议的所有端口
允许访问某个端口:#
举例:iptables -A INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口
允许一个IP访问某个端口:#
举例:iptables -I INPUT -s 10.0.0.10 -p tcp --dport 8075 -j ACCEPT
允许一组IP访问某个端口:#
举例:iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 8075 -j ACCEPT
自定义分组:#
举例:iptables -N white #创建一个分组叫whit
iptables -A white -s 10.0.0.10 -j ACCEPT #在这个分组中加入10.0.0.10的允许权限
其实就是把INPUT改成自定义的分组名,常用的有whitelist,blacklist,黑白名单。
查看自定义分组的规则:#
举例:iptables -nL white --line-number #带序号的white分组的规则
删除自定义分组的规则:#
举例:iptables -D white 1 #带序号的white分组的规则
删除自定义分组:#
举例:iptables -X #删除规则为空的自定义分组
删除所有规则:#
举例:iptables -F #删除规则为空的自定义分组(慎用,万一敲了,重启,别保存)
删除自定义分组规则:#
举例:iptables -F white #删除规则为空的自定义分组
保存规则:#
虽然及时生效,但是重启就没了,测试正常后,保存一下。
举例:service iptables save
#
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/15929418.html
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!