it

SNMPのバージョンの違いは?v1・v2c・v3の特徴を解説!(セキュリティ・コミュニティ名・認証・暗号化など)

当サイトでは記事内に広告を含みます

SNMPにはバージョンが複数存在し、それぞれ機能やセキュリティの面で大きな違いがあります。

現在広く使われているのはSNMPv1・v2c・v3の3つであり、利用環境やセキュリティ要件に応じて適切なバージョンを選択することが重要です。

本記事では、各バージョンの特徴・セキュリティ対応状況・コミュニティ名の役割・認証・暗号化の違いを詳しく解説していきます。

バージョン選択に迷っている方や、より安全なSNMP運用を目指している方にとって参考になる内容です。

SNMPバージョンの違いを一覧で理解しよう

それではまず、SNMPの各バージョンを比較しながら基本的な違いを解説していきます。

v1からv3にかけて、機能とセキュリティが段階的に強化されてきた経緯があります。

SNMPv3は現在最もセキュリティが高いバージョンであり、認証と暗号化の両方をサポートしています。セキュリティが重要な環境では、v1やv2cではなく、SNMPv3を選択することを強く推奨します。

項目 SNMPv1 SNMPv2c SNMPv3
リリース年 1988年 1996年 1999年
認証方式 コミュニティ名(平文) コミュニティ名(平文) ユーザー認証(SHA/MD5)
暗号化 なし なし AES・DES対応
GetBulk 非対応 対応 対応
セキュリティレベル

SNMPv1の特徴と限界

SNMPv1は1988年に登場した最初のバージョンです。

シンプルな設計であり、多くのネットワーク機器でサポートされていますが、認証はコミュニティ名のみで暗号化もないため、セキュリティ面での脆弱性が大きいバージョンです。

現在でも古い機器との互換性のために使われることはありますが、新規導入ではほとんど採用されません。

SNMPv2cの特徴と改善点

SNMPv2cはv1の機能を拡張したバージョンです。

GetBulkRequestコマンドの追加により、大量のデータをまとめて取得できる点が改善されました。

ただし、認証方式はv1と同じコミュニティ名による平文認証のままであり、暗号化も未対応です。

現在の実運用ではv2cが最もよく使われているバージョンですが、セキュリティ要件が厳しい場合はv3への移行が推奨されます。

SNMPv3の特徴とセキュリティ強化

SNMPv3は1999年に標準化された現在の最新バージョンです。

ユーザーベースのセキュリティモデル(USM)が導入され、以下の3段階のセキュリティレベルが選択できます。

・noAuthNoPriv:認証なし・暗号化なし(コミュニティ名に近い動作)

・authNoPriv:認証あり(SHA/MD5)・暗号化なし

・authPriv:認証あり・暗号化あり(AES/DES)

セキュリティが求められる環境ではauthPrivを選択し、通信内容の盗聴・改ざんを防ぐことが重要です。

コミュニティ名の仕組みとセキュリティリスク

続いては、SNMPv1・v2cで使われるコミュニティ名の仕組みと注意点を確認していきます。

コミュニティ名はSNMPにおける簡易的なアクセス制御の仕組みですが、その仕様には注意すべき点があります。

コミュニティ名の役割と初期設定

コミュニティ名は、SNMPマネージャとエージェント間での認証に使われる文字列です。

デフォルト設定では「public」(読み取り専用)や「private」(読み書き可能)が使われていることが多く、そのままにしておくとセキュリティリスクが高まります。

コミュニティ名は推測されにくいものに変更し、不要なアクセスを制限することが基本的な対策です。

コミュニティ名の平文送信の問題

コミュニティ名はUDPパケット内に平文(暗号化なし)で含まれて送信されます。

ネットワーク上でパケットキャプチャが行われると、コミュニティ名が簡単に盗み見られてしまう可能性があります。

インターネット経由や信頼できないネットワーク上でSNMP v1/v2cを使用することは、セキュリティ上避けるべきでしょう。

アクセス制御リスト(ACL)との組み合わせ

v1・v2cを使わざるを得ない環境では、ファイアウォールのACLやルーターのアクセスリストで、SNMPアクセス元のIPアドレスを制限することが有効な対策です。

特定の監視サーバーのIPアドレスからのみSNMPアクセスを許可することで、不正アクセスのリスクを大幅に低減できます。

SNMPv3の認証・暗号化の設定と実装

続いては、SNMPv3の認証・暗号化設定の具体的な内容を確認していきます。

SNMPv3を正しく設定することで、安全なネットワーク監視環境を構築できます。

SNMPv3ユーザーの作成

SNMPv3では、コミュニティ名の代わりにユーザー名・認証パスワード・暗号化パスワードを設定します。

Linuxのnet-snmpでユーザーを作成する場合、snmptrapd設定ファイルやnet-snmp設定ファイルにユーザー情報を記述します。

Ciscoルーターの場合は「snmp-server user [ユーザー名] [グループ名] v3 auth sha [認証PW] priv aes [暗号化PW]」のように設定します。

認証プロトコルの選択(MD5とSHA)

SNMPv3の認証プロトコルにはMD5とSHAが選択できますが、セキュリティ強度の高いSHAを使用することを推奨します。

MD5はすでに脆弱性が指摘されており、新規設定では積極的に選択しないほうがよいでしょう。

暗号化プロトコルの選択(DESとAES)

暗号化プロトコルはDESとAES(128/256ビット)から選択できます。

DESは鍵長が56ビットと短く、現在の基準では安全性が不十分です。

AES 128ビット以上を選択することで、現代の基準に沿った安全な暗号化通信が実現できます。

まとめ

本記事では、SNMPのv1・v2c・v3それぞれのバージョンの特徴・コミュニティ名の仕組み・認証・暗号化の違いについて解説しました。

セキュリティを重視するなら、認証・暗号化が揃ったSNMPv3を選択することがベストです。

既存環境でv2cを使用している場合も、ACLによるアクセス制限など最低限のセキュリティ対策は必須です。

バージョンの特性を正しく理解し、自社のネットワーク環境に最適なSNMP設定を実現してみてください。