nat
nat的建立是为了解决一些问题,随着互联网的发展发生了:
为了减缓全球地址耗尽。
内部使用了rfc1918地址。
为了保护内部地址。
nat同时也增加了隐藏的内部拓扑结构的安全性。
访问穿越防火墙
由高安全级别到低允许
由低安全级别到高拒绝
内部地址转换
内部nat转换使主机地址从高安全级别到低安全级别接口,分为动态和静态。
动态内部地址转换
nat (inside) 1 10.0.0.0 255.255.255.0
global (outside)1192.168.0.20-192.168.0.254 netmask 255.255.255.0
内部地址转换-两接口
nat (inside) 1 10.0.0.0 255.255.255.0
nat (inside) 2 10.2.0.0 255.255.255.0
global (outside) 1 192.168.0.3-192.168.0.16 netmask 255.255.255.0
global (outside) 2 192.168.0.17-192.168.0.32 netmask 255.255.255.0
内部地址转换-三接口
nat (inside) 1 10.0.0.0 255.255.255.0
nat (dmz) 1 172.16.0.0 255.255.255.0
global (outside) 1 192.168.0.20-192.168.0.254 netmask 255.255.255.0
global (dmz) 1 172.16.0.20-172.16.0.254 netmask 255.255.255.0
端口地址转换(pat)
pat是一个ip地址和一个端口号的组合,可以复用一个单一的全局ip地址,不同会话使用不同端口号区分。
pat配置实例
源地址10.0.0.0转换为192.168.0.3访问外网。一个单一的ip192.168.0.3分配全局地址池。
源端口是动态更改为一个唯一的大于1023的端口
route (outside) 0.0.0.0 0.0.0.0 192.168.0.1
nat (inside) 1 10.0.0.0 255.255.0.0
global (outside) 192.168.0.3 netmask 255.255.255.255
pat使用外面接口
在外面接口配置为dhcp clinet,支持使用dhcp分配地址做pat
源地址10.0.0.0转换为192.168.0.2访问外网。
源端口是动态更改为一个唯一的大于1023的端口
inter e0
ip address outside dchp
nat (inside) 1 10.0.0.0 255.255.0.0
global (outside) 1 interface
多个子网的pat
每个内部子网映射到一个不同的pat地址。
源地址10.0.1.0转换为192.168.0.8访问外网,10.0.2.0转换为192.168.0.9访问外网,
源端口改为一个唯一的大于1023的端口
nat (inside) 1 10.0.1.0 255.255.255.0
nat (inside) 2 10.0.2.0 255.255.255.0
global (outside) 1 192.168.0.8 netmask 255.255.255.255
global (outside) 2 192.168.0.9 netmask 255.255.255.255
pat的备份
源地址10.0.1.0转换为192.168.0.8访问外网。
全局地址192.168.0.9是在192.168.0.8消耗完毕才使用。
nat (inside) 1 10.0.0.0 255.255.252.0
global (outside) 1 192.168.0.8 netmask 255.255.255.255
global (outside) 1 192.168.0.9 netmask 255.255.255.255
增强的全局地址池pat
源地址10.0.0.0访问外网,被分配从192.168.0.20-253提供公网地址。
当这个地址用完,就使用192.168.0.254做pat
identity nat
启用nat,所有数据包穿越防火墙需要一个转换规则。
identity nat是用来创建一个透明的映射。
用在所有高安全级别接口向低安全级别接口的ip地址转。identity nat:nat 0
nat (dmz) 0 192.168.0.9 255.255.255.255
静态nat
让外部可以访问dmz区
static (dmz,outside) 192.168.1.3 172.16.1.9 netmask 255.255.255.255
static (dmz,outside) 192.168.1.4 172.16.1.10 netmask 255.255.255.255
静态网络转换
static (dmz,outside) 192.168.10.0 172.16.1.0 netmask 255.255.255.0
端口重定向
static (dmz,outside) tcp 192.168.0.9 ftp 172.16.1.9 ftp netmask 255.255.255.255
static (dmz,outside) tcp 192.168.0.9 2121 172.16.1.10 ftp netmask 255.255.255.255
tcp拦截和连接限制
emb_lin:每个主机的最大数量的半开连接。一个半开连接是链接请求在未完成的tcp的三次握手。
tcp_max_conns:最大数量的并发tcp连接。关闭空闲连接超时后,可以再命令中指定时间。
udp_max_conns:最大数量的同时udp连接
tcp的三次握手
tcp监控
syn cookies
cookie是一对tcp头部哈希和一个秘密的eky.完成一个合法连接,客户端要通过发送的cookie的ack回握手,如果cookie是真实的,防火墙会代理tcp会话。
配置连接限制
0为禁用保护(默认)
空闲连接被关闭后,在命令中指定的dup超时时间。
nat (inside ) 1 0.0.0.0 0.0.0.0 200 25
static (inside,outside) 192.168.0.11 172.16.0.2 0 0 udp 100
连接和转换
查看链接和转换
show xlate 查看转换信息
show conn查看链接信息
防火墙的nat
转换配置在接口对之前,当nat-control被打开,如果没有转换项,数据包无法穿越防火墙。
如果没有现成转换槽位,防火墙就根据策略创建转换(第一次链接)。如果没有找到转换槽位,数据包丢弃。
一个数据包到达内部接口,防火墙检查该接口上的acl,在查找路由。
源地址又转换槽位,就转换该地址,要是没有就根据转换策略创建。
转换策略检查的规则:nat0+acl、静态nat(静态的tcp/udp、静态pat)、nat+acl(策略nat)、nat(正常nat)。
如果没有找到匹配,数据包被丢弃。
配置三接口-示例
nat (inside) 1 10.0.0.0 255.255.255.0
global (outside) 1 192.168.0.20-192.168.0.254 netmask 255.255.255.0
static (dmz,outside) 192.168.0.11 172.16.0.2 netmask 255.255.255.255
static (inside,dmz) 10.0.0.0 10.0.0.0 netmask 255.255.255.0
配置四接口-示例
nat (inside ) 1 10.0.0.0 255.255.255.0
global (outside) 1 192.168.0.20-192.168.0.254 netmask 255.255.255.0
static (inside,dmz) 10.0.0.0 10.0.0.0 netmask 255.255.255.0
static (dmz,outside) 192.168.0.11 172.16.0.2
static (dmz,partnernet) 172.18.0.11 172.16.0.2
防火墙上的acl
对到达之间的流量不起作用,只对初始化流量起作用。
高到低:默认放行,限制的是真实没有转换的地址。
低到高:默认拒绝,放行被转换后的global地址。
安全级别
安全级别以数字标记,0是最不安全 ,100是最安全的。
安全级别启用,以确定请求的会话是入站或出站:入站会话是从一个不安全的接口,到一个更安全的接口,出站会议是由一个更安全的接口,到一个不太安全的接口。
inbound访问服务器
内部server转化出去后,outside必须放行到这个server转换后的地址的流量。
static (dmz,outside) 192.168.0.9 172.16.0.2 0 0
access-list aclout permit tcp any host 192.168.0.9 eq www
access-group aclout in interface outside
查看alc和清除计数器
show access-list
clear access-list aclout counters 清除计数器
基于时间的acl
time-range temp-worker
absolute start 00:00 1 augst 2010 end 00:00 30 august 2010
periodic week days 8:00 to 17:00
static (dmz,outside) 192.168.0.6 172.16.0.6
access-list aclin permit tcp host 192.168.10.2 host 192.168.0.6 eq www time-range temp-wrker
acl logging
access-list outside-acl permit icmp any host 192.168.1.1 log 7 interval 500 (日志间隔)
alc line number 访问控制列表编号
插入列表
access-list aclout line 4 permit tcp any host 192.168.0.9 eq www
acl备注
acl的描述信息
access-list outside line 1 remark web server http access-list
抵达防火墙的icmp
icmp permit any echo-reply outside (回复包)
icmp permit any unreachable outside(出去包)
acl的应用:vpn+nat 0
access-list vpn-no-nat permit ip 10.100.1.0 255.255.255.0 10.10.0.0 255.255.255.0
nat (inside) 0 access-list vpn-no-nat
acl的应用:策略nat
access-list company_a permit tcp 10.0.0.0 255.255.255.0
host 192.168.10.11 eq www
nat (inside) 10 access-list company_a
global (outside) 10 192.168.0.33 netmask 255.255.255.255
access-list company_ba permit tcp 10.0.0.0 255.255.55.0 host 192.168.100.4 eq www
nat (inside) 11 access-list company_b
global (outside) 11 192.168.0.49 netmask 255.255.255.255
java applet 过滤
java程序可能成为入侵内部系统的透镜。为了解决该问题,通过启用java过滤可以阻止内部系统下载java applets.当允许访问80端口(http)时,就有可能下载java applets.某些java applets就可能包含隐藏代码,会破坏位于内部网络中的数据。
asa防火墙的java applets过滤可以针对每个客户端或者每个ip地址来阻止java应用程序。当启用了java过滤,防火墙将搜索程序中的cafe babe 字符串。一旦找到该字符串。防火墙将拒绝这个java applets.
activex 阻止
activex 控件,作为对象连接和嵌入(ole)空间(ocx)的前身,是一种可以被嵌入在web页面内的小程序,经常用在动画或其他应用程序中。
activex 控件因提供了攻击服务器的途径而带来潜在安全问题。因此,可以使用防火墙阻止所有的activex控件。
activex filter命令
filter activex 80 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
url过滤
防火墙收到来自用户访问某个url的请求时,它将查询url过滤服务器来决定是否返回这个url请求。而url过滤服务器检查其配置来决定是否过滤该url.如果该url应该被过滤掉,哪儿url过滤应用程序将显示出过滤信息或者使用户请求到某个指定的web站点的url.
在使用url过滤之前,你必须至少指定一台服务器用来运行websense 或n2h2 url过滤应用程序,最多指定16台url服务器,每次只能使用n2h2或者websense中的一种应用程序。
http url过滤
websense和n2h2 http网址过滤器可以用来阻挡特定网址的答复申请
指定服务器
url-server (dmz) vendor n2h2 host 172.16.0.3 protocol tcp开启http url过滤
filter url http 0 0 0 0 allow
https and ftp过滤
filter https 0 0 0 0 allow
配置示例:
url-server (dmz) vendor websense host 172.16.0.3 timeout 10 protocol tcp version 4
filter url http 0 0 0 0 allow