正文:* username*test*password*asdfsdafasdfsdf**encrypted*privilege*0* username*test*attributes******************//配置test用户的属性* vpn-group-policy*group-vpn*************//test这个用户插手到group-vpn这个组并继承它的属性[本站原创] * * 版权声明:原创作品,允许转载,转载时请务必以超链接形式标示文章*原始出处*、笔者信息和本声明否则将究查法律责任** 一、背景介绍* 目前公司使用的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**** 题外话:最近我尝试使用了wps2010software,小我私家版操作界面与易用性、兼容性非常不错,您可以下载回来尝试使用一下对小我私家版是免费的* 笔者:邓卫华*2010.10.23**** 二、把现有sonicwall设备上的规则记录下来并做成表格:* 1、需要服务器发布的规则(注:因为以前的sonicwall*pro*3060*不支持一个ip地址指向多个服务器的差别端口,所以以下的方法比较华侈ip地址,可是因为是升级现有环境,并且这个ip已经对外使用了很长一段时间了,暂时无法做出整合)* * 2、发布服务器的服务组(只写了一个服务组的配置,其他的类似,如果端口不多也可以不使用服务组,直接在acl中指定端口)* * 3、客户机上网规则及限制* * 黑名单限制* * 笔者:邓卫华*2010.10.23**** cisco*asa5520-k8【最好到cisco的网站上免费升级到k9使之支持3des等加密码方法】* 我先来几张图* 整体* * 面板***笔者:邓卫华*2010.10.23**** * 接口* 接口近照* * 笔者:邓卫华*2010.10.23**** 自带的上架耳朵* * 三、设备基本配置* 1、从光盘中升级现有的系统和相关software* 略......* 以下配置均以升级后的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****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**** 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*六、成立内部用户访问外部的规则集(摘录)* 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**** 咱们总结一个发布服务器的流程注意因为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**** 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**** 以下为第二个阶段的配置* 3、设置转换集/*注因为我设置vpn的时候还未升级为k9所以只能使用des加密码方法,这些设置必须和对端口的设置一样见上图的第二阶段* crypto*ipsec*transform-set*firstset*esp-des*esp-md5-hmac* 4、设置crypto加密图,作用是进一步设置vpn信息及把以前的第一、二阶段应用到接口上* /*建一个名叫思科网络*编号为20的匹配acl叫remote-vpn的加密图* crypto*map*思科网络*20*match*address*remote-vpn* /**ip地址为vpn对端的外部ip地址*/* crypto*map*思科网络*20*set*peer*58.60.x.x* /*第一阶段已经应用到outside接口上了,所以这搭只设置第二阶段的转换集* crypto*map*思科网络*20*set*transform-set*firstset* crypto*map*思科网络*20*set*security-association*lifetime*seconds*28800* crypto*map*思科网络*20*set*security-association*lifetime*kilobytes*4608000* /*应用加密码图到外部接口*/* crypto*map*思科网络*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**** 五、设置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、把动态加密图照射到思科网络*编号为65535.因为以前已经把思科网络这个加密图应用到接口上去了,所以这搭不需要在再应用,这搭也要注意一个接口只能应用一个加密码图,所以思科网络名字必须前后对应* crypto*map*思科网络*65535*ipsec-isakmp*dynamic*system_default_crypto_map* 六、配置通道分离及自定义计谋名叫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**** 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**** 8、增加用户test及密码* vpn-tunnel-protocol*ipsec*svc*webvpn****//可设、可不设置不设则继承,否则以资定义的为主* 笔者:邓卫华*2010.10.23**** 六、配置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**** */*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****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*六、增加用户并设置权限*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**** 本文出自“邓卫华”*博客,请务必保留此出处** |