Re: Snmp v3 DTLS TRAP - ICMP Destination unreachable

Stephanie Jakopec <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <CALYw-hXz9a5-QRnZfzJvQOAK_foaPL=Of9k5B32M6sSYUdOadA@mail.gmail.com>
Hi,

just to add more information: INFORM works over dtlsudp with the same
configuration. Am I doing something wrong with TRAP sending and receiving?

Best regards,
Steph

2017-06-01 10:51 GMT+02:00 Stephanie Jakopec <[email protected]>:

> Hi,
>
> I am trying to configure net-snmp over DTLS. The manager doesn't receive
> the TRAP message when sending TRAPs over dtlsudp. Sending TRAPs over tlstcp
> is successful. In wireshark I can see Client Hello, Hello Verify Request
> and then an ICMP Destination unreachable (Port unreachable).
> I think it is not a firewall or permission problem. I have checked
> everything regarding this.
> GET command works over DTLS.
> Certificates are created with help of the Using DTLS TUT. Manager has
> snmpdsteph.crt, agent has agent.crt and both are signed with
> hostname.example.com.
>
> Agent sends trap to manager:
> ./snmptrap -v 3 -T their_hostname=steph -Dtls,ssh,openssl,cert,
> dtlsudp,9:openssl:fingerprint,9:openssl:cert:san dtlsudp:<ip_addr1>:10162
> "" NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification
> netSnmpExampleHeartbeatRate i 123456
>
>
> Bellow is the snmptrapd.log :
> ==========================================================================
> dtlsudp: received 149 raw bytes on way to dtls
> dtlsudp: starting a new connection
> cert:find:params: looking for identity(1) in DEFAULT(0x0), hint 0
> cert:find:params: looking for identity(1) in MULTIPLE(0x200), hint 7980400
> cert:find:params: looking for identity(1) in FINGERPRINT(0x2), hint 7980400
> cert:find:params:  hint = 47:B2:BB:BD:0F:D5:C6:3B:C3:B1:
> 07:6F:8B:3E:97:0B:B8:E4:1C:3B
> cert:find:found: using cert snmpdsteph.crt / 47b2bbbd0fd5c63bc3b1076f8b3e970bb8e41c3b
> for identity(1) (uses=identity+remote_peer (3))
> cert:find:found: using cert snmpdsteph.crt / 47b2bbbd0fd5c63bc3b1076f8b3e970bb8e41c3b
> for identity(1) (uses=identity+remote_peer (3))
> sslctx_server: using public key: snmpdsteph.crt
> sslctx_server: using private key: snmpdsteph.key
> sslctx_client: Trying to load a trusted certificate:
> 28:81:87:B3:A9:13:E0:03:C4:B4:D6:1F:F4:85:FE:12:DB:6F:DD:28
> cert:find:params: looking for CA(8) in MULTIPLE(0x200), hint 7961792
> cert:find:params: looking for CA(8) in FINGERPRINT(0x2), hint 7961792
> cert:find:params:  hint = 28:81:87:B3:A9:13:E0:03:C4:B4:
> D6:1F:F4:85:FE:12:DB:6F:DD:28
> cert:find:found: using cert hostname.example.com.crt /
> 288187b3a913e003c4b4d61ff485fe12db6fdd28 for CA(8)
> (uses=CA+identity+remote_peer (11))
> cert:find:found: using cert hostname.example.com.crt /
> 288187b3a913e003c4b4d61ff485fe12db6fdd28 for CA(8)
> (uses=CA+identity+remote_peer (11))
> cert:trust_ca: checking roots for 0x7343a0
> 9:openssl:fingerprint: alg -1, cert nid 65 (2)
> 9:openssl:fingerprint: fingerprint 288187b3a913e003c4b4d61ff485fe
> 12db6fdd28
> cert:trust: putting trusted cert 0x734660 = 288187b3a913e003c4b4d61ff485fe12db6fdd28
> in certstore 0x7928e0
> dtlsudp:cookie: generating cookie...
> dtlsudp: have 48 bytes to send
> ============================================================
> =================
>
> Agent log:
> ============================================================
> =================
> registered debug token tls, 1
> registered debug token ssh, 1
> registered debug token openssl, 1
> registered debug token cert, 1
> registered debug token dtlsudp, 1
> registered debug token 9:openssl:fingerprint, 1
> registered debug token 9:openssl:cert:san, 1
> cert:util:init: init
> cert:index:add: dir /home/snmp/share/snmp/tls/ca-certs at index 0
> cert:index:add: dir /home/snmp/share/snmp/tls/certs at index 1
> cert:index:add: dir /home/snmp/share/snmp/tls/private at index 2
> cert:index:dir: Scanning directory /home/snmp/share/snmp/tls/ca-certs
> cert:index:lookup: /home/snmp/share/snmp/tls/ca-certs (0)
> /home/.snmp_persist/cert_indexes/0
> cert:index:parse: The index for /home/snmp/share/snmp/tls/ca-certs looks
> good
> cert:index:parse: added 1 certs from index
> cert:index:dir: Scanning directory /home/snmp/share/snmp/tls/certs
> cert:index:lookup: /home/snmp/share/snmp/tls/certs (1)
> /home/.snmp_persist/cert_indexes/1
> cert:index:parse: The index for /home/snmp/share/snmp/tls/certs looks good
> cert:index:parse: added 1 certs from index
> cert:index:dir: Scanning directory /home/snmp/share/snmp/tls/private
> cert:index:lookup: /home/snmp/share/snmp/tls/private (2)
> /home/.snmp_persist/cert_indexes/2
> cert:index:parse: The index for /home/snmp/share/snmp/tls/private looks
> good
> cert:key:struct:new: new key 0x0x628410 for hostname.example.com.key
> cert:key:struct:new: new key 0x0x628a00 for agent.key
> cert:index:parse: added 2 certs from index
> cert:partner: hostname.example.com.crt match found!
> cert:partner: agent.crt match found!
> cert:key:read: Checking file hostname.example.com.key
> cert:key:read: Checking file agent.key
> cert:dump: -------------------- Certificates -----------------
> cert:dump: cert hostname.example.com.crt in /home/snmp/share/snmp/tls/ca-
> certs
> cert:dump:    type 1 flags 0xb (CA+identity+remote_peer)
> cert:dump: cert agent.crt in /home/snmp/share/snmp/tls/certs
> cert:dump:    type 1 flags 0x3 (identity+remote_peer)
> cert:dump: key hostname.example.com.key in /home/snmp/share/snmp/tls/
> private
> cert:dump:    type 4 flags 0x1 (identity)
> cert:dump: key agent.key in /home/snmp/share/snmp/tls/private
> cert:dump:    type 4 flags 0x1 (identity)
> cert:dump: ------------------------ End ----------------------
> dtlsudp: netsnmp_dtlsudp_transport(): transports/snmpDTLSUDPDomain.c,
> 1421:
> dtlsudp: sending 131 bytes
> dtlsudp: starting a new connection
> dtlsudp: starting a new connection as a client to sock: 3
> cert:find:params: looking for identity(1) in DEFAULT(0x0), hint 0
> cert:find:params: looking for identity(1) in MULTIPLE(0x200), hint 6795536
> cert:find:params: looking for identity(1) in FINGERPRINT(0x2), hint 6795536
> cert:find:params:  hint = BF:AD:00:CC:9D:61:6C:2C:5F:6D:
> 3F:1A:05:E8:27:6E:C8:2A:C9:A0
> cert:find:found: using cert agent.crt / bfad00cc9d616c2c5f6d3f1a05e8276ec82ac9a0
> for identity(1) (uses=identity+remote_peer (3))
> cert:find:found: using cert agent.crt / bfad00cc9d616c2c5f6d3f1a05e8276ec82ac9a0
> for identity(1) (uses=identity+remote_peer (3))
> cert:find:params: looking for remote_peer(2) in DEFAULT(0x0), hint 0
> cert:find:params: looking for CA(8) in MULTIPLE(0x200), hint 6876544
> cert:find:params: looking for CA(8) in FINGERPRINT(0x2), hint 6876544
> cert:find:params:  hint = 28:81:87:B3:A9:13:E0:03:C4:B4:
> D6:1F:F4:85:FE:12:DB:6F:DD:28
> cert:find:found: using cert hostname.example.com.crt /
> 288187b3a913e003c4b4d61ff485fe12db6fdd28 for CA(8)
> (uses=CA+identity+remote_peer (11))
> cert:find:found: using cert hostname.example.com.crt /
> 288187b3a913e003c4b4d61ff485fe12db6fdd28 for CA(8)
> (uses=CA+identity+remote_peer (11))
> cert:trust_ca: checking roots for 0x628490
> 9:openssl:fingerprint: alg -1, cert nid 65 (2)
> 9:openssl:fingerprint: fingerprint 288187b3a913e003c4b4d61ff485fe
> 12db6fdd28
> cert:trust: putting trusted cert 0x628670 = 288187b3a913e003c4b4d61ff485fe12db6fdd28
> in certstore 0x6bbd60
> dtlsudp: have 149 bytes to send
> dtlsudp:close: closing dtlsudp transport 0x6bf990
> dtlsudp:close: 131 bytes remain in write_cache
> dtlsudp:close: dumping 131 bytes from write_cache
> dtlsudp:close: closing SSL socket
> tlsbase: Freeing TLS Base data for a session
> cert:util:shutdown: shutdown
> cert:key:struct:free: freeing key 0x0x628410, hostname.example.com.key
> cert:key:struct:free: freeing key 0x0x628a00, agent.key
> ==========================================================================
>
> Agent snmp.conf:
> ==========================================================================
> defSecurityModel tsm
> defSecurityLevel authPriv
> localCert BF:AD:00:CC:9D:61:6C:2C:5F:6D:3F:1A:05:E8:27:6E:C8:2A:C9:A0
> trustCert 28:81:87:B3:A9:13:E0:03:C4:B4:D6:1F:F4:85:FE:12:DB:6F:DD:28
> persistentDir /home/.snmp_persist
>
> Manager snmpd.conf
> ==========================================================================
> rwuser -s tsm "traptest"
> rouser NoAuthUser
> rouser MD5User
> rwuser MD5DESUser
> createUser NoAuthUser
> createUser MD5User MD5 "The Net-SNMP Demo Password"
> createUser MD5DESUser MD5 "The Net-SNMP Demo Password" DES
> rocommunity public localhost
>
> agentXSocket tcp:localhost:705,udp:localhost:705
> master agentx
> [snmp] localCert 47:B2:BB:BD:0F:D5:C6:3B:C3:B1:
> 07:6F:8B:3E:97:0B:B8:E4:1C:3B
> [snmp] trustCert 28:81:87:B3:A9:13:E0:03:C4:B4:
> D6:1F:F4:85:FE:12:DB:6F:DD:28
> certSecName 20 28:81:87:B3:A9:13:E0:03:C4:B4:D6:1F:F4:85:FE:12:DB:6F:DD:28
> --sn "traptest"
> agentaddress udp:161,tcp:161,dtlsudp:10161,tlstcp:10161
> =========================================================================
>
> Manager snmptrapd.conf
> =========================================================================
> authCommunity log,execute,net public
> snmpTrapdAddr dtlsudp:10162,tlstcp:10162
>
> createUser -e 0x8000000001020304 traptest SHA mypassword AES
> authuser log traptest
> authUser log "steph"
> disableAuthorization yes
>
> [snmp] localCert 47:B2:BB:BD:0F:D5:C6:3B:C3:B1:
> 07:6F:8B:3E:97:0B:B8:E4:1C:3B
> [snmp] trustCert 28:81:87:B3:A9:13:E0:03:C4:B4:
> D6:1F:F4:85:FE:12:DB:6F:DD:28
> certSecName 20 BF:AD:00:CC:9D:61:6C:2C:5F:6D:3F:1A:05:E8:27:6E:C8:2A:C9:A0
> --sn traptest
> =========================================================================
>
> I would really appreciate your help.
> Regards,
>
> Steph
>
>
>
>
>
>
>
>
>
>
>
>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.