はじめに
掲題の環境が必要になったので作成する。
まずは Debian 環境がないのでインストールから始める。
ざっとした流れは以下の通り。
今回の流れ
- Debian 11 のインストール(Hyper-V)
- Debian 11 のインストール後の設定
- snmptrapd のインストール
- snmp をインストール(snmpwalk や snmptrap を使用したい)
- snmptrapd の起動オプションを修正
Debian 11 のインストール(Hyper-V)
Hyper-V 上に仮想マシンを作成してインストール
以下のサイトを参考にインストール
https://mebee.info/2019/12/01/post-3751/
仮想マシンのセキュリティの設定で セキュリティブートを有効にするのチェックを外す
のがわからずはまった。。。
インストールが終わったら GUI も一緒にインストールされていた。
その意図ではなかったのでちょっと驚いた。
Debian 11 のインストール後の設定
ユーザーを sudo グループに追加
- su コマンドで root になる
<ユーザー名>@<ホスト名>:~$ su - パスワード:
- adduser コマンドで指定したユーザーを sudo グループに追加
root@<ホスト名>:~# adduser <ユーザー名> sudo パスワード:
ここで sudo に追加されるが、一般ユーザーで sudo を使用する場合にはいったんログアウトする必要あり。
snmptrapd のインストール
https://installati.one/debian/11/snmptrapd/
sudo apt-get update sudo apt-get -y install snmptrapd
snmp をインストール(snmpwalk や snmptrap を使用したい)
sudo apt install snmp
snmptrapd の起動オプションを修正
/lib/systemd/system/snmptrapd.service
の ExecStart
を修正する。
- 修正前
[Unit] Description=Simple Network Management Protocol (SNMP) Trap Daemon. After=network.target ConditionPathExists=/etc/snmp/snmptrapd.conf [Service] Type=simple ExecStart=/usr/sbin/snmptrapd -LOw -f -p /run/snmptrapd.pid ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
- 修正後
[Unit] Description=Simple Network Management Protocol (SNMP) Trap Daemon. After=network.target ConditionPathExists=/etc/snmp/snmptrapd.conf [Service] Type=simple #ExecStart=/usr/sbin/snmptrapd -LOw -f -p /run/snmptrapd.pid ExecStart=/usr/sbin/snmptrapd -Lsd -f -p /run/snmptrapd.pid ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
上記の変更後以下のコマンドを順に実行。
sudo systemctl daemon-reload sudo systemctl restart snmptrapd
トラップ受信確認
以下のコマンドを実行する。
udo snmptrap -v 2c -c public localhost '' .1.3.6.1.4.1.8072.100 .1.3.6.1.4.1.8072.100.1 s "hoge"
snmptrapd で受信したログが /var/log/snmptrapd
に書き込まれるようになった。
xxx@debian:~$ sudo tail -f /var/log/syslog [sudo] xxx のパスワード: Apr 16 00:50:25 debian snmptrapd[2233]: 2023-04-16 00:50:25 localhost [UDP: [127.0.0.1]:34635->[127.0.0.1]:162]:#012iso.3.6.1.2.1.1.3.0 = Timeticks: (479856) 1:19:58.56#011iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.8072.100#011iso.3.6.1.4.1.8072.100.1 = STRING: "hoge"
おまけ
使用しているポート番号を確認するコマンド
xxx@debian:~$ ss -anu | grep 162 UNCONN 0 0 0.0.0.0:162 0.0.0.0:* xxx@debian:~$
snmptrap 送信コマンド
snmptrap -v 2c -c public localhost '' .1.3.6.1.4.1.8072.100 .1.3.6.1.4.1.8072.100.1 s "hoge"
他のホストの送りたかったら localhost の部分を宛先に変えて。