stunnel soltando primeiro pacote

1

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!

    
por Sprvn 17.05.2018 / 17:13

0 respostas