过年前,发现了一款名为 pentestit 的在线靶场,看着挺有意思,但 vpn 死活连不上,于是萌生出再本地搭建的念头。最初考虑用 eve-ng 搭建,但该环境是跑在我的机械硬盘上,机械盘跑 kali 怪卡的,后来想试试 openstack,但环境死活安不上,后来在网上看到还有用 gns3 和 pfsense 搭建的,gns3 搭建也可以,但启动感觉有点麻烦,最后我用 pfsense 根据自身需求搭建了一个本地版的 pentestit,并写成此文。
拓扑图:
计划:
1. 把 1 号靶机发布到公网
2.2 号靶机能跟 1 号和 3 号靶机双向通信,但 1 号和 3 号不能通信
3.1、2 号不能和 LAN 区域通信,3 号靶机能和 LAN 中的 win03 靶机双向通信
4. 网络中心、win08 和 web 不能访问外网和 DMZ
5. 网络中心用域管理账户通过 3389 登入 web
6.Kali 通过 NAT 方式连接外网
7. 外网有台 vps
IP 规划:
WAN:10.20.10.0/24、100-110 为 pfsense 的外网地址
ADMIN:192.168.100.0/24
DMZ:
192.168.23.64/26 (DMZ01)
192.168.23.128/26 (DMZ02)
192.168.23.192/26 (DMZ03)
子网掩码:255.255.255.192
LAN:
172.16.23.0/25 (Server-LAN)
172.16.23.128/25 (Office-LAN)
子网掩码:255.255.255.128
1. 打开虚拟网络编辑器,添加一块仅主机网卡 (ADMIN),此网卡主要用于通过 web 管理 pfsense
2. 任意打开一台虚拟机的虚拟机设置,点击网络适配器 -> LAN 区段 -> 添加,分别添加 6 个 LAN 区段:DMZ01、DMZ02、DMZ03、Server-LAN、Office-LAN、Clients
下载pfsense:https://www.pfsense.org/download/
新建虚拟机,配置如下
cpu:1
内存:>=512m
硬盘:20g
网络:nat、自定义 (ADMIN)、LAN 区段 (DMZ01)、LAN 区段 (DMZ02)、LAN 区段 (DMZ03)、LAN 区段 (Server-LAN)、LAN 区段 (Office-LAN)
(ps:注意,网卡顺序不要乱,试过不小心把 admin 跟 lan 掉了下位置,然后配置完管理地址后却无法在物理机的浏览器打开)
启动虚拟机
回车继续
回车继续
回车继续
回车继续
回车继续
回车继续,重启后完成安装
接下来配置 web 端地址
输入 2
继续输入 2,然后输入 ip 地址,网络号与前面自定义网卡 (ADMIN) 的网络号相同
输入地址后回车,输入 24,两次回车之后会提示是否在 lan 启用 dhcp,输入 n
下面输入 y
稍等片刻,管理地址配置完成
然后浏览器访问 web 管理界面
默认账户密码:admin/pfsense
一路 next,后面会提示更改管理员密码,改不改都行,不改的话上面那行红色字会一直存在
Reload
Finish
稍等片刻进入仪表盘
ps:这玩意可设置中文,system->general setup->language
接下来进入配置阶段
添加接口:
网络接口 ->接口管理
点击添加,把其余 5 个接口添加进来,保存设置
配置 wan 口:
网络接口->wan,配置如下
IPv4 配置类型:静态 ipv4
IPv4 地址:10.20.10.254/24 (就是上面配置的 nat 的网段)
取消勾选阻止专用网络和回环地址和阻止未知网络
其余的默认,保存设置
配置 lan 口:
网络接口->lan,配置如下
描述:ADMIN
IPv4 配置类型:静态 ipv4
其余默认,保存设置
配置 OPT1(DMZ01)
网络接口->OPT1,配置如下
勾选启用接口
描述:DMZ01
IPv4 配置类型:静态 IPv4
IPv4 地址:192.168.23.126 /26
保存设置
配置 OPT2(DMZ02)
网络接口->OPT2,配置如下
勾选启用接口
描述:DMZ02
IPv4 配置类型:静态 IPv4
IPv4 地址:192.168.23.190 /26
保存设置
配置 OPT3(DMZ03)
网络接口->OPT3,配置如下
勾选启用接口
描述:DMZ03
IPv4 配置类型:静态 IPv4
IPv4 地址:192.168.23.254 /26
保存设置
配置 OPT4(Server-LAN)
网络接口->OPT4,配置如下
勾选启用接口
描述:Server_LAN
IPv4 配置类型:静态 IPv4
IPv4 地址:172.16.23.126 /25
保存设置
配置 OPT5(Office-LAN)
网络接口->OPT5,配置如下
勾选启用接口
描述:Office_LAN
IPv4 配置类型:静态 IPv4
IPv4 地址:172.16.23.254 /25
保存设置
配置完后点击应用更改
访问状态->网络接口,可查看接口信息
允许 ping WAN 的地址,方便测试 (可选)
防火墙->规则策略->WAN,点击左边的添加按钮,将规则添加到列表顶部,配置如下
动作:通过
接口:wan
地址簇:IPv4
协议:icmp
icmp 子网类型:回应请求
源类型:网络
源地址:10.20.10.0/24
目标类型:wan address
禁止 ADMIN 网络访问其他网络 (管理网络不需要跟其他网络通信)
防火墙->规则策略->ADMIN,删除 ipv6 那条规则,点击左边的添加按钮,将规则添加到列表顶部,配置如下
动作:阻止
接口:ADMIN
地址簇:IPv4
协议:any
源地址:ADMIN net
目的地址:any
配置完成后点击应用更改
配置 DMZ 区的 DHCP 服务 (DMZ 区放的是 vulnhub 的靶机,为了方便 ip 配置)
系统服务->DHCP 服务->DMZ01,配置如下
勾选在接口 DMZ01 上启用 DHCP 服务
范围:从 192.168.23.65 到 192.168.23.125
网关:192.168.23.126
保存设置
DMZ02、03 同上,但范围和网关需要改下
DMZ 区配置
需求 1:将 1 号靶机发布到外网添加虚拟 ips
防火墙->虚拟 ips->添加,配置如下
保存设置->应用更改
打开靶机,把网络适配器设为:lan 区段 (DMZ01),启动;通过状态->DHCP 租约 查看靶机 ip
配置 nat 1:1,防火墙->地址转换->1:1->添加
配置防火墙允许访问外网 1 号靶机,防火墙->规则策略->WAN->添加
保存设置->应用更改
需求 2:允许 2 号和 1、3 号靶机通信;禁止 1 号和 3 号靶机之间通信;禁止 1 号、2 号靶机与 LAN 通信;允许 3 号靶机与 Office-LAN 中的 win03 通信 DMZ01、02、03 的防火墙规则如下
需求 1:win08-dc 和 web 不能访问外网和 DMZ (win08、web、网络中心连 Server-LAN 接口)
Server_LAN 的防火墙配置如下
需求 2:win03 仅允许允许访问外网和 web 的 80 端口 (web 的 ip:172.16.23.12;win03 连 Office-LAN 接口)
Office-LAN 防火墙配置如下
需要访问外网还需配置 nat,防火墙->地址转换->出站;把出站 nat 模式设为手动,并添加一条映射
安装台新的 pfsense,做攻击者的网关,安装方法同上:
网卡:nat、lan 区段 (Clients),其余不变
把 web 管理地址设为 192.168.1.1/24
把 kali 的网卡设为 lan 区段 (Clients),手动修改 ip192.168.1.2
配置 nat:
(wan 地址可手动配置也可自动获取)
最后再开台 centos,网络设为 nat,模拟公网中的 vps。
如果配置了 nat 却无法上网,检查下 dns 配置是否正确;
防火墙配置无误却无法正常通信,尝试重启客户端网络,还不行重启 pfsense
同一子网间通信,不走 pfsense,这也是我为啥建那么多 lan 区段的原因;通过区段模拟 vlan,对网段做子网划分,分配给不同的区段,实现跨网段通信,这样才能在 pfsense 上去做限制了,此处 pfsense 主要充当路由和防火墙角色
*本文原创作者:wnltc0,本文属 FreeBuf 原创奖励计划,未经许可禁止转载