前言
在比赛的时候,有linux的防火墙策略配置,相信有很多人跟我一样,瞬间就懵了,但是不要慌,跟着我一起,学习iptables防火墙配置策略吧。
防火墙的介绍,以及防火墙的四表五链
Linux下防火墙有两种分别是iptables和firewalld,在centos7之前centos用的防火墙是iptables,自从centos7过后防火墙的使用就从iptables变成了firewalld。防火墙的作用是根据系统管理员设定的规则来控制数据的包的进出,今天我们来重点介绍iptables防火墙
防火墙的四表五链:
链:
防火墙是由一个链多个规则,进行规则的,如图:
表:
链条可以有很多个,集合到一起就是一张表,如图所示:
四张表:分别是
filter:决定一个数据包是否到达端口
mangle:可以修改数据包内容,比如ttl
nat:可以修改原和目标的ip地址、从而进行路由
raw:基于数据包的状态进行设定
上述表中内置一些链,每个链都内置处理策略、默认策略一般在链中的规则进行匹配生效。
每张表中的链有:
filter表中的链
INPUT链:对路由策略分派过来的包达到目标,进程端口,之前进行匹配并处理。
FORWARD链:对路由策略分派过来的包进行转发
OUTPUT:判断,从本地的目标进程端口处理好的包如何返回、要不要返回给请求方。
mangle表中的链有:
PREROUTING:包在到达网口时,进行规则匹配
INPUT:对路由策略分派过来的包达到目标,进程端口,之前进行匹配处理,(含义同:filter)
FORWARO:对路由策略分派过来的包进行转发(含义同:filter)
OUTPUT:判断,从本地的目标进程端口处理好的包如何返回、要不要返回给请求方。(含义同:filter)
POSTROUTLNG:包离开网口时进行匹配。
nat表中的链有:
PREROUTLNG:包离开网口时进行匹配(含义同:mangle)
OUTPUT:判断,从本地的目标进程端口处理好的包如何返回、要不要返回给请求方。(含义同:filter)
POSTROUTLNG:包离开网口时进行匹配。(含义同:mangle)
raw表中的链有:
PREROUTLNG:包离开网口时进行匹配(含义同:mangle)
OUTPUT:判断,从本地的目标进程端口处理好的包如何返回、要不要返回给请求方。(含义同:filter)
参数详情和常用的管理选项:
iptables -A: 在指定单独链的末尾追加一条新的规则
-I :在指定链开头插入一条新的规则,如果未指定则默认为第一条规则
-t:表示想查看那个表
-L:表示列出表所有的链和所有的规则
-V:详细信息会将规则匹配单独进出网口匹配出来
--line-nvmbers:表示给鬼册进行编号处理,方便进行下一步的操作
-s:表示包的来源ip,还可以进行指定ip
-j:表示最终动作
-D:表示删除的参数
-d:返回给ip.....的数据包都丢掉,不回应
-p:表示某个协议
-m:单元加载
-i:表示输入的网口
-o:表示数据包网口->目标网口
命令格式:
iptables -t [表名]管理选项[链名][匹配条件][-j控制类型]
iptables 命令输入后结果详解如图
实战案例:
一、我们在代码中输入:
iptables -t filetr -A FORWARO -p udp --dport 53 -s 172.16.0.0/24 -j ACCEPT
意思:
只允许转发来自172.16.0.0/24局域网网断的DNS解析数据包。
命令意思:
查看filetr表,在filetr表的FORWARO链里的末尾加入一个新的规则,协议为udp -指定ip为172.16.0.0/24 ,进行数据包通过动作。
其中:
-t:参数,后边加想要加入链的表
-A:在链的末尾增加一个新的规则
-p:指定协议,这里为udp协议
-s :指定ip ,这里指定172.16.0.0的所有IP
-j:表示进行最终的动作,这里的动作是通过
--dport:进行指定端口, 这里指定的端口为53
二、禁用23端口
iptables -t filetr -A INPUT -p tcp --dport 23 -j DROP
iptables -t filetr -A INPUT -p udp --dport 23 -j DROP