iptables是linux的防火墙大家都知道,但它能干的东西可能大大超乎你的想象,它可以进行 ttl的修改,nat的转换,甚至于负载均衡,本来想写点什么的但是那个iptables的使用手册已经写的太TM的完善了,那我就找个防火墙的配置讲解一下把:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:sieve-filter
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:dc
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pharos
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
先讲讲chain,chain就是要执行的防火墙操作的列表
上面有三个CHAIN的分组 分别是 INPUT,FORWARD,OUTPUT,分别代表的是 INPUT:Ip包发往本机的时候要进行的防火墙操作;FORWARD 目的地不是本机的时候,要进行的防火墙的操作;OUTPUT就是本机发出的包需要进行的防火墙的操作
还有两条chain没有在上述的表格中显示,分别为prerounting,postrounting,顾名思义,就是 进入本机 路由变换前进行的防火墙操作,进行路由转换操作后进行的防火墙操作
chain还可以自定义新增chain,自定义的chain由系统定义的chain里跳入,执行完后跳回原来的chain。
关于chain的执行连接过程如下(偷的一张图,作者大大借用下):
在上面的图中绿色部分的就是iptables的表,表有什么用呢?
表就是对系统每个chain的更细的划分,表一共有3张:mangle,nat,filter.mangle表主要处理ttl,tos,mark等信息,nat主要处理ip、端口转换的信息,filter顾名思义就是过滤器,用作防火墙
举个栗子,prerounting chain在nat表 里的部分 就是在prerounting的阶段对nat信息进行配置
好了,有了上面的基础只是,我们就能看懂刚刚列出的表格了~
先看input chain
1)Chain INPUT (policy ACCEPT)
2)target prot opt source destination
3)ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
4)ACCEPT icmp -- anywhere anywhere
5)ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
6)ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
第一行 写了chain的名字,policy Accept的意思是如果Chain中的所有条目都没有命中并执行,则默认Accept,放行
第三行 的意思是 匹配 连接的状态(什么是连接的状态?翻那个手册把.....)若连接的状态被防火墙判断为 related或者established的话,就Accept放行。
related指代某个已经放行的通讯相关联的端口通讯(怎么判断相关联?我也不太清楚....)
establish的意思是已经建立连接的话那么就放行(何为已经建立连接?就是本地发出去一堆信息,远程有回应信息 或者 远程发一堆信息 本地有回应信息)
第四行 不讲
第五行 如果是连接到 ssh端口的 状态为NEW的连接,则放行(状态为NEW的意思是,发出去一堆信息,还没有收到回应 或者 收到一堆信息,还没有回应)
第六行 不讲
接着看 output chain
1)Chain OUTPUT (policy ACCEPT)
2)target prot opt source destination
第一行标明了如果没有匹配的规则,则放行,也就是说 本地总是可以发信息到外面,一旦发出去,那么连接就变成了new 只要对方有回应 连接就变成establish,在input的列表里establish是放行的
综上,这个防火墙的规则可以定义为,只要本地发起的连接,都能通过防火墙,正常通讯,特定放行的几个端口ssh之类的 允许外部发起访问,并放行,其余情况都禁止。好了,讲完了,更多的知识去看那个手册把....
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于