■ 河南 許紅軍
編者按:在企業(yè)網(wǎng)絡(luò)環(huán)境,用戶可能經(jīng)常需要訪問各種服務(wù)器資源,默認(rèn)情況下防火墻并不了解用戶身份信息,因此就無法基于該信息創(chuàng)建安全策略。為了配置基于用戶的訪問控制,傳統(tǒng)方式需要配置用戶認(rèn)證代理,必須得到用戶的參與。這樣,用戶在登錄時帶來很不友好的使用體驗。利用ASA防火墻提供的基于用戶的認(rèn)證機(jī)制可以輕松擺脫繁瑣操作,讓用戶訪問變得更加順暢。
當(dāng)用戶開機(jī)時,需要輸入自己的域賬戶名稱和密碼,對于ASA防火墻來說,必須放行登錄域的流量,這樣用戶就可以順利登錄到域環(huán)境。
利用AD Agent服務(wù)(該服務(wù)可以安裝到DC上或者獨(dú)立的服務(wù)器中),可以通過WMI訪問域控來提取所有賬戶的登入登出信息,包括用戶名和對應(yīng)的IP等,了解到用戶的登錄和注銷情況。之后AD Agent可以發(fā)起RADIUS服務(wù),讓ASA防火墻通過AD Agent得到登錄到域的用戶名稱和IP的映射關(guān)系。
這樣,ASA就可以基于用戶創(chuàng)建訪問控制規(guī)則。當(dāng)客戶穿越ASA防火墻時,就無需進(jìn)行重復(fù)認(rèn)證了。當(dāng)然,對于ASA來說,一般不會僅僅通過用戶創(chuàng)建策略,而是針對組進(jìn)行策略控制。ASA可以通過LDAP協(xié)議從域控上提取和用戶相關(guān)的組信息。有了用戶名以及其隸屬的組和IP信息,就可以在ASA上進(jìn)行有效控制了。利用基于用戶的訪問控制,可以讓安全策略與網(wǎng)絡(luò)拓?fù)涿擇?,減緩安全策略的創(chuàng)建過程,輕松識別用戶對網(wǎng)絡(luò)資源的訪問活動,簡化用戶活動的監(jiān)控。
這里使用簡單的實驗環(huán)境來說明如何在ASA上實現(xiàn)基于用戶的訪問控制。
這里存在一臺AS防火墻,AD域控和AD Agent服務(wù)器連接帶DMZ區(qū)域,其IP分別為192.168.1.2和192.168.1.20。這些設(shè)備連接到ASA的GigabitEthernet 0/2接口上,該接口IP為192.168.1.10,在Inside區(qū)域存在一臺客戶機(jī),其IP為10.1.1.1,連接到ASA的GigabitEthernet 0/1接口上,該接口IP為10.1.1.10。在OutSide區(qū)域存在一些外部的主機(jī),其IP隸屬于202.100.1.0/24網(wǎng)段。連接到ASA的GigabitEthernet 0/0接口上,該接口IP為202.1..1.10。
在ASA上執(zhí)行:
aaa authentication ssh console LOCAL
ssh 0.0.0.0 0.0.0.0 Inside
ssh timeout 60
u s e r n a m e a d m i n password xxx
privilege
policy-map global_policy
class inspection_default
inspect icmp
在ASA上開啟SSH管理功能,“xxx”為具體的密碼,并設(shè)置默認(rèn)的管理策略。
執(zhí)行命令:
config t
a c c e s s-l i s t d m z permit icmp any any
access-group dmz in Interface dmz
放行內(nèi)網(wǎng)主機(jī)到DMZ的流量,讓內(nèi)網(wǎng)用戶探測到域控主機(jī)。
為了便于說明,先登錄到域控上,在域控上安裝了DNS服務(wù)。打開Active Directory用戶和計算機(jī)窗口,在其中創(chuàng)建名為“ASAfhq”的 OU,在其中創(chuàng)建名為“ADGrp”的組,在該組中包含所需的域賬戶(例如“user1”等)。
在ASA上執(zhí)行“domainname xxx.com”命令,配置對應(yīng)的域名信息,這里為“xxx.com”。然后執(zhí)行“dns domain-lookup DMZ”命令,在DMZ接口上啟動域名查找功能。
執(zhí)行以下命令,指定DNS服務(wù)器所在的IP:
dns server-group DefaultDNS
n a m e-s e r v e r 192.168.1.2
domain-name xxx.com
exit
之后執(zhí)行“ping xxx.com”命令,可以探測到域控。執(zhí) 行“aaa-server TPLAD protocol ldap”命令,通過LDAP來調(diào)用域的信息。
執(zhí)行命令:
aaa-server TPLAD(DMZ)host 192.168.1.2
server-port 389
ldap-base-dn DC=xxx,DC=com
ldap-scope subtree
ldap-naming-attribute aAMAccountName
ldap-login-password hello@123
ldap-login-dn cn=admi nistrator,cn=users,dc=xx x,dc=com
server-type microsoft
exit
上述命令依次實現(xiàn)指定基本的域名,并設(shè)置LDAP的端口號,從基礎(chǔ)域名開始的所有子樹執(zhí)行搜索操作,提取活動目錄數(shù)據(jù)庫中用戶名信息,輸入管理員賬號和密碼,這里為“hello@123”,最后指定服務(wù)器類型為微軟。
其中的“TPLAD”為連接的LDAP服務(wù)器的名稱,該名稱可以自定義。
為了檢測設(shè)置是否正確,可以在ASA上執(zhí)行“test aaa authentication TPLAD”命令,按照提示提示輸入域控 的 IP,在“Username”欄中輸入預(yù)設(shè)的賬戶名(例如“user1”),在“password”欄中輸入其密碼。
在測試完成后,如果顯示“INFO:Authentication Successful”字樣,則說明LDAP關(guān)聯(lián)成功,可以順利提取雨中的賬戶信息。
在AD Agent主 機(jī)上打開CMD窗口,進(jìn)入“C:IBFCLI”目 錄,執(zhí) 行“adactrl show running”命令,顯示AD Agent的運(yùn)行狀態(tài)。 執(zhí) 行“adacfg client create -name ASAFANG -ip 192.168.1.0/24 -secret p@ssword”命令,將自身作為RADIUS服務(wù)器,創(chuàng)建一個3A 客戶端,為其起一個名稱,設(shè)定其IP范圍。其名稱為“ASAFANG”,密碼為“p@ssword”。這樣,就可以讓ASA防火墻通過RADIUS來定位AD Agent。
執(zhí)行“adacfg dc create-name TPLAD -host ad.xxx.com domain xxx.com -user administrator -password hello1123”命令,創(chuàng)建和域的鏈接,鏈接的名稱為“TPLAD”。并指定域管理員賬戶名和密碼,其中的“ad.xxx.com”為域控的名稱,執(zhí)行“adacfg dc list”命令,查看和域的連接狀態(tài)。執(zhí)行“adacfg syslog create–name logserver -ip 192.168.1.20”命令,在AD Agent主機(jī)上創(chuàng)建Syslog日志服務(wù)器,并指定其名稱,這樣可以記錄各種日志信息。
在域控上打開組策略管理器,然后在左側(cè)依次選擇“林”→“域”→“xxx.com” →“Domain Controllers” →“Default Domain Controllers Policy”項,在其右鍵菜單上點(diǎn)擊“編輯”選項,在打開窗口中依次選擇“計算機(jī)配置”→“Windows設(shè)置”→“安全設(shè)置”→“本地策略”→“審核策略”項,在右側(cè)雙擊“審核賬戶登錄事件”選項,在其屬性窗口中可有選擇“定義這些策略設(shè)置”、“成功”和“失敗”項。然后點(diǎn)擊“確定”按鈕,激活登錄事件審核功能。
然后在ASA上執(zhí)行:
aaa-server adagent protocol radius
ad-agent-mode
aaa-server adagent(DMZ) host 192.168.1.20
key p@ssword
exit
讓ASA通過RADUIU和ADAGent建立關(guān)聯(lián),注意,這里的密鑰需要和上述命令保持一致。執(zhí)行“useridentity ad-agent aaa-server adagent”命令,讓ASA可以可以從ADAgent上提取用戶信息。
其中的“adagent”選項為具體的RADIUS服務(wù)器名稱。為了檢測其效果,可以執(zhí)行“test aaa-server adagent adagent”命令,然后輸入AD Agent主機(jī)的IP。
當(dāng)測試完成后,如果顯示的是“INFO:Ad-agent Successful”字樣,則說明ASA和AD Agent主機(jī)關(guān)聯(lián)成功。
在域控上打開Active Directory域和信任關(guān)系窗口,在左側(cè)選擇“Active Directory域和信任關(guān)系”項,在右側(cè)選擇“xxx.com”項,在其右鍵菜單中點(diǎn)擊“屬性”項,在打開窗口中的“常規(guī)”面板中的“域名”欄中查看域控的NETBIOS Name,注意其區(qū)分大小寫,這里假設(shè)為“XXX”。
有了該信息后,在ASA上 執(zhí) 行“user-identity domain XXX aaa-server TPLAD”,“user-idemtity default-domain XXX”命令,讓ASA可以順利的從域控上提取賬戶信息,因為從AD Agent從域控上獲取的賬戶名 稱 實 際 為“XXX/user1”之類的,ASA從其中得到域名的NETBIOS名稱(這里為“XXX”),并根據(jù)該名稱從指定的域控中尋找對應(yīng)的用戶信息。如果用戶沒有該前綴信息,就認(rèn)為屬于指定的域。
這里為了簡單起見,均指定了相同的域的NETBISO名 稱。 執(zhí) 行“show useridentity user active domain XXX list detail”命令,會顯示在AD Agent主機(jī)上獲取的域控上的用戶登錄信息,包括賬戶名和IP關(guān)聯(lián)信息。
在ASA上執(zhí)行:
axcess-list in deny icmp user XXXuser1 any any
access-list in permit icmp any any
access-group in in inteface Inside
可以基于用戶創(chuàng)建訪問列表,禁止指定的用戶(這里為“user1”)執(zhí)行Ping探測操作。
如果想基于組進(jìn)行訪問控制,可以將上述語句修 改 為“axcess-list in deny icmp user-group XXX\ADGrp any any” 命令,就可以對指定組(這里為“ADGrp”)中的所有賬戶賬戶進(jìn)行控制。當(dāng)然,也可以執(zhí)行:
object-group user Adgroup1
user-group XXX\ADGrp
exit
創(chuàng) 建 名 為“ADgroup1”的Object-Group。 執(zhí)行“access-list line 1 deny icmp object-groupuser Adgroup1 any host 192.168.1.2”命令,也可以實現(xiàn)針對組的訪問控制操作。