iptables之三表五链

一、iptables概述

1. iptables的概述

iptables 实际上就是一种包过滤型防火墙。 就是通过书写一些接受哪些包,拒绝哪些包的规则,实现数据包的过滤。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

2. iptables的组成

iptables由两部分组成:
(1) framework: netfilter hooks function钩子函数,实现网络过滤器的基本框架。
(2) rule utils: iptables 规则管理工具

3. iptables的三链五表

总体说来,iptables就是由“三表五链”组成。

三表:

filter过滤,防火墙,过滤数据包
Nat用于网络地址转换(IP、端口)
Mangle拆解报文,作出修改,封装报文

五链:

PREROUTING数据包进入路由之前
INPUT目的地址为本机
FORWARD实现转发
OUTPUT原地址为本机,向外发送
POSTROUTING 发送到网卡之前

在这里插入图片描述

iptables中表与链的对应关系,其实就是一个表中包含哪几个链:

在这里插入图片描述

二、iptables命令常用方法

iptables [-p table] 链管理 chain
-t table : filter,nat,mangle,raw (默认为 filter)

链管理:

-F清空规则链
-N创建新的自定义规则链
-Xdrop 删除用户自定义的规则链
-PPolicy 为指定链设置默认策略;iptables -t filter -P FORWARD DROP
-E重命令自定义链

规则管理:

-A蒋新规则添加到指定的链上
-I将新规则插入到指定的位置
-D删除链上的指定规则
-R替代指定链上的规则

查看:

-L列表,列出指定链上的指定的规则

基本匹配:

-s原地址IP
-d目的IP
-p协议{tcp
-i数据报文的流入接口
-o数据报文的流出接口

扩展匹配:-m match_name

–dport PORT: 目标端口,可以是单个端口
–sport PORT: 源端口
-p udp|tcp|icmp
–icmp-type
0 : echo-reply
8 : echo-request

目标:
-j TARGET:jump至指定的TARGET

  • ACCEPT 接受
  • DROP 丢弃
  • REJECT 拒绝访问
  • RETURN 返回调用链
三、iptables的相关设置(三张表和五条链)

实验环境:
1. desktop虚拟机两块网卡:eth0 (172.25.254.112)和eht1(1.1.1.112)
在这里插入图片描述
2. server虚拟机一块网卡:eth0( 1.1.1.212 )
在这里插入图片描述
3.在serevr上面:ping 1.1.1.112可以
在这里插入图片描述
4.搭建两个虚拟机的yum源,并使两个yum可用

具体实验操作如下:

关闭firewalld火墙,并开启iptables火墙,如下所示:

  systemctl stop firewalld      关闭firewalld防火墙
  systemctl mask firewalld      锁住firewalld防火墙
  systemctl start iptables      开启iptables防火墙

在这里插入图片描述
查看三个表及每个表中的链,如下所示:

  iptables -t filter -nL查看filter表格里面的链,并且不做解析
           -t后面跟表格的名称,不过不跟-t,默认为filter表格
  iptables -t nat -nL查看nat表里面的链
  iptables -t mangle -nL查看mangle表里面的链

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  iptables -L查看所有链(默认查看filter表里面的链)
  iptables -nL查看所有链,作解析(默认查看filter表里面的链)

在这里插入图片描述
在这里插入图片描述
清除所有策略并查看,如下所示:

  iptables -F清除所有策略
  iptables -nL查看

在这里插入图片描述
保存策略,并进入火墙的配置文件中查看是否保存策略,如下所示:

  service iptables save保存
  vim /etc/sysconfig/iptables查看

在这里插入图片描述
在这里插入图片描述

  iptables -t filter -A INPUT -i lo -j ACCEPT将lo回环接口加入INPUT链
  iptables -nL查看

在这里插入图片描述

  iptables -t filter -A INPUT -s 172.25.254.12 -j ACCEPT接受
  iptables -nL

在这里插入图片描述

iptables -t filter -A INPUT -s 172.25.254.12 -j REJECT拒绝
iptables -nL

在这里插入图片描述
测试:在真机中连接ssh root@172.25.254.112,发现可以连接,如下所示:
在这里插入图片描述

  iptables -D INPUT 3      ###删除第三条策略
  iptables -nL             ###查看

在这里插入图片描述

  iptables -R INPUT 2 -S 172.25.254.12 -j REJECT修改策略
  iptables -nL查看

在这里插入图片描述
在这里插入图片描述
测试:在真机里面连接ssh root@172.25.254.112,只有第二条匹配,但是拒绝的连不上,如下所示:
在这里插入图片描述

iptables -I INPUT 2 -s 172.25.254.12 -p tcp --dport 22 -j ACCEPT      ###插入策略
iptables -nL

在这里插入图片描述
测试:在真机里面ssh可以(因为单独ssh服务被允许),但是访问apache不行(其它的都是拒绝的),如下所示:
在这里插入图片描述
在这里插入图片描述

iptables -P INPUT DROP    ###修改默认策略
iptables -nL              ###查看

在这里插入图片描述
测试:在真机里面连接ssh root@172.25.254.112,此时是连接不上
因为desktop将真机ssh连接发送的数据包都丢弃了,并且也不给真机说不能连接,因此真机会一直请求ssh连接,如下所示:

在这里插入图片描述

  iptables -P INPUT ACCEPT
  iptables -nL

在这里插入图片描述
测试:在真机里面连接ssh root@172.25.254.112,此时可以了,因为将drop改为accept了
在这里插入图片描述

  iptables -nL     ###查看filter表里面的链
  iptables -N      ###westos添加westos链
  iptables -nL     ###添加完之后再次查看

在这里插入图片描述

  iptables -E westos feng        ###修改链的名字,由westos改为feng
  iptables -nL                   ###查看修改结果

在这里插入图片描述

  iptables -X feng      ####删除链
  iptables -nL          ###查看

在这里插入图片描述

四、iptables的地址伪装和端口转发

实验目的:
端口转发: 让真机172.25.254.12 ssh root@172.25.254.111desktop直接连上1.1.1.212server
地址伪装: 让1.1.1.211的server虚拟机ping172.25.254.111就可以,因为172.25.254.111与1.1.1.111在一个主机上

实验环境设置:
在前面实验环境的基础上,在虚拟机desktop上设置网关(1.1.1.112),如下所示:
在这里插入图片描述
在这里插入图片描述
端口转发:

  iptables -t nat -nL       ####查看一下nat表
  添加地址转发功能:
  iptables -t nat -A PREROUTING -i(input) eth0 -p(协议类型) tcp --dport 22 -j DNAT --to-dest 1.1.1.211:22(转发到这个地址)
  iptables -t nat -nL        ####再次查看,此时eth0是在路由之前

在这里插入图片描述测试:发现能连接到,ifconfig发现是server的ip,此时实现了地址转发的功能,如下所示:
在这里插入图片描述
在这里插入图片描述
地址伪装:

  iptables -t nat -nL         ###查看
  开启地址伪装功能:
  iptables -t nat -A POSTROUTING -o(output) eth0 -j SNAT --to-source 172.25.254.112(在172.25.254.112上面进行伪装)
  iptables -t nat -nL        ####再次查看, 此时eth0是在路由之后的

在这里插入图片描述
测试:在server虚拟机上去ping虚拟机desktop和真机都能ping通,如下所示:
在这里插入图片描述

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42566251

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值