iptables总结

1 iptables概述

iptables会对网络数据包进行匹配,符合条件的,则根据相应的处理动作来处理。
防火墙,限流限速等功能都可以用iptables完成。
iptables包含四个表,五个链。
表按照对数据包的操作划分,链按照hook点划分
规则按顺序挂载在链上,链保存到表中。
实际运行时,一条完整的链可能有多种表的规则,例如:
PREROUTING链上,有mangle、nat两个表的规则,则先由mangle表处理,再由nat表处理。


2 iptables基本语法

一条iptables规则基本由如下语句来定义:

iptables [-t table] command chain [creteria] -j action

其中:
table:指定该规则要加入的表,有filter、nat、mangle三个表可选,默认为filter,可以缺省
command:指定该规则的行为,不能缺省
chain:指定规则属于的链,有PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD供选择,不能缺省
creteria:指定匹配条件,可以缺省
action:指定处理动作,有ACCEPT、DENY、DROP、REJECT、SNAT、DNAT,不能缺省

具体的用法有如下几类:

iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)

2.1 table

表名说明
filter用于过滤数据包
有3个链:
INPUT:针对目的地址为本地的包
OUTPUT:针对源地址为本地的包
FORWARD:针对剩余的包
nat用于网络地址转换
有3个链
PREROUTING:当数据包刚到达防火墙时改变其目标地址
POSTROUTING:当数据包即将离开防火墙时改变其源地址
OUTPUT:改变本地产生的包的目的地址
mangle用于操作数据包,改变包或包头内容
有5个链,任意阶段都可以操作
raw常用于跳过处理,提高性能
有2个链:
PREROUTING:对接收到的包全部放行
OUTPUT:对发出的包全部放行

优先级方面,raw>mangle>nat>filter。


2.2 command

命令说明
-A --append在所选择的chain末尾加入规则
-C --check检查规则是否存在
-D --delete在所选择的链中删除指定序号的规则
-I --insert在指定链的指定位置上插入规则,默认插第一个
-R --replace替换指定位置的规则
-L --list列出所选链的全部规则
-F --flush清空所选的链,没有指定则清空全部链
-Z --zero把指定链的所有计数器归零
-N --new-chain新建自定义链
-X --delete-chain删除自定义链
-E --rename-chain重命名自定义链
-P --policy设置默认策略

2.3 chain

按照先后顺序:

链名说明
PREROUTING在数据包进入路由表之前生效
INPUT通过路由表之后,对目的地址为本机的数据包生效
FORWARD通过路由表之后,对目的地址不是本机的数据包生效
OUTPUT由本机产生,向外转发时生效
POSTROUTING数据包发送到网卡之前生效

2.4 creteria

匹配项说明
-s --source [!]IP匹配源地址,!表示取反
-d --destination [!]IP匹配目的地址
-p --protocol [!]proto匹配协议,tcp/udp/icmp
-i --in-interface if匹配从if网口进入的包
-o `–out-interface if匹配从if网口出去的包`

当指定协议之后,会有隐含匹配项

tcp隐含匹配项说明
--sport port匹配源端口
--dport port匹配目的端口
--tcp-flags tcp标志位
udp隐含匹配项说明
--sport port匹配源端口
--dport port匹配目的端口
icmp隐含匹配项说明
--icmp-type8/request 表示请求,0/reply 表示响应

3 常见场景实例


4 iptables文档

Usage: 
iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)

Commands:
Either long or short options are allowed.
  --append  -A chain        Append to chain
  --check   -C chain        Check for the existence of a rule
  --delete  -D chain        Delete matching rule from chain
  --delete  -D chain rulenum
                Delete rule rulenum (1 = first) from chain
  --insert  -I chain [rulenum]
                Insert in chain as rulenum (default 1=first)
  --replace -R chain rulenum
                Replace rule rulenum (1 = first) in chain
  --list    -L [chain [rulenum]]
                List the rules in a chain or all chains
  --list-rules -S [chain [rulenum]]
                Print the rules in a chain or all chains
  --flush   -F [chain]      Delete all rules in  chain or all chains
  --zero    -Z [chain [rulenum]]
                Zero counters in chain or all chains
  --new     -N chain        Create a new user-defined chain
  --delete-chain
            -X [chain]      Delete a user-defined chain
  --policy  -P chain target
                Change policy on chain to target
  --rename-chain
            -E old-chain new-chain
                Change chain name, (moving any references)
Options:
    --ipv4  -4      Nothing (line is ignored by ip6tables-restore)
    --ipv6  -6      Error (line is ignored by iptables-restore)
[!] --protocol  -p proto    protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]
                source specification
[!] --destination -d address[/mask][...]
                destination specification
[!] --in-interface -i input name[+]
                network interface name ([+] for wildcard)
 --jump -j target
                target for rule (may load target extension)
  --goto      -g chain
                              jump to chain with no return
  --match   -m match
                extended match (may load extension)
  --numeric -n      numeric output of addresses and ports
[!] --out-interface -o output name[+]
                network interface name ([+] for wildcard)
  --table   -t table    table to manipulate (default: `filter')
  --verbose -v      verbose mode
  --wait    -w [seconds]    wait for the xtables lock
  --line-numbers        print line numbers when listing
  --exact   -x      expand numbers (display exact values)
[!] --fragment  -f      match second or further fragments only
  --modprobe=<command>      try to insert modules using this command
  --set-counters PKTS BYTES set the counter during insert/append
[!] --version   -V      print package version.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux iptables是一个基于内核的防火墙工具,它可以通过配置规则表来控制网络流量的传入和传出。iptables可以被用来保护计算机免受恶意攻击和未经授权的访问。它使用规则来决定如何处理数据包,可以允许或拒绝特定类型的流量。 在设置iptables时,一般会使用命令来定义规则。例如,可以使用命令`iptables -P INPUT DROP`和`iptables -P FORWARD DROP`来将默认规则设置为拒绝所有输入和转发的流量。这意味着除非明确允许,否则所有的数据包都会被丢弃。 此外,还可以使用命令`iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT`来允许通过TCP协议的端口20和21的流量进入系统。同样地,可以使用命令`iptables -I FORWARD -d 192.168.80.0/24 -p tcp --dport 24500:24600 -j DROP`来拒绝转发到目标IP地址为192.168.80.0/24且端口范围为24500至24600的TCP流量。 iptables可以通过配置不同的规则表(如raw、mangle、nat和filter)来实现不同的功能。这些规则在配置后会立即生效,无需重新启动服务。此外,还可以创建自定义的链来更好地组织规则。 总结来说,Linux iptables是一个强大的防火墙工具,通过配置规则表和链,可以控制网络流量的传入和传出,从而保护计算机免受恶意攻击和未经授权的访问。通过设置默认规则和特定的规则,可以选择允许或拒绝特定类型的流量进入或离开系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux——iptables防火墙](https://blog.csdn.net/nwp0611/article/details/130992009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [防火墙之iptables](https://blog.csdn.net/zmac111/article/details/117226578)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值