Oracle tiene intención de apostar fuertemente por la Nube y por ello nos ofrece «gratuitamente» la creación y el uso de 2 VPS con unas prestaciones mas que suficientes para implantar algunos servicios en la nube.
Hay muchos tutoriales en Youtube donde explican cómo crear estos VPS de forma sencilla. En concreto, Apuntes IT tiene unos muy bien explicados.
En este post, lo único que añadiré o modificaré ligeramente son los comandos para abrir los puertos desde la máquina VPS de Oracle ya que el autor de los tutoriales utiliza IPTABLES y creo, bajo mi punto de vista, que hay opciones mas sencillas.
UFW
Lo primero que haré será acceder via ssh a nuestro VPS y desde allí ejecutar los siguientes comandos:
sudo apt remove netfilter-persistent
Quitamos el cortafuegos basado en IPTABLES que incorporan por defecto las máquinas virtuales.
apt install ufw
Instalamos UFW que es mucho mas fácil de configurar.
Ahora que ya tenemos el Id y la clave es conveniente recordar nuestro objetivo:
Configurar una unidad en la nube de Google Drive cifrada de extremo a extremo usando Rclone.
Cuando utilizas una nube pública, teóricamente solo tu y tu proveedor (Google en este caso) tienen acceso a tus datos. Cuando la nube pública es gestionada por una entidad superior o educacional, también el administrador de dicha entidad puede tener acceso a tus datos.
Cuando algo está cifrado extremo a extremo, nadie más que tú puede ver los datos. Es un nivel completamente diferente de protección y privacidad, incluso el servicio que almacena tus archivos no sabe nada sobre ellos porque el descifrado solo tiene lugar en sus dispositivos.
¿Qué es rclone?
Rclone se promociona como un rsync para el almacenamiento en la nube. Te permite sincronizar archivos entre su computadora y los proveedores de almacenamiento en la nube o incluso entre varios proveedores de nube que utilizan tu computadora como proxy.
La sincronización de archivos no es lo único que hace rclone. También tiene un montón de funcionalidades que le permiten exponer y manipular los datos. Por ejemplo, puedes montar una unidad en la nube directamente en su sistema operativo y usarla como otra unidad. O puede exponer el contenido de la unidad en la nube mediante el protocolo WebDAV, FTP, HTTP o incluso DLNA.
Instalar Rclone
Utilizaremos la línea de comandos o shell de nuestro sistema. La forma mas sencilla en un sistema basado en linux como es Synology es:
$ curl https://rclone.org/install.sh | sudo bash
Esto instalará Rclone en el sistema.
Configurar el almacenamiento remoto
En mi caso configuraré un almacenamiento remoto en Rclone cuyo destino será la carpeta raíz del espacio Google Drive.
$ rclone config
Y seguimos los pasos para la configuración de Google Drive:
Ahora es el momento de indicar el ID y la clave que obtuvimos anteriormente. Véase el post de preparativos.
Ahora pegamos en el navegador la url que nos da la consola para dar a nuestro Rclone permisos para acceder a Google Drive. Nos dará un código el navegador que tenemos que pegar a continuación:
Una vez configurado nuestro GDrive podemos hacer una prueba de acceso.
$ rclone lsd miGDrive:
Si todo ha ido bien veremos el contenido de nuestro Google Drive.
Añadiendo capa de cifrado
Una vez que Rclone «conoce» nuestro Google Drive, vamos a crear dentro de él una carpeta cuyo contenido va a estar encriptado. De nuevo llamaremos a Rclone para crear una configuración de carpeta encriptada.
$ rclone config
Y damos por finalizada la configuración. Todo lo que subamos a «miGDrive_encriptado» irá a la carpeta «encriptado» de nuestro Google Drive y estará cifrado con nuestras claves.
Sincronización inicial
Ya lo tenemos todo preparado para comenzar a subir datos. Para ello crearemos un script de la forma:
Procederemos a la ejecución del script y podemos ver el proceso y el resultado:
En la configuración de miGDrive_encriptado podemos especificar también que nuestras carpetas estén encriptadas de tal forma que ofusquemos al máximo el contenido de nuestro drive.
Poseemos una NAS (Network Attachment Storage) en la oficina o en casa del cual necesitamos hacer copia de seguridad externa. Cada marca de NAS, Synology, QNap y otras cubren dicha necesidad a través de sus propios software de forma muy aceptable.
La solución que ahora expongo nos servirá para cualquier NAS, Servidor o PC doméstico y también para cualquier sistema operativo, Windows, Mac o Linux. La nube pública «casi» puede ser cualquiera de las conocidas: Amazon, Microsoft OneDrive, Google Drive y un largo etcétera.
Rclone es un programa de línea de comandos para administrar archivos en el almacenamiento en la nube. Es una alternativa rica en funciones a las interfaces de almacenamiento web de los proveedores en la nube. Más de 40 productos de almacenamiento en la nube admiten rclone, incluidos almacenes de objetos S3, servicios de almacenamiento de archivos para empresas y consumidores, así como protocolos de transferencia estándar.
Lo primero que tenemos que hacer es crear la API y la autenticación en Google Drive. Nuestro objetivo será obtener unas credenciales (ID de cliente Oauth y una clave secreta).
Para ello accedemos a console.developers.google.com con las credenciales de nuestra cuenta Google Drive y creamos un proyecto nuevo:
Una vez creado el proyecto, lo seleccionamos para habilitar la «API Y SERVICIOS«.
Buscamos ahora el producto «Google Drive API» en la lista de los múltiples servicios de Google
Y habilitamos:
Nos interesa crear credenciales para nuestra aplicación Rclone:
En el tipo de API, seleccionamos Google Drive API del desplegable.
Marcamos «Datos del usuario» y pulsamos siguiente:
La opción 2- Permisos es opcional y podemos «Guardar y Continuar«.
Ahora toca «ID de cliente de OAuth» donde seleccionaremos «App de escritorio».
Solo nos queda pulsar en listo y tendremos las dos claves que nos interesan ya creadas:
Ettercap, SSlStrip, iptables, arp, una víctima(192.168.0.15), una puerta de enlace(192.168.0.1), equipo linux con dichas herramientas instaladas.
Preparación:
Lo primero que vamos a hacer es activar el «IP forwarding» de nuestra tarjeta de red. Esto hará que la máquina a la cual estamos atacando no pierda la conectividad:
echo 1 >> /proc/sys/net/ipv4/ip_forward
Seguidamente vamos a aplicar el filtro en iptables para redireccionar todo el tráfico del puerto 80 al puerto 1001, que es el puerto en el que pondremos a escuchar a SSLStrip.
Con la replicación de MySQL podremos tener varios servidores en sincronía, si bien MySQL tiene opciones como MySQL cluster puede que en algunos casos sea demasiado para nuestras necesidades y con una replicación sea suficiente. MySQL no soporta replicación bidireccional, unicamente unidireccional, destinada a tener un maestro y muchos esclavos, pensado para hacer todas las escrituras en el maestro y todas las lecturas en los esclavos y en el maestro.
Esta idea surge a partir de que en aplicaciones de web dinamica normalmente se leen datos más veces de las que se modifica (pero no siempre tiene porque ser así). Aunque MySQL no soporte la replicación bidireccional podemos lograr el mismo efecto haciendo dos unidireccionales, el servidor A sera maestro de B y B esclavo de A, y también B sera maestro de A y A esclavo de B.
Para poder hacer esto modificaremos los autoincreementales para evitar problemas de concurrencia. Empecemos haciendo la replicación del servidor A al servidor B. El escenario:
Servidor 1: 192.168.1.11
Servidor 2: 192.168.1.12
Base de datos (presente en ambos servidores): web
Usuario MySQL (lo crearemos para la replicación): replicacion
Clave MySQL: BFp7yv1wjqTxg5TLKha0
Un punto importante a tener en cuenta es que la clave que le asignemos al usuario destinado a la replicación no sea mayor de 32 caracteres, en las claves de acceso podemos usar la longitud que deseemos pero la replicación con claves superiores a 32 caracteres pueden darnos fallos de conectividad en la actual versión de MySQL (5.5 cuando se escribió esto). Además, el usuario lo limitaremos a que solo pueda conectarse desde la IP del esclavo.
Muy probablemente el usuario root creado en la instalación del mysql habrá que darlo de alta en la sección usuarios del mysql con el parámetro % para que sea capaz de entrar a configurar el servidor de MySQL desde cualquier IP de red.
NFS es un sistema de archivos distribuido para un entorno de red de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. A continuación se detalla la configuración del cliente y del servidor.
Configuración en el servidor
Los paquetes necesarios para el funcionamiento del servidor son portmap, nfs-kernel-server y nfs-common. Para la descarga de los mismos ejecutaremos los siguientes comandos:
En este tutorial, se tratará de instalar postfix con courier imap, y un
repositorio ldap, para las consultas. Se generará un repositorio LDAP, con
contenedores para usuarios, y agenda de direcciones, para ser usado con el
Squirrelmail. Puntualmente, yo usaré una versión de Squirrelmail modificada,
llamada Squirrelmail Outlook, que le da una visión muy parecida a la del
Outlook Web Access (OWA).
A la vez, lo que se buscará con este tutorial, es sentar las bases de
funcionamiento de un servidor Postfix con LDAP, y webmail. Estas mismas
bases serán las que necesitaremos para entender cómo funciona Zimbra, una
poderosa solución de correo electrónico, que explicaremos en un futuro
artículo.
Lo primero que haremos, es instalar el postfix.
root@marcelo:/home/marcelo# aptget install postfix
smtpd_banner = Mailserver de Ejemplo
biff = no
home_mailbox=Maildir/
#[1] esto no va, pero es mostrar que escogemos maildir
append_dot_mydomain = no
myhostname = webmail.ejemplo.com.ar
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = webmail.ejemplo.com.ar,ejemplo.com.ar
relayhost =
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Luego, lo configuraremos, para que el tipo de buzón que reciba, sea Maildir, para que
nuestro hostname, sea ejemplo.com, y para que las redes que permita relay, sean las
192.168.0.1/24, y la red de la placa local, 127.0.0.1/8
La empresa bitvise tiene una excelente programa Tunnelier que te permitirá hacer tunneling de varios puertos o incluso crear una compartición de directorios de equipos remotos.
Este programa crea un fichero de configuración con los parámetros ya configurados. Para mis necesidades muestro aquí el fichero que he utilizado para solucionar un caso práctico.
Las características de esta configuracion tunnelier consiste en:
1. Redireccionamiento del puerto 3306 (mysql) de un equipo local XP a un servidor remoto.
2. Utilización de una tarjeta de bucle local para acceder a unas carpetas compartidas en un servidor remoto.
El programa lo puedes descargar desde la página web de la empresa bitvise o bien localmente desde aquí.
The following instructions document how the Microsoft Loopback Adapter can be installed and configured for use with file share tunneling on Windows XP and 2003:
Installing the Loopback Adapter:
Open Start, Control Panel, Add Hardware.
Click Next on the introduction dialog box.
Select ‘Yes, I have already connected the hardware’ and click Next.
Scroll to the bottom of the list of hardware, select ‘Add a new hardware device’, then click Next.
Select ‘Install the hardware that I manually select from a list (Advanced)’, then click Next.
Select ‘Network adapters’, then click Next.
Select ‘Microsoft’ as the manufacturer, select ‘Microsoft Loopback Adapter’ as the adapter, then click Next.
Click Next to confim the installation.
Click Finish to complete the installation.
Configure the newly created adapter:
Open Start, Control Panel, Network Connections.
Select the newly created connection (should be named ‘Local Area Connection N’, where N is its order number).
Right click on the selected connection and choose Properties from the menu.
Confirm that ‘Microsoft Loopback Adapter’ (or ‘Microsoft Loopback Adapter #N’) is displayed in the ‘Connect Using:’ field. If it isn’t, return to step 2 and retry properties for another adapter.
Select ‘Internet Protocol (TCP/IP)’, then click Properties to open ‘Internet Protocol (TCP/IP) Properties’.
Select ‘Use the following IP address:’ and fill in the ‘IP address:’ and ‘Subnet mask:’ fields (e.g. 10.10.10.10, 255.255.255.0).
Click Advanced to open ‘Advanced TCP/IP Settings’.
Switch to WINS and select ‘Disable NetBIOS over TCP/IP’.
Click OK to close ‘Advanced TCP/IP Settings’.
Click OK to close the ‘Internet Protocol (TCP/IP) Properties’.
Optionally (on XP only) uncheck (disable) ‘Notify me when this connection has limited or no conectivity’ to remove the connection warning icon from the system notification area.
Click OK to close the connection properties.
If you later want to uninstall the Microsoft Loopback Adapter (once it is not needed any more for the forwarding of a Windows file share), you can uninstall it using Control Panel > System > Hardware > Device Manager.