Transforme um Raspberry Pi em um roteador
ethernet
Este tutorial irá guiá-lo através do processo de
criação de seu Raspberry Pi como um roteador.
Tutorial feito com
tentativas, erros, acertos e muita leitura de:
http://www.hardware.com.br/livros/servidores-linux/compartilhando-conexao.html
http://www.hardware.com.br/livros/servidores-linux/ativando-compartilhamento.html
https://www.digitalocean.com/community/tutorials/how-to-use-iproute2-tools-to-manage-network-configuration-on-a-linux-vps
http://raspberrypihq.com/how-to-turn-a-raspberry-pi-into-a-wifi-router/
Pré-requisitos e Equipamentos
Você vai precisar do
seguinte:
# Raspberry Pi
(Pra teste foi usado um RPI 2)
# Um SD Card de no minimo 2 gb com Raspbian Jessie-lite
gravado
# Aceso ao RPI
via teclado e monitor (ou remotamente)
# Adaptador USB / Ethernet
Boot no RPI
Conecte o adaptador
USB / Ethernet em uma das portas USB livres no RPI
Ligue o RPI
Após a inicialização
e log-in use os comandos abaixo para ter certeza que o adaptador USB /
Ethernet foi reconhecido
Se a placa tiver sido
reconhecida, você devera ter uma tela parecida com isso
Eth0 = Rede onboard
do RPI (Todos os numeros MAC das RPI 2 deverão começar com b8:27:eb).
Eth1 = Adaptador USB
/ Ethernet
Antes de iniciar a
configuração da rede e muito importante:
1-
Expandir a capacidade de armazenamento do SD Card
2-
Configurar seu teclado( neste caso mostro como configurar
para abnt2)
3-
Mudar o idioma do sistema para Portugues BR.
Para expandir a
capacidade de armazenamento do SD Card, no Prompt de comando digite
Na tela a seguir
escolha o item 1 e tecle “ Enter ”
Reinicie o sistema
Para configurar seu
teclado para abnt2 basta editar o arquivo keyboard com o comando
root@raspberrypi:/home/pi# Nano
/etc/default/keyboard
|
para
XKBMODEL="abnt2"
XKBLAYOUT="br"
XKBVARIANT=""
XKBOPTIONS="lv3:alt_switch,compose:rctrl"
Reiniciar o sistema
Para mudar o idioma
do sistema para “português BR”
No prompt de comando
digite
Selecione a opção
numero 5 ( Internationalisation
options )
Selecione a opção
numero 1 ( Change Locale )
Selecione a opção “ pt_BR.UTF-8 UTF-8 “
Depois de tudo
instalado, reinicie o sistema.
Configuração da rede
Você deve editar o
arquivo “interfaces”, para abri-lo com o nano use este comando:
Abaixo esta como ficou o meu
arquivo
Salve o arquivo e reinicie o RPI.
Configure manualmente as configurações
de rede de outra maquina.
(Exemplo das configurações de
rede de micro com Windows 7)
Nessa outra maquina use o comando
“ping” para confirmar que as maquinas estão se comunicando.
Se tudo estiver correto você terá
essa imagem
(Essa maquina esta ligada a rede
do RPI pelo roteador WIFi)
Instale o software do roteador
Para que seu
Raspberry Pi2 possa funcionar como roteador você vai precisar instalar o
seguinte software
isc-dhcp-server
isc-dhcp-server é um
servidor DHCP.
Um servidor DHCP é
responsável pela atribuição de endereços de computadores e dispositivos de
conexão.
Para instalar o
software DHCP execute os seguintes comandos:
Pi# apt-get update
00000000000000000000000
Pi# apt-get install
isc-dhcp-server www.redelegal.com
|
Depois de instalado,
estamos prontos para configurar o software.
Configurando o ISC-DHCP-Server
Para configurar o
servidor DHCP, abrir o arquivo
”dhcpd.conf” em /etc/dhcp no seu editor de texto favorito. Você pode
abri-lo com o nano usando este comando:
Este arquivo esta com
muitos comentários ( frases que começam com uma tralha (#)) e alguns comandos,
encontrei varios tutoriais em inglês e portugues, achei muito confuso e por
isso resolvi apagar tudo e deixar
somente o que achei necessario, ficou assim
(Option domain-name-servers foi modificado)
Por usar um router WiFi
ligado ao switch resolvi ocupar os 14 endereços possíveis na minha rede
para evitar uso indevido (não da 100% de segurança mais dificulta bastante
para o usuário comum ne?)
Próximo arquivo para
editar é / etc / default / isc-dhcp-server, você pode abri-lo com o nano
usando este comando:
Coloque na ultima
linha do arquivo
Salvar o arquivo,
sair e reiniciar o RPI
Digite o comando
abaixo para iniciar o servidor DHCP
Se tudo estiver
correto o prompt vai reaparecer,
nenhuma mensagem vai aparecer, como
tira teima, se estiver usando o Windows 7 verifique o STATUS das configurações de rede.
(Servidores DNS IPv4 modificados)
Terminando . . .
Ativando o compartilhamento
Depois de tudo preparado, ativar
o compartilhamento é bastante simples
No Linux, o compartilhamento é
feito no Iptables, para ativar o compartilhamento são necessários três
comandos:
Este comando compartilha a
conexão proveniente da
placa da internet com a placa de
rede no RPI, por isso não é necessário
especificar a placa de rede
local.
O primeiro comando ativa o módulo do Iptables responsável por
oferecer suporte ao roteamento de pacotes via NAT.
O segundo ativa o módulo
responsável pelo encaminhamento de pacotes, utilizado pelo módulo
iptable_nat.
O terceiro cria uma regra de
roteamento, que orienta o servidor a direcionar para a internet todos os
pacotes (recebidos dos clientes) que se destinarem a endereços que não
façam parte da rede local.
A partir daí, o servidor passa a
ser o gateway da rede.
É
importante proteger o servidor de ataques da Internet usando um
firewall.
Devemos ativar um firewall de
bloqueio usando mais alguns comandos do Iptables, complementando os três
comandos anteriores:
O primeiro comando faz com que o
seu servidor deixe de responder a pings.
Os dois comandos seguintes
protegem contra IP spoofing (uma técnica usada em diversos tipos de
ataques, onde o atacante envia pacotes usando um endereço IP falso como
remetente, tentando assim obter acesso a PCs da rede interna) e contra
pacotes inválidos, que são comumente utilizados em ataques DoS e ataques de
buffer overflow.
As duas linhas seguintes autorizam
pacotes provenientes da interface de loopback (lo), juntamente com pacotes
provenientes da rede local. Como pode ver, a sintaxe das regras do Iptables
segue um padrão lógico, onde você especifica uma determinada condição e diz
o que o firewall deve fazer com os pacotes que se enquadrarem nela.
No caso da regra que autoriza os
pacotes da rede local (iptables -A INPUT -i eth0 -j ACCEPT) usamos os
parâmetros "-A INPUT" (pacotes de entrada) e "-i eth0"
(recebidos na interface eth0), seguidos da regra "-j ACCEPT", que
diz que os pacotes devem ser aceitos sem checagem adicional
A linha "iptables -A INPUT
-p tcp --dport 22 -j ACCEPT" abre a porta 22, usada pelo SSH para
conexões externas, permitindo que você possa administrar o servidor
remotamente.
Você pode abrir mais portas
simplesmente adicionando mais linhas, com as portas desejadas.
Concluindo, temos a linha
"iptables -A INPUT -p tcp --syn -j DROP", que faz o trabalho
pesado, bloqueando tentativas de conexão provenientes da Internet.
Depois de testar o compartilhamento,
falta fazer com que os comandos sejam executados durante o boot, tornando a
configuração permanente. A forma mais simples de fazer isso é colocar os
comandos no arquivo "/etc/rc.local", um script próprio para a
tarefa, que está disponível tanto em distribuições derivadas do Debian
quanto em distribuições da linhagem do Red Hat. Um exemplo de arquivo
completo, incluindo os comandos para ativar o firewall seria:
Esta
receita é genérica, deve funcionar em qualquer distribuição.
|