Apakah saya perlu mengatur rahasia aktifkan pada perangkat Cisco?

16

Saya sedang menyiapkan router Cisco 2901. Saya memiliki kata sandi login pada baris konsol, dan baris vty dikonfigurasi untuk hanya menerima koneksi ssh dengan otentikasi kunci publik. Saluran bantu dimatikan. Hanya ada dua admin yang akan mengakses router dan kami berdua berwenang untuk melakukan konfigurasi apa pun pada router.

Saya bukan ahli Cisco gear, tapi saya menganggap ini cukup untuk mengamankan akses ke konfigurasi router. Namun, setiap panduan tunggal yang saya baca menyatakan bahwa saya harus menetapkan rahasia pengaktifan, terlepas dari kata sandi pengguna atau kata sandi lainnya.

Apakah ada sesuatu yang lebih pada mengaktifkan kata sandi yang tidak saya sadari? Apakah ada cara lain untuk mengakses router selain konsol, auxiliary, atau vty lines?

EDIT: Saya telah menambahkan konfigurasi aktual di bawah ini untuk lebih jelas tentang situasi saya. Berikut ini berfungsi, dengan membutuhkan kata sandi yang memungkinkan, atau usernamekonfigurasi selain dari yang ada di dalamnya 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
Marwan
sumber
1
jawaban singkat: tidak diperlukan , tetapi sangat sangat dianjurkan - karena ini adalah garis pertahanan pertama untuk privat penuh
Ricky Beam
Tetapi jika saya memiliki kata sandi di konsol dan vtys, mengapa saya perlu kata sandi lain? Selain itu, rahasia yang diaktifkan harus dibagikan antara staf admin, yang hanya meminta agar ditulis, diemail, dll. Lebih baik bagi setiap admin untuk memiliki kata sandi / kunci pribadi mereka sendiri.
Marwan
memungkinkan meninggikan priv. Kecuali Anda mengubahnya (melalui aaa), itu masih berlaku setelah Anda memiliki commandline.
Ricky Beam

Jawaban:

24

Tidak, Anda tidak - secara teknis. Tetapi apakah Anda dapat masuk ke mode aktifkan tanpa satu tergantung pada bagaimana Anda masuk.

Inilah versi kepuasan instan:

Anda dapat masuk melalui konsol tanpa mengaktifkan kata sandi, tetapi Anda akan terjebak dalam mode pengguna jika Anda menggunakan kata sandi login vty sederhana tanpa set kata sandi yang diaktifkan.

Inilah versi penjawab StackExchange yang bertele-tele:

Otentikasi Cisco agak berantakan bagi pemula. Ada banyak bagasi warisan di sana. Biarkan saya mencoba untuk memecah ini dalam arti dunia nyata.

Setiap orang yang memiliki bisnis yang masuk ke router atau beralih cukup banyak langsung ke mode privilege (aktifkan). Mode pengguna pada dasarnya adalah lobi depan, dan melayani sedikit lebih banyak tujuan daripada untuk menjaga konsep keluar. Dalam organisasi besar di mana Anda memiliki jaringan yang luas dan kumpulan tenaga kerja yang sama besarnya, mungkin dibenarkan untuk memiliki seseorang yang dapat mengetuk pintu depan dan memastikan seseorang masih ada di sana. (Yaitu, untuk masuk dan menjalankan perintah yang paling sepele hanya untuk melihat bahwa perangkat tersebut, pada kenyataannya, merespons dan tidak terbakar.) Tetapi di setiap lingkungan yang pernah saya gunakan, tingkat 1 setidaknya memiliki beberapa kemampuan untuk memecahkan barang.

Dengan demikian, dan khususnya dalam skenario seperti milik Anda, mengetahui kata sandi yang diaktifkan adalah wajib untuk menyelesaikan apa pun. Bisa dibilang ini adalah tingkat keamanan kedua - satu kata sandi untuk masuk ke perangkat, yang lain untuk meningkatkan keistimewaan administrasi - tetapi itu agak konyol bagi saya.

Seperti yang telah disebutkan, Anda dapat (dan banyak orang melakukannya) menggunakan kata sandi yang sama, yang tidak banyak membantu jika seseorang telah memperoleh akses tidak sah melalui telnet / ssh. Memiliki kata sandi global yang statis yang dibagikan oleh semua orang bisa dibilang lebih merupakan masalah daripada hanya perlu satu token untuk masuk. Akhirnya, sebagian besar sistem lain (layanan, peralatan, dll.) Tidak memerlukan otentikasi lapisan kedua, dan umumnya tidak dianggap tidak aman karena hal ini.

OK, itu pendapat saya tentang topik tersebut. Anda harus memutuskan sendiri apakah masuk akal mengingat sikap keamanan Anda sendiri. Mari kita mulai bisnis.

Cisco (secara bijak) mengharuskan Anda untuk mengatur kata sandi akses jarak jauh secara default. Ketika Anda masuk ke mode konfigurasi garis ...

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

... Anda dapat memberi tahu router untuk melewati otentikasi:

router(config-line)# no login

... dan segera diretas, tetapi penyerang Anda akan berakhir dalam mode pengguna. Jadi jika Anda memiliki mengaktifkan password set, setidaknya Anda telah agak membatasi kerusakan yang bisa dilakukan. (Secara teknis, Anda tidak dapat melangkah lebih jauh tanpa kata sandi yang memungkinkan. Lebih lanjut tentang itu suatu saat ...)

Secara alami, tidak ada yang akan melakukan ini dalam kehidupan nyata. Persyaratan minimum Anda, secara default dan dengan akal sehat, adalah untuk menetapkan kata sandi sederhana:

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

Sekarang, Anda akan dimintai kata sandi, dan Anda akan kembali ke mode pengguna. Jika Anda masuk melalui konsol, Anda cukup mengetik enableuntuk mendapatkan akses tanpa harus memasukkan kata sandi lain. Tetapi hal-hal berbeda melalui telnet, di mana Anda mungkin akan mendapatkan ini sebagai gantinya:

$ 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> 

Pindah ... Anda mungkin sudah tahu bahwa, secara default, semua kata sandi yang Anda konfigurasikan ditampilkan sebagai teks biasa:

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

Ini adalah salah satu hal yang mengencangkan sfingter yang sadar-keamanan. Apakah itu kecemasan yang dibenarkan lagi adalah sesuatu yang harus Anda putuskan sendiri. Di satu sisi, jika Anda memiliki akses yang cukup untuk melihat konfigurasi, Anda mungkin memiliki akses yang cukup untuk mengubah konfigurasi. Di sisi lain, jika Anda secara tidak sengaja mengungkapkan konfigurasi Anda kepada seseorang yang tidak memiliki sarana sendiri, maka ... yah, sekarang mereka memang memiliki sarana.

Untungnya, baris pertama dalam cuplikan di atas no service password-encryption, adalah kunci untuk mengubah itu:

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

Sekarang, ketika Anda melihat konfigurasi, Anda melihat ini:

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

Ini sedikit lebih baik daripada kata sandi teks biasa, karena string yang ditampilkan tidak cukup mudah diingat untuk dapat diakses. Namun, itu sepele untuk mendekripsi - dan saya menggunakan istilah itu secara longgar di sini. Anda benar-benar dapat menempelkan string itu di atas ke dalam satu dari selusin cracker kata sandi JavaScript di halaman hasil Google pertama, dan mendapatkan teks aslinya kembali dengan segera.

Kata sandi yang disebut "7" ini biasanya dianggap "dikaburkan" daripada "dienkripsi" untuk menyoroti fakta bahwa kata sandi itu hampir tidak lebih baik daripada tidak sama sekali.

Namun ternyata, semua passwordperintah itu sudah usang. (Atau jika tidak, seharusnya demikian.) Itulah mengapa Anda memiliki dua opsi berikut:

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

Versi rahasia di-hash dengan algoritma satu arah, artinya satu-satunya cara untuk mendapatkan teks asli kembali adalah dengan brute-force - yaitu, mencoba setiap string input yang mungkin sampai Anda menghasilkan hash yang diketahui.

Saat Anda memasukkan kata sandi saat diminta, kata sandi akan melewati algoritma hashing yang sama, dan karenanya harus menghasilkan hash yang sama, yang kemudian dibandingkan dengan yang ada di file konfigurasi. Jika cocok, kata sandi Anda diterima. Dengan begitu, teks biasa tidak diketahui oleh router kecuali pada saat singkat ketika Anda membuat atau memasukkan kata sandi. Catatan: Selalu ada kemungkinan beberapa input lain dapat menghasilkan hash yang sama, tetapi secara statistik itu adalah probabilitas yang sangat rendah (baca: dapat diabaikan).

Jika Anda sendiri yang menggunakan konfigurasi di atas, router akan mengizinkan kedua baris enable passworddan enable secretada, tetapi rahasia menang dari prompt kata sandi. Ini adalah salah satu dari isme-Cisco yang tidak masuk akal, tetapi memang demikian adanya. Selain itu, tidak ada secretperintah yang setara dari mode konfigurasi baris, jadi Anda terjebak dengan kata sandi yang tidak jelas di sana.

Baiklah, jadi sekarang kita memiliki kata sandi yang tidak dapat dipulihkan (dengan mudah) dari file konfigurasi - tetapi masih ada satu masalah. Itu sedang dikirim dalam teks biasa ketika Anda login melalui telnet. Tidak baik. Kami menginginkan SSH.

SSH, yang dirancang dengan keamanan yang lebih baik, membutuhkan kerja ekstra - dan gambar iOS dengan serangkaian fitur tertentu. Satu perbedaan besar adalah bahwa kata sandi sederhana tidak lagi cukup baik. Anda harus beralih ke otentikasi berbasis pengguna. Dan saat Anda melakukannya, atur pasangan kunci enkripsi:

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

Sekarang Anda memasak dengan gas! Perhatikan perintah ini menggunakan secretkata sandi. (Ya, Anda bisa, tetapi tidak boleh, gunakan password). Bagian ini privilege 15memungkinkan Anda untuk memotong mode pengguna sepenuhnya. Saat Anda masuk, Anda langsung menuju ke mode istimewa:

$ ssh [email protected]
Password: *****

router#

Dalam skenario ini, tidak perlu menggunakan kata sandi yang memungkinkan (atau rahasia.)

Jika Anda belum berpikir, "wow ... apa clusterfudge yang adalah", ingatlah ada seluruh posting yang panjang-tele lainnya masih bersembunyi di balik perintah aaa new-model, di mana Anda bisa menyelam ke dalam hal-hal seperti server otentikasi eksternal (RADIUS , TACACS +, LDAP, dll.), Daftar otentikasi (yang menentukan sumber yang akan digunakan, dan urutannya), tingkat otorisasi, dan penghitungan aktivitas pengguna.

Simpan semua itu untuk sementara waktu ketika Anda merasa ingin keluar dari router untuk sementara waktu.

Semoga itu bisa membantu!

SirNickity
sumber
1
Selamat datang! Jawaban pertama yang bagus!
Trauma Digital
Terima kasih, ini adalah jawaban yang sangat mendalam. Saya mengetahui berbagai perangkat enkripsi kata sandi, dan saya menggunakan model baru aaa (Saya telah mengedit pertanyaan saya untuk mencerminkan hal itu).
Marwan
Tidak memiliki rahasia yang memungkinkan sepertinya tidak menjadi masalah bagi saya. Apakah saya telnet / ssh dengan nama pengguna / kata sandi atau kunci publik, saya cukup mengetik enabledan berfungsi. Juga, memiliki nama pengguna dengan hak istimewa 15 masih mengharuskan saya untuk mengetikkan mengaktifkan. Apakah ini karena model baru?
Marwan
1
Sudahkah Anda mencoba mendefinisikan daftar otentikasi? Gunakan "aaa autentikasi login default lokal", dan "aaa otorisasi exec default local". Atau, gunakan "jika dikonfirmasi" alih-alih "lokal" pada yang terakhir.
SirNickity
Saya mencoba menduplikasi konfigurasi Anda pada 2811 yang menjalankan iOS 15.1 (4) M dan menemukan beberapa hasil menarik. Jika saya belum mendefinisikan baris authen / author, saya bisa login dengan kunci publik dan tidak ada pernyataan pengguna global. Jika saya mendefinisikan baris authen / author per komentar saya sebelumnya, saya tidak dapat SSH hanya dengan kunci publik - diperlukan perintah nama pengguna global (kegagalan otorisasi sebaliknya.) Jika saya melakukan sesuatu yang bodoh dan memasukkan nama pengguna global tanpaOUT rahasia / kata sandi, SSH bekerja dengan kunci, tetapi telnet berfungsi tanpa kata sandi - jadi jangan lakukan itu.
SirNickity
4

Ya, Anda perlu mengaturnya menjadi sesuatu. Itulah cara kerja iOS. Anda dapat membuatnya sama dengan kata sandi login Anda, jika mau.

Untuk banyak pengguna, saya sarankan Anda mengatur otentikasi AAA, yang akan memungkinkan Anda untuk langsung masuk ke mode aktifkan tanpa harus memasukkan kata sandi lain. Ini juga akan memungkinkan Anda untuk melacak aktivitas masing-masing admin. (Tapi Anda masih perlu mengatur agar kata sandi rahasia diaktifkan.)

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
Ron Trunk
sumber
2
Untuk mencadangkan jawaban Ron, itu harus diaktifkan jika Anda ingin memasuki mode exec istimewa kecuali jika Anda mengkonfigurasi Anda VTY untuk memasuki level 15 secara langsung.
jwbensley
@ jwbensley. Ide bagus. Saya sudah lupa tentang itu.
Ron Trunk
Saya menggunakan model baru, tetapi pengaturan privilege 15 masih mengharuskan saya untuk menggunakan perintah enable. Saya juga tidak perlu mengaktifkan rahasia / kata sandi (saya baru saja menguji semua ini).
Marwan
Pergi bekerja. Rupanya saya perlu menentukan aaa authorization exec default localuntuk memasukkan eksekutif istimewa secara otomatis.
Marwan
1

Untuk menambah informasi yang ada di sini.

enable

Opsi pertama untuk mengatur enablekata sandi adalah enable password.

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

Seperti yang Anda lihat, kata sandi disimpan dalam teks biasa. Ini buruk .

Yang kedua adalah 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

Ini lebih baik . Setidaknya kita memiliki hash kata sandi sekarang. Namun ini masih hanya menggunakan MD5 asin sehingga mungkin cukup mudah untuk memecahkan dengan daftar kata besar dan openssl.

Opsi ketiga (dan tujuan dari jawaban ini) adalah enable algorithm-typeyang memungkinkan kita untuk menggunakan PBKDF2 atau 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

Ini pasti yang terbaik .

Philip D'Ath telah menulis ringkasan yang bagus tentang mengapa memilih tipe 9. Thomas Pornin dan Ilmari Karonen memberikan informasi yang lebih mendalam.

Samuel Harmer
sumber
0

Ini pada dasarnya adalah lapisan keamanan tambahan. Jika Anda tidak memiliki versi iOS yang mendukung enkripsi kata sandi layanan, maka hanya aktifkan kata sandi yang dienkripsi sementara kata sandi konsol dan VTY adalah plaintext. Jika seseorang bisa mendapatkan salinan konfigurasi Anda (katakanlah dari cadangan, atau komputer tanpa pengawasan yang diteleportasi), kata sandi yang dienkripsi akan membuatnya lebih sulit untuk mendapatkan kendali atas router Anda, bahkan jika mereka bisa telnet masuk.

Bahkan dengan VTY terenkripsi dan kata sandi konsol, Anda harus tetap memiliki kata sandi pengaktifan yang berbeda untuk berada di sisi yang aman dan memberikan penghalang tambahan.

pooter03
sumber
0

Matikan 1 dari 2 admin users.cisco's sangat tahan terhadap apa saja, apa saja, segala jenis titik masuk peretasan yang mungkin melalui koneksi. Dengan dua admin. Connected the cisco akan percaya bahwa penyusup juga terhubung dan memblokir kemajuan lebih lanjut tanpa login yang tepat. Setelah kontrol dibangun kembali, Anda harus dapat menambahkan admin

IBU
sumber