Melhorando o script bash

0

Eu preciso melhorar este script:

nmap -PN -p 9292 -sN 192.68.12.14 | grep "open" 

Eu preciso verificar a conectividade ao ip 192.168.15.24 na porta 9292 .

Se a porta estiver aberta, imprima "a porta 9292 está aberta"

Se a porta estiver fechada, imprima "a porta 9292 está fechada"

O resultado será retirado de icinga para fazer uma verificação.

Alguma ideia?

    
por Marcelo Martinez 05.04.2016 / 21:29

2 respostas

3

Além da resposta correta do @DopeGhoti usando o netcat, seu script poderia ser melhorado alterando algumas das suas opções do Nmap e adicionando algumas.

  • -sN significa "varredura TCP NULL", que é um modo de varredura de soquete bruto incomum que requer privilégios de root. Ele também tem a propriedade estranha de apenas rotular portas como "fechadas" ou "não filtradas", mas nunca "abertas". Você provavelmente deseja uma varredura normal do TCP Connect, usando a opção -sT .
  • O Nmap tentará fazer uma pesquisa de nome reversa ( PTR ) por padrão. Evite esse atraso desnecessário com a opção -n .
  • O uso da saída de tela normal do Nmap em um script não é recomendado, mesmo para algo simples, porque está sujeito a alterações entre as versões. Para um formato de saída estável e analisável por máquina, use grepable ( -oG ) ou XML ( -oX ) .
  • -PN é uma ortografia antiga de (descontinuada em 2010) de -Pn . Ele pula a fase de descoberta do host, então provavelmente é uma boa ideia para o seu script.

Exemplo com todas essas alterações:

nmap -n -Pn -sT -p 9292 -oG - | grep '/open/'
    
por bonsaiviking 07.04.2016 / 14:57
3

Isso requer o pacote netcat :

if nc -z 192.68.12.14 9292; then
    echo "Port is open"
else
    echo "Port is closed"
fi

nc -z tentará estabelecer uma conexão com o host e a porta especificados; ele retorna um código de saída 0 após sucesso e um código diferente de zero. Na verdade, não produz nada no terminal. Para obter o resultado desejado, uso uma instrução if para testar os resultados do teste de conexão e echo o resultado apropriado para o terminal.

    
por DopeGhoti 05.04.2016 / 21:31