Estou procurando enviar mensagens de log GELF (formato de log estendido Graylog) de uma instância do logstash para o Graylog. Mas como a saída GELF no logstash não suporta o TLS, eu quero usar o stunnel para criptografar a comunicação.
Eu configurei um ambiente de teste que consiste em dois stunnels, um cliente e um servidor e apenas um netcat que emula a extremidade receptora (eventualmente Graylog). No entanto, quando configuro tudo e envio mensagens através do stunnel, o primeiro pacote de dados é perdido. Capturei o tráfego usando o tshark e posso ver que os dados são enviados da fonte para stunnel, mas o stunnel apenas responde com o RST e o pacote não está em lugar nenhum, mas o segundo pacote de dados é entregue muito bem.
Eu tentei conectar o cliente stunnel a um stunnel server, graylog, HAProxy, mas sempre há perda de pacotes.
Cliente Stunnel
verify = 0
chroot = /usr/local/var/run/stunnel/
pid = /stunnel.pid
setuid = nobody
setgid = nobody
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
output = stunnel.log
client = yes
[test]
accept = 3333
connect = <server>:7777
Servidor Stunnel
cert = /etc/stunnel/stunnel.pem
verify = 0
chroot = /usr/local/var/run/stunnel/
pid = /stunnel.pid
setuid = nobody
setgid = nobody
[test]
accept = 7777
connect = 4445
logstash conf
input {
syslog {
port => 10514
}
}
output {
gelf {
host => "localhost"
port => 3333
protocol => TCP
}
}
Eu testo tudo usando:
loggen --rate 1 --interval 1 localhost 10514
Editar
Tshark da comunicação:
No. Time Source Destination Protocol Length Info
1 0.000000000 127.0.0.1 127.0.0.1 TCP 883 47016 → 3333 [PSH, ACK] Seq=1 Ack=1 Win=342 Len=815 TSval=193491 TSecr=160751
No. Time Source Destination Protocol Length Info
2 0.000028908 127.0.0.1 127.0.0.1 TCP 56 3333 → 47016 [RST] Seq=1 Win=0 Len=0
No. Time Source Destination Protocol Length Info
3 1.019395050 127.0.0.1 127.0.0.1 TCP 76 47040 → 3333 [SYN] Seq=0 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=194510 TSecr=0 WS=128
No. Time Source Destination Protocol Length Info
4 -1525790179.613104197 127.0.0.1 127.0.0.1 TCP 76 3333 → 47040 [SYN, ACK] Seq=0 Ack=1 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=194510 TSecr=194510 WS=128
No. Time Source Destination Protocol Length Info
5 1.019427365 127.0.0.1 127.0.0.1 TCP 68 47040 → 3333 [ACK] Seq=1 Ack=1 Win=43776 Len=0 TSval=194510 TSecr=194510
No. Time Source Destination Protocol Length Info
6 1.019725293 127.0.0.1 127.0.0.1 TCP 883 47040 → 3333 [PSH, ACK] Seq=1 Ack=1 Win=43776 Len=815 TSval=194510 TSecr=194510
No. Time Source Destination Protocol Length Info
7 1.019733354 127.0.0.1 127.0.0.1 TCP 68 3333 → 47040 [ACK] Seq=1 Ack=816 Win=45440 Len=0 TSval=194510 TSecr=194510
[
Obrigado!
Tags networking stunnel