iptables简介

路由器中普遍使用Iptables作为网络防火墙管理方案,Iptabels是与 Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

netfilter/iptables 过滤防火墙系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

虽然netfilter/iptables包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

原理:

(1) 一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转发出去。

(2) 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经 过OUTPUT链,然后到达POSTROUTING链输出。

(3)如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过 FORWARD链,然后到达POSTROUTING链输出。

结构图如下:

常用的一些iptables策略:

(1)拒绝转发来自192.168.2.33主机的数据

iptables -A FORWARD -s 192.168.2.33 -j REJECT

(2)允许转发来自192.168.2.1/99网段的数据

iptables -A FORWARD -s 192.168.2.1/99 -j ACCEPT

(3)允许本机开放从TCP端口20-1024提供的应用服务。

iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT

(4)只允许管理员从202.13.0.0/16网段使用SSH远程登录防火墙主机。

iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT

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

(5)允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。

iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT

iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT

(6)屏蔽ip 110.1.1.1的访问

iptables -I INPUT -s 110.1.1.1 -j DROP

(7)屏蔽从123.0.0.1到123.255.255.254

iptables -I INPUT -s 123.0.0.0/8 -j DROP

(8)屏蔽从从123.45.0.1到123.45.255.254

iptables -I INPUT -s 124.45.0.0/16 -j DROP

(9)屏蔽从从123.45.6.1到123.45.6.254

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

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

iptables -A OUTPUT -j ACCEPT

(12)允许访问22端口

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

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注