lunes, 30 de junio de 2014

Crear un servidor proxy para navegación en la LAN (o internet) desde el exterior

Buscando información he encontrado este blog tiene algo similar a mi raspberry (aunque usa demasiado el modo gráfico para mi gusto):
Tambien este sitio tiene algo interesante para evitar ataques por fuerza bruta (failtoban):
Sigo buscando. De momento se que se puede configuar el apache en modo reverse_proxy pero es demasiado complicado porque hay que crear sitios virtuales...

Busco algo del tipo anonymizer, proxify, 2anonymousproxy, kproxy, anonymouse, zend2...

Parece que este puede valer: http://norfipc.com/articulos/esconder-ip-crear-web-proxy.html

Procedimiento

Descargar http://norfipc.com/ftp/varios/proxy-glype-1.1.zip
Llevarlo a su ubicación definitiva...


Descomprimir en esa ubicación. Saldrá una carpeta serv.
Voy a restringir el acceso a esa carpeta. En este caso: /home/pi/web_proxy/serv
Pondré el fichero con user/pass en la carpeta superior porque no es accesible desde la web.
  • htpasswd -cb /home/pi/web_proxy/.htpasswd xxxusuarioxxx xxxpasswordxxx
  • cd /etc/apache2/conf.d/
  • ls -la
  • En este caso voy a usar el de miki (ya está configurado): cp miki.conf proxy.conf
  • Modificar para adaptar a las nuevas posiciones. Resultado final:
    •  cat proxy.conf
      Alias /proxy /home/pi/web_proxy/serv

      <Directory  /home/pi/web_proxy/serv/>
          Options +FollowSymLinks
          AllowOverride All
          order allow,deny
          allow from all

          AuthUserFile  /home/pi/web_proxy/.htpasswd
          AuthType Basic
          AuthName "Acceso al proxy"
          <LIMIT GET POST>
              require valid-user
          </LIMIT>
      </Directory>
  • Reiniciar apache: sudo service apache2 restart

Probar

Escribir en el navegador raspberrypi/proxy
Si va bien, probar: https://raspberrypi/proxy
Finalmente probar desde fuera de la LAN (mediante noip.com)

He encontrado al autor y la última versión de momento...

  •  http://www.glype.com/
  • glype-1.4.9.zip
  • A partir de aquí voy a repetir pasos y modificar lo que sea necesario para tratar de que funcione igual (sin cambiar archios de configuración).

domingo, 29 de junio de 2014

miércoles, 25 de junio de 2014

Configurar soporte HTTPS en Apache

Fuente/agradecimientos: Amor Rodriguez Navarro (Creo que ese es su nombre)
Se va a hacer para que salga la conexión segura con el sitio que esté por defecto.

Crear los certificados autofirmados

#Se va a hacer guardando una copia de los certificados en /etc/certificados
cd /etc
sudo mkdir certificados
cd certificados
#generar los certificados y guardarlos en /etc/certificados
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout servidor.key -out servidor.crt
#copiar los certificados en  /etc/ssl/private/
sudo cp servidor.crt servidor.key /etc/ssl/private/

Activar el módulo ssl

a2enmod ssl

Insertar los certificados al sitio por defecto

sudo nano /etc/apache2/sites-available/default-ssl
#Modificar las líneas SSLCertificateFile y SSLCertificateKeyFile (claves pública y privada respectivamente) para que apunten a las que se acaban de crear servidor.crt y servidor.key
#Deben quedar así:
  • SSLCertificateFile /etc/ssl/private/servidor.crt
  • SSLCertificateKeyFile /etc/ssl/private/servidor.key

Activar el host con el comando:

sudo a2ensite default-ssl

Reinicar apache

#El comando anterior indica al terminar que hay que reinicar apache: sudo service apache2 reload
#O el clásico: /etc/init.d/apache2 restart

Próximo paso: Crea tu propia entidad certificadora

lunes, 23 de junio de 2014

Instalar no-ip (para poder utilizar opencloud)

Darse de alta en el sitio:

  • Rellenar los datos en www.noip.com
  • Elegir el modo: Free Sign Up
  • INSTALAR NO-IP EN LA RASBERRY
    • Crear un directorio para descomprimir el fichero que se debe descargar
      • cd
      • mkdir noip
      • Suponiendo que se esté usando el usuario pi, esto sería similar a utilizar: mkdir /home/pi/noip
    • Descargar: wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
    • Descomprimir: tar vzxf noip-duc-linux.tar.gz
    • Esto creará una carpeta del tipo: noip-x.x...
    • Ir a esa nueva carpeta compilar e instalar:
      • sudo make
      • sudo make install
        • pedirá el nombre de usuario y contraseñas dadas durante el registro
    • Hacer correr noip: sudo /usr/local/bin/noip2
    • Hacer que se inicie automáticamente al reiniciar el sistema:
      • Crear el fichero noip2 en /etc/init.d: sudo nano /etc/init.d/noip2
      • Contenido del fichero al final de esta pubicación (fondo amarillo). El script se puede encontrar en: www.stuffaboutcode.com
      • Dar permiso de ejecución al script: sudo chmod 755 /etc/init.d/noip2
      • Probar si se para, si se inicia y si se reinicia.
        • sudo /etc/init.d/noip2 stop
        • sudo /etc/init.d/noip2 start
        • sudo /etc/init.d/noip2 restart
      • Registrar el script para que se inicie con el sistema:
        • sudo update-rc.d noip2 defaults
  • Se ha terminado en la máquina local. Queda configurar el servicio.
    • He hecho por medio la configuración de raspberry para dar  tiempo a recibir el correo de verificación.
  • Verificar la dirección de correo electrónico suministrado.
  • Seleccionar Host/Redirects (parte superior de la columna izquierda)
  • Add a Host
    • Elegir el nombre y el dominio (en este caso entre los dominios gratuitos)
  • Ya solo falta abrir puertos en el router. Lo más facil es direccionar el 80 de la raspberry al 8080 de internet (es al que apunta no-ip por defecto).
  • No se que pasará en otras conexiones, en mi conexión actual no me deja probarlo. Tuve que utilizar un proxy para el navegador. 
    • El día que lo busqué: anonymous proxy free online
    • Probé el primero de la lista: www.zend2.com
    • Y funcionó bien: Al poner la dirección: xxxx.no-ip.org visita: mi-ip:8080
    • Ya solo queda añadir a esa /owncloud (como mi conexión no es segura no he introducido user/pass)
    • El proximo paso será asegurar la conexión.
  • En vez de navegar a través de un proxy es más senillo utilizar el navegador de tor:
    • https://www.torproject.org/
    • Tiene más utilidades, pero para esto es sencillísimo y sin necesidad de complicarse buscando un proxy porque seguro que el anterior pronto deja de ser gratuito.
contenido del fichero /etc/init.d/noip2:
#! /bin/sh
# /etc/init.d/noip2
### BEGIN INIT INFO
# Provides:          noip2
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Simple script to start a program at boot
# Description:       A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting noip2"
    # run application you want to start
    /usr/local/bin/noip2
    ;;
  stop)
    echo "Stopping noip2"
    # kill application you want to stop
    killall noip2
    ;;
  *)
    echo "Usage: /etc/init.d/noip2 {start|stop}"
    exit 1
    ;;
esac
exit 0