iptables常用语法与案例

--smile --smile     2022-12-21     376

关键词:

常用命令语法:
[[email protected] ~]# iptables [-t tables] [-L] [-nv]
选项与参数:
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的
filter
-L :列出目前的 table 的规则
-n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多!
-v :列出更多的信息,包括通过该规则的封包总位数、相关的网络接口等
范例:列出 filter table 三条链的规则
[[email protected] ~]# iptables -L -n
Chain INPUT (policy ACCEPT) <==针对 INPUT 链,且预设政策为可接受
target prot opt source destination <==说明栏
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
<==第 1 条规则
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
常用语法:
[[email protected] ~]# iptables [-AI 链名] [-io 网络接口] [-p 协议] \
> [-s 来源 IP/网域] [-d 目标 IP/网域] -j [ACCEPT|DROP|REJECT|LOG]
选项与参数:
-AI 链名:针对某的链进行规则的 "插入" 或 "累加"
-A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经
有四条规则,使用 -A 就可以加上第五条规则!
-I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关,请看底
下。
-io 网络接口:设定封包进出的接口规范
-i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链
配合;
-o :封包所传出的那个网络接口,需与 OUTPUT 链配合;
-p 协定:设定此规则适用于哪种封包格式
主要的封包格式有: tcp, udp, icmp 及 all
-s 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括
网域,
例如:IP : 192.168.0.100网域: 192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
若规范为『不许』时,则加上 ! 即可,例如:
-s ! 192.168.100.0/24 表示不许 192.168.100.0/24 之封包来源;
-d 目标 IP/网域:同 -s ,只不过这里指的是目标的 IP 或网域。
-j :后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)
及记录(LOG)
关于端口的语法
[[email protected] ~]# iptables [-AI 链] [-io 网络接口] [-p tcp,udp] \
> [-s 来源 IP/网域] [--sport 端口范围] \
> [-d 目标 IP/网域] [--dport 端口范围] -j [ACCEPT|DROP|REJECT]
选项与参数:
--sport 端口范围:限制来源的端口口号码,端口口号码可以是连续的,例如
1024:65535
--dport 端口范围:限制目标的端口口号码
事实上就是多了那个 --sport 及 --dport 这两个玩意儿,重点在那个 port 上面啦!
不过你得要特别注意,因为仅有 tcp 与 udp 封包具有端口,因此你想要使用 --dport,
--sport 时,得要加上 -p tcp 或 -p udp 的参数才会成功
状态语法
[[email protected] ~]# iptables -A INPUT [-m state] [--state 状态]
选项与参数:
-m :一些 iptables 的外挂模块,主要常见的有:
state :状态模块
mac :网络卡硬件地址 (hardware address)
--state :一些封包的状态,主要有:
INVALID :无效的封包,例如数据破损的封包状态
ESTABLISHED:已经联机成功的联机状态;
NEW :想要新建立联机的封包状态;
RELATED :这个最常用!表示这个封包是与我们主机发送出去的封包有关
范例:只要已建立或相关封包就予以通过,只要是不合法封包就丢弃
[[email protected] ~]# iptables -A INPUT -m state --state INVALID -j DROP
设置默认策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
 保存iptables规则 service iptables save
配置步骤
1.规则归零:清除所有已经存在的规则 (iptables -F...)
2. 预设政策:除了 INPUT 这个自定义链设为 DROP 外,其他为预设 ACCEPT;
3. 信任本机:由于 lo 对本机来说是相当重要的,因此 lo 必须设定为信任装
置;
4. 回应封包:让本机主动向外要求而响应的封包可以进入本机
(ESTABLISHED,RELATED)
5. 信任用户:这是非必要的,如果你想要让区网的来源可用你的主机资源时
1. 清除规则
iptables -F
iptables -X
iptables -Z
# 2. 设定政策
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# 3~5. 制订各项规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# 6. 写入防火墙规则配置文件
/etc/init.d/iptables save

 

 

 

iptables查看、添加、删除规则案例
1、查看
iptables -nvL –line-number
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
-n 不对ip地址进行反查,加上这个参数显示速度会快很多
-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到
2、添加
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
当前规则:
[[email protected] ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       all  --  192.168.1.1          0.0.0.0/0
2    DROP       all  --  192.168.1.2          0.0.0.0/0
3    DROP       all  --  192.168.1.4          0.0.0.0/0
添加一条规则到尾部:
[[email protected] ~]# iptables -A INPUT -s 192.168.1.5 -j DROP
再插入一条规则到第三行,将行数直接写到规则链的后面:
[[email protected] ~]# iptables -I INPUT 3 -s 192.168.1.3 -j DROP
查看:
[[email protected] ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       all  --  192.168.1.1          0.0.0.0/0
2    DROP       all  --  192.168.1.2          0.0.0.0/0
3    DROP       all  --  192.168.1.3          0.0.0.0/0
4    DROP       all  --  192.168.1.4          0.0.0.0/0
5    DROP       all  --  192.168.1.5          0.0.0.0/0
可以看到192.168.1.3插入到第三行,而原来的第三行192.168.1.4变成了第四行。
3、删除
删除用-D参数
删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):
[[email protected] ~]# iptables -D INPUT -s 192.168.1.5 -j DROP
有时候要删除的规则太长,删除时要写一大串,既浪费时间又容易写错,这时我们可以先使用–line-number找出该条规则的行号,再通过行号删除规则。
[[email protected] ~]# iptables -nv --line-number
iptables v1.4.7: no command specified
Try `iptables -h‘ or ‘iptables --help‘ for more information.
[[email protected] ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       all  --  192.168.1.1          0.0.0.0/0
2    DROP       all  --  192.168.1.2          0.0.0.0/0
3    DROP       all  --  192.168.1.3          0.0.0.0/0
删除第二行规则
[[email protected] ~]# iptables -D INPUT 2
4、修改
修改使用-R参数
先看下当前规则:
[[email protected] ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       all  --  192.168.1.1          0.0.0.0/0
2    DROP       all  --  192.168.1.2          0.0.0.0/0
3    DROP       all  --  192.168.1.5          0.0.0.0/0
将第三条规则改为ACCEPT:
[[email protected] ~]# iptables -R INPUT 3 -j ACCEPT
再查看下:
[[email protected] ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    DROP       all  --  192.168.1.1          0.0.0.0/0
2    DROP       all  --  192.168.1.2          0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
第三条规则的target已改为ACCEPT。

 

iptables案例手册

Linux防火墙Iptable如何设置只允许某个ip访问80端口,只允许特定ip访问某端口iptables常用实例备查(更新中)9个常用iptables配置实例 案例: http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html  查看详情

十iptables语法iptablesfilter表小案例iptablesnat表应用

                                 &n 查看详情

十iptables语法iptablesfilter表小案例iptablesnat表应用

                                 &n 查看详情

logstash语法常用案例解析

摘要简述logstash的常用插件,以及简单的使用案例一:基础运行建议使用supervisor来管理ELK中的各个组件,方便同一管理安装https://www.aolens.cn/?p=809   有讲解提供一个常用的配置:[program:logstash]command=/opt/logstash/bin/logstash&... 查看详情

iptables系列教程|iptables语法规则(代码片段)

iptables命令基本语法iptables[-ttable]command[链名][条件匹配][-j目标动作]以下是对iptables命令的拆分讲解:-ttable用来指明使用的表,有三种选项:filter,nat,mangle。若未指定,则默认使用filter表。command参数指定iptables对我们提交的规则... 查看详情

logstash语法常用案例解析

摘要此篇主要讲Filter插件,已经对nginx日志的各种处理实例接着上篇继续说插件1,Filter插件Grok:正则捕获Date:时间处理Mutate:数据修改Geoip:查询归类JSON:编解码Grok:解析和结构化任何文本。http://grokdebug.herokuapp.com/patterns# ... 查看详情

linux防火墙——iptables语法

一、语法:  iptables[-t表名]选项[链名][匹配条件][-j控制类型]  未指定表名时,默认用filter表;链名,控制类型要大写;除非设置默认策略,否则必须指定匹配条件;不指定链名时,默认表内所有链。二、常用的控制类型 ... 查看详情

iptables常用规则:屏蔽ip地址禁用ping协议设置nat与转发负载平衡自定义链

一、iptables:从这里开始删除现有规则iptables-F(OR)iptables--flush设置默认链策略iptables的filter表中有三种链:INPUT,FORWARD和OUTPUT。默认的链策略是ACCEPT,你可以将它们设置成DROP。iptables-PINPUTDROPiptables-PFORWARDDROPiptables-POUTPUTDROP你需要明... 查看详情

iptables详解:iptables匹配条件总结之二(常用扩展模块)

前文已经总结了iptables中的基本匹配条件,以及简单的扩展匹配条件,此处,我们来认识一些新的扩展模块。  iprange扩展模块之前我们已经总结过,在不使用任何扩展模块的情况下,使用-s选项或者-d选项即可匹配报文的... 查看详情

linux常用命令总结(语法+案例)建议收藏!(代码片段)

目录vi和vim开机、重启、防火墙相关操作用户管理帮助指令文件目录类时间日期类搜索查找类压缩和解压类组管理和权限管理crond任务调度RPM和YUMvi和vim快捷键使用案例:1)拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴ÿ... 查看详情

iptables系列教程|iptables语法规则(代码片段)

iptables命令基本语法iptables[-ttable]command[链名][条件匹配][-j目标动作]以下是对iptables命令的拆分讲解:-ttable用来指明使用的表,有三种选项:filter,nat,mangle。若未指定,则默认使用filter表。command参数指定iptables对我们提交的规则... 查看详情

java基础|java概述与基础语法案例

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。 查看详情

shell脚本从入门到实战(代码片段)

....第二个Shell脚本:多命令处理Shell中的变量系统变量1.常用系统变量2.案例实操自定义变量1.基本语法2.变量定义规则特殊变量:$n特殊变量:$#特殊变量:\\$*、\\$@特殊变量:$?运算符1.基本语法2.案例实操条件... 查看详情

iptables语法

iptables语法iptables-F清空规则如果想把当前规则保存到文件里面需要serviceiptablessave保存规则清空后需要保存一下,才是真的清空规则保存的路径是/etc/sysconfig/iptables如果不保存的话重启iptables后会重新还原回来[[email protected]~]#se... 查看详情

iptables防火墙

...n,源地址转换)是linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址(类似与Cisco的PAT协议)。 下面用一个具体的案例,来详细介绍SNAT的应用:案例环... 查看详情

iptables语法

规则保存路径/etc/sysconfig/iptables#iptables-F//清空规则#serviceiptablessave//保存规则#iptables-tfilter-nvL//-t指定表,默认是filter表#iptables-Z//可以把计算器清零#iptables-AINPUT-s192.168.188.1-ptcp--sport1234-d192.168.188.128--dp 查看详情

iptables详解:iptables扩展之udp扩展与icmp扩展

前文中总结了iptables的tcp扩展模块,此处,我们来总结一下另外两个跟协议有关的常用的扩展模块,udp扩展与icmp扩展。 udp扩展我们先来说说udp扩展模块,这个扩展模块中能用的匹配条件比较少,只有两个,就是--sport与--dport... 查看详情

iptables命令

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 语法iptables (选项)(参数)选项-t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从... 查看详情