![]() Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores | Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons |
|
poptop: haciendo túneles VPN de Windows a Linux (o de Linux a Linux) (59703 lectures)
Per Carles Pina i Estany, cpina (http://pinux.info) Creado el 29/04/2003 14:28 modificado el 04/05/2003 11:52 |
pptp(1) es un protocolo para hacer VPN, el cual viene en casi cualquier Hasefroch(2) (98, 2000,...). Nos permitirá, desde un Hasefroch conectarnos de una manera muy fácil a un servidor Linux con pptp de forma encriptada, y también acceder a la red local donde se encuentre el servidor. Veremos como configurar el servidor y un poco por encima el Hasefroch para hacer de cliente. IntroducciónAclaremos algunas ideas que tendremos que usar en el artículo:
Desventaja: es un protocolo que no es totalmente seguro.(6) De todas formas seguramente nos servirá en muchos casos, sobretodo por las ventajas vistas antes. En otros casos mejor usar de IPSec (p. ej. freeswan(7))
Configuración del servidor sin cifradoPara instalarlo en Debian necesitamos el paquetepptpd (en otras distribuciones puede variar)
Para el ejemplo imaginaremos un servidor Linux con dos interfaces: una pública donde recibe las peticiones y otra privada (p. ej. 192.168.1.1).
El fichero de configuración speed 115200 #en verdad conectará a la velocidad máxima de la red option /etc/ppp/pptpd-options localip 192.168.2.234-238,192.168.2.245 remoteip 192.168.1.234-238,192.168.1.245 #yo pongo directamente una IP privada de la red del servidor de Linux #como IP remota, será transparente para los equipos de la red. #Podemos hacerlo así debido a que tenemos la opción proxyarp en #/etc/ppp/pptp-options y en el cliente. Así el servidor pptp #hará de servidor proxy, y aún sin estar en la misma red local #será transparente al sistema operativo como si lo estuviera.En el fichero /etc/ppp/pptp-options pondremos:
name servername domain domainname auth ms-dns 62.37.228.20 netmask 255.255.255.0 nodefaultroute proxyarp lockY en el fichero /etc/ppp/pap-secrets algo como:
hola * adeu *(el segundo y cuarto campo desde donde pueden conectarnos a nosotros. Ahora iremos al Hasefroch y configuramos la conexión sin cifrado. Desde ahora deberiamos poder conectarnos con el Hasefroch al Linux, haciendo desde Hasefroch un ping a la IP privada de Linux. Para poder hacer pings a las otras IP's privadas de la red de Linux tendriamos que tener una configuración de iptables al menos así: iptables -F FORWARD iptables -P FORWARD ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward #¡ojo! eso es muy inseguro, limitad más el FORWARD entre interfaces, #sólo apto para hacer pruebas Configuración del servidor con cifradoNos queda la parte más "divertida" del asunto: necesitamos parchear el Kernel y el pppd para poder usar contraseña cifrada y también datos cifrados.Lo podemos hacer mediante el fichero ppp-2.4.2.tar.gz(8) que encontraremos en la sección Downloads(9) de la web de poptop(10). Este fichero incluye el pppd con soporte para MPPE y los parches necesarios para el Kernel. Hay otros ficheros en Internet que son Kernels enteros, parches para el Kernel, parches para el pppd, etc. pero usaremos este sistema. Procedemos: pppd con MPPEgunzip ppp-2.4.2.tar.gz tar -xvf ppp-2.4.2.tar cd ppp-2.4.2 ./configure make make installEso es, los típicos pasos para compilar un programa desde código fuente. Este ppp ya viene parcheado para el soporte de MSCHAPv2 y MPPE. (En mi caso no compilaba por culpa del soporte de Radius que no necesitamos para lo que hacemos, en este caso editamos el fichero pppd/plugins/Makefile y en SUBDIRS quitamos la palabra "radius")
Nota: si bajamos la última versión del ftp de pppd(11) (actualmente ppp-2.4.2b3.tar.gz también tenemos soporte mppe haciendo eso:
strings $(which pppd) | grep -i mppe | wc -l(si nos da diferente de 0 tenemos el pppd correcto)
kernel con mppeNos falta el parche para el kernel demppe. Hay varios métodos de encontrar este parche (ya en Kernels compilados, en parche individual para algunos Kernels, etc.). Nosotros lo haremos entrando en el directorio ppp-2.4.2/linux y haciendo:
./kinstall.sh cd mppe chmod u+x mppeinstall.sh ./mppeinstall.sh /usr/src/linux-2.4.20El kinstall.sh sólo nos actualiza un poco más si hace falta el driver ppp del kernel (normalmente no haria falta). El mppeinstall, parchea el kernel para que tenga soporte de mppe.
Seguidamente configuraremos el Kernel como nos sea habitual pero miramos que en Network device suppport tengamos activado el PPP y el PPP MPPE compression (encryption) y después ya podemos compilar lo y reiniciamos de nuevo. Podremos cargar el módulo ppp-mppe:
modprobe ppp_mppePara ver que todo es correcto (es normal que nos diga que el kernel ha sido tainted).
Ahora activaremos la encriptación de contraseña y datos en el require-mschap-v2 require-mppe-128 require-mppe-40y ponemos la línea: hola * adeu *En /etc/ppp/chap-secrets
Ahora podemos volver a la configuración del Hasefroch y activar el cifrado de la contraseña y el de datos para conectarnos a nuestro servidor pptp Linux de forma más segura. Configuración cliente Hasefroch 2000Explico paso a paso como hacerlo con Hasefroch. Casi no haria falta tan detallado, pero por si acaso:
Configuración cliente LinuxHaremos directamente la versión con cifrado, ya que es lo que más usaremos y más problemas nos puede dar.
Para configurar el cliente Linux tendremos que instalar el pppd con soporte MPPE y CHAPMS2 tal como hiciemos en el servidor (aquí(12)). debug noauth lock nobsdcomp nodeflateY en el /etc/ppp/peers/tunnel:
pty "pptp 192.168.1.3 --nolaunchpppd" name hola remotename PPTP require-mschap-v2 require-mppe-128 file /etc/ppp/options.pptp ipparam tunnelDonde name hola es el login y remotename PPTP es el nombre que usaremos para referirnos a esa conexión (en otro fichero, etc.). La IP que vemos es la del servidor pptp.
Ahora sólo nos queda el hola PPTP adeu *Hecho eso ya nos podremos conectar mediante pon tunnel.
Aquí viene nuestra elección haber puesto en el
Para desconectar hariamos
Si añadimos en el fichero
Si dudamos del make CHAPMS=1 USE_CRYPT=1La versión ppp-2.4.2b3.tar.gz me ha funcionado correctamente sin tener que desactivar radius tal como hiciemos antes. Ya incluye los scripts para parchear el Kernel y añadirle soporte MPPE.
Enlaces
Lista de enlaces de este artículo:
|
|
E-mail del autor: carles _ARROBA_ pinux.info Podrás encontrar este artículo e información adicional en: http://bulma.net/body.phtml?nIdNoticia=1743 |