シスコデバイスでイネーブルシークレットを設定する必要がありますか?


16

Cisco 2901ルーターをセットアップしています。コンソールラインにログインパスワードがあり、vtyラインは、公開キー認証によるssh接続のみを受け入れるように設定されています。補助回線はシャットダウンされます。ルーターにアクセスする管理者は2人だけであり、ルーターの設定を実行する権限が両方にあります。

私はシスコのギアの専門家ではありませんが、ルーター構成へのアクセスを保護するにはこれが適切であると考えています。ただし、私が読んだすべてのガイドでは、他のユーザーや回線のパスワードに関係なく、イネーブルシークレットを設定する必要があると述べています。

無効になっていることに気付いていない、有効化パスワードには他に何かありますか?コンソール、補助、またはvty回線以外にルーターにアクセスする方法はありますか?

編集: 私の状況をより明確にするために、実際の設定を以下に追加しました。次のように機能します。有効化パスワード、または内のusername設定とは別に設定が必要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
簡単な答え:必須ではありません、非常に強くお勧めします-完全な特権の最初の防衛線であるため
リッキービーム

しかし、コンソールラインとvtyにパスワードがある場合、別のパスワードが必要なのはなぜですか?また、イネーブルシークレットは管理スタッフ間で共有する必要があります。これは書き留める、メールするなどを要求するだけです。各管理者が独自のプライベートパスワード/キーを持っている方が良いでしょう。
マーワン

特権の昇格を有効にします。(aaaを介して)変更しない限り、コマンドラインを作成すると適用されます。
リッキービーム

回答:


24

いいえ、技術的にはそうではありません。ただし、有効化モードを使用せずに有効化モードに入ることができるかどうかは、ログイン方法によって異なります。

すぐに満足できるバージョンは次のとおりです。

イネーブルパスワードなしでコンソールから入力できますが、イネーブルパスワードが設定されていない単純なvtyログインパスワードを使用すると、ユーザーモードでスタックします。

StackExchange answererの長いバージョンは次のとおりです。

シスコ認証は、初心者にとってはややこしいものです。そこには多くのレガシー手荷物があります。現実世界の意味でこれを分解してみましょう。

ルーターまたはスイッチにログインしているビジネスを持っている人は誰でも、ほとんど直接特権(有効)モードになります。ユーザーモードは基本的にフロントロビーであり、ドラフトを締め出す以外の目的はほとんどありません。広大なネットワークと同様に膨大な労働力がある大規模な組織では、玄関をノックして誰かがまだそこにいることを確認できる人がいることは正当な場合があります。(つまり、ログインして最も単純なコマンドを実行して、デバイスが実際に応答し、実際に反応していないことを確認します。)しかし、私がこれまで働いたすべての環境で、ティア1には少なくともある程度の能力がありました物事を壊します。

このように、そして特にあなたのようなシナリオでは、イネーブルパスワードを知ることは何でもする必要があります。これはセキュリティの2番目のレベルであると言えます。デバイスに入力するパスワードと管理者権限に昇格するパスワードです。しかし、それは私には少しばかげているようです。

すでに述べたように、同じパスワードを使用できます(多くの人が使用します)。これは、誰かがtelnet / sshを介して不正アクセスを取得した場合にはあまり役に立ちません。全員が共有する静的なグローバルパスワードを使用することは、入力するのに必要なトークンが1つだけであるよりも、おそらく問題です。最後に、他のほとんどのシステム(サービス、アプライアンスなど)は、認証の第2層を必要とせず、このため一般に安全ではないとは見なされません。

OK、それはトピックに関する私の意見です。自分のセキュリティスタンスに照らして意味があるかどうかを自分で判断する必要があります。ビジネスに取り掛かろう。

シスコでは、賢明にも、デフォルトでリモートアクセスパスワードを設定する必要があります。ラインコンフィギュレーションモードに入ると...

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

...認証をスキップするようにルーターに指示できます。

router(config-line)# no login

...そしてすぐにハッキングされますが、攻撃者はユーザーモードになります。したがって、有効なパスワードを設定している場合、少なくとも、実行できる損害はある程度制限されています。(技術的には、有効化パスワードなしではこれ以上先に進むことはできません。これについては後ほど詳しく説明します...)

当然、実生活では誰もこれを行いません。デフォルトおよび常識による最小要件は、単純なパスワードを設定することです。

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

これで、パスワードの入力を求められ、再びユーザーモードになります。コンソールenableからアクセスする場合は、別のパスワードを入力せずに入力するだけでアクセスできます。しかし、物事はtelnetを介して異なり、代わりにおそらくこれを得るでしょう:

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

次に進みます...デフォルトでは、設定されたすべてのパスワードがプレーンテキストとして表示されることをご存じでしょう。

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

これは、セキュリティを意識した括約筋を引き締める要因の1つです。不安が正当化されるかどうかは、やはり自分で決めなければならないものです。一方で、構成を表示するための十分なアクセス権がある場合、おそらく構成を変更するための十分なアクセス権があります。一方、自分自身で手段を持たない人に設定を不注意に公開してしまった場合は、...今、彼ら手段を持っています。

幸いなことに、上記のスニペットの最初の行は、それno service password-encryptionを変更するための鍵です。

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

構成を見ると、次のように表示されます。

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

これは、表示される文字列がショルダーサーフィンするほど記憶に残りにくいため、プレーンテキストのパスワードよりもわずかに優れています。ただし、解読するのは簡単です。ここでは、この用語を大まかに使用します。最初のGoogle検索結果ページにある12個のJavaScriptパスワードクラッカーの1つに上記の文字列を文字通り貼り付けて、すぐに元のテキストを取得できます。

これらのいわゆる「7」パスワードは、「暗号化」ではなく「難読化」されていると一般に考えられており、何もないよりはましであることを強調しています。

ただし、結局のところ、これらのpasswordコマンドはすべて非推奨です。(または、そうでない場合は、そうすべきです。)だから、次の2つのオプションがあります。

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

シークレットバージョンは一方向アルゴリズムでハッシュされます。つまり、元のテキストを戻す唯一の方法は、ブルートフォースによるものです。つまり、既知のハッシュが生成されるまで、可能なすべての入力文字列を試します。

プロンプトでパスワードを入力すると、同じハッシュアルゴリズムが実行されるため、同じハッシュが生成され、構成ファイル内のパスワードと比較されます。一致する場合、パスワードは受け入れられます。この方法では、パスワードを作成または入力している短い時間を除いて、プレーンテキストはルーターに認識されません。注:他の入力が同じハッシュを生成する可能性は常にありますが、統計的には非常に低い(読み取り:無視できる)確率です。

あなたは上記の構成を自分で使用した場合、ルータが両方できるようになりますenable passwordと、enable secret行が存在しますが、プロンプトパスワードから秘密の勝利。これは、あまり意味をなさないシスコ主義の1つですが、そうです。さらに、secretラインコンフィギュレーションモードには同等のコマンドがないため、そこに難読化されたパスワードが残っています。

さて、構成ファイルから(簡単に)回復できないパスワードを取得しました。しかし、まだ1つの問題があります。telnet経由でログインすると、プレーンテキストで送信されます。ダメ。SSHが必要です。

より堅牢なセキュリティを念頭に置いて設計されたSSHは、少し余分な作業と、特定の機能セットを備えたIOSイメージを必要とします。大きな違いの1つは、単純なパスワードではもはや十分ではないことです。ユーザーベースの認証に移行する必要があります。そして、その間、暗号化キーペアをセットアップします。

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

今、あなたはガスで料理しています!このコマンドはsecretパスワードを使用することに注意してください。(はい、使用できますが、使用しないでくださいpassword)。このprivilege 15部分では、ユーザーモードを完全にバイパスできます。ログインすると、特権モードに直接移行します。

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

router#

このシナリオでは、有効化パスワード(またはシークレット)を使用する必要はありません。

あなたはまだ、「すごい...何clusterfudge考えていない場合はでした」、心の中でクマがまだコマンドの後ろに潜んで全体の他の長ったらしいポストがありますあなたは、外部認証サーバのようなものの中にダイブを取得、(RADIUSを、TACACS +、LDAPなど)、認証リスト(使用するソースをどの順序で定義するか)、認可レベル、およびユーザーアクティビティアカウンティング。aaa new-model

しばらくの間、ルーターからロックアウトされたと感じるときのために、それをすべて保存してください。

お役に立てば幸いです!


1
ようこそ!素晴らしい最初の答え!
デジタル外傷

おかげで、それは非常に洞察に満ちた答えです。さまざまなパスワード暗号化デバイスを認識しており、aaa new-modelを使用しています(これを反映するように質問を編集しました)。
マーワン

イネーブルシークレットがないことは、私にとって問題ではないようです。ユーザー名/パスワードまたは公開キーを使用してtelnet / sshで接続するかどうかに関係なく、入力するだけenableで機能します。また、特権15のユーザー名を使用するには、enableと入力する必要があります。これは、aaa new-modelによるものですか?
マーワン

1
認証リストを定義しようとしましたか?「aaa authentication login default local」および「aaa authorization exec default local」を使用します。または、後者で「ローカル」の代わりに「if-authenticated」を使用します。
SirNickity

IOS 15.1(4)Mを実行している2811で設定を複製してみましたが、興味深い結果が見つかりました。aaaのauthen / author行を定義していない場合は、グローバルユーザー名ステートメントなしで公開キーを使用してログインできます。以前のコメントごとにauthen / author行を定義する場合、公開キーだけでSSHを実行することはできません-グローバルユーザー名コマンドが必要です(そうでない場合は承認に失敗します)。秘密/パスワード、SSHはキーで動作しますが、Telnetはパスワードなしで動作します-それをしないでください。
サーニック

4

はい、何かに設定する必要があります。それがまさにIOSの仕組みです。必要に応じて、ログインパスワードと同じにすることができます。

複数のユーザーの場合、AAA認証を設定することをお勧めします。これにより、別のパスワードを入力せずに直接イネーブルモードに移行できます。また、個々の管理者のアクティビティを追跡することもできます。(ただし、イネーブルシークレットパスワードを何かに設定する必要があります。)

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の回答をバックアップするには、レベル15を直接入力するようにVTYを設定しない限り、特権EXECモードを開始する場合に有効にする必要があります。
jwbensley

@jwbensley。良いアイデア。私はそれを忘れていました。
ロントランク

aaa new-modelを使用していますが、特権15を設定するには、まだenableコマンドを使用する必要があります。イネーブルシークレット/パスワードも必要ありません(これをすべてテストしたばかりです)。
マーワン

仕事に行きましょう。どうやら、aaa authorization exec default local特権EXECを自動的に入力するように指定する必要があったようです。
マーワン

1

ここで既存の情報に追加するには。

enable

enableパスワードを設定する最初のオプションはenable passwordです。

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

ご覧のとおり、パスワードはプレーンテキストで保存されています。これは悪いです。

2番目は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

これは良いです。少なくとも今はパスワードのハッシュがあります。ただし、これはまだ塩漬けのMD5のみを使用しているため、大きな単語リストとopensslを使用すると、おそらくかなり簡単にクラックできます。

3番目のオプション(およびこの回答の目的)はenable algorithm-type、PBKDF2または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

これは間違いなく最高です。

Philip D'Athは、タイプ9を選択する理由について素晴らしい要約を書いています。ThomasPorninIlmari Karonenは、より詳細な情報を提供します。


0

基本的にセキュリティの追加レイヤーです。サービスパスワード暗号化をサポートするIOSのバージョンがない場合、コンソールパスワードとVTYパスワードはプレーンテキストですが、イネーブルパスワードのみが暗号化されます。誰かがあなたの設定のコピーを(バックアップ、またはtelnetで接続された無人のコンピューターから)取得できた場合、暗号化された有効化パスワードは、telnetで接続できたとしても、ルーターの制御を取得することをより困難にします。

暗号化されたVTYおよびコンソールパスワードを使用しても、別の有効化パスワードを使用して安全を確保し、追加の障壁を提供する必要があります。


0

2人の管理者ユーザーのうち1人をシャットダウンします。ciscoは、connectを介したハックエントリポイントの可能性について、非常に柔軟です。2人の管理者。接続されたCiscoは、侵入者も接続されていると信じ、適切なlogin.once制御なしでさらなる進行をブロックします。管理者を追加できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.