Objetivo: Quiero poder usar Internet de manera segura a través de la PC de mi casa mientras mi computadora portátil está conectada a un punto de acceso / punto de acceso abierto.
Yo no sé que puedo usar un túnel SSH / proxy SOCKS, pero no quiero ver alrededor de aplicaciones (por lo que lo utilizan, si es aún posible). Supongo que lo que necesito es una configuración de OpenVPN, así que estoy buscando una guía detallada sobre cómo:
- Instalar y configurar el servidor OpenVPN
- Configurar el cliente OpenVPN (NetworkManager)
Las versiones de Ubuntu en las que debería funcionar son 10.10 y 11.04.
networking
security
network-manager
vpn
openvpn
htorque
fuente
fuente
Respuestas:
Tengo la pregunta exacta hace unos meses, pero además, quería tener una conexión IPv6 si es posible. Puede que le interesen mis preguntas sobre Serverfault:
Solo tenía una NIC ("interfaz de red") en mi servidor para usar. En mi configuración, NetworkManager no fue suficiente porque necesito ejecutar un script personalizado para admitir IPv6. Sin embargo, por simplicidad, usaré NetworkManager aquí y omitiré el soporte de IPv6.
Primero, solo tome una decisión sobre el método de autenticación. Usaré el método de certificado más seguro que funciona como SSL: durante el protocolo de enlace se elige un secreto común que se utilizará para la sesión. Los otros métodos son una clave compartida; Un nombre de usuario y contraseña.
Servidor
1. Prepárate
Primero, instale el servidor openvpn. Esto es tan fácil como
sudo apt-get install openvpn
. La parte difícil es configurarlo. La configuración está presente en/etc/openvpn
.2. Configure la autenticación
El servidor necesita certificados para identificarse a sí mismo y a sus clientes. Estos certificados se recuperan de una CA (Autoridad Común). La creación de los certificados y las claves privadas relacionadas se puede hacer en cualquier máquina, no es necesario que se haga en el servidor. Si eres realmente paranoico, debes hacerlo en una máquina que no esté conectada a una red y usar una tarjeta de memoria para transferir los certificados.
Crear una CA y certificados para el servidor
Este paso debe realizarse una vez, a menos que la clave privada de su CA se vea comprometida. En ese caso, se pueden crear certificados válidos que serán aceptados por el servidor, resultando en una violación de seguridad.
La documentación oficial sugiere hacer la administración en
/etc/openvpn
. No soy un gran fanático de ejecutar todo como root, por lo que lo pondré en un directorio diferente.Cree el directorio de administración y copie los archivos en él ejecutando:
vars
según sea necesario, por ejemplo, ajusteKEY_SIZE=2048
porque es paranoico.Cargue las variables y cree el directorio de claves ejecutando:
Si obtiene un error que
No ... openssl.cnf file could be found Further invocations will fail
, ejecuteln -s openssl-1.0.0.cnf openssl.cnf
,. vars
nuevamente.Si es la primera vez que usa esta CA, prepare el entorno de claves. No , no ejecutar este comando si desea mantener su CA. creado previamente Hacerlo requerirá que implemente una nueva
ca.crt
../build-ca
. Puede completar los detalles que desee, pero tenga en cuenta que esta información será visible en los archivos de registro cuando los clientes se conecten al servidor. Esto creará los archivosca.key
yca.crt
en la subcarpetakeys
. Mantenga elca.key
archivo en secreto en todas las circunstancias . De lo contrario, cualquiera que tenga la clave podrá conectarse a su servidor../revoke-full server
. De lo contrario, obtendrá un error en la base de datos.Cree el certificado para el servidor ejecutando:
Cuando se le solicite una contraseña, déjela vacía a menos que esté dispuesto a ingresarla cada vez que se inicie el servidor (no recomendado). Confirme al firmar el certificado y al confirmarlo. Aparecerán dos nuevos archivos en el directorio
keys
:server.key
yserver.crt
.DH y use prepare para tls-auth
Genere los parámetros de Diffie-Hellman usando:
Por consejos de endurecimiento , uso
tls-auth
. Para eso, genere la clave secreta compartida usando:El archivo resultante (
ta.key
) también debe distribuirse a los clientes, pero no debe ponerlo en público.Crear certificados para clientes
Para cada cliente, estos pasos deben repetirse:
Ingrese el directorio en el que creó su CA y el certificado del servidor:
Si ha omitido el paso de creación de CA porque ya tiene uno, primero debe cargar las variables:
./revoke-full you
. De lo contrario, obtendrá un error en la base de datos.Cree el certificado del cliente
you.key
y su certificado correspondienteyou.crt
:El
CommonName
debe ser único. Deje la contraseña vacía si está utilizando KDE ya que aún no es compatible a partir de 10.10. Al igual que con la generación del certificado del servidor, confirme la firma del certificado y la confirmación de los cambios.3. Configurar el servicio OpenVPN
Por defecto, OpenVPN se ejecuta como root cuando acepta conexiones. No es una buena idea si se puede acceder al servicio desde el malvado Internet.
Cree un usuario dedicado para OpenVPN, diga
openvpn
:Copiar los archivos
server.key
,server.crt
,ca.crt
ydh1024.pem
(odh2048.pem
si ha cambiado el tamaño de clave) del directorio de llaves en/etc/openvpn
. Un permiso de 400 (solo lectura para el propietario) está bien.Copie el archivo
ta.key
también:Cree el archivo
/etc/openvpn/server.conf
y ponga las siguientes líneas en él:Establezca los permisos apropiados, no es necesario que sea secreto, pero prefiero no filtrar los detalles de configuración, por lo que:
4. Finalizando el servidor
Si ha creado los certificados en el servidor, es una buena idea cifrarlo o sacarlo del servidor. En cualquier caso, no pierdas el
ca.key
yserver.key
. En el primer caso, otros podrán conectarse a su servidor. En este último, es posible un MITM .Cliente
Además de la dirección IP del servidor, el administrador del servidor debe entregar los siguientes archivos:
ca.crt
: para verificar los certificadosserver.crt
: para verificar el servidor y comunicarse con élta.key
: por endurecer la seguridadyou.crt
: identificarse con el servidoryou.key
: es como su contraseña, los permisos de archivo deben ser 400 (solo lectura para el propietario)1. Instalación
Instale OpenVPN y el complemento NetworkManager (adecuado para KDE y Gnome):
network-manager-openvpn
está en el repositorio del universo.2. Configuración
En el panel de control, use los siguientes detalles:
ca.crt
you.crt
you.key
En avanzado :
Especifique la ruta del archivo de clave
ta.key
y establezca "Dirección de clave" en1
.Si no puede hacer que NetworkManager funcione o no desea usarlo, coloque los archivos (
ca.crt
, ...)/etc/openvpn
y cree el/etc/openvpn/client.conf
archivo:Si no desea habilitar esta VPN en el momento del arranque, edite
/etc/default/openvpn
y descomente la siguiente línea eliminando#
:Para iniciar esta conexión, ejecute:
client
debe renombrarse si su archivo de configuración no tiene nombreclient.conf
. Ejemplo: si ha nombrado su archivo de configuraciónsafe.conf
, debe ejecutarlosudo /etc/init.d/openvpn start safe
.Para detener OpenVPN, debe ejecutar:
fuente
man openvpn
). Las versiones recientes de openvpn tienen la capacidad de incrustar certificados y archivos clave, por lo que quizás sea aún más fácil proporcionar ese archivo de configuración único con instrucciones para el usuario.. vars
comando anterior puede generar un error de que "se puede encontrar el archivo openssl.cnf. Otras invocaciones fallarán". Debe hacerlosudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, luego ejecutar. vars
y los otros comandos.whichopenssl
localiza elopenssl-1.0.0.cnf
archivo correctamente para mí (easy-rsa 2.3.2, OpenSSL 1.0.1e)En realidad, no necesita jugar con ninguna aplicación. Esto funciona "al igual que VPN".
Primero instale el
tsocks
paquete (calcetines temporales):Luego edite
/etc/tsocks.conf
e ingreseAhora, abra una terminal y escriba (esto lo conecta):
Ejecutar (a través de otro terminal o ALT-F2):
Ahora, Firefox transmite toda la comunicación a través del servidor SOCKS en su computadora que creó SSH. Esto se canaliza aún más a su máquina doméstica, donde va a la web. Todo lo que necesita en su máquina doméstica es un servidor SSH. Después de la primera vez, solo repita los pasos 3 y 4.
¡Funciona a las mil maravillas! Por desgracia, al cromo no le gustan los tsocks, pero bueno, Firefox funciona.
fuente
La solución de túnel SSH es más fácil de lo que piensas. Un programa como gSTM iniciará / detendrá los túneles con una GUI. Luego, abra Network Proxy y cámbielo de Conexión directa a Internet a Configuración manual de proxy, presione "Aplicar en todo el sistema" y todas sus aplicaciones deben enviar sus datos por el túnel, sin necesidad de jugar con cada uno individualmente.
fuente