iptables 学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables 学习笔记相关的知识,希望对你有一定的参考价值。

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.简单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

 

3.端口转发

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 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

iptables学习笔记

IPTABLES学习笔记

Linux学习笔记(三十三)iptables备份firewalld

Linux学习笔记(三十二)iptables filter表案例 iptables nat表应用

2018-1-26 Linux学习笔记

LINUX iptables规则学习笔记