本文檔提供了Cisco系列安全裝置版本7.x及更高版本的內部和外部介面上的安全外殼(SSH)的示例配置。使用命令列遠端配置Series Security Appliance涉及使用Telnet或SSH。由於Telnet通訊以明文傳送(包括密碼),因此強烈建議使用SSH。SSH流量在隧道中進行加密,從而幫助保護密碼和其他配置命令免受攔截。
安全裝置允許出於管理目的使用安全裝置的SSH連線。安全裝置對於每個安全上下文最多允許五個併發的SSH連線(如果有),而對於所有上下文合在一起全局最多支援100個連線。
在此配置示例中,PIX安全裝置被視為SSH伺服器。從SSH客戶端(10.1.1.2/24和172.16.1.1/16)到SSH伺服器的流量將被加密。安全裝置支援SSH版本1和2中提供的SSH遠端外殼功能,並支援資料加密標準(DES)和3DES密碼。SSH第1版和第2版不同,無法互操作。
本文件沒有特定需求。
本文檔中的資訊基於Cisco PIX防火牆軟體版本7.1和8.0。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
注意:PIX/ASA版本7.x及更高版本支援SSHv2,而早於7.x的版本不支援SSHv2。
此配置還可用於軟體版本為7.x及更高版本的Cisco ASA 5500系列安全裝置。
本節提供用於設定本文件中所述功能的資訊。
注意:每個配置步驟都提供了使用命令列或自適應安全裝置管理器(ASDM)所需的資訊。
注意:使用命令查詢工具(僅限註冊客戶)可以獲取有關本部分使用的命令的更多資訊。
此文件使用以下網路設定:
本檔案使用下列組態:
要配置對安全裝置的SSH訪問,請完成以下步驟:
SSH會話始終需要使用者名稱和密碼進行身份驗證。有兩種方法可以滿足此要求。
配置使用者名稱和密碼並使用AAA:
語法:
pix(config)#username username password password pix(config)#aaa authentication {telnet | ssh | http | serial} console {LOCAL | server_group [LOCAL]}
注意:如果使用TACACS+或RADIUS伺服器組進行身份驗證,則可配置安全裝置,使其在AAA伺服器不可用時使用本地資料庫作為回退方法。指定伺服器群組名稱,然後指定LOCAL (LOCAL區分大小寫)。我們建議在本機資料庫中使用與AAA伺服器相同的使用者名稱和密碼,因為安全裝置提示並未指出使用的是哪種方法。
附註:範例:
pix(config)#aaa authentication ssh console TACACS+ LOCAL
注意:您也可以使用本機資料庫作為主要的驗證方法,而不使用後援。為此,請單獨輸入LOCAL。
範例:
pix(config)#aaa authentication ssh console LOCAL
或
使用預設使用者名稱pix和預設Telnet口令cisco。您可以使用以下命令更改Telnet口令:
pix(config)#passwd password
注意:這種情況下也可以使用password命令。兩個命令執行相同的操作。
為PIX防火牆生成RSA金鑰對,SSH需要此金鑰對:
pix(config)#crypto key generate rsa modulus modulus_size
注意:modulus_size(以位為單位)可以是512、768、1024或2048。指定的金鑰係數越大,生成RSA金鑰對所需的時間就越長。建議使用值1024。
注意:7.x之前的PIX軟體版本中用於生成RSA金鑰對的命令不同。在早期版本中,必須先設定域名,然後才能建立金鑰。
注意:在多情景模式下,您必須為每個情景生成RSA金鑰。此外,系統情景模式不支援加密命令。
指定允許連線到安全裝置的主機。
此命令指定允許透過SSH連線的主機的源地址、網路掩碼和介面。可以多次輸入多個主機、網路或介面。在本例中,允許內部一台主機和外部一台主機。
pix(config)#ssh 172.16.1.1 255.255.255.255 inside pix(config)#ssh 10.1.1.2 255.255.255.255 outside
可選:預設情況下,安全裝置允許SSH版本1和版本2。輸入以下命令可限制與特定版本之間的連線:
pix(config)# ssh version
注意:version_number可以是1或2。
可選:預設情況下,SSH會話在五分鐘不活動後關閉。此超時可以配置為持續1到60分鐘。
pix(config)#ssh timeout minutes
打開SSH會話時,提供PIX 500系列安全裝置的使用者名稱和登入密碼。當您啟動SSH會話時,在SSH使用者身份驗證提示出現之前,安全裝置控制檯上將顯示一個點(.):
hostname(config)# .
網點的顯示不會影響SSH的功能。當生成伺服器金鑰或在SSH金鑰交換期間使用私鑰解密消息,然後進行使用者身份驗證時,控制檯上會顯示點。這些任務最多可能需要兩分鐘或更長時間。圓點是進度指示器,用於驗證安全裝置是否處於忙碌狀態且未掛起。
SSH版本1.x和2是完全不同的協定,並且不相容。下載相容的使用者端。有關詳細資訊,請參閱高級配置的獲取SSH客戶端部分。
本檔案使用以下組態:
PIX配置 |
---|
PIX Version 7.1(1) ! hostname pix enable password 8Ry2YjIyt7RRXU24 encrypted names ! interface Ethernet0 nameif outside security-level 0 ip address 192.168.200.1 255.255.255.0 ! interface Ethernet1 nameif inside security-level 100 ip address 172.16.5.10 255.255.0.0 ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive pager lines 24 mtu outside 1500 mtu inside 1500 no failover icmp permit any outside no asdm history enable arp timeout 14400 route outside 10.1.1.0 255.255.255.0 192.168.200.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 timeout mgcp-pat 0:05:00 sip 0:30:00 sip_media 0:02:00 timeout uauth 0:05:00 absolute !--- AAA for the SSH configuration username ciscouser password 3USUcOPFUiMCO4Jk encrypted aaa authentication ssh console LOCAL http server enable http 172.16.0.0 255.255.0.0 inside no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstar telnet timeout 5 !--- Enter this command for each address or subnet !--- to identify the IP addresses from which !--- the security appliance accepts connections. !--- The security appliance accepts SSH connections from all interfaces. ssh 10.1.1.2 255.255.255.255 outside !--- Allows the users on the host 172.161.1.1 !--- to access the security appliance !--- on the inside interface. ssh 172.16.1.1 255.255.255.255 inside !--- Sets the duration from 1 to 60 minutes !--- (default 5 minutes) that the SSH session can be idle, !--- before the security appliance disconnects the session. ssh timeout 60 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map global_policy class inspection_default inspect dns maximum-length 512 inspect ftp inspect h323 h225 inspect h323 ras inspect netbios inspect rsh inspect rtsp inspect skinny inspect esmtp inspect sqlnet inspect sunrpc inspect tftp inspect sip inspect xdmcp ! service-policy global_policy global Cryptochecksum:a6b05fd04f9fbd0a39f1ca7328de91f7 : end |
注意:要使用SSH訪問ASA/PIX的管理介面,請發出以下命令:ssh 172.16.16.160 255.255.255.255 Management
完成以下步驟,以便使用ASDM配置用於SSH的裝置:
選擇Configuration > Properties > Device Administration > User Accounts,以便用ASDM增加使用者。
選擇Configuration > Properties > Device Access > AAA Access > Authentication,以便用ASDM為SSH設定AAA身份驗證。
選擇Configuration > Properties > Device Administration > Password,以便用ASDM更改Telnet口令。
選擇Configuration > Properties > Certificate > Key Pair,按一下Add,然後使用給出的預設選項,以便用ASDM生成相同的RSA金鑰。
選擇Configuration > Properties > Device Access > Secure Shell,以便用ASDM指定允許透過SSH進行連線的主機,並指定版本和超時選項。
按一下File > Save Running Configuration to Flash,以便儲存配置。
請完成以下步驟:
選擇Configuration > Device Management > Users/AAA > User Accounts,以便用ASDM增加使用者。
選擇Configuration > Device Management > Users/AAA > AAA Access > Authentication,以便用ASDM為SSH設定AAA身份驗證。
選擇Configuration > Device Setup > Device Name/Password,以便用ASDM更改Telnet口令。
選擇Configuration > Device Management > Certificate Management > Identity Certificates,按一下Add並使用給出的預設選項,以便用ASDM生成相同的RSA金鑰。
在Add a new Identity certificate下按一下New,以便增加預設的金鑰對(如果沒有)。然後,按一下Generate Now。
選擇Configuration > Device Management > Management Access > Command Line (CLI) > Secure Shell (SSH),以便用ASDM指定允許透過SSH進行連線的主機,並指定版本和超時選項。
按一下窗口頂部的Save以儲存配置。
當提示在快閃記憶體中儲存配置時,選擇Apply以儲存配置。
要增加對控制檯的Telnet訪問和設定空閒超時,請在全局配置模式下發出telnet命令。預設情況下,安全裝置會關閉閒置5分鐘的Telnet會話。要從以前設定的IP地址中刪除Telnet訪問,請使用此命令的no形式。
telnet {{hostname | IP_address mask interface_name} | {IPv6_address interface_name} | {timeout number}} no telnet {{hostname | IP_address mask interface_name} | {IPv6_address interface_name} | {timeout number}}
使用telnet命令可以指定哪些主機能透過Telnet訪問安全裝置控制檯。
注意:您可以啟用所有介面上的Telnet到安全裝置。但是,安全裝置強制所有到外部介面的Telnet流量都受IPsec保護。要啟用到外部介面的Telnet會話,請在外部介面上配置IPsec以包括安全裝置生成的IP流量,並在外部介面上啟用Telnet。
注意:一般來說,如果任何介面的安全級別為0或更低,則PIX/ASA不會允許Telnet到該介面。
注意:不建議透過Telnet會話訪問安全裝置。身份驗證憑證資訊(如密碼)以明文形式傳送。Telnet伺服器和客戶端的通訊僅以明文形式進行。Cisco建議使用SSH來實現更安全的資料通訊。
如果輸入IP地址,還必須輸入網路掩碼。沒有預設網路掩碼。請勿使用內部網路的子網掩碼。網路掩碼只是IP地址的位掩碼。為了限制對單個IP地址的訪問,請在每個二進位制八位數中使用255;例如,255.255.255.255。
如果IPsec運行,您可以指定不安全的介面名稱,通常是外部介面。最低限度可以配置crypto map命令,以便用telnet命令指定一個介面名稱。
發出password命令,以便為對於控制檯的Telnet訪問設定口令。預設值為cisco。發出who命令,以便檢視當前有哪些IP地址訪問安全裝置控制檯。發出kill命令,以便終止活動的Telnet控制檯會話。
要啟用到內部介面的Telnet會話,請檢視以下示例:
範例 1
本示例僅允許主機10.1.1.1透過Telnet訪問安全裝置控制檯:
pix(config)#telnet 10.1.1.1 255.255.255.255 inside
範例 2
此示例僅允許網路10.0.0.0/8透過Telnet訪問安全裝置控制檯:
pix(config)#telnet 10.0.0.0 255.0.0.0 inside
範例 3
此示例允許所有網路透過Telnet訪問安全裝置控制檯:
pix(config)#telnet 0.0.0.0 0.0.0.0 inside
如果使用帶有console關鍵字的aaa命令,則必須用身份驗證伺服器對Telnet控制檯訪問進行身份驗證。
注意:如果配置了aaa命令,要求對安全裝置Telnet控制檯訪問進行身份驗證,並且控制檯登入請求超時,則可以從串列控制檯訪問安全裝置。為此,請輸入用enable password命令設定的安全裝置使用者名稱和口令。
發出telnet timeout命令,以便設定安全裝置註銷控制檯Telnet會話之前該會話可處於空閒狀態的最長時間。不能將no telnet命令與telnet timeout命令配合使用。
此示例說明如何更改會話空閒持續時間上限:
hostname(config)#telnet timeout 10 hostname(config)#show running-config telnet timeout telnet timeout 10 minutes
如果您檢視RADIUS功能,則可以使用RADIUS作為SSH功能。
當嘗試使用Telnet、SSH、HTTP或串列控制檯連線訪問安全裝置,且流量與身份驗證語句匹配時,安全裝置將請求使用者名稱和密碼。然後它將這些憑證傳送到RADIUS (ACS)伺服器,並根據伺服器的回應來授權或拒絕CLI存取。
有關詳細資訊,請參閱配置AAA伺服器和本地資料庫的AAA伺服器和本地資料庫支援部分。
例如,ASA安全裝置7.0需要安全裝置接受連線的IP地址,例如:
hostname(config)#ssh source_IP_address mask source_interface
有關詳細資訊,請參閱配置AAA伺服器和本地資料庫的允許SSH訪問部分。
有關如何配置對PIX帶有ACS身份驗證的SSH/Telnet訪問的詳細資訊,請參閱PIX/ASA:使用TACACS+和RADIUS伺服器進行網路訪問的直通代理配置示例。
使用本節內容,確認您的組態是否正常運作。
輸出直譯器工具(僅供註冊客戶使用) (OIT)支援某些show指令。使用OIT可檢視對show命令輸出的分析。
發出debug ssh命令以打開SSH調試。
pix(config)#debug ssh SSH debugging on
此輸出顯示,從主機10.1.1.2(外部到PIX)到「pix」的身份驗證請求成功:
pix# Device ssh opened successfully. SSH0: SSH client: IP = '10.1.1.2' interface # = 1 SSH: host key initialised SSH0: starting SSH control process SSH0: Exchanging versions - SSH-1.99-Cisco-1.25 SSH0: send SSH message: outdata is NULL server version string:SSH-1.99-Cisco-1.25SSH0: receive SSH message: 83 (83) SSH0: client version is - SSH-1.99-3.2.0 SSH Secure Shell for Windows client version string:SSH-1.99-3.2.0 SSH Secure Shell for WindowsSSH0: begin ser ver key generation SSH0: complete server key generation, elapsed time = 1760 ms SSH2 0: SSH2_MSG_KEXINIT sent SSH2 0: SSH2_MSG_KEXINIT received SSH2: kex: client->server aes128-cbc hmac-md5 none SSH2: kex: server->client aes128-cbc hmac-md5 none SSH2 0: expecting SSH2_MSG_KEXDH_INIT SSH2 0: SSH2_MSG_KEXDH_INIT received SSH2 0: signature length 143 SSH2: kex_derive_keys complete SSH2 0: newkeys: mode 1 SSH2 0: SSH2_MSG_NEWKEYS sent SSH2 0: waiting for SSH2_MSG_NEWKEYS SSH2 0: newkeys: mode 0 SSH2 0: SSH2_MSG_NEWKEYS receivedSSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH2 0: authentication successful for pix !--- Authentication for the PIX was successful. SSH2 0: channel open request SSH2 0: pty-req request SSH2 0: requested tty: vt100, height 25, width 80 SSH2 0: shell request SSH2 0: shell message received
如果使用者提供了錯誤的使用者名稱,例如「pix1」而不是「pix」,則PIX防火牆將拒絕身份驗證。以下調試輸出顯示了失敗的身份驗證:
pix# Device ssh opened successfully. SSH0: SSH client: IP = '10.1.1.2' interface # = 1 SSH: host key initialised SSH0: starting SSH control process SSH0: Exchanging versions - SSH-1.99-Cisco-1.25 SSH0: send SSH message: outdata is NULL server version string:SSH-1.99-Cisco-1.25SSH0: receive SSH message: 83 (83) SSH0: client version is - SSH-1.99-3.2.0 SSH Secure Shell for Windows client version string:SSH-1.99-3.2.0 SSH Secure Shell for WindowsSSH0: begin server key generation SSH0: complete server key generation, elapsed time = 1960 ms SSH2 0: SSH2_MSG_KEXINIT sent SSH2 0: SSH2_MSG_KEXINIT received SSH2: kex: client->server aes128-cbc hmac-md5 none SSH2: kex: server->client aes128-cbc hmac-md5 none SSH2 0: expecting SSH2_MSG_KEXDH_INIT SSH2 0: SSH2_MSG_KEXDH_INIT received SSH2 0: signature length 143 SSH2: kex_derive_keys complete SSH2 0: newkeys: mode 1 SSH2 0: SSH2_MSG_NEWKEYS sent SSH2 0: waiting for SSH2_MSG_NEWKEYS SSH2 0: newkeys: mode 0 SSH2 0: SSH2_MSG_NEWKEYS receivedSSH(pix1): user authen method is 'no AAA', aaa server group ID = 0 SSH(pix1): user authen method is 'no AAA', aaa server group ID = 0 SSH2 0: authentication failed for pix1 !--- Authentication for pix1 was not successful due to the wrong username.
同樣地,如果使用者提供錯誤的密碼,此偵錯輸出會顯示失敗的驗證。
pix# Device ssh opened successfully. SSH0: SSH client: IP = '10.1.1.2' interface # = 1 SSH: host key initialised SSH0: starting SSH control process SSH0: Exchanging versions - SSH-1.99-Cisco-1.25 SSH0: send SSH message: outdata is NULL server version string: SSH-1.99-Cisco-1.25SSH0: receive SSH message: 83 (83) SSH0: client version is - SSH-1.99-3.2.0 SSH Secure Shell for Windows client version string:SSH-1.99-3.2.0 SSH Secure Shell for WindowsSSH0: begin server key generation SSH0: complete server key generation, elapsed time = 1920 ms SSH2 0: SSH2_MSG_KEXINIT sent SSH2 0: SSH2_MSG_KEXINIT received SSH2: kex: client->server aes128-cbc hmac-md5 none SSH2: kex: server->client aes128-cbc hmac-md5 none SSH2 0: expecting SSH2_MSG_KEXDH_INIT SSH2 0: SSH2_MSG_KEXDH_INIT received SSH2 0: signature length 143 SSH2: kex_derive_keys complete SSH2 0: newkeys: mode 1 SSH2 0: SSH2_MSG_NEWKEYS sent SSH2 0: waiting for SSH2_MSG_NEWKEYS SSH2 0: newkeys: mode 0 SSH2 0: SSH2_MSG_NEWKEYS receivedSSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH2 0: authentication failed for pixSSH(pix): user authen method is 'no AAA', aaa server group ID = 0 SSH2 0: authentication failed for pix !--- Authentication for PIX was not successful due to the wrong password.
發出以下命令,以檢視連線的SSH會話數以及到PIX的連線狀態:
pix#show ssh session SID Client IP Version Mode Encryption Hmac State Username 0 10.1.1.2 1.99 IN aes128-cbc md5 SessionStarted pix OUT aes128-cbc md5 SessionStarted pix
選擇Monitoring > Properties > Device Access > Secure Shell Sessions,以便用ASDM檢視會話。
發出以下命令,以檢視安全裝置上RSA金鑰的公開部分:
pix#show crypto key mypubkey rsa Key pair was generated at: 19:36:28 UTC May 19 2006 Key name: <Default-RSA-Key> Usage: General Purpose Key Modulus Size (bits): 1024 Key Data: 30819f30 0d06092a 864886f7 0d010101 05000381 8d003081 89028181 00c172f4 95f66c34 2c2ced37 aa3442d8 12158c93 131480dd 967985ab 1d7b92d9 5290f695 8e9b5b0d d88c0439 6169184c d8fb951c 19023347 d6b3f939 99ac2814 950f4422 69b67328 f64916b1 82e15341 07590da2 390fbefd 38758888 7319196c de61aef1 165c4bab 03d081d5 ddaf15cc c9ddb204 c2b451e0 f19ce0f3 485b1d69 8b020301 0001
選擇Configuration > Properties > Certificate > Key Pair,然後按一下Show Details,以便用ASDM檢視RSA金鑰。
本節提供的資訊可用於對組態進行疑難排解。
某些情況下,例如升級PIX軟體或更改PIX中的SSH版本時,可能需要刪除並重新建立RSA金鑰。發出以下命令以從PIX中刪除RSA金鑰對:
pix(config)#crypto key zeroize rsa
選擇Configuration > Properties > Certificate > Key Pair,然後按一下Delete,以便用ASDM刪除RSA金鑰。
PIX/ASA上的錯誤消息:
%PIX|ASA-3-315004: Fail to establish SSH session because RSA host key retrieval failed.
SSH客戶端電腦上的相應錯誤消息:
Selected cipher typenot supported by server.
為了解決此問題,請刪除並重新建立RSA金鑰。發出以下命令以從ASA中刪除RSA金鑰對:
ASA(config)#crypto key zeroize rsa
發出以下命令,以生成新金鑰:
ASA(config)# crypto key generate rsa modulus 1024
錯誤訊息:
ssh_exchange_identification: read: Connection reset by peer
若要解決此問題,請完成以下步驟:
重新載入ASA或刪除所有與SSH相關的配置和RSA金鑰。
重新配置SSH命令並重新生成RSA金鑰。
當ASA處於故障切換模式時,無法通過VPN隧道SSH連線到備用ASA。這是因為SSH的應答流量會使用備用ASA的外部介面。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
10-Mar-2006 |
初始版本 |