セキュリティ機能

# 基本的なセキュリティ用語

### インシデント
情報セキュリティを脅かす実際に発生した事件や事故の事。不正アクセスやコンピューターウィルスの感染といった外部からの攻撃によって発生するものだけではなく、機密データの紛失や操作ミスといった社内ネットワーク内部から発生したものも含む。

### 脆弱性
何らかのプログラム上の欠陥やシステム設計、ネットワーク設計上の問題点といったセキュリティ上の欠陥全般を指す。ただし、脆弱性があるからといって必ずしも危険に晒されるわけではなく、脆弱性を悪用され攻撃を受けることでインシデントへつながる。

### エクスプロイト
社内ネットワークやシステムが抱えている脆弱性を悪用して攻撃するために作成されたプログラムや実際の攻撃のこと。

### 脅威
社内ネットワークやシステムに対して攻撃や危害を加える要因全てを指す。

+ **技術的要因**
不正アクセスやコンピュータウィルス、通信データの盗聴・改ざんなど

+ **人的用意**
操作ミスや機密データの紛失、悪意の有無にかかわらず発生する社内ネットワークの利用者による不正利用などといった、人に起因する脅威

+ **物理的要因**
地震などの天災や火災、敷地内への不法侵入や機器の破壊行動など

# 一般的なセキュリティ脅威と攻撃手法

### なりすまし攻撃（スプーフィング攻撃）
IPアドレスやMACアドレスを偽造することで、攻撃者を別の人物に見せかけて行う攻撃の総称。以下の種類がある。

### Dos攻撃（Denial-of-Service攻撃）
サービス拒否攻撃といわれ、サーバなどに過剰な負荷をかけることでサービスを妨害する攻撃の総称。

#### TCP SYNフラッド攻撃
攻撃者が送信元を偽って攻撃対象へ3ウェイハンドシェイクのSYNメッセージを大量に送り付ける。ACKパケットの返信を行わないためTCPコネクションが未確立の状態（**ハーフオープン状態**）で大量に残り、タイムアウトするまでリソースを使い続けるため、正規のユーザからのアクセスに対して応答できず、サービスが妨害される。

![キャプチャ30.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/225539a0-8eb1-0e8d-3847-70cca3882d5c.png)


### DDoS攻撃（Distributed-Denial-of-Service攻撃）
分散型サービス拒否攻撃といわれ、DoS攻撃を発展させた攻撃手法。ウィルスなどに感染させて不正に乗っ取った複数のPCを操作してDoS攻撃を行う。ウィルスに感染したPCはボットと呼ばれ、普段は正常に動作しているが攻撃者からの命令を受け取ると一斉に攻撃を開始する。
攻撃を開始する機器が多数に分かれているため、機器を特定して対策することがDoS攻撃よりも困難。また、第三者の機器を踏み台としていようしているため、攻撃者を特定することも難しい。

![キャプチャ31.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/6ebc9fa4-bf23-66db-1f97-5eea2878cdf7.png)

### 中間者攻撃（man-in-the-middle攻撃）
ターゲットに直接損害を与えることよりも、攻撃対象の通信内容を盗聴・改ざんすることを目的とした攻撃手法。

### リフレクション攻撃
送信元を偽った要求をサーバに送り、ターゲットに大量の応答を返すように仕向ける攻撃（増幅攻撃やアンプ攻撃とも呼ばれる）

### バックドア
常のセキュリティを無視して侵入できるよう、不正な入口（裏口）を仕込む攻撃手法や、その仕込まれた裏口のこと。設置することで、通常は必要となるユーザ認証などのセキュリティチェックを迂回して、システムにアクセスできるようになる。

### ゼロデイ攻撃
まだ対策が行われていない脆弱性を狙った攻撃のこと。OSやソフトウェアのアップデートをしても、最新バージョン自体がまだ修正プログラムの配布前の状態なので攻撃を防ぐことはできず、セキュリティソフトでも同様に、脆弱性を学習する前なので攻撃を防ぐことはできない。

:::note info
攻撃を事前に防ぐことは困難なため、攻撃を受けることを前提としてその後の復旧に重きを置いた対策が有効。
:::


## マルウェア
悪意のある目的のために作成されたソフトウェアやプログラムの総称。感染すると、情報漏洩やファイルの破壊、遠隔操作のためのバックドア（侵入経路）の作成などが実行される。以下の種類がある。

#### トロイの木馬
一見有用そうなソフトウェアや電子メールの添付ファイルを装って配布される。自己増殖は行わない。

#### ウィルス
単体では動作できず、他のアプリケーションやファイルに挿入されることで実行が可能となる。感染すると、DDoS攻撃の踏み台として悪用されるほか、ウィルスの複製を他のアプリケーションに感染させるように仕向ける。メールなどから人から人へ配布されることで、他のコンピュータに伝播していく。

#### ワーム
ウィルスとは異なり、独立したプログラムとして動作が可能。ネットワーク経由でコンピュータに感染し、独自に増殖・伝播を繰り返す。

### バッファオーバーフロー攻撃
攻撃対象のコンピュータが許容できるサイズを超えた巨大なデータを送り付けることで誤作動を起こさせ、悪意のあるコードを実行させる攻撃手法。管理者権限の乗っ取りや他のターゲットに向けた攻撃の踏み台としてサーバ利用されるなどの被害を受ける。

### ソーシャルエンジニアリング攻撃
マルウェアやなりすまし攻撃などの技術的な要素に頼らず、人の社会的・心理的な弱点を利用して情報を取得する攻撃手法の総称。

+ 身元を偽造してパスワードなどの機密情報を聞き出す
+ パスワードを入力する手元をのぞき見する（ショルダーハッキング）

### フィッシング
被攻撃者を悪意のあるWebサイトに誘導する手法の総称。以下の手法がある。

#### スピアフィッシング
特定の個人・団体を狙って行われるフィッシングの手法で、同じ会社の上司や同僚を装って偽のURLにアクセスさせる手法。

#### ピッシング
電話などの音声案内を通じて被攻撃者を誘導する手法

#### スミッシング
SMSメッセージを用いたフィッシング手法。SMSを使用して偽のWebサイトに誘導する

### ブルートフォースアタック（総当たり攻撃）
パスワードを破る手法の1つ。パスワードに使用されている文字列を推測し、パスワードが解除できるまで考えられるパターンを試行し続ける。

## VLANホッピング
攻撃者が異なるVLANに不正にアクセスする技術のこと。スイッチの不適切な設定や管理によって可能となり、防ぐためにはトランクポートの適切な設定や、不要なVLANの無効化などの対策が必要。

### ダブルタグによるVLANホッピング
VLANホッピングの1つ。VLANタグを2重につけて、異なるVLANにアクセスする攻撃

### DTPによるVLANホッピング
VLANホッピングの1つ。一般ユーザに開放しているアクセスポートを、DTPによって不正にトランクポートに変更させて、全VLANと通信可能にする攻撃

# ネットワークデバイスの保護

### 情報セキュリティポリシー
企業や団体におけるセキュリティ対策の方針や行動指針を示すもの。3段階で構成されるのが一般的。

| 構成名 | 内容 |
|:-:|:-:|
| ポリシー（基本方針）  | セキュリティに対する基本的な考え方や方針  |
| スタンダード（対策基準）  |  セキュリティ確保のためにどのような対策を行うのか記す |
| プロシージャ（実施手順）  | 対策基準ごとに具体的な手順  |

### enable algorithm-typeコマンド
**書式：enable algorithm-type [md5 | scypt | sha256] secret [パスワード]**
異なるアルゴリズムを用いて[イネーブルパスワード](https://qiita.com/matuumo/private/fe4323211b9f7b46c8f2#%E3%82%A4%E3%83%8D%E3%83%BC%E3%83%96%E3%83%AB%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89)を暗号化するコマンド。グローバルコンフィギュレーションモードで行う必要がある。scrypt（タイプ番号9）やsha256（タイプ番号8）を指定すると、MD5よりも強度の高いアルゴリズムを使用してパスワードを暗号化できる。

:::note warn
設定できるパスワードは1つだけ。複数のアルゴリズムでコマンドを続けて入力すると、後から設定したパスワードに上書きされてしまうので注意が必要。
:::

### usernameコマンド
**書式：username [ユーザ名] [privilege <特権レベル>] algorithm-type [md5 | scrypt | sha256] secret [パスワード]**
[ローカル認証](https://qiita.com/matuumo/private/fe4323211b9f7b46c8f2#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E8%AA%8D%E8%A8%BC)に使用するユーザアカウントのパスワードの暗号化するコマンド。グローバルコンフィギュレーションモードで行う必要がある。
ユーザアカウントのパスワードは、1つのユーザ名に対して平文形式と暗号化形式のパスワードを同時に設定することができず、どちらか一方のみとなる。後から入力されたコマンドはエラーになる。

:::note info
平文形式から平文形式のパスワードの上書き、暗号化形式から暗号化形式のパスワードの上書きは可能。
:::

### service password-encryptionコマンド
暗号化されていないパスワードを自動的に暗号化するコマンド。グローバルコンフィギュレーションモードで行う必要がある。一度暗号化されたパスワードの文字列はクリアテキストの文字列に変換されることはない。

:::note warn
暗号化レベルは低いので、`enable secret`コマンドの使用を推奨しているらしい
:::


## ファイアーウォール
インターネットなどの外部のネットワークから企業や家庭内のネットワークを守るためのソフトウェアや機器の事。ネットワーク上に公開してあるデータに対する不正アクセスや内部ネットワークへの攻撃から守るために使用される。
インターネットなどの外部ネットワークと内部ネットワークの境界に位置しており、自身を経由していくネットワークを監視し、許可されていない通信をブロックする。

+ **ステートフルインスペクション**
内部から出ていった通信を確認し、それに対する戻りの通信を自動で判断し許可する機能。

![キャプチャ32.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/a481b7e6-5c39-7c44-6173-f0bf040cc5cc.png)

### DMZ(DeMilitarized Zone)
非武装地帯と呼ばれ、内部ネットワークと外部ネットワークの中間にある領域。どちらにもアクセス可能な領域で、インターネットに公開するサーバなどを設置する。内部ネットワークにサーバを置いてしまうと不正アクセスされることを回避するために用意を行う。

![キャプチャ33.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/e42f2b74-a85a-b816-b525-a0155bcd4bf4.png)

### IDS(Intrusion Detection System)
侵入検知システムとよばれ、外部からの異常な通信や不正アクセスが発生した際にその通信を検知・記録し、管理者に通知することができる。通知を行うだけで通信をブロックすることはできない。

![キャプチャ35.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/75fdd38b-0bc4-fb69-7a98-bf031a0e86a6.png)


### IPS(Intrusion Prevention System)
侵入防止システムとよばれ、IDSと同様に異常な通信や不正アクセスを検出・記録し、管理者への通知を行う。それに加えて、異常を検出した場合は即座にその通信をブロックすることができる。

![キャプチャ36.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/f0932014-e834-4cde-2c7d-c95f096518dd.png)

シグネチャ（悪意の攻撃を識別するための情報）と受信したパケットをすべて比較するため、誤検知（正常な通信を不審な通信として遮断）が発生したり、セキュリティイベントの量が膨大になり、管理者が必要な情報を見つけるのが困難であるといった課題があった。


## NGFW(Next Generation FireWall)
従来のファイアウォールに対してより高度な機能を有している。パケットフィルタリングやステートフルインスペクションに加え、Ciscoの次世代ファイアウォール製品では以下のような機能を有している。

### AVC(Application Visibility and Control)
アプリケーション単位で識別・フィルタリングする機能。この機能により、ファイル共有やゲーム、ビデオなどのアプリケーションを識別してフィルタリングすることが可能。

### AMP(Advanced Malware Protection)
高度なマルウェア防御と呼ばれ、ネットワークを行き来するファイルを観測・記録し続けることで、侵入したマルウェアを検知した際に、過去に遡って感染経路を特定することができる機能。また、シグネチャによるチェックで検出されないような未知のマルウェアの疑いがあるファイルを検知した際に、リアルタイムで分析し悪意のあるファイルかどうかの判断をすることも可能。

### URLフィルタリング
HTTP通信に用いられるURLに基づいて、通信トラフィックをフィルタリングすることができる機能。

## NGIPS(Next Generation IPS)
従来型のIPSの機能であるシグネチャ（悪意の攻撃を識別するための情報）を使用した外部からの攻撃の通知・ブロックに加え、ホストからOSや実行中のアプリケーション、使用しているポートなど様々な情報を収集し、それらに関連する比較のみ行う。これにより誤検知の発生率が下がり、セキュリティイベントとしても**必要な情報のみが記録される**ようになるため、管理者の負担も軽減される。

:::note info
従来型IPSでは、シグネチャと受信したパケットを**すべて比較する**ため、誤検知が発生したり、**セキュリティイベントの量が膨大**になり、管理者が必要な情報を見つけるのが困難であるといった課題があった。
:::



## ネットワークにおけるセキュリティ対策の実施
各種ネットワーク機器が不特定多数の人によって操作できる環境では、不正ログイン・不正操作をの危険性を高めるため、鍵付きのラックや部屋に機器を収納することが防ぐことができる。

:::note info
スイッチのセキュリティレベルを上げるため、未使用のポートは以下のようにしておくことが推奨される。

+ **アクセスポートにする**
+ **ネイティブVLANを未使用のVLANに変更する**
+ **shutdownする**

:::


### 多要素認証
異なる種類の要素を組み合わせて認証を行う方式の事。特に異なる2要素を組み合わせて行うものを**2要素認証**という。要素の種類は以下の3種類になる。

+ **知識要素**(ID・パスワード)
+ **所持要素**(ワンタイムパスワード・デジタル証明書など)
+ **生体要素**(指紋、顔、音声、虹彩など)

# ポートセキュリティ
想定外の端末がスイッチに接続されてその通信が不正にネットワークを通過することを防ぐための技術。想定外の端末かを判断するには、MACアドレスを使用して端末を識別する。
スイッチに登録されているMACアドレスのことを**セキュアMACアドレス**という。

![キャプチャ37.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/6c5f4e13-2e14-4b88-8552-90b76dcfc5d9.png)

ポートセキュリティはデフォルトでは有効になっていないため、インターフェイスを手動でアクセスポートまたはトランクポートに設定する必要がある。

### switchport port-securityコマンド
ポートセキュリティを有効化するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。

:::note warn
CiscoのCatalystスイッチのインターフェイスは、DTPによりデフォルトでdynamic desirableやdynamic autoモードになっているため、コマンド実行しても拒否される。
:::

```markdown:インターフェイス0/1に有効化する場合
SW01#conf t
SW01(config)#interface FastEthernet 0/1
SW01(config-if)#switchport mode access 
SW01(config-if)#switchport port-security 
SW01(config-if)#end
```


## セキュアMACアドレスの登録
接続違反をしている端末を判断するためにMACアドレスをスイッチに登録しておく必要がある。登録方法は2つ存在する。

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

| 種類 | 説明 |
|:-:|:-:|
| スタティックセキュアMACアドレス  | 静的に設定したMACアドレス。MACアドレステーブルと`running-config`に追加される  |
| ダイナミックセキュアMACアドレス  | 動的に学習したMACアドレス。MACアドレステーブルに追加される  |
| スティッキーセキュアMACアドレス  | 動的に学習したMACアドレス。MACアドレステーブルと`running-config`に追加される  |

### switchport port-security maximumコマンド
**書式：switchport port-security maximum [最大数]**
インターフェイスに登録できるセキュアMACアドレスの最大数を設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。登録可能なアドレスはデフォルトで1つだけ。

### switchport port-security mac-addressコマンド
**書式：switchport port-security maximum mac-address [MACアドレス]**
セキュアMACアドレスを登録するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。登録したMACアドレスを指定する。

:::note warn
自動の場合はコマンドを実行する必要はない。
:::

## スティッキーラーニング
セキュアMACアドレスは指定した最大数だけ登録できるが、手動で設定した後、登録個数が余っていた場合自動で登録される形になる。

+ 手動登録⇒`running-config`に残る
+ 自動登録⇒`running-config`に記録されないので、再起動時消去される。

そこで、自動で登録されたセキュアMACアドレスが`running-config`に保存されるようにする方法が、**スティッキーラーニング**と呼ばれる。

### switchport port-security mac-address stickyコマンド
スティッキーラーニングを有効にするコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。

## 違反時の動作の指定
違反時の動作にはいくつかのモードがある。


![kkk37453.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/f32a941e-a419-5577-087f-2e8ee905c203.jpeg)


#### protectモード
通信をブロックするだけのモード。ブロックされるのはセキュアMACアドレスとして登録されていない端末からの通信だけになる。セキュリティ違反が発生した後も、許可しているMACアドレスのフレームは転送する。

#### restrictモード
通信をブロックするだけでなく、セキュリティ違反時のカウンタを加算する。また、[SNMP](https://qiita.com/matuumo/private/3dc157104fbe5f5473e9#snmpsimple-network-manegement-protocol)による通知を行う。Syslogメッセージも送信される。

#### shutdownモード
resrictモードと同様に、**SNMPによる通知、Syslogメッセージを送信、違反カウントの加算**を行うだけでなく、**インターフェイスをシャットダウンする**。この時、インターフェイスはエラーディセーブル状態になる。そのため、一度違反が発生すると、セキュアMACアドレスとして登録されている端末であっても通信ができなくなる。
**デフォルトの設定ではshutdownモードとなる**。


### switchport port-security violationコマンド
**書式：switchport port-security violation [モード]**
セキュリティ違反が起きた時のモードを設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。デフォルトの設定ではshutdownモード

### show port-securityコマンド
ポートセキュリティの設定を表示するコマンド。特権EXECモードで行う必要がある。

```markdown:show port-securityコマンド
SW01#show port-security 
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
               (Count)       (Count)        (Count)
--------------------------------------------------------------------
        Fa0/1        1          1                 0         Shutdown
----------------------------------------------------------------------
```


### show port-security addressコマンド
登録されたMACアドレスを確認するコマンド。特権EXECモードで行う必要がある。

### show port-security interfaceコマンド
**書式：show port-security interface [インターフェイス]**
インターフェイスごとにポートセキュリティの設定を確認するコマンド。特権EXECモードで行う必要がある。

```markdown:インターフェイス0/1の場合
SW01#show port-security interface FastEthernet 0/1
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0060.3E98.975B:1
Security Violation Count   : 0
```


## エラーディゼーブル状態の自動復旧方法
エラーディゼーブルになったインターフェイスは、shutdown,no shutdownコマンドを実行することで手動で復旧させることができる。だが、自動復旧の設定をしておくことで、一定時間経過後に自動的に解除されインターフェイスを有効にすることができる。

### show errdisable recoveryコマンド
現在スイッチで自動復旧になっているエラーの原因を確認するコマンド。特権EXECモードで行う必要がある。初期の状態は全てDisableとなっている。

### errdisable recovery causeコマンド
**書式:[no] errdisable recovery cause [エラーの原因]**
自動でエラーディセーブルから復旧させるコマンド。特権EXECモードで行う必要がある。[エラーの原因]は、自動復旧させるエラーの原因を指定する。allを指定すると全てのエラー原因で自動復旧を有効にする。エラーディセーブルの自動復旧だけを有効にする場合は、`psecure-violation`を指定する。

### errdisable recovery intervalコマンド
**書式:errdisable recovery interval [秒数]**
復旧までの秒数を変更するコマンド。特権EXECモードで行う必要がある。デフォルトでは300秒で、30秒～86400秒まで指定可能。

# DHCPスヌーピング
DHCPスプーフィングという不正なDHCPサーバを用意してなりすまし、誤った情報をPCに割り当て盗聴を行う手法がある。こうしたDHCPの機能を悪用した不正なクライアントがDHCPサーバに大量のDHCP要求を送りつける攻撃を防ぐ。

![キャプチャ38.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/22c3a790-d57b-3ee9-b999-3ab04dd8b7f1.png)

設定すると、スイッチの各ポートは以下の用に分けられる。

+ 信頼できるポート(trust)
+ 信頼できないポート(untrust)

信頼しないポートから送信されてくるDHCP OFEERやDHCP ACKなどのメッセージはブロックされる。PCからDHCPサーバに送信されるDHCP DISCOVERやDHCP REQUESTなどのメッセージは、信頼しないポートであってもブロックの対象とはならない。

![キャプチャ39.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/f336e12a-7a3d-2052-6031-5aa737645268.png)

#### DHCPスヌーピングバインディングデータベース
DHCPサーバからクライアントPCに割り当てられるIPアドレスなどの情報をスイッチ側でも知ることができ、その情報を保存するデータベースのこと。ダイナミックARPインスペクションと組み合わせることで、ARPスヌーフィングを防ぐことができる。

![キャプチャ40.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/9b5e8263-7f1c-141d-430c-f3383b49f0f0.png)

## DHCPスヌーピングの設定

### ip dhcp snoopingコマンド
DHCPスヌーピングを有効にするコマンド。グローバルコンフィギュレーションモードで行う必要がある。デフォルトは無効になっている。
有効直後は以下の状態になっている。

+ **すべてのVLANでDHCPスヌーピングは非アクティブ**
+ **すべてのポートはuntrustedポート**

### ip dhcp snooping vlanコマンド
**書式:ip dhcp snooping vlan [VLAN番号リスト]**
DHCPスヌーピングが有効になっても全てのVLANでディセーブルとなるため、有効にするVLANを指定するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### ip dhcp snooping trustコマンド
DHCPスヌーピングを有効にすると全てのポートが信頼できないポートとなるため、信頼できるポートにするコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。信頼できないポートにしていた場合、DHCPパケットの破棄、固定IPアドレスのPCからの通信は不正だと判断されてりする。

### ip dhcp snooping limit rateコマンド
**書式:ip dhcp snooping limit rate [1秒あたりに受信可能なDHCPパケット数]**
DHCPパケットのレート制限を行うコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。インターフェースが受信できる1秒あたりのDHCPパケット数を設定することでDoS攻撃を防ぐ。

### no ip dhcp snooping trustコマンド
信頼できないポートにするコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。


### no ip dhcp snooping information optionコマンド
リレーエージェント情報オプションを無効にするコマンド。グローバルコンフィギュレーションモードで行う必要がある。デフォルトは有効になっている。

:::note info
**リレーエージェント情報オプション(オプション82)とは？？**
DHCPパケットをリモートのネットワークに転送する役割を担うリレーエージェントで、追加情報を付けることができる。その情報により、DHCPサーバが割り当てるIPアドレスを決定することができる。
:::

### show ip dhcp snoopingコマンド
DHCPスヌーピングの設定情報を確認するコマンド。特権EXECモードで行う必要がある。

![k63048.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/a92e052b-fed4-aba0-e6e6-e18463102490.jpeg)

:::note info
**オプション82とは？？**
スイッチがDHCP要求を受信した際、そのパケットにDHCP要求を受信したポート情報を付加し、DHCPサーバへ転送する機能のこと。
:::


### show ip dhcp snooping bindingコマンド
DHCPスヌーピングバインディングデータベースを確認するコマンド。特権EXECモードで行う必要がある。

### show ip dhcp snooping statistics
**書式:show ip dhcp snooping statistics [detail]**
DHCP snoopingの統計情報を表示するコマンド。特権EXECモードで行う必要がある。オプション指定するとより詳細な情報が表示される。

![k57011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/7692d96d-0cd1-cbd5-ad00-b57519779dfd.jpeg)


# DAI(Dynamic ARP Inspection)
なりすましの攻撃にはDHCPスプーフィング以外に**ARPスプーフィング**という攻撃手法もあり、ARPポイズニングとも呼ばれる。ARPの応答になりすまし、誤った情報を教える。これを防ぐための機能のことをダイナミックARPインスペクションといい、ARPパケットを検査する。

DAIでは以下のポートに分類される。

+ **trustedポート**
着信したARPパケットを検査せずに通過する。

+ **untrustedポート**
着信したARPパケットは検査して、IPアドレスとMACアドレスの対応が正しければ許可し、正しくなければ拒否（パケットを破棄）する。IPアドレスとMACアドレスの対応は、DHCPスヌーピングバインディングデータベースや手動で作成したバインディングデータベースを使用して確認する。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/6b0e8659-9a0f-4560-01c2-10eee6e2d0d9.png)


## DAIの設定

### ip arp inspectionコマンド
**書式:ip arp inspection vlan [VLAN番号リスト]**
ダイナミックARPインスペクションを有効にするコマンド。グローバルコンフィギュレーションモードで行う必要がある。デフォルトでは無効になっている。

### ip arp inspection trustコマンド
ダイナミックARPインスペクションを有効にすると全てのポートが信頼できないポートとなるため、信頼できるポートにするコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。

### show ip arp inspectionコマンド
**書式:show ip arp inspection [vlan <VLAN番号>]**
ダイナミックARPインスペクションの設定を確認するコマンド。特権EXECモードで行う必要がある。

# VACL(VLAN ACL)
スイッチ内のVLANにACLを適用するもの。インバウンドやアウトバウンドといった指定はなく、そのVLANに届いたもの全てに適用される。ダブルタギング攻撃の対策の1つ。
![キャプチャ41.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/85f98919-f194-61d2-fedf-0e63b609ce97.png)

:::note info
**ダブルタギング攻撃とは？？**
トランクリンクのカプセル化がIEEE802.1Qの際にネイティブVLANを利用した攻撃手法。攻撃者がトランクリンクのネイティブVLANと同じVLANに属している場合に使用される。

![キャプチャ42.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/772c7e35-9443-ea11-88e7-5e799d85530e.png)

ルータのACLでは制御ができないため、以下ように対策をすることができる。

+ VLANを適用して通信を制御する
+ スイッチのアクセスポートにVLAN以外を割り当てる
+ ネイティブVLANを未使用のVLAN IDに設定する
+ ネイティブVLANでもタグが付くなどの設定をする
:::

### vlan dot1w tag nativeコマンド
ネイティブVLANでもタグが付くようにするコマンド。グローバルコンフィギュレーションモードで行う必要がある。


# AAA
ユーザがネットワーク上のサービスやリソースを利用する際に、無条件ですべてのことができる状態はセキュリティ状あまりいいものではない。
セキュリティを実現させる際に以下の3つの項目の頭文字をとり、主要な3つの機能をもとに考える概念の事。

+ **Authentication**
ネットワークサービスやリソースを利用する際、ユーザIDやパスワードなどの情報をもとに、アクセスが許可されたユーザなのかどうかなどの確認を行うこと。

+ **Aurhorization**
認証により確認が行われたユーザがどういった機能を利用できるのかを決定すること。

+ **Accounting**
ネットワークやリソースを利用しているユーザがいつログインして、どのようなことをおこなっているか行動を監視し記録すること。

#### AAAオーバライド
WLCの「Advanced」タブを開くことで有効にすることができる。有効にするとRADIUSサーバの認証情報に基づいて動的にVLANを割り当てることができる

![kk51302.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/7567d5a9-f1cb-2ca7-521b-315530b1f422.jpeg)




### RADIUS(Remote Authentication Dial In User Service)
AAAを実装する際に使用される業界標準プロトコルの1つで、認証やアカウティングの機能を持っている。以下の特徴がある。

+ UDPを使用するサーバクライアント型
+ 認証は**1812**ポートで、アカウティングに**1813**ポートを使用
+ やり取りする際にパケットのパスワードだけが暗号化される
+ 認証と認可の機能が統合されている
+ アカウティングをサポートする


### TACACS+(Terminal Access Controller Access Control System)
AAAを実装する際に使用されるプロトコルの1つで、以下の特徴がある。

+ Cisco独自のプロトコル
+ 認証、認可、アカウティングは全て独立している
+ **TCP**を使用するサーバクライアント型
+ **49**ポートを使用
+ パケット全体を暗号化する

### CoA(Change-of-Authorization)
RADIUS許可の変更を意味し、AAAサーバがAAAクライアントにCoA要求パケットを送信し、すでに存在しているセッションの再認証を行う。これにより、ポリシーの変更が発生した場合、すでに認証されているセッションにも新しいポリシーを適用できる。

## AAAを使用したログイン認証
ルータやスイッチでAAAを有効にすると、コンソールパスワードやVTYパスワード、ローカル認証の方式に加え、RASIUSサーバやTACACS+サーバを使用した認証方式などを設定することが可能になる。

### aaa new-modelコマンド
AAAを有効にするコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### aaa authentication loginコマンド
**書式：aaa authentication login [default | リスト名] [認証方式1] [認証方式2]**
認証方式リストを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。[default]を指定した場合、指定した認証方式がVTYラインやコンソールラインなどどすべてのログイン接続の際に使用される。[認証方式]は複数指定可能で、前で指定している方式で接続エラーとなった場合は、後ろの方式による認証が行われる。

| 認証方式 | 意味 |
|:-:|:-:|
| enable  | あらかじめ設定されているイネーブルパスワードを使用する  |
| group radius  | RADIUSサーバによる認証を使用する  |
| group tacacs+  | TACACS+サーバによる認証を使用する  |
| line  | あらかじめラインモードで設定されているパスワードを使用する(コンソールパスワードやVTYパスワードでのログインと同様のログイン方法)  |
| local  | あらかじめ設定されているローカル認証用のユーザアカウント情報を使用する(ローカル認証でのログインと同様のログイン方法)  |
| local-case  | localと同じだが、ユーザ名の大文字小文字を区別する  |
| none  | 認証を使用しない  |
| ppp  |  インターネットやWANを通じて接続するユーザの認証に使用 |

### login authenticationコマンド
**書式:login authentication [default | リスト名]**
認証方式リストを適用するコマンド。ラインコンフィギュレーションモードで行う必要がある。作成したリストを適用するにはそのリスト名を指定する。

# IEEE 802.1X
スイッチに接続しているPCや無線のアクセスポイントを利用するPCが社内ネットワークにアクセスする前に、ユーザIDとパスワードなどを使用して認証を行う。認証用のRADIUSサーバに登録されている正規のサーバであれば、社内のネットワークにアクセスでき、登録されていないユーザであればスイッチやアクセスポイントでブロックされる。

![キャプチャ43.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/4472f8f1-b769-69ce-16b6-0d7c83bfa558.png)

IEEE 802.1X認証を利用するには以下の3つの要素が必要になる。

![kk38795.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/a2c9db84-2d1c-81d9-5d68-22454ee0fde3.jpeg)


#### サプリカント
ユーザが入力した認証情報をオセンティケータに送信するPC側のソフトウェアのこと。Windows PCなどは最初からインストールされている。
EAPというデータリンク層のプロトコルを使用して運ぶ。LANで使用できるように**EAPOL(EAP over LAN**)を使用する。

#### オセンティケータ
PCから送信されてくるユーザ名やパスワードなどの認証情報をRADIUSサーバに中継する機器のこと。IEEE 802.1X対応のスイッチや無線のAPがオーセンティケータとなり、それがRADIUSクライアントになる。

#### 認証サーバ
ユーザ認証を行うもので、RADIUSサーバが認証サーバになる。RADIUSプロトコルを使用してオーセンティケータとやり取りを行う。

## ワイヤレスLANでの認証
アクセスポイントがオーセンティケータとして動作することで、ワイヤレスLANにおいてもユーザ認証を実装することができる。ユーザの認証情報はEAPというデータリンク層のプロトコルを使用して送受信される。

![キャプチャ55.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/13e7643f-6708-866f-5e05-ebafd1dbb5b1.png)


### EAP(Extensible Authentication Protocol)
IEEE802.1X認証で使用される認証プロトコルで、様々な認証方式に対応している。

| 認証方式 | 説明 |
|:-:|:-:|
| LEAP  | クライアントとサーバ間でユーザIDとパスワードによる認証を行うCisco独自の方式。脆弱性が発見されたため現在では非推奨  |
| EAP-FASR  | クライアントとサーバ間でユーザIDとパスワードによる認証を行う際に、PACという独自フォーマットを使用して認証を行うCisco独自の方式。電子証明書を必要としない特徴がある  |
| PEAP  | クライアントはユーザIDとパスワードで認証を行い、サーバは電子証明書で認証を行う方式。Windows PCで実装されている|
| EAP-TLS  | クライアントとサーバ双方が電子証明書で認証を行う。セキュリティは非常に高いが証明書の管理などの運用に手間がかかる。Windows PCで実装されている  |