Как я могу получить rsyslog
зеркалировать трафик без изменений (включая исходный IP) в другой порт?
У меня много устройств, отправляющих данные в порт 514
но мне нужно два разных приложения на сервере для получения этих данных.
Я пробовал добавить в конец /etc/rsyslog.conf
*.* @@127.0.0.1:1514
# also tried
*.* @127.0.0.1:1514
Приложение слушает 1514
получить все данные, но исходный адрес всегда 127.0.0.1
. Если я отправляю логи прямо в порт 1514
приложение слушает 1514
см. правильный адрес источника, но теперь rsyslog
не видит данных, так как прослушивает порт 514
.
Как я могу получить rsyslog
зеркалировать трафик без изменений (включая исходный IP) в другой порт?
По какой-то причине следующие iptables
правила в качестве альтернативы приведенному выше не перенаправляют трафик на сервер Ubuntu 18.04LTS для решения проблемы, поэтому я надеялся, что есть способ настроить мой /etc/rsyslog.conf
Чтобы убедиться 1514
увидел первоисточник вместо 127.0.0.1
.
Пример альтернативного правила iptables, которое не зеркалирует трафик (или, по крайней мере, graylog его не видит).
iptables -t mangle -A PREROUTING -p tcp --dport 514 -j TEE --gateway 127.0.0.2
iptables -t nat -A PREROUTING -d 127.0.0.2 -p tcp --dport 514 -j DNAT --to 127.0.0.1:1514
iptables -t mangle -A PREROUTING -p udp --dport 514 -j TEE --gateway 127.0.0.2
iptables -t nat -A PREROUTING -d 127.0.0.2 -p udp --dport 514 -j DNAT --to 127.0.0.1:1514
Обратите внимание, что мой ufw
правила 22 ALLOW Anywhere
и 514 ALLOW Anywhere