linux命令(215)——iptables命令(代码片段)

恋喵大鲤鱼 恋喵大鲤鱼     2023-03-27     518

关键词:

文章目录

1.命令简介

iptables/ip6tables 是 IPv4/IPv6 包过滤和 NAT 的管理工具。

iptables/ip6tables 命令是 Linux 上常用的防火墙软件,是 netfilter 项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

iptables/ip6tables 均是 xtables-multi 的软链。

2.命令格式

iptables [-t table] -A|-C|-D chain rule-specification

ip6tables [-t table] -A|-C|-D chain rule-specification

iptables [-t table] -I chain [rulenum] rule-specification

iptables [-t table] -R chain rulenum rule-specification

iptables [-t table] -D chain rulenum

iptables [-t table] -S [chain [rulenum]]

iptables [-t table] -F|-L|-Z [chain [rulenum]] [options...]

iptables [-t table] -N chain

iptables [-t table] -X [chain]

iptables [-t table] -P chain target

iptables [-t table] -E old-chain-name new-chain-name

rule-specification = [matches...] [target]

match = -m matchname [per-match-options]

target = -j targetname [per-target-options]

表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
nat:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
security:该表用于 MAC (Mandatory Access Control)组网规则,例如由 SECMARK 和 CONNSECMARK 目标启用的规则。

规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

动作包括:
ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP 伪装(NAT),用于 ADSL。
LOG:日志记录。

3.选项说明

-t, --table <table>
	指定要操纵的表。

命令选项。

这些选项指定要执行的所需操作。这些在命令行上只能同时指定一个除非另有说明。对于长版本的命令和选项名称,可以只要能够和其他选项区别开来即可。

-A, --append <chain> <rule-specification>
	向规则链中添加条目。
-D, --delete <chain> <rule-specification>
-D, --delete <chain> <rulenum>
	从规则链中删除条目。
-I, --insert <chain> [rulenum] <rule-specification>
	向规则链中插入条目;
-R, --replace <chain> <rulenum> <rule-specification>
	替换规则链中的条目。
-L, --list [chain]
	显示规则链中已有的条目。
-F, --flush [chain]
	清除规则链中所有条目。
-Z, --zero [chain [rulenum]]
	清空规则链中的数据包计算器和字节计数器。
-N, --new-chain <chain>
	创建新的用户自定义规则链。
-P, --policy <chain> <target>
	定义规则链中的默认目标。
-X, --delete-chain [chain]
	删除用户定义的链。如果未指定链,则尝试删除表中的每个非内置链。
-h
	显示帮助信息;

参数型选项。

下面的参数组成了规则规范(在添加、删除、插入、替换和追加命令中使用)。

-p, --protocol <protocol>
	指定要匹配的数据包协议类型;
[!] -s, --source <address>[/<mask>][,...]
	指定要匹配的数据包源 IP 地址。
[!] -d, --destination <address>[/<mask>][,...]
	指定要匹配的数据包目的 IP 地址。
-m, --match <match>
	指定要使用的匹配项,即测试特定属性的扩展模块。匹配集构成了调用目标的条件。匹配将按照命令行中指定的顺序从前到后计算,并以短路方式工作,即如果一个扩展产生 false,则计算将停止。
-j, --jump <target>
	指定要跳转的目标。目标可以是用户定义的链(除了这个规则所在的链),可以是一个特殊的内置目标,它可以立即决定数据包的命运,也可以是一个扩展。如果在规则中省略了该选项(并且没有使用-g),那么匹配该规则将对数据包的命运没有影响,但规则上的计数器将增加。
-i, --in-interface <name>
	指定数据包进入本机的网络接口。
-o, --out-interface <name>
	指定数据包要离开本机所使用的网络接口。
-c, --set-counters <packets> <bytes>
	这使得管理员可以初始化数据包和规则的字节计数器(在 INSERT, APPEND,REPLACE 操作时)。

其他选项。

-v, --verbose
	详细的输出。如该选项使 list 命令显示接口名称、规则选项(如果有的话)和 TOS 掩码。
-n, --numeric
	数字输出。IP地址和端口号将以数字格式打印。默认情况下,程序将尝试将它们显示为主机名、网络名或服务(只要适用)。
--line-numbers
	列出规则时,在每条规则的开头添加行号,对应于该规则在链中的位置。

4.常用示例

(1)清除已有 iptables 规则。

iptables -F

(2)删除指定的用户自定义链。

iptables -X

删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。

(3)把所有链的包及字节的计数器清空。

iptables -Z

(4)允许本地回环接口,即运行本机访问本机。

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

(5)允许已建立的或相关链的通行。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

(6)允许所有本机向外的访问。

iptables -A OUTPUT -j ACCEPT

(7)允许访问 22 端口。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

(8)禁止其他未允许的规则访问。

iptables -A INPUT -j REJECT

(9)禁止其他未允许的规则转发。

iptables -A FORWARD -j REJECT

(10)屏蔽单个 IP 数据包。

iptables -I INPUT -s 172.16.0.88 -j DROP

(11)封整个段即从 172.16.0.1 到 172.16.0.254 的数据包。

iptables -I INPUT -s 172.16.0.0/24 -j DROP

(12)查看已添加的 iptables 规则。

iptables -L -n -v
Chain INPUT (policy ACCEPT 8385K packets, 1772M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 8434K packets, 1290M bytes)
 pkts bytes target     prot opt in     out     source               destination

(13)删除已添加的 iptables 规则。

将所有 iptables 以序号标记显示。

iptables -L -n --line-numbers

比如要删除 INPUT 里序号为 9 的规则。

iptables -D INPUT 9

(14)清空 filter 表 INPUT 所有规则。

iptables -t filter -F INPUT

(15)设置 filter 表 INPUT 默认规则是 DROP。

iptables -t filter -P INPUT DROP

参考文献

iptables(8) - Linux manual page - man7.org

linux命令(216)——iptables-save命令(代码片段)

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介iptables-save/ip6tables-save转储iptables规则。iptables-save和ip6tables-save用于转储IP或IPv6表在容易解析的格式或STDOUT或到指定的文件。iptables/ip6tables均是xtables-multi的软... 查看详情

linux防火墙iptables命令详解

【转:原文链接】iptables-Fiptables-Xiptables-F-tmangleiptables-tmangle-Xiptables-F-tnatiptables-tnat-X首先,把三个表清空,把自建的规则清空。iptables-PINPUTDROPiptables-POUTPUTDROPiptables-PFORWARDACCEPT设定INPUT、OUTPUT的默认策略为DROP, 查看详情

linux命令(217)——iptables-restore命令(代码片段)

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介iptables-restore恢复IP表。ip6tables-restore恢复IPv6表。iptables-restore和ip6tables-restore用于从STDIN或文件中指定的数据恢复IP和IPv6表。iptables-restore和ip6tables-restore均是xta... 查看详情

linux命令—iptables

作用:用于IP包的过滤和实现NAT.表和链常用的表有2个:filter和nat.每张表又包含多条链,每条链就是规则序列.filter表包含INPUT,FORWARD,OUTPUT链.nat表包含PREROUTING,OUTPUT,POSTROUTING链.接收到数据包的处理过程本机收到数据包,由nat.... 查看详情

linux防火墙不能识别命令:iptables:unrecognizedservice

...。二、快速安装iptablesapt-getinstalliptables//Debian,Ubuntu使用此命令yuminstalliptables//Linux,CentOS使用此命令三安装完成后就可以关闭了serviceiptablesstop参考技术Aiptables没添加到服务里,要添加到服务里才能使用service来操作Iptables,你查查怎... 查看详情

linux防火墙iptables命令详解和举例

网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能有所帮助。iptables-Fiptables-Xiptables-F-tmangleiptables-tmangle-Xiptables-F-tnatiptables-tnat-X首先,把三个表清空,把自建的规则清空。iptables-PINPUTDROPiptables-POU... 查看详情

linux:iptables命令行操练(代码片段)

目录1.命令行手册查缺补漏2.开始练习,从最陌生的参数练习开启2.1--list-rules -S:打印链或所有链中的规则2.2--zero-Z 链或所有链中的零计数器 2.3 --policy -P修改默认链的默认规则2.4--new-N接下来练习添加和删除自定义链1.命令... 查看详情

linuxiptables常用命令

iptables 是Linux中重要的访问控制手段,是俗称的 Linux防火墙系统的重要组成部分。这里记录了iptables防火墙规则的一些常用的操作指令。下面的操作以CentOS为基础介绍,应该对不同的Linux发行版都差不多。在CentOS5.x和6.x中... 查看详情

linux命令(216)——iptables-save命令(代码片段)

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介iptables-save/ip6tables-save转储iptables规则。iptables-save和ip6tables-save用于转储IP或IPv6表在容易解析的格式或STDOUT或到指定的文件。iptables/ip6tables均是xtables-multi的软... 查看详情

linux命令(217)——iptables-restore命令(代码片段)

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介iptables-restore恢复IP表。ip6tables-restore恢复IPv6表。iptables-restore和ip6tables-restore用于从STDIN或文件中指定的数据恢复IP和IPv6表。iptables-restore和ip6tables-restore均是xta... 查看详情

iptables命令

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

linux命令iptables-tnat

参考技术Aiptables-tnat-vnL是什么命令?用详细方式列出nat表所有链的所有规则,只显示IP地址和端口号iptables-L粗略列出filter表所有链及所有规则iptables-tnat-vxnLPREROUTING用详细方式列出nat表PREROUTING链的所有规则以及详细数字,不反解i... 查看详情

linux上关于iptables

有几个命令:1、serviceiptablesstaus 2、serviceiptablesstart  3、serviceiptablesrestart 有个配置文件/ect/sysconfig/iptables  执行第一条命令的时候发现没有任何反应,到/ect/sysconfig/目录下也没有iptables这个文件,应该是ipta 查看详情

linux查看防火墙规则的命令

参考技术A在Linux系统中可以使用iptables命令查看和配置各种防火墙规则。当然了,在配置不同功能的防火墙规则时会带有不同的具体参数。 参考技术Bserviceiptablesstatus可以查看到iptables服务的当前状态。但是即使服务运行了,防火... 查看详情

linux怎么禁止访问某个ip

在服务器上进行如下命令操作进行规则设置即可:#iptables-AINPUT-sip段/网络位数-jDROP例如:禁止172.16.1.0/24网段访问服务器,直接在服务器上用命令就可以实现#iptables-AINPUT-s172.16.1.0/24-jDROP(添加规则,所有来自这个网段的数据都丢弃... 查看详情

如何在linux下大量屏蔽恶意ip地址

...防火墙屏蔽的话:打开文件,然后根据你的情况把下面的命令修改并保存vi/etc/sysconfig/iptables单个IP的命令是iptables-IINPUT-s59.151.119.180-jDROP封IP段的命令是iptables-IINPUT-s211.1.0.0/16-jDROP封整个段的命令是iptables-IINPUT-s211.0.0.0/8-jDROP封几个... 查看详情

iptables-linux(ls)-inode

Part1:iptables   环境:centos6.7   Part2:linuxls命令   当输出的内容超出一屏时,可以使用管道(|)结合more命令来实现分屏显示1ls|more按enter键是向上滚动一行按空格键是向上滚动一页  ls  命令选项(非必选项)  -a列... 查看详情

如何在linux中启动/停止和启用/禁用firewalld和iptables防火墙

...tables-L查看END关闭iptables服务如果要关闭iptables,可以通过命令/etc/init.d/iptablesstop停止除此之外,iptables的服务名称也叫iptables。可以通过serviceiptablesstop来停止关闭自动启动的iptables对于以上命令,虽然关闭了iptables。但是如果设置... 查看详情