CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。
前回投稿記事
こちらのセキュリティの機能投稿記事の続きです。
- スイッチのセキュリティの機能
2-1.ポートセキュリティの概要
ポートセキュリティとは、主に「不正アクセス」を防ぐ為に利用されるスイッチの
セキュリティ機能です。
例えば、社員が自宅から持ってきたノートPCを、社内のケーブルに繋げた場合、
ノートPCは企業の管理下にはないので、ウィルス対策ソフトが入っているか、企業で禁止
されているソフトが入っていないか等は不明です。もし、ウィルス等に感染していた場合、
社内のPCに感染して、社内情報が漏れてしまう等のトラブルが発生して しまうかもしれません。
そこで、想定外の端末がスイッチに接続した来た場合、スイッチに備わるLANポート事に、
許可されているMACアドレスを持つ端末以外を、ネットワークに接続させないようにします。
2-2.ポートセキュリティの動作の仕組み
ポートセキュリティの仕組みは、原則としてあらかじめスイッチに接続する端末のMACアドレスを
登録しておき、登録していないMACアドレスを持つ端末の通信を遮断する仕組みです。
スイッチに搭載されているLANポート単位に許可するMACアドレスを設定します。
このように、ポートセキュリティではポートに使用出来る端末のMACアドレスをスイッチに登録し
フレームの送信元MACアドレスと比較して、許可された端末からの通信かどうか判断します。
スイッチへの接続を許可するMACアドレスを、セキュアMACアドレスをいいます。
2-3.ポートセキュリティの設定と確認
ポートセキュリティの基本的な設定は、次の2つの手順です。
⚫️ ポートセキュリティの有効化
⚫️ セキュアMACアドレスの設定
■ 2-3-1.ポートセキュリティの有効化
ポートセキュリティは、デフォルトでは有効になっていません。その為、先ずインターフェイスで
有効にする必要があります。ポートセキュリティは、手動でアクセスポートまたはトランクポートに
設定したポートでのみ有効化する事が可能です。
なので、DTPによりデフォルトで dynamic autoモード等になっていると、ポートセキュリティを
有効化しようとしても実行したコマンドが拒否されます。
ポートセキュリティを有効化するには、ポートをアクセスポートかトランクポートに設定した後、
インターフェイスコンフィギュレーションモードで次の switchport port-security コマンドを実行します。
(config-if)# switchport port-security
( config )# interface < interface-name >のコマンドでもポートセキュリティを有効化出来ます
■ 2-3-2.セキュアMACアドレスの設定
▶︎ セキュアMACアドレスの設定
ポートセキュリティで接続違反している端末を判断するには、MACアドレスをスイッチに登録
しておく必要があります。登録方法は下記の2つ
⚫️ スタティック(手動で登録する方法)
⚫️ ダイナミック(フレームが届いた際に自動で登録する方法)
スタティックにセキュアMACアドレスを登録するには、インターフェイスコンフィギュレーションモード
で次の switchport port-security mac-address コマンドを実行します。
(config-if) switchport port-security mac-address < macアドレス >
<macアドレス>には、セキュアMACアドレスとして登録したいMACアドレスを指定します。
ダイナミックなセキュアMACアドレスの設定は特にコマンド入力は必要ありません。
ポートセキュリティを有効にしたあと受信したフレームの送信元MACアドレスをセキュアMACアドレス
として自動的に学習します。
▶︎ 最大数の設定
1つのインターフェイスに登録出来るMACアドレスの最大数を指定出来ます。
インターフェイスに登録できるセキュアMACアドレスの最大数を設定するには、
インターフェイスコンフィギュレーションモードで
次の switchport port-security maximum コマンドを実行します。
(config-if)# switchport port-security maximum < 最大数 >
<最大数>には、そのインターフェイスに登録出来るセキュアMACアドレスの最大数を指定します。
登録可能なアドレスは、デフォルトでは 1つだけになってます。
■ 2-3-3.スティッキーラーニングの設定
セキュアMACアドレスは、スタティック登録した際のコマンドが running-configに残ります。
しかし、ダイナミックで登録されたアドレスは running-configに記録されず、
スイッチが再起動した場合、登録した内容が消えてしまいます。
そこで、ダイナミックにセキュアMACアドレスを学習し再起動時に再学習しなくてもいいように
スティッキーラーニングの設定を行います。スティッキーラーニングは、セキュアMACアドレスを
ダイナミックに学習し、その情報を running-configにも反映させる事が出来ます。
スティッキーラーニングの設定は、インターフェイスコンフィギュレーションモードで
次の switchport port-security mac-address sticky コマンドを実行します。
(config-if)# switchport port-security mac-address sticky
##### ■ 2-3-4.セキュリティ違反のモード 許可されていないMACアドレスを持つ端末からのフレームを受信した場合、 以下の3種類のいずれかの違反モードが発動します。
⚫️ protect
通信をブロックするだけのモードです。許可されていない端末のフレームのみ破棄します。
⚫️ restrict
許可されていない端末のフレームのみ破棄するだけでなく、違反の通知(SNMP/Syslog)を行います。
⚫️ shutdown
restrictと同様の違反の通知(SNMP/Syslog)を行うだけでなく、インターフェイスを
シャットダウンします。この時、インターフェイスは、エラーディーゼル状態になります。
その為、他のモードとは異なり一度違反が発生した場合、セキュアMACアドレスとして登録
されている端末であっても通信が出来なくなります。
デフォルトでは、shutdownモードです。
▶︎ 違反モードの設定
セキュリティ違反した時のモードを設定するには、インターフェイスコンフィギュレーションモードで
次の switchport port-security violation コマンドを実行します。
(config-if)# switchport port-security violation < モード >
<モード>には、 [ protect | restrict | shutdown ]のいずれかを指定します。
■ 2-3-5.ポートセキュリティの設定
ポートセキュリティの設定例
▶︎ SW1 Fa0/1、Fa0/2でポートセキュリティを有効化します。(config)# interface range FastEthernet0/1 -2
(config-if)# switchport mode access
(config-if)# switchport port-security
▶︎ Fa0/1に接続されるサーバのMACアドレスをセキュアMACアドレスとしてスタティックに設定します。 また、違反モードの設定は、shutdownモードにします。
(config)# interface FastEthernet0/1
(config-if)# switchport port-security mac-address 0004.4dba.a1a1
デフォルトで、違反モードは shutdownとなっているので設定は必要ありません。
▶︎ Fa0/2は、スイッチ再起動時にセキュアMACアドレスの情報を保持できるように、
スティッキーラーニングを有効化します。また、セキュアMACアドレスの最大数を2とします。
そして、違反モードを shutdownから restrictに変更します。
(config)# interface FastEthernet0/2
(config-if)# switchport port-security mac-address sticky
(config-if)# switchport port-security maximum 2
(config-if)# switchport port-security violation restrict
##### ■ 2-3-6.ポートセキュリティの設定の確認 ポートセキュリティの設定の確認をするには特権EXECモードで 次の show port-security コマンドを実行します。
# show port-security
show port-security コマンドの実行結果を確認していきます。
項目 | 説明 |
---|---|
Secure Port | ポートセキュリティが有効になっているインターフェイス |
MaxSecureAddr | 登録出来るセキュアMACアドレスの最大数 |
CurrentAddr | 現在登録されてるセキュアMACアドレスの数 |
SecurityViolation | 違反カウント(違反発生時に加算されます) |
Security Action | 違反事の動作モード |
##### ■ 2-3-7.セキュアMACアドレスの確認 登録したセキュアMACアドレスを確認をするには特権EXECモードで 次の show port-security address コマンドを実行します。
# show port-security address
show port-security address コマンドの実行結果を確認していきます。
項目 | 説明 |
---|---|
Vlan | ポートが所属している VLAN |
Mac Address | 登録しているセキュアMACアドレス |
Type | 登録方法※1 |
Ports | インターフェイス |
Remaining Age | 自動で登録されたセキュアMACアドレスを消去する迄の時間 |
※1 SecureConfigured:手動 SecureDynamic:自動 SecureSticky:スティックラーニングが有効
■ 2-3-8.インターフェイスの確認
インターフェイスごとにポートセキュリティを確認するには、特権EXECモードで
次の show port-security interface コマンドを実行します。
# show port-security interface < インターフェイス >
<インターフェイス>には、確認したいインターフェイスしを指定します。
show port-security interface コマンドの実行結果を確認していきます。
項目 | 説明 |
---|---|
Port Security | ポートセキュリティの有効(Enabled)、無効(Disabled) |
Port Status | 現在のポートのステータス※2 |
Violation Mode | 違反モード |
Maximum MAC Addresses | 登録出来るセキュアMACアドレスの最大数 |
Total MAC Addresses | このインターフェイスに登録されているセキュアMACアドレスの数 |
Configured MAC Addresses | 手動で登録されているセキュアMACアドレスの数 |
Sticky MAC Addresses | スティッキーラーニングで記録されたセキュアMACアドレスの数 |
Security Violation Count | セキュリティ違反のカウンタ |
※2 例えば、セキュリティ違反が起こった場合、モードがshutdownモードで有れば、
ポートがシャットダウンします。そうなると表示が「Secure-shutdown」と表示されます。
また、セキュリティ違反が起こってポートがshutdownした場合、これを手動で元に戻すには、
インターフェイスコンフィギュレーションモードで shutdown コマンドを実行した後に、
no shutdown コマンドを順に実行します。
■ 2-3-9.エラーディーゼル状態の自動復旧
エラーディーゼル状態のなったインターフェイスは、shutdown コマンドを実行した後に、
no shutdown コマンドを順に実行する事で手動で復旧させる事が出来ます。
しかし、自動復旧の設定をしておけば、一定時間経過後に自動的にエラーディーゼル状態から
解除されインターフェイスが有効になります。
自動でエラーディーゼル状態から復旧させるには、グローバルコンフィギュレーションモードで
次の errdisable recovery cause コマンドを実行します。
(config)# errdisable recovery cause < エラーの原因 >
<エラー原因>の所は、自動復旧させるエラーの原因を指定します。
allを指定すると、全てのエラー原因で自動で復旧します。
psecure-violationを指定すると、ポートセキュリティ違反によるエラーディーゼル状態の
自動復旧を有効化します。
他にも色々種類がありますので詳しくは errdisable recoveryの記事を参照下さい。
また、復旧迄の秒数を変更する事も出来ます。
デフォルトでは、300秒でエラーディーゼル状態から復旧しますが、復旧する秒数を変更するには、
グローバルコンフィギュレーションモードで次の errdisable recovery cause コマンドを実行します。
(config)# errdisable recovery interval < 秒数 >
<秒数>には、30秒から 86400秒まで指定可能です。
そして、errdisable recovery causeを有効にしている場合は、show errdisable recoveryコマンドにより
エラーディーゼル状態の原因を確認する事が出来ます。
# show errdisable recovery
#### 2-4.DHCPスヌーピング ##### ■ 2-4-1.DHCPスヌーピングとは? DHCPスプーフィング(なりすまし)とは、不正なDHCPサーバになりすまし謝った情報をPCに 割り当てて盗聴を行う手法の事をいいます。
例えば、攻撃者が不正なDHCPサーバになりすまし、正規のDHCPクライアントのDHCP要求に、
不正なDHCP応答をして、不正なDHCPからの応答を正規のDHCPクライアントに意図しない
IPアドレス情報を通知し、それを選択してしまった場合、正規のDHCPクライアントの
デフォルトゲートウェイは不正なDHCPサーバから送られて来た攻撃者が操作出来るPCなどに
なってしまいます。そうなれば、攻撃者に情報を盗聴されてしまします。
こうしたDHCPの機能を悪用したなりしますを防止する為に、DHCPスヌーピングがあります。
■ 2-4-2.DHCPスヌーピングの仕組み
DHCPスヌーピングの機能を有効化したスイッチでは、スイッチの各ポートを
信頼できるポート(trusted)と信頼できないポート(untrusted)に分けられます。
「信頼できないポート」から送信されてくる DHCP OFFERと DHCP ACKなどのメッセージは
ブロックされます。そこで、正規のDHCPサーバからのメッセージが送られてくる所だけ
「信頼できるポート」としておき、それ以外のポートは「信頼できないポート」として設定します。
その結果、不正なDHCPサーバから送られてくるメッセージをブロックする事が出来ます。
PCからDHCPサーバへ送信される DHCP DISCOVERや DHCP REQUESTなどの
メッセージは、「信頼できないポート」であってもブロックの対象とならない為、PCと
接続しているポートも、「信頼できないポート」に設定します。
また、DHCPスヌーピングを有効にするとDHCPパケットのやりとりがチェックされ、
DHCPクライアントのMACアドレス、IPアドレス、VLAN、スイッチのポート、リース期間などの
情報をDHCPスヌーピングバインディングテーブルに保存されます。
そうする事で、スイッチ側でも先の情報を知る事が出来ます。
なので、例えば「信頼できないポート」からパケットを受信した場合、そのパケットの情報と
バインディングテーブルに保存されている情報とを比較して、一致した場合はスイッチはパケットを
転送して、アドレスが一致しない場合は破棄します。
#### 2-5.DHCPスヌーピングの設定 DHCPスヌーピングは、デフォルトでは有効になっていません。 なので、有効にする為のコマンドが下記の手順になります。
■ 2-5-1.DHCPスヌーピングの有効化
▶︎ DHCPスヌーピングの有効化するには、グローバルコンフィギュレーションモードで
次の ip dhcp snooping コマンドを実行します。
(config)# ip dhcp snooping
上記のコマンドによりDHCPスヌーピングはグローバルで有効にはなっているのですが、 全てのVLANではディセーブル(無効)となる為、 DHCPスヌーピングを有効にするVLANを指定する必要があります。
▶︎ 有効にするVLANを指定するには、グローバルコンフィギュレーションモードで
次の ip dhcp snooping vlan コマンドを実行します。
(config)# ip dhcp snooping vlan < vlan番号リスト >
<vlan番号リスト>で有効にするvlanを指定します。
VLANの指定カンマ区切りで複数指定するか、ハイフンを使用して範囲を指定する事が出来ます。
■ 2-5-2.信頼できるポートの指定
先程のコマンドでDHCOスヌーピングを有効にすると、全てのポートが「信頼できないポート」と
なります。正規のDHCPサーバが接続されるポートなどは「信頼できるポート」にする必要があります。
「信頼できるポート」にするには、インターフェイスコンフィギュレーションモードで
次の ip dhcp snooping trust コマンドを実行します。
(config-if)# ip dhcp snooping trust
[ no ] を先頭に付けると「信頼できないポート」となります。
■ 2-5-3.リレーエージェント情報オプション(オプション82)
DHCP リレーエージェント情報オプション (オプション 82) を使用すると、DHCPサーバに転送する、
クライアントから生成された DHCPパケットに有益な情報を追加する事が出来ます。
その情報により、DHCPサーバが割り当てるIPアドレスを決定したりする事が出来ます。
このオプションはデフォルトで有効になっています。しかし、DHCPサーバがオプションに対応して
いないと返答が返ってきません。そこで、リレーエージェント情報オプションを無効にするには、
グローバルコンフィギュレーションモードで
次の ip dhcp snooping information option コマンドを実行します。
(config)# no ip dhcp snooping information option
[ no ] を外すとリレーエージェント情報オプション有が効となります。
■ 2-5-4.DHCPスヌーピングの設定確認
DHCPスヌーピングの設定の確認をするには、特権EXECモードで
次の show ip dhcp snooping コマンドを実行します。
# show ip dhcp snooping
show ip dhcp snooping コマンドの実行結果を確認していきます。
▶︎下記で、DHCPスヌーピングがVLAN10で有効になっている事が分かります。
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
10
▶︎また、下記でオプション82が有効になっている事が分かります。
Insertion of option 82 is enabled
▶︎さらに下記でFa0/4が「信頼できるポート」になっている事が分かります。
FastEthernet0/4 yes 60
■ 2-5-4.DHCPスヌーピングバインディングテーブルの設定確認
DHCPスヌーピングバインディングテーブルに格納されている情報を確認するには、
特権EXECモードで次の show ip dhcp snooping binding コマンドを実行します。
# show ip dhcp snooping binding
詳しくは show ip dhcp snooping bindingの記事を参照
#### 2-6.ダイナミックARPインスペクション ##### ■ 2-6-1.ダイナミックARPインスペクションとは? なりすましの攻撃には、DHCPスプーフィング以外にもARPスプーフィングという攻撃手法が あります。ARPスプーフィングは、ARPポイズニングともいわれます。
ARPスプーフィングは、正規のクライアントからのARP要求に対して、ルータと攻撃者両方から
ARP応答が返って来ます。タイミングによっては、「192.168.0.254」と「0000.0000.2222」対応付けて
ARPテーブルに登録してしまいます。このような状態になると、宛先IPはルータ宛になっていますが、
一度攻撃者のPCを向かう事になります。 なので、クライアントは意図しない通信相手にトラフィックを
転送する結果、情報を盗聴される恐れがあります。
このようにARP応答になりすまし、誤った情報教える攻撃手法がARPスプーフィングと呼ばれるもので、
これを防ぐ為の機能が、ダイナミックARPインスペクションとなります。
##### ■ 2-6-2.ダイナミックARPインスペクションの仕組み ダイナミックARPインスペクションでは、スイッチのポートを「信頼できるポート」と 「信頼できないポート」に分けます。「信頼できるポート」の通信はチェックされませんが、 「信頼できないポート」からの通信はチェックするようになります。この時に、 DHCPスヌーピングバインディングテーブルが使用されます。
ARP要求とARP応答がスイッチに着信した際にARP内部のIPアドレスとMACアドレスの紐付けを
チェックしてDHCPスヌーピングバインディングテーブルと異なる場合は、なりすます攻撃と判断し
破棄します。
#### 2-7.ダイナミックARPインスペクションの設定 ##### ■ 2-7-1.ダイナミックARPインスペクションの有効化 ダイナミックARPインスペクションは、デフォルとでは有効になっていません。 なので、ダイナミックARPインスペクションを有効化するには、 グローバルコンフィギュレーションモードで次の ip arp inspection コマンドを実行します。
(config)# ip arp inspection vlan < vlan番号リスト >
<vlan番号リスト>で有効にするvlanを指定します。
VLANの指定カンマ区切りで複数指定するか、ハイフンを使用して範囲を指定する事が出来ます。
■ 2-7-2.信頼できるポートの指定
デフォルトでは先程のコマンドで指定したVLANに属する全てのポートが「信頼できないポート」と
なります。チェックしなくてもいいポートなどは「信頼できるポート」に設定する必要があります。
「信頼できるポート」にするには、インターフェイスコンフィギュレーションモードで
次の ip arp inspection trust コマンドを実行します。
(config-if)# ip arp inspection trust
##### ■ 2-7-3.ダイナミックARPインスペクションの設定確認 ダイナミックARPインスペクションの設定を確認するには、特権EXECモードで 次の show ip arp inspection コマンドを実行します。
# show ip arp inspection [< VLAN番号 >]
<VLAN番号>を指定すると、対象のVLAN情報を確認出来ます。
#### 2-8.VACL VACL(VLAN access-list)とは、インターフェイスに適用するACLではなく、 スイッチ内のVLANにACLを適用するものになります。 インバウンド、アウトバウンドといった指定はなく、そのVLANに届いた全てに適用されます
VACLは、ダブルタギング攻撃の対策の一つです。
■ ダブルタギング攻撃
ダブルタギング攻撃は、トランクリンクのカプセル化がIEEE 802.1Qの際にネイティブVLANを
利用した攻撃手法です。攻撃者がトランクリンクのネイティブVLANと同じVLANに属している
場合に使用される方法です。
対策として、ネイティブVALNでもタグが付くなどの設定をするといった事をする事で
対策出来ます。ネイティブVALNでもタグが付くようにするには、
グローバルコンフィギュレーションモードで次の vlan dot 1p tag native コマンドを実行します。
(config)# vlan dot 1p tag native
#### 2-9.その他の不正アクセス
■ MACアドレスフラッディング
ターゲットのMACアドレステーブルを飽和させ、フラッディングしたデータを盗聴する攻撃
対策 : ポートセキュリティの有効化、IEEE802.1X認証の使用
■ DTPによるVLANホッピング
トランク機能を悪用して本来アクセス出来ないVLANにアクセス(VLANホッピング)して、
一般ユーザに開放しているトランクポートを、DTPによって不正にトランクポートに変更させて
全VLANと通信可能にする攻撃
対策 : DTPネゴシエーションの無効化
■ ダブルタグによるVLANホッピング
トランク機能を悪用して本来アクセス出来ないVLANにアクセス(VLANホッピング)して、
VLANタグを二重に付けて異なるVLANにアクセスする攻撃(ネイティブVLANがタグを付けない
という仕組みを悪用して行っている)
■ STP
ルートブリッジに選出されるように不正なスイッチをネットワークに追加し
不正なスイッチを経由するフレーム盗聴する攻撃
対策 : BPDUガードの有効化