前言
- 我搭建靶场的时候又不能将靶场的网络直接连到我的生产网络,万一靶场有恶意程序扫描我生产网络可能会造成一下不好的影响,毕竟家里挺多设备的。但是因为我的NUC主机只有一张网卡,esxi分了vlan也不能自动获取IP地址,这时就要用到软路由给esxi里面的端口组分配IP地址了。

安装openwrt
➜ qemu-img convert -f raw -O vmdk openwrt-22.03.3-x86-64-generic-ext4-combined.img openwrt-22.03.3-x86-64-generic-ext4-combined.vmdk
➜ ls -al openwrt-22.03.3-x86-64-generic-ext4-combined.vmdk
.rw-r--r-- kali-team users 25 MB Sun Apr 2 13:26:57 2023 openwrt-22.03.3-x86-64-generic-ext4-combined.vmdk
- 将vmdk后缀文件上传到esxi,创建虚拟机的时候把默认的硬盘删除掉再添加现有的硬盘文件,也是就是刚刚上传的硬盘文件。

- 把默认的硬盘删除掉,然后添加新的硬盘,控制器位置改成IDE控制器0,不然启动不了。

- 选择刚刚上传的硬盘文件,将软路由用不到的设备删除。

配置单网卡
- 为了能一步步了解步骤,和openwrt能联网更新安装中文界面,先添加一个
VM Network
网卡。

- 编辑
/etc/config/network
文件,ipaddr改为VM Network
网卡同一个网段,比如我的esxi服务器的IP是10.168.1.2,所以软路由的桥接地址192.168.1.1改为10.168.1.3。保存配置文件后重启。
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd84:83b8:ea18::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '10.168.1.3'
option netmask '255.255.255.0'
option ip6assign '60'

Web管理界面

- 登录后台可以到网络测试,发现网络不通,到
Interfaces
添加网关和广播,保存应用后就可以联网了。


安装中文界面
- 更新软件库,改清华大学源,更新完直接安装luci-i18n-base-zh-cn再刷新页面就是中文的了。
root@OpenWrt:~# sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
root@OpenWrt:~# opkg update
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/targets/x86/64/packages/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/targets/x86/64/packages/Packages.sig>
Signature check passed.
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/base/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/base/Packages.sig>
Signature check passed.
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/luci/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/luci/Packages.sig>
Signature check passed.
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/packages/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/packages/Packages.sig>
Signature check passed.
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/routing/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/routing/Packages.sig>
Signature check passed.
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/telephony/Packages.gz>
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/telephony/Packages.sig>
Signature check passed.
root@OpenWrt:~# opkg install luci-i18n-base-zh-cn
Installing luci-i18n-base-zh-cn (git-23.090.61754-f7f34d4) to root...
Downloading <https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.3/packages/x86_64/luci/luci-i18n-base-zh-cn_git-23.090.61754-f7f34d4_all.ipk>
Configuring luci-i18n-base-zh-cn.
添加多网卡
- 一开始br-lan桥接了esxi的
VM Network
网卡是为了联网更新,但是添加多网卡就要把配置重新改掉。把openwrt虚拟机关掉添加一块网卡,再重启系统。

- 到Web管理界面添加新接口,刚刚的
HostOnly Network
网卡就是eth1

- 要其他虚拟机在openwrt虚拟机中自动分配到IP地址,所以openwrt要当网关,所以IP要设置为192.168.233.1。那之前的
VM Network
网卡eth0就是路由器的WAN口,新添加的HostOnly Network
网卡就是LAN口,其他虚拟机都接HostOnly Network
网卡才可以进入新的网段,而不是都连到esxi服务器这个10.168.1.0/24网段。



root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fda9:ae83:3e7a::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config interface 'lan'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
list dns '8.8.8.8'
list dns '1.1.1.1'
option device 'eth1'
option ipaddr '192.168.233.1'
option broadcast '192.168.233.255'
config device
option name 'eth0'
config interface 'wan'
option proto 'dhcp'
option device 'br-lan'
- 更新网络过后只能通过LAN口,也就是192.168.233.0/24这个段访问Web控制台,因为openwrt默认是不允许WAN口访问Web控制台的,就像你家光猫不能访问它的下面的路由器一样,但是我们又想通过10.168.1.0/24这个网段登录WAN口访问Web管理界面,所以要设置防火墙将192.168.233.0/24这个网段到openwrt的流量全部拦截掉,允许WAN口访问Web控制台。
- 修改防火墙配置文件(/etc/config/firewall),input表示入网,output表示出网,ACCEPT表示放行,REJECT表示拒绝,DROP表示直接丢弃,所以把lan和wan的配置倒过来就好了,我也不想192.168.233.0/24能访问软路由,所以把lan口的流量都禁掉。
config defaults
option syn_flood 1
option input ACCEPT
option output ACCEPT
option forward REJECT
# Uncomment this line to disable ipv6 rules
# option disable_ipv6 1
config zone
option name lan
list network 'lan'
- option input ACCEPT
- option output ACCEPT
- option forward ACCEPT
+ option input REJECT
+ option output REJECT
+ option forward REJECT
config zone
option name wan
list network 'wan'
list network 'wan6'
- option input REJECT
+ option input ACCEPT
option output ACCEPT
- option forward REJECT
+ option forward ACCEPT
option masq 1
option mtu_fix 1
config forwarding
option src lan
option dest wan
root@OpenWrt:/etc/init.d/firewall restart
root@OpenWrt:~#
- 现在就可以再次登录Web控制台界面了,你也可以在Web设置防火墙

设置防火墙
- 再创建一个ubuntu虚拟机,添加
HostOnly Network
网卡,用来对这个网卡做测试。


- 但是它还可以访问10.168.1.0/24这个段,很明显是不合理的,所以要再添加防火墙规则把他们拦截了。

- 添加过滤规则,拦截从192.168.233.0/24到10.168.1.0/24的全部协议。

- 保存并应用后,从192.168.233.0/24到10.168.1.0/24都不通了

总结
- 网上的靶场并不是全部可信的,所以隔离出来一个受保护的网络非常重要,如果NUC主机有多张网卡就不需要这么折腾了,但是单网卡分网段目前可行方案就是用软路由自己再隔离一层网络出来,以后的攻击系统也会装到这个隔离网络环境,在使用的时候才添加桥接网卡进去。
参考