コンテンツにスキップ

9. ネットワーク機器のセキュリティ設定

9.1. L2セキュリティ

9.1.1. ポートセキュリティの設定

ポートセキュリティを有効化すると、想定外端末のネットワーク接続を防ぐことが可能。

ポートセキュリティの有効化

ポートセキュリティはデフォルトでは有効になっていないため有効化する必要がある。

ポートセキュリティの有効化にはインターフェイスを手動でアクセスポート/トランクポートにする必要がある。 有効化には以下コマンドで行える。

(config-if)#switchport porrt-security

セキュアMACアドレスの登録

ポートセキュリティの接続違反判断にはMACアドレスをスイッチに登録しておく必要がある。 方法は以下の通り。

  1. 手動で登録
  2. フレームが届いた際に自動でその送信元MACアドレスが登録される方法

  3. 最大MACアドレス登録数の設定

1つのインターフェイスに登録可能なMACアドレスはデフォルトでは1つ。 自動で登録させる場合はコマンドで変更する必要があり、以下コマンドで実現できる。

(config-if)#switchport port-security maximum <最大数>
* MACアドレスの登録

手動で登録する場合は以下コマンドで実行できる。

(config-if)#switchport porrt-security mac-address <MACアドレス>

またセキュアMACアドレスの種類は以下の通り。

種類 説明 保存先
スタティックセキュアMACアドレス 静的に設定したMACアドレス MACアドレステーブル、running-config
ダイナミックセキュアMACアドレス 動的に学習したMACアドレス MACアドレステーブル
スティキーセキュアMACアドレス 動的に学習したMACアドレス MACアドレステーブル、running-config

スティキーラーニング

スティキーラーニングは自動登録されたセキュアMACアドレスがrunning-configに保存する方法。 これによりスイッチが再起動された後も一度登録したセキュアMACアドレスが消えなくなる。

スティキーラーニングの有効化には以下コマンドで行うことができる。

(config-if)#switchport porrt-security mac-address sticky

違反時の動作の指定

ポートに登録されていないMACアドレスが登録された際の動作は3種類あり設定できる。 なおデフォルトではshutdownの設定となっている。

  • protect ... 通信をブロックするのみ
  • restrict ... ブロックするのに加えてセキュリティ違反のカウンタを加算する、SNMPと組み合わせて違反を通知できる
  • shutdown(デフォルト) ... restrictに加えてインターフェイスをシャットダウンする、このときインターフェイスはerror-disableとなる

違反モードの設定は以下コマンドで設定できる。

(config-if)#switchport port-security violation <モード>

ポートセキュリティの設定確認

ポートセキュリティの確認は以下コマンドで行える。

#ポートセキュリティの確認
show porrt-security
#セキュアMACアドレスの確認
show port-security address
#インターフェイスの確認
show port-security interface <インターフェイス>

err-disable状態の自動復旧方法

エラー原因の状態確認は以下コマンドで行える。

show errdisable recovery

また自動復旧をさせるためのコマンドは以下の通り。

(config)#[no] errdisable recovery cause <エラーの原因>
エラーの原因 復旧原因
bpduguard BPDUガードの動作
psecure-violation ポートセキュリティの動作

エラー原因には自動復旧させるエラー原因を登録する。 なおallを指定するとすべてのエラーでも復旧する。 ちなみにerrdisableになる原因は以下の通り。

  • BPDUガード違反(レイヤ2ループを防ぐ機能であるSTPの動作)
  • セキュリティ違反(不正な接続を防ぐ機能であるポートセキュリティの動作)

復旧までの時刻は以下コマンドで行える。 なおデフォルトでは300秒となっている。

(config)#errdisable recovery interval [秒数]

手動でerr-disable状態を復旧する

err-disableは、機械的にポートをshutdownさせているため手動でshutdown状態にする。 手順は以下の通り。

  1. err-disabledがかかっているinterfaceに移動しshutdownコマンドを適用する
  2. その後、no shutdownコマンドを実行しポートを有効にする

なお「err-disable状態になった原因」を把握しないと、同じ原因で再びerr-diableになる可能性が高いので原因は合わせて調査すべきである。

9.1.2. DHCPスヌーピングの設定

DHCPスヌーピングの有効化

DHCPスヌーピングの有効化は以下コマンドで行える。 この項目のみの有効化ではすべてにポートが非信頼ポートとなるため、信頼ポートも指定する必要がある。

  • すべてのVLANでDHCPスヌーピングは非アクティブ
  • すべてのポートはuntrustedポート
(config)#ip dhcp snooping

また有効化にはVLANも指定する必要がある。

(config)#ip dhcp snooping vlan <VLAN番号リスト>

信頼ポートの設定

信頼ポートの割り当ては以下コマンドで行える。

(config-if)#ip dhcp snooping trust

noをつけると非信頼ポートに指定できる。

リレーエージェント情報オプション

DHCPにはリレーエージェント情報オプション(82)という追加情報を含めることが可能。 このオプションはDHCPパケットをリモートネットワークに転送する機能で追加情報をつけることができる。

この機能ではデフォルトでは有効になっているが、DHCPサーバがこの機能に対応していないと応答が返らない。 そこで無効化を行うためには以下コマンドを行う。

(config)#[no] ip dhcp snooping information option

DHCPパケットのレート制限

DHCPパケットのレートを制限するには以下コマンドで行える。

(config-if)#ip dhcp snooping limit rate <1秒あたりに受信可能なDHCPパケット数>

上記設定のメリットは以下の通り。

  • インターフェースが受信できる1秒あたりのDHCPパケット数を設定できる
  • 不正なクライアントがDHCPサーバに大量のDHCP要求を送りつける攻撃(DOs攻撃)を防ぐ

MACアドレス検証の有効化/無効化

接続されたDHCPクライアントのMACアドレスと、DHCPクライアントが送信するDHCPパケットに含まれる送信元MACアドレスが一致しているか検証する機能を使うには以下コマンドを入力する。

(config)#ip dhcp snooping verify mac-address

DHCPスヌーピングの設定確認

DHCPスヌーピングの設定を確認するには以下コマンドで行える。

show ip dhcp snooping

DHCPスヌーピングバインディングデータベースの設定確認

DHCPスヌーピングバインディングデータベースはPCに割り当てられたIPアドレスが保存される。 このデータベースの確認は以下コマンドで行える。

show ip dhcp snooping binding

なおDHCPスヌーピングバインディングデータベースには以下情報が保存される。

  • DHCPクライアントのMACアドレス
  • DHCPクライアントに割り当てられたIPアドレス
  • IPアドレスのリース時間
  • ポートが属するVLAN
  • スイッチのポート番号

9.1.3. ダイナミックARPインスペクションの設定

ダイナミックARPインスペクション(DAI)はデフォルトでは有効になっていないため、設定する必要がある。

ダイナミックARPインスペクションの有効化

ダイナミックARPインスペクションは以下コマンドで有効化を行える。

(config)#ip arp inspection vlan <vlan番号リスト>

信頼できるポートの指定

DHCPスヌーピングの設定同様にこの項目のみの有効化ではすべてにポートが非信頼ポートとなるため、信頼ポートも指定する必要がある。

(config-if)#ip arp inspection trust

ダイナミックARPインスペクションの設定確認

ダイナミックARPインスペクションの設定確認は以下コマンドで行うことができる。

show ip arp inspection [vlan <VLAN番号>]

9.1.4. VACL

VACLはスイッチ内のVLANにACLを適用するもの。 インバウンド/アウトバンドの指定はなく、VLANに届いたものすべてに適用される。

VACLはダブルダギング攻撃の対策となる。

ダブルタギング攻撃

ダブルタギング攻撃はトランクリンクのカプセル化がIEEE802.1Qの際にネイティブVLANを利用した攻撃手法

通常VLANを使用してネットワークトラフィックを分離する際に、攻撃者がスイッチに対して偽装された二重のVLANタグ(802.1Qタグ)を送信することで実行される。攻撃者がこの方法を使用すると、通常は異なるVLANに属するべきトラフィックが攻撃者が制御するVLANに送信される可能性があるというもの。

この攻撃の対策としては以下のようなことが上げられる。

  • ネイティブVLANを未使用VLAN IDに設定する
  • ネイティブVLANでもタグが付くなどの設定をする

この「ネイティブVLANでもタグが付くようにする」には以下コマンドで行える。

(config)#vlan dot1q tag native

9.2. L3セキュリティ

9.2.1. IPアドレススプーフィングの設定

IPアドレススプーフィングとは攻撃者が自身のIPアドレスを偽って不正に接続する攻撃のこと。

IPソースガードの有効化

IPアドレススプーフィングの防止にはIPソースガードを使用する。 この機能はIPパケットの送信元アドレスを検査するものであり、IPソースガードが有効になっているポートにIPパケットが着信すると検査して、送信元IPアドレスと送信元MACアドレス(オプション)が、「DHCPスヌーピングバインディングデータベース」または手動で作成したバインディングデータベースに載っていれば許可し、載っていなければ拒否する。

有効化は以下コマンドで行える。

(config-if)# ip verify source [ port-security ]

IPソースガードの確認

show ip verify source

show ip verify source binding

9.3. デバイスのセキュリティ

9.3.1. パスワードによるアクセス保護の暗号化

Enableパスワードの暗号化

異なるアルゴリズムを使用してenableパスワードを暗号化するには以下コマンドで行える。

(config)#enable algororithm-type <md5 | scrypt | sha256> secret <パスワード>

暗号化アルゴリズムはshow running-configで確認した後にenable secret項目の数字で判断できる。

アルゴリズム タイプ番号
md5 5
sha-256 8
scrypt 9

ローカル認証時のユーザアカウントパスワードの暗号化

コンソールやVTY接続でのログイン時にローカル認証(ユーザ名/パスワード)をすることができる。

ローカル認証のパスワード暗号化には以下コマンドで行える。

(config)#username <ユーザ名> [privilege <特権レベル>] secret <パスワード>

9.4. AAAを利用したログイン認証設定

AAAは「認証」「認可」「アカウンティング」の略でセキュリティの3機能を示す概念である。

9.4.1. AAAの有効化

AAAの有効化は以下コマンドで行える。

(config)#aaa new-model

9.4.2. ログイン時の認証方式指定と適用

ログインの認証方式の指定には認証方式リストを作成する必要があり、リストの作成は以下コマンドで行える。

(config)#aaa authentication login <default | リスト名> <認証方式1> [<認証方式2>]

認証方式として利用できるのは以下の通り。

認証方式 説明
enable あらかじめ設定されているenableパスワードの利用
group radius Radiusサーバによる認証の有効化
group tacacs+ TACACS+サーバによる認証の有効化
line ラインモードで設定されているパスワードを使用する
local あらかじめ設定されているローカル認証用のユーザアカウント情報を使用
local-case localと同じだが、ユーザ名の大文字小文字を区別
none 認証を使用しない

認証方式の適用は以下コマンドで行える。

(config-line)#login authentication < default | リスト名 >

ちなみに上記例では認証タイプはloginになっているが、指定可能な認証タイプは他に以下のようなものがある。

  • enable ... 特権EXECモード兵の移行認証
  • dot1x ... IEEE802.1X認証
  • ppp ... ppp接続の認証