探究Linux防火墙系统中的Iptables Mark标记技术 (linux iptables mark)

翻译成中文,这个标题是在。这篇文章将深入探讨这个技术,包括它的工作原理、如何使用它以及如何更好地保护您的linux服务器

我们需要了解什么是Iptables和Mark标记技术。Iptables是一个Linux系统中的防火墙工具,它允许您通过设置输入、输出和转发规则来限制网络流量。Mark标记技术是一个功能,它允许您将流量与特定的标记相关联。这些标记可用于根据流量类型或其他标识符选择特定的Iptables规则。

在Linux系统中,Iptables是常规的防火墙工具。它的强大之处在于,它可以配置许多不同类型的规则。例如,它可以拦截特定来源或目标地址的流量,它也可以允许或禁止特定端口的流量。Iptables还可以配置规则,以允许或限制特定协议或特定的应用程序流量。

标记技术是一种增强的功能。通过给流量打上标记,管理员可以创建与标记相关的规则,以更细致地控制流量。例如,管理员可以为每个不同的应用程序分配不同的标记。这些标记允许管理员针对每个应用程序做出适当的防火墙规则配置。

Iptables Mark标记技术的核心在于uiptables命令。这个命令允许管理员创建、修改和删除Iptables规则。为了使用标记技术,管理员需要使用uiptables命令在过滤链中创建一条新规则,并将该规则与特定的标记相关联。例如,管理员可以创建一个新规则,该规则允许所有标记为“web”的数据包流量通过。这样的规则可以通过以下命令创建:

iptables -A FORWARD -m mark –mark 0x4e -j ACCEPT

这个命令将创建一个新规则,允许标记为0x4e的所有数据包通过。管理员还可以使用更高级的技巧,例如在选定的应用程序启动时动态更新iptables规则。

要保持服务器的安全,需要谨慎地选择标记技术。如果管理员不正确地配置标记规则,可能会导致意外的安全漏洞。例如,如果管理员不正确地配置规则,允许来自可疑机器的进入流量,标记技术就会为黑客留下可能攻击的通道。

使用Iptables Mark标记技术需要一些技术知识。管理员需要了解如何为不同应用程序分配不同的标记,如何正确设置标记规则,以及如何验证这些规则是否按照预期工作。因此,如果您是一位linux系统管理员,则需要投入足够的时间来了解这种技术。

Iptables Mark标记技术为Linux系统管理员提供了一种更高级的方式来保护服务器。通过使用标记技术,管理员可以根据流量类型或其他标识符精确地控制防火墙规则。虽然标记技术需要一些额外的技术知识,但它可以提供更好的安全性和防御性。因此,如果您是Linux系统管理员,则应了解和使用此技术。

相关问题拓展阅读:

  • 在linux上的iptables防火墙上怎么设置信任MAC地址访问端口
  • linux中如何控制端口流量

在linux上的iptables防火墙上怎么设置信任MAC地址访问端口

iptables -A INPUT -p all –dport 80 -m mac –mac-source \ > 01:01:01:01:02:01 -j ACCEPT 搞定。MAC你自己写咯

端口操作相关示例: 6.1 添加端口(1) 允许源地址为x.x.x.x/x的主机通过22(ssh)端口.iptables -A INPUT -p tcp -s x.x.x.x/x –dport 22 -j ACCEPT (2)允许80(http)端口的数据包进入iptables -A INPUT -p tcp –dport 80 -j ACCEPT  (3)允许110(pop3)端口的数据包进入,如果不加这规则,就只能通过web页面来收信(无法用OE或Foxmail等来收)iptables -A INPUT -p tcp –dport 110 -j ACCEPT (4) 允许25(tp)端口的数据包进入,如果不加这规则,就只能通过web页面来发信(无法用OE或Foxmail等来发)iptables -A INPUT -p tcp –dport 25 -j ACCEPT (5)允许21(ftp)端口的数据包进入(传数据)iptables -A INPUT -p tcp –dport 21 -j ACCEPT  (6)允许20(ftp)端口的数据包进入(执行ftp命令,如dir等)  iptables -A INPUT -p tcp –dport 20 -j ACCEPT (7)允许53(dns)端口的数据包进入(tcp)

  iptables -A INPUT -p tcp –dport 53 -j ACCEPT (8)允许53(dns)端口的数据包进入(udp)

  iptables -A INPUT -p udp –dport 53 -j ACCEPT (9)允许ICMP包通过,也就是允许ping  iptables -A INPUT -p icmp -j ACCEPT(10)利用 iptables 对连接状态的支持iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT(11)把INPUT链的默认规则设置为DROPiptables -P INPUT DROP

1.看看你的iptables脚本在哪个目录下,找到改一下。/etc/sysconfig/iptables 2.例如绑定命令如下-A FORWARD -s 192.168.10.XXX -m mac ! –mac-source 00:13:21:25:E5:C8 -j DROP你可以将-A改成-D,删除此命令

linux中如何控制端口流量

配置网卡

建立一台虚拟机,并安装完成后以桥接的方式在虚拟机上面添加两张网卡。分别为eth0和eth1。

eth0: a.b.c.d(外网的上网地址)

eth1: 172.16.44.1(做为内网的网关)

Tip

原先我使用eth0:0的这种虚拟网卡的形式去配置一直不成功,后来使用双网卡的时候一直忘了把eth0:0这张虚拟网卡删掉导致了限速配置一直不成功,浪费了大轮颂把的青葱。

配置iptables nat

#开启ip_forward

echo “1”>/proc/sys/net/ipv4/ip_forward

#清除原来的防火墙规则

iptables -F

iptables -t nat -F

iptables -t mangle -F

#添加nat转发

iptables -t nat -A POSTROUTING -s 172.16.44.0/24 -o eth0 -j MASQUERADE

通腊洞郑过执行上面的代码后,局域网内的电脑就可以上网了。

端口转发

由于我的内网还挂了网站,所以要开启80端口的转颤孝发。

iptables -t nat -I PREROUTING -p tcp -d a.b.c.d –dport 80 -j DNAT –to 172.16.44.210:80

iptables -t nat -I POSTROUTING -p tcp -d 172.16.44.210 –dport 80 -j SNAT –to 172.16.44.1

这条命令指定外网地址a.b.c.d的80端口转发到172.16.44.210:80上。由于是双网卡,所以需要做一下回路。

下载限速

下载限速要在eth1上面做,判断数据包的目的地址来做限制。tc包括三部分:队列、类、过滤器。我使用了htb方式去限制速度,也可以使用cbq,但cbq配置比较复杂一点,而且据说性能没htb好。

#删除原来的tc规则队列

tc qdisc del dev eth1 root

#添加tc规则队列

tc qdisc add dev eth1 root handle 10: htb default 256

#生成根类

tc class add dev eth1 parent 10: classid 10:1 htb rate 100mbit ceil 100mbit

#支类列表用于限制速度

#这里的rate指的是保证带宽,ceil是更大带宽。

tc class add dev eth1 parent 10:1 classid 10:10 htb rate 400kbps ceil 400kbps prio 1

#添加支类规则队列

#采用sfq伪随机队列,并且10秒重置一次散列函数。

tc qdisc add dev eth1 parent 10:10 handle 101: sfq perturb 10

#建立网络包过滤器,设置fw。

tc filter add dev eth1 parent 10: protocol ip prio 10 handle 1 fw classid 10:10

#在iptables里面设定mark值,与上面的handle值对应。

iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK –set-mark 1

通过上面的代码就可以限制172.16.44.130这台机子的到400kbps。

Tip

经过实际测试这里的kbps实际上就是KB/S每秒千字节。另一个单位是kbit,这个才是每秒千比特。这里的172.16.44.130也可以写成一个网段,比如:172.16.44.0/24

上传限速

上传限速的原理其实跟下载的差不多,只不过限制的网卡不同,要在eth0上过滤来源地址去限制。

#删除原来的tc规则队列

tc qdisc del dev eth0 root

#添加tc规则队列

tc qdisc add dev eth0 root handle 20: htb default 256

#生成根类

tc class add dev eth0 parent 20: classid 20:1 htb rate 100mbit ceil 100mbit

#支类列表用于限制速度

tc class add dev eth0 parent 20:1 classid 20:10 htb rate 40kbps ceil 40kbps prio 1

#添加支类规则队列

tc qdisc add dev eth0 parent 20:10 handle 201: sfq perturb 10

#建立网络包过滤器

tc filter add dev eth0 parent 20: protocol ip prio 100 handle 2 fw classid 20:10

iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK –set-mark 2

Tip

跟下载不同的是POSTROUTING要改成PREROUTING,-d改成-s。

观察连接数

通过iptables的nat连接可以通过下面的代码查看。至于统计连接数可以写代码实现,也可以利用awk,grep等工具。反正里面的内容就是文本,处理起来也比较简单。

cat /proc/net/ip_conntrack

写在结尾

到此上网、端口转发和流量限制都已经实现。下次再考虑配置个dhcp server和dnasq。至于一些路由器其它诸如mac地址绑定,限制上网等用到的时候再去研究研究。

关于linux iptables mark的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《探究Linux防火墙系统中的Iptables Mark标记技术 (linux iptables mark)》
文章链接:https://zhuji.vsping.com/53736.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。