前言:
我發現網上的思科ASA資料寫的都不是很詳細,對剛學習思科防火牆的人很不友好,本着
分享自己學習經驗想法,我寫了這一篇文章來講解思科ASA的基本概念和配置。
簡介:
ASA可以將接口划分到三種區域inside,outside,dmz,默認情況下outside與dmz區域的接
口安全級別為0,inside區域的接口安全級別為100。安全級別的作用就是,從高安全級別區域轉
發到低安全級別區域的數據包是被允許的(數值越大安全級別越高)。例如從inside發送到dmz
或outside的數據包默認是允許的,數據包被發送到目的地址后,返回的數據包會根據在ASA中
記錄的連接會話表而被允許返回,但是注意,ICMP發送出去數據包不會被記錄到連接會話表,所
以返回的ICMP數據包需要另外配置acl放行。還要注意的是,如果一個區域應用了acl,那么進入
該區域接口的數據包將按照acl的配置來決定是否允許放行。先不說那么多,讓我們邊配置邊做介
紹吧。
實驗環境:

0.設備的ip地址配置已經按照實驗圖配置完成,配置的命令就不寫了。
1.划分安全區域。
ciscoasa(config)# int g0/0
ciscoasa(config-if)# nameif outside
ciscoasa(config)# int g0/1
ciscoasa(config-if)# nameif inside
ciscoasa(config)# int g0/2
ciscoasa(config-if)# nameif dmz
2.配置nat,讓inside區域的內網主機可以訪問internet。
ciscoasa(config)# object network inside【1】
ciscoasa(config-network-object)# subnet 192.168.10.0 255.255.255.0 【2】
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface 【3】
我們定義了一個網絡對象inside【1】(從思科8.3版本之后就使用對象來定義主機和網絡),在
【2】里面定義了這個網絡對象的子網以及掩碼,也就是我們內網區域的子網。在【3】這里對
該對象進行了nat配置,將從inside到outside數據包的源地址轉化為outside的接口,也就是
G0/0口,這里使用的使用動態地址轉換,OK,nat已經配置完畢,讓我們在pc上ping一下
internet測試一下(internet是由windows主機模擬的,我們關閉的該主機的防火牆,注意我們
不需要為該主機設置網關)。
測試:

奇怪為什么【1】ping不通?回想一下簡介里面有說到的ASA的連接會話表不會記錄ICMP數據
包,所以從inside發送到outside的數據包在返回的時候被ASA拒絕了。怎么讓ICMP數據包在
返回的時候不被拒絕呢?我們設置一條acl就可以解決問題了。
ciscoasa(config)# access-list outside extended permit icmp any 192.168.10.0 255.255
.255.0 【2】
ciscoasa(config)# access-group outside in interface outside 【3】
【2】添加一條acl名為outside,允許any(所有ip)到192.168.10.0/24的ICMP數據包,【3】
將acl應用到進入outside區域的接口上。
重新測試:

現在nat已經配置好了,內網的pc可以訪問外網的所有服務了。
3.配置端口映射,讓dmz的server可以對外提供應用服務。
ciscoasa(config)# object network server
ciscoasa(config-network-object)# host 172.16.1.100 【1】
ciscoasa(config-network-object)# nat (dmz,outside) static interface service tcp
80 80 【2】
跟nat一樣,端口映射也是使用網絡對象的方式進行配置,【1】定義了一個host也就是我
們dmzserver的ip地址。【2】使用靜態的方式將80端口映射到outside區域接口上的80端
口。配置好端口映射之后還不能正常工作,因為此時的dmz與outside區域的安全級別均為
0,安全級別相同的區域是不能互相通信的,還需要配置區域安全級別和配置acl放行從out
side到dmz所需的服務。
ciscoasa(config)# access-list outside extended permit tcp any host 172.16.1.100
eq 80 【1】
ciscoasa(config)# access-group outside-dmz in interface outside 【2】
ciscoasa(config)# int g0/2
ciscoasa(config-if)# security-level 50 【3】
【1】在acl outside新增一條允許any到172.16.1.100的80端口,【2】應用到進入outside
的接口上。將dmz區域的g0/2接口設置為50【3】,為什么要更改呢?因為ASA默認不允許
同安全級別的區域之間互相通信,就算兩邊都放行了acl也無法通信,當然可以使用命令
same-security-traffic permit inter-interface 更改為允許相同安全級別區域互相通信,但是不建
議這樣做。
測試從internet訪問172.16.1.100,因為已經做了映射,所以我們訪問ASA的1.1.1.1就可以訪
問到172.16.1.100了。

結束
inside區域的pc通過nat可以訪問到internet,outside區域的internet也可以訪問到dmz的server了。
其實還可以做一些另外的配置,比如inside訪問到dmz,這個任務就交給你去完成吧。
