Autor: Fabiano S. Rech
eMail: fabiano[NOSPAM]linuxbsd.com.br
Data: 2002
Quando o linux é instalado por default ele ativa e configura diversos serviços desnecessarios. Como o Echo, o Daytime, Chargen e assim por diante, este tipos de serviços não usados pelo sistema, muitas vezes temos o apache ativado mas na realidade esta maquina nunca será um web server, por isto devem ser desativados, pois serviços ativados sem uso e deixando portas escancaradas é um convite para que hackers e crackers visitem seu computador. Para isto utilizaremos de 3 utilitarios já inclusos em qualquer distribuição linux, que nos ajudarão a ver quais portas estão abertas e indentificar os serviços que estão ali trabalhando os quais são netstat, lsof, nmap
Netstat:
O netstat é um programa que é encontrado com facilidade em diversas distribuições linux, alias em todas, como seu uso podemos obter muitas informações sobre os serviços de rede de nosso sistema, veja a lista de argumentos usados com o netstat:
_________________________________________
-r
Quando usado ele mostra a tabela de roteamento dos hosts.
_________________________________________
-a
Quando usado irá mostrar a lista de portas abertas, qual o sistema remoto conectado e o andamento da conexão.
_________________________________________
-n
Quando usado , ele impede que o netstat converta os endereços listados em nomes.
_________________________________________
Uma boa sintaxe par ser usada com o netstat é a:
root@linuxbsd# netstat -an
Apos o seu uso o netstat ira mostrar a primeira seção da saÃda (Active internet connections)irá mostrar todas as conexões existentes e todas as portas que estão escutando ou aguardando conexões. Veja agora as principais colunas:
Proto
Nesta coluna será exibida o tipo protocolo usado para cada execução.
Local Address
Nesta coluna você poderá ver que portas estão recebendo um conexão externa, ex.
0.0.0.0:23 Neste caso alguém estará conectado via telnet ao seu sistema.
Foreign Address
Mostra a conexões efetuadas como maquinas exteriores, ex:
200.215.245.1:80 Neste caso seu sistema estará conectado com o host 200.215.245.1 ligado na porta 80 o que podemos supor que seja um web server.
State Mostra se conexão está em andamento ou a porta está escutando o que pode ser distinguindo pela string:
ESTABLISHED = estabelecido
LISTEN = escutando
todas as linhas que contem o status como listen são as portas que estão aguardando conexões, na coluna local address é possÃvel identificar a porta.
Lsof:
O lsof é um port scanner que supri uma deficiência do netstat: Ele identifica o processo que está associado a uma porta, mas em contrapartida ele dificilmente vira incluso como default em uma distro mas pode ser baixado em:Lsofveja agora as sintaxes usadas pelo lsof:
________________________________________
u [usuário]: Determina os arquivos por um determinado usuário.
________________________________________
-p [process]: Determina os arquivos abertos por um determinado processo.
________________________________________
-i [protocolo][@máquina|IP][:serviço|porta]: Determina os arquivos associados a um determinado endereço IP. Caso não for especificado o endereço IP, o lsof mostra todos os arquivos associados a endereços IP e X.25.
________________________________________
Mas o argumento que mais interessa no nosso caso é o lsof -i pois ele nos mostrará uma listagem das portas da rede que estão ouvindo e os programas reais que as estabeleceram. Ao verificar o resultado você poderá identificar que algum números de portas foram substituÃdos pelos respectivos nomes contidos em /etc/services.
Ainda analisando a saÃda é fácil identificar o inetd como o que mais possui portas abertas, o que não são abertos pelo inetd são listados com seus respectivos nomes na primeira coluna, como por exemplo o X.
Nmap:
O Nmap é o melhor programa de varredura de portas disponÃvel. apesar dele ser muito mais do que um simples programa de varredura, e é largamente usado em auditorias de redes devido ao sua extrema funcionalidade. Mas de inicio irá interessar para nós é seu poder de varrer portas. O uso do nmap é importante pois você poderá varrer seu sistema a partir de outra maquina, caso desconfie que o resultado do netstat e o lsof estejam sendo burlados.
Veja a seguir da opção:
_________________________________________
-sT
Varredura de portas connect() TCP completa. Está opção não precisa ser usada como root.
Ex.
fabiano@linuxbsd# nmap -sT -O localhost
Digitado este comando vemos que o resultado será o mesmo do lsof e do netstat, mas como disse antes tem a vantagem de ser feito por um host remoto no caso de desconfiança da integridade do netstat e lsof.
Desativando os serviços.
Depois que você vez as varreduras(é importante fazer as 3 de preferência usando o nmap de um host exterior.)chegou a hora de desativar os serviços desnecessários, nesta parte há que se tomar um cuidado especial, para não bloquear algum serviço importante ao sistema. Ex. de portas e serviços que podem ser desativados:
ftp: Desative se você não usar o servidor ftp instalado em sua maquina.
telnet: Com certeza tem que se desativar, se você usa ainda algo baseado em telnet tente migrar para o ssh.
smtp:Porta usado pelo programa de e-mail como sendmail ou qmail, pode se desativar com segurança isto não implicara no recebimento dos email´s.
finger:Usada pra administração remota de usuários. Outra porta que pode ser desativada sem preocupações.
sql:Usado pelo banco de dados desative também se você não o usa.
squidUsado pelo Proxy Squid, desative se você não precisar do squid.
Com certeza a lista poderá ser bem maior, por isto cada sistema terá uma concepção diferente, analise bem suas portas antes de bloqueá-las. Identificados os serviços desnecessários e os programas que geraram eles basta desinstalar os programas respectivos ou no caso do inetd editá-lo e comentar as linhas correspondentes. logo apôs feito isto basta digitar:
killall -HUP inetd
O cuidado com as portas do seu sistema é um assunto vital e no qual nos devemos preocupar, deve ser tarefa constante de um administrador de redes este tipo de habito. pois que alem de saudável irá prezar pela integridade de um sistema ou uma rede num todo.
Espero ter ajudado e qualquer duvida ou sugestão poderá ser comentando no fórum do site. obrigado.