global(outside) 1 interface //配置單個地址為outside接口的地址
global(outside) 1 218.106.236.237 netmask 255.255.255.248 //配置一個地址池,為255.255.255.248所有子網范圍內的地址
local_ip [netmask] :哪些地址轉換到nat_id這個地址池上。
(2)動態內部nat轉換(多對多)
例:
global(outside) 1 218.106.236.247-218.106.236.249 //配置一個地址池
nat (inside) 1 192.168.9.0 255.255.255.0 //和上面的global配置一起使用,即把192.168.9.0 這個網段的地址轉換為218.106.236.247-218.106.236.249這個網段
(3) pat (多對一nat)
當多個ip地址轉換為一個ip地址時,就自動在外部IP地址的后面加上大于1024的端口號,以區別不同的轉換訪問。
global(outside) 1 218.106.236.247 //配置一個外部地址
nat (inside) 1 192.168.9.0 255.255.255.0 //和上面的global配置一起使用,即把192.168.9.0 這個網段的地址轉換為218.106.236.247這個外部IP地址。外部人看到的是自動加了端口號的地址。
(4)策略nat
access-list extended net1 permit ip 192.168.9.0 255.255.255.0 host 209.165.200.1 //定義一個策略
global(outside) 1 209.165.200.100 //定義一個地址
nat (inside) 1 access-list net1 //當192.168.9.0 網段的地址訪問 209.165.200.1這臺電腦時,轉換為209.165.200.100這個ip地址。
(5)動態外部nat轉換
當低級別的想往高級別的轉換時,在后面加outside關鍵字即可。
nat (dmz) 1 192.168.7.0 255.255.255.0 outside //把dmz接口下的地址nat 到inside接口中
global(inside) 1 192.168.9.10-192.168.9.20 //即dmz接口中的192.168.7.0 網段的地址訪問內網時,將轉換為內網地址為192.168.9.10-192.168.9.20
(6)nat 0 即nat 免除
nat 0 表示穿過防火墻而不進行nat轉換。即表示地址不經過轉換直接作為源地址發送穿過防火墻達到低級別安全接口。
nat (dmz) 0 192.168.0.9 255.255.255.255
注意:執行nat的順序:
nat 0 (nat免除)
靜態nat和靜態pat (即static命令)
策略動態 nat (nat access-list)
正常的動態nat和pat (nat)
3、static映射命令
充許一個位于低安全級別接口的流量,穿過防火墻達到一個較高級別的接口。即數據流從較低安全級別接口到較高安全級別。
(1)常用方法:
static (real_ifname mapped_ifname) {mapped_ip|interface} real_ip [netmask mask]
real_ifname :較高級別接口名 mapped_ifname:較低級別接口名
mapped_ip:較低級別接口ip地址 interface:較低級別接口 real_ip:較高級別ip地址
擴號內的順序是:先高級別后低級別,擴號外的順序是先低級別后高級別,正好相反。
例: static (inside outside) 218.107.233.234 192.167.9.1 //即把218.107.233.234這個外部地址映射到內部地址192.168.9.1上。
(2)靜態端口映射
static (real_ifname mapped_ifname) {tcp | udp} {mapped_ip|interface} mapped_port real_ip real_port [netmask mask]
real_ifname :較高級別接口名 mapped_ifname:較低級別接口名
tcp|udp :要映射的端口協議名
mapped_ip:較低級別接口ip地址 interface:較低級別接口 mapped_port:端口名或端口號 real_ip:較高級別ip地址 real_port:端口名或端口號
注意一點很重要:并不是配置了static就可以從外部訪問內部了,必須要定義一個訪問控制列表來實現一個通道,允許哪些服務或端口,或哪些地址可以訪問。
例:
static (inside,outside) tcp interface ftp 192.168.10.4 ftp netmask 255.255.255.255 //把outside接口ip地址的ftp端口映射到192.168.10.4 內部IP的FTP端口。
access-list ftp extended permit tcp any interface outside eq ftp //定議一個訪問控制列表,以允許ftp數據流通過。
access-group ftp in interface outside //把訪問控制列表應用于接口
4、route 命令
route if_name destination_ip gateway [metric]
if_name: 接口名
destination_ip: 目的地
gateway: 網關
metric: 跳數
例:route outside 0 0 218.102.33.247 1 //即默認網關為 218.102.33.247 ,只有一跳
route inside 192.168.9.0 255.255.255.0 192.168.10.1 //設置到目標192.168.9.0網段的網關為192.168.10.1
三、訪問控制
訪問控制的方法與路由器的沒有區別。基本步驟是先定義訪問控制列表,然后再應用到接口即可。在此不多作解釋,在路由器模塊里,會單獨把訪問列表作解釋。
四、防火墻基本管理
1、telnet 配置
#usename name password password //設置登入的帳號和密碼
#aaa authentication telnet console LOCAL //設置AAA驗證方式。 此處為LOCAL本地。也可以用AAA服務器進入驗證。
#telnet 0.0.0.0 0.0.0.0 inside //哪些地址可telnet進此接口
#telnet timeout 10 //超時時長,以分鐘為單位
2、ssh登錄配置
#usename name password password //設置登入的帳號和密碼
#aaa authentication ssh console LOCAL //設置AAA驗證方式。 此處為LOCAL本地。也可以用其他服務器進入驗證。
#ssh timeout 10
#crypto key generate rsa modulus 1024 //指定rsa密鑰的大小,這個值越大,產生rsa的時間越長,cisco推薦使用1024.
# write mem //保存剛才產生的密鑰
#ciscoasa(config)#ssh 0.0.0.0 0.0.0.0 {inside|outside} //允許哪些IP可以通過SSH登錄此防火墻。 inside為內網接口,outside為外網接口。0.0.0.0 0.0.0.0 表示所有IP,可配置單個IP,也可以配置某段IP。
#ssh timeout 30 //設置超時時間,單位為分鐘
#ssh version 1 //指定SSH版本,可以選擇版本2
#passwd 密碼 //passwd命令所指定的密碼為遠程訪問密碼
show ssh //查看SSH配置信息
crypto key zeroize //清空密鑰
show crypto key mypubkersa //查看產生的rsa密鑰值
3、asdm配置
先上傳相應asdm版本到防火墻中。
# webvpn // 進入WEBVPN模式
# username cisco password cisco // 新建一個用戶和密碼
# http server enable //開啟HTTP服務
# http 192.168.9.10 255.255.255.0 inside //允許哪些ip 通過哪個接口可以通過http連上來。此處的意思為:允許192.168.9.10 這個IP用http通過inside連上防火墻.
# http 192.168.1.0 255.255.255.0 guanli //允許192.168.1.0網段經過管理接口連上防火墻。注意要用交叉線和管理接口連接,進行配置。當然事先要設置管理接口的IP,和名稱。
經過以上配置就可以用ASDM配置防火墻了。
如果配置了inside接口訪問,可直接輸入防火墻inside的ip地址。 https://192.168.9.1
如果配置了管理接口訪問,首先用交叉線把電腦和防火墻的管理口相連,把電腦設成和管理口段的IP地址,本例中設為192.168.1.0 段的IP打開瀏覽器在地址欄中輸入管理口的IP地址:
https://192.168.1.1
彈出一下安全證書對話框,單擊 “是”
輸入用戶名和密碼(就是在串口的WEBVPN模式下新建的用戶和密碼),然后點擊“確定”。
出現也下對話框,點擊“Download ASDM Launcher and Start ASDM”開始安裝ASDM管理器,安裝完以后從網上下載一個JAVA虛擬機軟件(使用1.4以上 Java 版本),進入WWW.JAVA.COM下載安裝,安裝完后點擊下面的“Run ASDM as a Java Applet ”。
出現以下對話框, 點擊“是”。
出現以下對話框,輸入用戶名和密碼(就是在串口的WEBVPN模式下新建的用戶和密碼),然后點擊“是”。
出現以下對話框,點擊“是”。
進入ASDM管理器。
這樣就可以通過ASDM來配置防火墻了。
以后就可以直接使用ASDM來管理防火墻了。
一定要注意一點:有時候java的版本過高1.6版以上,會打不開,就試用低版本的(1.4)試一下。
4、其他管理命令
#write memory //把配置保存
#clear configure all //把run-config中的內容清空
#write erase //可清除flash閃存中的配置
#dir //顯示flash中的文件
#boot [system|config] <usr>:
例: #boot system flash:/pix-701.bin //即從哪個系統鏡像中啟動
flash中可以存多個系統鏡像和配置文件。boot可以選擇從哪個系統鏡像中啟動。
#clock set 21:00 apr 1 2002 //設置時間
#show memery
#show version
#show cpu usage
六、虛擬防火墻
(一)虛擬防火墻的特性:
1、我們可以將一個單一的物理防火墻邏輯上分為多個虛擬防火墻,每個虛擬防火墻都是獨立的設備。
2、它們有自已獨立的安全策略,接口和管理接口
3、每個虛擬防火墻保存一個配置文件,以保存每個虛擬防火墻的策略和配置。
4、虛擬防火墻不支持vpn,組播和動態路由協議
(二)虛擬防火墻的種類
虛擬防火墻分為:admin context和普通虛擬防火墻。
admin context防火墻特性:
admin context必須先于其他的虛擬防火墻進行創建和配置。
用戶登錄到admin context虛擬防火墻就擁有了系統管理員的權限,可以訪問系統以及其他虛擬防火墻。
(三)流量分類
因一個物理防火墻分為多個虛擬防火墻,那到底哪些數據流量屬于哪個虛擬防火墻的呢?即如何把數據流量分配給虛擬防火墻。
1、按接口劃分:即將一個接口唯一的劃分到一個虛擬防火墻中,那么通過這個接口的流量就都屬于這個虛擬防火墻的。
2、基于MAC地址劃分:一個接口屬于多個虛擬防火墻共有。需要為這個共享接口指定多個MAC地址,即每個虛擬防火墻指定一個mac地址。可手工指定,也可自動產生。
由于ASA的接口有限,所以在多虛擬防火墻的模式下,我們會經常遇到一個接口同時分配給多個虛擬防火墻。這個時候使用物理接口來對流量進行分類的辦法將在這種情況下不再適用,因為防火墻無法確定流量究竟應該轉發到哪個虛擬防火墻。我們需要使用其他的方法來對流量的走向進行區分,通常我們會使用自動或者手動為這個分配給多個虛擬防火墻的共享接口指定不同的MAC地址,防火墻將使用MAC地址來區分流量的走向。
手動指定MAC地址:
在每個虛擬防火墻的該共享接口下配置:mac-address HHH.HHH.HH
例如:
hostname(config)#Interface F0/0
hostname(config-if)# mac-address 0001.0001.0001
自動指定MAC地址:
在防火墻的SYSTEM平臺的全局配置模式下配置:mac-address auto
例如:
hostname(config)# mac-address auto
3、基于NAT劃分:如果沒有為接口指定唯一的MAC地址,防火墻當收到一個通過共享接口的流量時,防火墻只會檢查目的IP地址。通過要使用目的IP地址來決定數據包的走向,那么防火墻必須知道目的地址是被定位在哪個虛擬防火墻上。NAT技術可以提供這樣的功能。NAT的轉換條目可以使防火墻將數據包轉發到正確的虛擬防火墻上。
配置靜態NAT轉換:
? Context A:
static (inside,shared) 10.10.10.0 10.10.10.0 netmask 255.255.255.0
? Context B:
static (inside,shared) 10.20.10.0 10.20.10.0 netmask 255.255.255.0
? Context C:
static (inside,shared) 10.30.10.0 10.30.10.0 netmask 255.255.255.0
當我們使用多防火墻模式,并且共享了接口到多個虛擬防火墻的時候,我們需要注意將流量轉發到正確的虛擬防火墻上去,如果沒有指定MAC地址(不管是手動還是自動)并且也沒有配置NAT的話,防火墻將不能找到正確的目的地址而將數據包丟棄。
(四)配置虛擬路由器
1、基本配置
#show mode //顯示當前路由器運行的模式
#mode mltiple //啟用多虛擬防火墻
#admin-context name //首先創建一個admin-context虛擬防火墻
#context name //創建其他虛擬防火墻,注意虛擬防火墻名區分大小寫
2、為虛擬防火墻分配接口
先設置好虛擬防火墻名,然后在虛擬防火墻配置模式下配置:
#allocate-interface 物理接口名 [別名] [visible | invisible] //為接口關聯一個別名。也可以不關聯。
#allocate-interface eth0 int0 visible //把eth0劃分給一個虛擬防火墻,并且關聯一個別名叫int0,并且讓物理接口ID是可見的。invisible是不可見。
#config-url url //每個虛擬防火墻有獨立的配置。為虛擬防火墻指定下載配置的地點和名稱。
#config-url c1.cfg //指定配置為c1.cfg
七、防火墻模式
防火墻有兩種模式:路由器模式和透明模式。路由器模式是常用的模式,配置方法如常規方法,這里主要解釋透明模式。
(一) 防火墻的透明模式的特性:
(1)工作在二層,接口不需要配置IP地址;
(2)只支持兩個接口,inside和outside接口,這兩個接口都接內網地址,像交換機的一個端口一樣,沒有區別。
(3)不支持nat,QOS,多播,VPN,動態路由協議,ipv6,dhcp中繼(可作DHCP服務器,但不能做DHCP中繼)
(4)支持多虛擬防火墻。在多虛擬防火墻下,每個虛擬防火墻都需配一個管理IP地址,但不能把管理IP作為網關。
(5)工作在二層,但IP等三層流量要通過防火墻,仍需要ACL訪問控制明確允許
(6)arp流量不需要ACL控制就可以通過防火墻。但可以用ARP審查來控制流量。
(二) 透明防火墻的基本配置
#show firesall //顯示當前防火墻的運行模式
#firewall transparent //啟用透明防火墻模式
#no firewall transparent //返回ROUTE模式
#ip address 192.168.9.1 255.255.255.0 //配置管理IP地址。注意,只是管理IP地址。
注意:在配置透明防火墻的接口時,其他和路由器模式都一樣,但不能配置IP地址。
(三)定制mac表
透明模式的防火墻轉發包就是依據MAC地址進行轉發,學習MAC地址的方法和交換機一樣。默認情況下,每個接口自動學習通過它的流量的MAC地址。然后將響應的MAC地址加入MAC地址表中。可以關掉這個功能,但必須手工加入靜態MAC地址條目到MAC地址表中,否則ASA防火墻將不能轉發任何流量。
#mac-learn int_name disable //int_name是接口名,即關掉哪個接口的MAC自動學習。
#mac-address-table aging-time static int_name mac_address //int_name 指的是接口名, mac_address指的是加入的靜態mac地址。
#mac-address-table aging-time timeout_value //mac地址的超時時間。
(四) arp審查
arp審查可以防止arp欺騙攻擊,當啟用了ARP審查,ASA防火墻會將接收到的ARP包中的mac地址、IP地址和端口號與靜態arp表對比。
如果mac地址、IP地址和端口號與靜態arp表這三項完全相匹配,則轉發包
如果mac地址、IP地址和端口號與靜態arp表(這三項中)有任何一條不匹配,則丟棄包
如果與靜態arp表中任何條目沒有任何匹配,則可設置將包丟棄還是將包flood(洪泛出去)
注意:只與靜態ARP相比較,如果不定義靜態ARP表,那么ARP審查就沒有任何意義了。
1、定義靜態ARP
#arp int_name ip_address mac_address //定義靜態ARP
#arp-inspection int_name enable [flood|no-flood]
#arp outside 10.1.1.11 0009.7cbe.2100 //定義靜態arp,把10.1.1.11和mac地址0009.7cbe.2100 相關聯
#arp-inspection outside enable no-flood //當如果沒有任何匹配時,將丟棄包。 no-flood是丟棄,flood選項是洪泛