comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Crea tu propio Cloud Server

  • 4 Respuestas
  • 5114 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5380
  • Actividad:
    76.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Diciembre 11, 2014, 08:22:10 am »
Antes que nada... ¿Qué es una cloud?

Ultimamente está de moda, aunque nunca queda bien claro que es. Una "cloud", por su traducción al español "nube", es una agrupación de servicios como alojamiento y sinconización de archivos, agenda, visor de PDF, streaming de música, bases de datos, entre otros, a los cuales tenemos acceso mediante una interfaz (web en la mayoría de los casos) pero el servidor no es propio, o sea, está hosteado en otro lado.


Los más conocidos son Dropbox, iCloud, Google Drive, UbuntuONE, entre otros ofrecen todos o algunos de los servicios antes mencionados, pero limitados, es decir que hasta cierta capacidad de almacenamiento o para adquirir su totalidad hay que pagar una mensualidad, lo que a muchos no les copa.



Con este howto van a poder crearse una cloud para la red interna o que tenga salida a internet y ser ustedes los admines. Su desempeño al igual que la capacidad de almacenamiento, obviamente, va ligado al hardware que tengan, yo lo tengo corriendo en un Raspberry Pi y no anda nada mal aunque con un setup un poco distinto.

¿Qué distro elijo?


Es a gusto, en mi caso personal soy Debianero y prefiero apt-get antes que yum o slapt-get así que el tuto está con base de Debián, para otras distros los cambios son mínimos. Lo probé también con CentOS, OpenSUSE y Slacky y corren muy bien.

Si lo van a hacer en una máquina a parte, comienzen desde acá, si lo van a hacer en la máquina que usan todos los días, lo que pueden hacer si quieren es una partición para alojar los archivos.

Distro: Debian 7.0 Wheezy Netinstall (No tienes permisos para ver links. Registrate o Entra con tu cuenta
Aplicación de la cloud: OwnCloud (No tienes permisos para ver links. Registrate o Entra con tu cuenta)
Servicios: LAMP (Linux, Apache, MySQL y PHP)



1. Instalando...

Instalen su Debian en el idioma y con el keymap que quieran, si es posible seteenle una IP estática así ya queda configurado. No es necesario agregar ahora un user común.

En las particiones, el mapeo que yo elegí fue el siguiente:

500mb a /boot
15GB a /
2GB al swap
Y el resto del espacio libre a /home

¿Por qué así?
/boot: Teniendo boot en una partición, el/los kernels y el/los initramdisks quedan separados, con esto nos aseguramos de que el booteo exista a menos que se haya volado por completo la partición de root, y si por esas casualidades la partición /boot se vuela,, ejecutando una consola de rescate puede recuperarse el sistema facilmente.

/: Al tener la partición de root separada, si se llega a volar, perderemos el sistema pero los datos de /home y /boot quedan intactos.

/home: Acá se alojan la mayoría de los archivos del usuario común por ende es designada la partición más grande y también nos va a servir como punto de montaje para los archivos que estén en la cloud.

Swap: es el área de intercambio entre la memoria virtual y física. Cuando el sistema se queda sin RAM, escribe los datos en esta área. Al rebootear se pierden por defecto, el tamaño es de acuerdo a la RAM instalada.

2. Seleccionando Software
Configuren el administrador de paquetes a su gusto, yo uso el mirror de Estados Unidos e instalen solamente "Standard System Utilities y OpenSSH server. Pueden instalar entorno gráfico, pero con los server NO-VA.

3. Terminando la instalación
Terminen la instalación, rebooteen y entren por ssh o local al server.
Hagan un apt-get update && apt-get -y upgrade por si acaso.

Y acá empezamos con los paquetes:
# apt-get install apache2 php5 php5-json php-xml-serializer zip php5-gd php5-mysql curl libcurl3 libcurl3-dev php5-curl mysql-server .

MySQL les va a preguntar una password para el usuario root de la base de datos. Elijan bien y anotensela.

Para instalar OwnCloud de la forma fácil, hay que añadir un repositorio de openSUSE. Haganlo de la siguiente manera:

Código: Bash
  1. # echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
  2. # apt-get update
  3. # apt-get install owncloud
  4. # apt-get -f install (por si faltó algo)

Les va a crear la carpeta /var/www/owncloud con todo lo necesario adentro.

Otra manera para el que quiera es entrando a la página de owncloud que esta el source, crear una carpeta en /var/www y moverlo ahi, la carpeta tiene que tener permisos de apache (www-data:www-data). La forma anterior lo hace automáticamente

4. La base de datos:

Se puede usar SQLite, yo preferí usar MySQL. Para ello hay que hacer lo siguiente:

Código: MySQL
  1. # mysql -u root -p (van a entrar a la shell de MySQL)
  2. Enter No tienes permisos para ver links. Registrate o Entra con tu cuenta: su pass (espero que se la acuerden)
  3. mysql> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta cloud;
  4. mysql> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta 'cloud'@'localhost' IDENTIFIED BY 'supassword';
  5. mysql> No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta cloud.* No tienes permisos para ver links. Registrate o Entra con tu cuenta 'cloud'@'localhost' IDENTIFIED BY 'supassword';
  6. mysql> exit

¿Qué siginifica todo eso?

Primero creamos la base de datos, después creamos un usuario común y por último le damos permiso al usuario que creamos para que pueda usar la base de datos con todos los privilegios. Esto se hace para que no usar el usuario root como owner de la database por cuestiones de seguridad.

5. Módulos de Apache, el famoso .htaccess y config de PHP

Vamos a activar los modulos rewrite y headers del apache

# a2enmod rewrite
# a2enmod headers


Editamos el archivo /etc/apache2/sites-enabled/000-default y donde dice "AllowOverride None" cambiamos el "None" por "All" para que el .htaccess tenga efecto

Código: Bash
  1. # nano /etc/apache2/sites-enabled/000-default

Editamos el archivo /etc/php5/apache2/php.ini, de la misma manera que el anterior y buscamos las lineas que dicen:

upload_max_filesize 2M
post_max_size 8M


(En nano presionando Ctrl + W o en Vim haciendo / se accede a la busqueda).

Cambiamos los valores en base a lo que queramos, los mismos establecen el límite de posteo y los más importante el límite de subida de archivos. Recomiendo usar 1024M y 64M respectivamente

Editamos (como los anteriores) el .htaccess de /var/www/owncloud y buscamos:

php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M

Cambiamos todos los valores por 1024M

Cuando terminen, restarteen el apache

# service apache2 restart

5. Ya casi!

En caso de que no hayan seteado la IP hagan lo siguiente que esta hecho con la interfaz eth0, adaptenlo a la que esten usando como wlan0 en caso de red inalambrica:

# ifconfig (vean que interfaz usan, que IP tienen y cual es su mascara de red (netmask))
# route (vean su puerta de enlace que es gateway)
# nano /etc/network/interfaces

auto eth0
iface eth0 inet static
address "la ip que salio en ifconfig"
netmask "la mascara de red que salio en ifconfig"
gateway "la puerta de enlace que salio en route"

# service networking restart

Si están por ssh es probable que los saque y se tengan que volver a loguear, si no sigan

Ahora si la configuración del cloud:

abran en su navegador: No tienes permisos para ver links. Registrate o Entra con tu cuenta

Les va a pedir de crear una cuenta de administrador y abajo figura "Configración avanzada"
Ahi figura que el directorio que va a funcionar como almacenamiento de los usuarios es /var/www/owncloud/data, para esto creamos la particion grande de home. Así que en la terminal creamos un directorio en /home.

# mkdir /home/cloud
# chown -R www-data:www-data /home/cloud

Entonces volvemos al navegador y ponemos /home/cloud como directorio de almacentamiento.
Más abajo hay 2 pesañas que dicen "SQLite" y "MySQL". Seleccionamos MySQL y se va a desplegar un menu con el usuario de la base de datos, la password, el nombre de la base de datos y localhost. Para esto creamos un usuario en MySQL así que completamos los campos segun corresponda, salvo localhost que lo dejan como está.

Listo! Ya debería aparecer la interfaz de la cloud.


¿Y cómo hago para acceder desde afuera?

Entren a la configuración de su router y habiliten NAT al puerto 80. Ya pueden acceder por IP desde afuera, peeeeeeero como las IP de los routers cambian habría que tener un DNS para poder encuentrar nuestro server por la red. Para eso existe no-ip.com, crea un nombre de dominio y lo mantiene aunque nuestra IP cambie. Regstrense y sigan las instrucciones, no es para nada dificil. Lo unico que tienen que hacer es descargar el .tar.gz para linux, descomprimirlo y hacerle make & make install

En la página apps.owncloud.com hay más aplicaciones para descargar e instalarlas es una pavada. Se baja el paquete, se unzipea y se tira en /var/www/owcloud/apps.

Autor: fer


Desconectado Theraritho5

  • *
  • Underc0der
  • Mensajes: 26
  • Actividad:
    0%
  • Reputación -1
  • Curioso :(
    • Ver Perfil
  • Skype: Theraritho5
« Respuesta #1 en: Diciembre 12, 2014, 02:58:13 am »
Cooooool buen aporte jefe :F

Desconectado swimdel

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Octubre 07, 2015, 12:59:42 pm »
Crees que necesite un servidor cloud para hostear las imagenes de esta web que estoy iniciando?
Esta es la web --> No tienes permisos para ver links. Registrate o Entra con tu cuenta
« Última modificación: Enero 13, 2016, 07:06:52 am por swimdel »

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1910
  • Actividad:
    15%
  • Reputación 15
    • Ver Perfil
« Respuesta #3 en: Octubre 11, 2015, 06:11:42 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Crees que necesite un servidor cloud para hostear las imagenes de esta web que estoy iniciando?
Esta es la web --> No tienes permisos para ver links. Registrate o Entra con tu cuenta

Eso depende de ti, wordpress maneja más o menos bien las imágenes, necesario no es.

saludos.



Desconectado Yavi

  • *
  • Underc0der
  • Mensajes: 169
  • Actividad:
    0%
  • Reputación 0
  • Es como una pagina redirigiendose a si misma
    • Ver Perfil
    • Email
  • Skype: yavios@hotmail.com
  • Twitter: @YaviOS64
« Respuesta #4 en: Octubre 12, 2015, 12:45:43 am »
Ahh,, @No tienes permisos para ver links. Registrate o Entra con tu cuenta interesante, me ha servido para algo más que saber como crear una nube propia :D . no se imagina todo lo que he hecho, pero bueno se aprende mucho  8)
"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux

 

¿Te gustó el post? COMPARTILO!



Instalar servidor proxy caché Squid en Ubuntu server

Iniciado por CodePunisher

Respuestas: 0
Vistas: 2795
Último mensaje Julio 25, 2013, 05:30:02 pm
por CodePunisher
Flask + Jinaj2 Server-Side Template Injection

Iniciado por Dedalo

Respuestas: 2
Vistas: 463
Último mensaje Julio 11, 2018, 01:29:28 am
por Dedalo
Proteger nuestro server web de ataques con .htaccess

Iniciado por july

Respuestas: 10
Vistas: 4919
Último mensaje Julio 21, 2013, 09:46:43 pm
por CodePunisher
Explotando un LFI en Java Server Pages

Iniciado por elefren

Respuestas: 2
Vistas: 1681
Último mensaje Abril 08, 2016, 05:11:09 am
por elefren
Cherokee web server

Iniciado por alexander1712

Respuestas: 3
Vistas: 1950
Último mensaje Noviembre 26, 2012, 06:32:26 pm
por Adastra