Just to verify, try a tcpdump of the traffic going through relay to see what syslog-ng is receiving.
-------- Original message --------
From: Scot <scotrn@gmail.com>
Date: 2/5/18 3:21 PM (GMT-05:00)
To: Syslog-ng users' and developers' mailing list <syslog-ng@lists.balabit.hu>
Subject: [syslog-ng] Rsyslog relay or syslog-ng ?
Hi,
Hoping someone has seen an easy fix for this. Sorry is it's specifically referenced somewhere I'm not seeing.
Dealing with a vendor who is not able to leverage the RFC headers or TCP input.
We have rsyslog relays in remote sites sending TCP/514 to syslog-ng and others locally sending directly to syslog-ng TCP/UDP 514.
The devices sending directly to syslog-ng are reporting to the IDS correctly. Hosts relaying through rsyslog are showing a source address of the relay.
/etc/rsyslog.d/forward.conf
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinite retries if host is down
/etc/syslog-ng/conf.d
source s_net_tcp {tcp(ip(0.0.0.0) port(514) max-connections(300) keep_hostname(yes) so_rcvbuf(262142) log_iw_size(25000)); };
source s_net_udp {syslog(ip(0.0.0.0) keep_hostname(yes) port(514) transport("udp") flags(no-hostname) so_rcvbuf(262142));};
destination d_ids {network("IDSHOSTNAME" spoof_source(yes) transport(udp) port(514) flags(syslog-protocol)); };
channel {filter(f_ids); destination (d_ids);};
channel {parser(pattern_db); destination (d_es);};
channel {filter(f_ids); destination (d_ids);};
channel {parser(pattern_db); destination (d_es);};