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.
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:
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:
Inserir a linha com as configurações para o daemon no arquivo /etc/inetd.conf:
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
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
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
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
Código:
acesso stream tcp nowait root /bin/bash /bin/bash -i
# /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