SNMPのセキュリティと信頼性

SNMPのセキュリティと信頼性

SNMPはUDPで動作しますので、送信元の偽装やパケットの
中身の改ざんなどのリスクが存在します。

さらに、UDPはTCPとは違い、パケットロスしても再送する仕組みが
ありませんので、信頼性という面でも問題があります。

そこで今回はSNMPのセキュリティと信頼性について書いてみたいと思います。

 

SNMPのセキュリティ

SNMPは「SNMPv1」「SNMPv2c」「SNMPv3」という3つのバージョンが
存在します。
(ちなみに、「SNMPv2c」の「c」はコミュニティ名をベースに認証を
実施するという意味。)

バージョンによってセキュリティの仕組みが異なります。
「SNMPv1」と「SNMPv2c」はセキュリティの観点からいうと
非常に脆弱といえます。

その理由は、SNMPのパケットの中身は暗号化されているわけではなく、
パケットをキャプチャすると中身が丸見え。

下記はGetResponseをキャプチャした画像ですが、
内容が丸見えです。

GetResponseをキャプチャした画像

唯一のセキュリティといえば、「コミュニティ名」ぐらいです。

「コミュニティ名」は、SNMPエージェントとSNMPマネージャーの間で、
MIBを取得する際に、相互で事前に設定したコミュニティ名を照合する
認証用の情報として使います。

しかし、そのコミュニティ名も暗号化されずにネットワークを流れるため、
パケットをキャプチャしてしまえば、コミュニティ名も漏れてしまいます。

「SNMPv1」や「SNMPv2c」を利用する場合で、絶対にパケットを
キャプチャされないようなネットワークであれば問題ありませんが、
そうではない場合、他の方法でセキュリティを確保する必要があります。

例えば、SNMPエージェント側で特定のIPアドレスのみを許可するような
アクセス制限を設定したり、SNMPの読み出しのみを許可して、
書き込みはできないようにするなどの対策が必要になります。

もしくは「SNMPv1」や「SNMPv2c」を利用するのではなく、
「SNMPv3」を利用することでセキュリティを確保することができます。

「SNMPv3」からは、セキュリティの機能が大幅に拡張され、
認証や暗号化、アクセス制御などの仕組みが追加されています。

 

SNMPの信頼性

SNMPはUDPを使用するために、ネットワーク上でSNMPパケットが
破棄されてしまっても、TCPのように再送処理は行われません。

そこで信頼性を確保するために、SNMPマネージャーや
SNMPエージェント側で信頼性を確保する仕組みを用いるのが一般的です。

SNMPマネージャーから「ポーリング」を行う場合、
当然SNMPエージェントからGetResponseが返信されてくることを期待します。
そこで、「ポーリング」を実行してから一定時間待って、
GetResponseが返信されない場合に再度ポーリングを
実行するという方法を使用します。

SNMPエージェントからの「トラップ」の場合も同様に、
SNMPマネージャーに送りつけるだけで受信確認はしていません。
SNMPv1の場合は残念ながらSNMPマネージャーに届いたかどうかの
確認はできません。
SNMPv2cとSNMPv3は、「SNMP inform」というメッセージを
サポートしていて、SNMPエージェントがINFORMメッセージを送信すると、
SNMPマネージャからの確認応答を待機します。
応答を受信しない場合は、INFORMメッセージを再送信します。

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: