## 实验二

### 实验背景

![image-20211209194840016](https://s2.loli.net/2021/12/09/n7Y1zqM3fxtb6RB.png)

按照要求新增几个节点。

### 任务6：“三权”间的权限控制

#### 要求

为了便于进行安全管理，“共和国”新购入了一台路由器和若干交换机。请在最合适的接口处配置访问控制列表，满足以下的安全要求，在必要时可以在权力机构内略微调整网络：
1.	一般地，各个权力机构内部的所有成员均能相互通信。
2.	然而，在权力机构之间的相互通信只能通过几位联络人进行，例如：执政官首府的成员只能与元老院的联络人布鲁图进行通信。
3.	另外，三个权力机构的领导人（凯撒、庞培和克拉苏）可以互相通信讨论工作，进行领导人会议。
4.	特别地，由于Server1存放了大量的国家机密，在整个“共和国”内只有凯撒和你可以与该设备通信。另外，凯撒特别允许你使用他的终端设备PC1。
注：该任务中，不能通信指既不能收数据也不能发数据，可以通信指既能收数据也能发数据。

#### 实现

1. 各个权力机构内部的所有成员处于一个子网中，通过交换机实现相互通信
2. 在每个权力机构内只有特定的的联络人能收到路由器转发来的消息，但不限制给其他权力机构发消息的人，因此只需要在每个路由器的出口方向设置访问控制列表（101），只允许目的 IP 为该权力机构联络人的包进入子网；同时放行所有来自子网的包
3. 三个权力机构的领导人（凯撒、庞培和克拉苏）可以互相通信讨论工作，因此在 ACL101 中允许来自领导人 IP ，目的 IP 为该权力机构领导人的包
4. 其他权力机构无法访问 Server1 ，要禁止本子网内的设备和联系人访问 Server1 ，只允许 PC1 与其通讯。由于在 Router1 上设置访问控制列表并不能阻止本子网内设备访问 Server1 ，因此新建子网 192.168.4.1/24 ，并添加一台新购入的交换机进行访问控制。
   Server1 设为 192.168.4.2 ，对应的 ACL101 只允许 IP 为 192.168.1.2 且目的 IP 为 192.168.4.2 的包进入子网，并且只允许 IP 为 192.168.4.2 且目的 IP 为 192.168.1.2 的包传出子网。
   同时在 192.168.1.1/24 对应的路由器允许 IP 为 192.168.4.2 且目的 IP 为 192.168.1.2 的包进入子网。

添加新的交换机。

![image-20211209234525953](https://s2.loli.net/2021/12/09/fYWhi6o7q5tSIGR.png)

| 设备名称 | 使用人      | 部门       | 备注     |
| -------- | ----------- | ---------- | -------- |
| PC1      | 凯撒/你     | 元老院     | 领导人   |
| Server1  | 你          | 元老院     | 机密管理 |
| Laptop1  | 布鲁图      | 元老院     | 联络人   |
| PC4      | 财务官A     | 元老院     | ---      |
| Laptop2  | 庞培        | 执政官首府 | 领导人   |
| PC2      | 卡西乌斯    | 执政官首府 | 联络人   |
| Laptop4  | 辅助执政官B | 执政官首府 |          |
| PC3      | 克拉苏      | 部族会议所 | 领导人   |
| Laptop3  | 安东尼      | 部族会议所 | 联络人   |
| PC5      | 大祭司C     | 部族会议所 | ---      |

设置路由器的访问控制列表。

##### Router1

```
access-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
access-list 101 permit ip 192.168.2.0 0.0.0.255 host 192.168.1.4
access-list 101 permit ip 192.168.3.0 0.0.0.255 host 192.168.1.4
access-list 101 permit ip host 192.168.2.2 192.168.1.0 0.0.0.255
access-list 101 permit ip host 192.168.3.3 192.168.1.0 0.0.0.255

access-list 101 permit ip host 192.168.4.2 host 192.168.1.2

interface GigabitEthernet0/1
ip access-group 101 out

access-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
```

![image-20211209222003572](https://s2.loli.net/2021/12/09/hWMs6cAC8IU9eaF.png)

##### Router2

```
access-list 101 permit ip host 192.168.1.2 host 192.168.2.3
access-list 101 permit ip host 192.168.3.2 host 192.168.2.3
access-list 101 permit ip 192.168.1.0 0.0.0.255 host 192.168.2.2
access-list 101 permit ip 192.168.3.0 0.0.0.255 host 192.168.2.2
access-list 101 permit ip host 192.168.1.4 192.168.2.0 0.0.0.255
access-list 101 permit ip host 192.168.3.3 192.168.2.0 0.0.0.255

interface GigabitEthernet0/2
ip access-group 101 out
```

##### Router3

```
access-list 101 permit ip host 192.168.1.2 host 192.168.3.2
access-list 101 permit ip host 192.168.2.3 host 192.168.3.2
access-list 101 permit ip 192.168.1.0 0.0.0.255 host 192.168.3.3
access-list 101 permit ip 192.168.2.0 0.0.0.255 host 192.168.3.3
access-list 101 permit ip host 192.168.1.4 192.168.3.0 0.0.0.255
access-list 101 permit ip host 192.168.2.2 192.168.3.0 0.0.0.255

interface GigabitEthernet0/1
ip access-group 101 out
```

#### 测试

1. 普通成员只能在子网内通讯或者与联络人通讯
   ![image-20211209222222429](https://s2.loli.net/2021/12/11/pSfwXvLAdWJDCy6.png)
2. 联络人能与其他子网除了机密管理以外的设备通讯
   ![image-20211209222442260](https://s2.loli.net/2021/12/09/eXxMbOPscZV3I8A.png)
3. 领导人之间能相互通讯
   ![image-20211209222314637](https://s2.loli.net/2021/12/09/dGk6U4v8s5Aq1V3.png)
4. 机密设备只能与凯撒的机器通讯，其它设备不能和机密设备通讯
   ![image-20211209222525705](https://s2.loli.net/2021/12/09/vcfmJhpHAgLoZlu.png)
   ![image-20211209222655854](https://s2.loli.net/2021/12/09/jogOsDUtEXwQArf.png)

### 任务7：凯撒赐予的“最高”权限

任务6中只设置了 out 方向的访问控制列表，只需要修改 Router2、Router3 的 ACL101，在相应端口的 out 方向允许来自 192.168.1.2 的 ICMP 包通过。

##### Router1

```
access-list 101 permit icmp 192.168.0.0 0.0.255.255 host 192.168.1.2
```

##### Router2

```
access-list 101 permit icmp host 192.168.1.2 192.168.2.0 0.0.0.255
```

##### Router3

```
access-list 101 permit icmp host 192.168.1.2 192.168.3.0 0.0.0.255
```

![image-20211209232746308](https://s2.loli.net/2021/12/09/jcVsRAqha9IoyUL.png)

#### 效果

![image-20211209230638751](https://s2.loli.net/2021/12/09/y7t8BYHTGNnDphl.png)

### 任务8：新的远征

##### 在搬迁之后，使用配置静态路由的方法将无法让各个权力机构正常通信，请简述原因。

在公网上难以做到直连，配置静态路由只能配置内网和内网与公网边界上的路由，而内网 IP 在没有 NAT 转换到公网 IP 的情况下无法直接作为有效的 IP 地址与外界通讯。因此搬迁之后埃及和罗马的权力机构无法使用内网 IP 通过公网路由器转发进行通讯。

##### 配置 IPsec VPN

首先清空之前的 ACL101 配置，这里不妨直接重启相关的路由器。

```
no access-list 101
```

按照题目要求，增加公网路由器Router4，使得Router1和Router2为“共和国”分部与总部的两个边界路由器。

新增设备IP地址分配：

| Device  | Port    | IP      | Mask | Gateway |
| ------- | ------- | ------- | ---- | ------- |
| Router4 | 端口0/0 | 1.0.0.1 | /8   | -       |
| Router4 | 端口0/1 | 2.0.0.1 | /8   | -       |
| Router1 | 端口0/0 | 1.0.0.2 | /8   | -       |
| Router2 | 端口0/0 | 2.0.0.2 | /8   | -       |

![image-20211210142103682](https://s2.loli.net/2021/12/10/FdwutNrZjmg4qS7.png)

在 Router1、Router2、Router4 上对新增的公网 IP 配置 RIP 协议。

##### Router1

在 Router1 和 Router1 与公网连接的端口上配置 IPsec VPN 通道。

配置安全策略

```
configure terminal
interface FastEthernet0/0
crypto isakmp policy 1
encryption 3des
hash md5
authentication pre-share
group 5
exit
```

![image-20211210152431034](https://s2.loli.net/2021/12/10/IqxW16DwG2SohRV.png)

配置预共享秘钥

```
crypto isakmp key venividivici address 2.0.0.2
```

配置 ACL ，定义在 Router1 上需要加密的流量

```
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
```

定义 IPsec 策略集

```
crypto ipsec transform-set vpn-set esp-des esp-md5-hmac
```

配置 Crypto Mac 加密映射，peer 为对端公网 IP

```
crypto map vpn-map 1 ipsec-isakmp
set peer 2.0.0.2
set transform-set vpn-set
match address 101
exit
```

配置静态路由

```
ip route 192.168.2.0 255.255.255.0 1.0.0.1
ip route 192.168.3.0 255.255.255.0 1.0.0.1
```

将加密图应用到应用到 Router1 与公网连接的端口

```
interface FastEthernet0/0
crypto map vpn-map
```

总的配置如下：

```
configure terminal
interface FastEthernet0/0
crypto isakmp policy 1
encryption 3des
hash md5
authentication pre-share
group 5
exit
crypto isakmp key venividivici address 2.0.0.2
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255 
crypto ipsec transform-set vpn-set esp-3des esp-md5-hmac
crypto map vpn-map 1 ipsec-isakmp
set peer 2.0.0.2
set transform-set vpn-set
match address 101
exit
ip route 192.168.2.0 255.255.255.0 1.0.0.1
ip route 192.168.3.0 255.255.255.0 1.0.0.1
ip route 1.0.0.0 255.0.0.0 1.0.0.1
interface FastEthernet0/0
crypto map vpn-map
```

![ScreenShot 2021-12-10 at 20.06.28@2x](https://s2.loli.net/2021/12/10/BwKqHv4kGJXrOs7.png)

##### Router2

配置与 Router1 同理

```
configure terminal
interface FastEthernet0/0
crypto isakmp policy 1
encryption 3des
hash md5
authentication pre-share
group 5
exit
crypto isakmp key venividivici address 1.0.0.2
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
crypto ipsec transform-set vpn-set esp-3des esp-md5-hmac
crypto map vpn-map 1 ipsec-isakmp
set peer 1.0.0.2
set transform-set vpn-set
match address 101
exit
ip route 192.168.1.0 255.255.255.0 2.0.0.1
ip route 192.168.3.0 255.255.255.0 2.0.0.1
interface FastEthernet0/0
crypto map vpn-map
```

##### Router4

只配置 RIP 协议，模拟公网转发。

![ScreenShot 2021-12-10 at 20.19.02@2x](https://s2.loli.net/2021/12/10/ktpOnabCZfFTJuc.png)

#### 测试

![ScreenShot 2021-12-10 at 20.32.44@2x](https://s2.loli.net/2021/12/10/ep7HL3SRqZjwlTy.png)



![ScreenShot 2021-12-10 at 20.26.06@2x](https://s2.loli.net/2021/12/10/1gv6EpazFfcHt74.png)

![ScreenShot 2021-12-10 at 20.28.36@2x](https://s2.loli.net/2021/12/10/nWyl5Jt6jNRDauo.png)

通过仿真抓包分析发现 Router1 处报文的源 IP 和目的 IP 都被修改成了公网 IP，在 Router2 处被修改回原来的内网 IP ，因此 IPsec 使用了隧道模式。原因是传输模式不会修改 IP 头，因此在传输模式下原来内网 IP 不变，无法通过公网转发，因此必须使用隧道模式。

### Bonus任务：凯撒的赏赐

#### 配置 DHCP

选择 Router3 进行配置，将所有的子网终端设备获取 IPv4 的方式都设为 DHCP 。

```
configure terminal
service dhcp
ip dhcp pool pool1
network 192.168.3.0 255.255.255.0
default-router 192.168.3.1
dns-server 192.168.3.1
exit
```

![ScreenShot 2021-12-10 at 20.46.16@2x](https://s2.loli.net/2021/12/10/KOzQVM8vLjXSToR.png)

在特权模式下查询 DHCP 池使用状况：

```
show ip dhcp binding
```



![ScreenShot 2021-12-10 at 20.45.13@2x](https://s2.loli.net/2021/12/10/DBdSCtoJO69R27u.png)

在终端主机上查询 DHCP 分配到的 IP：

![ScreenShot 2021-12-10 at 20.46.48@2x](https://s2.loli.net/2021/12/10/XxOYhTSbkHeglsW.png)