Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Criando e fechando portas no seu Linux

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Criando e fechando portas no seu Linux

    Muitas vezes, independente do motivo, precisamos abrir portas em nosso sistema para poder realizar uma conexão posteriormente ou para rodar um determinado serviço. Veja aqui como fazer.
    Por: Diogo Menezes

    Introdução
    Muitas vezes, independente do motivo, precisamos abrir portas em nosso sistema para poder usá-las para uma conexão posteriormente ou para rodar um determinado serviço.

    Hoje mostrarei como criar essas portas em seu Linux.

    Para que essas portas sejam abertas ou fechadas, precisamos editar 2 arquivos, são eles /etc/services e /etc/inetd.conf.

    /etc/services

    Primeiramente explicarei por alto o funcionamento do arquivo /etc/services.

    Basicamente o arquivo /etc/services associa um nome de um serviço a um número de porta.

    Suas linhas são organizadas da seguinte maneira:

    nome porta/protocolo apelido #comentário

    Onde:

    * Nome - Nome do serviço;
    * Porta/protocolo - Esse campo está representado da seguinte maneira:
    Porta - número da porta que o serviço está rodando;
    Protocolo - Tipo de protocolo onde a porta atua, aceita opções TCP e UDP.

    * Apelido - Outro nome pelo qual o serviço pode ser amigavelmente chamado;
    * Comentário - Uma # seguida de uma descrição representa um comentário e é ignorado pelo interpretador.

    Um exemplo de utilização desse arquivo seria a linha abaixo. Essa linha basicamente associa o serviço Cn9boy a porta numero 1092 como tcp.

    Código:
    Cn9boy     1092/tcp   cn9    #Minha porta
    Agora que já sabemos como usar o arquivo /etc/services, estamos muito perto de conseguir abrir uma porta para um rodar determinado serviço.

    Arquivo /etc/inetd.conf
    Apesar de termos inserido um nome de serviço no arquivo /etc/services, precisamos ainda modificar o arquivo /etc/inetd.conf para que um serviço seja realmente iniciado.

    O arquivo /etc/inetd.conf é o arquivo de configuração do daemon inetd, ele orienta o daemon inetd sobre o que fazer quando ele recebe uma conexão.

    Esse esquema funciona da seguinte maneira, existe um daemon chamado inetd que fica responsável por ler as configurações do arquivo /etc/inetd.conf e ficar aguardando as conexões.

    Ao receber uma conexão, o daemon verifica as permissões de acesso nos arquivos /etc/hosts.allow e /etc/hosts.deny e então carrega o serviço.

    As linhas do arquivo /etc/inetd.conf são organizadas da seguinte maneira:

    serviço tipo_soquete protocolo opções usuário caminho_serv. opções_serv

    Onde:

    * Serviço - É o nome d serviço já localizado no arquivo /etc/services;
    * Tipo_soquete - Tipo de soquete a ser utilizado, são permitidas as seguintes entradas: stream, dgram, raw, rdm, seqpacket. Como dica os serviços baseados em TCP usam stream e os baseados em udp usam dgram.
    * Protocolo - Protocolo utilizado pelo serviço, pode ser UDP ou TCP.
    * Opções - 2 opções, como regra servidores TCP são ajustados para nowait e todos os outros para wait.
    * Usuário - Nome do usuário para o qual serão definidos os privilégios do serviço.
    * Caminho_serv - Caminho para o programa servidor que será executado.
    * Op_serv - Campo opcional, serve para passar argumentos para o programa servidor que será rodado.

    Então se quisermos executar um serviço de bash, ou seja, dar a quem conecta o um shell de seu computador, através daquela porta que especificamos em /etc/services, apenas teríamos que inserir em /etc/inetd.conf a seguinte linha:

    Código:
    Cn9boy    stream    tcp    nowait      root   /bin/bash   /bin/bash -i
    Onde "/bin/bash /bin/bash -i" indica que o bash em modo interativo será o serviço executado.

    DICA: Fechando portas desnecessárias:

    Uma boa dica para segurança do sistema é comentar com # as linhas de serviços que não serão utilizados por você no arquivo /etc/inetd.conf.

    Com tudo feito temos apenas que reiniciar o daemon e testar a conexão:

    # /etc/init.d/inetd restart

    $ telnet localhost 1092


    Resumindo e concluindo

    Agora que já esta tudo explicado, farei um resumo para a criação de uma porta de controle, ou seja, executando "/bin/bash /bin/bash/ -i".

    Inserir a linha com o nome do serviço e porta no arquivo /etc/services:

    Código:
    acesso    1092/tcp   #Minha porta
    Inserir a linha com as configurações para o daemon no arquivo /etc/inetd.conf:

    Código:
    acesso   stream    tcp    nowait    root  /bin/bash  /bin/bash -i
    Reiniciar o daemon:

    # /etc/init.d/inetd restart

    Tentar a conexão:

    telnet ip porta

    Ex:

    $ telnet 127.0.0.1 1092

    Uma dica legal para ver se sua porta esta realmente aberta é usar o nmap:

    nmap ip -p porta

    Ex:

    $ nmap localhost -p 1092
    Starting nmap 3.81 ( Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... ) at 2006-03-05 18:15 BRT Interesting ports on localhost.localdomain (127.0.0.1):
    PORT STATE SERVICE
    1092/tcp open unknown

    Se tudo correu bem, agora você estará acessando um shell com privilégios de root.

    Espero que seja útil.

    Fonte: VivaoLinux
    Postado Por: RedDeviL
X
Working...
X