Cisco cihazında etkinleştirme sırrını ayarlamam gerekir mi?


16

Bir Cisco 2901 yönlendirici kuruyorum. Konsol satırında bir oturum açma parolam var ve vty satırları yalnızca ortak anahtar kimlik doğrulaması ile ssh bağlantılarını kabul edecek şekilde yapılandırıldı. Yardımcı hat kapatıldı. Yönlendiriciye erişecek yalnızca iki yönetici vardır ve ikimiz de yönlendiricide herhangi bir yapılandırma gerçekleştirme yetkimiz vardır.

Cisco Gear konusunda uzman değilim, ancak yönlendirici yapılandırmasına güvenli erişimi sağlamak için bunun yeterli olduğunu düşünüyorum. Ancak, okuduğum her kılavuz, diğer kullanıcı veya satır şifrelerinden bağımsız olarak bir etkinleştirme sırrı ayarlamam gerektiğini belirtir.

Şifreyi etkinleştirme konusunda farkında olmadığım başka bir şey var mı? Yönlendiriciye erişmenin konsol, yardımcı veya vty hatlarından başka bir yolu var mı?

EDIT: Durumum hakkında daha net olması için aşağıdaki gerçek yapılandırmayı ekledim. Aşağıdakiler, bir etkinleştirme parolası veya içinde usernamebulunanın dışında bir yapılandırma gerektirerek çalışır 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
kısa cevap: gerekli değil , ama şiddetle tavsiye edilir - tam gizlilik için ilk savunma hattı olduğu için
Ricky Beam

Ancak konsol satırında ve vtys'de şifrelerim varsa, neden başka bir şifreye ihtiyacım var? Ayrıca, etkinleştirme sırrının yönetici personeli arasında paylaşılması gerekir, bu da sadece yazılmasını, e-postayla gönderilmesini vb. İster. Her yöneticinin kendi özel şifresine / anahtarına sahip olması daha iyidir.
Marwan

enable özelliği yükseltir. Değiştirmediğiniz sürece (aaa aracılığıyla), komut satırınız olduğunda yine de geçerlidir.
Ricky Beam

Yanıtlar:


24

Hayır, yapmazsınız - teknik olarak. Ancak, biri olmadan etkinleştirme moduna girip giremeyeceğiniz, nasıl giriş yaptığınıza bağlıdır.

İşte anlık tatmin versiyonu:

Etkinleştirme parolası olmadan konsoldan girebilirsiniz, ancak etkinleştirme parolası ayarlanmadan basit bir vty oturum açma parolası kullanırsanız kullanıcı modunda kalırsınız.

İşte uzun soluklu StackExchange cevaplayıcı sürümü:

Cisco kimlik doğrulaması, yeni başlayanlar için bir tür karışıklıktır. Orada bir sürü eski bagaj var. Bunu gerçek anlamda düşünmeye çalışayım.

Herhangi bir iş yönlendiricisine giriş yapan veya hemen hemen geçiş yapan herkes doğrudan ayrıcalıklı (etkin) moda geçer. Kullanıcı modu temelde bir ön lobidir ve taslağı dışarıda tutmaktan biraz daha fazla amaca hizmet eder. Geniş ağlara ve eşit derecede büyük emek havuzlarına sahip olduğunuz büyük organizasyonlarda, ön kapıyı çalabilecek ve hala orada olduğundan emin olabilen birisine sahip olmak haklı olabilir. (Yani, yalnızca cihazın aslında yanıt verdiğini ve yanmadığını görmek için en önemsiz komutları oturum açmak ve çalıştırmak için.) Ancak şimdiye kadar çalıştığım her ortamda, katman 1 en azından bazı yeteneklere sahipti. bir şeyleri kırmak.

Bu nedenle ve özellikle sizinki gibi bir senaryoda, herhangi bir şey yapmak için etkinleştirme şifresini bilmek zorunludur. Bunun ikinci bir güvenlik seviyesi olduğunu söyleyebilirsin - cihaza girmek için bir şifre, yönetici ayrıcalığına yükselmek için başka bir şifre - ama bu bana biraz aptalca geliyor.

Daha önce de belirtildiği gibi, aynı şifreyi kullanabilirsiniz (ve birçok kişi kullanır), bu da birisinin telnet / ssh aracılığıyla yetkisiz erişim elde etmesi durumunda pek yardımcı olmaz. Herkes tarafından paylaşılan statik, küresel parolalara sahip olmak, girmek için tek bir jetona sahip olmaktan ziyade tartışmalı bir konudur. Son olarak, diğer sistemlerin çoğu (hizmetler, cihazlar, vb.) İkinci bir kimlik doğrulama katmanı gerektirmez ve bu nedenle genellikle güvensiz kabul edilmez.

Tamam, konu hakkındaki düşüncem bu. Kendi güvenlik duruşunuz ışığında mantıklı olup olmadığına kendiniz karar vermelisiniz. İşe başlayalım.

Cisco (akıllıca) varsayılan olarak bir uzaktan erişim şifresi belirlemenizi gerektirir. Hat yapılandırma moduna girdiğinizde ...

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

... yönlendiriciye kimlik doğrulamasını atlamasını söyleyebilirsiniz:

router(config-line)# no login

... ve hemen saldırıya uğradı, ancak saldırganınız kullanıcı modunda olacak. Dolayısıyla, bir etkinleştirme parolası ayarladıysanız, en azından yapılabilecek hasarı bir miktar sınırlandırmış olursunuz . (Teknik olarak, etkinleştirme şifresi olmadan daha fazla ilerleyemezsiniz .

Doğal olarak, hiç kimse bunu gerçek hayatta yapmazdı. Minimum gereksiniminiz varsayılan olarak ve sağduyulu olarak basit bir parola belirlemektir:

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

Şimdi sizden bir şifre girmeniz istenecek ve tekrar kullanıcı moduna geçeceksiniz. Konsoldan geliyorsanız, enablebaşka bir parola girmek zorunda kalmadan erişim almak için yazabilirsiniz . Ancak telnet yoluyla işler farklıdır, bunun yerine muhtemelen bunu alacaksınız:

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

Devam ediyor ... Muhtemelen, varsayılan olarak yapılandırılmış tüm şifrelerinizin düz metin olarak görüntülendiğini zaten biliyorsunuzdur:

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

Bu, güvenlik bilincinin sfinkterini sıkılaştıran şeylerden biridir. Bunun haklı kaygı olup olmadığı yine kendin için karar vermen gereken bir şey. Bir yandan, yapılandırmayı görmek için yeterli erişiminiz varsa , muhtemelen yapılandırmayı değiştirmek için yeterli erişiminiz vardır . Eğer için ne varsa Öte yandan, dikkatsizce kendileri, o zaman ... iyi, şimdi onlar araçlara sahip olmayan birine Konfigürasyonunuzu ortaya do araçlara sahip.

Neyse ki, yukarıdaki pasajdaki ilk satır, no service password-encryptionbunu değiştirmenin anahtarıdır:

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

Şimdi, yapılandırmaya baktığınızda şunu görüyorsunuz:

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

Görüntülenen dize omuz sörfü için yeterince unutulmaz olmadığından bu, düz metin parolalarından biraz daha iyidir. Bununla birlikte, şifresini çözmek önemsizdir - ve bu terimi burada gevşek bir şekilde kullanıyorum. Yukarıdaki bu dizeyi kelimenin tam anlamıyla ilk Google sonuçlar sayfasındaki bir düzine JavaScript şifre kırıcısından birine yapıştırabilir ve orijinal metni hemen geri alabilirsiniz.

Bu sözde "7" parolaları, "hiçbir şeyden çok daha iyi olmadığı gerçeğini vurgulamak için" şifreli "yerine" gizlenmiş "olarak kabul edilir.

Ancak ortaya çıktığı gibi, tüm bu passwordkomutlar kullanımdan kaldırılmıştır. (Ya da değillerse, olmalılar.) Bu yüzden aşağıdaki iki seçeneğiniz var:

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

Gizli sürüm tek yönlü bir algoritma ile birleştirilir, yani orijinal metni geri almanın tek yolu kaba kuvvettir - yani bilinen hashı üretene kadar olası tüm giriş dizelerini denemek.

Komut istemine parolayı girdiğinizde, aynı karma algoritmadan geçer ve bu nedenle aynı karma değerini oluşturur ve bu da daha sonra yapılandırma dosyasındaki parolayla karşılaştırılır. Eşleşirlerse şifreniz kabul edilir. Bu şekilde, düz metin, şifreyi oluşturduğunuz veya girdiğiniz kısa an dışında yönlendirici tarafından bilinmez. Not: Her zaman diğer bazı girdilerin aynı karmayı üretme şansı vardır, ancak istatistiksel olarak çok düşük (okuma: ihmal edilebilir) olasılık.

Yukarıdaki yapılandırmayı kendiniz kullanacaksanız, yönlendirici hem enable passwordve hem de enable secretsatırların var olmasına izin verecektir , ancak parola isteminden gizli kazanır. Bu pek mantıklı olmayan Cisco-izm'lerden biri, ama öyle. Ayrıca, secrethat yapılandırma modundan eşdeğer bir komut yoktur , bu nedenle orada gizlenmiş parolalarla sıkışıp kalırsınız.

Tamam, şimdi yapılandırma dosyasından (kolayca) kurtarılamayan bir parolaya sahibiz - ancak yine de bir sorun var. Telnet üzerinden oturum açtığınızda düz metin olarak iletiliyor. İyi değil. SSH istiyoruz.

Daha güçlü güvenlik düşünülerek tasarlanan SSH, biraz fazladan çalışma ve belirli bir özellik kümesine sahip bir IOS görüntüsü gerektirir. Büyük bir fark, basit bir parolanın artık yeterince iyi olmamasıdır. Kullanıcı tabanlı kimlik doğrulamasından mezun olmanız gerekir. Ve siz bu sırada bir şifreleme anahtarı çifti oluşturun:

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

Şimdi gazla pişiriyorsun! Bu komutun secretparola kullandığına dikkat edin . (Evet, kullanabilirsiniz, ancak kullanmamalısınız password). Bu privilege 15bölüm kullanıcı modunu tamamen atlamanızı sağlar. Giriş yaptığınızda doğrudan ayrıcalıklı moda geçersiniz:

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

router#

Bu senaryoda, bir etkinleştirme parolası (veya sırrı) kullanmaya gerek yoktur.

Henüz "vay ... ne bir dağınıklık " olduğunu düşünmüyorsanız, hala komutun arkasında gizlenen aaa new-model, harici kimlik doğrulama sunucuları (RADIUS) gibi şeylere girebileceğiniz başka bir uzun soluklu yazı olduğunu unutmayın. , TACACS +, LDAP vb.), Kimlik doğrulama listeleri (kullanılacak kaynakları ve hangi sırayla tanımlayacaklarını), yetkilendirme düzeylerini ve kullanıcı etkinliği muhasebesini içerir.

Tüm bunları bir süre için yönlendiricinizden kilitlendiğinizde saklayın.

Umarım yardımcı olur!


1
Hoşgeldiniz! Harika ilk cevap!
Dijital Travma

Teşekkürler, çok anlayışlı bir cevap. Çeşitli şifre şifreleme cihazlarının farkındayım ve yeni bir model kullanıyorum (bunu yansıtmak için sorumu düzenledim).
Marwan

Etkin bir sırrı olmamak benim için bir sorun gibi görünmüyor. İster kullanıcı adı / şifre veya ortak anahtar ile telnet / ssh olsun, yazabilirim enableve çalışır. Ayrıca, 15 ayrıcalığına sahip bir kullanıcı adına sahip olmak hala enable yazmamı gerektiriyor. Bu yeni modelden mi kaynaklanıyor?
Marwan

1
Kimlik doğrulama listelerini tanımlamayı denediniz mi? "Aaa kimlik doğrulama varsayılanı varsayılan yerel" ve "aaa yetkilendirme yürütme varsayılan yerel" değerlerini kullanın. Alternatif olarak, ikincisinde "yerel" yerine "doğrulanırsa" kullanın.
SirNickity

IOS 15.1 (4) M çalıştıran 2811'de yapılandırmanızı çoğaltmayı denedim ve bazı ilginç sonuçlar buldum. Aaa authen / author satır tanımlamamışsam, genel anahtarla ve global kullanıcı adı ifadesiyle giriş yapamıyorum. Önceki yorumuma göre yetkilendirme / yazar satırlarını tanımlarsam, SSH'yi yalnızca bir ortak anahtarla yapamam - global kullanıcı adı komutu gerekli (aksi takdirde yetkilendirme hatası.) Aptalca bir şey yaparsam ve FOR ile global bir kullanıcı adı girersem Gizli / şifre, SSH bir anahtarla çalışır, ancak telnet şifre olmadan çalışır - bu yüzden bunu yapmayın.
SirNickity

4

Evet, bir şeye ayarlamanız gerekiyor. IOS böyle çalışır. İsterseniz giriş şifrenizle aynı şekilde yapabilirsiniz.

Birden fazla kullanıcı için, başka bir şifre girmenize gerek kalmadan doğrudan etkinleştirme moduna geçmenizi sağlayacak AAA kimlik doğrulaması ayarlamanızı öneririz. Ayrıca, bireysel yöneticilerin etkinliğini izlemenize de olanak tanır. (Ancak yine de gizli parolayı bir şeye ayarlamanız gerekir.)

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
Ron'un cevabını yedeklemek için, VTY'lerinizi doğrudan seviye 15'e girecek şekilde yapılandırmazsanız, ayrıcalıklı yürütme moduna girmek istiyorsanız etkinleştirilmelidir.
jwbensley

@jwbensley. İyi bir fikir. Bu konuyu unutmuştum.
Ron Trunk

Yeni bir model kullanıyorum, ancak ayrıcalık 15'i ayarlamak yine de enable komutunu kullanmamı gerektiriyor. Ben de bir etkinleştirme sırrı / parolasına ihtiyacım yok (Bütün bunları test ettim).
Marwan

Toţe git. Görünüşe göre aaa authorization exec default localotomatik olarak ayrıcalıklı exec girmeyi belirtmem gerekiyordu.
Marwan

1

Buradaki mevcut bilgilere eklemek için.

enable

enableParolayı ayarlamak için ilk seçenek enable password.

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

Gördüğünüz gibi, şifre düz metin olarak saklanır. Bu kötü .

İkincisi 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

Bu daha iyi . En azýndan ţimdi bir parola karmaţýz var. Ancak bu hala sadece tuzlu MD5 kullanır, bu yüzden büyük bir kelime listesi ve openssl ile çatlamak muhtemelen oldukça kolaydır.

Üçüncü seçenek (ve bu cevabın amacı) enable algorithm-typePBKDF2 veya SCRYPT kullanmamıza izin verir.

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

Bu kesinlikle en iyisi .

Philip D'Ath , neden 9 tipi seçildiğine ilişkin güzel bir özet yazdı. Thomas Pornin ve Ilmari Karonen daha ayrıntılı bilgi sağlıyor.


0

Temel olarak ekstra bir güvenlik katmanıdır. Hizmet parolası şifrelemesini destekleyen bir IOS sürümünüz yoksa, yalnızca konsol ve VTY parolaları düz metinken parolaları etkinleştirilir. Birisi, yapılandırmanızın bir kopyasını (örneğin, bir yedeklemeden veya telnet bağlantılı gözetimsiz bir bilgisayardan) alabildiyse, şifreli etkinleştirme şifresi, telnet yapabilseler bile yönlendiricinizin kontrolünü almayı zorlaştırır.

Şifrelenmiş VTY ve konsol şifrelerinde bile, güvenli tarafta olmak ve ekstra bir engel sağlamak için farklı bir etkinleştirme şifreniz olmalıdır.


0

2 admin kullanıcısından 1'ini kapatın. Cisco'lar herhangi bir, herhangi bir olası hack giriş noktasından bağlanarak çok watcthful'dur. İki yönetici ile. Cisco bağlandığında, bir davetsiz misafirin de bağlı olduğuna ve uygun giriş olmadan daha fazla ilerlemeyi engellediğine inanacaktır. Kontrol yeniden sağlandığında, yönetici ekleyebilmelisiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.