みなさん、ネットワークスイッチ構築してますか?
ネットワーク機器を構築していると、取り敢えずこのコマンドだけは入れておくというような所謂「おまじないコマンド」というものが存在します。
入れておいた方が何かと便利だったり、レガシーな設定故無効化しないとセキュリティホールとなりえたりと、設定する理由は様々ですが、
僕も例に違わず構築時に取り敢えず入れているコマンドがあるので備忘録として残しておこうと思います。

対象機器
・Cisco Catalyst 9200シリーズ
・Cisco Catalyst 1000シリーズ
最適化設定
主にデバイスの効率化やパフォーマンスの向上を目的として設定します。
①TCPキープアライブ有効化設定
service tcp-keepalives-in
service tcp-keepalives-out
TCPセッション維持のためのTCPキープアライブの送信設定。
クライアントとのTCPセッション断を検知し、TTYラインをクリアする。
これをしないとログインセッションが開放されず、ログイン上限に引っかかってログイン出来ないみたいなことが起きます。
毎回ちゃんと「exit」しない怠惰な人の為にも入れておきましょう。
②デバッグ出力および機器ログの出力時刻設定
service timestamps debug datetime
service timestamps log datetime localtime show-timezone
出力時刻を「月/日/時/分/秒」の順番で表示させる。
表示形式は完全に好みだとは思いますが、ログの調査等で使用する為には上記の表示順がシンプルでわかりやすいです。
③タイムゾーンの設定
clock timezone JST 9 0
タイムゾーンを日本時間に設定。
日本で使うシステム基盤であれば日本時間に合わせない理由は無いでしょう。
④ログのシーケンス番号表示設定
service sequence-numbers
ログメッセージにシーケンス番号を表示させる。
ログの先頭に番号が振られます。番号が分かればログが一意に定まるので、他者に連携する際に便利です。
⑤パスワードの暗号化設定
service password-encryption
コンフィグにパスワードを表示させない。
あえて表示させておく必要性は0です。おとなしく隠しましょう。
⑥排他的設定変更アクセス機能設定
configuration mode exclusive auto
複数ユーザが同時にコンフィグ変更を実施出来なくする。
そんな機会はそうそう起きえないですが、万が一設定がデグレってしまうと困るので設定しておきましょう。
⑦ログのバッファ容量設定
logging buffered 512000
ログのバッファ容量の指定。Cisco推奨値にしています。
デフォルトの値だとログの保持期間が短すぎて使いものになりません。
外部Syslogサーバに保存していたとしてもわざわざ実機のサイズを小さいままにしておく必要もないので大きめに設定しておきましょう。

推奨値ならデフォルトで推奨値にしておけよ毎回思ってます…
⑧ログイン認証時のログ出力設定
login on-success log
login on-failure log
認証成功/失敗時にログを出力する。
セキュリティの観点から認証系のログは出しておいた方が良いです。
⑨オンボード障害ロギング設定
hw-switch switch 1 logging onboard message
ハードウェア情報(動作温度、稼働時間等の重要なイベントやメッセージ)のデータ収集を出来ます。
ハードウェアの問題は往々にしてあり調査に役立ちますので設定しましょう。
ちなみにスタック機能により冗長化している場合は、パラメータの数値が変動します。
上記コマンドはスタンドアロン運用で、スイッチ1しか存在しない想定です。
無効化設定
未使用設定やセキュリティホールとなる設定を無効化します。
①PAD設定
no service pad
PADコマンドおよびPAD装置とアクセスサーバ間の接続を無効化します。
レガシーな設定の為無効化推奨です。
②CDP設定
no cdp run
隣接するCisco機器の認識プロトコル(CDP)の無効化。
レガシーな設定の為無効化推奨です。
③VTP設定
vtp mode off
VLAN情報の同期プロトコル(VTP)の無効化。
VTP(VLAN管理サーバ機能)を使用しないのであれば無効化推奨です。
僕が知る限り使用しているシステムには出会ったことありません。
④コンソールログ設定
no logging console
コンソールログを停止。
すべてのログがコンソールポートに送信されます。
初期設定時にコンソール接続しているときにコマンドに上書きされる形でログが吐き出されて視認性が悪く鬱陶しいので真っ先に無効化しています。
また、CPUの負荷上昇にもつながるので無効化推奨です。
⑤コンフィグ自動インポート設定
no service config
TFTPサーバからコンフィグ自動インポート機能を無効化。
TFTPサーバに接続出来ない旨のエラーログが大量に出るので無効化推奨です。
そもそも普通はTFTPサーバからコンフィグをダウンロードするようなことはしないですし、ログの視認性も悪くなるので無効化しましょう。
初期設定時に「④コンソールログ設定有効」との合わせ技で嫌がらせの様にコンソールポートにログを吐きまくってきます。

こんなものデフォルトで有効にするなよ。。。
⑥AAA認証設定
no aaa new-model
AAA認証機能の無効化。
RADIUSサーバと連携してパスワード等を管理する際は必要ですが、しないのであれば無効化推奨です。
僕が知る限り使用しているシステムには出会ったことありません。
⑦名前解決設定
no ip domain lookup
名前解決の無効化。
とは言ってもこれは特定の条件下での動きに関係します。
具体的には無効なコマンドを入力した際にそれをデバイスのホスト名だと判断してTelnetする為に名前解決を試みようとします。

なんやこの機能いらんやろ。。。
コマンドをミスした時に名前解決が始まって数秒固まるので作業効率が落ちます。
無効化しましょう。
⑧WebUI設定
no ip http server
no ip http secure-server
no ip http authentication local
管理アクセス用にHTTP/HTTPS接続出来る機能の無効化。
HTTPやHTTPSは脆弱性の温床なので無効化推奨です。
そもそもネットワークスイッチをブラウザのGUIで設定するということは聞いたことがありません。
⑨DHCPサーバ設定
no service dhcp
DHCPサーバ動作の無効化。
ネットワークスイッチをDHCPサーバとして動作させることは無いので無効化推奨です。
⑩IPソースルーティング設定
no ip source-route
パケットが自身の経路を指定できるようにする機能です。
レガシーな設定の為無効化推奨です。
⑪IP device tracking設定
no device-tracking logging theft
ネットワーク上のホストの監視、管理を行う機能です。
接続ホストが誤った重複IPアドレスのエラーを引き起こす可能性がある為無効化推奨です。
おわりに
お仕事でもプライベートでもネットワークスイッチを構築する際はなるべく楽をしたいですよね。
何も考えずに取り敢えず投入するおまじないコマンド、皆さんは使用しているでしょうか?
本記事は技術的な記事の為、定期的にメンテナンスを実施予定です。
告知なく記事の内容が変更されるかもしれませんので、予めご了承ください。

それでは良きネットワークスイッチ構築ライフを!

