一文带你了解iptables用法及端口转发

admin 2024年2月21日21:45:23评论8 views字数 3007阅读10分1秒阅读模式

扫码领资料

获网安教程

一文带你了解iptables用法及端口转发

一文带你了解iptables用法及端口转发

前言:逆风的方向,更适合飞翔!

一、iptables简介

1.定义:

iptables的是一个用户空间实用程序,其允许系统管理员来配置IP分组过滤器规则的的Linux内核 防火墙,因为不同的实施Netfilter的模块。过滤器组织在不同的表中,其中包含有关如何处理网络流量数据包的规则链。不同的内核模块和程序目前用于不同的协议;iptables适用于 IPv4,ip6tables适用于IPv6,arptables 适用于ARP,ebtables 适用于以太网帧。

2.操作:

IPTABLES需要提升权限才能操作,必须由root用户执行,否则无法运行。在大多数 Linux 系统上,iptables 安装为/usr/sbin/iptables并记录在其手册页中,可以man iptables在安装时打开使用。它也可以在/sbin/iptables 中找到,但由于 iptables 更像是一个服务而不是“基本二进制文件”,首选位置仍然是/usr/sbin。

3.用途

iptables也常用于泛指内核级组件。x_tables是内核模块的名称,其中包含所有四个模块使用的共享代码部分,还提供用于扩展的 API;随后,Xtables或多或少被用来指代整个防火墙(v4、v6、arp 和 eb)架构。

4.概述:

iptables允许系统管理员定义包含用于处理数据包的规则链的表。每个表都与不同种类的数据包处理相关联。通过在链中顺序遍历规则来处理数据包。链中的规则可以导致转到或跳转到另一个链,并且可以重复执行所需的任何嵌套级别。(跳转就像一个“调用”,即记住跳转的点。)每个到达或离开计算机的网络数据包至少要经过一条链。

数据包流路径。数据包从给定的盒子开始,并会沿着特定的路径流动,具体取决于环境。

数据包的来源决定了它最初穿过哪条链。有五个预定义的链(映射到五个可用的 Netfilter 钩子),尽管一个表可能没有所有的链。预定义的链有一个策略,例如 DROP,如果数据包到达链的末端,它就会应用于数据包。

系统管理员可以根据需要创建任意数量的其他链。这些连锁店没有政策;如果一个数据包到达链的末端,它将返回到调用它的链。链可能是空的。

PREROUTING:在做出路由决定之前,数据包将进入此链。

INPUT: 数据包将在本地交付。它与具有打开套接字的进程没有任何关系;本地交付由“本地交付”路由表控制:ip route show table local。

FORWARD:所有已路由且不用于本地传送的数据包将遍历此链。

OUTPUT:从机器本身发送的数据包将访问此链。

POSTROUTING: 路由决定了。数据包在将它们交给硬件之前进入这个链。

一文带你了解iptables用法及端口转发

二、iptables用法

1.基础表类型

raw表决定数据包是否被数据跟踪处理 mangle表用来mangle数据包,可以改变不同的包及包头的内容 nat表用于转换包的源地址和目的地址 filter表是专门过滤包

2.基础用法

1.iptables —help一文带你了解iptables用法及端口转发

2.iptables -t nat -nL —line //查看当前表的规则一文带你了解iptables用法及端口转发

链与链之间的区别

1.PREROUTING链的作用是在包刚刚到达防火墙时改变它的目的地址,是从外部连接过来时的转发

2.OUTPUT链改变本地产生的包的目的地址,是本机连接时的转发

POSTROUTING链在包就要离开防火墙之前改变其源地址 

3.语法规则

iptablesiptables -nvL 查看规则iptables -F 清空规则iptables save 保存写入的规则iptables -Z 清空iptables的数据流计数器iptables -A INPUT -s 源IP -p tcp --sprot 来源端口 -d 目标IP --dport 目标端口 -j DROP/ACCEPT 指定放行的数据流和端口iptables -I/-A/-D INPUT -s 源IP -j DROP 添加一条简单的匹配规则iptables -nvL --line-numbers 列出规则的排列序号,例如用于根据序号来删除某条规则iptables -P INPUT DROP 用于修改链的默认policy(规则),修改前需确认是否会影响数据连接

三、实验操作:

1.实验环境:

(A)kali: 192.168.10.2

(B)win7:192.168.20.2

(C)win2008主机 192.168.10.6

2.基础配置

1.修改内核文件实现端口转发

方法1

1.编辑sysctl配置文件 vim /etc/sysctl.conf一文带你了解iptables用法及端口转发

2.开启ipv4 forward一文带你了解iptables用法及端口转发

方法2:直接sysctl修改

使用sysctl -w net.ipv4.ip_forward=1

然后查看系统参数和之前修改的一样。

查看sysctl -p一文带你了解iptables用法及端口转发

3.实现过程:

原理1.本地端口转发

REDIRECT模式是防火墙所在的机子内部转发包或流到另一个端口,也就是所有接收的包只转发给本地端口。 步骤1:通过PREROUTING链,将外网访问端口转发到本机端口,此时本机端口并不进行转发。一文带你了解iptables用法及端口转发

原理2:分流

步骤2:通过PREROUTING链,将测试网段的端口的包转发到本机端口,其他网段则正常访问原端口。

iptables -t nat -A PREROUTING -p tcp -s 192.168.10.0/24 —dport 1234 -j REDIRECT —to-ports 6666

一文带你了解iptables用法及端口转发

原理3:远程端口转发

DNAT模式是用来做目的网络地址转换, 可以做某种类型地负载平衡。SNAT模式用来源网络地址转换的,就是重写包的源IP地址。如果直接转发包的话,网络响应包上就不知道往哪儿发送应答,所以需要改为防火墙的地址。

步骤3:通过PREROUTING链,将源为A访问B的1234端口的包,转发到C的6666端口,其他的不管

php MASQUERADE模式 ptables-tnat-APREROUTING--source 192.168.10.2-ptcp--dport 1234 -jDNAT--to-destination 192.168.10.6:6666 

SNAT模式 iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE iptables-tnat-APOSTROUTING--dst 192.168.10.2-ptcp--dport 6666 -jMASQUERADE一文带你了解iptables用法及端口转发

步骤4:删除配置规则,关闭端口转发 iptables -t nat -D PREROUTING 2   //删除规则

service iptables stop   //关闭端口转发.一文带你了解iptables用法及端口转发

总结:

iptables在端口转发具有一定的稳定性,在配置防火墙过滤规则的时候也是十分好用的。无论用在攻与防都十分好用。

文章来源:https://www.freebuf.com/articles/web/289254.html文章作者:pony686如有侵权,联系删除

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

如果你是一个网络安全爱好者,欢迎加入我的知识星球:zk安全知识星球,我们一起进步一起学习。星球不定期会分享一些前言漏洞,每周安全面试经验、SRC实战纪实等文章分享,微信识别二维码,只需25,即可加入,如不满意,72 小时内可在 App 内无条件自助退款。

一文带你了解iptables用法及端口转发

原文始发于微信公众号(白帽子左一):一文带你了解iptables用法及端口转发

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月21日21:45:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一文带你了解iptables用法及端口转发http://cn-sec.com/archives/2511929.html

发表评论

匿名网友 填写信息