校内课设七:Linux环境下iptables防火墙的配置

实验目的

1、理解Iptables的原理和功能
2、通过实际操作理解运用Iptables 的各种规则,策略等

实验环境及原理

实验环境:主机:windows10,靶机:Kali Linux
实验工具:secureCTR(winx64) secureCTR下载安装教程

一.实验原理:

在这里插入图片描述

防火墙为实验目标机,在其上运行iptables规则
登录控制台连接windows和linux靶机,以linux靶机作为防火墙,
在其上运行iptables规则,windows则以linux为网关,通过linux连网

二.需求分析:

1、iptables有关的重要名词解释

netfilter提供了一系列的表,每个表由若干条链组成,而每条链又是	由一条或数条规则组成。下面介绍一下在应用iptables会碰到的一些名	词。
(1)规则:设置过滤数据包的具体条件,如IP地址、端口、协议、网络接口等。
(2)动作:当netfilter检测数据包符合制定的规则后,则会对该数据包进行相应的处理,处理的方式如下:
 动作                说明
 ACCEPT             允许数据包通过
 DROP              丢弃数据包
 REJECT             丢弃数据包并返回错误信息
 LOG               将符合该规则的数据写入日志
 QUEUE            传送给应用程序处理该数据包
 (3)链:数据包在传递过程中,
 不同情况下所要遵循的规则组合形成了链
 链可以分为内置链和用户自定义链
 我们常用的是内置链,它一共有5个链,如下所示:
 链名                              相关的动作
 PREROUTING                 数据包进入路由表之前
 INPUT                      通过路由表后目的地为本机
 FORWARDING             通过路由表后,目的地不为本机
 OUTPUT                       由本机产生,向外转发
 POSTROUTIONG                  发送到网卡接口之前
 (4)表:Netfileter根据处理数据的需要设计了三张表,表名分别是filter(该表为netfilter默认的表)、nat和mangle,这三张表的相关功能及分别对应的内置链如下所示:
 表名         作用                                            内置链
 filter       netfilter默认的表,用于过滤设置            INPUT、FORWARDING、OUTPUT
 nat          完成地址转换                          ORWARDING、OUTPUT、POSTROUTIONG
 mangle     用在数据包特殊变更操作                         全部的内置链

2、netfilter的工作原理

我们以系统缺省的表为“filter”为例进行讲解。该表中包含了INPUT、 FORWARD和OUTPUT
3个链。每一条链中可以有一条或数条规则,每一条规则都是这样定义的“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件:
如果满足,系统
根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。最后,如果该数据包不符合该链中任一条规则的话,系统就会根据该链预先定义的策略(policy)来处理该数据包。当有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,则可能有以下三种情况:

(1)如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉;
(2)如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉;
(3)如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个包丢掉。

3、iptablesr的基本语法格式及分析

iptables的基本语法格式如下: iptables [-t table] command [match] -j
[target/jump ] –t参数来设置对哪一张表生效,默认是filter表。如果是要对nat操作,则需要注明-t nat。
Command告诉程序该做什么,如:插入、或删除一个规则。如-A是代表在所选择的链的最后添加一条规则;而-D则是从所选的链中删除规则。
Match是用来指定过滤数据包所参照的条件。如源IP地址、网络接口、端口、协议类型等。如-p tcp代表针对TCP协议;
-s10.0.0.1是指针对源地址 为10.0.0.1的数据包;
-i eth0是针对本地所使用的eth0网络接口。
Target/jump:通过对数据包与所有规则的匹配结果,内核将做出相应的处理动作。
-j ACCEPT表示当信息包与具有ACCEPT目标的规则完全匹配时会被接受(允许它前往目的地)。

实验内容

一:开启靶机的ssh远程连接服务

cd /etc/ssh/
ls
vim sshd_config

将#PasswordAustentication no 的注释去掉,并将no改为yes
将PermitRootlogin without-password 改为PermitRootlogin yes(kali中可能写好为#PermitRootlogin yes,去掉注释即可 )
开启ssh服务:

 /etc/init.d/ssh start
 或者service  ssh start

查看ssh服务状态:

/etc/init.d/ssh status
或者service  ssh status

在这里插入图片描述
关闭ssh服务:

 /etc/init.d/ssh stop
 或者service  ssh stop

远程连接kali:(SecureCRT)
在这里插入图片描述

连接到Kali靶机(防火墙)
在这里插入图片描述

查看靶机开放端口:

netstat -tnl

在这里插入图片描述

二:通过iptables实现TCP包的过滤

规则讲解:
-A 参数就看成是添加一条 INPUT 的规则
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS,到时我们要配置DNS用到53端口,大家就会发现使用udp协议的,而–dport
就是目标端口,当数据从外部进入服务器为目标端口,反之数据从服务器出去则为数据源端口使用 --sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收

查看iptables设置的链规则

iptables -L -n
在这里插入图片描述

添加规则关闭某端口(如TCP的22端口)
然后,查看已有规则,并试图访问该端口。

关闭靶机22端口后,访问该端口

添加规则关闭某端口(如TCP的22端口)

iptables -A INPUT -P tcp --dport 22 -j DROP #禁止外部访问kali的22端口
iptables -A OUTPUT -p tcp --dport 22 -j DROP #禁止kali通过22端口链接外部

iptables -n -L 查看链规则
在这里插入图片描述

ssh远程连接该靶机

在这里插入图片描述
发现靶机连接超时,连接失败

删除刚才创建的规则

iptables -D INPUT 1
iptables -D OUTPUT 1
iptables -L -n
在这里插入图片描述

再次远程连接:

在这里插入图片描述
连接成功

三:通过iptables实现ICMP包的过滤

记录ICMP日志

iptables -A INPUT -p icmp -j LOG
在这里插入图片描述
再打开一个终端“Terminal”(此实验简称T2)

“cd /var”
“cd \log”
“tail –f syslog”

主机上ping 目标靶机IP地址并查看icmp日志

在这里插入图片描述

关闭靶机ICMP服务后,访问该端口

iptables -I INPUT -p ICMP -j REJECT :拒绝外部通过icmp报文访问目标靶机
在这里插入图片描述
ping 目标主机,发现不能ping通
在这里插入图片描述
tail –f syslog:查看日志,发现并无ping命令的icmp报文

在这里插入图片描述

删除上述规则允许ICMP包通过

iptables -D INPUT 1 删除INPUT链中的1号规则
iptables -L -n 查看防火墙配置
在这里插入图片描述

试图执行ping命令

在这里插入图片描述
发现可以ping 通

关闭ssh服务

service ssh stop:在这里插入图片描述

实验总结:明确防火墙原理,掌握ssh服务的配置使用能力,熟悉secureCTR的使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值