第一次上传
This commit is contained in:
189
00.基础阶段/01.网络基础/05.ACL.md
Normal file
189
00.基础阶段/01.网络基础/05.ACL.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# 05.ACL
|
||||
|
||||
## 1. ACL(access control list)
|
||||
|
||||
### 1.1 作用
|
||||
|
||||
- 对流量进行过滤
|
||||
- 对路由条目进行过滤
|
||||
|
||||
### 1.2 类型
|
||||
|
||||
- 标准访问控制列表
|
||||
- 扩展访问控制列表
|
||||
|
||||
### 1.3 标准访问控制列表
|
||||
|
||||
1. 只能对流量的源IP地址进行抓取
|
||||
2. 只能对经过本设备的流量进行过滤,如果是本设备始发的流量,就无法限制
|
||||
3. 一个访问控制列表可以写多个规则,流量按照顺序一条条匹配,如果匹配上了,就执行动作,不会继续匹配下去
|
||||
4. 访问控制列表最后会隐含一条拒绝所有,意思是,如果有流量在这个ACL中一个条件都没匹配的上,最终会被拒绝。
|
||||
|
||||

|
||||
|
||||
在上图中,如果我们想拒绝R1的`192.168.12.1`去访问R3的`192.168.23.3`,那么我们可以这样设置
|
||||
|
||||
```
|
||||
R2(config)#access-list 1 deny host 192.168.12.1
|
||||
R2(config)#access-list 1 permit any # 我们针对性过滤源IP是192.168.12.1的,其他的放行
|
||||
R2#show ip access-lists # 查看访问控制列表
|
||||
Standard IP access list 1 # 访问控列表1里面的规则
|
||||
10 deny 192.168.12.1 # 前面的10是顺序,默认以10递增,方便后续维护的时候插入规则
|
||||
20 permit any
|
||||
R2(config)#int e0/0
|
||||
R2(config-if)#ip access-group 1 in # 必须在接口上调用这个ACL,才能生效,需要注意方向in
|
||||
```
|
||||
|
||||
标准访问控制列表由于只能针对IP地址做的过滤,所以越靠近源头,影响网络可达性越大,我们在真实使用的时候尽量靠近目的地。
|
||||
|
||||
注意,无法限制自己本身始发的流量。
|
||||
|
||||
### 1.4 扩展的访问控制列表
|
||||
|
||||
1. 只能对经过本设备的流量进行过滤,如果是本设备始发的流量,就无法限制
|
||||
2. 可以针对源IP目的IP进行匹配和过滤,并且还能识别不同的数据流量,做针对性的过滤
|
||||
3. 一个访问控制列表可以写多个规则,流量按照顺序一条条匹配,如果匹配上了,就执行动作,不会继续匹配下去
|
||||
4. 访问控制列表最后会隐含一条拒绝所有,意思是,如果有流量在这个ACL中一个条件都没匹配的上,最终会被拒绝。
|
||||
|
||||

|
||||
|
||||
想让R1无法实现`ping 192.168.23.3`但是又可以`telnet 192.168.23.3`
|
||||
|
||||
```
|
||||
R2(config)#access-list 100 deny icmp host 192.168.12.1 host 192.168.23.3 echo
|
||||
# 其中icmp部分是选择协议
|
||||
# 其中host 192.168.12.1是源IP地址
|
||||
# 其中host 192.168.23.3是目的IP地址
|
||||
# 其中echo是icmp中的一种数据报文类型
|
||||
R2(config)#access-list 100 permit ip any any
|
||||
R2(config)#interface Ethernet0/0
|
||||
R2(config-if)#ip access-group 100 in
|
||||
```
|
||||
|
||||
因为扩展的访问控制列表可以精确的匹配源和目的IP地址,所以我们在配置的时候尽量靠近源,避免不必要的转发。
|
||||
|
||||
修改访问控制列表条目
|
||||
|
||||
```
|
||||
R2(config)#ip access-list extended 100
|
||||
R2(config-ext-nacl)#no 10 # 删除第10条规则
|
||||
R2(config-ext-nacl)#10 deny tcp 192.168.12.0 0.0.0.255 host 192.168.23.3 eq telnet
|
||||
R2#sh ip access-lists
|
||||
Extended IP access list 100
|
||||
10 deny tcp 192.168.12.0 0.0.0.255 host 192.168.23.3 eq telnet
|
||||
20 permit ip any any (15 matches)
|
||||
```
|
||||
|
||||
## 2. 配置设备远程访问
|
||||
|
||||
在目标主机上配置
|
||||
|
||||
```
|
||||
line vty 0 4 # 开启虚拟控制台0~4
|
||||
password cisco # 配置登录密码cisco
|
||||
login # 开启密码校验
|
||||
transport input telnet # 允许telnet协议
|
||||
```
|
||||
|
||||
验证登录
|
||||
|
||||
```
|
||||
R1#telnet 192.168.23.3
|
||||
Trying 192.168.23.3 ... Open
|
||||
|
||||
User Access Verification
|
||||
|
||||
Password:
|
||||
R3>
|
||||
R3>
|
||||
R3>q
|
||||
|
||||
[Connection to 192.168.23.3 closed by foreign host]
|
||||
```
|
||||
|
||||
telnet是一种远程终端协议,使用端口号23/tcp。
|
||||
|
||||
## 3. NAT( Network Address Translation )
|
||||
|
||||
## 4. 作用
|
||||
|
||||
- 可以让私有IP地址段的网络去访问公共网络
|
||||
- 可以充当防火墙,保护内网的安全,因为公共网络无法直接访问内部的地址
|
||||
- 解决地址冲突
|
||||
- 发布内网的服务
|
||||
- 负载均衡
|
||||
|
||||
## 5. PAT的配置
|
||||
|
||||

|
||||
|
||||
### 5.1 配置PC和路由器的IP地址
|
||||
|
||||
```
|
||||
R1
|
||||
int e0/0
|
||||
ip add dhcp
|
||||
no sh
|
||||
int e0/1
|
||||
ip add 192.168.1.1 255.255.255.0
|
||||
no sh
|
||||
==================================
|
||||
R3
|
||||
int e0/0
|
||||
ip add 192.168.1.3 255.255.255.0
|
||||
no sh
|
||||
no ip routing # 关闭路由功能,让路由器更好的冒充PC
|
||||
===================================
|
||||
R4
|
||||
int e0/0
|
||||
ip add 192.168.1.4 255.255.255.0
|
||||
no sh
|
||||
no ip routing
|
||||
```
|
||||
|
||||
### 5.2 在网关路由器R1上配置pat
|
||||
|
||||
```
|
||||
access-list 1 permit 192.168.1.0 0.0.0.255
|
||||
ip nat inside source list 1 interface Ethernet0/0 overload
|
||||
interface Ethernet0/0
|
||||
ip nat outside
|
||||
interface Ethernet0/0
|
||||
ip nat inside
|
||||
```
|
||||
|
||||
### 5.3 测试
|
||||
|
||||
```
|
||||
PC1#ping 149.129.69.210
|
||||
Type escape sequence to abort.
|
||||
Sending 5, 100-byte ICMP Echos to 149.129.69.210, timeout is 2 seconds:
|
||||
!!!!!
|
||||
Success rate is 100 percent (5/5), round-trip min/avg/max = 54/256/1063 ms
|
||||
PC2#ping 149.129.69.210
|
||||
Type escape sequence to abort.
|
||||
Sending 5, 100-byte ICMP Echos to 149.129.69.210, timeout is 2 seconds:
|
||||
!!!!!
|
||||
Success rate is 100 percent (5/5), round-trip min/avg/max = 63/65/67 ms
|
||||
```
|
||||
|
||||
### 5.4 查看R1网关上的NAT表
|
||||
|
||||
```
|
||||
R1#show ip nat translations
|
||||
Pro Inside global Inside local Outside local Outside global
|
||||
icmp 192.168.241.142:1 192.168.1.3:1 149.129.69.210:1 149.129.69.210:1
|
||||
tcp 192.168.241.142:25695 192.168.1.3:25695 149.129.69.210:22 149.129.69.210:22
|
||||
tcp 192.168.241.142:30610 192.168.1.3:30610 149.129.69.210:22 149.129.69.210:22
|
||||
```
|
||||
|
||||
我们可以看到`192.168.1.3`最终被转换为`192.168.241.142`( 这个实验中的公网IP)
|
||||
|
||||
### 5.5 NAT带来的问题
|
||||
|
||||
如果内网搭建了服务,无法提供对外访问
|
||||
|
||||
- 端口映射
|
||||
- 使用反向代理
|
||||
- p2p隧道
|
||||
|
Reference in New Issue
Block a user