English Русская версия Hrvatski Svenska Ελληνικά Deutsch 繁體中文 Français Português brasileiro
Cjdns implementa una red IPv6 cifrada usando criptografia de llave publica para la asignación de direcciones y una tabla distribuida de hashes para el ruteo. Esto provee redes de casi-nula-configuración, y previene mucho de los problemas de seguridad y escalabilidad que plagan a las redes existentes.
23:26 <@jercos> well, cjdns is now officially more reliable than the open
internet for getting to my cheaper VPSes :|
12:52 < mariner> so i don't know if it's been done before, and i assume it's
obvious, but I think it's neat. Currently on hype from an
airplane
00:36 < tester> man sites take so long to load on i2p
00:36 < tester> i value speed over anonymity any day
<DuoNoxSol> it's notably more reliable than the normal internet
09:46 < Kubuxu> I so love cjdns code base
<whyrusleeping> my internet is way better now.
<whyrusleeping> thanks
<whyrusleeping> i'm really upset and sad that its better
<whyrusleeping> but also quite happy
21:01 <@grewalsat> this is amazing. with my workpalce speedtest.net results I get around 6+mb speed, and with my cjdns-gate as vpn network I'm getting like 11-15mb download speed in speedtest.net
21:01 <@grewalsat> :P
21:01 <@grewalsat> plus, access anything! :D
<davidar> Yeah, I have to admit I sort of avoided hypeirc because of stuff like that
Graciars por su tiempo e interes,
Los desarrolladores de CJDNS.
Estas instrucciones son para las distribuciones basadas en Debian y macOS. Deben ser suficientemente informativas como para usarse en otras distribuciones - solo no espere que funcionen tal cual. Si desea saber que base del sistema operativo tiene, revise aqui.
En ambas plataformas, instalar Node.js, aunque preferible, no es estrictamente necesario. Si Node.js no esta disponible o en una version inaceptable, sera descargado e instalado en el arbol de codigo fuente.
sudo apt-get install nodejs git build-essential python2.7
sudo dnf install install nodejs git
sudo dnf install @development-tools
sudo yum localinstall https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install install nodejs git
sudo yum install @development-tools
Construyendo desde el paquete:
sudo yum localinstall https://kojipkgs.fedoraproject.org//packages/cjdns/17.4/4.el6/src/cjdns-17.4-4.el6.src.rpm
Si usted esta en una laptop y suspende o hiberna, a cjdroute le tomara unos minutos figurar que ha pasado al despertar. Puede dramáticamente acelerar esto con:
systemctl enable cjdns-resume
El servicio de resume reinicia cjdns cuando el sistema regresa de dormir.
emerge --ask nodejs sys-devel/gcc dev-lang/python:3.4 dev-vcs/git
Instalar con Homebrew:
brew install cjdns
Instalar con MacPorts:
sudo port install cjdns
Desafortunadamente, en OpenBSD es un poco experimental por el momento.
pkg_add git node gcc gmake bash
Elija la version gcc-4.8.1p2 o mas reciente.
Todo lo que necesita esta prearmado en los ports de FreeBSD.
pkg install gmake node
Usted puede instalar cjdns ejecutando
pacman -S cjdns
Si necesita armar desde el codigo fuente, todo lo requerido se puede obtener asi
pacman -S nodejs git base-devel
Como alternativa, usted podria instalar desde AUR desde el paquete, cjdns-git
.
Despues de instalar, La configuracion estara en /etc/cjdroute.conf
.
Para iniciar el servicio cjdns.service
, ejecute:
systemctl start cjdns
Para detenerlo:
systemctl stop cjdns
Dependencias:
sudo eopkg install nodejs git build-essential system.devel python gcc binutils kernel-headers xorg-server-devel
Despues siga estas instrucciones:
Lo sentimos por tantos pasos. Actualmente un paquete se esta aun preparando
Clonar el repositorio desde GitHub y cambiar al directorio del codigo fuente:
git clone https://github.com/cjdelisle/cjdns.git cjdns
cd cjdns
./do
Espere por Build completed successfully, type ./cjdroute to begin setup.
, y entonces
proceda con lo que sigue abajo:
Ejecute cjdroute sin opciones para otener ayuda:
./cjdroute
LANG=C cat /dev/net/tun
Si dice: cat: /dev/net/tun: File descriptor in bad state
¡Muy bien!
Si dice: cat: /dev/net/tun: No such file or directory
, tiene que crearlo ejecutando:
sudo mkdir -p /dev/net &&
sudo mknod /dev/net/tun c 10 200 &&
sudo chmod 0666 /dev/net/tun
Después ejecute cat /dev/net/tun
otra ves.
Si dice: cat: /dev/net/tun: Permission denied
Probablemente usted esta usando
un VPS basado en la plataforma de virtualización OpenVZ. Pídale a su proveedor
que habilite el dispositivo TUN/TAP - esto es un protocolo estándar y ellos
deberían de saber que es lo que usted necesita. Si esta usando macOS, no necesita
preocuparse por este paso.
./cjdroute --genconf >> cjdroute.conf
¡Proteja su archivo conf!
Un archivo conf extraviado significa perder sus contraseñas y conecciones , y todo aquel que conectaba a usted ya no lo podrá hacer. Un archivo conf que ha sido sustraido podría dar a que alguien se dedique a impersonificarle.
Para generar un archivo conf con los permisos de tal manera que solo su usuario pueda leer y escribir en el:
(umask 077 && ./cjdroute --genconf > cjdroute.conf)
Para acceder a una red existente (por ejemplo, Hyperboria), necesita conectar con alguien que ya tenga acceso a esa red. Esto es necesario por muchos motivos:
Para encontrar un amigo, salga de aquí y accede a nuestra comunidad. También, de un vistazo a la Hyperboria Map para encontrar nodos cercanos a usted.
Para iniciar una conexión OUTbound
En su archivo conf, usted observará:
// Nodes to connect to.
"connectTo":
{
// Add connection credentials here to join the network
// Ask somebody who is already connected.
}
Un archivo conf con múltiples nodos de amigos, con la configuracion OUTbound, deberia de verse así:
// Nodes to connect to.
"connectTo":
{
//friend_1 (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
"0.1.2.3:45678":
{
"login": "k.alexander"
"password": "thisIsNotARealConnection_1",
"publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
}
//friend_2 (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
"5.1.2.3:5678":
{
"login": "k.alexander"
"password": "thisIsNotARealConnection_2",
"publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_2.k"
}
}
Usted puede agregar tantas conexiones como quiera en el atributo connectTo
,
siguiendo la sintaxis de JSON.
Para permitir que su amigo realize una conexión INbound
En su archivo conf, usted encontrará:
"authorizedPasswords":
[
// A unique string which is known to the client and server.
{"password": "password001", "login": "default-login"}
// More passwords should look like this.
// {"password": "password002", "login": "my-second-peer"}
// {"password": "password003", "login": "my-third-peer}
// {"password": "password004", "login": "my-fourth-peer"}
...
// "your.external.ip.goes.here:45678":{"login": "default-login", "password": "password001","publicKey":thisisauniqueKEY_001.k"}
],
Un archivo conf con múltiple nodos de amigos, con la configuración INbound, deberia de verse como:
"authorizedPasswords":
[
// A unique string which is known to the client and server.
{"password": "thisisauniquestring_001", "user": "k.alexander"}
// More passwords should look like this.
//William Jevons (IPv4: 0.1.2.3; IPv6 fcaa:5bac:66e4:713:cb00:e446:c317:fc39)
{"password": "thisisauniquestring_002", "user": "William Jevons"}
//Marilyn Patel (IPv4: 5.1.2.3; IPv6 fcbb:5bac:66e4:713:cb00:e446:c317:fc39)
{"password": "thisisauniquestring_003", "user": "Marilyn Patel"}
// {"password": "thisisauniquestring_004"}
...
// "your.external.ip.goes.here:45678":{"password": "thisisauniquestring_001","publicKey":thisisauniqueKEY_001.k"}
],
Usted necesitaría darle a William Jevons (quien esta haciendo una conexion INbound) las siguiente 4 cosas:
El puerto que aquí se lee en su archivo conf:
// Bind to this port.
"bind": "0.0.0.0:yourportnumberishere",
El password único que ha descomentado o creado: "password": "thisisauniquestring_002"
Su llave pública: "publicKey": "thisisauniqueKEY_001.k"
Su nombre de usuario: "William Jevons"
Sus credenciales para iniciar sesion se veran como aquí (con su IPv4 y el puerto):
"1.2.3.4:56789": {
"login": "William Jevons",
"password": "thisisauniquestring_002",
"publicKey": "thisIsJustForAnExampleDoNotUseThisInYourConfFile_1.k"
}
De favor cerciorese que usted y su amigo pueden iniciar una conexión tanto hacia fuera (de USTED --> AMIGO) hacia dentro (del AMIGO --> USTED) pero el tráfico fluye ambos sentidos una vez una coneccion suceda.
Revise doc/configure_ES.md para mas detalles de configuración, incluido como acceder a otros nodos cjdns sobre ethernet y wifi.
Una vez que su nodo esté corriendo, está ahora en una recién creada dirección IPv6. Su sistema operativo puede que configure automáticamente para que servicios sobre red lo utilicen. Si esta no es su intencion, deberá revisar que no se este ofreciendo mas servicios que los deseados. ;)
Lea doc/network-services.md - en inglés - para mas instrucciones.
sudo ./cjdroute < cjdroute.conf
Si desea que las bitácoras se escriban en un archivo:
sudo ./cjdroute < cjdroute.conf > cjdroute.log
Para detener cjdns:
sudo killall cjdroute
Si usted tiene problemas, ejecute killall cjdroute
para regresar a la tranquilidad.
Use pgrep cjdroute
o top
para ver si el proceso sigue corriendo.
¡Nota!
Esto inicia cjdns como el usuario root para que pueda configurar su sistema sin impedimentos por los permisos. Para iniciar cjdns como un usuario que no es root, favor de leer doc/non-root-user.md - en inglés -.
¡Bienvenido a la red! Ahora es un administrador de redes. Hay responsabilidades que vienen con ser un administrador de redes, que incluye estar disponible en caso de que algo este mal con su equipamiento. Debe de estar en IRC de tal manera de que la gente le encuentre.
Cuando cjdroute esta habilitado y corriendo, la interfaz de administración estara en
udp://localhost:11234
(esto puede ser cambiado en el archivo de configuracion
cjdroute.conf
). Consulte doc/admin-api.md - en inglés - para
mas información sobre la interfaz de administracion. Ha varias herramientas en
la carpeta contrib/
que puede interactuar con ella.
Puede acceder a la API de administración con:
Problemas de seguridad deberán de ser reportado en IRC como cualquier otro bug. No tenemos un grupo cerrado de personas con conocimientos especiales, lo que significa que el método por defacto para reportar cosas de seguridad, es con su descripción completa. Consulte: https://github.com/cjdelisle/cjdns/blob/master/doc/security_specification.md - en ingles - para comprobar si un aparente problema de seguridad realmente es un problema de seguridad.
Esa época del año nuevamente... ¡El tiempo para actuar en algunos proyectos de código abierto!