0

snmpメッセージ(SNMP4J)を作成し、ReadCommunityPublicとWriteCommunityPrivateを設定する必要があります。

例から、コミュニティは次のように設定されています。

// Specify receiver
Address targetaddress = new UdpAddress("10.10.10.10/162");
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setVersion(SnmpConstants.version2c);
target.setAddress(targetaddress);

ただし、これは書き込みコミュニティか読み取りコミュニティかを指定しません。それらを別々に定義する方法はありませんか?

4

2 に答える 2

1

いいえ、コミュニティ ストリングはパスワードのようなものです。読み取り専用コミュニティ ストリングと読み取り/書き込みコミュニティ ストリングは、デバイスに対して異なるアクセスを提供します。デバイスから値を取得するだけの場合は読み取り専用コミュニティを使用し、値を取得するだけでなく値を変更したい場合は、読み取り/書き込みコミュニティを使用する必要があります。SNMP4j は、ユーザーが必要とするアクセスの種類を認識していなかったため、ユーザーに選択を任せました。両方を設定することはできません。

于 2012-12-07T07:41:16.603 に答える
0

SNMP エージェントとの通信に使用するコミュニティ ストリングを設定しているだけです。これは、ボックス (SNMP エージェント構成ファイル内) に新しいコミュニティ ストリングを作成する set-request ではありません。あなたのボックスにはすでに RW プライベート コミュニティと RO パブリック コミュニティがすでに定義されていると思います (ほとんどの場合デフォルト)。新しいコミュニティ ストリングを追加するには、新しいコミュニティ ストリングを追加するエンタープライズ固有の OID を使用して set-request を送信する必要があります (この機能がサポートされている場合)。セキュリティ上の懸念から、これを許可する標準の RFC ベースの MIB はありません。誰でも自分の RW コミュニティ ストリングを追加して、それを使用してさらに設定を変更できます。ただし、誰もが SNMPv1 トラフィックを傍受できます (暗号化されていません!) :-) しかし、誰かが中間者攻撃を実行する可能性がある場合、暗号化されていない SNMPv1 のみを使用するよりも大きな問題があります ;-)。それでおしまい。

于 2012-12-06T18:05:53.867 に答える