Ciscoルータ設定作業めも2【認証/telnet/ssh編】
勉強用にサービス統合型ルータ Cisco 1812-Jを購入し、設定を行ってみた際のめもです。学生の身には少し手痛い出費でしたが、色々勉強になりました。
コンソール接続、telnet接続、ssh接続と、それぞれのパスワードの設定の仕方について記載してます。
passwordコマンドとsecretコマンドの違いとクラックについても少し触れています。
もし何か記載に間違いがあれば指摘していただければ幸いです。
1. 用語
2. 作業環境
2.1. ノード
・Ciscoルータ 1812-J
・コンソール用PC(Windows 8.1、Tera Termインストール済み)
2.2. ケーブルなどの機材類
・コンソールケーブル
・LANケーブル
・LANアダプタ搭載USB3.0ハブ
3. 作業内容
3.1. I/FへのIPアドレス割り当て
後の作業のため、事前にIPアドレスを割り当てておきます。
1812-JのFast Ethernet 0に192.168.0.100/24を割り当てます。(※前回説明したので省略形で記述)
Ethernetポート0のI/Fコンフィギュレーションモードへ移行し、デフォルトではI/Fはダウンしているので、no shutdownで立ち上げます。
さらにip address [IPアドレス] [サブネットマスク]でIPアドレスを割り振っています。
show running-configで設定確認。
PCに静的に192.168.0.101/24を割り当ててルータのFE0に接続し、pingを飛ばしてみます。
ちゃんと届いてますね。
3.2. ルータへの接続方法
Ciscoルータへアクセスするための接続方法を確認します。
背面のポートを見ればわかりますが一応コマンドでも確認します。
特権モードに入り、show line。
Tty(Tele-typewriter)の種類が3つ表示されています。
CTY
コンソールポート経由の端末への接続。
この回線は"line console 0"で表す。
AUX
AUX(補助)ポート経由の端末への接続。
この回線は"line aux 0"で表す。
VTY
LANポート経由のtelnet/sshを受け付ける仮想端末への接続。
複数のtelnet/ssh接続を同時に受け付けられるようにVTYも複数個あります。
この回線は"line vty 0 4"等の表し方をします。
また、本機にはありませんでしたがもう1種類存在します。
TTY
モデムとの接続で利用されます
3.3. パスワード設定
3.3.1 パスワード設定方法
パスワードの設定方法には以下の2種類の方法があります。
①passwordコマンドで設定する方法(非推奨!今回は歴史をなぞる意味で一部使用していますが実際は②の方法を利用してください。)
②secretコマンドで設定する方法(推奨。今回は3.3.4の項目で手順説明。)
①の場合、configファイルに平文でパスワードが載ってしまうので、service password-encryptionコマンドを実行して暗号化を施す必要があります。しかしながら暗号化後のテキストから簡単に元のパスワードをクラックできてしまいます。
例えば"crack type 7 password"等とGoogle検索するとクラックのためのWebサービスが見つかります。実際にパスワードをクラックしてみた結果もこのブログに記載します(次の3.3.2の項目で記載)。
②の場合、パスワードのMD5一方向ハッシュ値を生成してconfigファイルに記載します。ハッシュ値に一致する文字列を特定することは①よりは難しいので、こちらの方がベターとされています。一応レインボーテーブルを使って推定するようなことは可能なので、これを少し意識してパスワードを作成した方が良いかも…
ちなみにpasswordコマンドとsecretコマンドの両方が設定された場合、secretコマンドのパスワードが優先される模様。
参考サイト様*1
3.3.2 パスワードのみの認証
前述した各接続方法に対してパスワードを設定できます。ここでは、試験的にpasswordコマンドでパスワードを設定してみます。
以下の画像では、まず特権モードからグローバルコンフィギュレーションモードへ移動。
その後、line console 0でコンソール回線のコンフィグモードへ移動しています。
※ここで仮にauxのコンフィグをしたい場合はline aux 0などとすればよいです。
さらにパスワード(ここではtestpass)を設定しています。
その後loginで、接続時のパスワード認証を有効にしています。
show running-configで、設定が反映されたか確認してみます。
該当部分は以下です。
ここまででctyにはパスワードが設定できましたがauxやvtyはパスワードが設定されていません。しかし同様の手順で登録できます。
exitしてctyアクセスを試みるとパスワード入力を求められる。
無事パスワード認証が機能している。
※パスワード暗号化は次の3.3.3にて
3.3.3. telnet接続を行う
vty接続に対してパスワード認証をオンにするとtelnet接続が可能になります。
※ただし特権モードにパスワードが設定されていないとtelnet接続できない模様
次の画像では、まず特権モード移行時のパスワード(testpass)をpasswordコマンドで設定しています(実運用時はsecretで行うこと)。そして、vty接続に対し、パスワードだけでなく、ユーザ名(user1)とパスワード(testpass)の組を設定しています。
※今回は便宜上パスワードをtestpassで統一していますが、実際は異なるパスワードを設定してください。
username [username] password [password]でユーザ名とパスワードを登録します(もしちゃんとsecretを使う場合は、passwordの部分をsecretに置き換えるだけでOKです)。
vtyのコンフィグモードへ入り、login localを実行することでユーザ名/パスワードをログイン時に利用できるようになります。
show running-configで設定が正しく済んでいるか確認します。
まずはユーザ名とパスワードの組みについて見てみます。
正しく設定されているようですね。passwordの後ろの数字0は、パスワードが平文であることを示しています。この数字が7の場合、パスワードが暗号化されていることを示します。今回は平文でそのまま表示されています。
もし暗号化した方が良いのでservice password-encryptionを実行してみます。
これを実行後、再度show running-configでuser1のパスワードを確認。
数字は7になっており、パスワードもtestpassではなく暗号化されたものになっています。
vtyの設定を見てみると、次のように変更が適用されていました。
transport input [all/none/telnet]はリモートアクセスプロトコルを制限するもの。allの場合すべて許可し、noneの場合すべて拒否し、telnetの場合はtelnetのみ許可します。今回はallなのでtelnetを許可しています。
PCでTera Termを起動し、ルータにtelnet接続を試みます。
ユーザ名とパスワードが要求され、登録した内容で認証できています。
ちなみに、前述したとおりpasswordコマンドで生成された平文をservice password-encryptionで暗号化したものは簡単にクラックできます。試しにクラックサイト*2に暗号文を入力してみます。
そして送信すると...
確かに平文testpassが特定されていますね。
ここまで非推奨のpasswordコマンドでの設定を行ってみましたが、secretコマンドで行いたい場合基本passwordの部分をsecretで実行すれば良いです。次の3.3.4からは実際に推奨のsecretコマンドでのパスワード設定の方法を記述します。
3.3.4. ssh接続
secretコマンドを用いてssh認証のための設定を行いたいと思います。
下記ではユーザとパスワードのセット(admin/testpass)を仮想端末の接続(line vty 0 4)に設定しています。
さらにsshで必要なRSA暗号鍵のための設定を行います。
まずはホスト名とドメイン名を設定します。(これを設定していなければRSA鍵を生成できないようです。)
次にRSA鍵を生成します。生成にあたって鍵のサイズを要求されるので入力します。ここでは2048としています。
次にsshのバージョンを指定します。
もし特権モードのsecretが設定されていなければ以下のようにenable secret [password]で行います。今回はパスワードをsecretpassとしています。
これで設定は終了です。
それでは外部から実際にアクセスしてみましょう。
Tera Termからユーザ名とパスワードでssh接続。
実際に特権モードへも移行できました。
さいごに
今回はCiscoのサービス統合型ルータで初歩的なコマンドの実行を行いました。今後も引き続き設定と動作検証を行っていく予定です。
あともしFW筐体(FortiGate 50E)を入手できればその設定の様子と攻撃の試験を行ってみる予定です。学生なので資金不足なのがつらいですが、買えるように頑張ります。