Hola nuevamente,
tenía algo de tiempo que no escribía por acá. Esta vez aprovecharé la oportunidad para escribir este manual debido a que me tocó instalar Archlinux en una máquina nueva.
Hace tiempo había escrito una entrada sobre como acceder a una VPN desde Chakra Linux, sin embargo en ese momento la cosa había funcionado casi que automáticamente y en Archlinux había tenido algunos problemas, por ejemplo, tocaba abrir firefox como root asumiendo los riesgos que eso conlleva.
En estos momentos puedo decir que tengo algo mas de experiencia sobre el tema y puedo dar una guía lo mas completa posible, hay que tener en cuenta que para 64 bits siempre es un poquito molesto la cosa, pues hay que instalar muchas librerías de 32 bits, si eso no es una molestia, puedes seguir leyendo este manual, de lo contrario si conocen algún paquete nativo para 64 bits me gustarían que compartieran la información. De momento, hasta donde mi conocimiento da, Checkpoint NO soporta snx para 64 bits en Linux.
Bien, para ir ahorrándonos tanta carreta, lo primero que debemos hacer es descargar el paquete snx, podemos descargarlo desde el mismo sitio de conexión. Para ello ingresamos a Parámetros -> Editar parámetros de aplicaciones nativas:
Luego procedemos a descargar el paquete para Linux:
Una vez descargado, abrimos la ruta donde descargamos el archivo y le damos permisos de ejecución al script, y lo ejecutamos (Pedirá contraseña de root):
[chucho@chucholaptop Downloads]$ vim snx_install.sh
[chucho@chucholaptop Downloads]$ vim snx_install.sh
[chucho@chucholaptop Downloads]$ chmod +x snx_install.sh
[chucho@chucholaptop Downloads]$ ./snx_install.sh
The installation script requires root permissions
Please provide the root password
Password:
Installation successfull
[chucho@chucholaptop Downloads]$ vim snx_install.sh
[chucho@chucholaptop Downloads]$ chmod +x snx_install.sh
[chucho@chucholaptop Downloads]$ ./snx_install.sh
The installation script requires root permissions
Please provide the root password
Password:
Installation successfull
Una vez instalado este software no nos servirá para nada pues debemos de instalar varias librerías. Para ello debemos activar el repositorio Multilib removiendo los comentarios en el archivo /etc/pacman.conf (Sobra decir que esto debemos hacerlo como root):
#[multilib]
#Include = /etc/pacman.d/mirrorlist
#Include = /etc/pacman.d/mirrorlist
Debería de quedar algo así:
[multilib]
Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
Ejecutamos el comando "pacman -Sy" para sincronizar los respositorios:
[root@chucholaptop bin]# pacman -Sy
:: Synchronising package databases...
core is up to date
extra is up to date
community is up to date
multilib 117.9 KiB 135K/s 00:01 [######################] 100%
archlinuxfr is up to date
:: Synchronising package databases...
core is up to date
extra is up to date
community is up to date
multilib 117.9 KiB 135K/s 00:01 [######################] 100%
archlinuxfr is up to date
Luego procedemos con la instalación del paquete "lib32-libstdc++5", lo podemos hacer con Pacman.
Una vez instalado el paquete "lib32-libstdc++5" y sus dependencias, procederemos a revisar que librerías le faltan a snx para ejecutarse correctamente:
linux-gate.so.1 (0xf776f000)
libX11.so.6 => not found
libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf7711000)
libresolv.so.2 => /usr/lib32/libresolv.so.2 (0xf76f8000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf76f3000)
libpam.so.0 => not found
libnsl.so.1 => /usr/lib32/libnsl.so.1 (0xf76d7000)
libstdc++.so.5 => /usr/lib32/libstdc++.so.5 (0xf761d000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7465000)
/lib/ld-linux.so.2 (0xf774e000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf7418000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf73fc000)
Como podemos ver faltan las librerías libX11.so.6 y libpam.so.0, para la primera es sencillo porque la encontramos en el repositorio multilib. Por lo que solo bastaría con ejecutar el comando:
#pacman -S lib32-libx11
Para la librería libpam, si será necesario utilizar AUR, en mi caso tengo instalado "yaourt" que hace mas fácil el manejo de dependencias, por lo que tocaría ejecutar el siguiente comando:
$yaourt -S lib32-pam
NOTA: Aquí es donde todo se vuelve un "fastidio" por la cantidad de dependencias que debemos traernos de AUR y dichas dependencias a medida que se van construyendo van a seguir trayendo mas dependencias por eso como comenté anteriormente es mejor instalar este paquete con yaourt y no hacerlo manualmente.
==> lib32-pam dependencies:
- pam (already installed)
- lib32-cracklib (building from AUR)
- lib32-libtirpc (building from AUR)
- lib32-flex (building from AUR)
- gcc-multilib (package found)
- pam (already installed)
- lib32-cracklib (building from AUR)
- lib32-libtirpc (building from AUR)
- lib32-flex (building from AUR)
- gcc-multilib (package found)
El paquete gcc-multilib tiene conflictos con otros paquetes, hay que removerlos y dejar el gcc-multilib, en mi caso nunca tuve inconvenientes:
:: gcc-libs-multilib and gcc-libs are in conflict. Remove gcc-libs? [y/N] Y
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
Una vez instalado las dependencias, podemos probar que snx funcione bien ejecutándolo manualmente:
[chucho@chucholaptop Downloads]$ snx
failed to open file: /home/chucho/.snxrc
Valid attributes are:
- server SNX server to connet to
- sslport The SNX SSL port (if not default)
- username the user name
- certificate certificate file to use
- calist directory containing CA files
- reauth enable automatic reauthentication. Valid values { yes, no }
- debug enable debug output. Valid values { yes, 1-5 }
- cipher encryption algorithm to use. Valid values { RC4 / 3DES }
- proxy_name proxy hostname
- proxy_port proxy port
- proxy_user username for proxy authentication
failed to open file: /home/chucho/.snxrc
Valid attributes are:
- server SNX server to connet to
- sslport The SNX SSL port (if not default)
- username the user name
- certificate certificate file to use
- calist directory containing CA files
- reauth enable automatic reauthentication. Valid values { yes, no }
- debug enable debug output. Valid values { yes, 1-5 }
- cipher encryption algorithm to use. Valid values { RC4 / 3DES }
- proxy_name proxy hostname
- proxy_port proxy port
- proxy_user username for proxy authentication
Aquí tan solo he explicado como instalar el paquete, con snx se puede conectar a cualquier VPN que soporte SSL Extender, si queremos la conexión desde un navegador web (algo mas "natural") lo explicaré en la siguiente entrada.
Un saludos.
Comentarios
The pure command line setup of the Checkpoint VPN client, with a special edition of SNX, has already stopped working a couple of years ago with the discontinuation of SSLv3 support by Checkpoint.
Also around that time, the Java agent stopped being an applet in the browser, and became a Java servlet running on the client.
These setups are typically problematic with the various versions of Checkpoint installation scripts, dependencies are not always easy to satisfy, require 32-bit libraries, and in some distributions/versions these dependencies no longer exist (officially).
Here is my script that isolates the client/agent/32-bit setup in a chroot, and has been tested with many distributions.
https://github.com/ruyrybeyro/chrootvpn