Em uma caixa de centos, gosto de despejar conexões tcp - gostaria de ver se um servidor tenta enviar solicitações para um determinado IP. Normalmente, o tcpdump faria o truque - mas o tcpdump não está instalado e a instalação de software não é uma opção (devido à política da empresa). Receio que o netstat não me mostre uma única solicitação.
Então, eu queria saber quais outras opções eu tenho. Eu tenho acesso root no servidor.
Respostas:
Certamente você tem
python
?Isso sairá com "GOT TARGET", fornecendo o endereço IP retornando correspondências. Como o TCP precisa enviar algo de volta durante um aperto de mão, isso deve capturar qualquer coisa de um endereço de destino específico. Não importa se o protocolo é TCP ou UDP (nem eu verifico).
Não se esqueça de alterar o TARGET e o INTERFACE.
fonte
socket.error: (1, 'Operation not permitted')
Eu realmente tentaria obter o tcpdump. Dito isto, algumas alternativas para verificar se existe uma certa conexão para um IP são:
strace:
lsof:
netstat:
fonte
O Iptables possui um recurso de depuração e também pode ser usado para análise de tráfego.
A solução está descrita no URL abaixo.
Regras de depuração no Iptables
Também vale a pena ler o seguinte URL para configurar o log da saída de rastreio em um arquivo de sua escolha.
http://backreference.org/2010/06/11/iptables-debugging/
Eu não consideraria esta solução igual ao tcpdump, mas isso pode ser feito usando uma instalação mínima do Centos. Você precisa ter cuidado para não encher o disco com os logs, porque o tcpdump é muito mais eficiente no uso do disco. Desative o log quando não for necessário.
Você pode usar o seguinte como um modelo básico em seu script.
fonte
Se você precisa de um software específico para o seu trabalho e não tem permissão, não está fazendo um bom negócio ou vendendo suas idéias para as pessoas certas ... ou não está no controle desse sistema. .
Se eu tivesse a tarefa de fazer algo e precisasse do tipo de informações de depuração / solução de problemas necessárias nesse caso, eu usaria a ferramenta certa. Isso é provável
tcpdump
outshark
. Sim, esses são pedaços de software, mas eu os consideraria utilitários mais essenciais . Na verdade, são utilitários que podem ser instalados ou carregados temporariamente no sistema e removidos sem incidentes (a mídia removível é uma opção? ... dica )Mas o ponto é que uma solução alternativa irregular para a política da empresa provavelmente exige mais esforço do que obter aprovação para este caso de uso.
fonte
tcpdump
outro lugar e apenas copiá-lo para / tmp e executar a partir daí?Kyle ofereceu ótimas opções. Mais um seria usar
iptables
:Esta é essencialmente uma regra contábil. Ele não permite ou nega explicitamente o tráfego, portanto, a política padrão da cadeia OUTPUT é usada (o padrão é ACEITAR). No entanto, qualquer pacote correspondente aumentará os contadores da regra.
Opcionalmente, você pode registrar detalhes sobre o pacote, com a
-j LOG
opção:Os logs irão para o recurso de registro do kernel, portanto devem aparecer em / var / log / messages nos derivados da Red Hat e /var/log/kern.log nos derivados da Debian. Também seria visível na saída de
dmesg
, como mostrado. Ao contráriotcpdump
, no entanto, ele não registrará o conteúdo completo do pacote, apenas o conteúdo do cabeçalho do pacote.fonte
Como o servidor está se conectando a um determinado IP, presumo que seja para uma porta que você também conhece?
De qualquer forma,
netstat
ouss
foram projetados para fazer o que você deseja. Você pode fazer o mesmo com qualquer um dos comandos:onde
A.B.C.D
representa um endereço IPv4 en
representa um número de porta à qual seu servidor está se conectando no lado remoto. Por exemplo:Ou, se você gostaria de saber que a conexão é feita:
Se você não souber o número da porta à qual está tentando se conectar, o trabalho será mais difícil, pois o TCP abrirá uma porta nos dois lados da conversa para os pacotes de dados e ACK. Nesse caso, você pode simplesmente fazer uma saudação para o endereço IP para mostrar que qualquer conexão foi feita, seja para / de.
Por fim, você pode fazer um loop disso no conteúdo do seu coração para usar como sua ferramenta de monitoramento:
fonte