Tôi có cần đặt bí mật kích hoạt trên thiết bị của Cisco không?


16

Tôi đang thiết lập bộ định tuyến Cisco 2901. Tôi có mật khẩu đăng nhập trên dòng bàn điều khiển và các dòng vty được cấu hình để chỉ chấp nhận kết nối ssh với xác thực khóa chung. Đường dây phụ được tắt. Chỉ có hai quản trị viên sẽ truy cập vào bộ định tuyến và chúng tôi đều được ủy quyền để thực hiện bất kỳ cấu hình nào trên bộ định tuyến.

Tôi không phải là chuyên gia về thiết bị của Cisco, nhưng tôi cho rằng điều này đủ để truy cập an toàn vào cấu hình bộ định tuyến. Tuy nhiên, mỗi hướng dẫn tôi đã đọc các trạng thái tôi nên đặt bí mật cho phép, bất kể mật khẩu người dùng hoặc dòng nào khác.

Có một cái gì đó nhiều hơn cho mật khẩu cho phép mà tôi không nhận ra? Có cách nào khác để truy cập vào bộ định tuyến hơn các dòng console, phụ trợ hoặc vty không?

EDIT: Tôi đã thêm cấu hình thực tế bên dưới để rõ hơn về tình huống của tôi. Các công việc sau đây, với yêu cầu mật khẩu cho phép hoặc usernamecấu hình ngoài mật khẩu bên trong ip ssh pubkey-chain.

aaa new-model

ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
ip ssh pubkey-chain
 username tech
  key-hash ssh-rsa [HASH]
ip scp server enable

line vty 0 4
 transport input ssh

1
Câu trả lời ngắn: không bắt buộc , nhưng rất được khuyến khích - vì đây là tuyến phòng thủ đầu tiên dành cho các tư nhân đầy đủ
Ricky Beam

Nhưng nếu tôi có mật khẩu trên dòng console và vtys, tại sao tôi lại cần một mật khẩu khác? Ngoài ra, bí mật cho phép sẽ phải được chia sẻ giữa các nhân viên quản trị, họ chỉ yêu cầu viết nó ra, gửi qua email, v.v. Tốt hơn cho mỗi quản trị viên có mật khẩu / khóa riêng của họ.
Marwan

cho phép nâng cao tư nhân. Trừ khi bạn thay đổi nó (thông qua aaa), nó vẫn được áp dụng khi bạn có một dòng lệnh.
Ricky Beam

Câu trả lời:


24

Không, bạn không - về mặt kỹ thuật. Nhưng việc bạn có thể vào chế độ kích hoạt mà không cần phụ thuộc vào cách bạn đăng nhập hay không.

Đây là phiên bản hài lòng tức thì:

Bạn có thể nhập thông qua bảng điều khiển mà không cần mật khẩu kích hoạt, nhưng bạn sẽ bị kẹt trong chế độ người dùng nếu bạn sử dụng mật khẩu đăng nhập vty đơn giản mà không cần đặt mật khẩu cho phép.

Đây là phiên bản trả lời StackExchange dài dòng:

Xác thực Cisco là một mớ hỗn độn cho người mới bắt đầu. Có rất nhiều hành lý kế thừa ở đó. Hãy để tôi thử phá vỡ điều này theo nghĩa thực tế.

Mọi người có bất kỳ doanh nghiệp nào đăng nhập vào bộ định tuyến hoặc chuyển đổi khá nhiều đều chuyển trực tiếp sang chế độ đặc quyền (enable). Chế độ người dùng về cơ bản là một sảnh trước và phục vụ mục đích ít hơn là để giữ cho bản nháp ra ngoài. Trong các tổ chức lớn nơi bạn có mạng lưới rộng lớn và nhóm lao động rộng lớn không kém, có thể có lý do để có ai đó có thể gõ cửa và đảm bảo ai đó vẫn ở đó. (Nghĩa là, để đăng nhập và chạy các lệnh tầm thường nhất chỉ để thấy rằng thiết bị thực tế là phản hồi và không bị cháy.) Nhưng trong mọi môi trường tôi từng làm việc, tầng 1 có ít nhất một khả năng để phá vỡ mọi thứ.

Như vậy, và đặc biệt trong một kịch bản như của bạn, biết mật khẩu kích hoạt là bắt buộc để thực hiện bất cứ điều gì. Bạn có thể nói đây là cấp độ bảo mật thứ hai - một mật khẩu để vào thiết bị, một mật khẩu khác để leo thang lên đặc quyền quản trị - nhưng điều đó có vẻ hơi ngớ ngẩn với tôi.

Như đã lưu ý, bạn có thể (và nhiều người làm) sử dụng cùng một mật khẩu, điều này không giúp ích nhiều nếu ai đó có được quyền truy cập trái phép qua telnet / ssh. Có mật khẩu tĩnh, toàn cầu được chia sẻ bởi mọi người được cho là vấn đề nhiều hơn là chỉ cần một mã thông báo để nhập. Cuối cùng, hầu hết các hệ thống khác (dịch vụ, thiết bị, v.v.) không yêu cầu lớp xác thực thứ hai và thường không được coi là không an toàn vì điều này.

OK, đó là ý kiến ​​của tôi về chủ đề này. Bạn sẽ phải tự quyết định xem liệu nó có ý nghĩa trong quan điểm bảo mật của bạn hay không. Hãy bắt tay vào công việc.

Cisco (một cách khôn ngoan) yêu cầu bạn đặt mật khẩu truy cập từ xa theo mặc định. Khi bạn vào chế độ cấu hình dòng ...

router> enable
router# configure terminal
router(config)# line vty 0 15
router(config-line)#

... bạn có thể yêu cầu bộ định tuyến bỏ qua xác thực:

router(config-line)# no login

... Và ngay lập tức bị hack, nhưng kẻ tấn công của bạn sẽ kết thúc ở chế độ người dùng. Vì vậy, nếu bạn có một bộ mật khẩu cho phép, ít nhất bạn đã phần nào hạn chế thiệt hại có thể được thực hiện. (Về mặt kỹ thuật, bạn cũng không thể đi xa hơn nếu không có mật khẩu cho phép. Thêm vào đó trong giây lát ...)

Đương nhiên, không ai sẽ làm điều này trong cuộc sống thực. Yêu cầu tối thiểu của bạn, theo mặc định và theo nghĩa thông thường, là đặt mật khẩu đơn giản:

router(config-line)# login
router(config-line)# password cisco

Bây giờ, bạn sẽ được yêu cầu nhập mật khẩu và bạn sẽ lại kết thúc ở chế độ người dùng. Nếu bạn đến thông qua bảng điều khiển, bạn chỉ cần nhập enableđể có quyền truy cập mà không cần phải nhập mật khẩu khác. Nhưng mọi thứ khác nhau qua telnet, nơi bạn có thể sẽ nhận được điều này thay vào đó:

$ telnet 10.1.1.1
Trying 10.1.1.1...
Connected to 10.1.1.1.
Escape character is '^]'.


User Access Verification

Password: *****
router> enable
% No password set
router> 

Tiếp tục ... Có thể bạn đã biết rằng, theo mặc định, tất cả mật khẩu được định cấu hình của bạn hiển thị dưới dạng văn bản thuần túy:

router# show run | inc password
no service password-encryption
 password cisco

Đây là một trong những điều thắt chặt cơ vòng của người có ý thức bảo mật. Cho dù đó là lo lắng chính đáng một lần nữa là một cái gì đó bạn phải tự quyết định. Một mặt, nếu bạn có đủ quyền truy cập để xem cấu hình, bạn có thể có đủ quyền truy cập để thay đổi cấu hình. Mặt khác, nếu bạn xảy ra để có cẩu thả đã tiết lộ cấu hình của bạn cho những người không có phương tiện tự, sau đó ... tốt, bây giờ họ làm có phương tiện.

May mắn thay, dòng đầu tiên trong đoạn trích ở trên no service password-encryption, là chìa khóa để thay đổi điều đó:

router(config)# service password-encryption
router(config)# line vty 0 15
router(config-line)# password cisco

Bây giờ, khi bạn nhìn vào cấu hình, bạn thấy điều này:

router(config-line)# do show run | begin line vty
line vty 0 4
 password 7 01100F175804
 login
line vty 5 15
 password 7 01100F175804
 login
!
!
end

Điều này tốt hơn một chút so với mật khẩu văn bản đơn giản, bởi vì chuỗi được hiển thị không đủ dễ nhớ để lướt qua vai. Tuy nhiên, việc giải mã nó không quan trọng - và tôi sử dụng thuật ngữ đó một cách lỏng lẻo ở đây. Theo nghĩa đen, bạn có thể dán chuỗi đó vào một trong hàng tá trình bẻ khóa mật khẩu JavaScript trên trang kết quả Google đầu tiên và lấy lại văn bản gốc ngay lập tức.

Những mật khẩu được gọi là "7" này thường được coi là "bị xáo trộn" thay vì "được mã hóa" để làm nổi bật thực tế rằng nó chỉ tốt hơn hầu như không có gì.

Tuy nhiên, hóa ra, tất cả các passwordlệnh đó đều không được chấp nhận. (Hoặc nếu họ không phải, họ nên như vậy.) Đó là lý do tại sao bạn có hai tùy chọn sau:

router(config)# enable password PlainText
router(config)# enable secret Encrypted
router(config)# do show run | inc enable
enable secret 5 $1$sIwN$Vl980eEefD4mCyH7NLAHcl
enable password PlainText

Phiên bản bí mật được băm bằng thuật toán một chiều, nghĩa là cách duy nhất để lấy lại văn bản gốc là bằng brute-force - nghĩa là thử mọi chuỗi đầu vào có thể cho đến khi bạn tình cờ tạo ra hàm băm đã biết.

Khi bạn nhập mật khẩu tại dấu nhắc, nó sẽ đi qua cùng một thuật toán băm và do đó cuối cùng sẽ tạo ra cùng một hàm băm, sau đó được so sánh với mật khẩu trong tệp cấu hình. Nếu chúng khớp, mật khẩu của bạn được chấp nhận. Theo cách đó, văn bản đơn giản không được biết đến bộ định tuyến ngoại trừ trong thời gian ngắn khi bạn đang tạo hoặc nhập mật khẩu. Lưu ý: Luôn có cơ hội một số đầu vào khác có thể tạo ra cùng một hàm băm, nhưng theo thống kê thì đó là xác suất rất thấp (đọc: không đáng kể).

Nếu bạn tự sử dụng cấu hình trên, bộ định tuyến sẽ cho phép cả dòng enable passwordenable secretdòng tồn tại, nhưng bí mật sẽ thắng từ dấu nhắc mật khẩu. Đây là một trong những công cụ của Cisco không có nhiều ý nghĩa, nhưng nó là như vậy. Hơn nữa, không có secretlệnh tương đương từ chế độ cấu hình dòng, vì vậy bạn bị mắc kẹt với mật khẩu bị xáo trộn ở đó.

Được rồi, vì vậy chúng tôi hiện có một mật khẩu không thể phục hồi (dễ dàng) từ tệp cấu hình - nhưng vẫn còn một vấn đề. Nó được truyền đi dưới dạng văn bản đơn giản khi bạn đăng nhập qua telnet. Không tốt. Chúng tôi muốn SSH.

SSH, được thiết kế với tính bảo mật mạnh mẽ hơn, đòi hỏi một chút công việc - và một hình ảnh IOS với một bộ tính năng nhất định. Một điểm khác biệt lớn là mật khẩu đơn giản không còn đủ tốt. Bạn cần phải tốt nghiệp để xác thực dựa trên người dùng. Và trong khi bạn đang ở đó, hãy thiết lập một cặp khóa mã hóa:

router(config)# username admin privilege 15 secret EncryptedPassword
router(config)# line vty 0 15
router(config-line)# transport input ssh
router(config-line)# no password
router(config-line)# login local
router(config-line)# exit
router(config)# ip ssh version 2
router(config)# crypto key generate rsa modulus 1024

Bây giờ bạn đang nấu ăn bằng gas! Lưu ý lệnh này sử dụng secretmật khẩu. (Có, bạn có thể, nhưng không nên, sử dụng password). Phần này privilege 15cho phép bạn bỏ qua chế độ người dùng hoàn toàn. Khi bạn đăng nhập, bạn chuyển thẳng sang chế độ đặc quyền:

$ ssh admin@10.1.1.1
Password: *****

router#

Trong trường hợp này, không cần sử dụng mật khẩu cho phép (hoặc bí mật.)

Nếu bạn chưa nghĩ, "wow ... thật là một cụm sao ", hãy nhớ rằng có một bài viết dài ngoằng khác vẫn ẩn sau lệnh aaa new-model, nơi bạn có thể đi sâu vào những thứ như máy chủ xác thực bên ngoài (RADIUS , TACACS +, LDAP, v.v.), danh sách xác thực (xác định các nguồn sẽ sử dụng và theo thứ tự nào), mức ủy quyền và kế toán hoạt động của người dùng.

Lưu tất cả những thứ đó trong một thời gian khi bạn cảm thấy muốn bị khóa khỏi bộ định tuyến trong một thời gian.

Mong rằng sẽ giúp!


1
Chào mừng bạn Câu trả lời tuyệt vời đầu tiên!
Chấn thương kỹ thuật số

Cảm ơn, đó là một câu trả lời rất sâu sắc. Tôi biết các thiết bị mã hóa mật khẩu khác nhau và tôi đang sử dụng mô hình mới aaa (Tôi đã chỉnh sửa câu hỏi của mình để phản ánh điều đó).
Marwan

Không có một bí mật kích hoạt dường như không phải là một vấn đề đối với tôi. Cho dù tôi telnet / ssh với tên người dùng / mật khẩu hoặc khóa chung, tôi chỉ cần gõ enablevà nó hoạt động. Ngoài ra, có tên người dùng với đặc quyền 15 vẫn yêu cầu tôi nhập enable. Đây có phải là do aaa mô hình mới?
Marwan

1
Bạn đã thử xác định danh sách xác thực? Sử dụng "aaa xác thực đăng nhập mặc định cục bộ" và "aaa ủy quyền thực thi mặc định cục bộ". Ngoài ra, sử dụng "if-xác thực" thay vì "cục bộ" trên cái sau.
SirNickity

Tôi đã thử sao chép cấu hình của bạn trên 2811 chạy iOS 15.1 (4) M và nhận thấy một số kết quả thú vị. Nếu tôi chưa xác định aaa authen / tác giả, tôi có thể đăng nhập bằng khóa chung và không có tuyên bố tên người dùng toàn cầu. Nếu tôi xác định các dòng tự động / tác giả cho mỗi nhận xét trước đây của mình, tôi không thể SSH chỉ bằng một khóa công khai - lệnh tên người dùng toàn cầu là bắt buộc (nếu không ủy quyền thì không.) Nếu tôi làm điều gì đó ngu ngốc và nhập tên người dùng toàn cầu mà KHÔNG một bí mật / mật khẩu, SSH hoạt động với một khóa, nhưng telnet hoạt động với mật khẩu - vì vậy đừng làm vậy.
SirNickity

4

Vâng, bạn cần phải đặt nó vào một cái gì đó. Đó chỉ là cách mà iOS hoạt động. Bạn có thể làm cho nó giống như mật khẩu đăng nhập của bạn, nếu bạn muốn.

Đối với nhiều người dùng, tôi khuyên bạn nên thiết lập xác thực AAA, điều này sẽ cho phép bạn trực tiếp vào chế độ kích hoạt mà không cần phải nhập mật khẩu khác. Nó cũng sẽ cho phép bạn theo dõi hoạt động của quản trị viên cá nhân. (Nhưng bạn vẫn cần đặt mật khẩu cho phép thành một cái gì đó.)

aaa new model
aaa authentication login default local
aaa authorization enable default local

username chen-li password foo privilege 15
username safar password bar privilege 15

2
Để sao lưu câu trả lời của Ron, nó phải được bật nếu bạn muốn vào chế độ thực thi đặc quyền trừ khi bạn định cấu hình VTY của mình để nhập cấp 15 trực tiếp.
jwbensley

@jwbensley. Ý tưởng tốt. Tôi đã quên về điều đó.
Ron Trunk

Tôi đang sử dụng mô hình mới aaa, nhưng thiết lập đặc quyền 15 vẫn yêu cầu tôi sử dụng lệnh enable. Tôi cũng không cần một bí mật / mật khẩu cho phép (Tôi vừa kiểm tra tất cả điều này).
Marwan

Đi để làm việc. Rõ ràng tôi cần chỉ định aaa authorization exec default localđể tự động thực thi đặc quyền.
Marwan

1

Để thêm vào các thông tin hiện có ở đây.

enable

Tùy chọn đầu tiên để thiết lập enablemật khẩu là enable password.

Switch(config)#enable password passfoo
Switch#show running-config | include enable
enable password passfoo

Như bạn có thể thấy, mật khẩu được lưu trữ trong văn bản thuần túy. Điều này là xấu .

Thứ hai là enable secret.

Switch(config)#enable secret ?
  0      Specifies an UNENCRYPTED password will follow
  5      Specifies a MD5 HASHED secret will follow
  8      Specifies a PBKDF2 HASHED secret will follow
  9      Specifies a SCRYPT HASHED secret will follow
  LINE   The UNENCRYPTED (cleartext) 'enable' secret
  level  Set exec level password
Switch(config)#enable secret passfoo
Switch#show running-config | include enable
enable secret 5 $1$cSF4$uydOsfi3J2vGT.77tuYWh1

Điều này là tốt hơn . Ít nhất chúng ta có một hàm băm của mật khẩu bây giờ. Tuy nhiên, điều này vẫn chỉ sử dụng MD5 mặn, vì vậy nó có thể dễ dàng bẻ khóa với một danh sách từ lớn và openssl.

Tùy chọn thứ ba (và mục đích của câu trả lời này) là enable algorithm-typecho phép chúng tôi sử dụng PBKDF2 hoặc SCRYPT.

Switch(config)#enable algorithm-type ?
  md5     Encode the password using the MD5 algorithm
  scrypt  Encode the password using the SCRYPT hashing algorithm
  sha256  Encode the password using the PBKDF2 hashing algorithm
Switch(config)#enable algorithm-type scrypt secret ?
  LINE   The UNENCRYPTED (cleartext) 'enable' secret
  level  Set exec level password
Switch(config)#enable algorithm-type scrypt secret passfoo
Switch#show running-config | include enable
enable secret 9 $9$dXjOMeJPYKOFbl$0D4.ItXi8yrjp.A9dt7Ew6tTgr3LYmMlzD672d.LjFk

Điều này chắc chắn là tốt nhất .

Philip D'Ath đã viết một bản tóm tắt hay về lý do tại sao chọn loại 9. Thomas PorninIlmari Karonen cung cấp thêm thông tin chuyên sâu.


0

Nó về cơ bản là một lớp bảo mật bổ sung. Nếu bạn không có phiên bản IOS hỗ trợ mã hóa mật khẩu dịch vụ, thì chỉ kích hoạt mật khẩu được mã hóa trong khi mật khẩu của bàn điều khiển và VTY là bản rõ. Nếu ai đó có thể nhận được một bản sao cấu hình của bạn (giả sử từ bản sao lưu hoặc máy tính không được giám sát), mật khẩu cho phép được mã hóa sẽ khiến việc kiểm soát bộ định tuyến của bạn trở nên khó khăn hơn, ngay cả khi họ có thể telnet.

Ngay cả với mật khẩu VTY và bảng điều khiển được mã hóa, bạn vẫn nên có một mật khẩu cho phép khác để ở bên an toàn và cung cấp thêm một rào cản.


0

Tắt 1 trong 2 người dùng admin.cisco là rất nhiều bất kỳ, bất kỳ, bất kỳ loại điểm nhập hack nào có thể thông qua kết nối. Với hai quản trị viên. Đã kết nối cisco sẽ tin rằng một kẻ xâm nhập cũng được kết nối và ngăn chặn tiến trình hơn nữa mà không cần đăng nhập thích hợp. Kiểm soát hiện tượng được thiết lập lại, bạn sẽ có thể thêm quản trị viên

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.