iptables操作手册

合集下载

iptables命令参数

iptables命令参数

iptables命令参数iptables命令是Linux系统中用于设置防火墙规则的工具,它允许用户通过在内核中的网络数据包传输路径上添加或删除规则来过滤、修改和重定向网络数据包。

iptables命令有许多参数可以用来指定具体的操作和规则。

下面是一些常用的iptables命令参数:1. -A或--append:添加规则到规则链的末尾。

例如,`iptables -A INPUT -s 192.168.0.1 -j DROP`将会添加一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。

2. -I或--insert:在规则链内指定的位置插入规则。

例如,`iptables -I INPUT3 -s 192.168.0.1 -j DROP`将会在INPUT链的第3个位置插入一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。

3. -D或--delete:从规则链中删除规则。

例如,`iptables -D INPUT -s 192.168.0.1 -j DROP`将会删除INPUT链中所有来自IP地址为192.168.0.1的主机的入站连接的规则。

4. -P或--policy:设置默认策略。

例如,`iptables -P INPUT ACCEPT`将会将INPUT链的默认策略设置为接受所有入站连接。

5. -s或--source:指定源IP地址或地址段。

例如,`iptables -A INPUT -s 192.168.0.0/24 -j DROP`将会添加一个规则,禁止来自192.168.0.0/24网段的主机的所有入站连接。

6. -d或--destination:指定目标IP地址或地址段。

例如,`iptables -AOUTPUT -d 192.168.0.1 -j DROP`将会添加一个规则,禁止所有出站连接到IP地址为192.168.0.1的主机。

7. -p或--protocol:指定要过滤的传输层协议,如TCP、UDP或ICMP。

iptables的用法

iptables的用法

iptables的用法iptables是Linux系统中防火墙工具,用于配置、管理和过滤网络流量。

它可以用于设置各种规则,以控制网络传输,过滤入站和出站流量,并允许或拒绝特定的网络连接。

以下是iptables的常见用法:1. 查看当前的iptables规则:```iptables -L```2. 清除当前的iptables规则:```iptables -F```3. 允许特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j ACCEPT```4. 禁止特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j DROP```5. 允许特定端口的访问:```iptables -A INPUT -p tcp --dport <PORT_NUMBER> -j ACCEPT```6. 允许特定协议的访问:```iptables -A INPUT -p <PROTOCOL> -j ACCEPT```7. 配置端口转发:```iptables -t nat -A PREROUTING -p tcp --dport <SOURCE_PORT> -j DNAT --to-destination<DESTINATION_IP>:<DESTINATION_PORT>```8. 配置端口映射:```iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport<DESTINATION_PORT> -j SNAT --to-source <SOURCE_IP>```以上只是iptables的一些常见用法,它还提供了更多高级功能和选项,可以根据具体需求进行配置和使用。

iptables查看或添加规则

iptables查看或添加规则

iptables查看或添加规则iptables是一个用于Linux系统的防火墙工具,可以用于查看和管理网络数据包的流量。

它可以防止未经授权的访问,保护计算机和网络的安全。

一、查看iptables规则使用以下命令可以查看当前系统的iptables规则:```iptables -L```这个命令会列出当前系统中所有的iptables规则,包括输入、输出和转发规则。

每个规则包含了源IP地址、目标IP地址、协议类型、端口号等信息。

这些规则是按照优先级顺序排列的,从上到下依次检查,直到找到与数据包匹配的规则。

如果想查看某个特定链的规则,可以使用以下命令:```iptables -L <chain_name>```其中,<chain_name>是链的名称,比如INPUT、OUTPUT或FORWARD。

二、添加iptables规则使用以下命令可以添加iptables规则:```iptables -A <chain_name> -p <protocol> --dport <port> -j <target>```其中,<chain_name>是要添加规则的链的名称,比如INPUT、OUTPUT或FORWARD;<protocol>是要过滤的协议类型,比如tcp、udp;<port>是要过滤的端口号;<target>是规则匹配时要执行的操作,比如ACCEPT、DROP。

例如,要添加一个允许所有TCP流量通过80端口的规则,可以使用以下命令:```iptables -A INPUT -p tcp --dport 80 -j ACCEPT```这个命令将在INPUT链中添加一个规则,允许所有TCP流量通过80端口。

三、保存iptables规则为了避免系统重启后iptables规则丢失,需要将当前的规则保存到文件中。

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 masquerade规则

iptables masquerade规则

iptables masquerade规则iptables是一款在Linux系统上使用的防火墙工具,它能够控制网络流量,保护网络安全。

其中,masquerading(伪装)规则是一种特殊的规则,用于在网络地址转换(Network Address Translation,NAT)中隐藏主机的真实IP地址,使其看起来像是来自防火墙本身。

在本文中,将详细介绍iptables masquerade规则的设置方法和使用场景。

1. masquerade规则的基本概念masquerade规则的作用是将内部网络的私有IP地址转换为防火墙的公共IP地址,使内部网络能够访问外部网络,同时外部网络无法直接访问内部网络的主机。

这种转换过程隐藏了内部网络的真实IP地址,增强了网络安全性。

2. 设置masquerade规则的步骤设置iptables masquerade规则的步骤如下:步骤一:进入iptables的配置界面在Linux终端输入以下命令,进入iptables的配置界面:```sudo iptables -t nat -A POSTROUTING -o 外部网络接口 -j MASQUERADE```其中,`外部网络接口`是指连接外部网络的网络接口,比如eth0。

步骤二:保存iptables配置为了使设置的masquerade规则能够在系统重启后生效,需要将iptables配置保存。

在终端输入以下命令保存iptables配置:```sudo iptables-save > /etc/sysconfig/iptables```3. masquerade规则的使用场景(1) 在内部网络共享Internet连接当一个网络中的多台主机需要共享同一个Internet连接时,可以使用masquerade规则。

通过将内部网络IP地址转换为防火墙的公共IP 地址,可以实现多台主机共享同一个Internet连接,提高网络利用率。

iptables命令、规则、参数详解

iptables命令、规则、参数详解

iptables命令、规则、参数详解表 (table)包含4个表:4个表的优先级由高到低:raw-->mangle-->nat-->filterraw---RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。

一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.filter---这个规则表是预设规则表,拥有INPUT、FORWARD 和OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的理动作net----此规则表拥有prerouting和postrouting两个规则链,主要功能为进行一对一、一对多、多对多等网址转译工作(SNATDNAT)mangle--此规则表拥有prerouting、FORWARD、postrouting 三个规则链,除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(ITL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤)这时就必须将这些工作定义在mangles规则表中常用命令:-A 追加规则-->iptables -A INPUT-D 删除规则-->iptables -D INPUT 1(编号)-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则-N 新的规则-->iptables -N allowed 定义新的规则通用参数:-p 协议例:iptables -A INPUT -p tcp-s源地址例:iptables -A INPUT -s 192.168.1.1-d目的地址例:iptables -A INPUT -d 192.168.12.1-sport源端口例:iptables -A INPUT -p tcp --sport 22-dport目的端口例:iptables -A INPUT -p tcp --dport 22-i指定入口网卡例:iptables -A INPUT -i eth0-o指定出口网卡例:iptables -A FORWARD -o eth0-j 指定要进行的处理动作常用的ACTION:DROP:丢弃REJECT:明示拒绝ACCEPT:接受SNAT基于原地址的转换source--指定原地址比如我们现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1这个假设出来的外网地址:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1(外网有效ip)这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP.MASQUERADE(动态伪装)--家用带宽获取的外网ip,就是用到了动态伪装iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADEDNAT目标地址转换destination-指定目标地址iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.210.18访问80端口转换到100.2上MASQUERADE:源地址伪装REDIRECT:重定向:主要用于实现端口重定向MARK:打防火墙标记的RETURN:返回在自定义链执行完毕后使用返回,来返回原规则链。

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命令在Linux中配置防火墙和网络转发

如何使用iptables命令在Linux中配置防火墙和网络转发

如何使用iptables命令在Linux中配置防火墙和网络转发由于网络安全的重要性日益凸显,配置防火墙和网络转发成为Linux系统管理员必备的技能之一。

在Linux系统中,iptables命令提供了灵活的方式来配置防火墙规则和网络转发设置。

本文将介绍如何使用iptables命令来完成这些任务。

一、什么是iptables命令iptables是Linux操作系统中一个非常强大的防火墙工具,它可以通过管理网络数据包的流动来控制网络访问权限。

iptables命令可以根据预先定义的规则集过滤网络数据包,拒绝无效或危险的连接,从而保护系统的安全性。

二、基本概念与术语在开始使用iptables命令之前,我们需要了解一些基本的概念和术语。

1. 表(Table):iptables命令使用表来组织和管理规则。

常用的表有:filter、nat和mangle等。

2. 链(Chain):每个表都包含多个链,链是规则的组合。

常用的链有:INPUT、FORWARD和OUTPUT等。

3. 规则(Rule):规则是iptables命令的基本单位,它定义了针对网络数据包的动作和匹配条件。

4. 动作(Action):动作定义了对匹配到的数据包的处理方式,常见的动作有:ACCEPT、DROP和REJECT等。

5. 匹配条件(Match):匹配条件定义了规则在应用到数据包时需要满足的条件。

常见的匹配条件有:source、destination和protocol等。

三、配置防火墙规则配置防火墙规则是保护系统安全的第一步。

使用iptables命令可以轻松地添加、修改和删除防火墙规则。

1. 查看当前防火墙规则首先,我们需要查看当前的防火墙规则,可以使用以下命令:```iptables -L```该命令将列出当前的防火墙规则,包括表、链、规则和动作等信息。

2. 添加规则要添加一个防火墙规则,可以使用以下命令:```iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT```该命令将允许来自192.168.0.0/24网段的TCP连接访问本地的SSH 服务。

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

1iptables与firewalld的关系
RHEL7.0以后,使用firewalld服务取代了iptables服务,但是依然可以使用iptables服务,只是默认不开启了,iptables和firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具,是操作系统上的一种服务,将定义好的规则交给内核中的netfilter(网络过滤器)来读取,从而实现防火墙的功能,firewalld和iptables除了可以可以在inbond和outbond方向做策略限制以外,还能实现snat和dnat功能。

注意:firewalld和iptables同时只能运行一种服务,否则会出现不可预知的情况
2iptables安装
RHEL7.0以后,iptables默认不开启,需要安装iptables服务
安装完成后
3实验场景
3.1源地址转换
需求:
源地址1(172.16.202.15)需要访问公网目的地址(192.168.111.245),源地址2(172.16.202.16)不需要访问公网。

内网两台服务器,分别为源地址1(172.16.202.15)和源地址2(172.16.202.16),公网出口处有一台centos 7.1的双网卡服务器,一个接口接内网(172.16.202.14),一个接口接外网(192.168.111.63)。

源地址1上首先需要保证和iptables服务器能够互通,并且有去往192.168.111.245的路由,路由下一跳需要指向iptables内网接口(172.16.202.14),由iptables服务器做源nat,把源地址(172.16.202.15)nat成公网接口地址(192.168.111.63),从而可以访问目的地址(192.168.111.245)。

一、首先在源地址1服务器上配置去往192.168.111.245的路由
ip route add 192.168.111.245 via 172.16.202.14 //临时添加路由,重启网卡或者系统后,路由会丢失,建议做路由固化路由固化:在/etc/sysconfig/network-scripts目录下,新建一个route配置文件,vi route-eth0,新增一条路由,192.168.111.245/32 via 172.16.202.14,重启网卡即可生效
二、iptables服务器上,配置snat策略
iptables -t nat -A POSTROUTING -s 172.16.202.15/32 -d 192.168.111.245/32 -j SNAT --to 192.168.111.63
注释:
-t table table to manipulate (default: `filter') //
这个选项指定命令要操作的匹配包的表。

如果内核被配置为自动加载模块,这时若模块没有加载,系统将尝试为该表加载适合的模块。

这些表如下:filter,这是默认的表,包含了内建的链INPUT (处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。

nat //这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。

-A chain //在所选择的链末添加规则POSTROUTING //先路由再做nat
-s //源IP地址
-d //目的IP地址
-j SNAT //做源地址转换
--to //转换后的IP地址
此时,从源地址1服务器上去ping 192.168.111.245,结果如下:
提示destination host prohibited,说明路由可达,但是在中间
路径上被防火墙阻止了,源地址1本地服务器上,因为是出接口方向流量,所以默认情况下,不会被阻止,所以只能在iptables服务器上,被防火墙默认规则阻止了,所以只需要在iptables服务器上放开防火墙限制即可
三、iptables服务器上放开防火墙规则
前面提到过,iptables上默认的filter表中,分为三个规则链:INPUT,OUTPUT和FORWARD,其中INPUT负责处理入方向的包,OUTPUT负责处理本地生成出方向的包,FORWARD负责经过经过的数据包,从网络拓扑上可以看出来,源地址1(172.168.202.15)去访问目的地址(192.168.111.245),是经过iptables服务器,所以调用的iptables服务器的FORWARD表,所以只需要在iptables 服务器上FORWARD表中,增加一条规则即可
iptables -I FORWARD -j ACCEPT
如果不确定是调用的哪个规则链,也可以在INPUT和OUTPUT 方向都加上规则链,iptables -I INPUT -j ACCEPT,iptables -I OUTPUT -j ACCEPT
注意:以上二三两个步骤添加的nat规则和防火墙规则,都是临时的,重启iptables服务或重启系统后,nat规则和防火墙规则会丢失,可以使用命令保存:service iptables save,也可以手动修改配置文件,配置文件如下vi /etc/sysconfig/iptables:
四、打开ip_forward
出于安全考虑,Linux系统默认是禁止数据包转发的。

所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包,这个功能需要手动打开。

修改配置文件:vi /etc/sysctl.conf,增加一条:net.ipv4.ip_forward = 1
然后输入sysctl –p,使配置生效
注意:有些centos7.X的版本和centos6.x的版本开启路由转发的配置文件不一样,如果修改/etc/sysctl.conf不生效的话,需要修改下面这个配置文件,同样是在结尾增加一条:net.ipv4.ip_forward = 1
结果验证:
源地址1服务器(172.16.202.15)可以通目的地址(192.168.111.245),源地址2服务器(172.16.202.16)不能通目的地址
源地址1服务器:
源地址2服务器:
如果源地址2服务器(172.16.202.16)也需要和目的地址服务器(192.168.111.245)通信,只需要在iptables服务器上添加一条nat规则即可
iptables -t nat -A POSTROUTING -s 172.16.202.16/32 -d 192.168.111.245/32 -j SNAT --to 192.168.111.63
3.2目的地址转换
需求:
当clientA访问iptables服务器192.168.111.63的666端口时,目的nat 到serverA上,当当clientA访问iptables服务器192.168.111.63的777端口时,目的nat到serverB上(为了演示nat的效果,在server A和server B 上都开启web服务,访问666和777端口时,分别跳转到serverA的80和serverB的80端口上)
一、打开ip.forward功能
打开ip.forward功能请参照3.1章节
二、在iptables的filter表中的Forward链中添加规则:iptables -I
FORWARD -j ACCEPT //参照3.1章节
三、配置DNAT
iptables -t nat -A PREROUTING -p tcp -d 192.168.111.63 --dport 666 -j DNAT --to-destination 172.16.202.15:80 iptables -t nat -A PREROUTING -p tcp -d 192.168.111.63 --dport 777 -j DNAT --to-destination 172.16.202.16:80 注释:
当访问192.168.111.63:666端口时,做DNAT,跳转到172.16.202.15:80端口上
当访问192.168.111.63:777端口时,做DNAT,跳转到172.16.202.16:80端口上
四、ServerA和ServerB分别开启web服务,并且需要关闭iptables或
firewalld服务,或者在在iptables的filter表中的Input链中添加规则:
iptables -I INPUT -j ACCEPT
结果验证:
当访问192.168.111.63:666端口时,跳转到服务器A的80端口上
当访问192.168.111.63:777端口时,跳转到服务器B的80端口上。

相关文档
最新文档