linux命令—iptables

gzming      2022-02-09     613

关键词:

作用:用于 IP 包的过滤和实现 NAT.

表和链

常用的表有2个:filternat. 每张表又包含多条链,每条链就是规则序列.

  • filter 表包含 INPUTFORWARDOUTPUT 链.
  • nat 表包含 PREROUTINGOUTPUTPOSTROUTING 链.

接收到数据包的处理过程

  1. 本机收到数据包,由 nat.PREROUTING 先进行处理;
  2. 如果数据包的目的地址是本机,则交由 filter.INPUT 进一步处理;然后将数据包交给本机上层协议栈.
  3. 如果数据包的目的地址不是本机,则交由 filter.FORWARD 进一步处理;然后交由 nat.POSTROUTING 进行处理.

发送数据包的处理过程

  1. 数据包先后经过 nat.OUTPUTfilter.OUTPUT 进行处理;
  2. 然后交由 nat.POSTROUTING 进行处理.

常用选项

  • -t: 指定要处理哪张表,默认是 filter.
  • -n: 以数字形式显示地址和端口号.

规则组成

  • -p protocol: 指定协议,可以取指为 tcp, udp, icmp.
  • [! ]-s address[/mask]: 指定源地址,可以是主机名、网络名和IP地址. '!' 表示取反.
  • [! ]-d address[/mask]: 指定目的地址,可以是主机名、网络名和IP地址.
  • [! ]-i [name]: 进入的网络接口.
  • [! ]-o [name]: 出去的网络接口.
  • [! ]--sport port[:port]: 指定源端口范围.
  • [! ]--dport port[:port]: 指定目的端口范围.

1. 罗列规则

[root@controller ~]# iptables -t nat -L POSTROUTING -n --line-number
Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    RETURN     all  --  192.168.122.0/24     224.0.0.0/24
2    RETURN     all  --  192.168.122.0/24     255.255.255.255
3    MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
4    MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
5    MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24
6    POSTROUTING_direct  all  --  0.0.0.0/0            0.0.0.0/0
7    POSTROUTING_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
8    POSTROUTING_ZONES  all  --  0.0.0.0/0            0.0.0.0/0

-L: 列出指定链包含的规则.
--line-number: 显示每条规则在链中的位置(行号).

2. 创建链

[root@localhost ~]# iptables -t filter -N chain1

-N: 创建指定名称的链.

3. 追加规则

[root@localhost ~]# iptables -A chain1 -p tcp --dport 22 -j DROP

-A: 追加规则至指定链的末尾.
--dport: 匹配指定的目的端口号.
-j DROP: 如果匹配规则,则丢弃数据包.

4. 插入规则

[root@localhost ~]# iptables -I INPUT 1 -s 116.56.140.61 -d 192.168.122.132 -j chain1

-I: 插入指定规则到指定链的指定地方,此处是插入链首(序号为1).
-j chain1: 如果匹配规则,则跳转到 chain1 链去继续匹配.

5. 替换规则

[root@localhost ~]# iptables -R INPUT 1 -s 192.168.122.1 -d 192.168.122.132 -j chain1

-R: 替换指定链指定规则为新的规则,此处替换第一条规则.

6. 删除规则

[root@localhost ~]# iptables -D INPUT 1

-D: 删除指定链上指定的规则,此处删除第一条规则.

7. 清空规则

[root@localhost ~]# iptables -F chain1

-F: 清空指定链上的所有规则.

8. 重命名自定义链

[root@localhost ~]# iptables -E chain1 CHAIN1

-E: 此处将 chain1 重命名为 CHAIN1.

9. 删除自定义链

[root@localhost ~]# iptables -X CHAIN1

-X: 删除指定的自定义链,需要确保没有其他链引用要删除的链.

10. 设置内建链的默认目标规则

[root@localhost ~]# iptables -P INPUT ACCEPT

-P: 设置指定链(需要是内建链)的默认目标规则,此处表示,如果所有规则都不匹配,则接受该数据包.

11. SNAT

注意:主机需要先开启转发功能:

  • 临时

    [root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
  • 永久:

    # /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    [root@localhost ~]# sysctl -p
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -o eth0 -j SNAT --to-source 10.10.188.232

--to-source: 将数据包的源地址替换为指定的地址.

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

-j MASQUERADE: 自动使用合适的地址替换数据包源地址.

12. DNAT

[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.31.168 -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.31.167:8080

--to-destination: 将数据包的目的地址替换为指定的地址.

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命令(215)——iptables命令(代码片段)

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介iptables/ip6tables是IPv4/IPv6包过滤和NAT的管理工具。iptables/ip6tables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过... 查看详情

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命令(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命令行操练(代码片段)

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

linux上关于iptables

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

linuxiptables常用命令

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

linux命令iptables-tnat

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

linux----------防火墙(代码片段)

....2五个内置链chain2.2.3iptables规则2.3iptables工作原理2.4iptables命令2.4.1iptables语法格式2.5iptables命令之匹配条件2.6iptabl 查看详情

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的软... 查看详情

iptables-linux(ls)-inode

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

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文件怎么办

参考技术A与vmwaretools没有关系。一般是你没有配置过防火墙,可以使用iptables命令随便配个防火墙规则,然后使用命令:serviceiptablessave进行保存,默认就保存到/etc/sysconfig/iptables文件了。 查看详情

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

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

linux中iptables防火墙怎么设置

...Netfilter提供了iptables这个程序来作为防火墙数据包过滤的命令。Netfilter是内建的,效率非常高。我们可以通过iptables命令来设置netfilter的过滤机制。iptables里有3张表:>Filter(过滤器),进入Linux本机的数据包有关,是默认的表... 查看详情

iptables命令

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