找回密码
 立即注册
首页 业界区 安全 【项目实践】使用GNS3模拟三层架构中小型企业组网 ...

【项目实践】使用GNS3模拟三层架构中小型企业组网

嫁吱裨 昨天 11:10
安装GNS3


  • 安装教程:https://blog.csdn.net/qq_63855540/article/details/147834429
    (gns3默认的终端难看,建议换个自己习惯的,比如mobaxterm)
  • 虚拟化环境报错:https://henchat.net/win11-24h2-vmware-error-intel-vt-x-ept/
  • 一直在waiting http://local:3080:https://tieba.baidu.com/p/6059085630
    cmd下执行以下两行命令,然后重启
    netstat -anb
    netsh winsock reset
  • 思科镜像1:https://github.com/hegdepavankumar/Cisco-Images-for-GNS3-and-EVE-NG
  • 思科镜像2:https://zhaokaifeng.com/6069/
要求

题目要求为200名员工的中型企业设计一个具有安全防护功能的网络架构,公司有销售、开发、管理三个部门,需要提供内网远程访问,DMZ托管web、邮箱、DNS服务器。网络架构使用三层结构:核心(core),汇聚(distribute),接入(access),使用两个及以上三层交换机。设计适当的VLAN、IP范围。内/外部防火墙,路由器,交换机做安全配置和访问控制。接入端包括员工设备和访客AP。用虚拟机网络配置模拟云端,使用kali接入模拟公网攻击者,进行安全测试。
网络设计


其实用冗余设计来满足题目要求更好,但由于时间限制,这里只设计并实现了由两个三层交换机分别作为核心、汇聚层的结构。虽然一个三层交换机也能同时承担核心和汇聚功能,但分开来能提高处理效率,也更符合现实需求。核心层专注于高速、可靠地转发数据,部署在中心机房(比如学校网络中心),而汇聚层负责汇聚多台二层交换机(接入层)的流量,给VLAN做路由,能启用ACL(Access Control List,访问控制)控制VLAN的访问权限,部署在分属的机房(比如宿舍楼的总机房)。
三层解析参考:https://libai.blog.csdn.net/article/details/151764710
在安全设计上,这里使用三脚防火墙three-legged firewall的架构,DMZ交换机直接连接在防火墙上,使得内网与DMZ之间的通信被防火墙保护。但会使得内部主机访问DMZ 服务性能下降,因为要经过防火墙才能访问。此外还有双防火墙方案,外部防火墙用于过滤从公网进入的流量,内部防火墙保护DMZ和内部网络之间的通信。

防火墙结构设计参考:https://www.firewall.cx/networking/network-fundamentals/firewall-topologies-dmz-zone.html
DMZ,Demilitarized Zone,是一个用来部署供内外网访问的服务器的隔离区,因为部署的服务要面对外部不可信流量,所以它也受到“污染”,变得不可信,而同时它也要为内部网络提供服务。为了将内外网流量安全隔离开来,外网流量无法直接穿透服务器抵达内网,就需要使用DMZ,即使DMZ中的服务器被攻破,也无法直接横向移动到内网。

设备选择(镜像坑)


  • Cloud
    我这里在本机上模拟公网,实际上并不与真实互联网互通。在vmware的虚拟网络编辑器里选择一个vmnet,设置为仅主机模式,自己设置一个子网ip给它。给gns3 vm添加一个网卡,接入这个vmnet,我还使用kali模拟公网的入侵者,所以给kali也接入这个vmnet。
  • 外部防火墙
    pfsense同时满足外部路由器和防火墙的功能,VPN配置方便。在官网上下载pfsense镜像,从edit>preferences>Qemu VMs中新建一个虚拟机,将下载的镜像导入,没有截图的部分默认即可。



    给2G RAM,否则运行不了。

    选择下载的镜像。

    根据自己需要修改接口数量:

  • L3交换机(core、distribution-switch)
    选择c3725-adventerprisek9- mz.124-15.T14镜像,在IOS routers导入。
    因为要求启用安全防护功能,找了很多L3交换机都没有这个功能,所以用c3725路由器来模拟L3交换机。参考:https://blog.csdn.net/woay2008/article/details/124045710

  • L2交换机(DMZ交换机、sales/dev/mgmt/guest-switch、访客AP)
    选择viosl2-adventerprisek9-m.ssa.high-iron-20200929镜像,跟pfsense类似,在QEMU VM中导入,设置全都默认。
    访客AP也用L2交换机模拟。
  • DMZ服务器
    DMZ中的服务器全都使用docker:python:3-alpine。
    (因为我用各个服务的docker镜像都遇到各种问题)
    在docker containers里new,选择new image,输入上述docker名即可。

  • 用户PC
    因为要测试网络连通性和调用DMZ服务,用了一个有网络工具的docker。docker:praqma/network-multitool
  • 配置pfsense的浏览器
    pfsense有web端,为了方便配置,拉一台机器出来连上pfsense。选docker:jlesage/firefox

注意项:镜像不一定有你想要的功能,多换几个试试
网段划分


  • 关键IP
    pfsense:10.0.254.1
    核心L3 f1/1:10.0.254.2
    核心L3 f1/0:10.0.253.2
    汇聚L3:10.0.253.1
  • DMZ
    vlan 99
    子网:10.0.99.0/24
    网关(pfsense与dmz连接的接口e3):10.0.99.1
    web:10.0.99.10
    dns:10.0.99.20
    mail:10.0.99.30
  • 销售部
    vlan 10
    子网:10.0.10.0/24
    网关(汇聚L3与销售部交换机的接口):10.0.10.2
    保留地址:10.0.10.1-10.0.10.10
    DHCP池:10.0.10.10-10.0.10.254
  • 开发部
    vlan 20
    子网:10.0.20.0/24
    网关(汇聚L3与开发部交换机的接口):10.0.20.2
    保留地址:10.0.20.1-10.0.20.10
    DHCP池:10.0.20.10-10.0.20.254
  • 管理部
    vlan 30
    子网:10.0.30.0/24
    网关(汇聚L3与管理部交换机的接口):10.0.30.2
    保留地址:10.0.30.1-10.0.30.10
    DHCP池:10.0.30.10-10.0.30.254
  • 访客wifi
    vlan 50
    子网:10.0.50.0/24
    网关(汇聚L3与访客交换机的接口):10.0.50.2
    保留地址:10.0.50.1-10.0.50.10
    DHCP池:10.0.50.10-10.0.50.254
  • OpenVPN(pfsense上配置)
    子网:10.0.8.0/24
配置二层交换机(L2)

分配vlan,连通三层交换机和用户终端:
  1. enableconf tvlan xxexitinterface 上级接口switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan xx no shutexitinterface 下级接口 switchport mode access switchport access vlan xx no shutendwr mem
复制代码
若二层要加上arp防护:(先关闭option 82)
  1. enableconf tvlan xxexit(no ip dhcp snooping information option)ip dhcp snoopingip dhcp snooping vlan xxip arp inspection vlan xxinterface 上级接口switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan xx ip dhcp snooping trust ip arp inspection trust no shutexitinterface 下级接口 switchport mode access switchport access vlan xx no shutendwr mem
复制代码
检查arp防护设置,设置正确会类似下图:


配置汇聚三层交换机(distribution L3)

配置与核心L3的连接:
  1. conf tinterface f1/0 no switchport ip address 10.0.253.1 255.255.255.0 no shutdownexit! 默认路由指向核心交换机ip route 0.0.0.0 0.0.0.0 10.0.253.2
复制代码
创建vlan:
  1. ! 新建vlan xx (比如vlan 10)enableconf tvlan 10exit! 给vlan 10 分配地址interface vlan 10ip address 10.0.10.2 255.255.255.0no shutdown ! 启用exit! 给指定接口放行vlan 10interface 下级接口 ! 不确定名字的话在该设备设置里看 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10 no shutendwr mem
复制代码
配置DHCP:
  1. enableconf tip routingip dhcp excluded-address 10.0.10.1 10.0.10.10ip dhcp pool VLAN10 network 10.0.10.0 255.255.255.0 default-router 10.0.10.2 dns-server 10.0.99.20 lease 7endwr mem! 检查DHCP状态show ip dhcp bindingshow ip dhcp pool
复制代码
ACL:
  1. ip access-list extended GUEST_IN ! DNS permit udp 10.0.50.0 0.0.0.255 host 10.0.99.20 eq 53 permit tcp 10.0.50.0 0.0.0.255 host 10.0.99.20 eq 53 ! Web permit tcp 10.0.50.0 0.0.0.255 host 10.0.99.80 eq 80! Mailhog(按实际端口) permit tcp 10.0.50.0 0.0.0.255 host 10.0.99.30 eq 1025 permit tcp 10.0.50.0 0.0.0.255 host 10.0.99.30 eq 8025 ! 禁止访问其它10/8内部网段 deny ip 10.0.50.0 0.0.0.255 10.0.0.0 0.255.255.255 ! 允许出网 permit ip 10.0.50.0 0.0.0.255 any  interface vlan 50 ip access-group GUEST_IN in
复制代码
配置核心三层交换机(core L3)
  1. enableconf t! 开启路由功能ip routing! 配置连接 pfSense 的接口 (f1/1)interface f1/1 no switchport ip address 10.0.254.2 255.255.255.0 no shutdownexit! 配置连接 汇聚L3 的接口 (f1/0)interface f1/0 no switchport ip address 10.0.253.2 255.255.255.0 no shutdownexit
复制代码
配置静态路由:
  1. ! 默认路由,所有去往外部的数据包都给pfSenseip route 0.0.0.0 0.0.0.0 10.0.254.1! 回程路由,所有去往内网的数据包都给汇聚L3ip route 10.0.10.0 255.255.255.0 10.0.253.1ip route 10.0.20.0 255.255.255.0 10.0.253.1ip route 10.0.30.0 255.255.255.0 10.0.253.1ip route 10.0.50.0 255.255.255.0 10.0.253.1endwr mem
复制代码
内网连通测试

用户PC获取ip:
  1. ip link set eth0 upudhcpc -i eth0 -v
复制代码
成功拿到ip示例:

都获取了ip之后互相ping一下测试能否连通。
在交换机上ping其他设备,显示“!”才是通了
配置pfsense

拉一个firefox镜像出来连上pfsense,如果关闭这个firefox设备再开启它,端口会被占用没法打开网页,需要删掉这个设备重新拉出来连接。
firefox拉出来之后是没有ip的,要在VMware的gns3 vm里,进入firefox docker的shell设置:
  1. docker psdocker exec -it  ship addr add 192.168.1.10/24 dev eth0ip route add default via 192.168.1.1
复制代码

System -> Routing -> Static Routes:添加一条静态路由:将内网网段 10.0.0.0/16的下一跳(Gateway)指向核心交换机的接口 IP:10.0.254.2
配置DMZ服务器

<ul>web服务器
拖出来之后双击进设置,填start command,启动设备时web服务也随之启动。
sh -lc "ip addr add 10.0.99.10/24 dev eth0; ip link set eth0 up; ip route replace default via 10.0.99.1; mkdir -p /srv/www; echo 'DMZ WEB OK' > /srv/www/index.html; cd /srv/www; exec python3 -m http.server 80 --bind 0.0.0.0"

DNS服务器
接Cloud上一个能访问公网的接口下载
  1. ip link set eth0 upudhcpc -i eth0ip routeapk updateapk add dnsmasq bind-tools
复制代码
接dmz交换机,这里在编辑配置文件并启动服务:
[code]ip link set eth0 upip addr add 10.0.99.20/24 dev eth0ip route replace default via 10.0.99.1cat > /etc/dnsmasq.conf

相关推荐

您需要登录后才可以回帖 登录 | 立即注册