30 de marzo de 2013

Mejorar la seguridad de nuestros datos en Internet

Encontrado en Soy de El Bierzo:

Opción 1: Usar una VPN

Esta es la más sencilla y económica de todas las opciones, usar una red privada virtual que permita el tráfico P2P. De este modo todo el tráfico de nuestro ordenador con la aplicación P2P estará cifrado y será imposible para los proveedores de internet saber que estamos haciendo.

En internet existen multitud de servicios de estos, he probado varios en los últimos años y finalmente me he quedado con la empresa Private Internet Access, ofrecen conexión por múltiples localizaciones, desde EE.UU a Hong Kong pasando por Canadá, Suecia, Suiza o Rumanía entre otros países.

Sin límite de ancho de banda, permiten usar P2P sobre su red y pagando anualmente el precio por mes es de solo $3,33, 2,5€ mientras escribo este post.

Es sencillo de configurar empleando la aplicación que tienen para Windows y Mac, y también se puede usar desde Linux y dispositivos iPhone/iPad o Android.
Y lo más importante de todo, no guardan registro de logs de nuestra actividad, la privacidad es total si encima hacemos el pago con Bitcoins y usamos un email alternativo, como los de www.tormail.org, aunque para hacerlo totalmente anónimo os recomiendo leer antes este post.

Pantallazo-6

Opción 2: Alquilar una seedbox

Una seedbox es una máquina conectada a internet y preparada para servir en la red torrent, se maneja a través de interfaz web y los archivos descargados podemos recuperarlos por ftp (mejor una que soporte FTPS o SFTP para transferir los archivos cifrados hasta nuestro ordenador).

He rebuscado por la red y lo más barato que he encontrado son $17,95 mensuales por una cuenta individual con 50GB de espacio para descargar torrents.

También hay cuentas con más espacio o servidores para grupos, 8 cuentas unas 200 GB cada una por $124 mensuales.
http://www.xirvik.com/index_2.html

Opción 3: Montar tu propia seedbox segura y anónima

Para esta opción es necesario tener algunos conocimientos técnicos, voy a tratar de explicarlo de la manera más sencilla posible.

Primero vamos a elegir el servidor en el que vamos a instalar las aplicaciones. Si es para nosotros solos, nos llegaría con el servidor dedicado más bajo de gama de esta web:

http://www.ovh.es/servidores_dedicados/kemsirve.xml

Con IVA son unos 12€ al mes.

100Mb de ancho de banda, 5TB mensuales de transferencia, tras los cuales baja la velocidad a 10 Mbps… nos vale.

A veces, aunque selecciones el más barato, te dan uno con más procesador, con el disco duro no se suelen equivocar.


A veces, aunque selecciones el más barato, te dan uno con más procesador, con el disco duro no se suelen equivocar. Como la mayoría de los proveedores de estos servicios, no se permite usar P2P para transferir contenidos con derechos de autor… luego solucionaremos este punto.

En el proceso de contratación seleccionaremos la opción “Expertos: distribución base”, en la siguiente pantalla elegiremos “CentOS 6″.

Pantallazo-3

Rellenamos nuestros datos, pagamos y esperamos 1 hora hasta recibir los datos de acceso al servidor.

Para conectar con esos datos usaremos putty desde Windows o desde un terminal de MacOS o Linux.

Tenemos la IP del servidor, el usuario root y la clave que le han asignado a la máquina.

Una vez conectados, lo primero que haremos es cambiar la clave por defecto por una nuestra ejecutando el siguiente comando:

passwd

Ahora vamos a crear un usuario nuevo que será el que usemos en el futuro para conectar de este modo a la máquina, ya que vamos a quitar el acceso remoto al usuario root:

useradd soydelbierzo
passwd soydelbierzo


Elige el nombre de usuario que más rabia te dé, no hace falta que uses el mismo del ejemplo.

Nos desconectamos, volvemos a conectarnos pero esta vez con el nuevo usuario y la clave que le hemos asignado.

Ahora estamos dentro de la máquina con un usuario sin privilegios, para usar el usuario root y seguir configurando ejecutaremos:

su -

Nos pedirá la clave que le asignamos al usuario root anteriormente.
Ahora que volvemos a ser root, vamos a empezar a instalar cosas. Primero vamos a cerrar el acceso remoto al usuario root:

vi /etc/ssh/sshd_config

Cambiamos la línea #PermitRootLogin yes por PermitRootLogin no

Guardamos los cambios y ejecutamos

service sshd restart

Ahora ejecutaremos un comando para actualizar el sistema operativo:

yum upgrade

Finalizada al actualización, si se ha actualizado el kernel, resetearemos la máquina con el comando reboot y nos volveremos a conectar, de lo contrario seguiremos:

yum install yum-cron

Este comando ejecutará una actualización diaria de manera automática.
Ahora vamos a desactivar el IPV6 que traen de serie estos servidores y que no necesitamos para nada ahora mismo, salvo para tener algún problema de seguridad, ejecutaremos:

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
vi /etc/sysconfig/network


Dentro verificaremos que está así la siguiente línea:

NETWORKING_IPV6=no

Guardamos y ejecutamos:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Editamos estas tres líneas para que queden así:

IPV6INIT=no
#IPV6_AUTOCONF=no
#IPV6ADDR


Guardamos y ejecutamos:

vi /etc/sysctl.conf

Añadiremos estas dos líneas:

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1


Guardamos y ejecutamos:

/etc/init.d/network restart

Ahora vamos a instalar unas cuantas cosas, ejecutaremos los siguientes comandos:

yum install vsftpd
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

(Nota: esta URL puede cambiar, aquí puedes conseguir el último si este no funciona)

cd /etc/yum.repos.d/
wget http://geekery.altervista.org/geekery-el6-x86_64.repo
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install transmission fail2ban openvpn nginx


Ahora vamos a ir configurando todo lo que hemos instalado, empezando por fail2ban, una utilidad para bloquear a los bots que se dedican a rastrear direcciones IP con puertos abiertos y tratar de acceder a ellos.

vi /etc/fail2ban/jail.conf

Cambiaremos la línea:

bantime  = 600

por:

bantime  = 86400

En el apartado [ssh-iptables] cambiamos:
maxretry = 5 por maxretry = 3
En el apartado [vsftpd-iptables] cambiaremos:
maxretry = 5 por maxretry = 3enabled  = false por enabled  = true

Guardamos y seguimos:

chkconfig fail2ban on
service fail2ban start


Ahora vamos a crear un certificado digital autofirmado para el FTP seguro que no caduque en 10 años:

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Nos pedirá una serie de datos que dejaremos en blanco.
Editamos el archivo del servidor de FTP:

vi /etc/vsftpd/vsftpd.conf

Cambiamos:
anonymous_enable=YES por anonymous_enable=NO
#chroot_list_enable=YES por chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list por chroot_list_file=/etc/vsftpd/chroot_list

Al final del archivo añadiremos lo siguiente:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
require_ssl_reuse=NO


Guardamos y ejecutamos un comando para meter nuestro usuario en la lista de chroot:

echo soydelbierzo > /etc/vsftpd/chroot_list
chkconfig vsftpd on
service vsftpd start


Pasamos a configurar el servidor web Nginx para que actúe como proxy inverso de la web del servidor de torrents Transmission, generamos un nuevo certificado y cerramos el puerto 80:

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt
rm /etc/nginx/conf.d/default


Configuramos el proxy:

vi /etc/nginx/conf.d/ssl.conf

En su interior pondremos la configuración de este archivo (pincha este enlace para verlo).

Los métodos de cifrado son los más seguros a fecha de hoy, a la vez que funcionan con todos los navegadores web, de ordenador o smartphone.

Llegamos a los dos últimos pasos, la vpn y configurar Transmission. Lo primero es tener una cuenta de VPN, en este ejemplo usaremos la de Private Internet Access por ser la más barata, rápida y segura que he localizado  ($3,33 al mes si te subscribes anualmente).

Ejecutamos:

cd /etc/openvpn/
wget https://www.privateinternetaccess.com/openvpn/openvpn.zip
unzip openvpn.zip
rm openvpn.zip


Ahora tenemos un montón de archivos .ovpn con la configuración para conectarnos a alguna de las múltiples salidas que tienen.

Vamos a usar la de Holanda, pero como no queremos que todo el tráfico del servidor salga por la VPN, tan solo el propio de los torrents, editaremos el archivo correspondiente:

vi Netherlands.opvn

Añadiremos al final la siguiente línea:

route-nopull

Y cambiaremos:

auth-user-pass por auth-user-pass acceso.txt

Guardamos y creamos el archivo acceso.txt:

vi acceso.txt

En la primera línea pondremos el usuario que nos han asignado, en la segunda la clave.

Guardamos y ejecutamos:

openvpn --config /etc/openvpn/Netherlands.ovpn &
ifconfig tun0


Si todo ha ido correcto, nos aparecerá la información del nuevo dispositivo virtual de red que nos conecta a la VPN, nos fijaremos en la segunda línea, por ejemplo:

inet addr:10.160.10.10  P-t-P:10.160.10.9  Mask:255.255.255.255

Nos quedamos con el primer dato, 10.160.10.10 con el que ahora vamos a indicarle al sistema que marque el tráfico de datos de Transmission y lo envíe por la VPN y no por la red normal:

echo “1 transmission” >> /etc/iproute2/rt_tables
ip route add 10.160.0.0/24 dev tun0 src 10.160.10.10 table transmission
ip route add default via 10.160.10.10 dev tun0 table transmission
ip rule add from 10.160.10.10/32 table transmission
ip rule add to 10.160.10.10/32 table transmission
ip route flush cache


Nota: Cuando tenga otro rato haré un script para automatizar esta parte.

Y finalmente configuramos Transmission, el servidor de torrents. En el servidor del ejemplo, el punto de montaje con más de 400 GB de espacio libre es /home/ para que Transmission lo pueda usar ejecutaremos:

mkdir /home/soydelbierzo/transmission
chown soydelbierzo:soydelbierzo /home/soydelbierzo/transmission/

(Recuerda cambiar soydelbierzo por el usuario que has creado al principio con el comando adduser)
vi /home/soydelbierzo/transmission/transmission-daemon

Y añadimos esta línea:

DAEMON_ARGS=”-i 10.160.10.10 -r 127.0.0.1 -ep -u UNUSUARIO –password UNACLAVE -b -t -a \”*.*.*.*\” ”

Cambia UNUSUARIO y UNACLAVE por el usuario y clave que quieras… pero no uses los mismos que tienes para acceder al servidor, por seguridad.

Ejecutamos:

chown soydelbierzo:soydelbierzo /home/soydelbierzo/transmission/transmission-daemon
chmod 755 /home/soydelbierzo/


Editamos:

vi /etc/init.d/transmission-daemon

Eliminamos esta línea para que no queden logs de lo transferido:

DAEMON_ARGS=”-e /var/log/transmission/transmission.log”

Modificamos:

TRANSMISSION_HOME=”/var/lib/transmission” por: TRANSMISSION_HOME=”/home/soydelbierzo/transmission”

Cambiamos el usuario que ejecuta Transmission:

DAEMON_USER=”transmission” por: DAEMON_USER=”soydelbierzo”

Cambiamos también:

[ -e /etc/sysconfig/transmission-daemon ] && source /etc/sysconfig/transmission-daemon por: [ -e /home/soydelbierzo/transmission/transmission-daemon ] && source /home/soydelbierzo/transmission/transmission-daemon

Guardamos y arrancamos Transmission:

service transmission-daemon start
service nginx start


El servidor comenzando a transferir

El servidor comenzando a transferir
Ahora si nos apetece podemos ir a www.nic.tk y registrar un dominio gratuito, que apuntaremos a la IP pública de nuestro servidor seleccionando la opción DNS que nos ofrecen al registrarlo.

Tras activarlo (mirad la carpeta de spam) estará todo listo para acceder:
https://eldominioqueheregistrado.tk

Pantallazo-7

Ojo, el certificado digital para la conexión segura es autofirmado, el navegador web nos sacará una advertencia, es normal.

Nos pedirá el usuario y password que configuramos en Transmission y listo, podemos añadir archivos torrent, magnet links o bien enlaces directos a la descarga del archivo de torrent.

También podemos trastear con la configuración, ancho de banda máximo de subida y bajada… esto es importante, recordemos que tenemos 5TB de datos al mes antes de que nos bajen la velocidad de la conexión de 100 Mbps a 10 Mbps y que aquí la velocidad de la red es simétrica, a diferencia de un cliente de torrent en casa, nos encontraremos que enviamos muchos más datos de los que recibimos.

Podemos poner menos velocidad de subida que de bajada o activar la opción de cortar la subida cuando se supere cierto ratio subidas/bajadas. Personalmente prefiero la opción 1.

Pantallazo-8

5TB de datos vienen a ser 2MB por segundo durante un mes, que serían 1MB de subida y otro de bajada ya que parece que es así como esta empresa computa el consumo de datos. Calculad vosotros como configurar esos límites de transferencia


Ah, y desde el móvil también podemos acceder con facilidad ya que la interfaz se adapta a estos dispositivos.

Screenshot_2013-03-24-23-56-40

Y ya tenemos nuestra propia seedbox con más de 400GB de espacio por 14,5€ al mes, por un poco más podemos tener 1TB de espacio, incluso podemos pillar servidores más potentes o con más espacio en otros proveedores como los que subasta Hetzner en su web.

No hay comentarios: