【Cisco】IOSルータ・スイッチに入れるおまじない設定

概要

IOSを搭載したCiscoのISRルータやCatalystスイッチを設定する際に、お約束で入れるおまじない設定を列挙します。
構築するシステムの要件によって必要/不要な箇所が異なりますが、昨今の一般的なシステムであれば、下記を入れておけば間違いないと思います。

投入コンフィグ

! TCPキープアライブ有効化
service tcp-keepalives-in
service tcp-keepalives-out

! ログ時刻表示
clock timezone JST 9 0
service timestamps debug datetime
service timestamps log datetime localtime show-timezone

! ログ保存サイズ
logging buffered 512000

! パスワード暗号化
service password-encryption

! 名前解決無効化
no ip domain lookup

! CDP無効化
no cdp run

! VTPモード変更
vtp mode transparent

! WebUI無効化
no ip http server
no ip http secure-server

! Smart Install無効化
no vstack

! シリアルコンソール設定
line con 0
 logging synchronous
 login local
 exec prompt timestamp

! リモートコンソール設定
line vty 0 4
 logging synchronous
 login local
 exec prompt timestamp
 transport input ssh

! リモートコンソール設定(機種によってはVTY 5~15も設定)
line vty 5 15
 logging synchronous
 login local
 exec prompt timestamp
 transport input ssh

各設定の意味

TCPキープアライブ有効化

SSHのリモートログイン通信がハーフオープンまたは孤立状態の場合に、通信を切断する機能です。
リモートログインセッションが知らないうちに溢れて、ログイン不可になることを防止します。

service tcp-keepalives-in
service tcp-keepalives-out

ログ時刻表示

機器のログに時刻を表示させます。
1行目はタイムゾーンを日本時間(JST)に設定しています。
2行目、3行目は、コンソールのデバッグ出力および機器ログの出力時刻をJSTに設定しています。

clock timezone JST 9 0
service timestamps debug datetime
service timestamps log datetime localtime show-timezone

ログ保存サイズ

機器メモリへのログ保存サイズを指定します。
デフォルト値(4096byte)のままだとほとんどログが記録できません。

logging buffered 512000

パスワード暗号化

コンフィグファイルを表示する際パスワードを暗号化します。
セキュリティの観点から、暗号化しておいたほうが良いでしょう。

service password-encryption

名前解決無効化

名前解決が有効状態だと、コマンドをタイプミス下場合に毎回名前解決処理が行われ、数秒間次のコマンドを受け付けなくなります。デフォルト設定では名前解決が有効なので、基本的には無効化すべきです。

no ip domain lookup

CDP無効化

CDPは隣接するCisco機器の情報を収集します。
一般的な企業システムでは、構築対象機器に対してお客様機器や他社機器を接続する場合があり、必ずしも自社構築機器だけで完結するとは限りません。セキュリティの観点からCDPは無効化しておくべきです。

no cdp run

VTPモード変更

VTPは、Cisco機器間でVLAN設定を共有するためのプロトコルです。
デフォルト設定ではサーバモードとなっておりトランスペアレントモードの機器で作成されたVLANが勝手に同期されてしまう恐れがあります。
VTPを使用したVLAN運用をしないのであれば、他機器の設定を同期品いトランスペアレントモードに変更しておきます。

vtp mode transparent

WebUI無効化

最近のCisco StartシリーズはカラフルなWebUIの管理画面が搭載されていますが、エンタープライズ用途では一般的にWebUIは使用せずにTelnet/SSHによるCLIでリモート操作を実施します。
脆弱性が発見された場合のセキュリティホールにもなりますので、WebUIは無効化しておきます。

no ip http server
no ip http secure-server

Smart Install無効化

最近のIOSには、Smart Installと呼ばれるIOS自動設定機能が搭載されています。
残念ながら、現状Smart Installによる脆弱性が発見される場面がよく見受けられます。
同機能を使用しないのであれば、基本的には無効化しておきます。

no vstack

シリアルコンソール設定

物理的なシリアルコンソールケーブルでのログイン時の表示設定、認証設定を行います。

2行目のlogging synchronousで、コマンド実行中にデバッグメッセージが表示されないようにして誤操作を防止します。

3行目のlogin localで、機器コンフィグに設定されたユーザアカウントによる認証を行います。

4行目のtransport preferred noneで、誤ったコマンドを実行したときに、その文字列宛にtelnet接続しようとする動作を無効化します。

5行目のexec prompt timestampで、コマンド実行時に都度タイムスタンプを表示するようにします。オペレーション時の実行ログにも残るので、作業エビデンスの保存時に便利です。

line con 0
 logging synchronous
 login local
 transport preferred none
 exec prompt timestamp

リモートコンソール設定

リモートコンソールも、シリアルコンソールと同様に表示設定と認証設定を行います。

6行目のtransport input sshでは、リモートログイン方式をSSHに限定しています。デフォルトではTelnetを使用する設定となっていますが、平文通信のためセキュリティ上問題があります。特殊な要件がない限りリモートログインはSSHを使用します。

リモートコンソールのポート数は機種によって異なる場合があります。16ポート設定可能な機種は、VTY5~15も追加で設定します。

line vty 0 4
 logging synchronous
 login local
 exec prompt timestamp
 transport preferred none
 transport input ssh

line vty 5 15
 logging synchronous
 login local
 exec prompt timestamp
 transport preferred none
 transport input ssh

また、SSHを使用する場合は、リモートコンソールの設定を行う前に下記SSH設定を行う必要があります。

! ユーザ設定(特権ユーザ権限で作成)
username <ユーザ名> privilege 15 secret <パスワード>
! ホスト名設定(任意のホスト名にする)
hostname RT01
! ドメイン設定(任意のドメインにする)
ip domain name cisco.com
! SSH暗号鍵作成(コマンド実行後、鍵長を聞かれるので2048を入力しエンター)
crypto key generate rsa
! SSH有効化
ip ssh version 2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です