我已经为rsyslog配置了以下过滤器,将一些SSH消息定向到本地系统上的特定TCP端口5000,以便5000上运行的服务将进一步处理SSH消息。
if $fromhost-ip == '127.0.0.1' and ( ($msg contains 'SSH') and ($msg contains 'Test') ) then @@127.0.0.1:5000
一切似乎都很好,但是消息没有重定向到端口5000,如果我们将消息定向到UDP端口,它工作正常。
以下是指向UDP端口的消息的过滤器。
if $fromhost-ip == '127.0.0.1' and ( ($msg contains 'SSH') and ($msg contains 'Test') ) then @127.0.0.1:5000
请您告诉我,为什么TCP端口不起作用,UDP端口有效。
答案 0 :(得分:1)
我认为您可以使用 tunneling 。例如
ssh username@serverAddress -L 5000:11.22.33.44:80
# username - username on server
# serverAddress - server address
# 8080: - port on the local machine that will be opened on loopback interface (127.0.0.1)
# 11.22.33.44 - IP address of the server that we'll create a tunnel to using SSH
点击此处了解更多信息:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-tunneling-on-a-vps
我希望这有帮助!
答案 1 :(得分:1)
您可能决定使用RELP吗? (https://en.wikipedia.org/wiki/Reliable_Event_Logging_Protocol)
如https://linux.die.net/man/5/rsyslog.conf
所述你需要更换你的 “那么@ 127.0.0.1:5000” 至 “那么:omrelp:127.0.0.1:5000”