0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実践編:Cisco推奨のセキュリティ強度を実現するSNMPv3設定(NET-SNMP & TWSNMP)

0
Posted at

はじめに

前回の記事では、Ciscoが古いSNMPの設定を廃止するという噂の裏側を解説しました。「SNMPv1/v2cや弱いアルゴリズムはもうダメですよ」という話でしたね。

「じゃあ、具体的にどう設定すればいいの?」という声が聞こえてきそうなので、今回は実践編です。Linuxで定番の Net-SNMP と、私が作っている TWSNMP FC/FK を使って、これからの標準になる「強いSNMPv3(SHA-256 + AES-256)」を設定する手順をまとめてみます。

1. まずはバージョンのチェックから

「最新のアルゴリズムを使おう!」と思っても、ソフトが古すぎると対応していません。
SHA-256(認証)やAES-256(暗号)をしっかり使うには、Net-SNMP 5.8以上 が必要です。

snmpd -v

これでバージョンを確認してみてください。古いOSだと5.7系だったりするので、その場合は泣きながらアップデートするか、新しいOSに乗り換えましょう。

実際に何が使えるか確認するには?

バージョン以外にも、snmpwalk --help(または -h)を叩けば、そのバイナリが具体的にどのアルゴリズムをサポートしているか教えてくれます。

snmpwalk -h

出力結果の終わりの方に、以下のような記述があるはずです。

  -a PROTOCOL		set authentication protocol (MD5|SHA|SHA-224|SHA-256|SHA-384|SHA-512)
  -x PROTOCOL		set privacy protocol (DES|AES)

カッコの中に SHA-256AES(または AES-256)が入っていればOK。逆に MD5SHA(SHA-1)しか入っていない場合は、残念ながらその環境では「強いSNMP」は使えません。

2. Net-SNMPエージェント(snmpd)を設定する

まずはサーバー側の設定です。SNMPv3のユーザーを作ります。

ユーザー作成はコマンド一発

net-snmp-config コマンドを使うのが簡単です。念のためサービスを止めてから実行します。

# サービスを停止
sudo systemctl stop snmpd

# SHA-256認証とAES-256暗号を指定して「myuser」を作成
sudo net-snmp-config --create-snmpv3-user -a SHA-256 -A authpass123 -x AES-256 -X privpass123 myuser

もっと手軽に、直接ファイルを書き換える方法

「コマンドはちょっと面倒…」という場合は、/etc/snmp/snmpd.conf に直接書いてしまう方法もあります。簡易的なテストならこちらが手っ取り早いです。

ファイルの末尾などに、以下の2行を追加してみてください。

# ユーザー「test」に読み書き(rwuser)権限を与える
rwuser test priv
# ユーザー作成:認証はSHA-256、暗号はAES、パスワードは両方 "test1234"
createUser test SHA-256 "test1234" AES "test1234"

createUser の行は、snmpd を起動すると自動的にハッシュ化された暗号文に書き換わります。パスワードが生のまま残らないので、実はこれでも安全なんです。

アクセス許可も忘れずに

/etc/snmp/snmpd.conf を開いて、作ったユーザーに読み取り権限を与えます。

# authPriv(認証・暗号化あり)のアクセスのみを許可
rouser myuser authpriv

設定が終わったら、サービスを再起動して準備完了です。

sudo systemctl start snmpd

3. ちゃんと動くか確認してみる

snmpwalk でテストします。パラメータが少し長いですが、これが「安全の証」です。

snmpwalk -v 3 \
  -l authPriv \
  -u myuser \
  -a SHA-256 -A authpass123 \
  -x AES-256 -X privpass123 \
  localhost system

ここでちゃんと情報が返ってくれば、強力な暗号化通信が成功しています!

4. TRAP送信だって「強い設定」で

トラップ(通知)を送る側も同じ強度に合わせる必要があります。

送信コマンドの例

snmptrap -v 3 \
  -l authPriv \
  -u myuser \
  -a SHA-256 -A authpass123 \
  -x AES-256 -X privpass123 \
  <受信側のIP> \
  '' \
  1.3.6.1.4.1.8072.2.3.0.1

受信側のちょっとした罠

SNMPv3のトラップ受信には、送信側の EngineID が必要になります。受信側の設定ファイルに createUser -e <EngineID> ... と書く必要があるのですが、これが結構ハマりやすいポイントなので注意してくださいね。

5. TWSNMP FC/FKでの設定

TWSNMPなら、ややこしい設定も画面をポチポチするだけで終わります。

ノード設定

以下のようにSNMPモードに強いアルゴリズムをセットするだけです。

TWSNMP設定例

MIBブラウザでの確認例

正しく設定できれば、TWSNMPのMIBブラウザからもスッキリ情報が取れます。
下の画像は、Debian 11(Net-SNMP 5.9)に対してアクセスした時の様子です。

MIBブラウザでの取得例

TRAP受信設定

マップ設定のSNMPモードを変更してユーザー名とパスワードを指定するだけです。
エンジンIDの処理は、TWSNMP FC/FKの中でなんとかしてくれます。

image.png

まとめ

「SNMPは不安全」なんて言われていたのはもう昔の話です。
SHA-256やAES-256を使いこなせば、今でも一線級の安全な監視プロトコルとして活躍できます。

Ciscoに「それ、もう古いよ!」と怒られる前に、皆さんの環境もモダンなSNMPv3にアップデートしてみてはいかがでしょうか。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?