Cómo configurar el servidor Ubuntu como un enrutador usando PPPoE



Pruebe Nuestro Instrumento Para Eliminar Los Problemas

Ubuntu Server está técnicamente diseñado como un sistema operativo de solicitud de CLI únicamente para su uso con grandes servidores de hierro, pero no hay ninguna razón por la que no pueda funcionar en enrutadores y sistemas integrados que también administran el protocolo punto a punto a través de Ethernet. Se supone que un proyecto como este necesita una pequeña PC sin ventilador o algún tipo de caja de enrutador que pueda modificar a través de un chip flash NAND. Lo más probable es que instale una cantidad decente de RAM y un disco de estado sólido para eliminar el ruido y las partes móviles. Es posible que le interese utilizar un convertidor de SDHC a SATA para poder ejecutar todo el sistema operativo desde una tarjeta SD. Las tarjetas SD insertadas en las ranuras laterales en hardware no heredado también pueden iniciar el sistema operativo. Esto funciona bien cuando se usa con un sistema PPPoE.



Si bien podría pensar que el uso de este tipo de configuración puede ser lento sin un disco duro electromecánico adecuado, en teoría reduciría el tiempo de acceso. Ubuntu Server es tan pequeño que arranca rápidamente de todos modos. Una vez que tenga su enrutador en su lugar, probablemente no lo encenderá y apagará con mucha frecuencia. Independientemente de la configuración que elija, querrá apuntar su navegador a https://www.ubuntu.com/download/server para descargar una ISO. La versión más reciente en el momento de escribir este artículo, Ubuntu Server 16.04.1 LTS, está diseñada solo para su uso con arquitecturas de 64 bits. La mayoría de los dispositivos de enrutador y cliente ligero modernos cumplen con este requisito muy bien, pero esto puede ser un problema si está intentando algo realmente exótico como usar un netbook como enrutador.





Configuración del servidor Ubuntu como enrutador PPPoE

Varias de las principales redes de ISP todavía requieren autenticación PPPoE. Casi todas las redes DSL usan esto y, aunque no es necesario cuando se trabaja con una conexión de fibra, algunas de ellas también lo usan. Los enrutadores Netgear ofrecen un mensaje de inicio de sesión que le permite conectarse fácilmente a este tipo de redes, pero será necesario un poco de trabajo para que un enrutador Linux de construcción casera se conecte correctamente con este tipo de tecnología.

Si aún no está en su navegador, diríjase a http://releases.ubuntu.com/16.04.1/ . Podría haber descargado el ISO de esta página si no lo tuviera, pero una vez que lo tenga, desplácese hacia abajo hasta el enlace que dice MD5SUMS y selecciónelo.



Desde el indicador de la CLI, ejecute md5sum en la ISO del servidor Ubuntu y asegúrese de que coincida con el número junto a ubuntu-16.04-desktop-amd64.iso en el listado.

Si es así, obtenga una memoria USB o una tarjeta SD completamente en blanco y escriba sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , reemplazando el indicador of = con el nombre del dispositivo en cuestión. Puedes usar sudo fdisk -l para encontrar todos los dispositivos conectados a su sistema. Una vez que lo haya hecho, extraiga correctamente la unidad y conéctela al sistema del enrutador. Reinícielo y presione la tecla que sea necesaria para iniciar dicho sistema desde el almacenamiento extraíble. Ubuntu Server se instala con relativa facilidad en función de una serie de indicaciones ncurses basadas en texto.

Sin embargo, un problema de instalarlo de esta manera es que los medios extraíbles requerirán que esté conectado a Internet durante la instalación, y conectar una caja como esta directamente a una red plantea algunos problemas de seguridad. Conéctelo a uno de los puertos de red de su antiguo enrutador para proporcionar servicios de firewall hasta que lo ponga en funcionamiento. Tan pronto como lo haga, deberá realizar algunas modificaciones en el cargador de arranque GRUB. Si es posible, desconecte su enrutador Linux de su máquina existente lo antes posible para continuar la instalación fuera de línea. Esto evitará problemas extraños de DHCP que podría tener en su conexión existente de otra manera.

Lo más probable es que no desee instalar ningún software adicional durante el proceso de configuración del sistema operativo. GRUB arranca silenciosamente en una instalación predeterminada de Ubuntu Server, lo que significa que no verá ningún mensaje de depuración. Si ve un cursor parpadeante sin nada más después de arrancar, mantenga presionadas las teclas Ctrl, Alt y F1 para acceder a una consola virtual. Inicie sesión en su cuenta y luego escriba aunque es posible que desee utilizar vi en su lugar. Encuentra una línea que diga GRUB_CMDLINE_LINUX_DEFAULT = 'chapoteo silencioso' y elimine las palabras de bienvenida silenciosas entre comillas. También querrá editar una línea que diga GRUB_CMDLINE_LINUX = ”” para incluir net.ifnames = 0 biosdevname = 0 en las comillas dobles para nombrar correctamente sus tarjetas de red. Guarde el archivo y luego ejecute sudo update-grub para actualizar su gestor de arranque, ya que el archivo grub probablemente esté en algún tipo de partición UEFI.

Encuentra una línea que diga GRUB_CMDLINE_LINUX_DEFAULT = 'chapoteo silencioso' y elimine las palabras ' chapoteo tranquilo ”Que están entre comillas. fsafa

Que sea un pirata.

Tipo sudo nano  para abrir su archivo de interfaces para editar, y luego cambie los nombres de las tarjetas de red que encuentra allí de nuevo al tradicional eth0 y eth1 , luego guarde el archivo y salga. Una vez que esté fuera del archivo, puede reiniciar el sistema para asegurarse de que los cambios surtan efecto correctamente.

Ahora deberá instalar el software PPPoE y OpenSSL adecuado para completar la instalación. Puede instalar DNS, DHCP, PPPoE y OpenSSL con un solo problema de línea de comando:

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

Esto puede demorar unos minutos y puede preguntarle si está listo para aprobar los cambios. Asegúrate de decirle que lo eres. Tan pronto como complete todo, podrá desconectarse de Internet y continuar sin conexión. Es posible que desee utilizar el comando de sincronización varias veces para asegurarse de que todos los búferes estén sincronizados en caso de que ocurra algo malo.

Su ISP le proporciona un nombre de usuario y una contraseña, que deberá ingresar en el archivo chap-secrets. Tipo pero recuerde que aún puede usar vi si lo prefiere. Debe citar su nombre de usuario y contraseña. Por ejemplo, potencialmente querrás:

'Billy' * 'mypass3'

Guarde el archivo y ahora navegue hasta el Encontrará un archivo llamado proveedor en este directorio. Ábralo con nano como lo estaba haciendo con los otros archivos de configuración, o cree uno nuevo de la misma manera. Coloque cada uno de estos comandos en una línea separada en el archivo:

noipdefault

Ruta por defecto

reemplazadodefaultroute

persistir

complemento rr-pppoe.so eth0

usuario 'billy'

También puede ingresar hide-password y noauth si prefiere no usar las solicitudes de inicio de sesión, ya que lo usará como un enrutador y no como una máquina de producción real con una interfaz normal. Reemplace el nombre billy con el nombre de usuario real que tiene y luego ejecute pon provider o el nombre del archivo que creó para conectarse. Debería darle cualquier mensaje de error relevante en el proceso, pero puede usar ifconfig para encontrar la interfaz de red ppp0 o ppp1. Deberá hacer referencia a esto más tarde. Puede agregar usepeerdns si desea pedirle al par un par de direcciones de servidor DNS, que luego se pasan a como variables de entorno etiquetadas como DNS2 y DNS1. También forzará una variable de entorno llamada USEPEERDNS para establecerse a sí mismo en 1 también. Si prefiere usar sus propios servidores DNS y no los que le asignó su ISP, puede agregar líneas a su archivo como:

Estos deben estar aquí, ya que cada vez que reinicia el servidor o establece una nueva conexión PPPoE, el los archivos se sobrescriben.

En la mayoría de los casos, su MTU se establece en alrededor de 1500, pero lo más alto que podrá obtener alrededor de 1492 o quizás incluso menos, ya que está utilizando la interfaz PPPoE. Suponiendo que haya determinado la MTU máxima para su sistema ppp0 o ppp1, deberá usar para abrir el archivo ip-up y luego agregar la línea / sbin / ifconfig ppp0 man #### en la parte inferior, reemplazando #### con su valor correcto. Podría ser alrededor de 1480 si no está seguro.

Muchos tutoriales le dirán que configure la conexión eth0 WAN a DHCP, pero debe configurarla en manual debido a la conexión PPPoE con la que está trabajando. Utilizar y edítelo para que el bloque de código debajo de # La interfaz de red WAN lea auto eth0 e iface eth0 inet manual y luego el bloque de código debajo debería leer:

# La interfaz de red LAN

auto eth1

iface eth1 inet estático

dirección 192.168.1.1

máscara de red 255.255.255.0

Los enrutadores necesitan que el reenvío de paquetes esté activado para actuar como un enrutador, y luego quitar el octothorpe en frente de net.ipv4.ip_forward = 1 antes de guardar. Lo encontrará debajo de una cita que dice # Descomente la siguiente línea para habilitar el reenvío de paquetes para IPv4, pero es posible que también desee quitar la marca frente a net.ipv6.conf.all.forwarding = 1 si planea usar Enrutamiento IPv6, que puede ser un desafío en un sistema PPPoE.

Abra el archivo iptables para editarlo con el comando y luego agregue estas líneas:

Guarde el archivo y luego salga de nano o de cualquier otro editor de texto que haya estado usando antes de continuar. Las iptables constituyen el cortafuegos principal para el kernel de Linux, por lo que es una buena idea tener estas tablas en orden antes de iniciar la conexión ISP.

Ahora deberá cambiar los permisos en el archivo en cuestión, por lo que es posible que desee usar sudo -i o sudo bash para obtener un indicador de root. Una vez que tenga uso:

Una vez que se aplican estos permisos, puede escribir exit y presionar la tecla Intro para salir del indicador elevado.

El siguiente archivo de configuración que necesitamos abrir con y lo editará exactamente de la misma manera. Debe agregar las siguientes configuraciones, reemplazando el octothorpes con la dirección IP correcta para su enrutador:

subred ###. ###. ##. # netmask 255.255.255.0 {

rango ###.###.##.### ###.###.##.###;

enrutadores de opciones ###. ###. ##. #;

opción servidores de nombres de dominio ###. ###. ##. #;

opción dirección-difusión ###. ###. ##. ###;

}

Guarde y cierre el archivo. Si está trabajando con una tarjeta SD o algo similar, este es otro buen momento para emitir el comando de sincronización también.

Necesitarás usar sudo nano una vez más para abrir el archivo para incluir sus propias reglas personalizadas. Todavía estamos trabajando con una conexión PPPoE, por lo que usaremos el archivo de dispositivo ppp0 en lugar del eth0 predeterminado.

Bajo un bloque de código que comienza con el comentario ' # Sujete el MSS al tamaño de MTU, ”Incluyen la siguiente línea:

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

Esta regla es necesaria para evitar que las páginas web se carguen solo a la mitad o se agote el tiempo de espera. En su lugar, fija MTU y MSS juntos, por lo que no tendrá estos problemas. Ahora, esto permite que el kernel de Linux adivine los tamaños correctos, pero en realidad puede especificarlos si es necesario. Bajo un bloque de código que comienza con ' # Especifique el tamaño de MSS, 'Deberá agregar:

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

Reemplace la sección #### con el valor correcto de MSS. Puedes resolverlo con un poco de matemáticas. Reste el tamaño del encabezado PPPoE de su MTU y luego reste el encabezado IP y el encabezado TCP. La diferencia es el tamaño total del MSS.

Es posible que deba modificar la regla del servicio SSH para agregar la opción –syn que le permitirá acceder a SSH a este enrutador desde otra computadora que esté registrada en su LAN. Comentar la regla de servicio ICMP hará que su máquina no responda a ningún pings. En realidad, esto hará que su computadora sea bastante sigilosa, aunque no debe considerar esto como una especie de tratamiento final que hace que sus hábitos de navegación a través de este enrutador sean invisibles. No lo hará, pero es una capa más de seguridad para protegerte.

A veces, las interfaces o conexiones PPPoE con las que está trabajando no se conectan de inmediato cuando inicia el enrutador, por lo que es posible que desee crear una secuencia de comandos de inicio corta para asegurarse de que funcione correctamente cuando se inicie el sistema. Solo agrega alrededor de 8-10 segundos al tiempo total de arranque, por lo que realmente vale la pena. Edite el archivo con sudo nano una vez más, y luego agregue

dormir 3

ifup eth0

dormir 3

ifup eth1

dormir 3

pon provider

Deberá reemplazar el proveedor con el nombre de un archivo personalizado si creó uno para reemplazar el archivo de proveedor predeterminado. Muchos enrutadores solo necesitan un tiempo de suspensión de 1 a 2 segundos, por lo que es posible que desee experimentar con eso para mejorar el rendimiento de arranque. De todos modos, no debería tomar mucho tiempo reiniciar en absoluto.

Esto debería ejecutar los comandos pon e ifup después de que el sistema se haya iniciado por completo, pero antes de que aparezcan las indicaciones de inicio de sesión de la consola virtual. Si la conexión está activa, no pasa nada, pero si una de las conexiones no funciona correctamente, este script se asegurará de que se inicialice correctamente. El último comando pon se basa en eth0 y eth1, por lo que siempre debe colocarlo como el paso final o, de lo contrario, el script podría fallar.

Tan pronto como reinicie la máquina después de realizar todos estos cambios, tendrá un enrutador en pleno funcionamiento en Ubuntu Server. Es posible que desee utilizar ocasionalmente sudo iptables-L si necesita verificar su estado de vez en cuando, pero de lo contrario, todo funcionará tan bien, si no mejor, que un enrutador fabricado comercialmente. Su nuevo enrutador ejecutará cualquier otro paquete de Ubuntu necesario, pero no debería necesitar instalar un servidor X ni nada más, porque el sistema debería funcionar correctamente sin necesidad de software de interfaz de usuario adicional.

9 minutos de lectura