本文转自: https://blog.csdn.net/chentaocba/article/details/7716109

要想配置思科的防火墙得先了解这些命令:
  常用命令有:nameif、interface、ip address、nat、global、route、static等。
  global
  指定公网地址范围:定义地址池。
  Global命令的配置语法:
  global (if_name) nat_id ip_address-ip_address [netmark global_mask]
  其中:
  (if_name):表示外网接口名称,一般为outside。
  nat_id:建立的地址池标识(nat要引用)。
  ip_address-ip_address:表示一段ip地址范围。
  [netmark global_mask]:表示全局ip地址的网络掩码。
  nat
  地址转换命令,将内网的私有ip转换为外网公网ip。
  nat命令配置语法:nat (if_name) nat_id local_ip [netmark]
  其中:
  (if_name):表示接口名称,一般为inside.
  nat_id: 表示地址池,由global命令定义。
  local_ip: 表示内网的ip地址。对于0.0.0.0表示内网所有主机。
  [netmark]:表示内网ip地址的子网掩码。
  route
  route命令定义静态路由。
  语法:
  route (if_name) 0 0 gateway_ip [metric]
  其中:
  (if_name):表示接口名称。
  0 0 :表示所有主机
  Gateway_ip:表示网关路由器的ip地址或下一跳。
  [metric]:路由花费。缺省值是1。
  static
  配置静态IP地址翻译,使内部地址与外部地址一一对应。
  语法:
  static(internal_if_name,external_if_name) outside_ip_addr inside_ ip_address
  其中:
  internal_if_name表示内部网络接口,安全级别较高,如inside。
  external_if_name表示外部网络接口,安全级别较低,如outside。
  outside_ip_address表示外部网络的公有ip地址。
  inside_ ip_address表示内部网络的本地ip地址。
  (括号内序顺是先内后外,外边的顺序是先外后内)
  例如:
  asa(config)#static (inside,outside) 133.0.0.1 192.168.0.8
  表示内部ip地址192.168.0.8,访问外部时被翻译成133.0.0.1全局地址
  **************************************************************************
  asa#conf t
  asa(config)# hostname asa //设置主机名
  asa(config)#enable password cisco //设置密码
  配置外网的接口,名字是outside,安全级别0,输入ISP给您提供的地址就行了。
  asa(config)#interface GigabitEthernet0/0
  asa(config)#nameif outside //名字是outside
  asa(config)#securit-level 0 //安全级别0
  asa(config)#ip address *.*.*.* 255.255.255.0 //配置公网IP地址
  asa(config)#duplex full
  asa(config)#
  asa(config)#no shutdown
  配置内网的接口,名字是inside,安全级别100
  asa(config)#interface GigabitEthernet0/1
  asa(config)#nameif inside
  asa(config)#securit-level 100
  asa(config)#duplex full
  asa(config)#speed 100
  asa(config)#no shutdown
  配置DMZ的接口,名字是dmz,安全级别50
  asa(config)#interface GigabitEthernet0/2
  asa(config)#nameif dmz
  asa(config)#securit-level 50
  asa(config)#duplex full
  asa(config)#
  asa(config)#no shutdown
  网络部分设置
  asa(config)#nat(inside) 1 192.168.1.1 255.255.255.0
  asa(config)#global(outside) 1 222.240.254.193 255.255.255.248
  asa(config)#nat (inside) 0 192.168.1.1 255.255.255.255 //表示192.168.1.1这个地址不需要转换。直接转发出去。
  asa(config)#global (outside) 1 133.1.0.1-133.1.0.14 //定义的地址池
  asa(config)#nat (inside) 1 0 0 //0 0表示转换网段中的所有地址。定义内部网络地址将要翻译成的全局地址或地址范围
  配置静态路由
  asa(config)#route outside 0 0 133.0.0.2 //设置默认路由 133.0.0.2为下一跳
  如果内部网段不是直接接在防火墙内口,则需要配置到内部的路由。
  asa(config)#Route inside 192.168.10.0 255.255.255.0 192.168.1.1 1
  地址转换
  asa(config)#static (dmz,outside) 133.1.0.1 10.65.1.101 ;静态NAT
  asa(config)#static (dmz,outside) 133.1.0.2 10.65.1.102 ;静态NAT
  asa(config)#static (inside,dmz) 10.66.1.200 10.66.1.200 ;静态NAT
  如果内部有服务器需要映射到公网地址(外网访问内网)则需要static
  asa(config)#static (inside, outside) 222.240.254.194 192.168.1.240
  asa(config)#static (inside, outside) 222.240.254.194 192.168.1.240 10000 10 //后面的10000为限制连接数,10为限制的半开连接数
  ACL实现策略访问
  asa(config)#access-list 101 permit ip any host 133.1.0.1 eq www;设置ACL
  asa(config)#access-list 101 permit ip any host 133.1.0.2 eq ftp;设置ACL
  asa(config)#access-list 101 deny ip any any ;设置ACL
  asa(config)#access-group 101 in interface outside ;将ACL应用在outside端口
  当内部主机访问外部主机时,通过nat转换成公网IP,访问internet。
  当内部主机访问中间区域dmz时,将自己映射成自己访问服务器,否则内部主机将会映射成地址池的IP,到外部去找。
  当外部主机访问中间区域dmz时,对133.0.0.1映射成10.65.1.101,static是双向的。
  PIX的所有端口默认是关闭的,进入PIX要经过acl入口过滤。
  静态路由指示内部的主机和dmz的数据包从outside口出去。

思科ASA和PIX防火墙配置手册

一、 配置基础
1.1用户接口
思科防火墙支持下列用户配置方式:
Console,Telnet,SSH(1.x或者2.0,2.0为7.x新特性,PDM的http方式(7.x以后称为ASDM)和VMS的Firewall Management Center。
支持进入Rom Monitor模式,权限分为用户模式和特权模式,支持Help,History和命令输出的搜索和过滤。
注:Catalyst6500的FWSM没有物理接口接入,通过下面CLI命令进入:
Switch# session slot slot processor 1 (FWSM所在slot号)
用户模式:
Firewall> 为用户模式,输入enable进入特权模式Firewall#。特权模式下可以进入配置模式,在6.x所有的配置都在一个全局模式下进行,7.x以后改成和IOS类似的全局配置模式和相应的子模式。通过exit,ctrl-z退回上级模式。
配置特性:
在原有命令前加no可以取消该命令。Show running-config 或者 write terminal显示当前配置,7.x后可以对show run 的命令输出进行搜索和过滤。Show running-config all显示所有配置,包含缺省配置。Tab可以用于命令补全,ctrl-l可以用于重新显示输入的命令(适用于还没有输入完命令被系统输出打乱的情况),help和history相同于IOS命令集。
Show命令支持 begin,include,exclude,grep 加正则表达式的方式对输出进行过滤和搜索。
Terminal width 命令用于修改终端屏幕显示宽度,缺省为80个字符,pager命令用于修改终端显示屏幕显示行数,缺省为24行,pager lines 0命令什么效果可以自己试试。
1.2防火墙许可介绍
防火墙具有下列几种许可形式,通过使用show version命令可以看设备所支持的特性:
Unrestricted (UR) 所有的限制仅限于设备自身的性能,也支持Failover
Restricted (R) 防火墙的内存和允许使用的最多端口数有限制,不支持Failover
Failover (FO) 不能单独使用的防火墙,只能用于Failover
Failover-Active/Active (FO-AA) 只能和UR类型的防火墙一起使用,支持active/active failover
注:FWSM内置UR许可。
activation-key 命令用于升级设备的许可,该许可和设备的serial number有关(show version输出可以看到),6.x为16字节,7.x为20字节。
1.3初始配置
跟路由器一样可以使用setup进行对话式的基本配置。

二、 配置连接性
2.1配置接口
接口基础:
防火墙的接口都必须配置接口名称,接口IP地址和掩码(7.x开始支持IPv6)和安全等级。接口可以是物理接口也可以是逻辑接口(vlan),从6.3贾С?lt;/SPAN>trunk,但只支持802.1Q封装,不支持DTP协商。
接口基本配置:
注:对于FWSM所有的接口都为逻辑接口,名字也是vlan后面加上vlanid。例如FWSM位于6500的第三槽,配置三个接口,分别属于vlan 100,200,300.
Switch(config)# firewall vlan-group 1 100,200,300
Switch(config)# firewall module 3 vlan-group 1
Switch(config)# exit
Switch# session slot 3 processor 1
经过此配置后形成三个端口vlan100.vlan200,vlan300
PIX 6.x
Firewall(config)# interface hardware-id [hardware-speed] [shutdown] (Hardware-id可以用show version命令看到)
PIX 7.x
Firewall(config)# interface hardware-id
Firewall(config-if)# speed {auto | 10 | 100 | nonegotiate}
Firewall(config-if)# duplex {auto | full | half}
Firewall(config-if)# [no] shutdown
命名接口
FWSM 2.x
Firewall(config)# nameif vlan-id if_name securitylevel
PIX 6.x
Firewall(config)# nameif {hardware-id | vlan-id} if_name securitylevel
PIX 7.x
Firewall(config)# interface hardware_id[.subinterface]
Firewall(config-if)# nameif if_name
Firewall(config-if)# security-level level
注:Pix 7.x和FWSM 2.x开始支持不同接口有相同的security level,前提是全局配置模式下使用same-security-traffic permit inter-interface命令。
配置IP地址
静态地址:Firewall(config)# ip address if_name ip_address [netmask]
动态地址:Firewall(config)# ip address outside dhcp [setroute] [retry retry_cnt]
注:setroute参数可以同时获得来自DHCP服务器的缺省路由,再次输入此命令可以renew地址。
PPPOE:Firewall(config)# vpdn username JohnDoe password JDsecret
Firewall(config)# vpdn group ISP1 localname JohnDoe
Firewall(config)# vpdn group ISP1 ppp authentication chap
Firewall(config)# vpdn group ISP1 request dialout pppoe
Firewall(config)# ip address outside pppoe setroute
验证接口
Firewall# show ip
IPv6地址配置(7.x新特性)
暂略
ARP配置
配置一个静态的ARP条目:Firewall(config)# arp if_name ip_address mac_address [alias]
配置timeout时间:Firewall(config)# arp timeout seconds 缺省为4小时
注:一般情况下使用clear arp会清除所有的ARP缓存,不能针对单个的条目,但是可以通过以下变通方法:配置一个静态的条目,映射有问题的ip为一个假的mac地址,然后no掉该命令就会重新建立一个arp条目。
MTU和分段
配置MTU:Firewall(config)# mtu if_name bytes 使用show mtu (6.3) 或者show running-config mtu (7.x)来验证
分段(fragment)的几个命令:限制等待重组的分段数Firewall(config)# fragment size database-limit [if_name]
限制每个包的分段数Firewall(config)# fragment chain chain-limit [if_name]
限制一个数据包分段到达的时间Firewall(config)# fragment timeout seconds [if_name]
配置接口的优先队列(7.x新特性)
暂略
2.2配置路由
启用PRF防止地址欺骗 Firewall(config)# ip verify reverse-path interface if_name
配置静态路由Firewall(config)# route if_name ip_address netmask gateway_ip [metric]
配置RIP
被动听RIP更新(v1,v2)Firewall(config)# rip if_name passive [version 1] (Firewall(config)# rip if_name passive version 2 [authentication [text | md5 key (key_id)]])
宣告该接口为缺省路由Firewall(config)# rip if_name default version [1 | 2 [authentication [text | md5 key key_id]]
配置OSPF
定义OSPF进程 Firewall(config)# router ospf pid
指定相应网络到OSPF区域 Firewall(config-router)# network ip_address netmask area area_id
可选:定义Router ID Firewall(config-router)# router-id ip_address
记录OSPF邻居状态更新 Firewall(config-router)# log-adj-changes [detail]
启用OSPF更新认证 Firewall(config-router)# area area_id authentication [message-digest]宣告缺省路由 Firewall(config-router)# default-information originate [always] [metric value] [metric-type {1 | 2}] [route-map name]调节OSPF参数 Firewall(config-router)# timers {spf spf_delay spf_holdtime |lsa-group-pacing seconds}
2.3 DHCP
配置成为DHCP Server:
配置地址池 Firewall(config)# dhcpd address ip1[-ip2] if_name (最多256个客户端)
配置DHCP参数 Firewall(config)# dhcpd dns dns1 [dns2] Firewall(config)# dhcpd wins wins1 [wins2] Firewall(config)# dhcpd domain domain_name Firewall(config)# dhcpd lease lease_length Firewall(config)# dhcpd ping_timeout timeout
启用DHCP服务 Firewall(config)# dhcpd enable if_name
验证:show dhcdp, show dhcpd bindings, show dhcpd statistics
配置DHCP中继:
定义真实DHCP Server Firewall(config)# dhcprelay server dhcp_server_ip server_ifc(最多4个)
中继参数Firewall(config)# dhcprelay timeout seconds Firewall(config)# dhcprelay setroute client_ifc
启用中继 Firewall(config)# dhcprelay enable client_ifc
验证 show dhcprelay statistics
2.4组播的支持
暂略

一、防火墙的管理
3.1 使用Security Context建立虚拟防火墙(7.x特性)
特性介绍:从PIX7.0和FWSM 2.2(1)开始,可以把物理的一个防火墙配置出多个虚拟的防火墙,每个防火墙称为context,这样一个防火墙就支持两种工作模式:single-context和multiple-context,处于后者工作模式的防火墙被分为三个功能模块:system execution space(虽然没有context的功能,但是是所有的基础),administrative context(被用来管理物理的防火墙) 和 user contexts(虚拟出来的防火墙,所有配置防火墙的命令都适用)
配置:首先使用show activation-key来验证是否有multiple-context的许可,然后通过mode multiple和mode single命令在这两个模式之间进行切换,当然也可以用show mode来验证现在工作在什么模式下。在不同context下进行切换使用Firewall# changeto {system | context name},由于所有的context的定义都必须在system execution space下,所以要首先使用changeto system转入该模式,Firewall(config)# context name 接着要把物理接口映射到context中 只要这样才能在相应的context下显示出物理接口,从而配置其属性 Firewall(config-ctx)# allocate-interface physical-interface [map-name] 最后定义context 的startup-config的存放位置Firewall(config-ctx)# config-url url 通过show context验证
注:当防火墙工作在multiple-context模式下,admin context就自动生成。(show context来验证)
由于所有的context都共享设备的资源,所以要限制各个context的资源分配
首先定义class Firewall(config)# class name 然后Firewall(config-class)# limit-resource all number% Firewall(config-class)# limit-resource [rate] resource_name number[%] 最后在相应的context配置下Firewall(config-ctx)# member class
通过以下命令验证 show class, show resource allocation, show resource usage等
注:缺省telnet,ssh,IPsec 5 sessions,MAC address 65535条目
3.2 管理Flash文件系统
6.x文件系统
只有六种文件可以保存到Flash,没有文件名只有代号,没有目录结构
0 OS镜像 1 启动文件 2 VPN和密匙证书 3 PDM镜像 4 崩溃信息 5 0的文件大小
show flashfs 显示flash文件
7.x和FWSM文件系统
7.x和FWSM更像IOS的文件系统,具有层级目录,要被格式化后才可以使用,7.x使用flash:/代表Flash文件系统,FWSM分别使用flash:/ (系统镜像)和disk:/(配置文件)
由于该系统使用类Unix的指令,所以可以使用下列常用命令来对该文件系统操作:
dir pwd cd more delete copy rename mkdir rmdir format erase fsck(检查文件系统完整性)
6.x在Flash里面只能保存一个系统镜像,7.x则废除了此种限制通过使用Firewall(config)# boot system flash:filename来选取不同的系统镜像,show bootvar进行验证
OS升级 见附录
3.3 管理配置文件
7.0以后可以使用多个启动配置文件Firewall(config)# boot config url
显示启动配置文件Firewall# show startup-config Firewall# show configuration (6.x为show configure)
保存当前配置文件 write memory, copy running-config startup-config, write net [[server-ip-address]:[filename]] (7.x也支持copy至tftp)
强制standby同步当前配置文件 write standby 删除启动配置文件 write erase
合并启动配置文件为当前配置文件 configure memory 从Web导入配置文件configure http://[user:password@]location[:port]/ http-pathname (7.x支持copy自以上源)
合并配置文件自自动更新服务器
Firewall(config)# auto-update device-id {hardware-serial | hostname |
ipaddress [if_name] | mac-address [if_name] | string text}
Firewall(config)# auto-update server http://[username:password@]
AUSserver-IP-address[:port]/autoupdate/AutoUpdateServlet
[verify-certificate]
3.4 管理管理会话
Firewall(config)# console timeout minutes 配置console登录的超时(缺省0不超时)
禁止来自outside端口的telnet,启用telnet Firewall(config)# telnet ip_address netmask if_name Firewall(config)# telnet timeout minutes 配置telnet超时
启用SSH配置
首先生成RSA密匙对 Firewall(config)# domain-name name Firewall(config)# ca generate rsa key [modulus] (7.x 使用crypto key generate rsa general-keys [modulus modulus]) Firewall(config)# ca save all (7.x自动保存)
使用show ca mypubkey rsa来验证(7.x show crypto key mypubkey rsa) ca zeroize rsa作废原有密匙对(7.x crypto key zeroize rsa default)
最后允许ssh会话 Firewall(config)# ssh ip_address netmask if_name
ssh version命令可以选择ssh的版本,ssh timeout定义超时时间
PDM/ASDM配置
由于PDM存放位置固定,所以不需要指定镜像的位置,ASDM使用Firewall(config)# asdm image device:/path 来指定镜像位置,如果没有可以使用copy命令来安装。然后配置访问许可Firewall# http ip_address subnet_mask if_name 启用HTTP进程Firewall# http server enable 使用https://ip-address/admin来访问。
Banner配置 Firewall(config)# banner {exec | login | motd} text 对banner不能修改,只能用no来删除,或者clear banner来清除所有的banner(7.0 clear configure banner)
监控管理会话 who监控telnet会话 kill telnet-id来清除会话,show ssh sessions监控ssh会话,ssh disconnect session-id清除ssh会话,show pdm sessions监控pdm会话,pdm disconnect session-id清除pdm会话
3.5 系统重启和崩溃
通常使用reload命令重启系统,从7.0以后支持在特定的时间重启系统Firewall# reload at hh:mm [month day | day month] [max-hold-time {minutes | hhh:mm}] [noconfirm] [quick] [save-config] [reason text]或者经过一定的时间间隔后重启Firewall# reload in {minutes | hh:mm} [max-hold-time {minutes | hhh:mm}] [noconfirm] [quick] [save-config] [reason text]
启用崩溃信息生成 Firewall(config)# crashinfo save enable (7.0 no crashinfo save disable) show crashinfo 来看崩溃信息 clear crashinfo删除信息(FWSM使用crashdump)
3.6 SNMP支持
系统SNMP信息 Firewall(config)# snmp-server location string (contact string)
SNMP访问许可 Firewall(config)# snmp-server host if_name ip_addr [poll | trap]
Firewall(config)# snmp-server community key

四、用户管理

4.1 一般用户管理

注:缺省情况下认证用户仅需要password,这样的一般用户缺省用户名就是enalbe_1,在ssh情况下缺省用户名就是pix,然后用password来认证。

非特权模式密码配置 Firewall(config)# {password | passwd} password [encrypted] (恢复缺省密码cisco 用clear {password | passwd})

特权模式密码配置 Firewall(config)# enable password [pw] [level priv_level] [encrypted]

4.2 本地数据库管理用户

定义用户 Firewall(config)# username username [{nopassword | password password}

[encrypted]] privilege level

启用本地认证 Firewall(config)# aaa authentication {serial | telnet | ssh | http} console LOCAL

注:缺省情况特权模式密码使用enable password定义,这样用户通过认证后使用enable来进入特权模式,而不管用户初始什么等级的权限,所有用户使用相同的密码。这里也可以使用本地enable认证(aaa authentication enable console LOCAL),用户使用username password的密码来进入enable,用户enable密码独立从而增加安全性。

本地授权:Firewall(config)# aaa authorization command LOCAL

配置命令的特权等级:Firewall(config)# privilege {show | clear | configure} level level [mode {enable | configure}] command command

使用show privilege来看当前命令的特权等级(7.x使用show run all privilege)

4.3 使用AAA服务器来管理用户

定义AAA服务器组和协议 Firewall(config)# aaa-server server_tag protocol {tacacs+ | radius} (7.x还增加了kerberos,ldap,nt,sdi协议的支持)

加入服务器到组 Firewall(config)# aaa-server server_tag [(if_name)] host server_ip [key] [timeout seconds]

可选命令

定义服务器失败阀值 FWSM Firewall(config)# aaa-server server_tag max-attempts number

PIX 6.x Firewall(config)# aaa-server server_tag max-failed-attempts number

PIX 7.x Firewall(config-aaa-server-group)# max-failed-attempts number

定义统计策略(7.x特性) Firewall(config-aaa-server-group)# accounting-mode {single | simultaneous}

具体各协议参数配置暂略

4.4 配置AAA管理用户

启用鉴权 Firewall(config)# aaa authentication {serial | telnet | ssh | http} console

server_tag [LOCAL]

启用授权 Firewall(config)# aaa authorization command server_tag [LOCAL]

启用统计 Firewall(config)# aaa accounting command [privilege level] server_tag

注:AAA服务器配置略

4.5 配置AAA支持用户Cut-Through代理

五 防火墙的访问控制

5.1 防火墙的透明模式

特性介绍:从PIX 7.0和FWSM 2.2开始防火墙可以支持透明的防火墙模式,接口不需要配置地址信息,工作在二层。只支持两个接口inside和outside,当然可以配置一个管理接口,但是管理接口不能用于处理用户流量,在多context模式下不能复用物理端口。由于连接的是同一地址段的网络,所以不支持NAT,虽然没有IP地址但是同样可以配置ACL来检查流量。

进入透明模式 Firewall(config)# firewall transparent (show firewall 来验证当前的工作模式,由于路由模式和透明模式工作方式不同,所以互相切换的时候会清除当前配置文件)

配置接口 Firewall(config)# interface hardware-id

Firewall(config-if)# speed {auto | 10 | 100 |nonegotiate}

Firewall(config-if)# duplex {auto | full | half}

Firewall(config-if)# [no] shutdown

Firewall(config-if)# nameif if_name

Firewall(config-if)# security-level level

注:不用配置IP地址信息,但是其它的属性还是要配置的,接口的安全等级一般要不一样,same-security-traffic permit inter-interface命令可以免除此限制。

配置管理地址 Firewall(config)# ip address ip_address subnet_mask

Firewall(config)# route if_name foreign_network foreign_mask gateway [metric]

MAC地址表的配置 Firewall# show mac-address-table 显示MAC地址表

Firewall(config)# mac-address-table aging-time minutes 设置MAC地址表过期时间

Firewall(config)# mac-address-table static if_name mac_address 设置静态MAC条目

Firewall(config)# mac-learn if_name disable 禁止特定接口地址学习(show mac-learn验证)

ARP检查 Firewall(config)# arp if_name ip_address mac_address 静态ARP条目

Firewall(config)# arp-inspection if_name enable [flood | no-flood] 端口启用ARP检查

为非IP协议配置转发策略 Firewall(config)# access-list acl_id ethertype {permit | deny} {any | bpdu | ipx | mpls-unicast | mpls-multicast | ethertype}

Firewall(config)# access-group acl_id {in | out} interface if_name

5.2 防火墙的路由模式和地址翻译

特性介绍:从高安全等级到低安全等级的访问称为outbound访问,需要配置地址翻译和outbound访问控制,PIX缺省情况下不用配置ACL就允许此类访问,FWSM则需要配置ACL来允许此类型的访问。而从低安全等级到高安全等级的访问称为inboud访问,也需要配置地址翻译和inboud访问控制,此类型必须配置ACL.同一安全等级的访问也可以配置地址翻译。

支持下列几种NAT类型

Translation Type
Application
Basic Command
Direction in Which Connections Can Be Initiated

Static NAT
Real source addresses (and ports) are translated to mapped addresses (and ports)
static
Inbound or outbound

Policy NAT
Conditionally translates real source addresses (and ports) to mapped addresses
static access-list
Inbound or outbound

Identity NAT
No translation of real source addresses
nat 0
Outbound only

NAT exemption
No translation of real source addresses matched by the access list
nat 0 access-list
Inbound or outbound

Dynamic NAT
Translates real source addresses to a pool of mapped addresses
nat id

global id address-range
Outbound only

PAT
Translates real source addresses to a single mapped address with dynamic port numbers
nat id

global id address
Outbound only


配置

对于连接数的控制 PIX 6.x … [norandomseq] [max_conns [emb_limit]]

PIX 7.x … [norandomseq] [[tcp] max_conns [emb_limit]] [udp udp_max_conns]

连接超时控制 Firewall(config)# timeout [conn hh:mm:ss] [udp hh:mm:ss]

静态NAT

基于地址的静态翻译 Firewall(config)# static (real_ifc,mapped_ifc) {mapped_ip | interface} {real_ip [netmask mask]} [dns] [norandomseq] [max_conns [emb_limit]]

基于端口的静态翻译 Firewall(config)# static (real_ifc,mapped_ifc) {tcp | udp} {mapped_ip | interface} mapped_port {real_ip real_port [netmask mask]} [dns] [norandomseq] [max_conns [emb_limit]]

策略NAT

定义翻译策略 Firewall(config)# access-list acl_name permit ip real_ip real_mask foreign_ip foreign_mask

静态的 Firewall(config)# static (real_ifc,mapped_ifc) mapped_ip access-list acl_name [dns] [norandomseq] [max_conns [emb_limit]]

NAT的 Firewall(config)# global (mapped_ifc) nat_id {global_ip [-global_ip] [netmask global_mask]} | interface

Firewall(config)# nat (real_ifc) nat_id access-list acl_name [dns] [outside][norandomseq] [max_conns [emb_limit]]

Identify NAT Firewall(config)# nat (real_ifc) 0 real_ip real_mask [dns] [norandomseq] [max_conns [emb_limit]]

注:nat 0和static 相同地址的区别在于:nat 0只能用于outbound访问,static两种访问都可以,对同一地址不建议同时配置此两类命令。

NAT Exemption

Firewall(config)# access-list acl_name permit ip local_ip local_mask foreign_ip foreign_mask

Firewall(config)# nat (real_ifc) 0 access-list acl_name [dns] [outside] [max_conns [emb_limit] [norandomseq]]

注:此类型NAT策略只能根据源和目的地址不能根据协议类型或者端口

动态地址翻译

定义NAT的映射地址 Firewall(config)# global (mapped_ifc) nat_id global_ip[-global_ip] [netmask global_mask]

定义PAT的映射地址 Firewall(config)# global (mapped_ifc) nat_id {global_ip | interface}

定义翻译策略 Firewall(config)# nat (real_ifc) nat_id real_ip [mask [dns] [outside] [[norandomseq] [max_conns [emb_limit]]]

注:也可以使用ACL来做类似的策略NAT。

5.3 使用ACL进行访问控制

特性介绍:防火墙的ACL配置跟IOS不同,子网掩码部分为正常的子网掩码不需要使用反转的子网掩码。还支持Object group,包含IP地址组,ICMP类型组,IP协议或者端口组,并且支持组嵌套。access-list acl_name compiled配置Turbo ACL,7.x自动turbo。防火墙的ACL缺省是扩展模式的,7.x后也支持标准模式了尽管只用于路由协议的配置上,并且加上了extend的参数,虽然配置的时候可以不必强制用这个参数但是当你需要移除该条目的时候要记得把extend这个参数加上。

配置

定义Object Group

网络对象组 Firewall(config)# object-group network group_id

Firewall(config-network)# description text

Firewall(config-network)# network-object ip_addr mask (或者 host ip_addr)

Firewall(config-network)# group-object group_id

ICMP对象组 Firewall(config)# object-group icmp-type group_id

Firewall(config-icmp-type)# description text

Firewall(config-icmp-type)# icmp-object icmp_type

Firewall(config-icmp-type)# group-object group_id

协议对象组 Firewall(config)# object-group protocol group_id

Firewall(config-protocol)# description text

Firewall(config-protocol)# protocol-object protocol

Firewall(config-protocol)# group-object group_id

服务对象组 Firewall(config)# object-group service group_id {tcp | udp | tcp-udp}

Firewall(config-service)# description text

Firewall(config-service)# port-object range begin_port end_port (或者eq port)

Firewall(config-service)# group-object group_id

定义时间范围 7.0特性

Firewall(config)# time-range name

Firewall(config-time-range)# periodic start-day hh:mm to end-day hh:mm

Firewall(config-time-range)# periodic days-of-the-week hh:mm to hh:mm

Firewall(config-time-range)# absolute [start hh:mm day month year] [end hh:mm day month year]

配置ACL Firewall(config)# access-list acl_id [line line-num] [extended] {permit | deny}

{protocol | object-group protocol_obj_group} {source_addr source_mask | object-group network_obj_group} [operator sport | object-group service_obj_group]

{destination_addr destination_mask |object-group network_obj_group}

[operator dport | object-group service_obj_group] [log [[disable | default] | [level]]] [interval secs]] [time-range name] [inactive]


show access-list 来验证, clear access-list acl_id counters 重置ACL计数器


在配置PIX防火墙之前,先来介绍一下防火墙的物理特性。防火墙通常具有至少3个接口,但许多早期的防火墙只具有2个接口;当使用具有3个接口的防火墙时,就至少产生了3个网络,描述如下:
内部区域(内网):内部区域通常就是指企业内部网络或者是企业内部网络的一部分。它是互连网络的信任区域,即受到了防火墙的保护。
外部区域(外网):外部区域通常指Internet或者非企业内部网络。它是互连网络中不被信任的区域,当外部区域想要访问内部区域的主机和服务,通过防火墙,就可以实现有限制的访问。
停火区(DMZ):停火区是一个隔离的网络,或几个网络。位于停火区中的主机或服务器被称为堡垒主机。一般在停火区内可以放置Web服务器,Mail服务器等。停火区对于外部用户通常是可以访问的,这种方式让外部用户可以访问企业的公开信息,但却不允许他们访问企业内部网络。
注意:2个接口的防火墙是没有停火区的。

由于PIX535在企业级别不具有普遍性,因此下面主要说明PIX525在企业网络中的应用。

PIX防火墙提供4种管理访问模式:
非特权模式。 PIX防火墙开机自检后,就是处于这种模式。系统显示为pixfirewall>
特权模式。 输入enable进入特权模式,可以改变当前配置。显示为pixfirewall#
配置模式。 输入configure terminal进入此模式,绝大部分的系统配置都在这里进行。显示为pixfirewall(config)#
监视模式。 PIX防火墙在开机或重启过程中,按住Escape键或发送一个”Break”字符,进入监视模式。这里可以更新*作系统映象和口令恢复。显示为monitor>


配置PIX防火墙有6个基本命令:nameif,interface,ip address,nat,global,route.

这些命令在配置PIX时是必须的。以下是配置的基本步骤:


1. 配置防火墙接口的名字,并指定安全级别(nameif)。
Pix525(config)#nameif ethernet0 outside security0
Pix525(config)#nameif ethernet1 inside security100
Pix525(config)#nameif dmz security50
提示:在缺省配置中,以太网0被命名为外部接口(outside),安全级别是0;以太网1被命名为内部接口(inside),安全级别是100.安全级别取值范围为1~99,数字越大安全级别越高。若添加新的接口,语句可以这样写:
Pix525(config)#nameif pix/intf3 security40 (安全级别任取)

2. 配置以太口参数(interface)
Pix525(config)#interface ethernet0 auto (auto选项表明系统自适应网卡类型 )
Pix525(config)#interface ethernet1 100full (100full选项表示100Mbit/s以太网全双工通信 )
Pix525(config)#interface ethernet1 100full shutdown (shutdown选项表示关闭这个接口,若启用接口去掉shutdown )

3. 配置内外网卡的IP地址(ip address)
Pix525(config)#ip address outside 61.144.51.42 255.255.255.248
Pix525(config)#ip address inside 192.168.0.1 255.255.255.0
很明显,Pix525防火墙在外网的ip地址是61.144.51.42,内网ip地址是192.168.0.1

例1. Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any
这个例子表示允许任何外部主机对全局地址192.168.0.8的这台主机进行http访问。其中使用eq和一个端口来允许或拒绝对这个端口的访问。Eq ftp 就是指允许或拒绝只对ftp的访问。

例2. Pix525(config)#conduit deny tcp any eq ftp host 61.144.51.89
表示不允许外部主机61.144.51.89对任何全局地址进行ftp访问。

例3. Pix525(config)#conduit permit icmp any any
表示允许icmp消息向内部和外部通过。

例4. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3
Pix525(config)#conduit permit tcp host 61.144.51.62 eq www any
这个例子说明static和conduit的关系。192.168.0.3在内网是一台web服务器,现在希望外网的用户能够通过pix防火墙得到web服务。所以先做static静态映射:192.168.0.3->61.144.51.62(全局),然后利用conduit命令允许任何外部主机对全局地址61.144.51.62进行http访问。

C. 配置fixup协议
fixup命令作用是启用,禁止,改变一个服务或协议通过pix防火墙,由fixup命令指定的端口是pix防火墙要侦听的服务。见下面例子:
例1. Pix525(config)#fixup protocol ftp 21 启用ftp协议,并指定ftp的端口号为21
例2. Pix525(config)#fixup protocol http 80
Pix525(config)#fixup protocol http 1080 为http协议指定80和1080两个端口。
例3. Pix525(config)#no fixup protocol smtp 80 禁用smtp协议。


D. 设置telnet

telnet有一个版本的变化。在pix OS 5.0(pix*作系统的版本号)之前,只能从内部网络上的主机通过telnet访问pix。在pix OS 5.0及后续版本中,可以在所有的接口上启用telnet到pix的访问。当从外部接口要telnet到pix防火墙时,telnet数据流需要用ipsec提供保护,也就是说用户必须配置pix来建立一条到另外一台pix,路由器或vpn客户端的ipsec隧道。另外就是在PIX上配置SSH,然后用SSH client从外部telnet到PIX防火墙,PIX支持SSH1和SSH2,不过SSH1是免费软件,SSH2是商业软件。相比之下cisco路由器的telnet就做得不怎么样了。
telnet配置语法:telnet local_ip [netmask] local_ip
表示被授权通过telnet访问到pix的ip地址。如果不设此项,pix的配置方式只能由console进行。

说了这么多,下面给出一个配置实例供大家参考。

Welcome to the PIX firewall

Type help or ‘?’ for a list of available commands.
PIX525> en
Password:
PIX525#sh config :
Saved :
PIX Version 6.0(1) —— PIX当前的*作系统版本为6.0
Nameif ethernet0 outside security0
Nameif ethernet1 inside security100 —— 显示目前pix只有2个接口
Enable password 7Y051HhCcoiRTSQZ encrypted
Passed 7Y051HhCcoiRTSQZ encrypted —— pix防火墙密码在默认状态下已被加密,在配置文件中不会以明文显示,telnet 密码缺省为cisco
Hostname PIX525 —— 主机名称为PIX525
Domain-name 123.com —— 本地的一个域名服务器123.com,通常用作为外部访问
Fixup protocol ftp 21
Fixup protocol http 80
fixup protocol h323 1720
fixup protocol rsh 514
fixup protocol smtp 25
fixup protocol sqlnet 1521
fixup protocol sip 5060 —— 当前启用的一些服务或协议,注意rsh服务是不能改变端口号的
names —— 解析本地主机名到ip地址,在配置中可以用名字代替ip地址,当前没有设置,所以列表为空
pager lines 24 —— 每24行一分页
interface ethernet0 auto
interface ethernet1 auto —— 设置两个网卡的类型为自适应
mtu outside 1500
mtu inside 1500 —— 以太网标准的MTU长度为1500字节
ip address outside 61.144.51.42 255.255.255.248
ip address inside 192.168.0.1 255.255.255.0 —— pix外网的ip地址61.144.51.42,内网的ip地址192.168.0.1
ip audit info action alarm
ip audit attack action alarm —— pix入侵检测的2个命令。当有数据包具有攻击或报告型特征码时,pix将采取报警动作(缺省动作),向指定的日志记录主机产生系统日志消息;此外还可以作出丢弃数据包和发出tcp连接复位信号等动作,需另外配置。
pdm history enable —— PIX设备管理器可以图形化的监视
PIX arp timeout 14400 —— arp表的超时时间
global (outside) 1 61.144.51.46 —— 如果你访问外部论坛或用QQ聊天等等,上面显示的ip就是这个
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
static (inside, outside) 61.144.51.43 192.168.0.8 netmask 255.255.255.255 0 0
conduit permit icmp any any
conduit permit tcp host 61.144.51.43 eq www any
conduit permit udp host 61.144.51.43 eq domain any —— 用61.144.51.43这个ip地址提供domain-name服务,而且只允许外部用户访问domain的udp端口
route outside 0.0.0.0 0.0.0.0 61.144.51.61 1 —— 外部网关61.144.51.61
timeout xlate 3:00:00 —— 某个内部设备向外部发出的ip包经过翻译(global)后,在缺省3个小时之后此数据包若没有活动,此前创建的表项将从翻译表中删除,释放该设备占用的全局地址
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 rpc 0:10:00 h323 0:05:00 sip 0:30:00 sip_media 0:02:00
timeout uauth 0:05:00 absolute —— AAA认证的超时时间,absolute表示连续运行uauth定时器,用户超时后,将强制重新认证
aaa-server TACACS+ protocol tacacs+
aaa-server RADIUS protocol radius —— AAA服务器的两种协议。AAA是指认证,授权,审计。Pix防火墙可以通过AAA服务器增加内部网络的安全
no snmp-server location no snmp-server contact snmp-server community public —— 由于没有设置snmp工作站,也就没有snmp工作站的位置和联系人
no snmp-server enable traps —— 发送snmp陷阱 floodguard enable —— 防止有人伪造大量认证请求,将pix的AAA资源用完
no sysopt route dnat telnet timeout 5 ssh timeout 5 —— 使用ssh访问pix的超时时间
terminal width 80 Cryptochecksum:a9f03ba4ddb72e1ae6a543292dd4f5e7
PIX525#
PIX525#write memory —— 将配置保存
上面这个配置实例需要说明一下,pix防火墙直接摆在了与internet接口处,此处网络环境有十几个公有ip,可能会有朋友问如果我的公有ip很有限怎么办?你可以添加router放在pix的前面,或者global使用单一ip地址,和外部接口的ip地址相同即可。另外有几个维护命令也很有用,show interface查看端口状态,show static查看静态地址映射,show ip查看接口ip地址,ping outside | inside ip_address确定连通性。


PIX上实现VPN步骤
在PIX上防火墙用预共享密钥配置IPSec加密主要涉及到4个关键任务:

一、为IPSec做准备

为IPSec做准备涉及到确定详细的加密策略,包括确定我们要保护的主机和网络,选择一种认证方法,确定有关IPSec对等体的详细信息,确定我们所需的IPSec特性,并确认现有的访问控制列表允许IPSec数据流通过;
步骤1:根据对等体的数量和位置在IPSec对等体间确定一个IKE(IKE阶段1,或者主模式)策略;
步骤2:确定IPSec(IKE阶段2,或快捷模式)策略,包括IPSec对等体的细节信息,例如IP地址及IPSec变换集和模式;
步骤3:用”write terminal”、”show isakmp”、”show isakmp policy”、”show crypto map “命令及其他”show”命令来检查当前的配置;
步骤4:确认在没有使用加密前网络能够正常工作,用”ping”命令并在加密前运行测试数据流来排除基本的路由故障;
步骤5:确认在边界路由器和PIX防火墙中已有的访问控制列表允许IPSec数据流通过,或者想要的数据流将可以被过滤出来。

二、配置IKE 配置IKE涉及到启用IKE(和isakmp是同义词),创建IKE策略,和验证我们的配置;
步骤1:用”isakmp enable”命令来启用或关闭IKE;
步骤2:用”isakmp policy”命令创建IKE策略;
步骤3:用”isakmp key”命令和相关命令来配置预共享密钥;
步骤4:用”show isakmp [policy]”命令来验证IKE的配置。

三、配置IPSec

IPSec配置包括创建加密用访问控制列表,定义变换集,创建加密图条目,并将加密集应用到接口上去;
步骤1:用access-list命令来配置加密用访问控制列表; 例如: access-list acl-name {permit|deny} protocol src_addr src_mask [operator port [port]]dest_addr dest_mask [operator prot [port]]
步骤2:用crypto ipsec transform-set 命令配置变换集; 例如: crypto ipsec transform-set transform-set-name transform1 [transform2 [transform3]] 3. 步骤3:(任选)用crypto ipsec security-association lifetime命令来配置全局性的IPSec 安全关联的生存期;
步骤4:用crypto map 命令来配置加密图;
步骤5:用interface 命令和crypto map map-name interface应用到接口上; 6. 步骤6:用各种可用的show命令来验证IPSec的配置。

四、测试和验证IPSec
该任务涉及到使用”show ” 、”debug”和相关的命令来测试和验证IPSec加密工作是否正常,并为之排除故障。
样例:
PIX 1的配置:
!configure the IP address for each PIX Firewall interface
ip address outside 192.168.1.1 255.255.255.0
ip address inside 10.1.1.3 255.255.255.0
ip address dmz 192.168.11.1 255.255.255.0
global (outside) 1 192.168.1.10-192.168.1.254 netmask 255.255.255.0
!creates a global pooll on the outside interface,enables NAT.
!windows NT server
static (inside,outside) 192.168.1.10 10.1.1.4 netmask 255.255.255.0
!Crypto access list specifiles between the global and the inside server beind PIX Firewalls is encrypted ,The source and destination IP address are the global IP addresses of the statics.
Access-list 101 permit ip host 192.168.1.10 host 192.168.2.10
!The conduit permit ICMP and web access for testing.
Conduit permit icmp any any Conduit permit tcp host 192.168.1.10 eq www any
route outside 0.0.0.0 0.0.0.0 192.168.1.2 1
!Enable IPSec to bypass access litst,access ,and confuit restrictions
syspot connnection permit ipsec
!Defines a crypto map transform set to user esp-des
crypto ipsec transform-set pix2 esp-des
crypto map peer2 10 ipsec-isakmp!

完全配置: ip address outside 202.105.113.194 255.255.255.0 /*看电信给你的IP
ip address inside 192.168.1.1 255.255.255.0
!
global (outside) 1 202.105.113.195-202.105.113.200
global (outside) 1 202.105.113.201
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
static (inside,outside) 202.105.113.203 192.168.1.10 netmask 255.255.255.255 0 0
static (inside,outside) 202.105.113.205 192.168.1.11netmask 255.255.255.255 0 0
conduit permit icmp any any conduit permit tcp host 202.105.113.203 eq www any
conduit permit tcp host 202.105.113.203 eq ftp any
conduit permit tcp host 202.105.113.205 eq smtp any
conduit permit tcp host 202.105.113.205 eq pop3 any
!
route outside 0.0.0.0 0.0.0.0 202.105.113.193 1
route inside 0.0.0.0 0.0.0.0 192.168.1.1

4. 指定要进行转换的内部地址(nat)
网络地址翻译(nat)作用是将内网的私有ip转换为外网的公有ip.Nat命令总是与global命令一起使用,这是因为nat命令可以指定一台主机或一段范围的主机访问外网,访问外网时需要利用global所指定的地址池进行对外访问。

nat命令配置语法:
nat (if_name) nat_id local_ip [netmark]
其中(if_name)表示内网接口名字,例如inside。Nat_id用来标识全局地址池,使它与其相应的global命令相匹配,local_ip表示内网被分配的ip地址。例如0.0.0.0表示内网所有主机可以对外访问。[netmark]表示内网ip地址的子网掩码。

例1.Pix525(config)#nat (inside) 1 0 0
表示启用nat,内网的所有主机都可以访问外网,用0可以代表0.0.0.0

例2.Pix525(config)#nat (inside) 1 172.16.5.0 255.255.0.0
表示只有172.16.5.0这个网段内的主机可以访问外网。

5. 指定外部地址范围(global) global命令把内网的ip地址翻译成外网的ip地址或一段地址范围。
Global命令的配置语法:global (if_name) nat_id ip_address-ip_address [netmark global_mask]
其中(if_name)表示外网接口名字,例如outside.。Nat_id用来标识全局地址池,使它与其相应的nat命令相匹配,ip_address-ip_address表示翻译后的单个ip地址或一段ip地址范围。[netmark global_mask]表救謎p地址的网络掩码。

例1.Pix525(config)#global (outside) 1 61.144.51.42-61.144.51.48
表示内网的主机通过pix防火墙要访问外网时,pix防火墙将使用61.144.51.42-61.144.51.48这段ip地址池为要访问外网的主机分配一个全局ip地址。

例2.Pix525(config)#global (outside) 1 61.144.51.42 表示内网要访问外网时,pix防火墙将为访问外网的所有主机统一使用61.144.51.42这个单一ip地址。

例3. Pix525(config)#no global (outside) 1 61.144.51.42 表示删除这个全局表项。

6. 设置指向内网和外网的静态路由(route) 定义一条静态路由。
route命令配置语法:route (if_name) 0 0 gateway_ip [metric]
其中(if_name)表示接口名字,例如inside,outside。Gateway_ip表示网关路由器的ip地址。[metric]表示到gateway_ip的跳数。通常缺省是1。

例1. Pix525(config)#route outside 0 0 61.144.51.168 1
表示一条指向边界路由器(ip地址61.144.51.168)的缺省路由。

例2. Pix525(config)#route inside 10.1.1.0 255.255.255.0 172.16.0.1 1
Pix525(config)#route inside 10.2.0.0 255.255.0.0 172.16.0.1 1
如果内部网络只有一个网段,按照例1那样设置一条缺省路由即可;如果内部存在多个网络,需要配置一条以上的静态路由。上面那条命令表示创建了一条到网络10.1.1.0的静态路由,静态路由的下一条路由器ip地址是172.16.0.1。

OK,这6个基本命令若理解了,就可以进入到pix防火墙的一些高级配置了。

A. 配置静态IP地址翻译(static)
如果从外网发起一个会话,会话的目的地址是一个内网的ip地址,static就把内部地址翻译成一个指定的全局地址,允许这个会话建立。
static命令配置语法:
static (internal_if_name,external_if_name) outside_ip_address inside_ ip_address
其中internal_if_name表示内部网络接口,安全级别较高,如inside。external_if_name为外部网络接口,安全级别较低,如outside等。outside_ip_address为正在访问的较低安全级别的接口上的ip地址。inside_ ip_address为内部网络的本地ip地址。

例1. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.8
表示ip地址为192.168.0.8的主机,对于通过pix防火墙建立的每个会话,都被翻译成61.144.51.62这个全局地址,也可以理解成static命令创建了内部ip地址192.168.0.8和外部ip地址61.144.51.62之间的静态映射。

例2. Pix525(config)#static (inside, outside) 192.168.0.2 10.0.1.3

例3. Pix525(config)#static (dmz, outside) 211.48.16.2 172.16.10.8
注释同例1。
通过以上几个例子说明使用static命令可以让我们为一个特定的内部ip地址设置一个永久的全局ip地址。这样就能够为具有较低安全级别的指定接口创建一个入口,使它们可以进入到具有较高安全级别的指定接口。

B. 管道命令(conduit)
前面讲过使用static命令可以在一个本地ip地址和一个全局ip地址之间创建了一个静态映射,但从外部到内部接口的连接仍然会被pix防火墙的自适应安全算法(ASA)阻挡。
conduit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到DMZ或内部接口的入方向的会话。对于向内部接口的连接,static和conduit命令将一起使用,来指定会话的建立。
conduit命令配置语法:
conduit permit | deny global_ip port[-port] protocol foreign_ip [netmask]
permit | deny 允许 | 拒绝访问 global_ip 指的是先前由global或static命令定义的全局ip地址,如果global_ip为0,就用any代替0;如果global_ip是一台主机,就用host命令参数。
port 指的是服务所作用的端口,例如www使用80,smtp使用25等等,我们可以通过服务名称或端口数字来指定端口。
protocol 指的是连接协议,比如:TCP、UDP、ICMP等。
foreign_ip 表示可访问global_ip的外部ip。对于任意主机,可以用any表示。如果foreign_ip是一台主机,就用host命令参数。

例1. Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any
这个例子表示允许任何外部主机对全局地址192.168.0.8的这台主机进行http访问。其中使用eq和一个端口来允许或拒绝对这个端口的访问。Eq ftp 就是指允许或拒绝只对ftp的访问。

例2. Pix525(config)#conduit deny tcp any eq ftp host 61.144.51.89
表示不允许外部主机61.144.51.89对任何全局地址进行ftp访问。

例3. Pix525(config)#conduit permit icmp any any
表示允许icmp消息向内部和外部通过。

例4. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3
Pix525(config)#conduit permit tcp host 61.144.51.62 eq www any
这个例子说明static和conduit的关系。192.168.0.3在内网是一台web服务器,现在希望外网的用户能够通过pix防火墙得到web服务。所以先做static静态映射:192.168.0.3->61.144.51.62(全局),然后利用conduit命令允许任何外部主机对全局地址61.144.51.62进行http访问。

C. 配置fixup协议
fixup命令作用是启用,禁止,改变一个服务或协议通过pix防火墙,由fixup命令指定的端口是pix防火墙要侦听的服务。见下面例子:
例1. Pix525(config)#fixup protocol ftp 21 启用ftp协议,并指定ftp的端口号为21
例2. Pix525(config)#fixup protocol http 80
Pix525(config)#fixup protocol http 1080 为http协议指定80和1080两个端口。
例3. Pix525(config)#no fixup protocol smtp 80 禁用smtp协议。


D. 设置telnet

telnet有一个版本的变化。在pix OS 5.0(pix*作系统的版本号)之前,只能从内部网络上的主机通过telnet访问pix。在pix OS 5.0及后续版本中,可以在所有的接口上启用telnet到pix的访问。当从外部接口要telnet到pix防火墙时,telnet数据流需要用ipsec提供保护,也就是说用户必须配置pix来建立一条到另外一台pix,路由器或vpn客户端的ipsec隧道。另外就是在PIX上配置SSH,然后用SSH client从外部telnet到PIX防火墙,PIX支持SSH1和SSH2,不过SSH1是免费软件,SSH2是商业软件。相比之下cisco路由器的telnet就做得不怎么样了。
telnet配置语法:telnet local_ip [netmask] local_ip
表示被授权通过telnet访问到pix的ip地址。如果不设此项,pix的配置方式只能由console进行。

说了这么多,下面给出一个配置实例供大家参考。

Welcome to the PIX firewall

Type help or ‘?’ for a list of available commands.
PIX525> en
Password:
PIX525#sh config :
Saved :
PIX Version 6.0(1) —— PIX当前的*作系统版本为6.0
Nameif ethernet0 outside security0
Nameif ethernet1 inside security100 —— 显示目前pix只有2个接口
Enable password 7Y051HhCcoiRTSQZ encrypted
Passed 7Y051HhCcoiRTSQZ encrypted —— pix防火墙密码在默认状态下已被加密,在配置文件中不会以明文显示,telnet 密码缺省为cisco
Hostname PIX525 —— 主机名称为PIX525
Domain-name 123.com —— 本地的一个域名服务器123.com,通常用作为外部访问
Fixup protocol ftp 21
Fixup protocol http 80
fixup protocol h323 1720
fixup protocol rsh 514
fixup protocol smtp 25
fixup protocol sqlnet 1521
fixup protocol sip 5060 —— 当前启用的一些服务或协议,注意rsh服务是不能改变端口号的
names —— 解析本地主机名到ip地址,在配置中可以用名字代替ip地址,当前没有设置,所以列表为空
pager lines 24 —— 每24行一分页
interface ethernet0 auto
interface ethernet1 auto —— 设置两个网卡的类型为自适应
mtu outside 1500
mtu inside 1500 —— 以太网标准的MTU长度为1500字节
ip address outside 61.144.51.42 255.255.255.248
ip address inside 192.168.0.1 255.255.255.0 —— pix外网的ip地址61.144.51.42,内网的ip地址192.168.0.1
ip audit info action alarm
ip audit attack action alarm —— pix入侵检测的2个命令。当有数据包具有攻击或报告型特征码时,pix将采取报警动作(缺省动作),向指定的日志记录主机产生系统日志消息;此外还可以作出丢弃数据包和发出tcp连接复位信号等动作,需另外配置。
pdm history enable —— PIX设备管理器可以图形化的监视
PIX arp timeout 14400 —— arp表的超时时间
global (outside) 1 61.144.51.46 —— 如果你访问外部论坛或用QQ聊天等等,上面显示的ip就是这个
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
static (inside, outside) 61.144.51.43 192.168.0.8 netmask 255.255.255.255 0 0
conduit permit icmp any any
conduit permit tcp host 61.144.51.43 eq www any
conduit permit udp host 61.144.51.43 eq domain any —— 用61.144.51.43这个ip地址提供domain-name服务,而且只允许外部用户访问domain的udp端口
route outside 0.0.0.0 0.0.0.0 61.144.51.61 1 —— 外部网关61.144.51.61
timeout xlate 3:00:00 —— 某个内部设备向外部发出的ip包经过翻译(global)后,在缺省3个小时之后此数据包若没有活动,此前创建的表项将从翻译表中删除,释放该设备占用的全局地址
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 rpc 0:10:00 h323 0:05:00 sip 0:30:00 sip_media 0:02:00
timeout uauth 0:05:00 absolute —— AAA认证的超时时间,absolute表示连续运行uauth定时器,用户超时后,将强制重新认证
aaa-server TACACS+ protocol tacacs+
aaa-server RADIUS protocol radius —— AAA服务器的两种协议。AAA是指认证,授权,审计。Pix防火墙可以通过AAA服务器增加内部网络的安全
no snmp-server location no snmp-server contact snmp-server community public —— 由于没有设置snmp工作站,也就没有snmp工作站的位置和联系人
no snmp-server enable traps —— 发送snmp陷阱 floodguard enable —— 防止有人伪造大量认证请求,将pix的AAA资源用完
no sysopt route dnat telnet timeout 5 ssh timeout 5 —— 使用ssh访问pix的超时时间
terminal width 80 Cryptochecksum:a9f03ba4ddb72e1ae6a543292dd4f5e7
PIX525#
PIX525#write memory —— 将配置保存
上面这个配置实例需要说明一下,pix防火墙直接摆在了与internet接口处,此处网络环境有十几个公有ip,可能会有朋友问如果我的公有ip很有限怎么办?你可以添加router放在pix的前面,或者global使用单一ip地址,和外部接口的ip地址相同即可。另外有几个维护命令也很有用,show interface查看端口状态,show static查看静态地址映射,show ip查看接口ip地址,ping outside | inside ip_address确定连通性。