Conceitos de redes, TCP e Serviços de Rede
Neste artigo vamos ver as principais ferramentas de configuração de rede, como configurar hosts em uma rede, administrar e verificar o tráfego em um host com o netstat.Para entender o contéudo é necessário ter um conhecimento sobre redes, aconselho ver esse artigo sobre números binários e máscara de sub-redes.
Se você já tem noções de rede como mascara de sub-rede, endereçamento então está apto.
Os serviços tipo [x]inet são aqueles que dependem do comumente chamado “super” daemon de rede inetd – InterNet daemon – sendo o xinetd – eXtended Internet daemon uma iplementação do inetd com alguns recursos a mais como controle de acesso, capacidade de fazer logs e determinar horários para que o serviço esteja disponivel.
Esse daemon fica escutando nas portas que os serviços controlados por ele trabalham e carregam o programa apropriado quando chega uma requisição na determinada porta. Exemplos de serviços tipo inetd são o telnet, ftp,pop3, et. Ao longo do tempo, alguns dos serviços que eram controlados por inetd passaram a operar como stand alone afim de contornar problemas associados ao inetd. Os serviços tipo portmap são aqueles que não possuem uma porta específica para operar, como por exemplo o NIS e o NFS. Estes serviços enviam uma chamada RPC – Remote Procedure Call – para a máquina servidora, causando a execução de uma determinada subrotina. Dessa forma, quando um cliente faz a requisição de NFS a um servidor, ele está enviando um RPC do tipo NFS e que quando chegar o servidor, será tratado como tal, carregando a rotina apropriada para enviar a resposta ao cliente.
Serviços tipo stand alone são aqueles em que cada tipo de servidor possui seu daemon especifico.
Esta forma de trabalho é preferida hoje em dia pois possibilita um maior controle sobre cada serviço em separado. Serviços que operam dessa forma são, ssh,httpd,ftp,pop3 dentre outros. Repare que atualmente os protocolos ftp e pop3 já possuem seus próprios daemons possibilitando sua utilização desvinculada do [x]inetd.
Telnet
Telnet é um protocolo que pode ser utilizado tanto localmente quanto na internet. Desenvolvido em 1969, é considerado inseguro e seu uso é altamente desencorajado. Quando nos referimos a telnet podemos estar falando tanto do protocolo e o servidor que o implementa quanto no programa cliente, utilizado para acessar esse tipo de servidor. Por ser um protocolo extremamente antigo, está disponivel em praticamente todos os sistemas operacionais. Inclui-se a esta lista muitos Sos de equipamentos de rede, como routers, utilizados como ferramentas para configuração dos mesmos. Atualmente o telnet ainda é bastante utilizado para realizar configurações em equipamentos de rede específico, mas também para testar o funcionamento de serviços como um servidor de pop3, eliminando a necessidade de programas cliente especializados.
O telnet é um protocolo cliente-servidor baseado em uma conexão orientada, utilizando tipicamente a porta 23/tcp.
As tres principais razões para a não utilização do telnet são:
ao longo dos anos tem sido descobertas diversas vunerabilidades em suas implementações e, provavelmente, há muitas outras que ainda não foram determinadas;
por padrão, os dados enviados são criptografados, incluindo usuários e senhas;
não possui esquema de autenticação que possibilite garantir que a comunicação está se dando entre as partes envolvidas, facilitando ataques do tipo man-in-the-middle.
Essas falhas tem feito cair a utilização do protocolo TELNET em favor do ssh, desde sua ciração em 1995.
Prática dirigida
netstat -
O comando netstat exibe o status das conexões, tabelas de rotas, estatísticas da interface, conexões mascaradas e participações em multicast.
Vamos ver alguns exemplos do comando.
O comando netstat sem parametros traduz op IP's para os nomes, por isso ele é demorado para resolvermos esse problema podemos usar o -n
# netstat -n
A opção -t e -l exibe as conexões TCP e as portas disponíveis respectivamente para conexão com a sua máquina.
# netstat -nlt
A opção -u exibe as conexões UDP.
# netstat -nlu
Para formar um comando completo para analise de conexões de rede, podemos usar um conjunto de parametros.
# netstat -nltup
Neste caso a opção -p nos mostrará o numero do processo e o nome do programa responsável.
ARP (Address Resolution Protocol)
O comando arp exibe a tabela de resolução de MAC das máquinas do segmento de rede.
# arp -n
Configurando o roteamento estático
1 – Configuração das duas interfaces do roteador:
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.0.255
# ifconfig eth1 192.1.40 netmask 255.255.255.0 broadcast 192.168.0.255
2 – Caso tenha apenas uma interface, podemos usar o ip virtual e configurar dois endereços para essa interface, conforma exemplo abaixo:
# ifconfig eth0 192.168.0.1 netmask 255.255.255 broadcast 192.168.0.255
# ifconfig eth0:0 192.168.0.129 netmask 255.255.255 broadcat 192.168.0.255
3 – Consulte se seus sistema permite repasse entre as interfaces de rede. Para isso, o valor da diretriz ip_forward deve ser 1:
# sysctl -a |grep ip_forward
4 – E também ser aceito ping em broadcast.
Para nosso teste, o valor da diretriz icmp_echo_ignore_broadcast deve ser 0:
# sysctl -a |grep icmp_echo_ignore_broadcast
5 – Executa o comando ping para o endereço de broadcast:
# ping -b 192.168.0.255
6 – Use o comando arp para identificar o endereço mac dos hosts que estão ativos em sua rede:
# arp -an
7 – Podemos alterar em tempo de execução caso seja necessário:
# sysctl -w net.ipv4.ip_forward=1
# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0
8 – Habilitando o forward (repasse) de pacotes de forma que fique permanete:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 0 > /proc/sys/net/ipv4/icmp_ignore_broadcasts
9 – Outra forma interessante é inserir uma entrada no arquivo /etc/sysctl.conf:
# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
# echo net.ipv4.icmp_echo_ignore_broadcasts=0 >> /etc/sysctl.conf
# sysctl -p /etc/sysctl.conf
# cat /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
10 – Execute o comando ping para o endereço de broadcast:
# ping -b 192.168.0.255
11 – Use o comando arp para identificar o endereço mac dos hosts que estão ativos em sua rede:
# arp -an
12 – Podemos alterar em tempo de execução caso seja necessário:
# sysctl -w net.ipv4.ip_forward=1
# sysctl -w net.icmp_echo_ignore_broadcasts=0
13 – Habilitando o forward (repasse) de pacotes de forma que fique permanente:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 0 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
14 – Outra forma interessante é inserir entrada no arquivo /etc/sysctl.conf:
Configurando as estações nas sub-redes
1 – Configurando um host na sub-rede 192.168.0.0/25:
# ifconfig eth0 192.168.0.2 netmask 255.255.128 broadcast 192.168.0.127
2 – Para a rede 192.168.0.0/25, o gateway deve ser 192.168.0.1:
# route add default gw 192.168.0.1
# route -n
# netstat -puneta
0 comentários:
Postar um comentário