test
Hola, el programa que auieres usar es para hacer un tunnel dns. Si lo que quieres hacer es simplemente usar una vpn desde tu casa, con tu conexion a internet y nunca usaste una vpn, la de esta web está bien documentada:
https://protonvpn.com/
Te explica como instalarla usando openvpn. No es una vpn segura, en temas de responsabilidades legales. Pero para saber como configurar una y otros usos de privacidad está muy bien y todo bien explicado para varios sistemas operativos.
Ahora el link que pasas.
En el link que pasas te dice que necesitas instalar las dependencias por terminal.
Solo tienes que abrir la terminal y poner los comandos que te dice:
sudo apt-get install python3
sudo pip3 install scapy-python3
sudo ./server.py
sudo ./client.py
En las dos últimas depende si vas a actuar como servidor del vpn o como el cliente que se conectará al servidor en el equipo que estás utilizando.
Despues tendrás que descargar las librerías y ejecutar el cliente o el servidor.
Si te fijas en el código del cliente puedes ver como trabaja con las librerías asique tendrás que tener la carpeta de las librerías, no solo el cliente o el servidor.
Después en otra máquina necesitarás la maquina con el servidor.py con ek que vas a comunicarte mediante el vpn.
Los archivos que ves son:
lib | La carpeta que tiene los códigos necesarios para el nucleo del programa.
client.py | Es el programa que utiliza el protocolo vpn para conectarse al servidor.
client_auto | Hace lo mismonque el siguiente. Este no lo descarges.
client_auto.sh |Obtiene la ip y se la pasa automaticamente al cliente.
server.py | El programa que atiende las peticiones del cliente y le responde.
test.py | Prueba varias consultas.
Asumiendo que no es conexión inversa.
Para ejecutar el programa te vas a la carpeta donde los tienes ordenados con la terminal. (Si no sabes moverte por carpetas en la terminal, ve a la carpeta y haz click derecho, te saldra la opción: abrir carpeta en la terminal, abrir terminal aqui o en ingles open terminal here, open terminal in this folder, algo así es.)
Una vez estas en el directorio de la carpeta en la terminal, pones:
chmod a+ x nombredelarchivo.py
Y así lo conviertes en ejecutable.
Despues simplemento lo ejecutas:
./nombredearchivo.py
Si también lo vas a usar en windows lo ejecutas con: C:\CarpetaDePython\python.exe nombredelarchivo.py
Tienes ya herramientas hechas para hacer tuneles de este tipo como por ejemplo dns2tcp.
test
Te dice que no encuentra lib.tuntab
Ese archivo está dentro de la carpeta LIB.
Mira el codigo fuente del cliente.py y en donde pone import fijate en que nombre utiliza para llamar a las librerias. Ponle el mismo al tuntab.py y tenlo en la misma carpeta que el cliente.py
test
En los códigos fuente busca los imports a scapy.
from scapy import *
Si te los encuentras como en la linea anterior añadele .all para que quede así:
from scapy.all import *
Instala scapy con las dependencias:
pip install --pre scapy[complete]
Edit:
Instala también:
pip install pyx
Que me pareció verlo por el código, pero no estoy seguro.
No lo instales, estaba pensando en otro código que vi ayer de .pdf :laugh:
Veamos cual es el siguiente error. :xD
hola despues de horas de intentar no pude corregir el error asi q empese desde 0 esto fue lo q ise
1-pip3 install kamene
2-edite los ficheros dns.py y packet.py remplace el scapy.all por kamene.all
3-en la parte del server edite hostname = b'vpn.bgpat.net' por hostname = b'o.olai.tk' en este caso mi dominio apuntando hacia el ip del server
4-luego realice los mismos pasos en la parte del cliente
pero parece q me falta algo en la configuracion porq veo q el server se comunica con el cliente pero da error
esto es la parte del server
https://ibb.co/Zm7FsJ2
https://ibb.co/ZdRwbpN
este es la parte del client
https://ibb.co/TmG4g4Z
si pudieras echar un vistaso a ver q anda mal disculpa mi ignorancia estoy trantando de aprender saludos
Voy a mirar todo el código a ver si entiendo el problema. No hace logs ni nada el programa :-\
Edit:
Ya miré todo el código. Donde le pusiste el hostname, en que archivo?
La conclusión que saqué:
Error con el padding, o error con el hostname. Uno de los 2.
Me imagino que tendrás abierto el puerto 53 hacia el server.
Tienes el test.py que te servirá para comprobar cual es el error.
Ejecútalo y según la salida que obtengas en la terminal ya sabrás cual es el problema.
Mándame la salida a ver si detecta el error así.
Edit2: Si con el test.py te sale el mismo error que te salia con el server, es problema del hostname que le pusiste.
test
Pensé que te iba el kamene por las últimas imagenes. Probaste con el skapy que te dije yo con las dependencias en vez de con kamene?
Desinstala kamane, scapy y python e installa:
pip install --pre scapy[complete]
Juraría que ya te trae Python como dependencia.
No deberías necesitar nada más.
Prueba el test.py a ver que te dice.
El puerto 53 esta cerrado pero permite las consultas dns el objetivo es q realize el tunel vpn sobre las consultas dns no sobre el puerto 53 probe desintalando todo y instalando el scapy sola mente y nada como unico veo q ase algo es instalando el kamene y cambiando el scapy.all por kamene.all en los archivos dns.py y packet.py ise esta prueba levante el server y cerre todo el trafico hacia internet de la pc del cliente permitiendo solo las consultas dns lebante el cliente y bi respuesta en el server loq daba errores parece q es algo de configuracion del server en el server.py remplace el host por el nombre del dominio q tengoa apuntando hacia ese pc q es el mismo q uso en en el dns2tcp y en iodine q complicado esta esto xdxdx ;D
Probaste el test.py para ver si te daba el mismo error que con el server.py?
Mira ambos códigos y prueba eso a ver que te dice. Seguro que te ayuda a saber en donde está el problema. Por las imagenes que pasaste me pareció que era un problema con el hostname. Pero a saber...
Prueba eso y pasa ambas salidas a ver si sacamos algo en claro. :huh:
Esto es loq pone el test.py https://ibb.co/Ydf1g96
Pues tiene pinta de ser lo que te dije tras mirarme todo el código :xD
Error con el hostname.
Me parece a mi que confundes hostname con domainname.
El hostname es el nombre del ordenador.
Independientemente del nombre que le tengas a tu ordenador, utiliza localhost como hostname.
Ese siempre hace referencia a tu equipo.
A ver si ahora funciona o hay que seguir solucionando problemas.
Si le cambio el nombre del host por el ip del server no se conecta da conecction error no se si tenga q poner otra config en en otro archivo o falte algoo :-\
En nombre de host, pon:
localhost
ha por gusto parece q falta algo q no estoy configurandooo
https://ibb.co/WWzGJ1x
https://ibb.co/Nj3nBCF
Modificaste el código en alguna parte que te hable de ip v6? O algo parecido? debía de tener un valor por defecto y lo borraste/cambiaste.
no no he tocado nada del ipv6 dice q ese error solo afecta a IPv6 mi conecion es sol IPv4
aparte del host no se q otra linea tenga q poner la unica q veo es la line 35 en el server.py q ase referecia a in serverdns pone esto
class DNSServer(dns.ServerThread):
addr = '0.0.0.0'
daemon = True
si pongo algun server dns en addr da error ccuando lebanto el server
No te es mejor usar una programa ya compilado? Hay bastantes.
Normal que de error. 0.0.0.0 no es un formulario para que rellenes con tu ip. Es una ip que se puede usar para numerosas cosas distintas, y no sé para que se esta usando en el código, a simple vista parece que es para aceptar a todos los servidores DNS corriendo en local independientemente de su ip, pero podría ser también para que el server averigue su propia ip, o a saber. Igual que 127.0.0.1 etc.
Utiliza software ya compilado o algo codigo abierto que te funcione a la primera o tenga algún metodo sencillo de configurarse durante la ejecución.
Si te gusta aprender sigue a ello hasta que lo saques.