SNMP 接続の暗号化の設定

2023年11月21日

ID 222536

サードパーティ製品が SNMP を使用して送信されたデータにアクセスすることや、そのデータを独自のデータで置換することがあります。SNMP を使用したデータ転送をセキュリティで保護するには、SNMP 接続の暗号化を設定することを推奨します。

SNMP 接続の暗号化を設定するには:

  1. /etc/snmp/snmpd.conf ファイルに以下の行を追加します:

    view systemview included .1

  2. SNMP トラップの処理に必要な EngineID を取得します。そのためには、クラスタ内の各サーバーで次のコマンドを実行します:

    snmpget -v2c -c<community name> 127.0.0.1 SNMP-FRAMEWORK-MIB::snmpEngineID.0 2>/dev/null | sed -ne 's/ //g; s/.*:/0x/p'

    組織で使用しているコミュニティ名を指定します。必要に応じて、新しいコミュニティを作成します。データ転送のセキュリティ上の理由により、既定の「公開」コミュニティを使用することは推奨しません。

    コマンドを実行する前に、snmpd サービスが実行されていることを確認してください。

  3. クラスタ内の各サーバーで snmpd サービスを設定します。この操作を行うには:
    1. snmpd サービスを停止します。この操作には、次のコマンドを実行します:

      systemctl stop snmpd

    2. 新しいユーザーを作成します。この操作には、次のコマンドを実行します:

      net-snmp-create-v3-user -ro -a SHA -A <パスワード> -x <パスワード> -X AES <ユーザー名>

    3. 設定情報ファイル /etc/snmp/snmpd.conf に次の文字列を追加します:

      # accept KSMG statistics over unix socket

      master agentx

      agentXSocket unix:/var/run/agentx-master.socket

      agentXPerms 770 770 kluser klusers

      # accept incoming SNMP requests over UDP

      agentAddress udp:127.0.0.1:161

      rouser <username> priv .1.3.6.1

      SNMPv3 接続を使用した SNMP トラップの転送が不要な場合は、次の行を # でコメント化します。

      trapsess -e <EngineID> -v3 -l authPriv -u <ユーザー名> -a SHA -A <パスワード> -x AES -X <パスワード> udp:<IP アドレス>:162

      <IP アドレス> には、ネットワーク接続を受理するために snmptrapd サービスで使用する IP アドレスを指定します。SNMP トラップをサーバーにローカルに保存する場合は、127.0.0.1 と入力します。

    4. 設定情報ファイル /etc/snmp/snmp.conf に次の文字列を追加します。

      mibdirs +/opt/kaspersky/ksmg/share/snmp-mibs/

      mibs all

      指定されたディレクトリに設定情報ファイル snmp.conf がない場合は作成します。

    5. snmpd サービスを開始します。この操作には、次のコマンドを実行します:

      systemctl start smbd

    6. SNMP 接続を確認します。この操作には、次のコマンドを実行します:

      snmpwalk -mALL -v3 -l authPriv -u <ユーザー名> -a SHA -A <パスワード> -x AES -X <パスワード> udp:127.0.0.1:161 .1.3.6.1.4.1.23668

      snmpget -v3 -l authPriv -u <ユーザー名> -a SHA -A <パスワード> -x AES -X <パスワード> udp:127.0.0.1:161 KSMG-PRODUCTINFO-STATISTICS::applicationName.0

  4. SNMP トラップを受信するサーバーで、snmptrapd サービスを設定します。この操作を行うには:
    1. 次のコマンドで snmptrapd サービスを停止します:

      systemctl stop snmptrapd

    2. 次の行を /var/lib/net-snmp/snmptrapd.conf ファイルに追加します:

      createUser -e <EngineID> <username> SHA "<password>" AES "<password>"

      指定されたディレクトリに設定情報ファイル snmptrapd.conf がない場合は作成します。

      ユーザーアカウントの認証情報(<ユーザー名><パスワード>)は、snmpd サービスと snmptrapd サービスで同じである必要があります。

    3. 設定情報ファイル /etc/snmp/snmptrapd.conf に次の文字列を追加します:

      snmpTrapdAddr udp:<IP アドレス>:162

      authUser log <ユーザー名> priv

      disableAuthorization no

      指定されたディレクトリに設定情報ファイル snmptrapd.conf がない場合は作成します。

    4. snmptrapd サービスを開始します。この操作には、次のコマンドを実行します:

      systemctl start snmptrapd

      /var/lib/net-snmp/snmptrapd.conf ファイルにプレーンテキストで指定されたパスワードが、難読化された文字列に置換されていることを確認します。それには、systemctl restart snmptrapd コマンドを使用して snmptrapd サービスを数回再起動する必要がある場合があります。

    5. snmptrapd サービスを自動起動設定に追加します。この操作には、次のコマンドを実行します:

      systemctl enable snmptrapd

    6. 次のコマンドを実行して、SNMP 接続を確認します:

      snmptrap -e <EngineID> -v3 -l authPriv -u <ユーザー名> -a SHA -A <パスワード> -x AES -X <パスワード> udp:<IP アドレス>:162 0 KSMG-EVENTS-MIB::restartedBinary

      次の文字列が /var/log/messages ファイルに表示されていることを確認します:

      <日時> <ホスト名> snmptrapd[7503]: <日時> localhost [UDP: [127.0.0.1]:26325->[<IP アドレス>]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00#011SNMPv2-MIB::snmpTrapOID.0 = OID: KSMG-EVENTS-MIB::restartedBinary

    <IP アドレス> には、ネットワーク接続を受理するために snmptrapd サービスで使用する IP アドレスを指定します。SNMP トラップをサーバーにローカルに保存する場合は、127.0.0.1 と入力します。

SNMP 接続の暗号化が設定されました。

この記事はお役に立ちましたか?
改善できる点がありましたらお聞かせください。
フィードバックをいただき、ありがとうございました。改善に向けて取り組んでまいります。
フィードバックをいただき、ありがとうございました。改善に向けて取り組んでまいります。