ACL-VPN实验
郭高旭 ggx21@mails.tsinghua.edu.cn 2021010803
task1
修改拓扑图如下。
为实现题目要求,需要将server1拆到另一子网,避免元老院成员直接通过switch访问。
修改后各终端ip如下
设备名称 | 使用人 | 部门 | ip | 备注 |
---|---|---|---|---|
PC1 | 凯撒/你 | 元老院 | 192.168.1.2 | 领导人 |
Server1 | 你 | 元老院 | 192.168.4.2 | 机密 |
Laptop1 | 布鲁图 | 元老院 | 192.168.1.3 | 联络人 |
PC4 | 财务官A | 元老院 | 192.168.1.5 | 成员 |
Laptop2 | 庞培 | 执政官首府 | 192.168.2.3 | 领导人 |
PC2 | 卡西乌斯 | 执政官首府 | 192.168.2.2 | 联络人 |
Laptop4 | 辅助执政官B | 执政官首府 | 192.168.2.4 | 成员 |
PC3 | 克拉苏 | 部族会议所 | 192.168.3.2 | 领导人 |
Laptop3 | 安东尼 | 部族会议所 | 192.168.3.3 | 联络人 |
PC5 | 大祭司C | 部族会议所 | 192.168.3.4 | 成员 |
-
router1设置:
连接元老院总部的interface出口
-
允许所有流量到Laptop1(联络人):
1
access-list 101 permit ip any host 192.168.1.3
-
允许其他领导人流量到本领导人
1
2access-list 101 permit ip host 192.168.2.3 host 192.168.1.2
access-list 101 permit ip host 192.168.3.2 host 192.168.1.2 -
允许其他联络人与本部通信
1
2access-list 101 permit ip host 192.168.2.2 any
access-list 101 permit ip host 192.168.3.3 any -
允许Server1和凯撒通信
1
access-list 101 permit ip host 192.168.4.2 host 192.168.1.2
-
绑定
1
2interface FastEthernet0/1
ip access-group 101 out
连接Server1的端口设置:只允许和凯撒通信
1
2
3
4
5
6access-list 102 permit ip host 192.168.1.2 host 192.168.4.2
access-list 102 permit ip host 192.168.4.2 host 192.168.1.2
interface GigabitEthernet0/0
ip access-group 102 out
ip access-group 102 in结果
-
其他部门领导人(PC3为例)不可以和本部非联络人非领导人联系
-
PC3可以和本部联络人联系
-
PC3可以和本部领导人工作会议
-
-
凯撒可以 ping Server1
元老院其他人不可以
router2&3
router2&router3的配置和router1相似(只是不需要考虑server1),只贴代码如下。
router2
1 | access-list 101 permit ip host 192.168.1.2 host 192.168.2.3 |
router3
1 | access-list 101 permit ip host 192.168.1.2 host 192.168.3.2 |
Task7
目前PC1不能ping通其他两部门的普通成员,在router2,3中允许来自PC1的icmp报文通过即可,同时为了收到router2,3返回的icmp报文,router1要允许其通过。
router1
1 | access-list 101 permit icmp 192.168.0.0 0.0.255.255 host 192.168.1.2 |
router2
1 | access-list 101 permit icmp host 192.168.1.2 any |
router3
1 | access-list 101 permit icmp host 192.168.1.2 any |
PC1成功ping到其他部门的成员
TASK8
在搬迁之后,使用配置静态路由的方法将无法让各个权力机构正常通信
这是因为我们只能配置内网的路由,不能配置公网路由。当Router1和Router2使用静态路由时,它们配置的路由信息不会自动传播给Router4,所以Router4不能也不会将内网ip添加到自己的路由表中,因而以内网ip地址为目的ip地址的ip报文在公网中不能被转发。
router1
配置isakmp
1 | configure terminal |
配置 ACL ,定义在 Router1 上需要加密的流量
1 | access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 |
定义 IPsec 策略集
1 | crypto ipsec transform-set exset esp-3des esp-md5-hmac |
创建map映射表
1 | crypto map exmap 1 ipsec-isakmp |
将加密图应用到应用到 Router1 与公网连接的端口
1 | interface FastEthernet0/0 |
router2
1 | configure terminal |
路由表配置
router1使用静态路由
router2使用静态路由
router3
router4使用rip模拟公网路由配置
结果
router1子网 ping 2,3子网
router3子网终端 ping router1子网终端
展示router2 ipsec配置状态
通过仿真抓包分析,如上配置的IPSec VPN使用了隧道模式
当pc3 ping pc1时,在router2(公网入口处)报文的ip header源/目的ip地址从私网地址变成了公网地址,说明拥有一个新的外部IP报头 ,说明是隧道模式。
Bonus任务:凯撒的赏赐(NAT)
由于高卢人的电信诈骗行为日益猖獗,凯撒决定监视国内流量以防止公民财产收到损害,所以不再允许使用vpn加密流量。凯撒希望我通过NAT技术将私网地址直接映射到公网ip以便通过公网与其他部门联系。(只有部门前16名领导可以和其他部门联系,其余人不行)
1.在router1上配置动态NAT
-
选择inside域
1
2interface FastEthernet0/1
ip nat inside -
选择outside域
1
2interface FastEthernet0/0
ip nat outside -
配置映射地址池( 1.0.0.3 - 1.0.0.13 )
1
ip nat pool no-overload 1.0.0.3 1.0.0.13 netmask 255.0.0.0
-
配置acl:只允许ip 从 1.0.0.0-1.0.0.13的终端进行rip
1
2access-list 7 permit 1.0.0.0 0.0.0.13
ip nat inside source list 7 pool no-overload
2.在router2上配置静态NAT
由于要和执政官首府联系,所以也得给执政官首府的联络人配一下NAT,使得元老院领导可以直接通过公网ip找到执政官首府的联络人。同时为了保证执政官首府的联络人公网地址不变,这里直接使用静态NAT。
1 | ip nat inside source static 192.168.2.2 2.0.0.3 |
可以show ip nat
来检查nat设置情况
1 | Router#show ip nat translations |
设置正常,在PC1上ping 2.0.0.3,执政官首府的联络人收到报文,并正确返回。
在router1上开启debug ip nat 可以更加清楚地展示这一过程,可以看见到时间还会expire,所以要给联络人配一个静态NAT
下面展示了报文在router1上的变换情况。
NAT范围内,Src.ip从私网ip转变为公网ip。超过允许范围的报文没有经过NAT。由于是动态NAT,只有流量经过,router的NAT表才会建立,而且这个表是动态的。
超过允许范围的报文没有经过NAT
3.配置PAT,节省公网地址
由于国名生活水平日益提高,元老院内终端设备爆炸增长。但是又由于常年和高卢人的征战导致国库空虚,凯撒只给我元老院组了1.0.0.3一条公网ip。我考虑使用overload模式,同时来自不同内部主机的多个连接使用不同的源端口号“多路复用”为单个注册(公共)IP地址。
可以看到,192.168.1.2, 192.168.1.3,192.168.1.5,三个终端都映射到1.0.0.3。
此时路由器会维护来自更高级别协议(例如,TCP或UDP端口号)的足够信息,以便将全局地址转换回正确的本地地址,所以避免了冲突。
如果想进一步配置,可以配置端口映射(端口重定向),使得流量在某个端口的公共ip被映射到同一个终端上。
1 | ip nat inside source static tcp 192.168.1.10 80 1.0.0.3 80 |
这样也可以通过端口来区分不同的目的。