某集团公司cisco ASA5520的全配置
时间:2010-10-23 来源:shamdeng
一、背景介绍
目前公司使用的SONICWALL 3060PRO旧了,订购了一台CISCO ASA5520-K8设备更换现有设备。现有的网络结构及需求如下:
1、能与各公司做SITE-TO-SITE VPN而且要求对端支持sonicwall设备。
2、做one-to-one地址映射能发布服务器。
3、支持限制客户端上网规则设置。
4、支持remote-vpn功能,某些用户设置权限只允许通过VPN访问特定的某(几)台服务器,防止黑客或病毒传染。
注:公司共16个IP地址,有两个网段一个是59.61段,一个是59.57段,其中59.57段中某个IP地址设置为接口IP.
内部共7个网段分别是:192.168.0.0/24到192.168.7.0/24 *7网段子网为客户专用的VLAN,做了隔离。
Client PC--->CISCO3750G-24TS-E(多个VLAN)---CISCO ASA5520-K8
遇到的问题:
当我把服务器发布后(one-to-one)发现发布的服务器在外网无法访问,而配置也正常,从服务器上PING外网无法PING通。
解决方法:打电话给ISP叫他们帮助清空上级路由器的ARP信息后即可成功。【这个问题搞了我快3个小时,支持电话打了无数】
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
题外话:最近我试用了WPS2010软件,个人版操作界面与易用性、兼容性非常不错,您可以下载回来试用一下。对于个人版是免费的。
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
二、把现有SONICWALL设备上的规则记录下来。并做成表格:
1、需要服务器发布的规则(注:因为以前的SONICWALL PRO 3060 不支持一个IP地址指向多个服务器的不同端口,所以以下的方法比较浪费IP地址,但是因为是升级现有环境,而且这个IP已经对外使用了很长一段时间了,暂时无法做出整合)
2、发布服务器的服务组(只写了一个服务组的配置,其它的类似,如果端口不多也可以不使用服务组,直接在ACL中指定端口)
3、客户机上网规则及限制
黑名单限制
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
CISCO ASA5520-K8【最好到CISCO的网站上免费升级到K9使之支持3DES等加密码方法】。
我先来几张图
整体
面板 作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
接口
接口近照
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
自带的上架耳朵。
三、设备基本配置
1、从光盘中升级现有的系统和相关软件
略......
以下配置均以升级后的IOS asa 831的命令为准,之前的版本会有差异:BOOT variable = disk0:/asa831-k8.bin
1、设置主机名、接口IP地址和NTP等常规设置
Hostname gs-fw-1
interface GigabitEthernet0/0
nameif inside
security-level 100
ip address 192.168.0.4 255.255.255.0
!
interface GigabitEthernet0/1
nameif outside
security-level 0
ip address 59.57.x.xx 255.255.255.248
clock timezone CST 8
ntp server 192.168.0.144 source inside prefer
启用路由
route outside 0.0.0.0 0.0.0.0 59.57.254.41 1
/*192.168.1.1这些都为内部VLAN的网关IP地址,有几个网段就做多少个路由*/
route inside 192.168.1.0 255.255.255.0 192.168.1.1 1
route inside 192.168.2.0 255.255.255.0 192.168.2.1 1
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
2、启用NAT使内部用户能上网
/*主机网络组obj_any以之前需要定义包含任何内部的网段*/
object network obj_any
nat (inside,outside) dynamic interface
3、建立服务组、网络组及发布服务器(摘录)
服务(端口)组
object-group service srv-mail-both tcp
port-object eq imap4
port-object eq pop3
port-object eq www
port-object eq smtp
port-object eq 1025
port-object eq 1125
object-group service srv-mail-tls-outs tcp
port-object eq https
port-object eq 993
port-object eq 995
port-object eq 465
object-group service srv-mails-outs tcp
group-object srv-mail-both
group-object srv-mail-tls-outs
网络地址组(摘录)
object network obj-192.168.0.0
subnet 192.168.0.0 255.255.255.0
object network obj-192.168.8.0
subnet 192.168.8.0 255.255.248.0
object network obj-192.168.1.0
subnet 192.168.1.0 255.255.255.0
object network obj-192.168.2.0
subnet 192.168.2.0 255.255.255.0
4、发布服务器及设置ACL应用到接口(摘录)
/*规则名叫:pub-server:允许从any访问到0.8这个服务器的TCP端口的服务组(srv-mails-outs)
access-list pub-server extended permit tcp any host 192.168.0.8 object-group srv-mails-outs
/*注意所有发布服务器的规则名必须一样,因为接口只能应用一个规则名,这里直接对0.17发布26240这个端口*/
access-list pub-server extended permit tcp any host 192.168.0.17 eq 26240
/*允许从任何主机访问到内部的0.15这台服务器的80号TCP端口*/
access-list pub-server extended permit tcp any host 192.168.0.15 eq www
access-list pub-server extended permit tcp any host 192.168.0.18 eq ftp
access-list pub-server extended permit tcp any host 192.168.0.11 eq smtp
/*拒绝从主机组(hack-ip)中包含的IP地址访问到外部端口*/
access-list pub-server extended deny ip object hack-ip interface outside
/*应用以上规则到outside接口,使之生效*/
access-group pub-server in interface outside
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
5、静态地址映射为外部独立IP地址为内部主机的IP地址
/*定义主机名obj-192.168.0.42对外为主机接口的26258内部的端口为211*/
object network obj-192.168.0.42
nat (inside,outside) static interface service tcp 211 26258
/*定义主机名为obj-192.168.0.17对外的IP地址为59.61.x.x
object network obj-192.168.0.17
nat (inside,outside) static 59.61.x.x
/*后面增加DNS参考是为了内部用户能通过外部域名访问内部发布的主机,否则无法访问*/
object network obj-192.168.0.11
nat (inside,outside) static 59.61.86.2 dns
object network obj-192.168.0.8
nat (inside,outside) static 59.57.254.43 dns
access-group acl-in-out in interface inside
access-group pub-server in interface outside
//使之前的内部用户能通过外部域名访问服务器的外部域名dns
policy-map global_policy
class inspection_default
No inspect dns
6、建立内部用户访问外部的规则集(摘录)
access-list acl-in-out extended permit ip object-group net-0 any
access-list acl-in-out extended permit tcp object-group net-1 any eq www
access-list acl-in-out extended permit tcp object-group net-1 any eq https
access-list acl-in-out extended permit tcp object-group net-2 any eq www
access-list acl-in-out extended permit tcp object-group net-2 any eq https
access-list acl-in-out extended permit tcp object-group net-2 any eq 8080
/*把acl-in-out这个内部用户的规则应用到inside接口的IN方向。
access-group acl-in-out in interface inside
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
我们总结一个发布服务器的流程。注意因为IOS版本的不同,做法和以前的有些不太一样。
1、做ACL允许外部的any主机能访问内部那台主机的TCP/UDP的那个端口,如:
access-list pub-server extended permit tcp any host 192.168.0.18 eq 80
2、为需要发布的服务器做目标地址并设置staic映谢为外部的那个IP地址,如:
object network obj-192.168.0.8
nat (inside,outside) static 59.57.254.43 dns
3、应用规则到外部接口,如:
access-group pub-server in interface outside
到此网络和服务发布部份完成,下面开始建立site-to-site的VPN和启用webvpn。
四、配置site-to-site的VPN,共有两个阶段,如如下图
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
VPN对端的IP地址段为192.168.8.0/255.255.248.0 也就是8-10网段
1、设置ACL允许本地子网络访问到对端的子网
access-list REMOTE-VPN extended permit ip 192.168.0.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.1.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.2.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.3.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.4.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.5.0 255.255.255.0 192.168.8.0 255.255.248.0
access-list REMOTE-VPN extended permit ip 192.168.6.0 255.255.255.0 192.168.8.0 255.255.248.0
2、设置ISAKMP,此为第一阶段的设置内容。
/*使用ip地址的方式*/
crypto isakmp identity address
/*应用到接口IP地址*/
crypto isakmp enable outside
/*建立一个编号为10的isakmp策略,多个的话则编号不一样即可*/
crypto isakmp policy 10
authentication pre-share /*采用预共享密码与对端连接,这个密码必须两台设置设置为一样的才行*/
encryption des /* 第一阶段的加密码方法
hash md5
group 2 /*加密强度,需要消耗CPU资源,一般DH为group2,1024位。
lifetime 86400
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
以下为第二个阶段的配置
3、设置转换集/*注因为我设置VPN的时候还未升级为K9所以只能使用des加密码方法,这些设置必须和对端口的设置一样。见上图的第二阶段。
crypto ipsec transform-set FirstSet esp-des esp-md5-hmac
4、设置crypto加密图,作用是进一步设置VPN信息及把之前的第一、二阶段应用到接口上。
/*建一个名叫cisco 编号为20的匹配acl叫REMOTE-VPN的加密图。
crypto map cisco 20 match address REMOTE-VPN
/* IP地址为VPN对端的外部IP地址*/
crypto map cisco 20 set peer 58.60.x.x
/*第一阶段已经应用到outside接口上了,所以这里只设置第二阶段的转换集。
crypto map cisco 20 set transform-set FirstSet
crypto map cisco 20 set security-association lifetime seconds 28800
crypto map cisco 20 set security-association lifetime kilobytes 4608000
/*应用加密码图到外部接口*/
crypto map cisco interface outside
5、设置通道组
tunnel-group 58.60.xx.xx type ipsec-l2l /*这个通道是site-to-site的VPN
tunnel-group 58.60.xx.xx ipsec-attributes /*设置这个通道的属性并把share-key设置为 xxxx(两边要一样)
pre-shared-key *****
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
五、设置IPSEC remote VPN.
1、设置远程VPN的DHCP地址池,为远程用户分配IP地址。
ip local pool ssl-vpn 10.10.10.1-10.10.10.200 mask 255.255.255.0
2、设置isakmp的策略编号为30
crypto isakmp policy 30
authentication pre-share /*密码(匙)*/
encryption 3des
hash sha
group 2
lifetime 86400
3、设置转换集。因为这里我采用的是ASDM的精灵模式建的,所以选择了很多的加密码方法,造成自动生成的转换集有很多,你可以根据你的情况或只选择其一使用也可以。
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac
crypto ipsec transform-set ESP-AES-256-MD5 esp-aes-256 esp-md5-hmac
crypto ipsec transform-set ESP-DES-SHA esp-des esp-sha-hmac
crypto ipsec transform-set ESP-DES-MD5 esp-des esp-md5-hmac
crypto ipsec transform-set ESP-AES-192-MD5 esp-aes-192 esp-md5-hmac
crypto ipsec transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac
crypto ipsec transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
crypto ipsec transform-set ESP-AES-128-SHA esp-aes esp-sha-hmac
crypto ipsec transform-set ESP-AES-192-SHA esp-aes-192 esp-sha-hmac
crypto ipsec transform-set ESP-AES-128-MD5 esp-aes esp-md5-hmac
4、因为VPN用户的IP地址是动态IP地址,所以这里设置动态加密图,名字也是系统自动建立的,您可以改。注意这里的编号要一致。
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set pfs group1 /*加密的长度*/
/*使用转换集,需要使用多少个就写多少个,只使用1个就写1个,如果只有一个的话需要告知用户你使用的加密协议,对方才能连接上来,安全但没有全部写完灵活*/
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set transform-set ESP-AES-128-SHA ESP-AES-128-MD5 ESP-AES-192-SHA ESP-AES-192-MD5 ESP-AES-256-SHA ESP-AES-256-MD5 ESP-3DES-SHA ESP-3DES-MD5 ESP-DES-SHA ESP-DES-MD5
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set security-association lifetime seconds 28800
crypto dynamic-map SYSTEM_DEFAULT_CRYPTO_MAP 65535 set security-association life
5、把动态加密图映射到cisco 编号为65535.因为之前已经把cisco这个加密图应用到接口上去了,所以这里不需要在再应用,这里也要注意一个接口只能应用一个加密码图,所以cisco名字必须前后对应。
crypto map cisco 65535 ipsec-isakmp dynamic SYSTEM_DEFAULT_CRYPTO_MAP
6、配置通道分离及自定义策略名叫group-vpn的组策略
access-list split-ssl standard permit 192.168.0.0 255.255.255.0
access-list split-ssl standard permit 192.168.1.0 255.255.255.0
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
group-policy group-vpn internal
group-policy group-vpn attributes
dns-server value 192.168.0.13
vpn-tunnel-protocol IPSec svc webvpn //这个通道可以使用svc\webvpn和ipsecVPN三个方式
split-tunnel-policy tunnelspecified //通道分离,允许远程用户在VPN的同时可以访问自已的内部网络
split-tunnel-network-list value split-ssl
7、定义通道组
tunnel-group group-vpn type remote-access //group-vpn这个组是远程访问的类型
tunnel-group group-vpn general-attributes //设置属生
address-pool ssl-vpn //使用的IP地址池
default-group-policy group-vpn
tunnel-group group-vpn ipsec-attributes //如果通道使用了ipsec则它的属性pre-shared-key的配置。
pre-shared-key *****
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
8、增加用户test及密码。
username test password asdfsdafasdfsdf encrypted privilege 0
username test attributes //配置test用户的属性
vpn-group-policy group-vpn //test这个用户加入到group-vpn这个组并继承它的属性。
vpn-tunnel-protocol IPSec svc webvpn //可设、可不设置。不设则继承,否则以此定义的为主。
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
六、配置SSLVPN
1、增加ACL允许本地子网的那些主机(网络能与远程通讯,我这里只允许0和1网段,因为这两个网段都分配为服务器,远程用户需要访问)。
/*允许本地IP 0.0段与1.0段访问远程VPN客户机*/
access-list REMOTE-VPN extended permit ip 192.168.0.0 255.255.255.0 10.10.10.0 255.255.255.0
access-list REMOTE-VPN extended permit ip 10.10.10.0 255.255.255.0 192.168.0.0 255.255.255.0
/*DM_INLINE_NETWORK 这个服务组包含有ping和tracert协议,根据您的情况决定是否需要*/
/*方法如下:
object-group service DM_INLINE_SERVICE_1
service-object icmp //ping
service-object icmp traceroute //tracert
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
*/
access-list REMOTE-VPN extended permit ip object-group DM_INLINE_NETWORK_1 10.10.10.0 255.255.255.0
access-list REMOTE-VPN extended permit ip 10.10.10.0 255.255.255.0 192.168.1.0 255.255.255.0
access-list REMOTE-VPN extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0
2、启用webvpn
webvpn
enable outside
svc image disk0:/anyconnect-dart-win-2.4.1012-k9.pkg 1 //使用anyconnect的服务器端win系统
svc image disk0:/anyconnect-linux-2.4.1012-k9.pkg 2 regex "Linux" // Linux系统
svc enable //启用
tunnel-group-list enable // 启用登录时可以选择组名。
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com
3、设置名叫:MYSSLVPN-GROUP-POLICY ,它为SSL-VPN通道组要使用的策略
group-policy mysslvpn-group-policy internal
group-policy mysslvpn-group-policy attributes
vpn-tunnel-protocol svc //这个通道组使用svc协议【anyconnect】,以用户组的优先。
split-tunnel-policy tunnelspecified //通道分离,使用VPN用户能同时访问本地子网。
split-tunnel-network-list value split-ssl
webvpn
svc keep-installer installed
svc rekey time 30
svc rekey method ssl
svc ask none default svc
4、增加通道组的共有属性
tunnel-group mysslvpn-group type remote-access //访问类型为远程访问
tunnel-group mysslvpn-group general-attributes //组的属生
address-pool ssl-vpn //使用的地址池
default-group-policy mysslvpn-group-policy //默认使用的通道组使用的策略
tunnel-group mysslvpn-group webvpn-attributes
group-alias sslvpn-group enable //组的另外,会显示在用户界面上,可不用。默认为group2.
5、增加ACL限制test01这个用户只能访问特定的服务器。
/*设置远端用户只能访问1.1和1.22这两个IP地址,如果需要PING通,则还需要单独定义允许PING的ACL.
access-list acl-vpn-user extended permit ip 10.10.10.0 255.255.255.0 host 192.168.1.1
access-list acl-vpn-user extended permit ip 10.10.10.0 255.255.255.0 host 192.168.1.22
//允许ping
access-list acl-in-out extended permit icmp 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0
6、增加用户并设置权限
username test01 password afadsfsdfasdfsadf encrypted //afasdfsdf这个为保存的加密码后的密码,自定时为明文
username test01 attributes //test01这个用户的属性
vpn-group-policy mysslvpn-group-policy //test01这个用户使用mysslvpn-group-policy的组策略
vpn-idle-timeout 30
vpn-filter value acl-vpn-user //限制用户能访问服务端的资源。
全文完。
作者:邓卫华 2010.10.23 http://dengweihua1.blog.51cto.com