9.ネットワーク機器のセキュリティ設定
9.1. L2セキュリティ
9.1.1. ポートセキュリティの設定
ポートセキュリティを有効化すると、想定外端末のネットワーク接続を防ぐことが可能。
ポートセキュリティの有効化
ポートセキュリティはデフォルトでは有効になっていないため有効化する必要がある。
ポートセキュリティの有効化にはインターフェイスを手動でアクセスポート/トランクポートにする必要がある。 有効化には以下コマンドで行える。
(config-if)#switchport porrt-security
セキュアMACアドレスの登録
ポートセキュリティの接続違反判断にはMACアドレスをスイッチに登録しておく必要がある。 方法は以下の通り。
- 手動で登録
- フレームが届いた際に自動でその送信元MACアドレスが登録される方法
- 最大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状態にする。 手順は以下の通り。
- err-disabledがかかっているinterfaceに移動し
shutdownコマンド
を適用する - その後、
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接続の認証