Anonim

El almacenamiento en la nube es una excelente manera de mantener sus archivos seguros en caso de que algo suceda y su computadora se pierda o se dañe. Puede ayudarlo a acceder a sus archivos mientras viaja o desde el trabajo, y lo ayuda a mantener todo sincronizado en sus dispositivos.

Sin embargo, el almacenamiento en la nube tiene un inconveniente importante. Tienes que confiar en alguna compañía con todos tus archivos personales. ¿Qué pasa si son pirateados? ¿Son realmente tan confiables o están revisando tus cosas cuando no estás mirando? Realmente no es posible saberlo con certeza.

Hay otra opcion. Puede alojar su propio almacenamiento en la nube con Nextcloud. Nextcloud es una solución de almacenamiento en la nube de código abierto que le permite ser su propia empresa de almacenamiento en la nube. Tiene una interfaz fácil de usar y limpia y aplicaciones que lo acompañan para todos sus dispositivos, por lo que no está lidiando con algunos elementos no deseados pirateados.

Esta guía se centrará en alojar Nextcloud en un VPS (servidor privado virtual), pero también puede ejecutarlo localmente en su red doméstica. Simplemente no espere acceder a él desde el exterior a menos que configure el reenvío de puertos o esté ejecutando una VPN. Algunos de los pasos serían un poco diferentes, y no necesitará comprar un nombre de dominio o configurar certificados SSL.

Elige un anfitrión

enlaces rápidos

  • Elige un anfitrión
  • Instala lo que necesitas
  • Configure su cortafuegos
  • Configurar SSH
    • SSH Keys
      • Ventanas
      • Mac y Linux
    • No permitir root y contraseñas
  • Configure su base de datos
  • Configurar PHP
  • Obtén Nextcloud
  • Crear certificados SSL
  • Configurar Nginx
  • Iniciar Nextcloud

Suponiendo que va con una verdadera solución en la nube y desea que sus archivos sean accesibles a través de la Web, debe configurar un VPS para alojar Nextcloud. Hay algunas excelentes opciones, así que elige la que mejor te parezca. Echa un vistazo a Linode, DigitalOcean y Gandi, si aún no tienes un host en mente.

Esta guía utilizará Debian 9 "Stretch" como el sistema operativo del servidor. Debian es súper estable y bastante seguro por defecto. También es compatible con la mayoría de las plataformas de alojamiento. Si se siente más cómodo con Ubuntu, la mayor parte de esto se aplicará directamente allí también, ya que Ubuntu se basa en Debian.

También necesitará obtener un nombre de dominio para su servidor. Como este no va a ser un sitio público, realmente puedes hacer lo que quieras. El proceso para comprar y vincular un nombre de dominio es diferente para cada host y proveedor de nombre de dominio, así que asegúrese de verificar la documentación provista por los servicios que elija.

Todo aquí se manejará de forma remota desde la línea de comandos de Linux. Entonces, si está en Mac o Linux, puede abrir una terminal y usar SSH para acceder a su VPS. SI estás en Windows, toma un cliente SSH como PuTTY .

Instala lo que necesitas

Hay muchas piezas en este rompecabezas. Ahora bien, puedes tomarlos todos, así que tienes lo que necesitas para continuar desde aquí. Debian no suele tener sudo instalado de forma predeterminada, así que cógelo primero y configúralo.

$ su -c 'apt install sudo'

Ingrese su contraseña de root y se instalará Sudo. Luego, debe agregar su usuario al grupo sudo.

$ su -c 'gpasswd -a nombre de usuario sudo'

Ahora, puedes usar sudo. Es posible que deba iniciar sesión nuevamente, si no funciona de inmediato. A partir de este momento, utilizará sudo en su lugar, especialmente porque deshabilitará los inicios de sesión de raíz por motivos de seguridad.

Ahora, tome todo de los repositorios de Debian.

$ sudo apt install ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

Configure su cortafuegos

Tu servidor está en Internet. No hay forma de evitar eso, y significa que tendrás que lidiar con atacantes. Configurar un firewall simple ayudará a prevenir muchas amenazas potenciales.

En lugar de usar iptables directamente, puede usar UFW (Firewall sin complicaciones) para asegurar su sistema. Tiene una sintaxis más simple y es mucho más fácil trabajar con ella.

Comience deshabilitando todo en el firewall. Esto establecerá la política predeterminada para negar conexiones a todos los servicios y puertos, asegurando que los atacantes no puedan conectarse en algún puerto olvidado.

$ sudo ufw predeterminado denegar entrante

$ sudo ufw predeterminado denegar saliente $ sudo ufw predeterminado denegar reenviar

A continuación, puede decirle a ufw los servicios que desea que permita. En este caso, solo necesita SSH y acceso web. También querrá habilitar NTP y DNS para que su servidor pueda buscar actualizaciones y configurar su reloj.

$ sudo ufw permitir en ssh $ sudo ufw permitir salir ssh $ sudo ufw permitir en http $ sudo ufw permitir http $ sudo ufw permitir en https $ sudo ufw permitir https $ sudo ufw permitir en ntp $ sudo ufw permitir ntp $ sudo ufw permite 53 $ sudo ufw permite 53 $ sudo ufw permite 67 $ sudo ufw permite 67

Puede iniciar su firewall ahora. Le dará una advertencia sobre la interrupción de SSH, pero ya ha permitido SSH, por lo que estará bien.

$ sudo ufw enable

Configurar SSH

SSH es uno de los servicios más atacados en servidores Linux. Es la puerta de entrada a todo lo demás en el servidor, y generalmente solo está protegido por una contraseña. Por eso es importante asegurarse de que su servidor no sea fácilmente accesible para los atacantes a través de SSH.

SSH Keys

Primero, debe configurar una alternativa mucho más segura a una contraseña, una clave SSH. El proceso es diferente en Windows que en Mac y Linux, así que siga las instrucciones que se ajusten a su escritorio.

Ventanas

Al igual que Windows, necesita otro programa para completar esta tarea simple. PuTTYgen es un generador de claves RSA para PuTTY. Está disponible en la página de descarga de PuTTY . Descárgalo y ejecútalo.

En la ventana que se abre, asigne un nombre a su clave y cree una contraseña para ella. Es la contraseña que usará para iniciar sesión en su servidor. En la parte inferior, seleccione SSH-2 RSA y establezca un tamaño de clave de al menos 2048 bits. 4096 es mejor, pero 2048 será un poco más rápido. Luego, genere sus claves y guarde las claves públicas y privadas. Finalmente, copie la clave pública que se muestra en la parte superior de la ventana.

Use PuTTY para conectarse a su servidor. Abra un archivo en ~ / .ssh / certified_keys y pegue su clave.

De vuelta en PuTTY, busque SSH en el menú lateral. Luego, abra "Auth". En el campo de la clave privada, busque la ubicación de la clave privada que acaba de guardar. Cuando todo en PuTTY esté configurado para su servidor, guarde la sesión. Pruébelo para asegurarse de que se está conectando con su clave antes de continuar.

Mac y Linux

Los usuarios de Mac y Linux tienen un camino mucho más fácil aquí. Comience generando una clave SSH, si aún no tiene una. Tiene la opción de crear una contraseña para la clave. Es opcional, así que esa es tu decisión.

$ ssh-keygen -b 4096 -t rsa

Ahora, solo envíe su clave a su servidor. Sustituya su nombre de usuario y la IP del servidor.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

¡Eso es!

No permitir root y contraseñas

Después de configurar su clave, puede deshabilitar las contraseñas para SSH. No se preocupe si configura una clave con una contraseña. Eso es algo diferente, y esto no afectará en absoluto. Abra el archivo de configuración SSH en / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Encuentra la línea que dice:

#PermitRootLogin prohibir contraseña

Cámbielo a:

PermitRootIniciar sesión no

Luego, encuentra las dos líneas:

# Contraseña Autenticación sí #PermitEmptyPasswords no

Cámbialos a:

PasswordAuthentication no PermitEmptyPasswords no

Finalmente, encuentre:

UsePAM sí

Hazlo:

UsePAM no

Guarde su archivo y ciérrelo. Luego, reinicie SSH. Esto podría iniciarte, así que vuelve a conectarte si es así.

$ sudo systemctl restart sshd

Configure su base de datos

Lo siguiente que deberá hacer es configurar su base de datos. Realmente no hay mucho involucrado aquí, así que no te preocupes demasiado. Solo necesita configurar un usuario y una base de datos vacía para que Nextcloud acceda.

En realidad, hay una secuencia de comandos conveniente para configurar y asegurar MariaDB para usted. Ejecútalo primero.

$ sudo mysql_secure_installation

La contraseña raíz predeterminada está vacía, por lo que "Enter" cuando se le solicita. Luego le pedirá que configure una contraseña de root. Haz eso. Responda "Sí" a cada pregunta que sigue.

Puede iniciar sesión en su base de datos con la contraseña de root que acaba de configurar.

$ sudo mysql -u root -p

El aviso cambiará al de MariaDB. Esta es la consola para administrar su servidor de base de datos. Comience creando una nueva base de datos. La capitalización cuenta aquí.

CREAR BASE DE DATOS nextcloud;

A continuación, cree un usuario para esa base de datos.

CREAR USUARIO `nextcloud` @` localhost` IDENTIFICADO POR "PasswordForUser";

Luego, otorgue a ese usuario permiso para usar la base de datos.

OTORGAR TODO EN nextcloud. * A `nextcloud` @` localhost`;

¡Eso es! Puede salir del servidor de la base de datos ahora.

q

Configurar PHP

Nextcloud está escrito en PHP. Ya instaló la última versión de PHP disponible en Debian Stretch junto con las extensiones de PHP que Nextcloud necesita para funcionar correctamente. Aún necesita hacer un par de ajustes a su configuración de PHP para que funcione más fácilmente con Nginx.

Realmente solo necesita algunos ajustes de seguridad básicos. Estos no son nada importante, pero ayudarán a mejorar la seguridad de su servidor.

Abra /etc/php/7.0/fpm/php.ini con sudo y su editor de texto favorito.

El archivo es masivo, así que use la función de búsqueda de su editor para navegar. Si ha estado usando Nano, es Ctrl + W. La primera opción que necesita encontrar es disable_functions. Agregue add phpinfo, system, mail, exec, al final.

Luego, busque sql.safe_mode y actívelo. A continuación, configure allow_url_fopen apagado. Al final del archivo, agregue la siguiente línea, guárdela y ciérrela.

register_globals = Off

Obtén Nextcloud

Nextcloud aún no está disponible como paquete para Debian, y eso está bien. Realmente no necesitas que sea. Es muy parecido a otras aplicaciones web PHP precompiladas, como WordPress, y viene en un archivo comprimido que puede extraer donde desea instalar Nextcloud.

A partir de ahora, la última versión estable es Nextcloud, verifique cuál es la última versión para usted cuando lea esto. La guía se referirá a 12, pero use cualquiera que sea la última versión estable.

Cambie a un directorio donde desee descargar su archivo Nextcloud. Luego, cambie a / var / www para extraerlo.

$ cd ~ / Downloads $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3. tar.bz2

Si está leyendo esto en el futuro, puede encontrar el enlace de descarga en la página de instalación del servidor de Nextcloud.

Finalmente, cambie la propiedad de su instalación de Nextcloud a www-data.

$ sudo chown -R www-data: www-data / var / www / nextcloud

Crear certificados SSL

Crear sus certificados SSL es muy fácil gracias a Certbot. Certbot generará automáticamente sus certificados SSL para usted y los colocará en la raíz web de cualquier sitio para el que los esté creando. Solo necesita ejecutar un solo comando.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com

Como es la primera vez que ejecuta Certbot, le pedirá una dirección de correo electrónico. Utilizará esa dirección para avisarle cuando sus certificados estén por vencer. También puede renovarlos fácilmente con un solo comando.

$ sudo certbot renovar

Configurar Nginx

Nginx es un servidor web ligero pero potente. Servirá la interfaz que utiliza para acceder a Nextcloud. Hay un par de archivos de configuración asociados con Nginx. La primera es la configuración principal ubicada en /etc/nginx/nginx.conf. Ese es el archivo de configuración principal, pero tiene valores predeterminados sólidos. Puedes jugar con él si sabes lo que estás haciendo, pero puedes dejarlo en paz y estar bien también.

La siguiente configuración es mucho más larga y más compleja. Afortunadamente, no necesitas escribirlo todo. Los desarrolladores de Nextcloud ya lo hicieron. Solo necesitas modificarlo. El archivo de configuración se encuentra en el sitio de Nextcloud . Coge el de la raíz web de Nginx. Cree un nuevo archivo en / etc / nginx / sites-available / nextcloud y péguelo.

Una vez que tenga el archivo, debe hacer un par de modificaciones simples. Primero, encuentre el bloque ascendente y cámbielo para que se vea así:

controlador php ascendente {servidor unix: /run/php/php7.0-fpm.sock; }

Luego, busque en cualquier lugar que diga cloud.example.com y cámbielo a su nombre de dominio.

Lo último que debe hacer es señalar a Nginx a sus certificados SSL. Cambia las lineas:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

A:

ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

¡Eso es! A continuación, debe vincularlo para que Nginx pueda encontrarlo.

$ cd / etc / nginx / sites-enabled $ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

Elimine el valor predeterminado existente que está allí.

$ sudo rm predeterminado

Reinicie PHP y Nginx, ¡y podrá acceder a Nextcloud!

$ sudo systemctl restart php7.0-fpm $ sudo systemctl restart nginx

Iniciar Nextcloud

Abra su navegador web y navegue hasta su nombre de dominio. Serás recibido con la pantalla de configuración de Nextcloud. Cree una cuenta de administrador e ingrese la información de la cuenta de la base de datos que creó.

Nextcloud tardará varios minutos en configurarse e instalarse. Cuando termine, se lo colocará en su nuevo tablero de Nextcloud. A partir de ahí, puede crear nuevos usuarios para permitir que las personas de confianza confíen en su nuevo almacenamiento en la nube. También puede comenzar a cargar archivos de inmediato.

¡Eso es! ¡Ahora tienes tu propia nube privada!

Crea tu propia nube privada con nextcloud