感谢支持
我们一直在努力

iptables规则的基本应用

Linux网络防火墙可以由硬件方面、软件方面及定义规则(匹配标准,处理办法)等方式来组合限定各种条件。下面所讲的为使用规则来限定tcp/udp/icmp等协议

Framework: 默认规则有开放(堵)与关闭(通)

其中规则中主要使用的是钩子函数(hook function:)主要有以下5种1: perouting 路由之前2:input 本机进入3output本机出去4:forward本机转发5:postrouting路由之后

使用到的规则链主要有五种:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。其中分别可以在以下表中使用到的是:

filter(过滤):表  INPUT、OUTPUT、FORWARD

nat(地址转换):表 PREROUTING、OUTPUT、POSTROUTING

mangle(拆开、修改、封装):表PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

raw():原始表    PREROUTING、OUTPUT

如果有N条规则这样就需要我们来使用自定义链,但自定义链只在被调用时才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制;其中默认链无法删除。

其中每个规则都有两个内置的计数器:被匹配的报文个数、被匹配的报文大小之和

其中定义的规则格式有:匹配标准,处理动作。如:iptables [-t TABLE] COMMAND CHAIN [num] 匹配标准 -j 处理办法

匹配标准主要有两种:通用匹配和扩展匹配,其中扩展匹配又可以分为影含扩展与显式扩展。如以下命令:

通用匹配

-s, –src: 指定源地址

-d, –dst:指定目标地址

-p {tcp|udp|icmp}:指定协议

-i INTERFACE: 指定数据报文流入的接口

可用于定义标准的链:PREROUTING,INPUT,FORWARD

-o INTERFACE: 指定数据报文流出的接口

可用于标准定义的链:OUTPUT,POSTROUTING,FORWARD

扩展匹配(使用模块进行,需要先安装模块)有

隐含扩展:不用特别指明由哪个模块进行的扩展,因为此时使用

-p{tcp|udp|icmp}

–sport PORT[-PORT]:源端口

–dport PORT[-PORT]:目标端口

–tcp-flags mask comp只检查mask指定的标志位,是逗号分隔的标志位列表comp:

此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0 ; —              tcp-flags SYN,FIN,ACK,RST SYN,ACK

显式扩展:必须指明由哪个模块进行的扩展,在iptables中使用-m选项可完成此

功能

-m EXTESTION –spe-opt

state状态扩展

NEW:新连接请求

ESTABLISHED:已建立的连接

IN表:filter、nat、mangle和raw

命令:

管理规则

-A:附加一条规则,添加在链的尾部

-I CHAIN [num]: 插入一条规则,插入为对应CHAIN上的第num条;

-D CHAIN [num]: 删除指定链中的第num条规则;

-R CHAIN [num]: 替换指定的规则;

管理链:

-F [CHAIN]:flush,清空指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链

-P CHAIN: 设定指定链的默认策略;

-N:自定义一个新的空链

-X: 删除一个自定义的空链

-Z:置零指定链中所有规则的计数器;

-E: 重命名自定义的链;

查看类:

-L: 显示指定表中的规则;

-n: 以数字格式显示主机地址和端口号;

-v: 显示链及规则的详细信息

-vv:

-x: 显示计数器的精确值

–line-numbers: 显示规则号码

动作(目标target):

ACCEPT:放行

DROP:丢弃

REJECT:拒绝

DNAT:目标地址转换

SNAT:源地址转换

REDIRECT:端口重定向

MASQUERADE:地址伪装

LOG:日志

MARK:打标记

其中iptables不是服务,但有服务脚本,服务脚本的主要作用用于在保存管理的规则

装载机移除iptables/netfilter相关的内核模块。

-m connlimit:连接数限制

–connlimit-above n 最大上限

-m limit    速率限制

–limit RATE

–limit-burst n

-m string :  字符限制

–algo

–string “STRING”

其中下面为主要命令

[root@mail ~]#service iptables restart 重新启动服务(会把重新写入的规则清空,如需要应先进行保存)
[root@mail ~]#service iptables save 保存写入的规则 

其中使用扩展匹配需要装载模块 命令:[root@mail ~]#modprobe 模块名称

查看日志

[root@mail ~]# cat /proc/sys/net/ipv4/ip_conntrack_max 查看最多可以同时涌入多少个请求 
[root@mail ~]# cat /proc/sys/net//ipv4/netfilter/ip_conntrack_icmp_timeout  超时时间 
30       
[root@mail ~]# cat /proc/sys/net//ipv4/netfilter/ip_conntrack_tcp_timeout_established 
432000

[root@mail ~]#iptables –L –n 可以查看规则(后加-v –vv –vvv可以更加详细显示规则)

[root@mail ~]# iptstate -v查看链接

查看信息如下图:

限定ping命令的频率后如下:

[root@mail ~]# iptables -I INPUT -d 172.16.34.1 -p tcp –dport 80 -j ACCEPT 设定80端口http服务 
[root@mail ~]# iptables -I OUTPUT -s 172.16.34.1 -p tcp –sport 80 -j ACCEPT 
[root@mail ~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT 本地回环地址 
[root@mail ~]# iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT 
[root@mail ~]# iptables -A OUTPUT -s 172.16.34.1 -p icmp –icmp-type 8 -j ACCEPT ping命令的设定,可以允许主机ping任意其他主机 
[root@mail ~]# iptables -A INPUT -d 172.16.34.1 -p icmp –icmp-type 0 -j ACCEPT 

其中验证屏蔽敏感字时是在网页中验证的,所以需要事先装载httpd服务。

其中敏感词过滤如下:

这里设置的敏感词是h7n9,网站是test.html(在本机设置的)下图为网站的主页面

限制后的网页如上图,就会刷新不出来的

赞(0) 打赏
转载请注明出处:服务器评测 » iptables规则的基本应用
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏