SNMPv3 Abfrage mit Synapse snmpsend

Alle Fragen zur Netzwerkkommunikation

SNMPv3 Abfrage mit Synapse snmpsend

Beitragvon catweasel » 27. Nov 2019, 17:16 SNMPv3 Abfrage mit Synapse snmpsend

Hallo

Ich habe ein einfaches Beispiel um eine Hardware mit SNMPv2 mit snmpsend von Synapse abzufragen.
Das funktioniert soweit auch ganz gut.
Code: Alles auswählen
uses
  [...], snmpsend;
 
procedure TForm1.Button3Click(Sender: TObject);
var   response   : String;
      SNMPResult : Boolean;
      oid        : string;
begin
  repeat
    oid:=OIDLabeledEdit.Text;
    SNMPResult := SNMPGetNext(oid, CommunityLabeledEdit.Text, IPLabeledEdit.Text, response);
    memo1.Lines.Add(response);
  until not SNMPResult;
end;


Allerdings weis ich nicht wie ich die Funktion so umstelle das ich auch Abfragen mit SNMPv3 machen kann.
Wenn ich die Hilfe ansehe (http://synapse.ararat.cz/doc/help/snmpsend.html) dann müßte es irgendwie funktionieren,
da verschiedene Konstanten und Variablen für SNMPv3 vorhanden sind.

Im Quelltext von snmpsend.pas werde ich auch nicht schlauer. Dort heißt es z.B.:

Code: Alles auswählen
    {:For SNMPv3. Specify Authorization mode. (specify used hash for
     authorization)}
    property AuthMode: TV3Auth read FAuthMode write FAuthMode;
 
    {:For SNMPv3. Specify Privacy mode.}
    property PrivMode: TV3Priv read FPrivMode write FPrivMode;
 
    {:SNMPv3 authorization username}
    property UserName: AnsiString read FUserName write FUserName;
 
    {:SNMPv3 authorization password}
    property Password: AnsiString read FPassword write FPassword;
 
    {:For SNMPv3. Computed Athorization key from @link(password).}
    property AuthKey: AnsiString read FAuthKey write FAuthKey;
 
    {:SNMPv3 privacy password}
    property PrivPassword: AnsiString read FPrivPassword write FPrivPassword;
 
    {:For SNMPv3. Computed Privacy key from @link(PrivPassword).}
    property PrivKey: AnsiString read FPrivKey write FPrivKey;


Hat jemand ein Beispiel wie ich eine SNMPv3 Abfrage hinbekomme?

Gruß
Michael
catweasel
 
Beiträge: 213
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 19.3 - (L 2.0.4 FPC 3.0.4) | 
Nach oben

Beitragvon creed steiger » 1. Dez 2019, 21:55 Re: SNMPv3 Abfrage mit Synapse snmpsend

creed steiger
 
Beiträge: 954
Registriert: 11. Sep 2006, 21:56

Beitragvon catweasel » 2. Dez 2019, 13:49 Re: SNMPv3 Abfrage mit Synapse snmpsend

creed steiger hat geschrieben:hilft dir das weiter?
http://synapse.ararat.cz/doku.php/publi ... snmpsample


Hallo

Auf die Seite bin ich nach weiteren recherchen inzwischen auch gestoßen.
Leider kann ich das nicht 1:1 kopieren, da wir hier das ganze Paket mit AuthPriv, PrivAES und AuthSHA haben.

Soweit habe ich es inzwischen, leider noch ohne korrekte Funktion:

Code: Alles auswählen
  SNMP:=TSnmpsend.Create;
  try
    SNMP.Query.Version       := 3;
    SNMP.TargetHost          := '1.2.3.4';
    SNMP.Query.Username      := 'user';
    SNMP.Query.Flags         := AuthPriv;   //AuthNoPriv; NoAuthNoPriv;
 
    SNMP.Query.PrivMode      := PrivAES;    //PrivDES;   Priv3DES;
    SNMP.Query.PrivPassword  :='geheim';
 
    SNMP.Query.AuthMode      := AuthSHA1;   //AuthMD5
    //SNMP.Query.  -kein AuthPass- ???
    SNMP.Query.Password      := 'geheimer';
 
    SNMP.Query.FlagReportable := True;
    oid := '1.3.6.1.2.1.1.1.0';
    SNMP.Query.PDUType := PDUGetRequest;
    SNMP.Query.MIBAdd(Oid, '',ASN1_NULL);
    if SNMP.SendRequest  then
      begin
        memo1.Lines.Add(SNMP.Reply.MIBGet(Oid));
      end;
    memo1.Lines.Add(asndump(SNMP.Buffer));
  finally
    snmp.Free;
  end;
catweasel
 
Beiträge: 213
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 19.3 - (L 2.0.4 FPC 3.0.4) | 
Nach oben

Beitragvon catweasel » 13. Dez 2019, 11:49 Re: SNMPv3 Abfrage mit Synapse snmpsend

Eine Abfrage funktioniert inzwischen, allerdings muß ich die OID exakt so eingeben wie sie existiert, also auch mit evtl. vorhandenen Index.
Wie kann ich das Beispiel so abändern das ich eine Art SNMPWALK hinbekomme?

Code: Alles auswählen
procedure TForm1.StartButtonClick(Sender: TObject);
var   response   : String;
      SNMPResult : Boolean;
      oid        : string;
      last       : string='';
      i          : integer;
      SNMP       : TSNMPSend;
      result     : TSNMPMib;
begin
  screen.Cursor:=crHourGlass; //crDefault
 
  // SNMPv3 User einrichten
  // net-snmp-config --create-snmpv3-user -ro -X AES -A SHA -a "geheim" -x "geheimer" icinga
 
  SNMP:=TSnmpsend.Create;
  try
    SNMP.Query.Version        := 3;
    SNMP.TargetHost           := '1.2.3.4';
    SNMP.Query.Username       := 'icinga';
    SNMP.Query.Flags          := AuthPriv;              // AuthNoPriv; NoAuthNoPriv;
 
    SNMP.Query.PrivMode       := PrivAES;               // PrivDES;   Priv3DES;
    SNMP.Query.PrivPassword   := 'geheim';
 
    SNMP.Query.AuthMode       := AuthSHA1;              // AuthMD5
    SNMP.Query.Password       := 'geheimer';
 
    SNMP.Query.FlagReportable := True;
    oid                       := '.1.3.6.1.2.1.1.1.0'// sysDescr
    SNMP.Query.PDUType        := PDUGetRequest;
    SNMP.Query.MIBAdd(Oid, '',ASN1_NULL);
 
 
    // Ausgabe nur wenn die OID exakt so wie eingegeben trifft; mit abschließendem Index ".0"
    // also nur mit 1.3.6.1.2.1.1.1.0 statt 1.3.6.1.2.1.1.1
    // Wie bekommt man hier eine Art SNMPWALK hin??
    if SNMP.SendRequest  then
      begin
        //memo1.Lines.Add(Oid+' = '+SNMP.Reply.MIBGet(Oid));
        //memo1.Lines.Add('MIBCount  '+inttostr(SNMP.Reply.MIBCount));
        if SNMP.SendRequest then begin
            for i:=0 to SNMP.Reply.MIBCount-1 do begin
              result:=SNMP.Reply.MIBByIndex(i);
              memo1.Lines.Add('ValTyp = ' + IntToStr(result.ValueType));
              memo1.Lines.Add(Oid+' = '   + result.Value);
            end;
          end
    end;
 
  finally
    snmp.Free;
  end;
 
  Screen.Cursor:=crDefault;
end;
catweasel
 
Beiträge: 213
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 19.3 - (L 2.0.4 FPC 3.0.4) | 
Nach oben

• Themenende •

Zurück zu Netzwerk



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried