Como se mencionó antes, hay muchas maneras de hacer esto. La que presento es la manera de hacerlo con una tarjeta serie multipuerto Cyclades y una centralita rotativa que proporciona un juego de líneas telefónicas.
Si no le gusta el método que presento aquí, siéntase libre de hacerlo a su manera. Sin embargo, estaría encantado de incluir métodos adicionales en versiones futuras de este documento. Por lo que envíeme sus comentarios y métodos.
Fíjese en que esta sección sólo concierne a configurar Linux como un servidor PPP. No pretendo incluir información acerca de la configuración de servidores de terminales especiales.
También, todavía he de experimentar con contraseñas shadow (pero lo haré dentro de poco). La información aquí presentada NO incluye, por lo tanto, ninguna de las campanas ni silbatos requeridos por el juego de aplicaciones shadow.
Todos los comentarios anteriores acerca de la compilación del núcleo y de las versiones pppd frente a las del núcleo siguen siendo válidos. Esta sección asume que usted ha leido también las otras secciones de este documento.
Para un servidor PPP, DEBE incluir el soporte de autoenvío IP (forwarding) en su núcleo. También puede desear incluir otras capacidades (tales como cortafuegos IP, cuentas, etc).
Si está utilizando una tarjeta serie multipuerto, entoces deberá incluir, obviamente, los controladores necesarios en su núcleo.
Se ofrecerá cuentas de acceso PPP (y SLIP) y cuentas de shell utilizando el mismo par nombre/contraseña. Esto tiene las ventajas (para nosotros) de que el usuario sólo necesita una cuenta y puede utilizarla para todo tipo de conectividad.
como somos una organización educacional, no cobramos el acceso de nuestra plantilla ni de los estudiantes, por lo que no tenemos que preocuparnos de la tarificación y de contadores.
Levantaremos un cortafuegos entre nuestra máquina e Internet, y esto restringirá el acceso a algunos usuarios debido a que las líneas de conexión se encuentran dentro del cortafuegos (por razones obvias, los detalles de nuestros cortafuegos internos no se presentan aquí y no son relevantes en ningún caso).
El proceso por el que un usuario pasa para establecer una conexión PPP a nuestro servidor (una vez que tiene una cuenta válida, por supuesto) es:-
ppp
para arrancar
PPP en el servidor.
El servidor utiliza ficheros /etc/ppp/options.ttyXX
individuales
para cada módem, cada uno con su propia dirección IP de manera que los
usuarios remotos consigan una dirección dinámica. El servidor utiliza
encaminamiento proxyarp para los clientes remotos (configurado mediante la
opción adecuada de pppd). Esto evita la necesidad de routed o de gated.
Cuando el usuario cuelga por su parte, pppd lo detecta y dice al módem que cuelgue, desconectando la conexión PPP a la vez.
Necesitará el siguiente software:-
Antes de que pueda configurar su servidor PPP, su PC Linux debe ser capaz de manejar accesos de conexión estándar.
Este documento NO trata esta configuración. Por favor, lea la documentación del programa getty de su elección y del serial HOWTO para más información acerca de esto.
Necesitará establecer un /etc/ppp/options
general con las opciones
comunes para todos los puertos de conexión. Las opciones que utilizamos
son:-
asyncmap 0 netmask 255.255.254.0 proxyarp lock crtscts modem
Nota - no utilizamos ningún encaminamiento (obvio) y en particular no hay ninguna opción defautroute. La razón de esto es que todo lo que usted (como servidor PPP) debe hacer es encaminar paquetes desde el cliente ppp a su red local/Internet y encaminar paquetes hacia el cliente desde la red local o más allá.
Todo lo necesario para esto es un un camino de máquina a la máquina del cliente y el uso de la opción 'proxyarp' con pppd
La opción 'proxyarp' establece (sorpresa) una entrada proxy ARP en la tabla ARP del servidor que básicamente dice 'envíenme todos los paquetes destinados al cliente'. Esta es la manera más sencilla de configurar el encaminamiento para un solo cliente PPP - pero usted no puede utilizar esta opción si está encaminando entre dos redes locales - debe añadir rutas adecuadas de red por lo que no puede utilizar proxy ARP.
Casi seguro que desea dar una dirección IP dinámica a los usuarios de su
servicio de conexión. Puede conseguir esto fijando una dirección IP a cada
puerto de recepción de llamadas. Ahora, cree un
/etc/ppp/options.ttyXX
para cada puerto de conexión.
En este, simplemente ponga la dirección IP del servidor local y la dirección IP que debe ser utilizada para ese puerto. Por ejemplo
kepler:slip01
En concreto, fíjese en que usted puede utilizar nombres de máquinas válidos en este fichero (sólo soy capaz de recordar las direcciones IP de las máquinas importantes y de los dispositivos de mis redes - los nombres tienen más sentido).
Ya que arrancar un enlace ppp implica la reconfiguración de un dispositivo del núcleo (una interfaz de red) y la manipulación de las tablas de encaminamiento del núcleo, se necesitan privilegios especiales - de hecho se necesitan privilegios totales de root.
Afortunadamente, pppd ha sido diseñado para ser 'seguro' mientras se ejecuta como root. Necesitará
chmod u+s /usr/sbin/pppd
Cuando pida un listado del fichero, debría aparecer como
~ -rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
Si no lo hace, los usuarios no podrán establecer su conexión ppp.
Para simplificar las cosas a los usuarios de su servicio de conexión PPP, crearemos un alias global (en /etc/bashrc) para que una orden simple arranque ppp en el servidor una vez que se han conectado.
Esto debe ser como
alias ppp="exec /usr/sbin/pppd -detach"
Lo que hace es
Cuando un usuario se introduce en un sistema como este, aparecerá en la salida de 'w':-
6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00 User tty login@ idle JCPU PCPU what hartr ttyC0 3:05am 9:14 -
Y ya está... Ya le comenté que este era un sistema servidor PPP básico.