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 的使用方法,我们可以借助以下口诀来帮助记忆。

下面将会介绍这个口诀以及对应的详细解释。

一、清空规则:iptables -F这个口诀的意思是清空所有的防火墙规则。

当我们需要重新设置规则时,可以使用该命令将现有的规则清空。

二、允许本地回环:iptables -A INPUT -i lo -j ACCEPT这个口诀的意思是允许本地回环地址的访问。

本地回环地址是指主机本身的 IP 地址,通过这个规则可以保证主机自身的服务可以正常运行。

三、允许已建立的连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT这个口诀的意思是允许已建立的连接通过防火墙。

防火墙默认会拦截所有的连接请求,但是对于已经建立的连接,我们需要允许它们通过防火墙。

四、允许 ICMP 协议:iptables -A INPUT -p icmp -j ACCEPT这个口诀的意思是允许 ICMP 协议的数据包通过防火墙。

ICMP 协议用于网络诊断和错误报告,允许它可以帮助我们更好地了解网络的状态和问题。

五、允许 SSH 连接:iptables -A INPUT -p tcp --dport 22 -j ACCEPT这个口诀的意思是允许 SSH 连接通过防火墙。

SSH 是一种安全的远程登录协议,通过这个规则可以允许从外部网络安全地登录到主机。

六、允许 HTTP 和 HTTPS 访问:iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT这个口诀的意思是允许 HTTP 和 HTTPS 的访问通过防火墙。

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 iptables是Linux的防⽕墙管理⼯具⽽已,真正实现防⽕墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进⾏防⽕墙过滤等操作 Netfilter模块: 它是主要的⼯作模块,位于内核中,在⽹络层的五个位置(也就是防⽕墙四表五链中的五链)注册了⼀些钩⼦函数,⽤来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的规则:匹配之后,进⾏相应的处理ACCEPT、DROP等等。

下⾯这张图很明了的说明了Netfilter和iptables之间的关系⼆、四表五链(重要) 四表五链: 链就是位置:共有五个进路由(PREROUTING)、进系统(INPUT) 、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING); 表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放⾏、丢弃、转发还是修改等等操作。

2.1. 具体的四表filter表——过滤数据包Nat表——⽤于⽹络地址转换(IP、端⼝)Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOSRaw表——决定数据包是否被状态跟踪机制处理2.2. 具体的五链INPUT链——进来的数据包应⽤此规则链中的策略OUTPUT链——外出的数据包应⽤此规则链中的策略FORWARD链——转发数据包时应⽤此规则链中的策略PREROUTING链——对数据包作路由选择前应⽤此链中的规则(所有的数据包进来的时侯都先由这个链处理)POSTROUTING链——对数据包作路由选择后应⽤此链中的规则(所有的数据包出来的时侯都先由这个链处理)2.3. 四表五链之间的关系三、iptables语法参数3.1.iptables语法格式iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]3.2.iptables常⽤参数-P 设置默认策略:iptables-P INPUT (DROP|ACCEPT)-F 清空规则链-L 查看规则链-A 在规则链的末尾加⼊新规则-I num 在规则链的头部加⼊新规则-D num 删除某⼀条规则-s 匹配来源地址IP/MASK,加叹号"!"表⽰除这个IP外。

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规则丢失,需要将当前的规则保存到文件中。

iptables加规则

iptables加规则

iptables加规则iptables是一个强大的Linux防火墙工具,可以用来配置、管理网络规则,控制网络流量和保护系统安全。

通过添加规则,可以限制或允许特定的网络连接和通信。

以下是iptables加规则的相关参考内容,涵盖了常见的使用场景和示例:1. 设置默认规则:iptables有三个默认规则:ACCEPT(接受)、DROP(丢弃)和REJECT(拒绝)。

例如,设置默认规则为DROP:`iptables -P INPUT DROP`、`iptables -P FORWARD DROP`、`iptables -P OUTPUT DROP`。

2. 允许特定IP或IP范围:通过添加规则,可以允许特定的IP或IP范围通过防火墙。

例如,允许IP为192.168.0.1通过防火墙:`iptables -A INPUT-s 192.168.0.1 -j ACCEPT`。

3. 允许特定端口:可以通过添加规则来允许特定的端口通过防火墙。

例如,允许TCP协议的端口22通过防火墙:`iptables -A INPUT -p tcp --dport 22 -j ACCEPT`。

4. 防止SYN Flood攻击:SYN Flood攻击是一种常见的DoS(拒绝服务)攻击,使用大量虚假的TCP连接请求,耗尽系统资源。

可以通过限制每秒钟接受的新的TCP连接请求数量来防止SYN Flood攻击:```iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP```5. 设置反向链:反向链用于处理出站连接的流量,可以通过添加规则来配置。

例如,允许本地主机连接到外部网络:`iptables -A OUTPUT -j ACCEPT`。

6. 防止DDoS攻击:DDoS(分布式拒绝服务)攻击是一种通过使用多个计算机或设备来同时发送大量请求,使目标系统负载过载的攻击方式。

iptables永久保存规则

iptables永久保存规则

iptables永久保存规则
在Linux系统中,如果您想要iptables规则永久保存,可以按照如下步骤操作:
1. 在命令行下输入以下命令来保存iptables规则:
$ sudo /sbin/service iptables save
这将把iptables规则保存为一个文件,文件名通常是
/etc/sysconfig/iptables。

2. 如果您想要手动编辑iptables规则,请先备份当前规则:$ sudo /sbin/iptables-save > iptables-backup.txt
3. 现在您可以编辑iptables规则文件了(通常是
/etc/sysconfig/iptables)。

请注意,修改完规则后,需要通过以下命令使规则生效:
$ sudo /sbin/service iptables restart
或者
$ sudo /sbin/iptables-restore < /etc/sysconfig/iptables
这样就能够将新的iptables规则加载到系统中了。

4. 最后,为了确保iptables规则在系统启动时自动加载,您需
要编辑/etc/rc.local文件,并在文件末尾添加以下一行:
/sbin/service iptables start
保存文件并重启系统,新的iptables规则应该已经生效了。

iptables开启与关闭

iptables开启与关闭

iptables开启与关闭1) 重启后生效开启: chkconfig iptables on关闭: chkconfig iptables off2) 即时生效,重启后失效开启: service iptables start关闭: service iptables stop需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

在开启了防火墙时,做如下设置,开启相关端口,修改/etc/sysconfig/iptables 文件,添加以下内容:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT一、开启SSH以root用户登录Linux,打开终端,运行:/etc/init.d/sshd restrat二、关闭防火墙1.在终端运行 setup2,.选择 firewall 回车3.按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择4.按tab键切换到quit,按空格件选择1、ps -ef |grep ssh看看进程是不是存在。

2、netstat -anp |grep ssh看看端口是不是默认22还有,你在windows下telnet 他的22端口。

看看提示是什么?还有不要关闭,再你linux系统里面运行netstat -an |grep 你的ip看看建立连接没删除虚拟网卡ifconfig eth1 downrm /etc/sysconfig/network-scripts/eth1。

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

Page 17/38
IPTABLES匹配规则

-P

通讯协议,例如TCP/UDP/ICMP/ALL,ALL代表所有通讯协议 来源位置,例如主机名/IP地址/网段 目的位置,例如主机名/IP地址/网段 针对从哪个网卡进入的数据包,例如eth0/eth1/ppp0 针对从哪块网卡发出的数据包,例如eth0/eth1/ppp0 来源端口,端口号或端口范围 目标端口,端口号或端口范围
Page 15/38
IPTABLES操作命令
-Z [链名] FLUSH,将链中拦截封包统计数量及总流量大小归零 例如: iptables -Z FILTER 清空 filter 链中的所有统计数据包数量
iptables -t nat -Z PREROUTING 清空 nat 表 PREROUTING 链中的所有封包数量

Page 3/38
IPTABLES介绍 Iptables & kernel Kernel 2.4 2.6 netfilter/iptables 关系

Page 4/38
IPTABLES的表,链及规则
Page 5/38
IPTABLES过滤封包流程
注意: 1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条 2、按号码匹配删除时,确保规则号码 ≤ 已有规则数,否则报错 3、按内容匹配删除时,确保规则存在,否则报错
Page 11/38
IPTABLES操作命令
命令 -I <链名> [规则号码] INSERT,插入一条规则 例如: iptables -I INPUT -j DROP 在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条) iptables -I INPUT 3 -j DROP 在 filter 表的 INPUT 链里插入一条规则(插入成第 3 条) 注意: 1、-t filter 可不写,不写则自动默认是 filter 表 2、-I 链名 [规则号码],如果不写规则号码,则默认是 1 3、确保规则号码 ≤ (已有规则数 + 1),否则报错
Page 12/38
IPTABLES操作命令
-R <链名> <规则号码> <具体规则内容> REPLACE,替换一条规则 例如: iptables -R INPUT 3 -j ACCEPT 将原来编号为 3 的规则内容替换为“-j ACCEPT”
注意: 确保规则号码 ≤ 已有规则数,否则报错
Page 13/38
iptables -A INPUT -m state --state RELATED,ESTABLISHED \ -j ACCEPT
允许连接出去后对方主机回应的数据包
Page 26/38
MAC
-m mac --mac-source MAC 匹配某个 MAC 地址 例如: iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx \ -j DROP 阻断来自某 MAC 地址的数据包,经过本机路由 iptables –P FORWARD DROP iptables -A FORWARD–s 192.168.0.3 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT iptables -A FORWARD–s 192.168.0.2 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT IP和MAC绑定 注意: 报文经过路由后,数据包中原有的 mac 信息会被替换,所以在路由后的 iptables 中使用 mac 模块是没有意义的
Page 8/38

iptables-save
查看iptables规则
iptables –nvL
查看默认filter表中的规则及顺序


iptables –t nat –vxnL
指定查看nat表中的规则及顺序
iptables –P INPUT DROP
指定filter表中input链默认规则为丢弃,默认规
Page 27/38
LIMIT
-m limit --limit 匹配速率 [--burst 缓冲数量] 用一定速率去匹配数据包 例如:
iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT iptables -A FORWARD -d 192.168.0.1 -j DROP
Page 6/38
IPTABLES的表,链及规则
Page 7/38
IPTABLES语法组成

iptables [-t 要操作的表] <操作命令> [要操作的链] [规则号码] [匹配条件] [-j 匹配到以后的动作]
iptables –t filter –A INPUT –s 192.168.0.0/24 –d 127.0.0.1 –J DROP 对所有来自192.168.0.0网段的到达本机的数据包全部丢弃 iptables –t nat -D INPUT 3 删除nat表中第三条规则,如果没有指定哪张表,默认使用filter表
注意: --sport、--dport 必须联合 -p 使用,必须指明协议类型是什么 (后面附加模块会有更多匹配规则)
Page 20/38
IPTABLES处理动作
Page 21/38
IPTABLES处理动作

ACCEPT

允许通过
丢弃 来源地址转换
DROP



SNAT

DNAT

目标地址转换

Page 25/38
STATE
-m state --state 状态 状态:NEW、RELATED、ESTABLISHED、INVALID NEW:有别于 tcp 的 syn ESTABLISHED:连接态 RELATED:衍生态,与 conntrack 关联(FTP) INVALID:不能被识别属于哪个连接或没有任何状态 例如:
-S

-D



-I

-O

--SPORT

--DPORT

!匹配本规则之外的的所有数据包
Page 18/38
IPTABLES匹配规则
Page 19/38
IPTABLES匹配规则
1、端口匹配 -p udp --dport 53 匹配网络中目的地址是 53 的 UDP 协议数据包 2、地址匹配 -s 10.1.0.0/24 -d 172.17.0.0/16 匹配来自 10.1.0.0/24 去往 172.17.0.0/16 的所有数据包 3、端口和地址联合匹配 -s 192.168.0.1 -d -p tcp --dport 80 匹配来自 192.168.0.1,去往 的 80 端口的 TCP 协议数据包
Page 14/38
IPTABLES操作命令
-F [链名] FLUSH,清空规则 例如: iptables -F INPUT 清空 filter 表 INPUT 链中的所有规则 iptables -t nat -F PREROUTING 清空 nat 表 PREROUTING 链中的所有规则
注意: 1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则 2、-P 设置了 DROP 后,使用 -F 一定要小心!!! 3、如果不写链名,默认清空某表里所有链里的所有规则
IPTABLES操作命令
-L [链名] LIST,列出规则 v:显示详细信息,包括每条规则的匹配包数量和匹配字节数 x:在 v 的基础上,禁止自动单位换算(K、M) n:只显示 IP 地址和端口号码,不显示域名和服务名称
例如: iptables -L 粗略列出 filter 表所有链及所有规则
iptables -t nat -vnL 用详细方式列出 nat 表所有链的所有规则,只显示 IP 地址和端口号 iptables -t nat -vxnL PREROUTING 用详细方式列出 nat 表 PREROUTING 链的所有规则以及详细数字,不反解 在配置iptables 要经常使用此命令查看规则之间顺序有否冲突
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 将源地址是 192.168.0.0/24 的数据包进行地址伪装
192.168.0.1
Page 23/38
IPTABLES规则总结
Page 2ห้องสมุดไป่ตู้/38
IPTABLES附加模块 按包状态匹配 (state) 按来源 MAC 匹配(mac) 按包速率匹配 (limit) 多端口匹配 (multiport)
则优先级最低,也就是当其它规则都不能匹配时 才使用默认规则
Page 9/38
IPTABLES操作命令
-A <链名> APPEND,追加一条规则(默认是放到当前规则的最后)
例如: iptables -t filter -A INPUT -j DROP
在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则) 匹配所有访问本机 IP 的数据包,匹配到的丢弃
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1 将内网 192.168.0.0/24 的原地址修改为 1.1.1.1,用于 NAT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10 同上,只不过修改成一个地址池里的 IP iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT –to 把从 ppp0 进来的要访问 TCP/80 的数据包目的地址改为 192.168.0.1
相关文档
最新文档