31 votos

¿Cómo puedo configurar OpenVPN para que yo pueda utilizar de manera segura la internet de una garantía hotspot?

Objetivo: quiero ser capaz de utilizar de manera segura a internet a través de la PC de mi casa mientras mi notebook está conectado a un punto de acceso abierto/punto de acceso.

Me hacen saber que puedo usar un túnel SSH/SOCKS proxy, pero no quiero jugar un poco con las aplicaciones (haciendo uso de ellos, si aún es posible). Supongo que lo que necesitas es una instalación de OpenVPN, así que estoy buscando una guía detallada sobre cómo:

  1. Instalación y configuración del servidor OpenVPN
  2. El programa de instalación del cliente OpenVPN (NetworkManager)

Las versiones de Ubuntu esto debería funcionar en son 10.10 y 11.04.

11voto

Jessica Puntos 26

El túnel SSH solución es más fácil de lo que piensas. Un programa como gSTM se de inicio/parada de los túneles para usted con una interfaz gráfica de usuario. A continuación, acaba de abrir Proxy de la Red y el cambio de conexión Directa a internet para la configuración de proxy Manual, pulsar "Aplicar todo el sistema" y todas sus aplicaciones deben enviar sus datos de abajo del túnel - no hay necesidad de jugar con cada uno de ellos individualmente.

4voto

tidbeck Puntos 281

Tengo la misma pregunta hace un par de meses, pero, además, yo quería tener una conexión IPv6 si es posible. Usted podría estar interesado en mis preguntas en Serverfault:

Yo sólo tenía una NIC ("interfaz de red") en mi servidor para su uso. En mi configuración, NetworkManager no fue suficiente porque necesito ejecutar una secuencia de comandos personalizada para el soporte de IPv6. Por simplicidad, sin embargo, voy a utilizar NetworkManager aquí y omitir el soporte de IPv6.

En primer lugar, acaba de tomar una decisión sobre el método de autenticación. Voy a utilizar el seguro certificado método que funciona como SSL: durante el apretón de manos un secreto común es elegido el que será utilizado para la sesión. Los otros métodos son la clave compartida; un nombre de usuario y contraseña.

Servidor

1. Preparar

En primer lugar, instalar el servidor openvpn. Esto es tan fácil como sudo apt-get install openvpn. La parte difícil es la configuración. La configuración está presente en /etc/openvpn.

2. Configurar la autenticación

Es necesario que el servidor de certificados para la identificación de sí mismo y de sus clientes. Estos certificados se recuperan de una CA (Autoridad Comunes). La creación de los certificados y las claves privadas relacionadas se puede hacer en cualquier máquina, no tiene que ser hecho en el servidor. Si eres muy paranoico, debe hacerlo en una máquina que no está conectado a una red, y el uso de un lápiz de memoria para la transferencia de los certificados.

Crear una entidad emisora de certificados y certificados para el servidor

Este paso se debe realizar una vez, a menos que la entidad emisora de certificados de clave privada quedó comprometido. En ese caso, los certificados que se pueden crear, que será aceptado por el servidor, lo que resulta en una violación de la seguridad.

La documentación oficial sugiere hacer la administración en /etc/openvpn. Yo no soy un gran fan de ejecutar todo como root, así que voy a poner en un directorio diferente.

  1. Crear el directorio de administración y copiar los archivos en el mismo mediante la ejecución de:

    mkdir ~/openvpn-admin
    cd ~/openvpn-admin
    cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa
    cd easy-rsa
    
  2. Editar valores por defecto en vars según sea necesario, para la configuración de ejemplo KEY_SIZE=2048 porque eres paranoico.
  3. La carga de las variables y crear el directorio de claves mediante la ejecución de:

    . vars
    
  4. Si obtiene un error que No ... openssl.cnf file could be found Further invocations will fail, ejecute ln -s openssl-1.0.0.cnf openssl.cnf, a continuación, . vars de nuevo.

  5. Si esta es tu primera vez usando este CA, preparar las claves del entorno. ¿ No ejecutar este comando si desea mantener su creado previamente CA. Para ello será necesario implementar un nuevo ca.crt.

    ./clean-all
    
  6. Crear el CA mediante la ejecución de ./build-ca. Usted puede llenar cualquier detalle que desee, pero tenga en cuenta que esta información será visible en los archivos de registro cuando los clientes se conecta al servidor. Esto creará los archivos ca.key y ca.crt en la subcarpeta keys. Mantener el ca.key archivo secreto en todas las circunstancias. De no hacerlo, permiten que cualquier persona con la clave para conectarse a su servidor.
  7. Si usted tiene un certificado anterior que se ha perdido o ha caducado, deberá revocar la antigua primero con ./revoke-full server. De lo contrario se obtiene un error de base de datos.
  8. Crear el certificado para el servidor ejecutando:

    ./build-key-server server
    

    Cuando se le pidió una contraseña, deje el campo vacío, a menos que usted está dispuesto a introducir la contraseña cada vez que inicie el servidor (no se recomienda). Confirmar con la firma del certificado y de cometerlo. Dos nuevos archivos aparecerán en el directorio keys: server.key y server.crt.

DH y el uso de prepararse para tls-auth

Generar Diffie-Hellman parámetros a través de:

./build-dh

Por el endurecimiento consejos, uso tls-auth. Para eso, generar compartidos clave secreta mediante:

openvpn --genkey --secret ta.key

El archivo resultante (ta.key) deben ser distribuidos a los clientes, pero usted no debe poner en público.

Crear los certificados para los clientes

Para cada cliente, estos pasos deben ser repetidos:

  1. Escriba el directorio en el que se creó la entidad emisora de certificados y certificado de servidor:

    cd ~/openvpn-admin/easy-rsa
    
  2. Si te has saltado la CA de la creación paso porque ya uno, usted necesita para cargar las variables de la primera:

    . vars
    
  3. Si usted está creando nuevos certificados, porque los viejos son perdidos o caducado, deberá revocar la antigua primero con ./revoke-full you. De lo contrario se obtiene un error de base de datos.
  4. Crear el certificado de clientes you.key y su correspondiente certificado de you.crt:

    ./build-key you
    

    El CommonName debe ser único. Deje la contraseña en blanco si se está usando KDE ya que no es compatible pero como de 10.10. Como con el servidor de generación de certificados, confirmar la firma del cert y confirmar los cambios.

3. Configurar el servicio de OpenVPN

De forma predeterminada, OpenVPN se ejecuta como root a la hora de aceptar conexiones. No es una buena idea si el servicio es accesible desde el mal de Internet.

  1. Crear un usuario dedicado para OpenVPN, decir openvpn:

    sudo useradd openvpn
    
  2. Copie los archivos server.key, server.crt, ca.crt y dh1024.pem (o dh2048.pem si ha cambiado el tamaño de la clave) de las teclas de directorio en /etc/openvpn. Un permiso de 400 (sólo lectura para el propietario) está bien.

    sudo cp ~/openvpn-admin/easy-rsa/keys/{server.key,server.crt,ca.crt,dh*.pem} /etc/openvpn
    sudo chmod 400 /etc/openvpn/{server.key,server.crt,ca.crt}
    
  3. Copie el archivo ta.key así:

    sudo cp ~/openvpn-admin/easy-rsa/ta.key /etc/openvpn
    sudo chmod 400 /etc/openvpn/ta.key
    
  4. Crear el archivo /etc/openvpn/server.conf y poner las siguientes líneas:

    proto udp
    dev tap
    ca ca.crt
    cert server.crt
    key server.key
    dh dh1024.pem
    server 10.8.0.0 255.255.255.0
    push "redirect-gateway def1"
    ifconfig-pool-persist ipp.txt
    keepalive 10 120
    tls-auth ta.key 0
    # Compress data to save bandwidth
    comp-lzo
    user openvpn
    group openvpn
    persist-key
    persist-tun
    # Logs are useful for debugging
    log-append openvpn-log
    verb 3
    mute 10
    
  5. Establecer los permisos adecuados en él, no se necesita ser un secreto, pero yo prefiero no pierdan los detalles de la configuración así:

    sudo chmod 640 /etc/openvpn/server.conf
    

4. Acabado el servidor

Si ha creado los certificados en el servidor, es una buena idea para cifrar o se mueve fuera del servidor. En cualquier caso, no perder la ca.key y server.key. En el primer caso, los demás serán capaces de conectarse a su servidor. En el segundo, un MITM es posible.

Cliente

Además de la dirección IP del servidor, el administrador del servidor debe entregar los siguientes archivos:

  • ca.crt: para la verificación de los certificados
  • server.crt: para verificar el servidor y comunicarse con él
  • ta.key: para la protección de la seguridad
  • you.crt: identificarse con el servidor
  • you.key: es como su contraseña, permisos de archivo debe ser de 400 (sólo lectura para el propietario)

1. Instalación

Instalar OpenVPN y el NetworkManager plugin (adecuado para KDE y Gnome):

sudo apt-get install openvpn network-manager-openvpn

network-manager-openvpn está en el universo repositorio.

2. Configuración

En el panel de control, utilice los siguientes datos:

  • Puerta de enlace: dirección IP del servidor
  • Tipo: "Certificados (TLS)" (Gnome) o "X. 509 Certificate" (KDE)
  • Certificado de CA: camino de ca.crt
  • Certificado de usuario: camino de you.crt
  • Clave privada: el camino de you.key

En Avanzadas:

  • Puerto de puerta de enlace: Automático (1194) (no necesita ser cambiado)
  • Uso de la compresión de datos LZO: habilitado
  • El uso de la conexión TCP: deshabilitado
  • El uso de TAP en el dispositivo: habilitado
  • Cifrado: default
  • La autenticación HMAC: default
  • El uso de TLS autenticación: habilitado
    Especificar la ruta de acceso del Archivo a ta.key y en "Clave de Dirección" 1.
  • (todo - comprobar hacia fuera) el servidor empuja la puerta de enlace predeterminada para todo el tráfico que pasa a través de la conexión VPN. La última vez que revisé, el network-manager-openvpn plugin no hacerlo.

Si usted no puede conseguir NetworkManager de trabajo o no quiere usar, poner los archivos (ca.crt, ...) en /etc/openvpn y crear el archivo /etc/openvpn/client.conf archivo:

client
dev tap
proto udp
# replace 1.2.3.4 by your server IP
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert you.crt
key you.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
user nobody
group nogroup
verb 3
mute 20

Si usted no desea habilitar VPN en el momento de arranque, editar /etc/default/openvpn y descomentar la siguiente línea mediante la eliminación de la #:

#AUTOSTART="none"

Para iniciar esta conexión, ejecute:

sudo /etc/init.d/openvpn start client

client se debe cambiar el nombre si su archivo de configuración no es nombrado client.conf. Ejemplo: si usted ha nombrado a su archivo de configuración safe.conf, usted necesita para ejecutar sudo /etc/init.d/openvpn start safe.

Para dejar de OpenVPN, tienes que ejecutar:

sudo /etc/init.d/openvpn stop

1voto

akdom Puntos 6724

En realidad no se necesita jugar con ninguna de las aplicaciones. Esto funciona "como VPN."

  1. Instalar primero el tsocks paquete (temporal calcetines):

    sudo apt-get install tsocks
    
  2. A continuación, edite /etc/tsocks.conf e introduzca

    server = 127.0.0.1
    server_port = 3333
    
  3. Ahora, abra una terminal y escriba (esto conecta):

    ssh -ND 3333 ssh.url.to.your.home.machine
    
  4. De ejecución (a través de otro terminal o ALT-F2):

    tsocks firefox
    

Ahora, Firefox transmite toda la comunicación a través del servidor SOCKS en el equipo que SSH creado. Esto además, se pone de túnel a su casa, donde pasa a la web. Todo lo que usted necesita en su hogar de la máquina es un servidor SSH. Después de la primera vez, simplemente repita los pasos 3 y 4.

Funciona como un encanto! Por desgracia, el cromo no le gusta tsocks, pero bueno, Firefox funciona.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: