Servidor principal de Frambuesa Pi - Restringir el acceso a sus sitios usando Nginx

Cuando los tutoriales de este sitio, Utilizo exclusivamente Nginx. Me parece de gran alcance, Ligera y sencilla configuración. Sin embargo, es un punto que nunca lo acercan los sitios seguros. Vamos a intentar resolverlos hoy !

computer_laptop_keyboard_padlock

Cuando la señora tiene preocupaciones con su huésped, ausencias que volver cada vez más a menudo, Me preguntó si podríamos hacer algo. Así que pensé que tomar un nuevo juguete para instalar WordPress. Ordené mi nuevo Frambuesa ft para la venta en Radio de repuestos y estoy listo para entrar en el auto alojamiento :-)

Sólo esto es, Cuando vamos a implementar su sitio o el interfaz web de su herramienta favorita, a menudo una vez hecho es feliz con el resultado y se detiene allí. Hay todavía un hito que no se descuide es asegurar el control de acceso y sitio.

Algunas herramientas como por ejemplo Webmin por ejemplo integra la gestión de usuarios. Pero otros (transmisión, rTorrent, etc.) son directamente accesibles. Se pueden utilizar dos métodos para restringir dicho acceso con Nginx.

Desde el principio, Usted puede seguir Este tutorial instalar Nginx con soporte PHP. A continuación vamos a crear 3 para nuestras páginas de demostración. Todo está hecho /var/www :

  1. Crear el archivo /etc./nginx/sitios-habilitado/tutorial con el siguiente contenido :
    Servidor {
       # Estamos trabajando en que escucha el puerto 80;
       # Nombre del servidor Nginw server_name tutorial;
       # Archivos de raíz o root/var/www;
       # Prohibir todos los archivos de acceso. Esta es la o almacenaremos los inicios de sesión/passwd alquiler ~ .ht {
          negar todo;
       }
       # Lo que se mostrará si genera una denegación de acceso (Error HTTP 403)
       error 403 /refus.html;
       # Se realizará en la base del servidor (archivos en/var/www)
       Alquiler / {
          # De forma predeterminada se muestra index.html index.html Índice;
       }
       # ¿Qué se hará en el directorio Parte1 Alquiler /part1/ {
          # De forma predeterminada se muestra index.html index.html Índice;
          # Acceso denegado a la IP 192.168.1.10
          negar 192.168.1.1O;
          # Toda la red IP 192.168.1.0 están autorizados. Excepto el 192.168.1.10 Gracias a la regla anterior.
          permiten 192.168.1.0/24;
          # Todos otro IP son negados todos niegan;
       }
       # ¿Qué se hará en el directorio Parte2 Alquiler /part2/ {
          # De forma predeterminada se muestra index.html index.html Índice;
          # Mensaje que aparece cuando el nombre de usuario y la contraseña auth_basic "Por favor identifíquese";
          # ¿O es tu login. La ruta es completa y afines auth_basic_user_file / $document_root/Parte2/vos_users;
       }
    }
  2. Reiniciar Nginx
    Reinicio del servicio nginx
  3. Crear el archivo /var/www/index.html con el siguiente contenido :
    <HTML>
    <cuerpo>
    Esta es la página index.html
    </cuerpo>
    </HTML>
  4. Crear el archivo www/refus.html con el siguiente contenido/var / :
    <HTML>
    <cuerpo>
    Acceso denegado
    </cuerpo>
    </HTML>
  5. Crear el directorio/var/www/part1/y crear el archivo index.html con el siguiente contenido
    <HTML>
    <cuerpo>
    Esta es la página de /part1/index.html
    </cuerpo>
    </HTML>
  6. Crear el directorio/var/www/Parte2/y crear el archivo index.html con el siguiente contenido
    <HTML>
    <cuerpo>
    Esta es la página de /part2/index.html
    </cuerpo>
    </HTML>
  7. Usted ahora que hacer las primeras pruebas

Restringir el acceso a cierto IP

Nginx permite su configuración filtrar la IP que se conecta a la máquina. Las instrucciones para administrar las reglas de acceso son :

  • permiten : permite la siguiente red/IP conectar al servidor
  • negar : rechaza las siguientes IP de red para conectarse al servidor

Los valores de estos dos parámetros pueden ser una IP v4, IP v6, una máscara de red o un valor todos se abre o se cierra a todos.

En nuestro ejemplo, la IP 192.168.1.10 No se puede conectar a la parte /Parte1. y será redirigido a la página refus.html (Gracias a la declaración error). Entonces autorizar la red 192.168.1. x y, finalmente, todo está prohibido.

Tan pronto como tu IP coincide con una regla, el control se aplica sin tomar en cuenta las siguientes reglas. Esto es lo que permite para excluir la IP 192.168.1.10 red 192.168.1.0 que está abierto.

El negar todo para cerrar la puerta a todo lo que no fue abierta en las reglas anteriores. No es mala idea si no quiere hacer un sitio público.

Restringir el acceso con login y contraseña

Si la gestión de la propiedad intelectual es que no lo necesito, Otra solución es el clásico inicio de sesión con contraseña. Aquí Nginx puede hacer por usted. Ninguna necesidad de cambiar por el PHP.

Para esto utilice las instrucciones como en nuestro ejemplo en el bloque que usted está interesado :

      auth_basic "Por favor identifíquese";
      Parte2/auth_basic_user_file/vos_users;

Estas instrucciones mostrará un mensaje al usuario que intente acceder al directorio part2.

Capture_d_écran_29_05_13_21_48

El control de acceso se realizará mediante la validación de los datos introducidos con el contenido del archivo en el parámetro auth_basic_user_file, en nuestro ejemplo el archivo /Parte2/vos_users. Deberías saber que este archivo no debe estar en el directorio protegido pero debe ser accesible por el usuario www - data ¿Cuál es el utilizado por el servidor Nginx. Por ejemplo, usted puede asegurar con :

chmod 640 /vos_users/var/www/Parte2
chown root:www - data/var/www/Parte2/vos_users

El contenido de este archivo es una lista de usuarios que pueden conectar con la contraseña asociada. El formato es :

usuario:contraseña

La contraseña debe ser codificada con la función crypt. Agregar una entrada, nada más fácil ! Puede ejecutar el siguiente comando para agregar el usuario pihome con la contraseña raspi :

printf "pihome:$(OpenSSL passwd - cripta raspi)\n" >> /vos_users/var/www/Parte2

Capture_d_écran_29_05_13_22_22

Puede encontrar información sobre este tema en Esta página.

Y el manejo de PHP ?

¿Qué es PHP, en pocas palabras el bloque que hace el enlace a php - fpm dentro de uno que se encarga de su directorio protegido. Si lo pones afuera, acceso directo a una página PHP puede correr.

Esto es para la protección de sus servidores, para que la apertura al mundo, acceso con tu teléfono sin estar demasiado preocupado :-)

Posiblemente le gustan también....

  • vins987

    Buenas noches,

    ¿Puede dar un ejemplo de rutorrent por favor. Tengo visión, con la prueba de níquel!!! Pero creo que es rutorrent con PHP (Eso creo).

    Gracias de antemano!!

    Dijo que su ayuda tutorial bcp en mis pruebas y mi configuración!!!

  • http://www.tefandel.com TEF

    Hola,

    Estoy tratando de configurar la autenticación de usuario/contraseña para FreshRSS, Pero se niega mi login o mi contraseña.
    No tengo error nginx y normalmente se muestra la ventana de inicio de sesión. También probé con diferentes contraseñas con y sin cifrar. Ningún resultado.
    Aquí está mi archivo conf:

    Servidor {

    Escucha 8080;

    nombre_servidor FreshRSS;

    root/var/www/FreshRSS/public;

    Índice index.php index.html index.htm;

    auth_basic “Por favor identifíquese”;

    auth_basic_user_file/var/www/requiere una autenticación;

    Ubicación ~ .php$ {

    fastcgi_pass unix:/var/run/PHP5-fpm.sock;

    fastcgi_index index.php;

    incluyen fastcgi_params;

    }

    }

    Si alguien sabe lo que está pasando…

  • http://www.tefandel.com TEF

    Esto es lo que he encontrado los registros de la peladura:

    2013/06/23 10:41:36 [error] 20600#0: *7 Nº de usuario/contraseña se prestó para la autenticación básica, cliente: 192.168.1.78, Servidor: freshrss, petición: “Obtener / HTTP/1.1”, host: “raspitef.no - ip.org:8080”

    Así que al parecer no encuentra mi archivo que contiene el login/contraseña?

    • http://www.pihomeserver.fr Chris

      Es posible que ese archivo effectievement no se puede acceder por el servidor que genera este mensaje

      • http://www.tefandel.com TEF

        He encontrado de donde proviene el error!

        Después de horas de búsqueda en el doc de Nginx, Finalmente en el lado de la codificación de la contraseña que era necesario encontrar…
        Para dar el ejemplo, Tengo el añadir una barra invertida tras el paréntesis y antes de la ' n’ :
        printf “pihome:$(OpenSSL passwd - cripta raspi)\n” >> /vos_users/var/www/Parte2

        vea esta página : http://wiki.nginx.org/Faq#How_do_I_generate_an_htpasswd_file_without_having_Apache_tools_installed.3F

        Se trata de, buen domingo

        • http://www.pihomeserver.fr Chris

          Esto se corrige gracias. Creo que el tema viejo me convirtió carácter. Sinon le n seul n’a aucun sens 😉

Popular destinations