JANOG51ではNETCONの委員として問題を作成したので解説します!
ここでは私が作成した3問のうちLevel 1-3の回答をしようと思います。
その他の2問はこちら。
・Level 1-5
・Level 3-2
Level 1-3 問題内容
問題文
弊社ではNW機器の監視用のサーバーを用意しており、
サーバからSNMPで定期的に情報を取得している。
新人であるあなたは上司から「RT2もSNMP監視できるようにしておいてね。よろしく(^_-)-☆」と言われた。
しかし、下記の表のようにRT2はMONITOR-SV2からはSNMP監視は禁止するポリシーのようだ。
RT1はすでに設定されている。RT2に設定を行いましょう。
SNMP Ver: 2c
SNMP Community: janog51
RT1 | RT2 | |
MONITOR-SV1 | ○ | ○ |
MONITOR-SV2 | ○ | X |
OTHER | X | X |
達成条件
- RT2の情報をSNMPで読み取りができること
- SNMPの取得について、上記の表のポリシー通りに設定されていること
SNMP取得方法
MONITOR-SV1/MONITOR-SV2にログインした後、下記のコマンドを実行して確認できる。
export SNMP_COMMUNITY=janog51
python get_snmp/snmp_watch.py
問題概要
この問題はSNMPによる監視ができるように設定し、ACLを用いて制限を実施する問題。
今回のNETCONの中では難度が低く、多くの人が回答していました。
問題について解説していきます。
問題解説
この問題では、SNMPによる監視を許可する設定を行い、監視サーバから情報を取れるようにすることがゴールとなっている。
- RT2の情報をSNMPで取得できること
1つ目の達成条件であるSNMPの取得を行うにはルータにsnmpの設定を行う必要がある。
設定をしない段階では情報を取得できないため、snmp_watch.pyを実行しても以下のようになる。
bash-5.2# python get_snmp/snmp_watch.py
=== SNMP Monitor ===
COMMUNITY: janog51
== 192.168.1.1 ==
hostname: RT1
Uptime: 0:0:02:51.23
== 192.168.1.2 ==
hostname: None
Uptime: None
RT2の情報だけ取得できないことがわかる。
問題文にコミュニティが指定されているためそのパラメータを利用して設定する。
snmp-server community janog51 RO
上記のように、communityを指定する。
ROについてはこの問題では指定はなく、読み取りだけができれば良いためROでよい。
RT1にはすでに設定が入っており、ここではROが設定されているので参考にすればOK
しかし、この状態では2つの目の条件が達成できない。
- SNMPの取得について、上記の表のポリシー通りに設定されていること
表をみるとMONITOR-SV2からは取得できないようなポリシーであり、OTHERも取得できないようになっていることから、
ホワイトリスト式に許可する必要があることがわかる。
したがって、SNMPにACLを適用し、必要最低限のhost prefixを追加してあげればOK
ACLは暗黙のDenyがあるためdenyを書く必要はない。
ip access-list standard SNMP_ACL
10 permit 192.168.2.1
ACLを作成したらSNMPに適用する。
snmp-server community janog51 RO SNMP_ACL
以上のように設定することでMONITOR-SV1だけ取得できるようになり、以下のようにポリシー通りの設定となる。
[MONITOR-SV1 get_snmp]# python snmp_watch.py
=== SNMP Monitor ===
COMMUNITY: janog51
== 192.168.1.1 ==
hostname: RT1
Uptime: 0:0:03:58.59
== 192.168.1.2 ==
hostname: RT2
Uptime: 0:0:03:58.89
[MONITOR-SV2 get_snmp]# python snmp_watch.py
=== SNMP Monitor ===
COMMUNITY: janog51
== 192.168.1.1 ==
hostname: RT1
Uptime: 0:0:04:27.55
== 192.168.1.2 ==
hostname: None
Uptime: None
まとめると
+ ip access-list standard <acl_name>
+ 10 permit 192.168.2.1
!
+ snmp-server community janog51 RO <acl_name>
全体を通して
以上が、Level1-3の解説です。
採点については各MONITOR-SVからsnmpwalkを叩いて、
+50%: 取得できる
+50%: ポリシー通り
としています。
ACLは事故りやすいので気をつけましょう。以上、ありがとうございました!