El Miércoles, 2 de Agosto de 2006 21:14, Ricardo Marcelo Alvarez escribió: > On Wed, 2 Aug 2006 17:18:17 +0200 > > "Francisco J. Bejarano" <[EMAIL PROTECTED]> wrote: > > El Miércoles, 2 de Agosto de 2006 13:50, Francisco J. Bejarano escribió: > > > El Martes, 1 de Agosto de 2006 16:24, Francisco J. Bejarano escribió: > > > > Hola a todos > > > > > > > > Estoy configurando un servidor vpn compatible con los clientes > > > > windows y despues de configurarlo (en debian sid), no puedo conectar > > > > con ningun cliente. Ni con el de windows xp sp2 ni con el pptp-linux > > > > desde un xubuntu y un debian-sid, con lo que deduzco que debe ser un > > > > error en la configuración del servidor vpn (version 1.3.0). Miro los > > > > logs de /var/log/syslog me dice lo siguiente al conectar (con > > > > cualquier cliente) > > > > --------------------------------------------------------------------- > > > >---- -- ----------------------------------------------- Aug 1 > > > > 15:51:52 PC191 pptpd[7057]: MGR: Launching /usr/sbin/pptpctrl to > > > > handle client Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: local address > > > > = x.x.x.x Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: remote address = > > > > y.y.y.y Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: pppd options file > > > > = /etc/ppp/pptpd-options > > > > Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: Client a.a.a.a control > > > > connection started > > > > Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: Received PPTP Control > > > > Message (type: 1) > > > > Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: Made a START CTRL CONN RPLY > > > > packet Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: I wrote 156 bytes to > > > > the client. Aug 1 15:51:52 PC191 pptpd[7057]: CTRL: Sent packet to > > > > client Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Received PPTP Control > > > > Message (type: 7) > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Set parameters to 10000000 > > > > maxbps, 3 window size > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Made a OUT CALL RPLY packet > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Starting call (launching > > > > pppd, opening GRE) > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: pty_fd = 6 > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: tty_fd = 7 > > > > Aug 1 15:51:53 PC191 pptpd[7058]: CTRL (PPPD Launcher): program > > > > binary = /usr/sbin/pppd > > > > Aug 1 15:51:53 PC191 pptpd[7058]: CTRL (PPPD Launcher): local > > > > address = x.x.x.x > > > > Aug 1 15:51:53 PC191 pptpd[7058]: CTRL (PPPD Launcher): remote > > > > address = y.y.y.y > > > > Aug 1 15:51:53 PC191 pppd[7058]: Plugin > > > > /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is > > > > 2.4.4 > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: I wrote 32 bytes to the > > > > client. Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Sent packet to > > > > client Aug 1 15:51:53 PC191 pptpd[7057]: GRE: > > > > read(fd=6,buffer=80505a0,len=8196) from PTY failed: status = -1 error > > > > = Input/output error, usually caused by unexpected termination of > > > > pppd, check option syntax and pppd logs Aug 1 15:51:53 PC191 > > > > pptpd[7057]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7) > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Reaping child PPP[7058] > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Client a.a.a.a control > > > > connection finished > > > > Aug 1 15:51:53 PC191 pptpd[7057]: CTRL: Exiting now > > > > Aug 1 15:51:53 PC191 pptpd[6306]: MGR: Reaped child 7057 > > > > --------------------------------------------------------------------- > > > >---- -- ----------------------------------------------- > > > > > > > > > > > > El error es este, arriba esta todo el debug para aclarar. He > > > > sustituido las direcciones ip por letras. > > > > > > > > Aug 1 15:51:53 PC191 pptpd[7057]: GRE: > > > > read(fd=6,buffer=80505a0,len=8196) from PTY failed: status = -1 error > > > > = Input/output error, usually caused by unexpected termination of > > > > pppd, check option syntax and pppd logs Aug 1 15:51:53 PC191 > > > > pptpd[7057]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7) > > > > > > > > He configurado los archivos: > > > > > > > > /etc/pptpd.conf (tiene lo siguiente) > > > > > > > > option /etc/ppp/pptpd-options > > > > debug > > > > logwtmp > > > > localip x.x.x.x (la dirección ip de mi red local del servidor vpn) > > > > remoteip y.y.y.y (un rango de direcciones no usadas de mi red local > > > > para asignar al cliente al conectar) > > > > > > > > /etc/ppp/pptpd-options (el archivo tiene) > > > > > > > > name pptpd > > > > refuse-pap > > > > require-chap > > > > require-mschap > > > > require-mschap-v2 > > > > require-mppe-128 > > > > ms-dns 80.58.61.250 > > > > ms-dns 80.58.61.254 > > > > netmask 255.255.255.0 > > > > proxyarp > > > > nodefaultroute > > > > debug > > > > lock > > > > nobsdcomp > > > > > > > > Y por ultimo el archivo /etc/ppp/chap-secret donde he creado un > > > > usuario y contraseña > > > > > > > > # Secrets for authentication using CHAP > > > > # client server secret IP addresses > > > > > > > > usuario1 * contraseña1 * > > > > > > > > > > > > Despues de esto, no se me ocurre que puede estar pasando, creo que > > > > esta bien configurado. La direccion cliente (a.a.a.a es una direccion > > > > publica) Tengo abiertos los puertos 1723 y 47 en el router y no uso > > > > cortafuegos ni en cliente ni en servidor. He leido varios documentos > > > > de configuración donde parece que lo que hago está bien y he buscado > > > > en google el error y no encuentro una solución. > > > > > > > > ¿Alguien me puede decir por qué no conecto y como puedo arreglarlo? > > > > > > > > Un saludo > > > > > > He descubierto lo siguiente: > > > > > > He añadido un usuario nuevo al archivo chap-secrets al que se le debe > > > asignar una direccion ip obligatoria quedando asi (con espacios entre > > > cada campo) > > > > > > usuario2 * contraseña2 192.168.0.150 > > > > > > Cuando reinicio el servido e intento conectar con ese usuario desde un > > > cliente vpn, el debug me indica que la direccion ip asignada al > > > usuario2 es la primera del rango de direcciones configurado en el > > > fichero > > > /etc/pptpd.conf y no la dirección 192.168.0.150 que le he asignado, lo > > > que me lleva a pensar que no esta usando el archivo chap-secrets para > > > validar el usuario. ¿es esto posible? o puede ser otra cosa. > > > > > > También he probado a configurar un servidor vpn en WXP SP2 y al > > > conectar con un cliente desde otro wxp sp2 a traves de internet, puedo > > > conectar sin problemas, con lo que el router o firewalls o puertos no > > > son seguro (creo, porque el fallo del primer debug parece que indica > > > PTY o GRE. > > > > > > ¿Alguien comenta algo? > > > > Tambien he descubierto, usando wireshark (ethereal) que cada vez que > > intento una conexión, hay un paquete ICMP que responde Destino > > inalcanzable (protocolo inalcanzable) es decir Tipo 3 y Codigo 2 desde la > > direccion interna del servidor vpn al cliente vpn y en el contenido lleva > > datos del protocolo GRE y PPP. > > > > ¿Alguien sabe por que pasa esto? ¿Por que no alcanza el protocolo? > > El kernel tiene que tener soporte para "ip gre tunnels over ip" > Y si estas atras de un firewall tenes que cargar en el firewall unos > modulos de iptables para poder hacer el nat de ip gre y agregar el > forwardeo de este protocolo en el iptables
Gracias, no estoy usando firewalls. He visto que no tenia cargado el modulo de ip_gre y lo he cargado con insmod, también he puesto echo 1 > /proc/sys/net/ipv4/ip_forward He vuelto a probar y nada... > > ejemplo de forwardeo de ipgre esto es en el firewall que tengas corriendo > con iptables. > > function forward_vpn > { > IP_EXTERNA=$1 > PLACA_EXTERNA=$2 > IP_INTERNA=$3 > PLACA_INTERNA=$4 > PUERTO_EXTERNO=1723 > PUERTO_INTERNO=1723 > PROTOCOLO=tcp > PREFIJO_LOG_0=${PREFIJO_LOG}" forward vpn" > echo "Forwardeando la IP ${IP_EXTERNA} en ${PLACA_EXTERNA} a la " > echo "IP ${IP_INTERNA} en ${PLACA_INTERNA} para la VPN " > > ${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d ${IP_INTERNA} > -j > LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level > ${NIVEL_LOG} ${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s > ${IP_INTERNA} --sport ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} > --log-prefix "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} ${IPTABLES} -t > filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA} --dport > ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix > "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} > > ${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p ${PROTOCOLO} -d > ${IP_EXTERNA} --dport ${PUERTO_EXTERNO} -j DNAT --to > ${IP_INTERNA}:${PUERTO_INTERNO} ${IPTABLES} -t nat -A POSTROUTING -o > ${PLACA_INTERNA} -d ${IP_INTERNA} -j MASQUERADE ${IPTABLES} -t filter -A > FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA} --sport ${PUERTO_INTERNO} -j > ACCEPT ${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA} > --dport ${PUERTO_INTERNO} -j ACCEPT > > PROTOCOLO=udp > > ${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d ${IP_INTERNA} > -j > LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level > ${NIVEL_LOG} ${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -s > ${IP_INTERNA} --sport ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} > --log-prefix "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} ${IPTABLES} -t > filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA} --dport > ${PUERTO_INTERNO} -j LOG -m limit --limit ${LIMITE} --log-prefix > "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} > > ${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p ${PROTOCOLO} -d > ${IP_EXTERNA} --dport ${PUERTO_EXTERNO} -j DNAT --to > ${IP_INTERNA}:${PUERTO_INTERNO} ${IPTABLES} -t nat -A POSTROUTING -o > ${PLACA_INTERNA} -d ${IP_INTERNA} -j MASQUERADE ${IPTABLES} -t filter -A > FORWARD -p ${PROTOCOLO} -s ${IP_INTERNA} --sport ${PUERTO_INTERNO} -j > ACCEPT ${IPTABLES} -t filter -A FORWARD -p ${PROTOCOLO} -d ${IP_INTERNA} > --dport ${PUERTO_INTERNO} -j ACCEPT > > #PROTOCOLO 47 ipgre > > ${IPTABLES} -t nat -A POSTROUTING -o ${PLACA_INTERNA} -d ${IP_INTERNA} > -j > LOG -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level > ${NIVEL_LOG} ${IPTABLES} -t filter -A FORWARD -p 47 -s ${IP_INTERNA} -j LOG > -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level > ${NIVEL_LOG} ${IPTABLES} -t filter -A FORWARD -p 47 -d ${IP_INTERNA} -j LOG > -m limit --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level > ${NIVEL_LOG} > > ${IPTABLES} -t nat -A PREROUTING -i ${PLACA_EXTERNA} -p 47 -d > ${IP_EXTERNA} -j DNAT --to ${IP_INTERNA} ${IPTABLES} -t nat -A POSTROUTING > -o ${PLACA_INTERNA} -d ${IP_INTERNA} -j MASQUERADE ${IPTABLES} -t filter -A > FORWARD -p 47 -s ${IP_INTERNA} -j ACCEPT ${IPTABLES} -t filter -A FORWARD > -p 47 -d ${IP_INTERNA} -j ACCEPT > > echo "VPN Forwareada " > } > > Ejemplo de permitir el ingreso de vpn si tenes el iptables en la misma > maquina que corres el pptp server > > function aceptando_vpn > { > IP=$1 > IP_PERMITIDA=$2 > PLACA=$3 > PUERTO=1723 > PROTOCOLO=tcp > PREFIJO_LOG_0=${PREFIJO_LOG}" acepta vpn" > echo "Aceptando la IP ${IP_PERMITIDA} en ${PLACA} a la " > echo "IP ${IP} para la VPN " > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} --dport ${PUERTO} -j LOG -m limit --limit ${LIMITE} > --log-prefix "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} ${IPTABLES} -t > filter -A OUTPUT -p ${PROTOCOLO} -d ${IP_PERMITIDA} -s ${IP} -o ${PLACA} > --sport ${PUERTO} -j LOG -m limit --limit ${LIMITE} --log-prefix > "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} --dport ${PUERTO} -j ACCEPT ${IPTABLES} -t filter -A OUTPUT -p > ${PROTOCOLO} -d ${IP_PERMITIDA} -s ${IP} -o ${PLACA} --sport ${PUERTO} -j > ACCEPT > > PROTOCOLO=udp > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} --dport ${PUERTO} -j LOG -m limit --limit ${LIMITE} > --log-prefix "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} ${IPTABLES} -t > filter -A OUTPUT -p ${PROTOCOLO} -d ${IP_PERMITIDA} -s ${IP} -o ${PLACA} > --sport ${PUERTO} -j LOG -m limit --limit ${LIMITE} --log-prefix > "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} --dport ${PUERTO} -j ACCEPT ${IPTABLES} -t filter -A OUTPUT -p > ${PROTOCOLO} -d ${IP_PERMITIDA} -s ${IP} -o ${PLACA} --sport ${PUERTO} -j > ACCEPT > > #PROTOCOLO 47 ipgre > > PROTOCOLO=47 > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} -j LOG -m limit --limit ${LIMITE} --log-prefix > "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} ${IPTABLES} -t filter -A OUTPUT > -p ${PROTOCOLO} -d ${IP_PERMITIDA} -s ${IP} -o ${PLACA} -j LOG -m limit > --limit ${LIMITE} --log-prefix "${PREFIJO_LOG_0}" --log-level ${NIVEL_LOG} > > ${IPTABLES} -t filter -A INPUT -p ${PROTOCOLO} -s ${IP_PERMITIDA} -d > ${IP} > -i ${PLACA} -j ACCEPT ${IPTABLES} -t filter -A OUTPUT -p ${PROTOCOLO} -d > ${IP_PERMITIDA} -s ${IP} -o ${PLACA} -j ACCEPT > > echo "VPN Aceptada " > > } > > Saludos. > > > Segun la wikipedia, este codigo (2) indica que el protocolo de transporte > > designado no esta soportado. ¿A que protocolo se refiere? > > > > ¿Alguien que haya configurado pptpd puede decirme si le ha funcionado > > alguna vez? > > > > Un saludo > > > > -- > > --------------------------------------------------------- > > Francisco J. Bejarano > > Administrador de Sistemas > > Q&E Intelligent Integrated Solutions S.L. > > www.qye.com > > --------------------------------------------------------- > > __________________________________________________ > Pregunt. Respond. Descubr. > Todo lo que queras saber, y lo que ni imaginabas, > est en Yahoo! Respuestas (Beta). > Probalo ya! > http://www.yahoo.com.ar/respuestas -- --------------------------------------------------------- Francisco J. Bejarano Administrador de Sistemas Q&E Intelligent Integrated Solutions S.L. www.qye.com ---------------------------------------------------------