30 de nov de 2012

Como liberar uma porta pelo iptables - Linux CentOS, Fedora, Red Hat

É bastante comum eu me deparar com um cenário onde preciso liberar porta de entrada para acessar algum servidor em um ambiente linux. Então segue a dica para liberar as portas desejadas no IPTables.

Para liberar portas usando o iptables edite o arquivo:
/etc/sysconfig/iptables

Se você quer liberar a porta 8080 no protocolo tcp, adicione a seguinte linha:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

Feito isso basta reiniciar o iptables(se estiver logado como root não precisa do comando sudo):
sudo service iptables restart

Como descobrir um PID pela porta - Linux, Solaris

Já me deparei mais de uma vez com a necessidade de descobrir o PID de um processo que está ocupando uma porta do S.O mas não consigo liberar a porta por não ter o id do processo podendo assim forçar que ele pare de executar.

Então segue a dica de como fazê-lo:

Linux:
netstat -tulpn


Você deverá ver uma saída como a imagem abaixo, perceba que o PID aparece na última coluna(PID/Program name) e a porta na quarta coluna (Local Address):



Se você quiser ver somente uma porta específica utilize o grep:

netstat -tulpn |grep ${NUMERO_DA_PORTA}
A saída será conforme a imagem abaixo:



Uma outra opção no Linux e outros unix like O.S é usar o lsof:
lsof |grep ${NUMERO_DA_PORTA}


Solaris:
No solaris siga a dica e execute os scripts que o Fabio Morais postou neste link.