No Linux, pelo menos, lsof
não pode informar a você qual extremidade iniciou a conexão, pois ela obtém a lista de /proc/net/tcp
, onde essa informação não está disponível. O primeiro endereço sempre se refere ao endpoint local .
Versões recentes do utilitário ss
(que usam uma API do kernel diferente para recuperar informações de conexão), com -e
, lhe darão direção, mas infelizmente não para conexões TCP.
Como @XTian disse , para TCP / SCTP / UDP, normalmente é possível adivinhar qual é o iniciador de conexão normalmente usará uma porta alta, enquanto o destino normalmente será uma porta baixa bem conhecida. Não há garantia no entanto. Vendo que a máquina também tem ou não tem sockets listening na mesma porta pode também confortá-lo na sua idéia de qual direção ela é. Por exemplo, no seu caso, você provavelmente tem um processo de escuta na porta smtp/25
mas nenhum da porta unknown/34434
. Seria muito improvável que fake.VVVVV.fr
tivesse iniciado uma conexão com a porta 34434 em sua máquina, especialmente com uma porta de origem 25 / smtp (improvável, mas perfeitamente possível).
Para algo mais confiável, você pode consultar o rastreador de conexão.
O rastreador de conexão do firewall do sistema manterá controle de qual extremidade iniciou a conexão (ou enviou o primeiro pacote para protocolos de transporte sem conexão, como o UDP). Você pode consultar a tabela de controle de conexão com o utilitário de linha de comando conntrack
ou com o comando iptstate
top-like.
Lá, o primeiro endereço em cada linha será aquele do início da conexão.
Observe que ele incluirá todas as conexões rastreadas, portanto, possivelmente, também as conexões encaminhadas pelo sistema, como nos roteadores.