一、概念
1、介绍
防火墙默认三种区域:inside、outside、dmz,默认outside和dmz级别为0,inside安全级别为100。
高安全级别到低安全级别的流量是放行的,但返回的数据根据ASA中会话表是否允许
低安全级别到高安全级别的流量是拒绝的,
允许出站(outside):高100到低0,可发消息,禁止入站(inside):低0到高100,不回消息,相同级别,不发也不回
2、ASA5505和ASA5506区别
ASA5505是创建vlan,将端口加入vlan,设置vlan的安全等级,实现安全区域,再通过ACL对vlan进行控制
ASA5506是端口设置安全区域,再通过ACL对端口进行控制
二、简单配置(内网可访问外网,外网不能访问内网)
1、拓扑图
2、配置
1、inside配置
# configure terminal
# interface vlan 1
# nameif inside
# security-level 100
# ip address 192.168.1.1 255.255.255.0
# no shutdown
2、outside配置
# interface vlan 2
# nameif outside
# security-level 0
# ip address 1.1.1.1 255.255.255.0
# no shutdown
3、端口加入安全区域
# show switch vlan
# configure terminal
# interface ethernet 0/1
# switchport access vlan 1
# interface ethernet 0/2
# switchport access vlan 2
# show switch vlan
# show interface ip brief
3、测试(可访问防火墙inside,不能访问服务器outside)
重要:默认outside为0,inside为100,高安全等级可访问低等级,但低安全等级不能访问高等级,除非设置访问控制列表
1、配置pc端 acl 控制列表
# configure terminal
# access-list 100 permit icmp any any echo-reply
# access-group 100 in interface outside
可访问外网访问,外网不能访问内网
2、配置服务器 acl 控制列表
# configure terminal
# access-list 200 permit icmp any any echo
# access-group 200 in interface outside
外网可以访问内网,内网不能访问外网
3、配置双向互通
# configure terminal
# access-list 100 extended permit ip any any
# access-group 100 in interface outside
4、拓扑图
5、配置
1、inside配置
# configure terminal
# interface gigabitEthernet 1/1
# nameif inside
# security-level 100
# ip address 192.168.1.1 255.255.255.0
# no shutdown
2、outside配置
# interface gigabitEthernet 1/2
# nameif outside
# security-level 0
# ip address 1.1.1.1 255.255.255.0
# no shutdown
3、配置 acl 控制列表
# show switch vlan
# show interface ip brief
# configure terminal
# access-list 100 permit icmp any any
# access-group 100 in interface outside
6、测试
7、拓扑图
8、配置
1、配置路由器
# configure terminal
# line vty 0 4
# password 666
# interface GigabitEthernet0/0
# ip address 1.1.1.100 255.255.255.0
# no shutdown
# ip route 192.168.1.0 255.255.255.0 1.1.1.1
2、配置 acl 控制列表
# no access-list 100 extended permit icmp any any
9、测试(没有acl,默认相互ping不通,但可以telnet访问,服务不受影响)
三、NAT配置
1、概念
动态NAT:多对多,定义一个地址池(一段ip)
动态PAT:一对多,所有内网进行网络地址转换,端口地址转换PAT
静态NAT:一对一,一个内网转换一个外网
静态PAT:端口映射,将内网的端口,映射到外网端口
1、动态nat(一对多)
1、配置路由器
# configure terminal
# line vty 0 4
# password 666
# interface GigabitEthernet0/0
# ip address 1.1.1.100 255.255.255.0
# no shutdown
2、防火墙配置
# object network inside #定义地址池名称
# subnet 192.168.1.0 255.255.255.0 #地址池ip网段
# nat (inside,outside) dynamic interface #inside(g1/1端口名),动态状态nat,端口nat
# show xlate #查看nat状态
3、测试(ping不通,但服务正常访问)
配置 ACL策略
# access-list 100 extended permit ip any any
# access-group 100 in interface outside
可ping,和正常访问外网,但外网不能访问内网
4、动态NAT(多对多)
防火墙配置
1、多对多转换地址池
# object network wan-range #定义外网地址池
# range 1.1.1.10 1.1.1.20
# object network lan #定义内网地址池
# subnet 192.168.1.0 255.255.255.0
# nat(inside,outside) dynamic wan-range #动态转换
2、多对多转换地址池组
# object network wan-range1 #定义外网地址池
# range 1.1.1.10 1.1.1.20
# object network wan-range2 #定义外网地址池
# host 1.1.1.30
# object-group network nat-group #定义外网地址池组
# network-object object wan-range1
# network-object object wan-range2
object network lan #定义内网地址池
subnet 192.168.1.0 255.255.255.0
nat (inside,outside) dynamic nat-group #动态转换
5、静态NAT(一对一)
防火墙配置
# object network web
# host 192.168.1.200
# nat (inside,outside) static 1.1.1.2
路由器配置
# access-list 1 permit 192.168.10.0 0.0.0.255 #创建acl列表
# ip nat inside source list 1 int G0/0 overload #将ACL表复用到G0/0
# ip route 0.0.0.0 0.0.0.0 G0/0 #默认路由
# interface G0/0 #配置NAT外网
# ip nat outside
# interface G0/1 #配置NAT内网
# ip nat inside
测试(外网可访问,外网nat转换后的内网服务器,不能直接访问内网)
防火墙配置(和上面效果一样)
1、使用静态路由
# object network web
# host 192.168.1.200
# nat (inside,outside) static 1.1.1.2
# route outside 0.0.0.0 0.0.0.0 1.1.1.100 #配置静态路由
或者
# route outside 192.168.10.0 255.255.255.0 1.1.1.100
2、静态NAT端口转发
# object network web
# host 192.168.1.200
# nat (inside,outside) static 1.1.1.2 service tcp www www
6、静态NAT(内网访问vpn服务器)
# object network lan
# host 172.16.11.15
# object network vpn
# host 172.20.21.15
# nat (inside,outside) source static lan lan destination static vpn vpn no-proxy-arp route-lookup
#不代理ARP, 仅限路由模式
7、配置基于预共享密钥IPsec的L2TP
实例1:
1、启用ike
# crypto ikev1 enable outside #外部端口启用ikev1密钥协议
2、定义策略
# crypto ikev1 policy 10 #定义ikev10策略,序号越小越优先
# authentication pre-share #配置认证方式,共享秘钥认证
# encryption 3des #加密算法,默认AES-128,双方保持一致
# hash sha #验证算法,默认SHA
# prf sha #PRF算法
# group 2 #组2,默认group 2
# lifetime 86400 #SA生命周期,默认86400秒
3、配置转换集
# crypto ipsec ikev1 transform-set TRANS-ESP-3DES-SHA esp-3des esp-sha-hmac
定义策略名 加密算法 验证算法
# crypto ipsec ikev1 transform-set TRANS-ESP-3DES-SHA mode transport
隧道模式
4、配置动态图(对端是动态ip)
# crypto dynamic-map outside_dyn_map 10 set ikev1 transform-set TRANS-ESP-3DES-SHA
创建动态map 序号,优先级 调用策略
5、配置静态图,并应用到outside接口
# crypto map outside_map 65535 ipsec-isakmp dynamic outside_dyn_map
静态图名 序号 绑定 动态图名
# crypto map outside_map interface outside #静态图应用到outside
6、创建 IP 地址池
# ip local pool Address-pool 192.168.1.1-192.168.1.254 mask 255.255.255.0
7、配置组策略
# group-policy L2TP-VPN internal #定义本地组策略,策略名:L2TP-VPN
# group-policy L2TP-VPN attributes #定义属性
# dns-server value 8.8.8.8 4.4.4.2 #dns服务器地址
# vpn-tunnel-protocol l2tp-ipsec #vpn隧道协议属性
# default-domain value cisco.com #域名
# username test password test mschap #配置用户和密码,mschap协议关键字
8、配置隧道组
1)默认隧道组
# tunnel-group DefaultRAGroup general-attributes
defaultragroup:远程访问用户,defaultl2lgroup:站点到站点的会话
general-attributes:属性,预共享密钥必须是DefaultRAGroup
# address-pool Address-pool #设置地址池为上面的ip地址池
# default-group-policy L2TP-VPN #设置默认策略
2)隧道组 ipsec
# tunnel-group DefaultRAGroup ipsec-attributes #设置隧道的ipsec属性
# ikev1 pre-shared-key C!sc0@123 #预共享密钥
3)隧道组 ppp
# tunnel-group DefaultRAGroup ppp-attributes #设置隧道的ppp属性
# no authentication chap #禁用CHAP认证
# authentication ms-chap-v2 #认证类型
9、配置NAT豁免
# object network L2TP-Pool
# subnet 192.168.1.0 255.255.255.0
# nat (inside,outside) source static any any destination static L2TP-Pool L2TP-Pool no-proxy-arp route-lookup
10、隧道分离
# access-list SPLIT standard permit 10.1.1.0 255.255.255.0 #acl策略
# group-policy DefaultRAGroup attributes #定义组策略属性
# split-tunnel-policy tunnelspecified #启用流量分割
Tunnelall:所有流量必须走隧道,不分割流量,默认设置
Tunnelspcified:所有匹配acl的流量走隧道
Excludespecified:所有不匹配ACL的流量走隧道
# split-tunnel-network-list value SPLIT #匹配acl:SPLIT的流量用加密隧道传输
# intercept-dhcp 255.255.255.255 enable #开启dhcp网关,vpn客户端要关闭远程网关
实例2:
1、定义地址池
# ip local pool vpnpool 192.168.1.10-192.168.1.100 mask 255.255.255.0
2、定义组策略
# group-policy DefaultRAGroup internal
# group-policy DefaultRAGroup attributes
# vpn-tunnel-protocol IPSec l2tp-ipsec
# dns-server value 8.8.8.8
# default-domain value cisco.com
3、定义分割流量
# access-list no-nat extended permit ip 192.168.1.0 255.255.255.0 1.1.1.0 255.255.255.0
# nat (inside) 0 access-list no-nat
# access-list 100 standard permit 192.168.1.0 255.255.255.0
# access-list 100 standard permit 1.1.1.0 255.255.255.0
# split-tunnel-policy tunnelspecified
# split-tunnel-network-list value 100
# split-dns cisco.com
# vpn-filter value acl_2 #只允许或不允许访问内容,acl列表
# ipsec-udp enable #开启ipsec的udp
# vpn-idle-timeout 30 #客户端超时时间,默认30分
4、配置用户,并指定用户的组策略
# username frank password frank mschap #创建用户并指明加密算法
# username frank attributes #用户属性
# vpn-group-policy DefaultRAGroup #指定用户的组策略
# service-type remote-access #服务为远程访问
5、定义隧道组
1)默认隧道组
# tunnel-group DefaultRAGroup general-attributes#默认隧道组,及属性
# authentication-server-group LOCAL #本地认证
# default-group-policy DefaultRAGroup #设置组策略
# address-pool vpnpool #隧道组的地址池
2)自定义隧道组
#自定义组策略
# group-policy test_group internal
# group-policy test_group attributes
# vpn-idle-timeout 30
# dns-server value 8.8.8.8
# vpn-tunnel-protocol IPSec
# default-domain value cisco.com
#自定义隧道组
# tunnel-group test_group type ipsec-ra #设置隧道类型为remote vpn
# tunnel-group test_group general-attributes #设置属性
# address-pool vpnpool #地址池
# default-group-policy test_group #设置默认组策略
# tunnel-group test_group ipsec-attributes #设置隧道的ipsec属性
# pre-shared-key cisco #共享密钥
3)自定义ezvpn隧道组
#自定义组策略
# group-policy ezvpn internal
# group-policy ezvpn attributes
# dns-server value 8.8.8.8
# vpn-tunnel-protocol ipsec
# split-tunnel-policy tunnelspecified
# split-tunnel-network-list value acl_100
# default-domain value cisco.com
#自定义隧道组
# tunnel-group ezvpn type remote-access #远程访问类型
# tunnel-group ezvpn general-attributes
# address-pool vpnpool
# default-group-policy ezvpn
# tunnel-group ezvpn ipsec-attributes
# ikev1 pre-shared-key cisco
6、定义isakmp策略
# crypto isakmp enable outside #在outside上启用isakmp策略
# crypto isakmp policy 10 #定义ikev10策略,序号为10
# authentication pre-share #共享秘钥认证
# encryption 3des #加密算法
# hash sha #验证算法
# prf sha #PRF算法
# group 2 #组2
# lifetime 86400 #策略有效期1天(默认)
7、配置 IPsec 安全协议
1)配置Ipsec加密算法(用esp-3des加密,esp-sha-hmac认证)
# crypto ipsec transform-set TRANS_ESP_3DES_SHA esp-3des esp-sha-hmac
2)配置IPSec传输模式
# crypto ipsec transform-set TRANS_ESP_3DES_SHA mode transport
3)可选
#时间定义,转换集的生存时间
# crypto ipsec security-association lifetime seconds 28800
#字节定义,转换集的生存时间
# crypto ipsec security-association lifetime kilobytes 4608000
8、配置 IPsec 策略
1)动态加密策略
#定义动态加密策略
# crypto dynamic-map outside_dyn_map 65535 set transform-set TRANS_ESP_3DES_SHA
#路由反转
# crypto dynamic-map outside_dyn_map 20 set reverse-route
#定义静态策略,绑定动态加密策略
# crypto map outside_map 65535 ipsec-isakmp dynamic outside_dyn_map
#策略应用到outside
# crypto map outside_map interface outside
####其他
#定义发送的身份为 IP 地址
crypto isakmp identity address
对远程路由器使用密钥
crypto isakmp key 654321 address 202.102.1.6
对远程路由器隧道使用密钥
crypto isakmp key 654321 address 192.168.1.2
2)静态加密策略
#配置acl
# access-list acl-2 extended permit ip 192.168.1.0 255.255.255.0 1.1.1.0 255.255.255.0
#定义静态策略,并匹配acl
# crypto map new-map 1 match address acl-2
#定义静态策略的对端地址
# crypto map new-map 1 set peer 200.1.1.1
#定义加密协议
# crypto map new-map 1 set ipsec transform-set TRANS_ESP_3DES_SHA
#定义有效期
# crypto map new-map 1 set security-association lifetime seconds 3600
9、配置NAT豁免
1)常用
# object network L2TP-Pool
# subnet 192.168.1.0 255.255.255.0
# nat (inside,outside) source static any any destination static L2TP-Pool L2TP-Pool no-proxy-arp route-lookup
2)其他
# crypto isakmp ipsec-over-tcp #双方启用tcp通信,端口10000,client方式
# crypto isakmp nat-traversal 10 #双方启用udp通信,端口4500,client,L2L方式
# ipsec-udp enable #双方启用udp通信
# ipsec-udp-port 10000 #端口10000,client方式
10、其他
# same-security-traffic permit intra-interface #允许流量从一个端口转发