记录一下这学期最难的一次网络安全实验,恰逢期末,之后回来填坑
[1] 虚拟机 virtualbox 配置
如何便捷地
copy 虚拟机(直到写这篇 wp 才想起来可以 STFW,我最开始用的
vdi...还需要用
VBoxManage internalcommands sethduuid /path/to/your.vdi
重新解绑uuid)
由于此次打开的虚拟机较多,所以每个虚拟机内存只分配2GB即可
之后,把双向粘贴板和双向拖放打开,再把“显示 -> 屏幕”中扩展特性的“启用3D加速”打开(要不然会花屏)
之后再在“网络 -> 网卡1”栏目中,将连接方式改为“内部网络”,然后名称改为intnet0/1/2(这里根据自己需求来写,比如我配的权威DNS就是intnet1)
最后进入虚拟机中,在上方栏目的“设备”中点击安装增强功能,它会自动打开一个文件夹,在终端里运行autorun.sh即可自动安装,之后重启虚拟机就可以启用双向粘贴板和拖放了
[2] 虚拟机网络配置
IP 分配为:
攻击者——192.168.3.200
受害者——192.168.3.100
权威服务器——192.168.4.105
正常网站——192.168.4.100
递归服务器——192.168.5.53
钓鱼网站——192.168.5.80
[2-1] openwrt
[2-1-1] network
通过 vi /etc/config/network
为每个⽹络接⼝配置相应的设置。这通常包括设置IP地址、⽹关、⼦⽹掩码等,这里我配置为以下内容
1 | config interface 'loopback' |
其中,wan与virtualbox‘网络’配置中的网卡1(网络地址转换)是对应的,device是eth0。lan1与virtualbox‘网络’配置中的网卡2(intnet0)是对应的,device是eth1,ipaddr192.168.3.1是网关ip,netmask是子网掩码,以此类推lan2和lan3。
配置好之后,我们需要使用 /etc/init.d/network restart
重启服务
[2-1-2] firewall
通过 vi /etc/config/firewall
添加或修改防⽕墙规则,这里
firewall 的文件太长,我就不贴在这里了,可以自行gpt。编辑好之后,可以通过
/etc/init.d/firewall restart
重启防火墙
[2-1-3] 测试网络
可以通过 ping www.baidu.com
和 ping 8.8.8.8
来测试路由器是否可以访问互联网。
[2-2] ubuntu
可以通过
sudo vim /etc/netplan/01-network-manager-all.yaml
来配置
ubuntu 虚拟机的网络设置,以权威域名服务器为例,配置如下:
1 | # Let NetworkManager manage all devices on this system |
然后通过 sudo netplan apply
重启网络配置,其他几个虚拟机也如法炮制
重启之后,可以通过 ping www.baidu.com
来判断是否可以通过路由器访问外网,如果成功则网络配置完毕;如果失败则使用
ping 192.168.4.1
来判断路由器与虚拟机之间的网络是否连接正常,如果成功则说明路由器无法访问互联网,如果失败则说明虚拟机和路由器间链接不正常,检查virtualbox网卡配置、虚拟机网络配置和路由器网关、防火墙配置。
[3] 域名服务器
在本实验中,我们使用 bind9 来配置 DNS,首先通过以下命令下载 bind9
1 | sudo apt update |
[3-1] 权威域名服务器
权威域名服务器存储了完整的域名,直接通过访问数据库获取最新的域名和ip对应关系
[3-1-1] 配置 zone 文件
首先,我们需要编辑 bind9 的配置文件。bind9 的主配置文件通常是
/etc/bind/named.conf.local
,我们在这个文件中添加下述内容,等价于为
bind9 添加了一个 zone
1 | zone "test.seclab.online" { |
其次,我们需要创建区域数据文件。我们先使用
sudo mkdir /etc/bind/zones
创建目录,再使用
sudo vim /etc/bind/zones/db.test.seclab.online
向该数据文件中加入下面内容:
1 | $TTL 10 ; 以下NS、A等记录如果不指定生存期,默认10s的ttl |
[3-1-2] 配置 BIND 监听 IP 地址
编辑 BIND 的主配置文件
/etc/bind/named.conf.options
,设置 BIND 监听的 IP
地址和端口。确保该文件中存在:
1 | options { |
[3-1-3] 启动服务
使用以下命令重启 BIND9 服务并使防火墙允许 DNS 请求通过 53 端口
1 | sudo systemctl restart bind9 |
[3-1-4] 测试
在客户端上通过 dig @192.168.4.105 test.seclab.online
命令,如果 DNS 配置正确,我们可以看到如下输出:
1 | ; <<>> DiG 9.18.28-0ubuntu0.22.04.1-Ubuntu <<>> @192.168.4.105 test.seclab.online |
[3-2] 递归域名服务器
[3-2-1] options文件
首先通过 sudo vim /etc/bind/named.conf.options
编辑
bind9 的主配置文件,在其中放入以下内容
1 | options { |
完成配置后,我们使用 sudo systemctl restart bind9
重启配置,并通过以下命令设置防火墙
1 | sudo ufw allow 53 |
[3-2-2] 客户端设置
由于客户端虚拟机默认的 nameserver 不是 192.168.5.53,因此我们需要使用
sudo vim /etc/resolv.conf
将
nameserver 127.0.0.53
改为我们自己的递归域名服务器,即
192.168.5.53