Linux: Procurando um log de rede para conexões de servidor

Linux: Procurando um log de rede para conexões de servidor

Existe um log nos servidores centos que registra todas as conexões de/para?

então algo como um registro de conexões centralizado

Responder1

A única maneira segura de obter um único log centralizado de todas as conexões TCP seria adicionar LOGregras à iptablesconfiguração do firewall do software que registrariam qualquer pacote com bits SYN e ACK definidos, ou seja, o segundo pacote de qualquer conexão TCP. Elas apareceriam como mensagens de log do kernel /var/log/messagespor padrão.

Por favor, vejaesta pergunta em Server Fault.SE.

Essencialmente, você gostaria de adicionar regras de iptables como esta:

iptables -A OUTPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix "Inbound connection established: "
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -j LOG --log-prefix "Outbound connection established: "

(Você pode querer colocar essas regras em seu conjunto de regras existente para que elas não se apliquem à interface de loopback, pois isso pode gerar duas entradas para cada conexão local entre processos de aplicativos no host.)

E sim, a regra na cadeia OUTPUT registra conexões de entrada e vice-versa, porque isso registrará apenas as conexões que estão realmente sendo respondidas: registrar apenas os pacotes SYN também registraria tentativas de conexão que serão rejeitadas. Devido às verificações de portas executadas por sistemas infestados de malware na Internet, isso muitas vezes geraria muitas entradas de log inúteis: você teria que verificar com outros logs, apenas para descobrir que você não possui tal serviço em execução ou que a conexão foi rejeitada por outra iptablesregra ou pelo serviço em questão.

Para protocolos UDP é mais complicado, porque o UDP não tem conexão e é basicamente apenas uma plataforma na qual um protocolo específico de aplicativo pode ser construído. Portanto, não há uma maneira fácil de detectar "o primeiro pacote de uma conexão" ou algo parecido, porque tudo isso será inteiramente específico do aplicativo.

Responder2

Eu acho que isso deveria bastar:

journalctl -fu sshd

ou

journalctl -u sshd -n 100

Isto é, se você estiver executando o systemd, que considero o padrão. O primeiro ficará de guarda. Este último é equivalente a passar pela cauda.

(A leitura parece indicar que os logs deveriam estar em/var/log/secure)

informação relacionada