PIX实验指南
一、 PIX的基本使用
拓扑图
需求
PIX采用三向外围结构,DMZ区域采用静态IP,inside区域采用DHCP方式获取IP,PIX充当DHCP服务器,Client需要采用PAT方式访问互联网,Client访问内部服务器采用直接路由的方式,192.168.2.80服务器需要对外发布到TCP80端口,并拒绝外部到outside接口的任何ICMP通信,内部inside到DMZ和互联网可以采用ICMP测试联通性。
配置
PIX Version 7.2(1)
!
hostname pixfirewall
interface Ethernet0
nameif outside//将E0口配置为外口
security-level 0//将E0口安全级别设置为0
ip address 202.100.1.13 255.255.255.0
!
interface Ethernet1
nameif inside//将E1口配置为内口
security-level 100//将E1口安全级别设置为100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2
nameif dmz//将E2口配置为DMZ
security-level 50//将E2口安全级别设置为50
ip address 192.168.2.1 255.255.255.0
!
access-list outsidelist extended permit tcp any interface outside eq www //允许外部向outside接口发起TCP80端口的连接
access-list outsidelist extended permit icmp any interface outside echo-reply //允许外部向outside接口发送icmp-reply报文
access-list outsidelist extended deny ip any any //拒绝其他所有报文
access-list nonat extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 //从1网段去往2网段的所有报文不进行NAT/PAT处理
access-list dmzlist extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0
access-list dmzlist extended permit tcp host 192.168.2.80 any eq www
icmp deny any outside//拒绝任何地址向outside接口发送ICMP报文
icmp permit any inside//允许任何地址向inside接口发送ICMP报文
icmp permit any dmz//允许任何地址向DMZ接口发送ICMP报文
nat-control//开启NAT功能
global (outside) 1 interface//在outside接口上启动PAT
nat (inside) 0 access-list nonat//从1网段去往2网段的所有报文不进行NAT/PAT处理
nat (inside) 1 192.168.1.0 255.255.255.0//对192.168.1.0网段启动nat功能
static (dmz,outside) tcp interface www 192.168.2.80 www netmask 255.255.255.255 //建立DMZ区域192.168.2.80的80端口到outside接口80端口的静态映射
access-group outsidelist in interface outside//在outside接口绑定outsidelist访问列表
access-group dmzlist in interface dmz//在dmz接口绑定dmzlist访问列表
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1//建立默认路由
ssh timeout 5
dhcpd dns 192.168.2.53//配置DHCP分配的DNS地址
!
dhcpd address 192.168.1.2-192.168.1.254 inside//配置DHCP分配的IP地址范围
dhcpd enable inside//在inside接口上开启DHCP功能
!
二、 DHCP中继
拓扑图
需求
建立上个试验基础上,将PIX的DHCP改为内部192.168.2.53提供DHCP,由PIX中继DHCP
配置
dhcprelay server 192.168.2.53 dmz//配置dmz接口上侦听DHCP服务器192.168.2.53的报文
dhcprelay enable inside//在inside接口上开启侦听客户端DHCP请求的报文
dhcprelay setroute inside//在inside接口上通过DHCP分配默认路由
dhcprelay timeout 60//设置DHCP中继超时时间
三、 PIX虚拟防火墙
拓扑
需求
某商业办公楼中央机房只有一台PIX防火墙,但办公楼驻入有多个公司,为了节约成本,使用虚拟防火墙技术将物理PIX划分为逻辑上多个独立的墙来使用,外部接口共用同一个接口,要求每个公司都能独立NAT/PAT到外部接口。
配置
1. 首先使用show activation-key 来验证是否有multiple-context 的许可。
2. 然后通过mode multiple 和mode single 命令在这两个模式之间进行切换,当然也可以用 show mode 来验证现在工作在什么模式下。在不同context 下进行切换使用Firewall# changeto {system | context name},由于所有的context 的定义都必须在system execution space 下,所以要首先使用changeto system 转入该模式,Firewall(config)# context name 创建虚拟防火墙。
3. 接着通过changeto context xxx 进入相应的虚拟防火墙再要把物理接口映射到context 中,只要这样才能在相应的context 下显示出物理接口,这个虚拟防火墙才是一个完整的虚拟防火墙,从而配置其属性 Firewall(config-ctx)# allocate-interface physical-interface [map-name]
4. 最后定义context 的startup-config 的存放位置Firewall(config-ctx)# config-url url
注:每个虚拟防火墙都要有独立的配置文件, 通过 show context 验证
注:当防火墙工作在 multiple-context 模式下,admin context 就自动生成,但是要把admin这个虚拟防火墙设为管理虚拟防火墙。(show context 来验证)
System mode:
interface Ethernet0
no shut//激活接口
interface Ethernet1
no shut//激活接口
interface Ethernet1.1//建立子接口
description company1
vlan 10//划分到VLAN10
!
interface Ethernet1.2//建立子接口
description company2
vlan 20//划分到VLAN20
admin-context admin//设置管理context为admin
context admin
description "use to admin"
allocate-interface Ethernet1 //将物理接口E1分配给管理context
config-url flash:/admin.cfg//设置管理context的配置文件路径
!
context pix1//建立pix1 Context
description company1
allocate-interface Ethernet0 //分配接口
allocate-interface Ethernet1.1 //分配接口
config-url flash:/pix1.cfg//设置配置文件路径
!
context pix2//建立pix2 Context
description company2
allocate-interface Ethernet0 //分配接口
allocate-interface Ethernet1.2 //分配接口
config-url flash:/pix2.cfg//设置配置文件路径
PIX1 Context:
PIX Version 7.2(1) <context>
!
hostname pix1
!
interface Ethernet1.1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
access-list outsidelist extended permit icmp any interface outside echo-reply
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outsidelist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
PIX2 Context:
PIX Version 7.2(1) <context>
!
hostname pix2
!
interface Ethernet1.2
nameif inside
security-level 100
ip address 192.168.2.1 255.255.255.0
!
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.14 255.255.255.0
!
access-list outsidelist extended permit icmp any interface outside echo-reply
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.2.0 255.255.255.0
access-group outsidelist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
四、 虚拟防火墙与双ISP接入
拓扑图
需求
某单位只有一台PIX,但要求办公区域的计算机单独走电信ISP到互联网,DMZ服务器的流量单独走网通ISP到互联网,要求相互独立
配置
System mode:
PIX Version 7.2(1) <system>
!
hostname pixfirewall
interface Ethernet0
description "to isp1"
no shut
!
interface Ethernet1
description "to isp2"
no shut
!
interface Ethernet2
description "to inside"
no shut
!
interface Ethernet3
description "to dmz"
no shut
!
admin-context admin
context admin
config-url flash:/admin.cfg
!
context insidepix
allocate-interface Ethernet0
allocate-interface Ethernet2
config-url flash:/inside.cfg
!
context dmzpix
allocate-interface Ethernet1
allocate-interface Ethernet3
config-url flash:/dmz.cfg
!
Inside Pix Context:
PIX Version 7.2(1) <context>
!
hostname insidepix
interface Ethernet2
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
access-list insidelist extended permit icmp any interface outside echo-reply
global (outside) 1 interface
nat (inside) 1 192.168.1.0 255.255.255.0
access-group insidelist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
dhcpd dns 61.187.191.53
!
dhcpd address 192.168.1.2-192.168.1.254 inside
dhcpd enable inside
!
!
Dmz PIX Context:
PIX Version 7.2(1) <context>
!
hostname dmzpix
interface Ethernet3
nameif dmz
security-level 50
ip address 192.168.2.1 255.255.255.0
!
interface Ethernet1
nameif outside
security-level 0
ip address 61.187.191.13 255.255.255.0
!
access-list dmzlist extended permit tcp any interface outside eq www
access-list dmzlist extended permit icmp any interface outside echo-reply
nat-control
static (dmz,outside) tcp interface www 192.168.2.80 www netmask 255.255.255.255
access-group dmzlist in interface outside
route outside 0.0.0.0 0.0.0.0 61.187.191.1 1
五、 防火墙的访问
拓扑图
需求
防火墙可以通过console线、telnet、ssh、asdm来管理,请分别实现各种方式的配置。
配置
Console:
console timeout 0//设置通过Console线访问防火墙时的超时时间,0为永不超时
enable password cisco//设置进入特权模式时的特权密码
telnet:
passwd 123qwe!//配置telnet/ssh登录密码
enable password cisco//配置特权密码
telnet timeout 15//设置telnet登陆超时时间为15分钟
telnet 192.168.1.100 255.255.255.255 inside//设置只有inside区域中的192.168.1.100客户端才可以进行telnet登陆
ssh:
hostname mypix//设置pix主机名
domain-name zt.com//设置域名为zt..com
crypto key generate rsa//由rsa算法产生一对密钥,用于ssh加密
passwd 123qwe!//设置ssh,telnet登陆密码,当ssh时,用户名为pix
enable password cisco//配置特权密码
ssh timeout 5//设置ssh空闲超时时间为5分钟
ssh 192.168.1.100 255.255.255.255 inside//设置192.168.1.100可以在inside区域进行ssh登陆
ASDM:
Copy tftp://192.168.2.69/asdm-522.bin flash:/ //从TFTP服务器上传asdm-522.bin文件到flash
hostname mypix//设置主机名为mypix
domain-name zt.com//设置域名为zt .com
asdm image flash:/asdm-522.bin//指定asdm文件路径
username zhongta password Qo1dQf/HbvQeH9gV encrypted privilege 15//建立https访问时的用户名和密码,以及特权等级
http server enable//开启https功能
http 0.0.0.0 0.0.0.0 inside//指定由inside区域中的任何计算机来HTTPS连接
crypto key generate rsa label mykey modulus 1024//由rsa算法生成一个模数为1024位的,名为mykey的公钥私钥对
crypto ca trustpoint myself//建立名为myself的信任点
enrollment self//设置证书来源为”自签名”
subject-name cn=mypix,dc=zt,dc=com//设置证书上的个人信息
keypair mykey//指定证书上的公钥,以及pix自身保留的私钥的密钥对为mykey
crypto ca enroll myself//调用myself信任点的配置信息来生成一份证书
ssl encryption 3des-sha1//指定ssl/https使用的加密和完整性的算法
ssl trust-point myself inside//关联myself信任点和ssl/https
先在客户机上安装java运行环境
使用https协议访问inside接口
输入https console帐号和密码
点击install ASDM Launcher and run ASDM来下载安装ASDM终端
完整ASDM的安装
运行ASDM,输入IP地址、用户、密码
六、 命令授权
拓扑
需求
某公司有两位管理员,其中一位是技术经理,另一位是助理,要求经理账户admin能telnet到PIX后执行任何命令,助理帐号viewuser只能执行show命令,以及开启端口;不能做其他任何配置修改。
配置
PIX将所有命令划分到16个等级,其中0等级命令为show version,show flash:,show starting-config,clear,test,ping,logout,disable等简单的命令,1-14等级为空等级,默认情况下没有任何命令属于这些等级,15等级为最高等级,包括所有命令;一般的,管理员属于15等级,其他管理员助理可以划分到1-14之间的任何等级,你要做的就是在把助理划分到某一等级后,记得把命令也划分到这个等级,这样才能使得助理可以执行你所分配的命令.
username admin password .DmcmSoeEPQUGEaZ encrypted privilege 15//建立一个名字为admin,特权级别为15最高级别的用户,该级别的用户可以执行任何命令
username viewuser password S94V5zX5OSgEwR/J encrypted privilege 10//建立一个名字为viewuser,特权级别为10的用户,该级别在划分命令到10级别前,除了能执行0级别的命令,将无法执行任何命令
aaa authentication telnet console LOCAL //启用telnet的本地数据库认证
aaa authentication enable console LOCAL //对enable密码改为使用本地用户密码
aaa authorization command LOCAL//启动对命令的授权
telnet 192.168.1.0 255.255.255.0 inside//指定只能inside区域的192.168.1.0网段可以telnet访问
privilege cmd level 10 mode exec command configure//可以在10级别exec模式下执行configure命令
privilege show level 10 mode exec command configuration//可以在10级别show命令下执行configuration子命令,即可以show configuration
privilege show level 10 mode exec command running-config//可以在10级别exec模式下执行show running-config
privilege show level 10 mode exec command xlate//可以在10级别EXEC模式下执行show xlate
privilege show level 10 mode exec command access-list//可以在10级别下exec模式下执行show access-list
privilege cmd level 10 mode configure command interface//可以在10级别全局配置模式下执行interface命令
privilege cmd level 10 mode interface command shutdown//可以在10级别接口模式下执行shutdown或者 no shutdown
privilege cmd level 10 mode subinterface command shutdown//可以在10级别子接口模式下执行shutdown或者no shutdown
Viewuser用户登陆后只能简单的show
Viewuser用户可以进入配置模式,但是只能interface到接口,不能修改其他配置
Viewuser用户可以在接口模式下shutdown或者no shutdown接口
七、 AAA认证授权记帐
拓扑
需求:
以上个试验为要求,改为由DMZ内部的AAA服务器提供telnet认证、enable密码认证、以及命令授权。要求admin可以执行15级别所有命令,viewuser只能简单地查看配置、查看版本、查看访问列表、开关端口等。
配置:
1、 安装AAA服务器,这里使用的是cisco acs4.0。为了正常使用acs,必须先安装JAVA运行环境。
2、 安装CISCO ACS4.0
3、 打开IE属性,设置IE安全级别为中低。
4、 启动ACS管理控制台,点击network configuration,再点击右侧Add Entry增加一台AAA客户端,这里的AAA客户端是指pix。
5、填入pix的hostname和ip地址,以及pix和aaa服务器之间通信的KEY,这里KEY使用cisco,再点击下方的submit+apply。
6、点击Interface Configuration,选择右侧的TACACS+(CISCO IOS)
7、点选Advanced TACACS+ Features后点击submit。
8、点击Shared profile components,选择Shell Command Authorization Sets建立命令授权列表。
9、建立一个名为viewuserlist的命令授权列表,Unmatched Commands是指不匹配的命令如何处理,可以选择permit或者deny;Permit Unmatched Args是指命令后面的参数如果不匹配如何处理,如果勾选表示接收不比配的参数,如不勾选表示不接收不匹配的参数。注:enable这里要勾选permit unmatched args。
10、点击GroupSetup,选择组0后点击RenameGroup,将默认组0的名字改成AdminGroup,作为管理员所属的组。选择组1后点击RenameGroup,将组1的名字改成ViewGroup,作为普通助理所属的组。
11、点击GroupSetup,选择组0AdminGroup,点击Edit Settings来修改组0的设置,在Enable Options中设置AAA Clinet 能够使用的的最大特权级别为15。勾选Shell(Exec)表示属于该组的用户可以执行Shell命令,在PrivilegeLevel填入15,表示用户在enable密码认证成功后默认跳到的特权级别为15级别。在Shell Command Authorization Set中选中Per Group Commnad Authorization(每组式命令授权),然后在Unmatched cisco IOS commnads中选permit,表示允许不匹配的命令,最后点击提交。
12、点击GroupSetup,选择组1ViewGroup,点击Edit Settings来修改组0的设置,在Enable Options中设置AAA Clinet 能够使用的的最大特权级别为15。勾选Shell(Exec)表示属于该组的用户可以执行Shell命令,在PrivilegeLevel填入15,表示用户在enable密码认证成功后默认跳到的特权级别为15级别。在Shell Command Authorization Set中选中Assign a Shell Command Authorization Set for any network device,然后在下拉列表中选中viewuserlist,最后点击提交。
13、点击UserSetup,在右侧输入admin后点击ADD/EDIT按钮来建立一个名字为admin的用户。在admin用户的属性里输入密码和确认密码,并设置admin用户所属的组为 AdminGroup。在TACACS+ Enable Password中选择Use CiscoSecure PAP password。在Advanced Tacacs+ Settings中选中Use Group Level Setting。最后点击submit。
14、以上一步为式样,建立用户viewuser,设置所属组为组1ViewGroup。在TACACS+ Enable Password中选择Use CiscoSecure PAP password。在Advanced Tacacs+ Settings中选中Use Group Level Setting。最后点击submit。
PIX:
PIX Version 7.2(1)
hostname mypix
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
interface Ethernet1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2
nameif dmz
security-level 50
ip address 192.168.2.1 255.255.255.0
access-list outsidelist extended permit icmp any interface outside echo-reply
access-list dmzlist extended permit ip any any
access-list nonat extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 //inside到dmz区域采用路由,不用nat/pat。
nat-control
global (outside) 1 interface
nat (inside) 0 access-list nonat
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outsidelist in interface outside
access-group dmzlist in interface dmz
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
aaa-server myserver protocol tacacs+//指定myserver服务器组采用tacacs+协议
aaa-server myserver (dmz) host 192.168.2.20//指定aaa服务器为192.168.2.20,密钥为cisco
key cisco
aaa authentication telnet console myserver //指定telnet登陆通过myserver指定的服务器组验证
aaa authentication enable console myserver //指定enable密码通过myserver服务器组验证
aaa authorization command myserver //指定shell命令通过myserver服务器组授权
telnet 192.168.1.0 255.255.255.0 inside//指定只有192.168.1.0网段的主机才可以telnet
八、 Download ACL
拓扑
需求
客户端通过telnet/http/ftp等协议引发一个登陆验证,使用user1账户的客户机可以随意访问DMZ和outside区域,但是使用user2账户的客户机只能访问DMZ区域中的服务器,不能访问outside外部网络,其他任何没有通过验证的客户端不允许访问任何网络,只能访问本地inside网络。本实验通过DMZ区域中的AAA服务器来完成用户的验证、用户ACL的下发。
配置
1. 安装ACS服务器后,点击NetworkConfiguration,添加pix为AAA Client。协议改为Radius
2.点击InterfaceConfiguration,选择Advanced Options。
3.勾选user-level downloadable ACLs后点击提交。
4.点击SharedProfileComponents选择Downloadable IP ACLs。
5.点击ADD按钮,添加一个名为user1ACL的Downloadable ACL.该ACL中建立一个名字为user1list,内容为permit ip any any的访问列表项。
6.按照上一步,再次点击ADD按钮,添加一个名为user2ACL的Downloadable ACL.该ACL中建立一个名字为user2list,内容为permit ip any 192.168.2.0 255.255.255.0;deny ip any any的访问列表项。
7.点击UserSetup,添加一个名为user1的用户,密码自行定义,在该用户属性的最下方勾选Assign IP ACL,并选择user1ACL。
8.同上一步,建立一个用户名为user2的用户,在该用户属性的最下方勾选Assign IP ACL,并选择user2ACL。
9.配置PIX
PIX Version 7.2(1)
!
hostname mypix
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
interface Ethernet1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2
nameif dmz
security-level 50
ip address 192.168.2.1 255.255.255.0
access-list outsidelist extended permit icmp any interface outside echo-reply //允许外网回送ECHO-REPLY,该ACL用于ping测试。
access-list dmzlist extended permit ip any any //允许DMZ区域所有协议通过DMZ接口。
access-list nonat extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 //从192.168.1.0到192.168.2.0的所有报文不允许NAT/PAT。
access-list authlist extended permit ip any any //在认证成功前,凡符合该ACL的所有流量除TELNET/FTP/HTTP以外都将被阻止。
nat-control
global (outside) 1 interface
nat (inside) 0 access-list nonat//调用nonat ACL,nat 0号进程不会进行NAT/PAT
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outsidelist in interface outside
access-group dmzlist in interface dmz
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
aaa-server myserver protocol radius
aaa-server myserver (dmz) host 192.168.2.20
key cisco
aaa authentication match authlist inside myserver//在inside接口上凡匹配authlist的流量将触发认证,但实际上只有telnet/http/ftp流量才会触发。在认证成功之前,凡符合authlist的流量将被拒绝。
10.在192.168.1.100上使用user1测试
11.在192.168.1.200上使用user2测试
12.使用 show uauth查看通过验证通过的用户数量和名称,以及下发的用户访问ACL。
13.使用show access-list查看访问列表
14.如果inside接口事先已经绑定了ACL,那下载的用户ACL和inside接口的ACL之间哪个生效?
如果inside接口的ACL在绑定时未添加per-user-override参数,则用户的下载ACL将排在inside接口的ACL之后执行,但如果inside接口的ACL在绑定时添加了per-user-override参数,则用户的下载ACL将覆盖掉inside接口的ACL。
九、 防火墙透明模式
拓扑
需求
将防火墙设置为第二层透明模式,在192.168.2.0和192.168.3.0之间使用防火墙增强安全性,但必须使得两端路由器能通过OSPF协议学习到对端的路由。且192.168.2.0和192.168.3.0之间可以通过ICMP协议来测试连通性。
配置
1. 进入透明模式
pixfirewall(config)# firewall transparent
2. 查看工作模式
pixfirewall(config)# show firewall
Firewall mode: Transparent
3. 配置接口
interface Ethernet0//无需配置IP地址
nameif outside
security-level 0
no shut
interface Ethernet1
nameif inside
security-level 100
no shut
4. 配置管理IP
pixfirewall(config)# ip address 192.168.1.3 255.255.255.0
5. 配置访问列表
access-list permitlist extended permit ospf any any
access-list permitlist extended permit icmp any any
access-group permitlist in interface inside//在inside接口上放行permitlist指定的流量
access-group permitlist in interface outside//在outside接口上放行permitlist指定的流量
6. 查看和配置MAC-ADDRESS-TABLE
pixfirewall(config)# show mac-address-table
interface mac address type Age(min)
------------------------------------------------------------------
inside cc00.02f8.0000 dynamic 3
outside cc01.02f8.0000 dynamic 4
pixfirewall(config)# mac-address-table aging-time 5
pixfirewall(config)#mac-address-table static inside 0011.2233.4455//在inside接口上静态绑定MAC地址。
pixfirewall(config)# mac-learn outside disable//在outside接口上关闭MAC地址的学习
7. 查看和配置ARP表
pixfirewall(config)# show arp//查看ARP表
pixfirewall(config)# arp inside 192.168.2.100 003c.2756.2e23//在inside接口上静态绑定ARP
pixfirewall(config-if)# arp-inspection outside enable//在outside接口上启动arp检测
十、 基于时间的ACL
拓扑
需求
某公司正常的上班时间为星期一至星期五,早上9:00至18:00;管理员需要在PIX上设置,让所有客户端只能在工作时间段访问外网,任何时间都可以访问DMZ。
配置
1. 在DMZ区域安装一台NTP时间服务器,使用NTP V4.X。
2. 配置PIX
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
interface Ethernet1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2
nameif dmz
security-level 50
ip address 192.168.2.1 255.255.255.0
!
time-range worktime//建立一个名为worktime的时间范围
periodic weekdays 9:00 to 18:00//时间范围为weekdays(星期一至星期五)的9:00到18:00
clock timezone mytime 8//设定PIX的工作时区为+8区,时区名字为mytime
access-list outlist extended permit icmp any interface outside echo-reply //用于ping测试
access-list dmzlist extended permit ip any any //用于ping测试
access-list nonat extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
access-list insidelist extended permit ip 192.168.1.0 255.255.255.0 any time-range worktime //此条ACL只在worktime时间范围有效时才存在,否则无效,跳到下一条ACL。
access-list insidelist extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 //允许192.168.1.0任何时候都可以访问192.168.2.0
access-list insidelist extended deny ip any any
global (outside) 1 interface
nat (inside) 0 access-list nonat
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outlist in interface outside
access-group insidelist in interface inside//绑定时间访问列表insidelist
access-group dmzlist in interface dmz
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
ntp server 192.168.2.123 source dmz//设定PIX的时间同步服务器地址为192.168.2.123
3. 验证
十一、基本Failover
拓扑
需求
PIX1和PIX2组成failover,要求当PIX1宕机后,PIX2能接替IP和MAC地址,继续工作。
配置
PIX1和PIX2硬件配置必须相同,并用相同的接口连接内网和外网,PIX1和PIX2直接使用相同的接口相互连接,作为心跳线failoverlink;当PIX1为ACTIVE状态时,每隔一段时间会通过failoverlink线路发送hello信息报文给PIX2,如果连续两个hello没有收到,PIX2将从standby状态跳跃到active状态,并接受PIX1的IP和MAC地址继续工作,并对inside区域的客户机透明。
1.配置PIX1
PIX1:
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0 standby 202.100.1.14 //配置outside的主IP和备份IP
!
interface Ethernet1//用于心跳线
description LAN Failover Interface
no shut//激活E1接口
!
interface Ethernet2
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0 standby 192.168.1.2 //配置inside的主IP和备份IP
access-list outlist extended permit icmp any interface outside echo-reply //用于ping测试的ACL
failover//启动FAILOVER
failover lan unit primary//配置failover通过LAN口实现心跳线,并设置本机为primary端
failover lan interface flink Ethernet1//配置E1接口为LAN心跳线接口,并赋予flink名称
failover lan enable//激活LAN心跳线接口
failover interface ip flink 10.1.1.1 255.255.255.0 standby 10.1.1.2//设置LAN心跳线的ACTIVE端的IP和STANDBY端的IP,用于心跳通信
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outlist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
2.配置PIX2
PIX2:
interface Ethernet1//用于心跳线
description LAN Failover Interface
no shut//接口E1接口
failover//启动FAILOVER
failover lan unit primary//配置failover通过LAN口实现心跳线,并设置本机为primary端
failover lan interface flink Ethernet1//配置E1接口为LAN心跳线接口,并赋予flink名称
failover lan enable//激活LAN心跳线接口
failover interface ip flink 10.1.1.1 255.255.255.0 standby 10.1.1.2//设置LAN心跳线的ACTIVE端的IP和STANDBY端的IP,用于心跳通信
3等待PIX1的所有配置通过failover link心跳线传输到PIX2
4. 通过show failover查看两端的状态
5. 测试效果,使用客户端PING外部网络,然后关闭处于ACTIVE状态的PIX1,稍等后,PIX2将继续工作,客户端PING只有少许的中断。
十二、Failover NLB
拓扑
需求
某公司内部有3个VLAN,VLAN1用于管理设备,VLAN2用于市场部,VLAN3用于研发部,公司购入两台型号相同的PIX;要求第一台物理PIX都划分出两个虚拟context,一个context用于VLAN2通信,另一个context用于VLAN3通信;物理PIX1的vlan2-pix1虚拟context用于VLAN2通信,处于ACTIVE状态,物理PIX1的vlan3-pix1虚拟context用于VLAN3通信,处于STANDBY状态,第二台作为PIX1的failover冗余,从而实现如图所示的负载平衡和Failover,最大化利用现有资源。
配置
PIX1:
System 模式
hostname pix1
interface Ethernet0
no shut
interface Ethernet1
description LAN/STATE Failover Interface
no shut
interface Ethernet2
no shut
interface Ethernet2.2
vlan 2
interface Ethernet2.3
vlan 3
failover//启动Failover
failover lan unit primary//设置为primary端
failover lan interface flink Ethernet1//指定e1接口为failover接口
failover lan enable
failover link flink Ethernet1
failover interface ip flink 10.1.1.1 255.255.255.0 standby 10.1.1.2
failover group 1//建立failover group1
primary//设置primary端默认情况下具有高优先级
preempt//配置占先权
failover group 2//建立failover group2
secondary//设置secondary端默认情况下具有高优先级
preempt//配置占先权
admin-context admin
context admin
description "Use to admin"
allocate-interface Ethernet0
allocate-interface Ethernet2
config-url flash:/admin.cfg
!
context vlan2-pix1
allocate-interface Ethernet0
allocate-interface Ethernet2.2
config-url flash:/vlan2-pix1.cfg
join-failover-group 1
!
context vlan3-pix1
allocate-interface Ethernet0
allocate-interface Ethernet2.3
config-url flash:/vlan3-pix1.cfg
join-failover-group 2
vlan2-pix1 Context模式
hostname vlan2-pix1
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0 standby 202.100.1.14
!
interface Ethernet2.2
nameif inside
security-level 100
ip address 192.168.2.1 255.255.255.0 standby 192.168.2.2
access-list outlist extended permit icmp any interface outside echo-reply
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.2.0 255.255.255.0
access-group outlist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
vlan3-pix1 Context模式
hostname vlan3-pix1
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.15 255.255.255.0 standby 202.100.1.16
!
interface Ethernet2.3
nameif inside
security-level 100
ip address 192.168.3.1 255.255.255.0 standby 192.168.3.2
!
access-list outlist extended permit icmp any interface outside echo-reply
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.3.0 255.255.255.0
access-group outlist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
PIX2
System模式
hostname pix2
interface Ethernet1
description LAN/STATE Failover Interface
no shut
failover
failover lan unit secondary
failover lan interface flink Ethernet1
failover lan enable
failover link flink Ethernet1
failover interface ip flink 10.1.1.1 255.255.255.0 standby 10.1.1.2
验证
正常情况下两个PIX的show fialover状态
PIX1:
PIX2:
关闭PIX1,稍等片刻,PIX2的standby变为active,接替PIX1继续工作,VLAN2 VLAN3通信依然正常。
十三、IDS与SYSLOG
拓扑
需求
开启PIX上的IDS功能,并将日志记录到DMZ区域的syslog服务器上;PIX上的IDS签名只是CISCO IDS的一部分,共有51个签名:
pixfirewall(config)# sh ip audit count
IP AUDIT GLOBAL COUNTERS
1000 I Bad IP Options List 0
1001 I Record Packet Route 0
1002 I Timestamp 0
1003 I Provide s,c,h,tcc 0
1004 I Loose Source Route 0
1005 I SATNET ID 0
1006 I Strict Source Route 0
1100 A IP Fragment Attack 0
1102 A Impossible IP Packet 0
1103 A IP Teardrop 0
2000 I ICMP Echo Reply 0
2001 I ICMP Unreachable 0
2002 I ICMP Source Quench 0
2003 I ICMP Redirect 0
2004 I ICMP Echo Request 0
2005 I ICMP Time Exceed 0
2006 I ICMP Parameter Problem 0
2007 I ICMP Time Request 0
2008 I ICMP Time Reply 0
2009 I ICMP Info Request 0
2010 I ICMP Info Reply 0
2011 I ICMP Address Mask Request 0
2012 I ICMP Address Mask Reply 0
2150 A Fragmented ICMP 0
2151 A Large ICMP 0
2154 A Ping of Death 0
3040 A TCP No Flags 0
3041 A TCP SYN & FIN Flags Only 0
3042 A TCP FIN Flag Only 0
3153 A FTP Improper Address 0
3154 A FTP Improper Port 0
4050 A Bomb 0
4051 A Snork 0
4052 A Chargen 0
6050 A DNS Host Info 0
6051 A DNS Zone Xfer 0
6052 A DNS Zone Xfer High Port 0
6053 A DNS All Records 0
6100 I RPC Port Registration 0
6101 I RPC Port Unregistration 0
6102 I RPC Dump 0
6103 A Proxied RPC 0
6150 I ypserv Portmap Request 0
6151 I ypbind Portmap Request 0
6152 I yppasswdd Portmap Request 0
6153 I ypupdated Portmap Request 0
6154 I ypxfrd Portmap Request 0
6155 I mountd Portmap Request 0
6175 I rexd Portmap Request 0
6180 I rexd Attempt 0
6190 A statd Buffer Overflow 0
所有的签名分为两类,一类就是info,表示只是探测行为,一般没有危害,另一类是attack,表示攻击行为,一般有危害性。PIX上的IDS功能只能防御简单的攻击。
配置
1. 在DMZ区域的syslog服务器上安装Kiwi_Syslogd_8.3.19
2. 配置PIX
PIX Version 7.2(1)
!
hostname pixfirewall
interface Ethernet0
nameif outside
security-level 0
ip address 202.100.1.13 255.255.255.0
!
interface Ethernet1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2
nameif dmz
security-level 50
ip address 192.168.2.1 255.255.255.0
!
access-list outlist extended permit icmp any interface outside echo-reply //PING测试
logging enable//开启log功能
logging trap debugging//设置log记录的级别,分为0-7级
logging host dmz 192.168.2.123//设置log server的ip 地址
ip audit name myattack attack action alarm drop reset//建立一个名为myattack的attack策略,该策略触发时,动作为提示、丢弃、重置连接。
ip audit name myinfo info action alarm//建立一个名为myinfo的info策略,该策略触发时,动作为提示。
ip audit interface outside myinfo//将myinfo策略绑定到outside接口
ip audit interface outside myattack//将myattack策略绑定到outside接口
nat-control
global (outside) 1 interface
nat (inside) 1 192.168.1.0 255.255.255.0
access-group outlist in interface outside
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1
3. 测试,使用inside区域的客户机ping外部网络,查看log server上的记录
4. 关闭签名号为2000的audit(ping echo-reply)
pixfirewall(config)# ip audit signature 2000 disable
十四、PPPoE
拓扑
需求
ISP使用路由器提供PPPOE拨号,企业用户使用路由器和防火墙作为PPPOE的客户端,要求企业内部能够通过PPPOE拨号成功后联入Internet。
配置
PPPOE SERVER:
hostname PPPoE-Server
aaa new-model //启动 AAA 功能模块
aaa authentication ppp default local //针对PPP认证建立一条名字为default,方法为“local本地认证“的认证列表
vpdn enable //启动VPN拨号功能
username 131001 password 0 123qwe! //建立131001用户和密码
username 131002 password 0 123qwe! //建立131002用户和密码
bba-group pppoe global //建立PPPOE拨号组策略
virtual-template 1 //绑定1号虚拟拨号模板
sessions max limit 300 //设置PPPOE服务器最大接受的用户数量
sessions per-mac limit 1 //设置每MAC地址能同时发起的PPPOE连接数量
interface Ethernet0/0
ip address 202.100.1.1 255.255.255.0
half-duplex
pppoe enable group global //在E0/0接口上起开PPPOE会话侦听
interface Virtual-Template1 //创建1号虚拟模板
ip address 61.187.191.254 255.255.255.0 //设置模板IP(PPPOE网关IP)
peer default ip address pool vpnpool //设置PPPOE客户端IP地址来源于vpnpool池
ppp authentication pap //启动PPP的PAP认证
ip local pool vpnpool 61.187.191.1 61.187.191.100 //建立vpnpool地址池
PPPOE Client(Router):
hostname PPPoE-Client
interface Ethernet0/0
no ip address
pppoe enable //在接口上开启PPPOE
pppoe-client dial-pool-number 1 //将E0/0物理接口放入1号拨号池,并作为拨号客户端接口
interface Ethernet0/1
ip address 192.168.1.1 255.255.255.0
ip nat inside
interface Dialer0 //建立0号模拟拨号接口
ip address negotiated //设置IP地址为“协商“
ip nat outside
encapsulation ppp //设置封装协议为PPP
dialer in-band //启动DDR
dialer-group 1 //通过编号为1的dialer-list来感知兴趣流
dialer pool 1 //将0号拨号接口与1号拨号池绑定
ppp pap sent-username 131001 password 0 123qwe! //设置PPP协议PAP认证时发送的用户名和密码
ip route 0.0.0.0 0.0.0.0 Dialer0 //建立一条通过0号拨号接口的默认路由
ip nat inside source list natlist interface Dialer0 overload//启动对0号拨号接口的PAT
ip access-list extended natlist
permit ip 192.168.1.0 0.0.0.255 any
dialer-list 1 protocol ip permit //建立编号为1的拨号列表,用于设置对具体的数据流产生兴趣,不满足该列表的数据包不会触发拨号
PPPoE Client(PIX):
hostname PPPOE-Client
interface Ethernet0
nameif outside
security-level 0
pppoe client vpdn group pppoe //设置该物理接口用于PPPOE拨号,并与pppoe拨号组策略绑定
ip address pppoe setroute //设置该接口的IP地址通过PPPOE获取,并生成默认路由
interface Ethernet1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
access-list outlist extended permit icmp any interface outside echo-reply //建立一条用于PING测试的ACL
nat-control //启动NAT
global (outside) 1 interface //设置对 192.168.1.0的地址到outside接口上的PAT
nat (inside) 1 192.168.1.0 255.255.255.0 //设置对192.168.1.0网段在INSIDE接口上启动NAT
access-group outlist in interface outside //绑定用于PING测试的ACL
vpdn group pppoe request dialout pppoe//建立一个名字为pppoe的VPDN策略组,并设置该策略组用于pppoe的“拨出请求“
vpdn group pppoe localname 131002 //设置PPPOE的本地用户名,该名称和拨号时的发送用户名可以不同,主要用于本地统计时显示,即拨号用户名的显示名
vpdn group pppoe ppp authentication pap //设置PPPOE拨号时启动PAP认证
vpdn username 131002 password ********* //设置PPPOE拨号时发送的用户名和密码
十五、证书签名IPSEC VPN
拓扑
需求
某公司总部在北京,分公司在广州,要求构建IPSEC VPN,总公司使用CISCO路由器作为网关接入互联网,分公司使用PIX防火墙作为网关接入互联网,由于安全性要求较高,所以管理员不打算使用预共享密钥来构建VPN,而是使用公网CA提供的证书来完成隧道的认证。公网CA的域名为www.myca.com。
配置
1. 构建公网CA服务器,先修改CA服务器主机名为myca,然后再安装独立根CA功能
2. 输入CA的公用名称为www.myca.com
3. 在CA上安装mscep.dll组件来支持cisco设备从CA请求证书
4. 检查CA服务器是否成功安装MSCEP组件,如果IIS里能看到mscep虚拟路径则表示安装成功
5. 配置总公司路由器
Interface e0/0 //初始化物理接口
Ip address 202.100.1.64 255.255.255.0
No shut
Interface e0/1
Ip address 192.168.1.1 255.255.255.0
No shut
Hostname BeiJing //配置主机名为BeiJing
Ip domain-name benet.com //配置域名为benet.com
ip host www.ca.com 187.126.32.39 //建立www.ca.com到187.126.32.39的解析记录
ip host myca 187.126.32.39 //建立myca主机名到187.126.32.39的解析记录,如果CA是域环境,且域名为www.ca.com,则只需要建立www.ca.com的解析记录
ip route 0.0.0.0 0.0.0.0 202.100.1.1 //建立默认路由至ISP
crypto key generate rsa general-keys label mykeys modulus 1024 //产生一对名字为mykeys、模数为1024的RSA密钥对
crypto ca trustpoint myca //建立一个名字为myca的CA信任点
rsakeypair mykeys //绑定mykeys密钥对,该密钥对用于和CA进行安全通信
subject-name cn=BeiJing,dc=benet,dc=com //指定本地路由器的证书信息,cn表示主机名,dc表示域名段
enrollment url http://www.ca.com/certsrv/mscep/mscep.dll //指定证书申请时使用的URL地址,此处必须指出mscep.dll的完整访问域名
enrollment mode ra //配置证书申请方式为RA(注册授权)方式
crypto ca authenticate myca //向myca信任点中指定的url地址发起CA证书下载请求
Certificate has the following attributes:
Fingerprint MD5: B5F622B6 B8D1EECB 425F3F30 EEBD9D6F
Fingerprint SHA1: 0ADBF87C 4A3A2D83 8F011735 CDDD0A22 E5ED2B25
% Do you accept this certificate? [yes/no]:yes //输入yes,表达接受CA的证书
crypto ca enroll myca //向myca信任点中指定的url地址发起路由器证书申请请求
使用公司内部计算机访问http://www.myca.com/certsrv/mscep/mscep.dll
得到一个挑战密码,将此密码复制粘贴到路由器的Password:提示处
%
% Start certificate enrollment ..
% Create a challenge password. You will need to verbally provide this
password to the CA Administrator in order to revoke your certificate.
For security reasons your password will not be saved in the configuration.
Please make a note of it.
Password: 36202C70AD63F3B3
% The subject name in the certificate will include: cn=BeiJing,dc=benet,dc=com
% The subject name in the certificate will include: BeiJing.benet.com
% Include the router serial number in the subject name? [yes/no]: no //不将路由器序列号放入subject name中
% Include an IP address in the subject name? [no]: no //不将IP地址放入subject name中
Request certificate from CA? [yes/no]: yes //从CA请求一个路由器证书
CA服务器上颁发路由器证书
crypto isakmp enable //开启isakmp协议
crypto isakmp policy 10 //建立编号为10的isakmp策略
authentication rsa-sig//设置isakmp阶段对隧道认证的方式为RSA证书签名式
encryption 3des //设置isakmp协商阶段对数据加密方式为3DES
group 2 //设置isakmp协商阶段进行DH算法的模式为dh group 2
hash md5 //设置isakmp协商阶段进行数据hash完整性检测使用的算法为MD5
crypto ipsec transform-set vpnset esp-3des esp-md5-hmac //建立IPSEC传输模式集
mode tunnel //设置IPSEC模式为tunnel模式
ip access-list extended vpnlist //建立VPN的兴趣列表ACL
permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
crypto map vpnmap 10 ipsec-isakmp //建立加密图
match address vpnlsit //在加密图中绑定兴趣ACL
set peer 61.187.191.32 //在加密图中绑定VPN隧道对端IP
set transform-set vpnset //在加密图中绑定传输模式集
interface e0/0
crypto map vpnmap //在E0/0外部接口上启动IPSEC
ip access-list extended natlist //建立PAT列表
deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
permit ip 192.168.1.0 0.0.0.255 any
interface e0/0
ip nat outside //在E0/0外部接口上启动PAT
interface e0/1
ip nat inside //在E0/1内部接口上启动PAT
ip nat inside source list natlist interface e0/0 overload //对natlist中的数据流进行E0/0接口的PAT转换
6. 配置分公司PIX防火墙
Interface e0 //初始化物理接口
Ip address 61.187.191.32 255.255.255.0
security-level 0
nameif outside
no shutdown
interface e1 //初始化物理接口
ip address 192.168.2.1 255.255.255.0
security-level 100
nameif inside
no shutdown
hostname GuangZhou //修改主机名为GuangZhou
domain-name benet.com //设置域名为benet.com
name 187.126.32.39 myca //建立主机名myca到187.126.32.39的解析记录
route outside 0 0 61.187.191.1 //建立与ISP的默认路由
crypto key generate rsa label mykeys modulus 1024 //生成一个名字为mykeys的模数1024的RSA密钥对
crypto ca trustpoint myca //建立一个名字为myca的CA信任点
keypair mykeys //在该信任点里绑定mykeys密钥对,用于与CA的安全通信
subject-name cn=GuangZhou,dc=benet,dc=com //设置PIX防火墙证书信息
enrollment url http://myca/certsrv/mscep/mscep.dll //绑定CA的证书申请url地址
crypto ca authenticate myca //调用myca信任点中指定的url向CA下载CA信任证书
INFO: Certificate has the following attributes:
Fingerprint: b5f622b6 b8d1eecb 425f3f30 eebd9d6f
Do you accept this certificate? [yes/no]:yes //接受CA信任证书
crypto ca enroll myca //调用myca信任点中指定的url向CA发送pix防火墙证书请求
使用公司内部计算机访问http://www.ca.com/certsrv/mscep/mscep.dll地址,得到一份临时的挑战密钥,将该密钥复制粘贴到password:提示处
%
% Start certificate enrollment ..
% Create a challenge password. You will need to verbally provide this
password to the CA Administrator in order to revoke your certificate.
For security reasons your password will not be saved in the configuration.
Please make a note of it.
Password: 7F75C07D276CB678 //粘贴密钥
Re-enter password: 7F75C07D276CB678 //粘贴密钥
% The subject name in the certificate will be: cn=GuangZhou,dc=benet,dc=com
% The fully-qualified domain name in the certificate will be: GuangZhou.benet.com
% Include the device serial number in the subject name? [yes/no]: no //证书信息中不要包含pix设备的序列号
Request certificate from CA? [yes/no]: yes //向CA请求一份证书
CA管理员审核后颁发证书
crypto isakmp enable outside //在outside接口上开启isakmp协商功能
crypto isakmp policy 10 //建立编号为10的iskamp策略
authentication rsa-sig //指定isakmp协商阶段对隧道认证时采用RSA证书签名
encryption 3des //指定isakmp协商阶段数据的机密性采用3des算法
group 2 //指定isakmp协商阶段进行DH密钥交换时采用dh Group 2 算法
hash md5 //指定isakmp协商阶段进行数据完整性时采用md5算法
crypto ipsec transform-set vpnset esp-3des esp-md5-hmac //建立一个名字为vpnset的传输模式集
access-list vpnlist extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0 //建立一条用于建立ipsec vpn的兴趣ACL
crypto map vpnmap 10 ipsec-isakmp //建立一个名字为vpnmap编号为10的加密图,并指定通过isakmp协议进行sa的协商建立
crypto map vpnmap 10 match address vpnlist //绑定vpnlist兴趣ACL到vpnmap加密图
crypto map vpnmap 10 set peer 202.100.1.64 //绑定隧道对端IP 202.100.1.64到vpnmap加密图
crypto map vpnmap 10 set transform-set vpnset //绑定vpnset传输模式集到vpnmap加密图
crypto map vpnmap interface outside //将vpnmap加密图绑定到outside接口上,启动ipsec功能
nat-control // 开启nat控制
nat (inside) 0 access-list vpnlist //针对vpnlist ACL中的数据不做nat/pat
nat (inside) 1 192.168.2.0 255.255.255.0 //针对来自192.168.2.0网段的数据做NAT/PAT
global (outside) 1 interfaces //将192.168.1.0 的数据PAT到outside接口
access-list outsidelist extended permit icmp any interface outside echo-reply //建立一条用于ping测试的ACL
access-group outsidelist in interface outside //将测试ACL绑定到outside接口的in方向上
十六、远程访问VPN
拓扑
需求
某公司采用PIX防火墙作为网关,该公司采用三项外围拓扑结构,其中DMZ为服务器区域,Inside为公司内部办公网络,Outside为外部网络;该公司移动办公用户需要远程访问公司内部的附件服务器和邮件服务器,但无法确定移动用户的当前IP地址,要求管理员建立远程访问VPN。
配置
1. 配置PIX防火墙
hostname pix
interface Ethernet0 //初始化物理接口
nameif outside
security-level 0
ip address 202.100.1.64 255.255.255.0
!
interface Ethernet1 //初始化物理接口
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet2 //初始化物理接口
nameif dmz
security-level 50
ip address 172.16.1.1 255.255.255.0
access-list vpnsplitlist extended permit ip 172.16.1.0 255.255.255.0 any //该ACL用来推送至客户端,形成客户端访问公司内部时的兴趣ACL
access-list outsidelist extended permit icmp any interface outside //该ACL用来PING测试
access-list dmzlist extended permit ip 172.16.1.0 255.255.255.0 any //该ACL用来放行DMZ至其他区域的所有数据
access-list notnat extended permit ip 192.168.1.0 255.255.255.0 172.16.1.0 255.255.255.0 //该ACL用来指定从INSIDE区域访问DMZ区域无须进行NAT/PAT处理,直接采用路由的方式
ip local pool vpnpool 10.1.1.2-10.1.1.254 mask 255.255.255.0 //建立一个名字为vpnpool的IP地址分配池
global (outside) 1 interface //对序号为1的NAT策略中的数据包进行outside端口的PAT
nat (inside) 0 access-list notnat //将名字为notnat的ACL中指定的,且来自inside接口的数据包放入序号为0的NAT策略中,且不进行任何NAT/PAT处理
nat (inside) 1 192.168.1.0 255.255.255.0 //将来自inside接口的,且源地址在192.168.1.0网段的数据包,放入序号为1的NAT策略中
access-group outsidelist in interface outside //绑定outsidelist ACL到outside接口的IN方向上
access-group dmzlist in interface dmz //绑定dmzlist ACL到dmz接口的IN方向上
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1 //建立至ISP的默认路由
group-policy remoteaccess internal //建立名字为remoteaccess的内部组策略
group-policy remoteaccess attributes //设置remoteaccess组策略的属性
wins-server value 172.16.1.53 //配置分配给客户端的WINS地址
dns-server value 172.16.1.53 //配置分配给客户端的DNS地址
vpn-tunnel-protocol IPSec //配置客户端启动VPN时使用的隧道协议为IPSEC
password-storage enable //配置客户端进行用户名认证时可以保存用户名和密码
split-tunnel-policy tunnelspecified //配置客户端通过IPSEC访问公司内部时的数据的IPSEC VPN兴趣策略,此处为tunnelspecified[特定隧道],即通过ACL来指定客户端至公司需要加密的数据流,而不是客户端至公司的所有数据流
split-tunnel-network-list value vpnsplitlist //将vpnsplitlist ACL推送到客户端,客户端发送数据时,如果满足该ACL的数据将被IPSEC VPN,否则直接发送出去,不进行IPSEC VPN,此命令和上一条命令搭配使用
split-dns value benet.com //配置客户端解析时对benet.com的解析不发送至公网DNS,而是使用IPSEC VPN获取的DNS地址来解析
username zhongta password Qo1dQf/HbvQeH9gV encrypted //建立本地用户和密码用于ipsec vpn的用户认证
crypto ipsec transform-set vpnset esp-3des esp-md5-hmac //建立vpnset传输模式集
crypto dynamic-map template-map 10 set transform-set vpnset //建立一个名字为template-map的优先级为10的动态加密图,并绑定vpnset传输模式集
crypto map vpnmap 10 ipsec-isakmp dynamic template-map //建立优先级为10的名字为vpnmap的加密图,并告诉PIX,该加密图中的绑定信息来自动态加密图template-map
crypto map vpnmap interface outside //绑定vpnmap加密图至outside接口上
crypto isakmp enable outside //开启isakmp策略
crypto isakmp policy 10 //建立编号为10的isakmp策略
authentication pre-share //设置isakmp协商阶段时隧道认证采用预共享密钥
encryption 3des //设置isakmp协商阶段对数据加密使用3DES
hash md5 //设置isakmp协商阶段对数据完整性使用md5
group 2 //设置isakmp协商阶段DH密钥交换使用DH GROUP 2模式
lifetime 86400
crypto isakmp policy 65535 //PIX自行建立的默认策略
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
tunnel-group guangzhou type ipsec-ra //建立名字为guangzhou的类型为ipsec-ra的隧道组,该隧道组名字会和密钥一起用于进行隧道认证
tunnel-group guangzhou general-attributes //配置guangzhou隧道组的通用属性
address-pool vpnpool //配置分配给客户端的地址来源于vpnpool地址池
default-group-policy remoteaccess //将remoteaccess组策略绑定到guangzhou隧道组
tunnel-group guangzhou ipsec-attributes //配置guangzhou隧道组的ipsec属性
pre-shared-key * //配置guangzhou隧道组的预共享密钥,该密钥和隧道组的组名一起用来进行隧道认证
2. 在移动办公用户上安装CISCO VPN CLIENT
十七、L2TP WITH IPSEC VPN
拓扑
需求
某公司采用PIX作为接入互联网的网关,采用三向外围拓扑结构,要求外部移动用户可以使用L2TP+IPSEC的方式安全地接入公司DMZ区域
配置
1. 配置PIX防火墙
hostname pix
interface Ethernet0 //初始化物理接口
nameif outside
security-level 0
ip address 202.100.1.64 255.255.255.0
interface Ethernet1 //初始化物理接口
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
interface Ethernet2 //初始化物理接口
nameif dmz
security-level 50
ip address 172.16.1.1 255.255.255.0
access-list nonat extended permit ip 172.16.1.0 255.255.255.0 10.1.1.0 255.255.255.0
access-list nonat extended permit ip 192.168.1.0 255.255.255.0 172.16.1.0 255.255.255.0 //建立ACL来指定从DMZ至VPN客户端地址,以及INSIDE至DMZ区域不做NAT/PAT
access-list peer-splitlist extended permit ip 172.16.1.0 255.255.255.0 any //该ACL用来推送至客户端,用来指定在客户端上进行VPN时的兴趣ACL
access-list dmzlist extended permit ip any any //该ACL放行从DMZ区域出去的所有数据包
access-list outsidelist extended permit icmp any interface outside //该ACL绑定在outside接口的IN方向上,用来PING测试
ip local pool vpnpool 10.1.1.1-10.1.1.254 mask 255.255.255.0 //建立vpnpool地址池
nat-control //启动NAT/PAT控制功能
global (outside) 1 interface //指定将编号为1的NAT策略进行outside接口的PAT
nat (inside) 0 access-list nonat //来自INSIDE接口的匹配nonat ACL的数据包将不做任何NAT/PAT
nat (inside) 1 192.168.1.0 255.255.255.0 //将从inside区域的192.168.1.0网段的数据放入编号为1的NAT策略中,用于在global命令中调用
nat (dmz) 0 access-list nonat //来自DMZ接口的匹配nonat ACL的数据包将不做任何NAT/PAT
access-group outsidelist in interface outside //绑定outsidelist ACL到OUTSIDE接口的IN方向
access-group dmzlist in interface dmz //绑定dmzlist ACL到DMZ接口的IN方向
route outside 0.0.0.0 0.0.0.0 202.100.1.1 1 //建立至ISP的默认路由
group-policy l2tp-policy internal //建立名为l2tp-policy的内部组策略
group-policy l2tp-policy attributes //配置l2tp-policy的组策略属性
dns-server value 172.16.1.53 //指定分配给客户端的DNS地址
vpn-tunnel-protocol IPSec l2tp-ipsec //指定客户端使用IPSEC和L2TP协议建立VPN
split-tunnel-policy tunnelspecified//指定客户端VPN隧道建立的方式为“指定隧道”
split-tunnel-network-list value peer-splitlist //配合上一条命令,指定客户端将符合peer-splitlist ACL的数据包进行VPN处理,即客户端的VPN兴趣ACL
split-dns value benet.com //指定客户端解析BENET.COM域名时通过VPN连接的DNS地址来解析,而不是internet连接的DNS来解析,即DNS分离
username zhongta password 123qwe! mschap //建立用于mschap认证的用户名和密码
crypto ipsec transform-set vpnset esp-3des esp-md5-hmac //建立vpnset传输模式集,一般windows客户端支持ESP-3DES和ESP-MD5
crypto ipsec transform-set vpnset mode transport//设置vpnset传输模式集的模式为transport(L2TP+IPSEC 只支持这种模式)
crypto dynamic-map template-map 10 set transform-set vpnset //建立template-map动态加密图,并绑定vpnset传输模式集
crypto dynamic-map template-map 10 set reverse-route //通过template-map动态加密图来建立客户端至公司的方向路由
crypto map vpnmap 10 ipsec-isakmp dynamic template-map //建立vpnmap静态加密图,并设置加密图的配置来自template-map的动态加密图
crypto map vpnmap interface outside //绑定vpnmap静态加密图至outside接口
crypto isakmp enable outside //在outside接口上开启isakmp
crypto isakmp policy 10 //建立isakmp协商阶段的策略
authentication pre-share //指定在isakmp协商阶段使用预共享密钥来进行隧道认证
encryption 3des //指定在isakmp协商阶段数据的加密方式为3DES
hash md5 //指定在isakmp协商阶段使用md5进行完整性验证
group 2 //指定在isakmp协商阶段使用DH GROUP2模式进行DH密钥交换
lifetime 86400 //配置isakmp sa的生命期
tunnel-group DefaultRAGroup general-attributes//设置DefaultRAGroup隧道组的通用属性,注意L2TP只能使用DefaultRAGroup这个隧道组名称
address-pool vpnpool//指定分配给客户端的IP地址来自vpnpool地址池
default-group-policy l2tp-policy//绑定l2tp-policy组策略
tunnel-group DefaultRAGroup ipsec-attributes //设置DefaultRAGroup隧道组的ipsec属性
pre-shared-key cisco //配置预共享密钥
tunnel-group DefaultRAGroup ppp-attributes //设置DefaultRAGroup隧道组的ppp属性
authentication ms-chap-v2 //设置接受客户端ms-chap-v2认证协议
2. 配置客户端
创建VPN连接
输入VPN接口IP地址
右击VPN连接选择属性
设置IPSEC密钥
设置VPN类型为L2TP IPSEC
输入帐号和密码开始拨号
十八、WebVPN/SSL VPN
拓扑
需求
某公司采用三向外围拓扑结构,要求移动办公用户可以通过IE浏览器访问公司DMZ区域的WWW/FTP服务器,且可以通过下载胖客户端来访问DMZ区域的EMAIL服务器。
备注
SSL VPN的客户端有三种模式,第一种是通过IE浏览器来访问,这种方式又叫做WEB VPN或者无客户端;第二种是通过安装java运行环境后,通过运行WEB小应用程序来实现“端口转发”模式的访问,这叫做瘦客户端;第三种是通过下载安装anyconnect软体,然后通过SSL VPN接入公司内部,这叫做胖客户端;在这三种客户端中,如果按照功能强度来排列,则webvpn < 瘦客户端 < 胖客户端;另外pix8.0/ASA以上的版本才能支持SSL VPN。
配置
1. 配置PIX防火墙,启动无客户端
案例采用ASA Version 8.0(2)
hostname ASA //初始化主机名为ASA
domain-name zt.com //设置本地域名为zt.com
interface Ethernet0/0 //初始化物理接口
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0/1 //初始化物理接口
nameif dmz
security-level 50
ip address 172.16.1.1 255.255.255.0
!
interface Ethernet0/2 //初始化物理接口
nameif outside
security-level 0
ip address 202.100.1.64 255.255.255.0
crypto key generate rsa label mykey modulus 1024 //生成一个名为mykey的密钥对,该密钥对中的密钥长度为1024bit
crypto ca trustpoint myself //建立用于HTTPS通信时的自签名证书信任点myself
enrollment self //设置为自签名证书模式
subject-name cn=ASA,dc=zt,dc=com //设置证书上的PIX信息
keypair mykey //指定使用mykey密钥对中的私钥来自己签名证书
client-types ssl //配置证书客户端类型为SSL客户端
ssl encryption 3des-sha1 //设置SSL通信时对数据加密和完整性的算法为3des-sha1
ssl trust-point myself //设置SSL调用myslef信任点中指定的证书配置
http server enable //启动https服务
group-policy webvpn internal //建立webvpn内部组策略
group-policy webvpn attributes //配置webvpn的组策略属性
vpn-tunnel-protocol svc webvpn //指定客户端VPN隧道协议为svc webvpn方式
Webvpn //进入webvpn属性配置模式
file-entry enable //设置开启cifs和ftp文件访问功能
file-browsing enable //设置开启browse超链接来浏览共享文件功能
username zhongta password 123qwe! //建立本地用户名和密码,用户webvpn客户端登录认证
tunnel-group WebvpnGroup type webvpn remote-access 建立一个名字为WebvpnGroup且类型为remote-access(该类型支持webvpn或者ipsec远程访问)的隧道组
tunnel-group WebvpnGroup general-attributes //进入配置WebvpnGroup隧道组的通用属性
authentication-server-group local //指定客户端登录认证时采用本地用户名和密码
default-group-policy webvpn //绑定webvpn组策略
tunnel-group WebvpnGroup webvpn-attributes //进入配置WebvpnGroup隧道组的webvpn属性
group-alias GuangZhou enable //将隧道组名WebvpnGroup起一个别名GuangZhou
webvpn //进入webvpn功能配置模式
enable outside //在outside接口上启动webvpn功能
tunnel-group-list enable //在登录页面开启显示隧道组列表,该列表会显示隧道组的别名,提供给客户选择不同的隧道组来登录
2. 客户端访问验证无客户端模式
3. 在PIX/ASA上启动瘦客户端
webvpn //进入webvpn功能配置模式
port-forward portlist 8080 172.16.1.100 80 //建立一个名为portlist的Port-Forward列表,该列表将本地IP的8080端口的访问都转换成172.16.1.100的80端口
group-policy webvpn attribute //进入webvpn组策略的属性配置模式
webvpn//进入webvpn属性的配置子模式
port-forward enable portlist//开启port-forward功能,且调用portlist端口转发列表
4. 客户端验证瘦客户端模式
提示要求先安装JRE1.4以上的版本
Port-forward测试
5. 在PIX/ASA上启动胖客户端
ip local pool vpnpool 10.1.1.1-10.1.1.254 mask 255.255.255.0//建立分配给客户端的IP地址池
access-list peer-splitlist extended permit ip 172.16.1.0 255.255.255.0 any//建立推送给客户端的兴趣ACL
group-policy webvpn attributes //配置webvpn的组策略属性
dns-server value 172.16.1.53 //配置分配给客户端的DNS地址
split-tunnel-policy tunnelspecified //配置客户端进行SSL VPN处理时的模式为“特定隧道模式”
split-tunnel-network-list value peer-splitlist //配合上面的命令,配置分配给客户端peer-splitlist ACL来进行SSL VPN的数据分流
split-dns value benet.com//配置客户端进行DNS解析时对benet.com域名的解析使用SSL VPN连接分配的DNS服务器地址来解析
Webvpn //进入webvpn属性配置模式
svc ask enable 启动胖客户端下载提示功能 SVC(SSL VPN CLIENT)
tunnel-group WebvpnGroup general-attributes //进入配置WebvpnGroup隧道组的通用属性
address-pool vpnpool//绑定分配的客户端的IP地址池vpnpool
tunnel-group WebvpnGroup webvpn-attributes //进入配置WebvpnGroup隧道组的webvpn属性
override-svc-download //允许客户端重复下载SVC客户端软件
copy tftp://172.16.1.100/sslclient.pkg flash:/sslclient.pkg//从DMZ区域的TFTP服务器172.16.1.100上将SVC客户端文件包下载到flash存储器
webvpn //进入webvpn功能配置模式
svc image flash:/sslclient.pkg //配置SVC客户端软件包的存储位置
svc enable//开启SVC客户端功能
6. 在客户端上下载安装SVC客户端来验证胖客户端模式
可选PIX/ASA SSLVPN配置
a. 启用url-list功能
Copy flash:/csco_config/97/bookmarks/Template tftp://172.16.1.100/myurl //复制flash下的url模板文件到DMZ区域的TFTP服务器上,且重命名为myurl
Copy tftp://172.16.1.100/myurl flash:/myurl //将TFTP服务器上的myurl文件下载到flash中,且重命名为myurl
import webvpn url-list services flash:/myurl //将flash中的url文件导入到webvpn,且将url-list名称命名成services
group-policy webvpn attributes //配置webvpn的组策略属性
Webvpn //进入webvpn属性配置模式
url-list value services//绑定service URL-LIST列表
url-entry enable//开启url-list功能
原文:http://bozong.blog.51cto.com/8486668/1657223