一、基本配置
#hostname name //名字的設置
#interface gigabitethernet0/0 //進入接口0/0
#nameif outside //配置接口名爲outside
#security-level 0 //設置安全級別。 級別從0--100,級別越高安全級別越高
#ip address 218.xxx.xxx.xxx 255.255.255.248 //設置外部ip地址
#no shutdown
#interface ethernet0/1 //進入接口0/1
#nameif inside //配置接口名爲inside
#security-level 100 //設置安全級別。 級別從0--100,級別越高安全級別越高
#ip address 192.168.10.1 255.255.255.0 //設置ip地址
#duplex full //全雙工
#speed 100 //速率
#no shutdown
#interface ethernet0/2 //進入接口0/2
#nameif dmz //配置接口名爲dmz
#security-level 50 //設置安全級別。 級別從0--100,級別越高安全級別越高
#ip address 192.168.9.1 255.255.255.0 //設置dmz接口ip地址
#no shutdown
#interface Management0/0 //進入管理接口
# nameif guanli //接口名
# security-level 100 //安全級別
#ip address 192.168.1.1 255.255.255.0 //IP地址
注意:security-level 配置安全級別。默認外網接口爲 0/0 安全級別默認爲 0
內網接口爲 0/1 安全級別默認爲 100
dmz 接口爲 0/2 安全級別默認爲 50
默認情況下,相同安全級別接口之間不允許通信,可以使用以下命令:
#same-security-traffic permit interface //允許相同安全級別接口之間互相通信。
較高安全接口訪問較低安全接口:允許所有基於IP的數據流通過,除非有ACL訪問控制列表,認證或授權的限制。
較低安全接口訪問較高安全接口:除非有conduit或acl進行明確的許可,否則丟棄所有的數據包。
二、global、nat、static、route命令
1、global命令
global (if_name) nat_id ipaddress--ipaddress [netmask mask]
if_name:指的是接口
nat_id:爲地址池的ID標識號
ipaddress--ipaddress [netmask mask]:指定的IP地址池範圍,也可以是一個地址
例:
global(outside) 1 218.106.236.247-218.106.236.249 //配置一個地址池
global(outside) 1 interface //配置單個地址爲outside接口的地址
global(outside) 1 218.106.236.237 netmask 255.255.255.248 //配置一個地址池,爲255.255.255.248所有子網範圍內的地址
2、nat命令
(1)基本用法
nat (if_name) nat_id local_ip [netmask]
if_name:指的是接口
nat_id:爲地址池的ID標識號,即global中定義的nat_id
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版本到防火牆中。
# web*** // 進入WEB×××模式
# 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
彈出一下安全證書對話框,單擊 “是”
輸入用戶名和密碼(就是在串口的WEB×××模式下新建的用戶和密碼),然後點擊“確定”。
出現也下對話框,點擊“Download ASDM Launcher and Start ASDM”開始安裝ASDM管理器,安裝完以後從網上下載一個JAVA虛擬機軟件(使用1.4以上 Java 版本),進入WWW.JAVA.COM下載安裝,安裝完後點擊下面的“Run ASDM as a Java Applet ”。
出現以下對話框, 點擊“是”。
出現以下對話框,輸入用戶名和密碼(就是在串口的WEB×××模式下新建的用戶和密碼),然後點擊“是”。
出現以下對話框,點擊“是”。
進入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、虛擬防火牆不支持***,組播和動態路由協議
(二)虛擬防火牆的種類
虛擬防火牆分爲: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,多播,×××,動態路由協議,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選項是洪泛
本文出自 “網行天下” 博客,http://kuangkuang.blog.51cto.com/838/278598