Como configurar o Ubuntu Server como um roteador usando PPPoE



Experimente Nosso Instrumento Para Eliminar Problemas

O Ubuntu Server é tecnicamente projetado como um sistema operacional somente prompt CLI para uso com grandes servidores de ferro, mas não há razão para ele não funcionar em roteadores e sistemas incorporados que gerenciam protocolo ponto a ponto sobre Ethernet também. Supõe-se que um projeto como este precise de um pequeno PC sem ventoinha ou algum tipo de caixa de roteador que você possa modificar por meio de um chip flash NAND. É mais do que provável que você instale uma quantidade decente de RAM e também um disco de estado sólido para eliminar o ruído e também as peças móveis. Você pode estar interessado em usar um conversor SDHC para SATA para que possa executar todo o sistema operacional a partir de um cartão SD. Os cartões SD inseridos em slots laterais em hardware sem legado também podem inicializar o sistema operacional. Isso funciona perfeitamente ao usá-lo com um sistema PPPoE.



Embora você possa pensar que usar esse tipo de configuração pode ser lento sem um disco rígido eletromecânico adequado, na verdade, teoricamente, você reduziria o tempo de acesso. O Ubuntu Server é tão pequeno que inicializa rapidamente de qualquer maneira. Depois de instalar o roteador, provavelmente você não o ligará e desligará com muita frequência. Independentemente da configuração escolhida, você deve apontar seu navegador para https://www.ubuntu.com/download/server para fazer o download de um ISO. A versão mais recente no momento da redação deste artigo, Ubuntu Server 16.04.1 LTS, foi projetada apenas para uso com arquiteturas de 64 bits. A maioria dos roteadores modernos e dispositivos thin client atendem perfeitamente a esse requisito, mas isso pode ser um problema se você estiver tentando algo verdadeiramente exótico, como usar um netbook como roteador.





Configurando o Ubuntu Server como um roteador PPPoE

Várias redes importantes de ISP ainda exigem autenticação PPPoE. Quase todas as redes DSL usam isso e, embora seja desnecessário ao trabalhar com uma conexão de fibra, algumas delas ainda o usam também. Os roteadores Netgear oferecem um prompt de login que permite que você se conecte a esses tipos de redes facilmente, mas vai dar algum trabalho para que um roteador Linux feito em casa faça a interface correta com esse tipo de tecnologia.

Se você ainda não estiver lá em seu navegador, vá para http://releases.ubuntu.com/16.04.1/ . Você poderia ter baixado o ISO desta página se não o tivesse, mas assim que o tiver, role para baixo até o link que diz MD5SUMS e selecione-o.



No prompt da CLI, execute md5sum no ISO do Ubuntu Server e certifique-se de que corresponde ao número próximo a ubuntu-16.04-desktop-amd64.iso na lista.

Em caso afirmativo, pegue um stick de memória USB ou cartão SD totalmente vazio e digite sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , substituindo o prompt of = pelo nome do dispositivo em questão. Você pode usar sudo fdisk -l para encontrar todos os dispositivos conectados ao seu sistema. Depois de fazer isso, remova a unidade corretamente e conecte-a ao sistema do roteador. Reinicie-o e aperte qualquer tecla necessária para inicializar o sistema a partir do armazenamento removível. O Ubuntu Server é instalado de forma relativamente fácil com base em uma série de prompts de ncurses baseados em texto.

Um problema em instalá-lo dessa forma, entretanto, é que a mídia removível exigirá que você esteja conectado à Internet durante a instalação, e conectar uma caixa como esta diretamente a uma rede apresenta alguns problemas de segurança. Conecte-o a uma das portas de rede de seu roteador antigo para fornecer serviços de firewall até que você o coloque em funcionamento. Assim que fizer isso, você precisará fazer algumas edições no carregador de boot GRUB. Se possível, desconecte o roteador Linux da máquina existente o mais rápido possível para continuar a instalação offline. Isso evitará problemas estranhos de DHCP que você poderia ter em sua conexão existente de outra forma.

Muito provavelmente, você não vai querer instalar nenhum software adicional durante o processo de configuração do sistema operacional. GRUB inicializa silenciosamente em uma instalação padrão do Ubuntu Server, o que significa que você não verá nenhuma mensagem de depuração. Se você vir um cursor piscando sem mais nada após a inicialização, mantenha pressionadas as teclas Ctrl, Alt e F1 para acessar um console virtual. Faça login em sua conta e digite embora você também possa desejar usar o vi. Encontre uma linha que leia GRUB_CMDLINE_LINUX_DEFAULT = ”splash silencioso” e exclua as palavras iniciais silenciosas entre aspas. Você também vai querer editar uma linha que diga GRUB_CMDLINE_LINUX = ”” para incluir net.ifnames = 0 biosdevname = 0 nas aspas duplas para nomear corretamente seus cartões de rede. Salve o arquivo e execute sudo update-grub para atualizar seu hospedeiro de inicialização, já que o arquivo grub provavelmente está em algum tipo de partição UEFI.

Encontre uma linha que leia GRUB_CMDLINE_LINUX_DEFAULT = ”splash silencioso” e exclua as palavras “ respingo silencioso ”Que estão entre aspas. Fsafa

Isso é um pirata.

Tipo sudo nano para abrir seu arquivo de interfaces para edição e, em seguida, alterar os nomes das placas de rede que você encontrar lá de volta para o tradicional eth0 e eth1 , depois salve o arquivo e saia. Assim que terminar o arquivo, você pode reiniciar o sistema para garantir que as alterações entrem em vigor corretamente.

Agora você precisará instalar o software PPPoE e OpenSSL adequado para concluir a instalação. Você pode instalar DNS, DHCP, PPPoE e OpenSSL com um único problema de linha de comando:

sudo apt-get install bind9 isc-dhcp-server openssl pppoeconf

Isso pode levar alguns instantes e pode ser que pergunte se você está pronto para aprovar as alterações. Certifique-se de dizer que você é. Assim que tudo estiver concluído, você pode realmente se desconectar da Internet e continuar offline. Você pode querer usar o comando sync algumas vezes para garantir que todos os buffers sejam sincronizados juntos, caso algo de ruim aconteça.

Seu ISP fornece um nome de usuário e uma senha, que você precisará inserir no arquivo chap-secrets. Tipo mas lembre-se de que você ainda pode usar o vi se preferir. Seu nome de usuário e senha precisam ser citados. Por exemplo, você potencialmente desejará:

“Billy” * “mypass3”

Salve o arquivo e navegue até o Você encontrará um arquivo chamado provedor neste diretório. Abra-o com o nano como você estava fazendo com os outros arquivos de configuração, ou crie um novo da mesma forma. Coloque cada um desses comandos em uma linha separada no arquivo:

noipdefault

Rota Padrão

Substituído defaultroute

persistir

plugin rr-pppoe.so eth0

usuário “billy”

Você também pode inserir hide-password e noauth se preferir não usar os prompts de login, já que você o usará como um roteador e não como uma máquina de produção real com uma interface normal. Substitua o nome billy pelo nome de usuário real que você possui e execute o provedor pon ou o nome do arquivo que você criou para se conectar. Ele deve fornecer qualquer mensagem de erro relevante no processo, mas você pode usar ifconfig para encontrar a interface de rede ppp0 ou ppp1. Você precisará consultar isso mais tarde. Você pode adicionar usepeerdns se quiser pedir ao par alguns endereços de servidor DNS, que são então passados ​​para como variáveis ​​de ambiente denominadas DNS2 e DNS1. Você também forçará uma variável de ambiente chamada USEPEERDNS para definir-se como 1 também. Se você preferir usar seus próprios servidores DNS e não aqueles atribuídos a você pelo seu ISP, você pode adicionar linhas ao seu arquivo como:

Eles precisam estar aqui, pois cada vez que você reinicializar o servidor ou estabelecer uma nova conexão PPPoE, o os arquivos são sobrescritos.

Na maioria dos casos, seu MTU é definido em cerca de 1.500, mas o mais alto você poderá obtê-lo por volta de 1492 ou talvez até menos, já que está usando a interface PPPoE. Supondo que você tenha determinado o MTU máximo para o seu sistema ppp0 ou ppp1, você precisará usar para abrir o arquivo ip-up e adicionar a linha / sbin / ifconfig ppp0 man #### bem no fundo, substituindo #### com seu valor correto. Pode ser algo em torno de 1480 se você não tiver certeza.

Muitos tutoriais dirão que você deve definir a conexão WAN eth0 para DHCP, mas você precisa defini-la como manual devido à conexão PPPoE com a qual está trabalhando. Usar e edite-o para que o bloco de código em # A interface de rede WAN leia o manual auto eth0 e iface eth0 inet e o bloco de código abaixo deve ler:

# A interface de rede LAN

auto eth1

iface eth1 inet estático

endereço 192.168.1.1

máscara de rede 255.255.255.0

Os roteadores precisam de encaminhamento de pacotes ativado para atuar como um roteador, então use e, em seguida, remova o octothorpe em frente de net.ipv4.ip_forward = 1 antes de salvar. Você o encontrará sob uma citação que diz # Descomente a próxima linha para habilitar o encaminhamento de pacotes para IPv4, mas você também pode querer remover a marca na frente de net.ipv6.conf.all.forwarding = 1 se planeja usar Roteamento IPv6, que pode ser um desafio em um sistema PPPoE.

Abra o arquivo iptables para edição com o comando e, em seguida, adicione estas linhas a ele:

Salve o arquivo e saia do nano ou de qualquer outro editor de texto que esteja usando antes de continuar. O iptables constitui o firewall principal para o kernel do Linux, então é uma boa ideia ter essas tabelas em ordem antes de realmente iniciar a conexão do ISP.

Agora você precisará alterar as permissões no arquivo em questão, então você pode querer usar sudo -i ou sudo bash para obter um prompt de root. Depois de usar:

Depois que essas permissões forem aplicadas, você pode digitar exit e pressionar a tecla enter para sair do prompt elevado.

O próximo arquivo de configuração que precisamos abrir com e você vai editá-lo exatamente da mesma maneira. Você precisa adicionar as seguintes configurações, substituindo o octothorpes com o endereço IP correto para o seu roteador:

sub-rede ###. ###. ##. # netmask 255.255.255.0 {

alcance ###.###.##.### ###.###.##.###;

roteadores de opção ###. ###. ##. #;

opção servidores de nomes de domínio ###. ###. ##. #;

opção de endereço de transmissão ###. ###. ##. ###;

}

Salve e feche o arquivo. Se você estiver trabalhando com um cartão SD ou algo semelhante, este é outro bom momento para emitir o comando de sincronização também.

Você precisará usar sudo nano mais uma vez para abrir o arquivo para incluir suas próprias regras personalizadas. Ainda estamos trabalhando com uma conexão PPPoE, então usaremos o arquivo de dispositivo ppp0 em vez do padrão eth0.

Sob um bloco de código que começa com o comentário “ # Prenda o MSS ao tamanho MTU, ”Inclui a seguinte linha:

-A FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –clamp-mss-to-pmtu

Esta regra é necessária para evitar que as páginas da Web sejam carregadas apenas pela metade ou expirem. Em vez disso, ele conecta o MTU e o MSS, então você não terá esses problemas. Agora, isso permite que o kernel do Linux adivinhe os tamanhos corretos, mas você pode realmente especificá-los se necessário. Sob um bloco de código que começa com “ # Especifique o tamanho do MSS, ”Você precisará adicionar:

-A FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –set-mss ####

Substitua a seção #### pelo valor MSS correto. Você pode descobrir isso com um simples pouco de matemática. Subtraia o tamanho do cabeçalho PPPoE de seu MTU e, em seguida, subtraia o cabeçalho IP e o cabeçalho TCP. A diferença é o tamanho total do MSS.

Você pode precisar modificar a regra de serviço SSH para adicionar a opção –syn que permitirá que você acesse o SSH para este roteador de outro computador que esteja registrado em sua LAN. Comentar a regra de serviço ICMP fará com que sua máquina não responda a nenhum pings. Na verdade, isso deixará o seu computador bastante furtivo, embora você não deva considerar isso como um tipo de tratamento final que torna seus hábitos de navegação invisíveis por meio deste roteador. Não vai, mas é mais uma camada de segurança para protegê-lo.

Às vezes, as interfaces ou conexões PPPoE com as quais você está trabalhando não se conectam imediatamente quando você inicializa o roteador, então você pode querer criar um pequeno script de inicialização para garantir que funcione corretamente quando o sistema for inicializado. Ele adiciona apenas cerca de 8 a 10 segundos ao tempo total de inicialização, então realmente vale a pena. Edite o arquivo com sudo nano mais uma vez e, em seguida, adicione

dormir 3

ifup eth0

dormir 3

ifup eth1

dormir 3

provedor de pon

Você precisará substituir o provedor pelo nome de um arquivo personalizado se tiver criado um para substituir o arquivo provedor padrão. Muitos roteadores precisam apenas de um tempo de suspensão de 1 a 2 segundos, então você pode querer experimentar isso para melhorar o desempenho da inicialização. Não deve demorar muito para reiniciar em primeiro lugar de qualquer maneira.

Isso deve executar os comandos pon e ifup depois que o sistema for totalmente inicializado, mas antes que os prompts de login do console virtual real apareçam. Se a conexão estiver ativa, nada acontecerá, mas se uma das conexões não estiver funcionando corretamente, este script irá garantir que ele seja inicializado corretamente. O último comando pon depende de eth0 e eth1, portanto, você deve sempre posicioná-lo como a etapa final, caso contrário, o script pode realmente falhar.

Assim que você reiniciar a máquina após fazer todas essas mudanças, você terá um roteador totalmente funcional funcionando no Ubuntu Server. Você pode querer usar ocasionalmente sudo iptables-L se você precisar verificar seu status de tempos em tempos, mas caso contrário, tudo funcionará tão bem, senão melhor do que um roteador fabricado comercialmente. Seu novo roteador executará quaisquer outros pacotes do Ubuntu necessários, mas você não deve precisar instalar um servidor X ou qualquer outra coisa, porque o sistema deve funcionar corretamente sem qualquer necessidade de software de interface de usuário adicional.

9 minutos lidos