實驗 4 : layer 3 路由器裝置之安全性設定與操作

20
國國國國國國國國 國國國 國國國國 國國 4 Layer 3 國國國國國國國國國國國國國國

Upload: demi

Post on 15-Mar-2016

126 views

Category:

Documents


6 download

DESCRIPTION

實驗 4 : Layer 3 路由器裝置之安全性設定與操作. 前言. 本實驗講解如何增加路由器的安全性,設置一個安全的路由器可透過設置密碼、存取控制清單、設定管理者專屬的帳號與相對應的權限、採用安全的遠端連線管理、加強使用遠端連線管理路由器時的安全性、使用需要認證的路由協定、關閉不需要使用的服務等,將可能存在的弱點降至最少,減少被攻擊者入侵的機會。 實驗設備: Cisco 2800 Series * 2. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操作

Page 2: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

2

前言 本實驗講解如何增加路由器的安全性,設置一個安全的路由器可透過設置密碼、存取控制清單、設定管理者專屬的帳號與相對應的權限、採用安全的遠端連線管理、加強使用遠端連線管理路由器時的安全性、使用需要認證的路由協定、關閉不需要使用的服務等,將可能存在的弱點降至最少,減少被攻擊者入侵的機會。 實驗設備:

Cisco 2800 Series * 2

Page 3: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

3

Controlling TTYs

通常放置路由器放置的地方,只有相關人士可以進入,因此我們可以認為這樣具有某種程度的安全性,但是路由器預設利用 TTY 方式連接路由器時可直接登入,意即任何可以進入路由器所放置的地方的人都可利用 TTY 方式進入路由器操作,因此我們應該在路由器上設置密碼來限制可登入路由器的人員。 Configure the console port password

Router(config)#line console line-number line-number : Numbering begins with zero Router(config-line)#login # Enables password checking at loginRouter(config-line)#password password

Configure the AUX port passwordRouter(config)#line aux line-number Router(config-line)#login Router(config-line)#password password

Router(config)#line console 0Router(config-line)#loginRouter(config-line)#password consoleLogin

設定經由 console 登入時所用的密碼console

Router(config)#line aux 0Router(config-line)#loginRouter(config-line)#password auxLogin

設定經由 AUX 登入時所用的密碼AUX

Page 4: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

4

Controlling VTYs

在路由器上,預設是不允許任何的 VTY 連線的,但通常我們都是透過 VTY 來操作路由器,因此若要使用,必須輸入下列指令才可利用 VTY 連線。 Configure VTY password

Router(config)#line vty start-line-number end-line-number Router(config-line)#loginRouter(config-line)#password password

雖然經由上述指令,我們可以經由 VTY 連入路由器,但實際上我們不會用到所有支援的協定連入路由器,因此我們可以用下列指令來限制只允許使用哪些 VTY 協定連入路由器:Router(config-line)#transport input {all | lat | mop | nasi | none | pad | rlogin

| ssh | telnet | v120} # To specify multiple protocols, enter the keyword for

each protocol, separated by a space

Router(config)#line vty 0 4Router(config-line)#loginRouter(config-line)#password vtyLogin

設定經由 VTY 登入時所用的密碼Internet

All vty protocols can

be used.

Router(config)#line vty 0 4Router(config-line)#loginRouter(config-line)#transport input telnetRouter(config-line)#password vtyLogin

設定只允許使用 Telnet 登入

Router(config)#line vty 0 4Router(config-line)#loginRouter(config-line)#transport input telnet sshRouter(config-line)#password vtyLogin

設定允許使用 Telnet 及 SSH 登入

Page 5: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

5

Controlling VTYs

用 ACL 限制可以連線的 IP 位址Router(config)#access-list access-list-number {deny | permit | remark

line} source[source-wildcard] [log]

Router(config-if)#ip access-group {access-list-number | access-list-name}

{in | out} # Specify the access list interface

Router(config)#access-list 1 deny 192.168.1.10Router(config)#access-list 1 permit 192.168.0.0 0.0.255.255

設定 ACL

Router(config-ig)# ip access-group 1 in

將 ACL 配置在介面上

192.168.1.10 is blocked!

192.168.1.10

192.168.1.20

Page 6: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

6

Password Encryption

密碼是我們用來控制存取路由器最重要的部份,因此保護密碼不被他人知道也是相當重要的。 將進入 priviledged EXEC level 的密碼加密:

Router(config)#enable secret password

將設定檔中未加密的密碼做加密Router(config)#service password-encryption # 可從圖 2 與圖 3 看出下指令前後的不同。

Router(config)# enable secret loginPrivelegeRouter(config)# exitRouter# show running-configenable secret 5 1$cXqE$Iru8kpcgfOgCf1/k89mgp.enable password privilegeLogin

Router(config)# service password-encryption Router(config)# exitRouter# show running-configenable secret 5 1$cXqE$Iru8kpcgfOgCf1/k89mgp.enable password 7 08315E471F100912150E200B2D222Aline con 0 password 7 121A0A1901040001062423213D loginline vty 0 4 password 7 15041F1528252C2D26 login

圖 3

圖 1

Router# show running-configenable password privilegeLogin !line con 0password consoleLogin loginline vty 0 4 password vtyLogin login

圖2

Page 7: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

7

Password Minimum Length Enforcement

前面我們提到以將密碼做加密的動作來保護密碼本身,但若是密碼本身長度太短,即使加密也有安全性不足的問題,因此可透過以下指令限制密碼長度至少應有幾個字元,如左圖 1 :Router(config)#

security passwords min-length length

length :密碼所應設的最短長度輸入此指令後影響的範圍有

user passwords enable passwords enable secrets line passwords

上述密碼在輸入此指令後,要新設定或更改密碼密碼時,若長度如果少於設定值的話則會失敗,如左圖 2 。在輸入此指令前所設定的密碼不受影響。

Router(config)#security passwords min-length 6圖 1

Router(config)# enable password lab%Password too short - must be at least 6 characters.

Password not configured.

圖2

Set password “lab”

Forbidden! Password too short!

Page 8: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

8

Securing ROMMON with the no password –recovery command

當使用者遺忘密碼時, Cisco 路由器預設能夠讓使用者在路由器開機時進入 ROMMON mode ,在這模式下可以使用 Cisco password recovery procedure 重新設定密碼而不更動路由器上其它的設定。這個功能造成了一個潛在的危險,任何可以接觸到路由器實體的人,都能夠經由Cisco password recovery procedure 去重設路由器上的密碼,並得到完整的路由器設定資訊。

可以輸入下列指令預防任何可以接觸到路由器實體的人進行 Cisco password recovery procedure 的動作:

router(config)#no service password-recovery 輸入該指令後便不能進入 ROMMON 中,因此就無法進行 Cisco password recovery procedure 。另外要注意由於無法進入 ROMMON 中,因此若快閃記憶體 (Flash memory) 中的 IOS image異常時,便無法使用 ROMMON XMODEM command 下載新的 IOS image回來。 詳細的 Cisco password recovery procedure 可參考

http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_tech_note09186a00801746e6.shtml

Router(config)#no service password-recoveryWARNING:Executing this command will disable password

recovery mechanism. Do not execute this command without another plan for password recovery.

Are you sure you want to continue? [yes/no]: yes

console

Try to do password recovery.

Forbidden!

Page 9: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

9

Remote Configuration using SSH

遠端連線管理是很有效的一種方式,但是因為用 Telnet 遠端登入時,所輸入的密碼是以明文的方式傳送,若被有心人士竊聽的話,便可利用竊聽到的密碼登入路由器當中變更設定。因此為了提高安全性,可以限制使用者只能使用SSH (Secure Shell) 的方式遠端登入伺服器。

要在路由器上啟動 SSH 登入,必需設定以下參數:1. Hostname

2. Domain-name

3. Asymmetrical keys

4. SSH timeouts and authentication retries

5. Local authentication Username and password Remote login only using SSH

6. Version

Router(config)#hostname hostname

Router(config)#ip domain-name domain-name

Router(config)#crypto key generate rsa

Router(config)#ip ssh time-out secondsRouter(config)#ip ssh authentication-retries tries

Router(config)#username username password password 建立遠端登入所用的帳號、密碼

Router(config)#line vty 0 4Router(config)#transport input {all | lat | mop | nasi | none |

pad | rlogin | ssh | telnet | v120} 設定允許使用的登入方式

Router(config-line)#login {local | tacacs} 使用路由器上設定檔中所設定的帳號、密碼認證,或是經由 tacacs 來做認證

Router(config)#ip ssh verison verison version : 1or 2

1.

2.

3.

4.

6.

5.

Page 10: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

10

Remote Configuration using SSH

1. 將路由器名稱命名為 cisco2600

2. 將網域名稱設為 cisco.com

3. 產生 rsa 的金鑰,打入 crypto key generate rsa 指令,會詢問金鑰的長度要設為多少,預設是 512 bits ,可設定 的 值為 512 ~ 2048 bits 。若 在打入 crypto key generate rsa 前末指定路由器的名稱與網域名稱的話無法產生金鑰,會出現以下訊息。

% Please define a hostname other than Router.% Please define a domain-name first.

4. 設定 time-out 的時間為 15秒以及登入嘗試失敗的次為2 ,此兩項設定必須在產生金鑰後才可設定,在金鑰未產生前輸入指令會產生下列訊息。

Please create RSA keys to enable SSH.

5. 設定遠端連線的方式只能利用 SSH ,並根據路由器上所設定的使用者帳號、密碼來做認證,在這我們所設的帳號為 student ,密碼為 cisco 。6. SSH 的版本有 1 和 2 這兩種版本,而版本 1 存在某些弱點,因此在這我們設定使用較為安全的版本 2 。SSH 設定影片

Page 11: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

11

Setting Login Enhancement

接下來的內容,著重在使用者利用遠端連線登入系統時,由於安全性的考量而增設一些登入限制,藉此減緩字典攻擊的速度以及 DoS 攻擊。採取的方法有: Delay between successive login attempts Login shutdown if DoS attacks are suspected Generation of system logging messages for login

detection

Setting a Login Failure Blocking Period 設定若使用者在短時間中連續登入失敗超過允許的次數,路由器會進入 quiet mode ,此時路由器會根據設定值拒絕所有嘗試登入的連線一段時間,只有使用 login quiet-mode access-class 所指定的

ACL 當中的 IP 位址可以連線。router(config)#login block-for seconds attempts tries within secondsseconds : 拒絕連線的時間長度 tries : 最大嘗試次數seconds :在多少的時間內 如果只使用 login block-for 而不接後面參數的話,則預設的拒絕連線時間為 1秒。router(config)#

login block-for

Router(config)# login block-for 100 attempts 3 within 50

若在 50秒內同一 IP位址發生 3 次登入失敗的動作,則在 100秒內拒絕所有的連線,只有在例外清單當中的 IP位址可以連線。

當路由器進入 quiet mode 時所產生的訊息:00:04:07:%SEC_LOGIN-1-QUIET_MODE_ON:Still timeleft for watching failures is 158 seconds, [user:sfd] [Source:192.168.1.10] [localport:23] [Reason:Invalid login], [ACL:22] at 16:17:23 UTC Wed Feb 26 2007

At most 3 login attempts within

50 seconds.Login failure 3 times within 50

seconds.

blocked

Page 12: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

12

Setting Login Enhancement

Excluding Addresses from Login Blocking 前面設定若在短時間內,登入失敗的次數超過設定值,則拒絕連線一段時間。而在這裡,我們要設定一個例外清單,使得在清單中的 IP 位址能夠不受此限制。router(config)#

login quiet-mode access-class {acl-name | acl-number}

如左圖,假設目前路由器處在 quiet mode ,我們設定一個 ACL 只允許 192.168.1.10 可以在路由器處於 quiet mode 時可以與路由器做登入的動作。

資料來源 http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cg/hsec_c/part30/h_login.htm

Router(config)# access-list 10 permit 192.168.1.10

Router(config)# login quiet-mode access-class 10

Router(config)# ip access-list standard exclude1

Router(config-std-nacl)#permit 192.168.1.10

Router(config)# login quiet-mode access-class exclude1

router(config)#login quiet-mode access-class acl-name

router(config)#login quiet-mode access-class acl-number

192.168.1.5

192.168.1.10

Quiet mode

Page 13: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

13

Setting Login Enhancement

Setting a Login Delay 設定每次登入嘗試所需等待的時間router(config)#login delay seconds

如果先前有使用 login-block for 的指令,之後沒有使用login delay 的指令,則預設的等待延遲時間為 1秒。

Logging Messages of Login Success/Failure 紀錄下登入成功與失敗的紀錄,用來事後追蹤有哪些人登入過路由器或是判斷是否有人在對路由器攻擊。Router(config)#login on-failure log [every login]Router(config)#login on-success log [every login]

Setting Login Time-out 為了避免閒置的連線佔用 VTY 連線資源,以及避免管理者因某些原因離開而未將連線中斷而被他人利用,所以我們設定一個連線如果多久的時間沒有任何的動作,即強制斷線。

Router(config-line)# exec-timeout minutes [seconds]

Waiting for 30 seconds.

blocked

Router(config)# login delay 30

Login failure.

Router(config)# login on-failure log

Router(config)# login on-failure log every 5

Router(config)#line console 0

Router(config-time)#exec-timeout 2 30

設定經由 console 登入時,閒置 2 分 30秒即斷線

Router(config)#line vty 0 4

Router(config-time)#exec-timeout 0 30

設定經由 VTY 登入時,閒置 30秒即斷線

Page 14: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

14

Setting router privileges and accounts

在路由器上設定不同的 privilege levels 來限制使用者使用所能夠使用的路由器指令,或是在路由器上建立不同的使用者帳號,在使用者用各自的帳號登入時,將登入紀錄及修改路由器設定時紀錄下來。 在 Cisco IOS 有 16 個 privilege levels (0~15) ,

level 0 限制最多, level 15 限制最少。在 IOS中預設有兩個 privilege levels ,分別為 user EXEC mode (level 1) 以及 privilege EXEC mode (level 15) 。每個 IOS 的命令也預設分為 level 1或 level 15 , level 1 預設只能夠使用少數命令而已,如左圖,而 level 15 可使用所有的指令。

除了預設的兩個層級外,我們可以自行設定額外的 privilege levels 去指定能夠使用哪些命令。設定額外的 privilege level 是為了根據使用者權限的不同,設定不同的層級來限制使用者可使用的命令,可在安全考量與便利性下取得平衡。

Page 15: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

15

Setting router privileges and accounts

Setting Multiple Privilege Levels 自定各 privilege level 能夠使用哪些指令Router(config)#pprivilege mode {level level command | reset command}level : Levels 2-14 may be customized for user-level

priviledges

設定進入自訂的 privilege levels 的密碼Router(config)#enable secret level level [encryption-tpe] password-

string

進入特定的 privilege levelRouter>enable [privilege-level] Privilege-level : If this argument is not specified, the

privilege level defaults to level 15 (traditional enable privileges).

Router(config)# privilege exec level 2 ping

Router(config)# enable secret level 2 pass2

Router(config)# privilege exec level 15 show logging

Router(config)# privilege exec level 15 access-lists

Router(config)# privilege exec level 15 rlogin

Router(config)# privilege exec level 15 telnet

Router(config)# privilege exec level 15 connect

Router(config)# privilege exec level 1 show ip

Page 16: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

16

Setting router privileges and accounts

Accounts 我們應該給每個管理者一個專屬的帳號,用意是當管理者使用專屬的帳號登入並修改設定時,會產生 log 檔紀錄是哪位使用者以及更改設定的時間。 管理帳號時所應注意的事項:

1. 每個帳號的 privilege level 應設為 12. 不要建立沒有密碼的帳號3. 當帳號不再需要使用時,從路由器上移除

左圖表示建立兩個使用者帳號分別為 lee 、chang 以及各自建立密碼,且兩個帳號都設為 privilege level 1 ,並在路由器上移除bryan 這個帳號。

Router#config t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)# username lee password re49lee

Router(config)# username lee privilege 1

Router(config)# username chang password rechang23

Router(config)# username lee privilege 1

Router(config)# no username bryan

Router(config)# username lee privilege 1

Page 17: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

17

Turn off unneeded services

Cisco 路由器提供了許多的網路服務,而在這些服務中有些我們可能不需要或是這些服務本身存在著弱點,因此我們可以將這些服務停用,避免潛在的安全問題,以下為應停用的服務列表:

資料來源 http://www.nsa.gov/snac/routers/C4-040R-02.pdf

Cisco Discovery Protocol (CDP)

Proprietary layer 2 protocol between Cisco devices. CDP is almost never needed, disable it.

TCP & UDP small servers Standard TCP network services: echo, chargen, etc. This is a legacy feature, disable it explicitly.

Finger Unix user lookup service, allows remote listing of logged in users.

Unauthorized persons don’t need to know this, disable it.

HTTP server Some Cisco IOS devices offer web-based configuration.

If not in use, explicitly disable, otherwise restrict access.

Bootp server Service to allow other routers to boot from this one. This is rarely needed and may open a security hole, disable it.

IP source routing Feature that allows a packet to specify its own route. Can be helpful in attacks, disable it.

Proxy ARP Router will act as a proxy for layer 2 address resolution.

Disable this service unless the router is serving as a LAN bridge.

IP directed broadcast Packets can identify a target LAN for broadcasts. Directed broadcast can be used for attacks, disable it.

IP unreachable notifications Router will explicitly notify senders of incorrect IP addresses.

Can aid network mapping, disable on interfaces to untrusted networks.

IP mask reply Router will send an interface’s IP address mask in response to an ICMP mask request.

Can aid IP address mapping; explicitly disable on interfaces to untrusted networks.

IP redirects Router will send an ICMP redirect message in response to certain routed IP packets.

Can aid network mapping, disable on interfaces to untrusted networks.

NTP service Router can act as a time server for other devices and hosts.

If not in use, explicitly disable, otherwise restrict access.

Simple Network Mgmt. Protocol

Routers can support SNMP remote query and configuration.

If not in use, remove default community strings and explicitly disable, otherwise restrict access.

Domain Name Service Routers can perform DNS name resolution. Set the DNS server addresses explicitly, or disable DNS lookup.

Page 18: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

18

Turn off unneeded services

以下是關閉各項服務的指令: Small services (echo, discard, chargen, etc.)

- no service tcp-small-servers- no service udp-small-servers

BOOTP - no ip bootp server Finger - no service finger HTTP - no ip http server SNMP - no snmp-server CDP - no cdp run Source routing - no ip source-route Unused interfaces - shutdown No Smurf attacks - no ip directed-broadcast Mask replies - no ip mask-reply Ad-hoc routing - no ip proxy-arp

Page 19: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

19

RIPv2 MD5 Authentication

為避免收進攻擊者偽造的路由更新訊息,因此建議使用需認證的路由協定,需認證的路由協定有 RIPv2 、 OSPF 等。在這邊僅說明如何設定 RIPv2 MD5 Authentication ,場景如左圖所示,假設 MA 與 MB目前已經設定好 RIPv1 。設定 RIPv2: Router(config)#router rip Router(config-router)#version 2

設定 RIPv2 Authentication 的步驟: 1. 定義 key chain 的名稱。 2. 定義 key ID 。 3. 指定要執行認證的介面以及要使用的 key

chain 。4. 指定執行認證的介面是以明文還是以

MD5 的方式做認證。 .

S0/0 192.168.1.1/30

S0/0 192.168.1.2/30

MA

MB

Fa0/0 10.0.0.1/8

Fa0/0 192.168.3.1/24

Host B

Host A

Page 20: 實驗  4 : Layer 3  路由器裝置之安全性設定與操作

國立雲林科技大學 自由軟體研發中心

實驗 4 : Layer 3 路由器裝置之安全性設定與操

20

RIPv2 MD5 Authentication

MA(config)#key chain Yuntech

MA(config-keychain)#key 1

MA(config-keychain-key)#key-string CNLAB

MA(config-keychain-key)#interface serial 0/0

MA(config-if)#ip rip authentication key-chain Yuntech

MA(config-if)#ip rip authentication mode md5

設定 RIPv2 Authentication 的指令:Router(config)#key chain name-of-chain定義 key chain 的名稱Router(config-keychain)# key key-id定義 key ID (0 ~ 2147483647)

Router(config-keychain-key)#key-string text 設定認證的密碼Router(config-if)#ip rip authentication key-chain name-of-chain 指定要使用的 key chain

Router(config-if)# ip rip authentication mode {text | md5} 指定以明文還是以 MD5 的方式做認證

MB(config)#key chain Yuntech

MB(config-keychain)#key 1

MB(config-keychain-key)#key-string CNLAB

MB(config-keychain-key)#interface serial 0/0

MB(config-if)#ip rip authentication key-chain Yuntech

MB(config-if)#ip rip authentication mode md5

在 MA 與 MB 上設定 key chain 的名稱為「 Yuntech」, key ID 設為 1 ,此 ID 認證的密碼設為 CNLAB ,接著進入介面serial0/0 ,在 serial0/0 上啟用認證 (MA 與 MB 使用 serial0/0相連 ) ,選擇使用 key chain 「 Yuntech」,以 MD5 的方式認證。