fix: snmpv3 and ipv6 for sshsvc

This commit is contained in:
2024-09-12 11:17:22 +08:00
parent 81176226ae
commit 6ada81d36d
5 changed files with 48 additions and 16 deletions

View File

@@ -32,7 +32,7 @@ sshd:
userName: manager
password: pass123
authType: local
omcUrl:
tagNE: hlr
# authType: local/omc
telnetServer:
@@ -45,15 +45,34 @@ telnetServer:
userName: manager
password: pass123
authType: local
omcUrl:
tagNE: hlr
# authproto: NoAuth/MD5/SHA
# privProto: NoPriv/DES/AES/AES192/AES256
snmpServer:
listenAddr: '[::]'
listenPort: 34957
userName: manager
authPass: pass123
authproto: MD5
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
privProto: DES
engineID: "8000000004323030313a6462383a3a39313636"
trapPort: 34958
trapListen: true
trapBool: true
trapTick: 60
timeOut: 5
trapTarget: "2001:db8::9219"
database:
type: mysql
user: root
password: 1000omc@kp!
host: 127.0.0.1
port: 33066
name: omc_db
user: administrator
password: "*86#ROtartsinim"
host: 192.168.13.117
port: 3306
name: OMC_PUB
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
omc:

View File

@@ -77,6 +77,8 @@ type YamlConfig struct {
PrivProto string `yaml:"privProto"`
EngineID string `yaml:"engineID"`
TrapPort uint16 `yaml:"trapPort"`
TrapListen bool `yaml:"trapListen"`
TrapBool bool `yaml:"trapBool"`
TrapTick uint16 `yaml:"trapTick"`
TimeOut uint16 `yaml:"timeOut"`
TrapTarget string `yaml:"trapTarget"`

View File

@@ -32,7 +32,7 @@ sshd:
mmlHome: ./mmlhome
userName: manager
password: pass123
authType: radius
authType: local
tagNE: hlr
# authType: local/omc
@@ -45,7 +45,7 @@ telnetServer:
mmlHome: ./mmlhome
userName: manager
password: pass123
authType: radius
authType: local
tagNE: hlr
# authproto: NoAuth/MD5/SHA
@@ -58,8 +58,11 @@ snmpServer:
authproto: MD5
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
privProto: DES
engineID: "800007db03360102101100"
#engineID: "800007db03360102101101"
engineID: "8000000004323030313a6462383a3a39313636"
trapPort: 34958
trapListen: true
trapBool: true
trapTick: 60
timeOut: 5
trapTarget: "2001:db8::9219"

View File

@@ -25,6 +25,8 @@ type SNMPService struct {
PrivProto string
EngineID string
TrapPort uint16
TrapListen bool
TrapBool bool
TrapTick uint16
TimeOut uint16
TrapTarget string
@@ -222,7 +224,7 @@ func (s *SNMPService) StartTrapServer() {
//var engineTime uint32 = 3600 // 使用当前时间初始化
gs := &g.GoSNMP{
Target: s.TrapTarget,
Port: 34958,
Port: s.TrapPort,
Transport: "udp",
Timeout: time.Duration(s.TimeOut) * time.Second, // 设置超时时间为x秒
Version: g.Version3, // Always using version3 for traps, only option that works with all SNMP versions simultaneously
@@ -240,19 +242,23 @@ func (s *SNMPService) StartTrapServer() {
},
//TrapSecurityParametersTable: usmTable,
ContextEngineID: s.EngineID,
ContextName: "test",
ContextName: "v3test",
}
tl.Params = gs
tl.Params.Logger = g.NewLogger(log.New(os.Stdout, "", 0))
// 定时发送Trap
if s.TrapBool {
go s.SendPeriodicTraps(gs)
}
go s.monitorNetwork(gs)
if s.TrapListen {
err := tl.Listen(s.TrapHost)
if err != nil {
log.Panicf("error in listen: %s", err)
}
}
}
func (s *SNMPService) MyTrapHandler(packet *g.SnmpPacket, addr *net.UDPAddr) {

View File

@@ -136,6 +136,8 @@ func main() {
PrivProto: conf.SNMPServer.PrivProto,
EngineID: conf.SNMPServer.EngineID,
TrapPort: conf.SNMPServer.TrapPort,
TrapListen: conf.SNMPServer.TrapListen,
TrapBool: conf.SNMPServer.TrapBool,
TrapTick: conf.SNMPServer.TrapTick,
TimeOut: conf.SNMPServer.TimeOut,
TrapTarget: conf.SNMPServer.TrapTarget,