1.基本概念
linux内核模块netfilter实现防火墙功能,iptables、etables和firewalld都是用来实现跟内核的交互。
三个工具彼此冲突,同一时间系统只能使用其中一个。
iptables是比较经典的工具,功能强大,资料较多。它有三张表nat,filter,mangle和5条链PREROUTING,INPUT,OUTPUT,FORWARD,POSTROUTING。
filter是不加参数时的默认表,主要用来实现防火墙的功能;mangle是张自定义表,包含各个链,在数据流向上同一链上处理优先级最高,一般少用到,下面的讨论我们略过此表。
数据包进入系统后首先进入nat表的PREROUTING链,在这里可以改变数据包的目的地址,通常用在端口转发或者nat到DMZ区。
若目的地址是本机,数据包流向filter表的INPUT链;否则包进入fiter表的FORWARD链,linux默认三层转发是关闭的,要实现转发就要修改系统参数,否则系统会把流向非本机的数据包丢弃。
流向本机的数据会再经过filter表INPUT链和output表nat、filter链进一步处理。
最终数据包进入NAT表的POSTROUTING链, 在这里可以修改数据包的源地址。
各个表中的规则是从第一条语句开始匹配,匹配到规则就进入下一张表,所有规则都不匹配的情况下会按默认policy执行。
2.基本操作
a:删除策略
iptables -F 不指定链,清空默认表中所有链中规则
iptables -X 清除预设表filter中使用者自定链中规则
iptables -Z 清除预设表filter中使用者自定链计数
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
b:配置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
c:设置回环地址
iptables -A INPUT -i lo -j ACCEPT
d:连接状态设置
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
e:保存和恢复
iptables-save -C 保存计数 -t 指定表,不指定则保存所有表
iptables-save > /etc/iptables-save
iptables-retore -C包括计数 -n 不覆盖已经表及表内规则,默认是清除所有
iptables-restore < /etc/iptables-save
永久保存
service iptables save
3.简单nat共享上网
首先内核允许数据转发
grep net.ipv4.ip_forward /etc/sysctl.conf
net.ipv4.ip_forward=1
生效配置
sysctl –p
然后添加规则
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 -o int_wan -j MASQUERADE
共享上网是在数据发出前改变其源地址,这样数据才能在公网路由回来。
MASQUERADE用在访问外网的端口是动态获取IP的情况,如PPPoE。
若端口是静态IP,则改成
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 SNAT –to-destination IP_WAN
4.端口转发
iptables –t nat –A PREROUTING –i eth_wan –p tcp –dport 80 –j DNAT –to-destination internalServer:webPort
将外网访问网页的流量转发至内网网页服务器,在流量进入路由之前,修改目的地址和端口,所以用在PREROUTING链。
同时我们需要添加另外一条规则,修改内网网页服务器出去的数据包为公网可路由的IP。
iptables –t nat –A POSTROUTING –d ip_lan –dport servicePort –j SNAT –to-source ip_wan
劫持本地流量,做透明代理
iptables –t nat –A PREROUTING –i eth_lan –p tcp –dport 80 –j REDIRECT –to-port 8888
iptables 学习笔记
原创
©著作权归作者所有:来自51CTO博客作者a_jkou的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HarmonyOS NEXT 学习笔记
鸿蒙os 页面一键置灰
页面效果 API -
iptables学习笔记 (一)
iptables学习笔记 (一)
linux iptables -
iptables学习笔记(四)
iptables学习笔记(四)
linux iptables -
iptables学习笔记(五)
iptables学习笔记(五)
linux iptables -
IPTABLES 学习笔记【2】
iptables 一些高级限制, NAT转发, 总结
学习 网络 iptables IP 子网掩码 -
Linux学习笔记之iptables学习笔记Linux iptables hive .net