Pular para o conteúdo principal

Usando um linux como roteador caseiro

Podemos utilizar um computador com linux e duas interfaces de rede como roteador.
Um roteador recebe informações que chegam através do seu sinal de banda larga através de um modem, decifra os dados e os entrega ao seu computador. O roteador também escolhe a melhor rota para o pacote de dados para que você receba as informações rapidamente.
Em um próximo post mostraremos como usar o roteador linux para utilizar duas conexões internet.

A nossa rede funciona como ilustrado na figura abaixo. A rede interna funciona com endereços privados, na faixa de 192.168.0.0 a 192.168.0.255 ou 192.168.0.0/24. Utilizamos o Ubuntu LTS 14.04.5 para os exemplos de configuração a seguir. Caso você esteja utilizando uma outra versão de linux, as configurações podem ser diferentes.


Configurando as interfaces

Precisamos editar o arquivo /etc/network/interfaces.

Vamos conferir as interfaces que possuimos usando ifconfig.

Veja que em eth0 foi configurado o endereço 10.0.2.15 que foi fornecido pelo nosso provedor e é por ele que faremos o acesso à internet. Enquanto em eth1 está configurado o endereço 192.168.0.1 que configuramos manualmente no arquivo "interfaces".
Vamos ver se conseguimos acessar do roteador algum computador na internet, antes de continuar as configurações. Para isto iremos dar um ping no endereço 8.8.8.8, que é o DNS público do Google. Caso isto não funcione, deve ter algum erro de conexão ou configuração. Neste post não entraremos nestes detalhes.


Podemos ver na saída do ping que conseguimos alcançar o endereço, portanto nossa internet está ok.

Criando NAT

O próximo passo é criar um NAT, isto é, fazer com que o linux pegue todo o tráfego de rede da rede interna (que vem de eth0) que é destinado à internet e faça a conexão como se fosse o computador interno, usando o endereço da interface externa (eth1). Assim o linux fica transferindo as requisições internas para o computador correto que está na internet e quando este computador da internet responde o linux manda para o computador da rede intena (192...) que fez a requisição. Assim todos os computadores da rede interna podem navegar.

Todo o procedimento abaixo é realizado como root.
Para fazer isto precisamos de criar uma regra no iptables e habilitar um recurso chamado "forwarding". Isto é feito com os comandos abaixo.

Ok. Isto é suficiente para os computadores da rede interna poderem acessar a internet.
Só tem um problema. Ao reiniciar o roteador, o comando do iptables é perdido.
Assim precisamos garantir que este comando seja aplicado toda vez que o roteador for reiniciado.

Para isto vamos criar um pequeno script de inicialização em /etc/init.d denominado firewall.
Vamos precisar ainda de gravar a configuração atual do iptables. Para esta segunda parte usaremos iptables-save para gerar o arquivo, como mostrado abaixo:
Note na saída mostrada na tela pelo comando a regra com POSTROUTING MASQUERADE.

Vamos criar o arquivo de inicialização do firewall. A imagem abaixo mostra como criar o arquivo.
As linhas com # (exceto a primeira linha do arquivo) são somente comentários e podem ser removidas.

Note que é necessário executar chmod para dar permissão de execução ao arquivo.
Agora basta criar os links para que este script seja chamado nos inits 2, 3, 4 e 5. Isto pode ser feito com as quatro linhas de comando mostradas abaixo:

Pronto, agora o roteador está funcional e pode ser reiniciado que retornará corretamente.
Em outro post trataremos de melhorar a segurança da rede com outros comandos iptables.
Lembre-se que toda vez que alterar alguma configuração via iptables, ela deve ser gravada usando o comando iptables-save > /etc/firewall/iptables-save.dat.

Comentários

Postagens mais visitadas deste blog

Como colocar o PyCharm no launcher do Ubuntu

Atualizei recentemente meu pycharm para a versão 2018.1. A atualização basicamente consiste em baixar do site da Jetbrains  dedicado ao PyCharm, e depois do download basta descompactar e mover o diretório criado para você você achar mais adequado. No meu caso está em ~/bin/pycharm. Para rodar o pycharm é só executar o script pycharm.sh que está no diretório bin dentro do diretório do pycharm, isto é, no meu caso ~/bin/pycharm/bin/pycharm.sh. Eu queria ter o ícone do pycharm no launcher (aquela barra lateral do Ubuntu) para ficar mais fácil chamá-lo. O PyCharm pode criar seu próprio ícone de lançador, contudo ele não é cria por padrão. A gente tem que executar alguns comandos: 1) Comece chamando o PyCharm em um terminal. 2) No menu Ferramentas, selecione "Criar entrada da área de trabalho ..." 3) Se você já tem o PyCharm, ele irá perguntar se você quer reaproveitar as configurações da versão anterior: 4) Marque a caixa correspondente, se você quiser o lanç

Resetando a senha do administrador local no Windows Server 2012

Existem diversas formas de redefinir a senha em seu servidor Windows 2012 quando você esqueceu ela. Neste post mostraremos como alterar a senha do usuário administrador, quando você tem acesso físico à ele. Você precisará do DVD de instalação do Windows para fazer isto. São os seguintes passos: 1-) Reinicie o seu computador dando boot pelo DVD do Microsoft Windows Server 2012 (pode ser outra versão) 2-) No menu Instalação do Windows (mostrado abaixo), clique em "Avançar". 3-) Selecione "Reparar seu computador" Como estamos utilizando o DVD do Windows 2008 para reparar um Windows 2012, o seguinte aviso é mostrado. Concorde clicando em Next. 4-) Clique em "Aviso de comando" para abrir uma janela de comandos. 5-) No prompt de comando, execute os seguintes comandos: d: cd windows\system32 ren Utilman.exe Utilman.exe.old copy cmd.exe Utilman.exe 5-) Feche o prompt de comando e clique em "Reiniciar". 6-) O serv

Configurar a ação do Ubuntu 20 ao fechar a tela do notebook

Este post mostra como alterar a ação quando a tampa do laptop é fechada no Ubuntu 20.04 - por exemplo, desligar, hibernar, não fazer nada ou travar a tela. A ação padrão do Ubuntu é suspender a atividade do notebook. Até onde eu sei, até o momento deste post não existe uma opção gráfica para fazer esta configuração, portanto você precisa editar o arquivo logind.conf para alterar a ação. Esta configuração deve funcionar em instalações tipo desktop ou servidor do Ubuntu. Você precisa abrir o terminal (normalmente isto pode ser feito pressionando simultaneamente Ctrl + Alt + T). Com o terminal aberto você pode utilizar um editor para alterar as linhas que controlam a ação. Por exemplo, digite na linha de comando: sudo vi /etc/systemd/logind.conf No arquivo procure a linha (note the # indica que a linha está comentada) # HandleLidSwitch = suspend e altere-a para uma das seguintes opções (note que agora a linha não começa mais com #) - trava o desktop quando a tampa está fechada: HandleLidS