você está aqui: Home  → Arquivo de Mensagens

AIX - Identificando portas abertas

Colaboração: André Luiz Facina

Data de Publicação: 13 de agosto de 2010

É muito importante conhecer o ambiente que está sendo administrado. Em se tratando de servidores, muitas vezes temos em um ambiente muitas portas abertas ( em modo listen ), e é importante saber qual processo está ouvindo em uma determinada porta, por questões de segurança e até em situações de troubleshooting. A dica de hoje é identificar, no AIX, qual processo está sendo executado em uma porta específica.

Método 1 - Usando os comandos netstat e rmsock

Protocolo TCP

  #  netstat -Aan |grep *.1334
  f1000e0002b753b0 tcp4       0      0  *.1334             *.*                LISTEN
  
  # rmsock f1000e0002b753b0 tcpcb
  The socket 0x2b75008 is being held by proccess 5701822 (writesrv).
  
  # ps -ef |grep 5701822
  root  5701822  1507536   0   Jun 10      -  0:00 /usr/sbin/writesrv

Como podem ver o processo writesrv está sendo executado na porta 1334

Protocolo UDP

  # netstat -Aan |grep *.514
  f1000e0002a67e00 udp4       0      0  *.514              *.*
  
  # rmsock f1000e0002a67e00 inpcb
  The socket 0x2a64c08 is being held by proccess 5308580 (syslogd).
  
  # ps -ef |grep 5308580
  root  5308580  1507536   0   Jun 10      -  0:36 /usr/sbin/syslogd

A porta 514 UDP está sendo utilizada pelo processo do syslogd.

Método 2 - Utilizando os comandos netstat e kdb (kernel debuger)

  #  netstat -Aan |grep 1334
  f1000e0002b753b0 tcp4       0      0  *.1334             *.*                LISTEN
  
  # kdb
  
  (0)>
  (0)> sockinfo f1000e0002b753b0 tcpcb

... A saída do comando kdb é bem detalhado, e por isso foi truncado. O importante para nós é a ultima linha, como mostrado abaixo ...

  proc/fd:  87/3
  proc/fd: fd: 3
              SLOT NAME     STATE      PID    PPID          ADSPACE  CL #THS
  
  pvproc+015C00   87*writesrv ACTIVE 05700BE 01700D0 0000001190239480   0 0001

O importante é saber o PID do processo, que está em hexadecimal na coluna PID. Para converter de hexadecimal para decimal, basta utilizar o comando hcal, dentro do prompt do kdb. Como mostrado abaixo.

  (0)>
  (0)>
  (0)> hcal 05700BE
  Value hexa: 005700BE          Value decimal: 5701822
  (0)> quit

De volta ao shell, verificar qual programa pertence ao PID 5701822

  # ps -ef |grep 5701822
    root  5701822  1507536   0   Jun 10      -  0:00 /usr/sbin/writesrv

O mesmo procedimento pode ser utilizado para portas UDP, sempre trocando o parâmetro tcpcb por inpcb.

André Facina atualmente trabalha na IBM como especialista em Unix e Storage.


Veja a relação completa dos artigos de André Luiz Facina

 

 

Opinião dos Leitores

Douglas Cavalcanti
18 Ago 2010, 13:34
Otima Dica, muito util para o dia a dia.
Sergio Pantano
13 Ago 2010, 10:48
Gostaria de dicas do contrário, saber a(s) porta(s) que a aplicação esta utilizando?
Eberno
12 Ago 2010, 10:28
Parabéns Facina este seu artigo e de vital importancia para o a Administracao do ambiente.

Isto mostra o seu comprometimento pela grande causa que é o UNIX.


Marcelo
11 Ago 2010, 22:56
Ótima dica!!!!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script