linux下iptables配置实验

linux下iptables配置实验

一、实验要求

利用Linux自带的iptables配置防火墙。完成如下配置:

linux下iptables配置实验_第1张图片

要求:(1)阻止任何外部世界直接与防火墙内部网段直接通讯

(2)允许内部用户通过防火墙访问外部HTTP服务器允许内部用户通过防火墙访问外部HTTP服务器

(3)允许内部用户通过防火结防问外部FTP服务器。

(4)其余功能可自行添加,作为加分项。

二、实验环境

实验主机 角色
centos8 外网主机
kali 网关
centos8克隆机 内网主机

配置目标拓扑:

linux下iptables配置实验_第2张图片

三、实验准备

首先准备三台虚拟机,centos8为外网主机,kali为网关,centos8克隆机为内网主机。

先互相ping,测试它们之间的连通性,如果都可以互相ping通那么开始下一步,关闭三台主机的seclinux,并清空iptables规则:

iptables -F

iptables -L 查看规则

预备知识(关于iptables):

1、规则链
规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中规则链是防火墙规则/策略的集合

默认的5种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
2、规则表
具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链以后,被归置到不同的“表”中规则表是规则链的集合

默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包(过滤)
3、规则表间的优先顺序
依次为:raw、mangle、nat、filter

raw(PREROUTING、OUTPUT)

mangle(INPUT、OUTPUT、FORWARD、 POSTROUTING、PREROUTING)

nat(POSTROUTING、PREROUTING、OUTPUT)

filter(INPUT、FORWARD、OUTPUT)

规则链间的匹配顺序
入站数据:PREROUTING、INPUT
出站数据:OUTPUT、POSTROUTING
转发数据:PREROUTING、FORWARD、POSTROUTING

规则链内的匹配顺序
按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)
若在该链内找不到相匹配的规则,则按该链的默认策略处理

4、iptables命令的语法格式
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。

几个注意事项
不指定表名时,默认表示filter表
不指定链名时,默认表示该表内所有链
除非设置规则链的缺省策略,否则需要指定匹配条件

1、配置网关

对kali虚拟机进行配置

虚拟机设置中添加网卡:

虚拟机—>设置—>添加

linux下iptables配置实验_第3张图片

linux下iptables配置实验_第4张图片

设置虚拟机网卡:

编辑—>虚拟网络编辑器–>更改设置

linux下iptables配置实验_第5张图片

linux下iptables配置实验_第6张图片

设置NAT模式的网关IP:

linux下iptables配置实验_第7张图片

配置网卡信息:

image-20210426083652160

linux下iptables配置实验_第8张图片

然后:wq!保存退出。

记住,每修改依次配置文件就要重启一下网卡:service networking restart

查看网卡信息:

linux下iptables配置实验_第9张图片

如图所示,配置成功!

开启转发服务:

vim /etc/sysctl.conf

linux下iptables配置实验_第10张图片

到此网关配置完毕。


2、配置内网主机

内网centos

虚拟机–>设置

linux下iptables配置实验_第11张图片

回到主机配置网卡:

image-20210426083547715

linux下iptables配置实验_第12张图片

注意网关设置为kali的内网网卡IP。

重启网卡:

ifdown ens33

ifup ens33

查看网卡信息:

linux下iptables配置实验_第13张图片

配置成功!

3、配置外网主机

外网centos

虚拟机–>设置

linux下iptables配置实验_第14张图片

配置网卡文件:

image-20210426085929742

linux下iptables配置实验_第15张图片

重启网卡:

ifdown ens33

ifup ens33

查看网卡信息:

linux下iptables配置实验_第16张图片

成功,外网主机配置完毕。


4、开启iptables NAT转换

目的是可以将内网IP转换为外网IP进行通信

切换到网关主机kali:

iptables -t nat -A POSTROUTING -s 192.168.126.0/24 -j MASQUERADE

外网IP地址不稳定的情况即可使用MASQUERADE(动态伪装),能够自动的寻找外网地址并改为当前正确的外网IP地址

image-20210507203537662

linux下iptables配置实验_第17张图片

验证:

外网内网能互相ping通:

linux下iptables配置实验_第18张图片

linux下iptables配置实验_第19张图片

成功!


四、设置防火墙策略

1、禁止内网ping外网:

网关kali设置策略,拒绝icmp

iptables -A FORWARD -p icmp -d 192.168.80.* -j REJECT

iptables -L

linux下iptables配置实验_第20张图片

在内网主机centos上ping外网:

linux下iptables配置实验_第21张图片

已被拒绝。

关于iptables -L

target:代表进行的操作,ACCEPT是放行,REJECT是拒绝,DROP丢弃

prot:代表使用数据包协议,主要有TCP,UDP,ICMP三种

opt:额外的选项说明

source:代表此规则是针对哪个来源IP进行限制

destination:代表此规则是针对哪个目标IP进行限制


2、http端口限制

内网centos8访问端口为80的http服务:

访问成功!

linux下iptables配置实验_第22张图片

在网关kali上设置规则,拒绝内网对http服务的访问:

iptables -A FORWARD -p tcp --dport 80 -j REJECT

linux下iptables配置实验_第23张图片

回到内网主机centos,继续访问百度:

image-20210425222420331

已被拒。


3、https服务策略

在内网主机centos上访问端口为443的https服务:

linux下iptables配置实验_第24张图片

如图所示,访问成功!

在网关添加策略,拒绝内网主机对https服务的访问:

linux下iptables配置实验_第25张图片

回到内网主机centos,继续访问https服务:

image-20210425223105604

已被拒绝。


4、ftp策略设置

在内网主机centos上访问ftp资源:

linux下iptables配置实验_第26张图片

如图所示,访问成功!

在网关kali主机中配置策略:

拒绝对21,20端口的访问

linux下iptables配置实验_第27张图片

回到内网主机centos,继续用ftp去访问资源:

image-20210426082947644

如图所示,已被拒绝。


参考文章:

遇到的问题及参考文章:

内网无法访问外网:网关转发,iptables设置nat转换

内网无法访问百度:虚拟机联网

参考配置文章:配置流程

注:遇到问题不要慌,耐心分析一下,画一下网络拓扑,找找问题和解决方案。

你可能感兴趣的:(linux,linux,网络,iptables)