Linux防火墙(Iptables)

Iptables

在早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙。尽管新型的firewalld防火墙管理服务已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用iptables。
在这里插入图片描述

策略与规则链

四表五链概念
filter表——过滤数据包
Nat表——用于网络地址转换(IP、端口)
Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理
INPUT链——进来的数据包应用此规则链中的策略
OUTPUT链——外出的数据包应用此规则链中的策略
FORWARD链——转发数据包时应用此规则链中的策略
PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
在这里插入图片描述

基本命令参数

iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,再次提醒一下,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。总结归纳了常用的iptables命令参数。再次强调,我们无需死记硬背这些参数,只需借助下面的实验来理解掌握即可。

                                     iptables中常用的参数以及作用
参数作用
-P设置默认策略
-F清空规则链
-L查看规则链
-A在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除某一条规则
-s匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
-d匹配目标地址
-i 网卡名称匹配从这块网卡流入的数据
-o 网卡名称匹配从这块网卡流出的数据
-p匹配协议,如TCP、UDP、ICMP
–dport num匹配目标端口号
–sport num匹配来源端口号

1.为了试验iptables防火墙,我们先把本机的firewalld防火墙冻结并且关闭
在这里插入图片描述
2.下载iptables防火墙服务
在这里插入图片描述
3.启动iptables防火墙服务,并开机自启
在这里插入图片描述
4.在iptables命令后添加-L参数查看已有的防火墙规则链
-n :数字输出,ip地址和端口会以数字的形式打印,默认情况下,程序显示主机名,网络名或者服务(可用的)
-L 列出指定链中的所有规则

在这里插入图片描述
5.查看iptables服务nat表中防火墙规则链
在这里插入图片描述
6.查看iptables服务mangle表中防火墙规则链
在这里插入图片描述
7.在iptables命令后添加-F参数清空已有的防火墙规则链:
在这里插入图片描述
但是当重新启动iptables服务时,会恢复默认值,清空的数据会回来
在这里插入图片描述
如果在重启服务之前把规则保存server iptables save ,重启之后不会,恢复原来的默认值
在这里插入图片描述
8.添加自定义链名,以及链名的改名,删除
-N 添加链名
在这里插入图片描述
-E改名
在这里插入图片描述
-X删除
在这里插入图片描述
9.表中的规则连遵循由上到下优先原则,如添加两个矛盾规则
将INPUT规则链设置为拒绝172.25.254.4的主机访问本机的22端口
将INPUT规则链设置为允许172.25.254.4的主机访问本机的22端口
-t 指定表名
-A 指定链名
-s指定源地址(主机名,网络名,ip)
-p规则或待检查包的协议,如此处指定协议tcp
–dport 端口号(如22,80)
-j目标跳转 (指定规则目标)指定规则处理数据包

在这里插入图片描述
在这里插入图片描述
由优先原则可知,执行INPUT第一条规则,所以当4号主机通过22端口访问时被拒绝
在这里插入图片描述
10.删除filter表中INPUT规则链中的第一条规则
-D 删除
-INPUT 1 :INPUT规则链中的第一条规则
在这里插入图片描述
11.我们知道规则链中是遵循上下优先原则,但是如果先添加一个原则放在第一位呢,
-I :根据给出的规则序号向所选链中插入一条或者多条规则。如果序号为1,规则会插入链头部。(当然不是指定序号的插入)
在这里插入图片描述
12.设置filter表中INPUT链的默认规则,当数据包没有被规则列表中的任何规则匹配到时,默认此规则
在这里插入图片描述
13.两种指定用户允许某服务的方法
#将INPUT规则链设置为只允许指定网段(172.25.254.4)的主机访问本机的22端口,拒绝来自其他所有主机的流量
第一种
先添加规则INPUT链中的所有服务都拒绝
再添加规则允许4号主机访问22端口并放在第一位
在这里插入图片描述
在这里插入图片描述
第二种
除了4号主机访问本机的22端口允许,其他主机访问任何服务都拒绝
!除了
在这里插入图片描述
用4号主机访问22,允许
在这里插入图片描述
其他主机访问被拒绝
在这里插入图片描述
下面两个实验,
server主机IP为1.1.1.200 网关为1.1.1.100
服务器做路由作用 IP1=172.25.254.100 IP2=1.1.1.100
4号主机IP为172.25.254.4

14.端口转发(目的地地址转换;DNAT)
-iens3 指定数据包从ens3网卡进
-j 指定数据包的动作
–to-dest 执行DNAT动作后数据包到达的目的地址

在这里插入图片描述
用4号主机ssh本机时会自动转到1.1.1.200主机上
在这里插入图片描述
15.地址伪装(源地址转换;SNTA)
先清空nat表中的规则
-o ens3 从ens3网卡出
–to-source 执行SNTA动作后数据包的源地

在这里插入图片描述
当用server主机访问4号主机时,4号主机显示是172.25.254.100在访问它
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值