[syslog-ng] loop caused by syslog-ng filter
JUNG, Christian
christian.jung at saarstahl.com
Thu Mar 20 10:32:31 CET 2008
Hi Adam,
syslog-ng does the right thing :-).
It starts the program/script once and pipes on STDIN every log-message which matches the filter.
If your script is started, it will call mail and pipe "Alert, priority 1" to its STDIN and then exits. syslog-ng sees this and restarts it (version 2.0 or higher behave that way, see <http://www.balabit.com/dl/html/syslog-ng-admin-guide_en.html/ch09s02.html#reference_destination_program>).
For you purpose this would be better:
---8<---
#!/bin/bash
while read LINE; do
cat <<-EOF | mail -s "High Priority Snort Alert" Sub-Zero at xxx.de
Alert, Priority 1
$LINE
EOF
done
---8<---
bye
Chris
>
> -----Original Message-----
> From: syslog-ng-bounces at lists.balabit.hu
> [mailto:syslog-ng-bounces at lists.balabit.hu]On Behalf Of Adam Richter
> Sent: Thursday, March 20, 2008 9:23 AM
> To: syslog-ng at lists.balabit.hu
> Subject: [syslog-ng] loop caused by syslog-ng filter
>
>
> Hi!
>
> First off, sorry for my poor english!
> I have a problem with a loop caused by syslog-ng v. 2.0.8. I
> have set up Snort as an IDS System. Snort writes its messages
> in unified-format to /var/log/snort/snort.alert and
> /var/log/snort/snort.log. There are two Barnyard processes
> which read the unified files and convert it to messages that
> syslog and MySQL understand. Syslog-ng writes the messages
> to /var/log/auth.log. All this is working fine. Now, I want
> to set up a filter for Priority 1 alerts. This alert should
> be send to the Administrator.
>
> I used following filter for syslog-ng:
>
> source src {unix-stream("/dev/log"); internal();};
> destination email{program("/usr/local/bin/alert_mail.sh");};
> filter high {match("[Priority: 1]");};
> log {source(src);filter(high); destination(email);};
>
>
> The alert_mail.sh:
>
> #!/bin/sh
> cat << EOF | mail -s "High Priority Snort Alert" Sub-Zero at xxx.de
> Alert, Priority 1
> EOF
>
>
> Then I use Nessus to cause some alerts with Priority 1. I can
> see 4 alerts with the Priority 1 with BASE and in /var/log/auth.log.
>
> Syslog-ng recognises the alert with Priority 1 and activates
> the script /usr/local/bin/alert_mail.sh
>
> All this is working, but the script is restarted by syslog-ng
> again an again.
>
> Extract from /var/log/messages:
>
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Child program
> exited, restarting; cmdline='/usr/local/bin/alert_mail.sh ',
> status='0'
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Starting destination
> program; cmdline='/usr/local/bin/alert_mail.sh '
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Closing log writer
> fd; fd='11'
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Child program
> exited, restarting; cmdline='/usr/local/bin/alert_mail.sh ',
> status='0'
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Starting destination
> program; cmdline='/usr/local/bin/alert_mail.sh '
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Child program
> exited, restarting; cmdline='/usr/local/bin/alert_mail.sh ',
> status='0'
> Mar 18 15:46:16 Sensor1 syslog-ng[5191]: Starting destination
> program; cmdline='/usr/local/bin/alert_mail.sh '
> …
> Mar 18 15:42:00 Sensor1 syslog-ng[17354]: Child program
> exited, restarting; cmdline='/usr/local/bin/alert_mail.sh ',
> status='256'
> Mar 18 15:42:00 Sensor1 syslog-ng[17354]: Starting
> destination program; cmdline='/usr/local/bin/alert_mail.sh '
> Mar 18 15:42:00 Sensor1 syslog-ng[17354]: Child program
> exited, restarting; cmdline='/usr/local/bin/alert_mail.sh ',
> status='256'
> Mar 18 15:42:00 Sensor1 syslog-ng[17354]: Starting
> destination program; cmdline='/usr/local/bin/alert_mail.sh '
> Mar 18 15:42:00 Sensor1 syslog-ng[17354]: Child program
> exited, restarting;
>
> …
>
>
> I get thousands of mails per minute till I stop syslog-ng.
>
> Output of /var/log/auth.log(so y see that syslog-ng writes
> snort/barnyard messages correctly to auth.log):
>
> Mar 19 13:56:54 src at Sensor1 barnyard: [1:1394:8] SHELLCODE
> x86 NOOP [Classification: Executable code was detected]
> [Priority: 1] {UDP} 172.25.1.152:4758 -> 172.28.100.10:137
> Mar 19 13:57:13 src at Sensor1 barnyard: [1:1446:8] SMTP vrfy
> root [Classification: Attempted Information Leak] [Priority:
> 2] {TCP} 172.25.1.152:1085 -> 172.28.100.10:25
> Mar 19 13:57:13 src at Sensor1 barnyard: [1:660:11] SMTP expn
> root [Classification: Attempted Information Leak] [Priority:
> 2] {TCP} 172.25.1.152:1085 -> 172.28.100.10:25
> Mar 19 13:57:22 src at Sensor1 barnyard: [1:12626:2] Snort Alert
> [1:12626:0] [Classification: Decode of an RPC Query]
> [Priority: 2] {UDP} 172.25.1.152:1146 -> 172.28.100.10:111
> Mar 19 13:57:22 src at Sensor1 barnyard: [1:585:9] RPC portmap
> sadmind request UDP [Classification: Decode of an RPC Query]
> [Priority: 2] {UDP} 172.25.1.152:1146 -> 172.28.100.10:111
> Mar 19 13:57:24 src at Sensor1 barnyard: [1:566:6] POLICY
> PCAnywhere server response [Classification: Misc activity]
> [Priority: 3] {UDP} 172.25.1.152:1155 -> 172.28.100.10:5632
> Mar 19 15:11:27 src at Sensor1 barnyard: [122:1:0] portscan: TCP
> Portscan [Classification: Unknown] [Priority: 3] {PROTO255}
> 172.25.1.152 -> 172.28.100.10
> Mar 19 15:11:58 src at Sensor1 barnyard: [1:1420:13] SNMP trap
> tcp [Classification: Attempted Information Leak] [Priority:
> 2] {TCP} 172.25.1.152:4482 -> 172.28.100.10:162
> Mar 19 15:11:58 src at Sensor1 barnyard: [1:1418:13] SNMP
> request tcp [Classification: Attempted Information Leak]
> [Priority: 2] {TCP} 172.25.1.152:4482 -> 172.28.100.10:161
> Mar 19 15:12:05 src at Sensor1 barnyard: [1:1421:13] SNMP
> AgentX/tcp request [Classification: Attempted Information
> Leak] [Priority: 2] {TCP} 172.25.1.152:4482 -> 172.28.100.10:705
> Mar 19 15:12:16 src at Sensor1 barnyard: [122:1:0] portscan: TCP
> Portscan [Classification: Unknown] [Priority: 3] {PROTO255}
> 172.25.1.152 -> 172.28.100.10
> Mar 19 15:12:19 src at Sensor1 barnyard: [1:1394:8] SHELLCODE
> x86 NOOP [Classification: Executable code was detected]
> [Priority: 1] {UDP} 172.25.1.152:137 -> 172.28.100.10:137
> Mar 19 15:12:20 src at Sensor1 barnyard: [1:1394:8] SHELLCODE
> x86 NOOP [Classification: Executable code was detected]
> [Priority: 1] {UDP} 172.25.1.152:137 -> 172.28.100.10:137
> Mar 19 15:12:22 src at Sensor1 barnyard: [1:1394:8] SHELLCODE
> x86 NOOP [Classification: Executable code was detected]
> [Priority: 1] {UDP} 172.25.1.152:137 -> 172.28.100.10:137
>
>
> I think it has something in common with this topic:
>
> https://lists.balabit.hu/pipermail/syslog-ng/2006-October/009454.html
>
> Thanks in advance!
>
> Sub-Zero
>
>
> --
> GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
> Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@gmx
> ______________________________________________________________
> ________________
> Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation:
http://www.balabit.com/support/documentation/?product=syslog-ng
FAQ: http://www.campin.net/syslog-ng/faq.html
More information about the syslog-ng
mailing list