关于 iptables 入站 出站以及NAT实例

合集下载

iptables和nat的配置与管理

iptables和nat的配置与管理

iptables简介
netfilter是Linux核心中的一个通用架构,它提供了一 系列的“表”(tables),每个表由若干“链”( chains)组成,而每条链可以由一条或数条“规则”( rules)组成。实际上,netfilter是表的容器,表是链 的容器,而链又是规则的容器。 3个表: filter(默认表)、nat表、manger表 5条链: INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

பைடு நூலகம்
Iptables的基本语法实例
在filter表中INPUT链的第2条规则前插入一条新规则,规 则为不允许访问TCP协议的53端口的数据包通过 iptables –I INPUT 2 –p tcp –dport 53 –j DROP 在filter表中INPUT链的第一条规则前插入一条新规则,规 则为允许源IP地址属于172.16.0.0/16网段的数据包通过 iptables –I INPUT 1 –s 172.16.0.0/16 –j ACCEPT 删除filter表中INPUT链的第2条规则 iptables –D INPUT 2 清除filter表中INPUT链的所有规则。 iptables –F INPUT
iptables和nat的配置与管理
金京犬
Tip:学习目标
知识目标 了解防火墙的分类及工作原理、了解NAT 掌握iptables防火墙的配置 掌握利用iptables实现NAT 能力目标 能熟练完成利用iptables架设企业NAT服务器 情感目标

项目背景
假如某公司需要Internet接入,由ISP分配IP地址 202.112.113.112。采用iptables作为NAT服务器接入网络, 内部采用192.168.1.0/24地址,外部采用202.112.113.112 地址。为确保安全需要配置防火墙功能,要求内部仅能够访 问Web、DNS及Mail三台服务器;内部Web服务器 192.168.1.100通过端口映象方式对外提供服务。网络拓扑 结构如下图所示。

iptables防火墙FORWARD 和 NAT 规则的应用

iptables防火墙FORWARD 和 NAT 规则的应用
服务器服务器系统; 5. 利用iptables命令查看结果。
允许整个 LAN 的转发(防火墙/ 网关在 eth0 上有一个内部 IP 地
址192.168.0.105)
查看是否设置成功
操作流程:
1. 利用命令查看制定链中的所有规则和网卡信息; 2. 利用命令设置防火墙允许整个 LAN 的转发; 3. 把来自 LAN 节点的请求都伪装成防火墙的外部设备的 IP 地址; 4. 把进入的 HTTP 请求转发到 192.168.0.127上的专用 Apache HTTP
服务器服务器系统; 5. 利用iptables命令查看结果。
查看配置结果
实验结论:
通过对iptables防火墙基本配置的学习,可以有效利用配置端口的方法来 控制系统服务的应用,以确保服务器的可靠性和安全性。
nat规则的应用多数机构从它们的isp处得到数量有限的公网ip地址鉴于这种限额管理员必须积极寻求分享互联网服务的创建性方法而又不必把稀有的ip地址分配给lan上的每一台机器
iptables防火墙FORWARD 和 NAT 规则 的应用
背景描述:
多数机构从它们的ISP处得到数量有限的公网IP地址,鉴于这种限额,管理 员必须积极寻求分享互联网服务的创建性方法,而又不必把稀有的IP地址 分配给LAN上的每一台机器。针对此情况,iptables防火墙提供了选路发 送和转发政策,可以实现网络资源的有效利用。
服务器服务器系统; 5. 利用iptables命令查看结果。
把来自 LAN 节点的请求 都伪装成防火墙的外部设
备的 IP 地址
操作流程:
1. 利用命令查看制定链中的所有规则和网卡信息; 2. 利用命令设置防火墙允许整个 LAN 的转发; 3. 把来自 LAN 节点的请求都伪装成防火墙的外部设备的 IP 地址; 4. 把进入的 HTTP 请求转发到 192.168.0.127上的专用 Apache HTTP

关于iptables入站出站以及NAT实例

关于iptables入站出站以及NAT实例

关于iptables入站出站以及NAT实例本文是自己工作上的iptables笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。

(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的)iptables 一些参数名称:四表五链:fifter表、NAT表、Mangle表、Raw表。

INPUT 链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链INPUT链–处理来自外部的数据。

OUTPUT链–处理向外发送的数据。

FORWARD链–将数据转发到本机的其他网卡设备上。

PREROUTING链–处理刚到达本机并在路由转发前的数据包。

它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

(NAT表需要开启linux路由net.ipv4.ip_forward = 1)POSTROUTING链–处理即将离开本机的数据包。

它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

OUTPUT链–处理本机产生的数据包。

iptables 新建时情况所有记录iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X开放22 SSH端口iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口)iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)例如一条比较完整的SSH端口限制:(意思为:从eth0进来的SSH访问,除了公司192.168.16.0/24不限制,其他的地址都限制为每个ip最多5个SSH连接,且只为NEW和ESTABLISHED的连接,其他的都拒接)iptables -A INPUT -i eth0 ! -s 192.168.16.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-above 5 -j REJECT----iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT (允许本机去ssh其他的服务器的22端口)iptables -A INPUT -p tcp --sport 22 -j ACCEPT设置默认规则为DROPiptables -P INPUT DROPiptables -P OUTPUT DROP此时占时不要service iptables save,先用客户端ssh连接一下服务器,看看可以连接吗?如果不行最起码还可以重启,这样规则没保存重启是不生效,如果保存了发现不通就麻烦一些了!当发现可以SSH的时候,我们就可以继续下面的步骤了!打开回环地址,为了本地访问,如本地访问数据库之类iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT打开服务器的ping功能,我觉得有必要打开,可以检测服务器状况iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT (此2条规则是允许本机ping外网的ip,不包括域名,其中8是icmp的请求,0是icmp的响应)iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT----iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT (此2条规则是允许外部ping本机)iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT允许内部ping外部的域名iptables -A INPUT -p udp --sport 53 -j ACCEPTiptables -A OUTPUT -p udp --dport 53 -j ACCEPT允许外部访问本机的80服务,且只允许新连接的和已经连接的会话(状态检测)iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT允许外部访问我本地多个端口如 8080,8081,8082,且只允许是新连接,已经连接的和已经连接的在延伸出新连接的会话iptables -A INPUT -p tcp -m multiport --dport 8080,8081,8082 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sport 8080,8081,8082 -m state --state ESTABLISHED -j ACCEPT 允许外部访问本机81端口,且本机初始只允许有200个连接,超过了此数量,然后每秒新增加2个连接,如果访问超过此限制则拒接(此方式可以限制一些攻击)iptables -A INPUT -p tcp --dport 81 -m limit --limit 2/s --limit-burst 200 -j ACCEPTiptables -A OUTPUT -p tcp --sport 81 -j ACCEPT限制除用户192.168.16.99以外的IP连接数为50 (相当于可以给自己开特权^_^)iptables -A FORWARD -p tcp -s !192.168.16.99 -m connlimit --connlimit-above 50 -j REJECTTCP匹配扩展协议--tcp-flagsiptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK,RST SYN (表示 SYN,FIN,ACK,RST的标识都检查,但只匹配SYN标识)iptables -A INPUT -p tcp --syn (如果这是为了匹配SYN标识位也可以写成这样,选项—syn相当于”--tcp-flags SYN,RST,ACK SYN”的简写。

iptables 配置nat masquerade规则

iptables 配置nat masquerade规则

iptables 配置nat masquerade规则iptables是Linux操作系统中一个重要的防火墙软件,它可以用来配置和管理网络数据包的转发和过滤规则。

其中一项常见的配置是nat masquerade规则,用于实现网络地址转换(Network Address Translation,NAT),将内部局域网的私有IP地址转换为公共IP地址,实现内网与外网的通信。

本文将逐步解释iptables配置nat masquerade 规则的步骤和原理。

第一步:了解nat masquerade的原理在深入了解iptables配置nat masquerade规则之前,我们首先需要了解nat masquerade的原理。

当内部局域网上的设备通过路由器连接到互联网时,由于内网使用的是私有IP地址,而互联网上使用的是公共IP地址,所以需要进行地址转换。

nat masquerade将内部局域网的私有IP 地址转换为路由器的公共IP地址,使得内网设备可以正常访问互联网。

第二步:确认系统中是否已安装iptables在开始配置nat masquerade规则之前,我们需要确认系统中是否已经安装了iptables。

可以通过在终端执行以下命令来检查:shelliptables -V如果系统已安装iptables,将显示出iptables的版本号和其他信息。

如果系统未安装iptables,可以通过以下命令来安装:shellsudo apt-get install iptables请根据使用的Linux发行版选择相应的命令。

第三步:创建一个新的iptables链接下来,我们需要创建一个新的iptables链来存储nat masquerade规则。

可以使用以下命令创建一个名为"MASQUERADE"的新链:shellsudo iptables -t nat -N MASQUERADE这将在iptables的nat表中创建一个新的自定义链。

Linux命令高级技巧使用iptables进行端口转发和NAT

Linux命令高级技巧使用iptables进行端口转发和NAT

Linux命令高级技巧使用iptables进行端口转发和NAT在Linux系统中,iptables是一个非常强大的工具,用于配置和管理网络包过滤规则。

除了基本的网络包过滤功能,iptables还可以用于端口转发和网络地址转换(NAT)。

本文将介绍如何使用iptables进行端口转发和NAT,以及一些高级技巧。

1. 端口转发端口转发是一种将网络流量从一个端口转发到另一个端口的技术。

它在网络中广泛应用于代理服务器、端口映射、负载均衡等场景。

下面是使用iptables进行端口转发的示例命令:```iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.100:80```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A PREROUTING`表示将规则添加到`PREROUTING`链中,`-p tcp --dport 8080`表示匹配TCP协议和目标端口号8080,`-j DNAT`表示采取目标网络地址转换,`--to-destination 192.168.0.100:80`表示将数据包转发到目标IP地址192.168.0.100的80端口。

2. 网络地址转换(NAT)网络地址转换(NAT)是一种将私有网络中的IP地址转换为公共网络中的IP地址的技术。

它广泛应用于家庭网络和企业网络中,允许多台设备共享一个公共IP地址。

下面是使用iptables进行NAT的示例命令:```iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A POSTROUTING`表示将规则添加到`POSTROUTING`链中,`-s192.168.0.0/24`表示源IP地址为192.168.0.0/24的网络,`-o eth0`表示出去的网络接口为eth0,`-j MASQUERADE`表示使用动态地址转换。

Linux下iptables超详细教程和使用示例

Linux下iptables超详细教程和使用示例

Linux下iptables超详细教程和使⽤⽰例iptables的结构:iptables由上⽽下,由Tables,Chains,Rules组成。

⼀、iptables的表tables与链chainsiptables有Filter, NAT, Mangle, Raw四种内建表:1. Filter表Filter是iptables的默认表,它有以下三种内建链(chains):INPUT链 – 处理来⾃外部的数据。

OUTPUT链 – 处理向外发送的数据。

FORWARD链 – 将数据转发到本机的其他⽹卡设备上。

2. NAT表NAT表有三种内建链:PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。

它会转换数据包中的⽬标IP地址(destination ip address),通常⽤于DNAT(destination NAT)。

POSTROUTING链 – 处理即将离开本机的数据包。

它会转换数据包中的源IP地址(source ip address),通常⽤于SNAT(source NAT)。

OUTPUT链 – 处理本机产⽣的数据包。

3. Mangle表Mangle表⽤于指定如何处理数据包。

它能改变TCP头中的QoS位。

Mangle表具有5个内建链(chains):PREROUTINGOUTPUTFORWARDINPUTPOSTROUTING4. Raw表Raw表⽤于处理异常,它具有2个内建链:PREROUTING chainOUTPUT chain5.⼩结⼆、IPTABLES 规则(Rules)规则的关键知识点:Rules包括⼀个条件和⼀个⽬标(target)如果满⾜条件,就执⾏⽬标(target)中的规则或者特定值。

如果不满⾜条件,就判断下⼀条Rules。

⽬标值(Target Values)在target⾥指定的特殊值:ACCEPT – 允许防⽕墙接收数据包DROP – 防⽕墙丢弃包QUEUE – 防⽕墙将数据包移交到⽤户空间RETURN – 防⽕墙停⽌执⾏当前链中的后续Rules,并返回到调⽤链(the calling chain)中。

iptables命令详解附实例

iptables命令详解附实例
-s 192.168.0.0/16 匹配来自 192.168.0.0/16 网络的数据包
-d:匹配目的地址,可以是 IP、NET、DOMAIN,也可以空
例如:
-d 202.106.0.20 匹配去往 202.106.0.20 的数据包
-d 202.106.0.0/16 匹配去往 202.106.0.0/16 网络的数据包
例如:
iptables -t filter -A INPUT -j DROP
在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则)
匹配所有访问本机 IP 的数据包,匹配到的丢弃
-I 链名 [规则号码]
INSERT,插入一条规则
例如:
iptables -I INPUT -j DROP
注意:
当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
-F [链名]
FLUSH,清空规则
例如:
iptables -F INPUT
清空 filter 表 INPUT 链中的所有规则
iptables -t nat -F PREROUTING
清空 nat 表 PREROUTING 链中的所有规则
注意:
1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
2、-P 设置了 DROP 后,使用 -F 一定要小心!!!
3、如果不写链名,默认清空某表里所有链里的所有规则
-[vxn]L
-L 列出规则
·流入、流出接口(-i、-o)
·来源、目的地址(-s、-d)
·协议类型 (-p)
·来源、目的端口(--sport、--dport)

Iptables 应用解析II---NATMangle

Iptables 应用解析II---NATMangle

Iptables 应用解析II---NAT/Mangle (ZZ)来源: ChinaUnix博客日期:2009.04.29 21:15(共有条评论) 我要评论Iptables 应用解析II---NAT/Mangle上篇Filter的解析已是一周前的事了,上周一直比较忙也没时间整理繁琐的笔记.呵呵,这周补上吧!接上篇Filter来介绍NAT Mangle的功能及用法.亦附上数据穿越IP层的示意图:1.NAT --- Network Address Translation 网络地址转换网络地址转换即改变数据包的源/目的地址,做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们的规则进行的。

属于一个流的包只会经过这个表一次。

如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作。

也就是说,余下的包不会再通过这个表,一个一个的被NAT,而是自动地完成。

这就是我们为什么不应该在这个表中做任何过滤的主要原因。

PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,OUTPUT链改变本地产生的包的目的地址,POSTROUTING链在包就要离开防火墙之前改变其源地址。

所以NAT分为SNAT DNAT SNAT作用只限于POSTROUTING 而DNAT作用于PREROUTING OUTPUTA.SNAT 源地址NAT常用于linux网关例:内网10.0.0.0/8 外网192.168.14.14/24 内网通过此外网机器访问外网#iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j SNAT --to 192.168.14.14 网关凡是来自内网10.0.0.0/8的包,把src换成192.168.14.14转发出若把-j SNAT --to192.168.14.14换为MASQUERDE 适合动态可变的IP,即根据本机路由选择IP 注:DNAT由网关192.168.14.14自动完成B.DNAT 目的地址NAT常用于解决内网的Server发布内网端口的映射例:内网:10.0.0.2/8:80 外网:192.168.14.14/24:8001#iptables -t nat -A PREROUTING -d 192.168.14.14 -p tcp --dport 8001 -j DNAT --to10.0.0.2:80凡目的地址为192.168.14.14:8001的数据包目的地址改为10.0.0.2:80注:--to [ipaddr]-[ipaddr] [:port-port] 可多IP(范围)作负载均衡(轮转),但存在单点故障#iptables -t filter -A FORWARD -p udp -j DROP#iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p udp --dport 53 -j DNAT --to192.168.14.254上面二条规则限制网关将不转发udp包,内网的任何DNS查询将被发往指定的企业DNS服务器,实现DNS的透明代理.#iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p tcp--dport 80 -j DNAT --to 192.168.14.14:3128 此句实现web透明代理#iptables -t nat -I PREROUTING -m mac --mac-source 00:1A:A0:98:B1:6E -j DROP#iptables -A FORWARD -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT 网关常用 #iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 端口NAT #iptables -A FORWARD -s 192.168.1.189 -m limit –limit 20/s -j ACCEPT#iptables -A FORWARD -s 192.168.1.189 DROP 以二句用在网关上限速..iprange模块的应用..#iptables -t nat -I PREROUTING -i eth2 -m iprange--src-range 192.168.1.102-192.168.1.102 -j ACCEPT #iptables -t nat -A PREROUTING -m iprange --src-range 192.168.0.20-192.168.0.255 -i eth1 -p tcp -m tcp --dport 1:65535 -j REDIRECT --to-ports 80string模块的应用..#iptables -I FORWARD -s 192.168.1.189 -m string --string "" -j DROP-m comment --comment "denny go to "#iptables -I FORWARD -m string --string "腾讯" -j DROP#iptables -I FORWARD -s 192.168.1.189 -m string --string "" -j DROP#iptables -I FORWARD -p tcp --sport 80 -m string --string "广告" -j DROPcomment模块的应用..#iptables -I FORWARD -s 192.168.1.189 -p tcp --dport 80 -j DROP-m comment --comment "the bad guy can not online"#iptables -I FORWARD -s 192.168.3.159 -m string --string "" -j DROP-m comment --comment "denny go to "其它常应用:#iptables -t nat -I PREROUTING -p udp --dport 53 -j ACCEPT#iptables -t nat -I PREROUTING -p tcp --dport 80 -j ACCEPT#iptables -t nat -I PREROUTING -p gre -j ACCEPT#iptables -t nat -I PREROUTING -p icmp -j ACCEPT#iptables -A INPUT -i tun+ -j ACCEPT#iptables -A FORWARD -i tun+ -j ACCEPT2.Mangle 数据包高级管理这个表主要用来mangle数据包。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于 iptables 入站出站以及NAT实例本文是自己工作上的iptables笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。

(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的)iptables 一些参数名称:四表五链:fifter表、NAT表、Mangle表、Raw表。

INPUT链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链INPUT链–处理来自外部的数据。

OUTPUT链–处理向外发送的数据。

FORWARD链–将数据转发到本机的其他网卡设备上。

PREROUTING链–处理刚到达本机并在路由转发前的数据包。

它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

(NAT表需要开启linux路由 net.ipv4.ip_forward = 1)POSTROUTING链–处理即将离开本机的数据包。

它会转换数据包中的源IP 地址(source ip address),通常用于SNAT(source NAT)。

OUTPUT链–处理本机产生的数据包。

iptables 新建时情况所有记录iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X开放22 SSH端口iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口)iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)例如一条比较完整的SSH端口限制:(意思为:从eth0进来的SSH访问,除了公司192.168.16.0/24不限制,其他的地址都限制为每个ip最多5个SSH连接,且只为NEW和ESTABLISHED的连接,其他的都拒接)iptables -A INPUT -i eth0 ! -s 192.168.16.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-above 5 -j REJECT----iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT (允许本机去ssh其他的服务器的22端口)iptables -A INPUT -p tcp --sport 22 -j ACCEPT设置默认规则为DROPiptables -P INPUT DROPiptables -P OUTPUT DROP此时占时不要service iptables save,先用客户端ssh连接一下服务器,看看可以连接吗?如果不行最起码还可以重启,这样规则没保存重启是不生效,如果保存了发现不通就麻烦一些了!当发现可以SSH的时候,我们就可以继续下面的步骤了!打开回环地址,为了本地访问,如本地访问数据库之类iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT打开服务器的ping功能,我觉得有必要打开,可以检测服务器状况iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT (此2条规则是允许本机ping外网的ip,不包括域名,其中8是icmp的请求,0是icmp的响应)iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT----iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT (此2条规则是允许外部ping本机)iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT允许内部ping外部的域名iptables -A INPUT -p udp --sport 53 -j ACCEPTiptables -A OUTPUT -p udp --dport 53 -j ACCEPT允许外部访问本机的80服务,且只允许新连接的和已经连接的会话(状态检测)iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT允许外部访问我本地多个端口如 8080,8081,8082,且只允许是新连接,已经连接的和已经连接的在延伸出新连接的会话iptables -A INPUT -p tcp -m multiport --dport 8080,8081,8082 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sport 8080,8081,8082 -m state --state ESTABLISHED -j ACCEPT允许外部访问本机81端口,且本机初始只允许有200个连接,超过了此数量,然后每秒新增加2个连接,如果访问超过此限制则拒接(此方式可以限制一些攻击)iptables -A INPUT -p tcp --dport 81 -m limit --limit 2/s --limit-burst 200 -j ACCEPTiptables -A OUTPUT -p tcp --sport 81 -j ACCEPT限制除用户192.168.16.99以外的IP连接数为50 (相当于可以给自己开特权^_^)iptables -A FORWARD -p tcp -s !192.168.16.99 -m connlimit --connlimit-above 50 -j REJECTTCP匹配扩展协议--tcp-flagsiptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK,RST SYN (表示SYN,FIN,ACK,RST的标识都检查,但只匹配SYN标识)iptables -A INPUT -p tcp --syn (如果这是为了匹配SYN标识位也可以写成这样,选项—syn相当于”--tcp-flags SYN,RST,ACK SYN”的简写。

)实例://nmap-xmasiptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP (检查所以的标识位,匹配到FIN URG PSH的丢弃)//nmap-pushiptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP (检查所以的标识位,匹配到SYN RST ACK FIN URG的丢弃)// Nulliptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP (检查所以的标识位,没标志位的丢弃)iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP(检查SYN,RST标识位,匹配到 SYN,RST的丢弃,SYN是建立连接,RST是重置连接,所以这样的包是有问题的)iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP (检查SYN,FIN标识位,匹配到 SYN,FIN的丢弃,SYN是建立连接,FIN是结束连接,所以这样的包是有问题的)iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROPiptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROPSNAT 和 DNATSNAT:假如我要让公司192.168.10.0/24段的地址都通过linux服务器的eth0 :123.123.123.123上网iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 123.123.123.123DNATGATEWAY eth0:123.123.123.123 eth1:192.168.10.1 内网主机:192.168.10.10 要使访问123.123.123.123的80 自动跳到192.168.10.10的80端口上iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to-destination 192.168.10.10:80iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.10 --dport 80 -j SNAT --to-source 192.168.10.1 (内网之间进行nat才加上)第一条:将外部数据包的目的地址改到内网主机的指定端口第二条:转发前,将外部源地址改为内网本地地址。

相关文档
最新文档