1
1
# -*- coding: utf-8 -*-
2
- """Import Syslog messages
2
+ """Receive UDP messages
3
3
4
4
SPDX-FileCopyrightText: 2020 Linköping University <https://liu.se/>
5
5
SPDX-License-Identifier: AGPL-3.0-or-later
6
6
7
- One IntelMQ event per Syslog line. Multi-line Syslog messages are not
8
- supported.
7
+ Creates one IntelMQ event per UDP packet.
9
8
10
9
Parameters:
11
10
12
11
ip: string, optional, bind IP (or wildcard, if not set)
13
12
14
- name: string, optional, feed name, default "Syslog "
13
+ name: string, optional, feed name, default "UDP "
15
14
16
- port: integer, optional, listen port, default 514
15
+ port: integer, listen port
17
16
18
- protocol: string, optional, default "udp". Only UDP is implemented
19
- currently.
20
-
21
- provider: string, optional, feed provider name, default "Syslog"
17
+ provider: string, optional, feed provider name, default "UDP"
22
18
23
19
"""
24
20
28
24
import socketserver
29
25
30
26
31
- class SyslogCollectorBot (CollectorBot ):
27
+ class UDPCollectorBot (CollectorBot ):
32
28
33
29
def init (self ):
34
30
self .ip = getattr (self .parameters , 'ip' , '0.0.0.0' )
35
- self .name = getattr (self .parameters , 'name' , 'Syslog' )
36
- self .port = int (getattr (self .parameters , 'port' , 514 ))
37
- self .protocol = getattr (self .parameters , 'protocol' , 'udp' ).lower ()
38
- if self .protocol not in ['udp' ]:
31
+ self .name = getattr (self .parameters , 'name' , 'UDP' )
32
+ self .port = int (getattr (self .parameters , 'port' , 0 ))
33
+ if self .port == 0 :
39
34
raise ConfigurationError ('Listen port' ,
40
- 'Invalid protocol %s' % self . protocol )
41
- self .provider = getattr (self .parameters , 'provider' , 'Syslog ' )
35
+ 'No port specified' )
36
+ self .provider = getattr (self .parameters , 'provider' , 'UDP ' )
42
37
43
- if self .protocol == 'udp' :
44
- self .server = socketserver .UDPServer ((self .ip , self .port ), SyslogUDP )
38
+ self .server = socketserver .UDPServer ((self .ip , self .port ), UDPServer )
45
39
self .server .logger = self .logger
46
40
self .server .send_message = self .send_message
47
41
self .server .new_report = self .new_report
@@ -52,7 +46,7 @@ def process(self):
52
46
self .server .serve_forever ()
53
47
54
48
55
- class SyslogUDP (socketserver .BaseRequestHandler ):
49
+ class UDPServer (socketserver .BaseRequestHandler ):
56
50
def handle (self ):
57
51
line = self .request [0 ].strip ()
58
52
self .server .logger .debug ("Received event from %s" , self .client_address )
@@ -62,4 +56,4 @@ def handle(self):
62
56
self .finish ()
63
57
64
58
65
- BOT = SyslogCollectorBot
59
+ BOT = UDPServer
0 commit comments