一、 基础配置 1.1 密码配置 ciscoasa(config)#passwd password 一般用于telnet登陆ASA的登录密码 1.2 Enable密码配置 ciscoasa(config)#enable password password 用于进入enable特权模式的密码 1.3 设备命名 ciscoasa(config)#hostname hostname 用于设备命名管理 二、 接口配置 2.1 接口命名 ciscoasa(config)#interface interface_id 进入接口配置模式 ciscoasa(config-if)#nameif interface_name 配置接口名称 2.2 配置接口安全级别 ciscoasa(config-if)#security-level security_level 安全级别为0-100,0为最低 2.3 配置IP地址 ciscoasa(config-if)#ip address ip_address netmask 配置接口IP地址与掩码 2.4 关闭/激活接口 ciscoasa(config-if)#shutdown //关闭接口 ciscoasa(config-if)#no shutdown //激活接口 2.5 范例 ciscoasa(config)#interface g0/0 //进入g0/0接口 ciscoasa(config-if)#nameif outside //配置g0/0接口名称为outside ciscoasa(config-if)#security-level 0 //配置outside接口安全级别为0(outside接口默认安全级别为0) ciscoasa(config-if)#ip address 218.21.217.161 255.255.255.252 //配置outside接口IP地址为218.21.217.162,掩码为255.255.255.252 ciscoasa(config-if)#no shutdown //激活该接口 三、 路由配置 3.1 静态路由配置 ciscoasa(config)#route interface_name destination_network netmask gateway_address interface_name:路由方向的接口名称 destination_network:目的网络地址 netmask:目的网络掩码 gateway_address:下一跳网关地址 3.2 外口默认路由配置 ciscoasa(config)#route outside 0 0 gateway_address 3.3 范例 ciscoasa(config)#route inside 172.16.0.0 255.255.0.0 192.168.100.1 //在inside接口上创建一条到172.16.0.0/16网络走192.168.100.1的路由,ASA会将到172.16.0.0/16网络的所有数据包转发给下一跳网关192.168.100.1 ciscoasa(config)#route outside 0 0 218.21.217.161 //创建一条外网的默认路由,ASA将所有的互联网流量发给internet网关218.21.217.161 四、 网络地址转换(NAT)配置 4.1 关于NAT 随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有一个或几个IP地址,显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。 借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。 NAT的实现方式有三种:动态NAT、静态NAT、PAT 动态NAT:指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。 静态NAT:指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。 PAT: 指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的***。因此,目前网络中应用最多的就是端口多路复用方式。 4.2 动态NAT的配置 ciscoasa(config)#nat (if_name) nat_id network netmask if_name:激活NAT的接口,一般是inside nat_id:NAT转换的序号,对应global序号 network:需要做NAT转换的网络 netmask:需要转换网络的掩码 ciscoasa(config)#global (if_name) nat_id address_range netmask netmask if_name:NAT转换后的出接口名,一般是outside nat_id:对应NAT转换的序号 address_range:用作NAT的地址池 netmask:地址池的掩码 范例: ciscoasa(config)#nat (inside) 1 network 172.16.0.0 255.255.0.0 //在inside接口为172.16.0.0/16网络激活NAT ciscoasa(config)#global (outside) 1 10.78.139.129-10.78.139.254 netmask 255.255.255.0 //把来自inside接口172.16.0.0/16网络的地址动态转换为10.78.139.129-254/24中的地址 4.3 静态NAT的配置 ciscoasa(config)#nat (if_name) nat_id host 255.255.255.255 if_name:激活NAT的接口,一般是inside nat_id:NAT转换的序号,对应global序号 host:被转换的主机IP地址 ciscoasa(config)#global (if_name) nat_id address netmask if_name:NAT转换后的出接口名,一般是outside nat_id:对应NAT转换的序号 address:转换后的IP地址 netmask:转换后地址的掩码 范例: ciscoasa(config)#nat (inside) 2 10.78.224.9 255.255.255.255 //为来自inside接口的10.78.224.9这个地址激活NAT ciscoasa(config)#global (outside) 2 218.21.217.162 255.255.255.252 //将10.78.224.9这个地址转换为218.21.217.162 4.4 PAT的配置 ciscoasa(config)#nat (if_name) nat_id network netmask if_name:激活NAT的接口,一般是inside nat_id:NAT转换的序号,对应global序号 network:需要做NAT转换的网络 netmask:需要转换网络的掩码 ciscoasa(config)#global (if_name) nat_id interface if_name:NAT转换后的出接口名,一般是outside nat_id:对应NAT转换的序号 范例: ciscoasa(config)#nat (inside) 3 172.16.0.0 255.255.0.0 //为来自inside接口的172.16.0.0/16网络激活NAT ciscoasa(config)#global (outside) 3 interface //把来自inside接口172.16.0.0/16网络的地址做PAT转换为outside接口的地址 4.5 端口映射的配置 4.5.1. 什么时候需要做端口映射 当外网需要访问内网中的一台服务器时,ASA并不知道访问的是哪一台内网中的机器,这时就需要做静态的端口映射。 4.5.2. 端口映射的配置 ciscoasa(config)#access-list list_name extended permit tcp/udp any host outside_address eq port_num(具体内容详见访问控制配置) list_name:访问控制列表名称 tcp/udp:需要映射的协议类型 outside_address:outside接口IP地址 port_num:需要映射的端口号 ciscoasa(config)#static (inside,outside) tcp/udp interface port_num local_address port_num netmask 255.255.255.255 tcp/udp:需要映射的协议类型 port_num:映射前的端口号 local_address:映射后的内网主机IP地址 Port_num:映射后的端口号 ciscoasa(config)#access-group 100 in interface outside //在outside接口in方向调用名称为100的访问控制列表 4.5.3. 范例: ciscoasa(config)#access-list 100 extended permit tcp any host 218.21.217.162 eq 80 //允许外网访问218.21.217.162的tcp 80端口 ciscoasa(config)#static (inside,outside) tcp interface 80 10.78.224.10 80 netmask 255.255.255.255 //外网访问218.21.217.162的tcp 80端口时启用静态PAT映射至内网10.78.224.10的TCP 80端口 ciscoasa(config)#access-group 100 in interface outside inbound //访问必须调用ACL 五、 访问控制(ACL)配置 5.1. 配置访问控制列表的一般步骤 配置访问控制列表 接口方向的调用 5.2. 标准访问控制列表 ciscoasa(config)#access-list list_name standard deny/permit des_address netmask list_name:标准访问控制列表的名称 deny/permit:阻止/允许符合此条规则的流量 des_address:需要做控制的目的地址 netmask:需要做控制的目的地址的掩码 ciscoasa(config)#access-group list_name in/out interface interface_name in/out:调用接口的入/出方向 interface_name:调用控制列表的接口名 5.3. 扩展访问控制列表 ciscoasa(config)#access-list list_name extended deny/permit tcp/udp sour_address sour_netmask des_address des_netmask eq port_num list_name:扩展访问控制列表名称 deny/permit:阻止/允许符合此条规则的流量 tcp/udp:此条规则匹配的协议 sour_address:此条规则匹配的源地址 sour_netmask:此条规则匹配的源地址掩码 des_address:此条规则匹配的目的地址 des_netmask:此条规则匹配的目的地址掩码 port_num:此条规则所匹配的端口号 ciscoasa(config)#access-group list_name in/out interface interface_name in/out:调用接口的入/出方向 interface_name:调用控制列表的接口名 5.4. 范例 ciscoasa(config)#access-list 400 extended deny udp 10.78.224.0 255.255.255.0 61.134.1.4 255.255.255.255 eq 53 //阻止源地址10.78.224.0/24网段对目的地址61.134.1.4主机UDP 53端口 ciscoasa(config)#access-group 400 in interface inside //在inside接口的入方向调用 六、 ASA防火墙工作状态调试 6.1. 防火墙健康检查 查看当前ASA配置 ciscoasa#show run 查看CPU利用率 ciscoasa#show cpu usage (show cpu usage context all 正常应该在80%以下) 内存利用: ciscoasa#show memory Xlate 表大小: ciscoasa#show xlate count Conn 表大小: ciscoasa#show conn count 端口状态: ciscoasa#show interface interface_name 6.2. 验证防火墙的连接性 ping测试: ciscoasa#ping ip_address traceroute测试: ciscoasa#traceroute ip_address 查看路由表: ciscoasa#show route ASA防火墙ACL检查: ciscoasa#show access-list