SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
El servidor perfecto
Crea tu propio servidor de hosting




                Ismail Ismailov   @ismail2ov
¿Qué es web hosting?
Web hosting (alojamiento web o alojamiento de
páginas web), se refiere al lugar que ocupa una
página web, sitio web, sistema, correo
electrónico, archivos etc. en internet o más
específicamente en un servidor que por lo general
hospeda varias aplicaciones o páginas web.
Tipos de web hosting
●   Alojamiento compartido

●   Servidores virtuales (VPS, Virtual Private Server)

●   Servidores dedicados
Virtualización




La virtualización consiste emular el hardware mediante una
aplicación llamada "hypervisor", de tal forma que permita ejecutar
uno o varios sistemas operativos, es decir, desvincular la
ejecución del sistema operativo y aplicaciones del hardware para
encapsularlo dentro de un entorno virtual simulado por software.
Virtualización




La virtualización empaqueta el hardware, sistema operativo,
aplicaciones y datos de las máquinas virtuales en ficheros, que
como tales son trasportables de una máquina física a otra. La
virtualización es aplicable tanto a servidores como a equipos de
escritorio.
Tipos de hipervisores
●       Nativo                          ●   Hosted




    VMware ESXi (gratis)
    ●



    Parallels Virtuozzo
    ●                                        ●   Oracle VirtualBox (gratis)
    Citrix XenServer (gratis)
    ●



    Microsoft Hyper-V Server (gratis)
    ●
Proxmox VE




Proxmox Virtual Environment es una sencilla plataforma de
virtualización, basada en sistemas de código abierto para la
implementación de máquina virtuales utilizando los entornos
OpenVZ y KVM.
KVM
●   Kernel-based Virtual Machine (Máquina virtual basada en el
    núcleo) es una solución para implementar virtualización
    completa con Linux.

●   Está formada por un módulo del núcleo (con el nombre
    kvm.ko) y herramientas en el espacio de usuario. El
    componente KVM para el núcleo está incluido en Linux desde
    la versión 2.6.20.

●   KVM necesita un procesador x86 con soporte Virtualization
    Technology. Puede ejecutar huéspedes GNU/Linux y Windows.
OpenVZ
●   OpenVZ es una tecnología de virtualización en el nivel de
    sistema operativo para Linux.

●   OpenVZ permite que un servidor físico ejecute múltiples
    instancias de sistemas operativos aislados, conocidos como
    VPS o Entornos Virtuales (EV).

●   OpenVZ proporciona mejor rendimiento, escalabilidad,
    densidad, administración de recursos dinámicos, y facilidad de
    administración
El servidor
●   Procesador: Intel Core i5-2400 4x3.1+ GHz
●   Virtualización: Instrucciones VT
●   Turbo Boost Technologie @ 3.40GHz
●   Arquitectura 64 bits
●   Memoria RAM: 16 GB DDR3
●   Disco duro: 2x 2TB - SATA2
●   RAID: SOFT 0/1
●   NIC: FastEthernet
●   IP Failover: 3
RAID1 por software
Desventajas:                         Ventajas:
●   es más lento porque los          ●   siempre tienes copias de tus
    datos se escriben en los dos         datos y si peta uno de los
    discos y se deben comprobar          discos sigues con el otro
                                         hasta que te lo cambien.
●   cuando se sincronizan los
    discos, el proceso de
    sincronización tardara mucho
●   uno de los discos no lo
    puedo utilizar y así pierdo 2T
    de disco duro.
Solución
●   Eliminar el RAID con mdadm

●   Instalar sistema operativo formateando solo
    uno de los discos

●   De mi manera
Crear IP fail-over y DNS
1. Nos conectamos en el manager de OVH
2. Seleccionamos el servidor dedicado
3. Seleccionamos Servicios y en la zona de Gestión IP hacemos
clic en IP FailOver
4.Creamos tres IP fail-over apuntando la IP de nuestro servidor.
5. Primero seleccionamos el dominio principal que vamos a usar.
  5.1. Para este paso necesitamos tener DNS que están
funcionando. En Dominio & DNS -> Servidores DNS yo puse
dns20.ovh.net y ns20.ovh.net.
 5.2.Activamos Redirecciones web. En Dominio & DNS ->
Zona DNS añadimos dos entradas Tipo A.
Crear IP fail-over y DNS




La primera ns1.tudominio.com apuntando a la primera IP fail-over
y ns2.tudominio.com apuntando a la segunda IP fail-over.
DNS con nuestro dominio




En Dominio & DNS -> Glue HOST creamos dos hosts
ns1.tudominio.com apuntando a la primera IP fail-over y
ns2.tudominio.com apuntando a la segunda IP fail-over. A veces
no nos deja y tenemos que esperar para que se propaguen los
DNS. Si no os deja debéis intentarlo cada dos horas.
Reinstalar el sistema operativo

Vamos a Servicios -> Reinstalar / Cambiar de SO
Reinstalar el sistema operativo

A la pregunta ¿Qué sistema operativo desea? elegimos Sistema
operativo Linux
Reinstalar el sistema operativo

 Entre los sistemas operativos Linux, OVH le propone :
distribuciones clásicas o distribuciones listas para el empleo
-> Distribución lista para su uso


OVH le ofrece la posibilidad de elección entre los sistemas
siguientes : -> Sistema operativo VPS Proxmox 1.9


Opciones de sistema : el idioma que desean (yo personalmente
prefiero Ingles)


Y damos a Validar.
Reinstalar el sistema operativo

Como no quiero usar el RAID1 por software en la siguiente
ventana seleccionamos Particionado personalizado y formatear
únicamente el primer disco.
Reinstalar el sistema operativo

Para que no falle el instalador
creamos solo las 2 particiones (las
otras crearemos después):
/    primaria ext3 10GB
/swap primaria     4GB
Webmin
Webmin es una herramienta, que permite configurar y administrar
visualmente los sistemas operativos basados en UNIX.


Con Webmin se pueden hacer muchas cosas como administrar los
servicios, usuarios, archivos… etc. Nosotros lo usaremos para
crear las particiones.
Instalar Webmin
1.Hacemos un updates y upgrade. Esto es algo normal para los usuarios de
Linux
apt-get update && apt-get upgrade
2.Vamos al directorio/tmp y descargamos Webmin
cd /tmp
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.570_all.deb
3.Instalamos Webmin
dpkg -i webmin_1.570_all.deb
4.Nos dará un error por problemas de dependencias que se resuelve con el
siguiente comando:
apt-get install –f
5.Nos pregunta si quiérenos seguir. Le damos “Y” y con esto se instala Webmin
y los paquetes que necesita.
Acceder a Webmin
Abrimos Webmin en nuestro navegador
https://IP.DE.SU.SERVIDOR:10000/
Montando las particiones
Primero montamos lv1 en /tmp:
mount /dev/pve/lv1 /mnt
Movemos todos los archivos de la carpeta /var/lib/vz/ a /mnt :
mv /var/lib/vz/* /mnt
Cuando hemos copiado todo el contenido desmontamos /mnt:
umount /mnt
Ahora lo montamos lv1 en /var/lib/vz/
mount /dev/pve/lv1 /var/lib/vz/
Creamos una carpeta para lo backups
mkdir backups
Montamos lvb en /backups
Las particiones de los discos
                duros
                        sda (SATA dispositivo A)
    Nº         Tipo    Sistema       Ruta de       Tamaño      Priority
                                     Montaje
1        primaria     ext3       /                   10 GB
2        primaria     swap       /swap                4 GB       -1
3        LV           ext3       /var/lib/vz/       1749 GB
Sin particionar                                     100 GB



                        sdb (SATA dispositivo B)
    Nº         Tipo    Sistema       Ruta de       Tamaño      Priority
                                     Montaje
1        primaria     swap       /swap                 4 GB       30
2        LV           ext3       /backups            1859 GB
Descargar plantilla para 64bit
Las plantillas podéis encontrar en
http://download.proxmox.com/appliances/system/


Cambiamos el directorio donde se guardan las plantillas de
Proxmox:
cd /var/lib/vz/template/cache
wget http://download.proxmox.com/appliances/system/debian-6.0-
standard_6.0-4_amd64.tar.gz
Crear maquina virtual
Crear maquina virtual
Cuando termina la creación de VM nos sale este mensaje:
Copias de seguridad
Copias de seguridad
Habilitar IPTABLES
1) Abrimos el archivo /etc/vz/vz.conf
2) Comentar la actual línea de IPTABLES= y añadir lo siguiente:
IPTABLES=”ipt_REJECT ipt_recent ipt_owner ipt_REDIRECT
ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport
iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl
ipt_length ipt_state iptable_nat ip_nat_ftp”


Guardamos los cambios y reiniciamos el servicio vz:
/etc/init.d/vz restart
Virtualmin GPL
Virtualmin GPL es un panel de control de
alojamiento Web:
●   Gratuito y con código abierto
●   Parecido a Plesk y cPanel
●   Fácil de instalar
●   Arquitectura modular
●   Sencillo,
●   Seguro y muy completo
Instalar Virtualmin
1.Cambiamos el directorio temporal.
cd /tmp
2.Descargamos el archivo mas reciente del instalador de
Virtualmin.
wget http://software.virtualmin.com/gpl/scripts/install.sh
3.Ejecutamos el instalador.
sh ./install.sh
Cuando nos pregunta si queremos continuar decimos “y” y
palante…
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Configurar Virtualmin
Virtualmin is now installed but needs to be configured. First we need to install
apache2-suexec-custom. You need this so virtualmin can change apache's
default directory to /home


# apt-get install apache2-suexec-custom
# cd /etc/apache2/suexec
Editamos www-data y cambiamos la linea "/var/www" con "/home"
# apache2ctl restart


Hasta que nos salga .. your system is ready for use by Virtualmin.
Añadir nuestro dominio




En Virtualmin hacemos clic en Create Virtual Server.
Configurar el servidor DNS




En Webmin -> Servers -> BIND DNS Server vemos las zonas de
DNS que existen. Seleccionamos sudominio.com (que hemos
creado recientemente) después Address y vemos que
ns2.sudominio.com apunta a la primera IP fail-over. Hacemos clic
y cambiamos su dirección así que apunte a la segunda IP fail-over
y guardamos los cambios.
Instalar APC
apt-get install php-pear
apt-get install php5-dev apache2-prefork-dev build-essential
pecl install apc
Editamos /etc/php5/conf.d/apc.ini
extension=apc.so
apc.enabled=1
apc.shm_size=30


/etc/init.d/apache2 restart
Protección de servidor




La primera cosa que debemos hacer es cambiar el puerto de
Webmin. Vamos a Webmin -> Webmin Configuration -> Ports
and Addresses y cambiamos Listen en port a un puerto que
elijamos. Opcionalmente podemos deshabilitar que escuche en
UPD.
Instalar un firewall
# cd /tmp
# rm -fv csf.tgz
# wget http://www.configserver.com/free/csf.tgz
Descomprimimos el paquete
# tar -xzf csf.tgz
# cd csf
Ejecutamos el instalador
# sh install.sh
Probamos que funcionará bien:
  perl /etc/csf/csftest.pl
Instalar el modulo de CSF
Real Time Monitoring
Control de acceso SSH




En Webmin -> Servers -> SSH Server hacemos clic en Access
Control y allí podemos dar permiso SSH a un usuario solo para
evitar ataques brute force al usuario root.
Cambiar el puerto de SSH




Webmin -> Servers -> SSH Server y en Networking cambiamos
Listen on port a un numero aleatorio a un puerto que no se usa y
nos fijamos que está habilitado solo SSH v2.
Escanear para viruses
# clamscan -ri /home
Linux Malware Detect
Instalar
# cd /usr/local/src/
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar zxvf maldetect-current.tar.gz
# cd maldetect-1.4.1/
# ./install.sh


Escanear
maldet --scan-all /home?/?/public_html
Utilizar Google Apps con los
              dominios
●   Google Apps es un servicio de Google para usar Gmail entre
    otros servicios, para usarlo con nuestro propio dominio.


●   Más información de google apps edición estándar en
    http://www.google.com/apps/intl/es/group/index.html
Utilizar Google Apps con los
            dominios
${DOM}. IN MX 1 ASPMX.L.GOOGLE.COM.
${DOM}. IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
${DOM}. IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
${DOM}. IN MX 10 ASPMX2.GOOGLEMAIL.COM.
${DOM}. IN MX 10 ASPMX3.GOOGLEMAIL.COM.
${DOM}. IN MX 10 ASPMX4.GOOGLEMAIL.COM.
${DOM}. IN MX 10 ASPMX5.GOOGLEMAIL.COM.
mail.${DOM}. IN CNAME ghs.google.com.
Ismail Ismailov   @ismail2ov

Más contenido relacionado

La actualidad más candente (18)

FTP en centos 7
FTP en centos 7FTP en centos 7
FTP en centos 7
 
Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3
 
Hyper v ha t echnet latam
Hyper v ha t echnet latamHyper v ha t echnet latam
Hyper v ha t echnet latam
 
LTSP SFD Mar del Plata 09
LTSP SFD Mar del Plata 09LTSP SFD Mar del Plata 09
LTSP SFD Mar del Plata 09
 
Configuracion del servidor vsftpd en linux
Configuracion del servidor vsftpd en linuxConfiguracion del servidor vsftpd en linux
Configuracion del servidor vsftpd en linux
 
Configuracion del servidor dns en linux
Configuracion del servidor dns en linuxConfiguracion del servidor dns en linux
Configuracion del servidor dns en linux
 
Linux Terminal Server
Linux Terminal ServerLinux Terminal Server
Linux Terminal Server
 
Sitema operativolinux
Sitema operativolinuxSitema operativolinux
Sitema operativolinux
 
Centos 7 configuracion de los parametros de red
Centos 7 configuracion de los parametros de redCentos 7 configuracion de los parametros de red
Centos 7 configuracion de los parametros de red
 
Procedimiento Instalacion Ltsp
Procedimiento Instalacion LtspProcedimiento Instalacion Ltsp
Procedimiento Instalacion Ltsp
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulf
 
Cluster beowulf javier condori flores
Cluster beowulf   javier condori floresCluster beowulf   javier condori flores
Cluster beowulf javier condori flores
 
Zimbra
ZimbraZimbra
Zimbra
 
Linux
LinuxLinux
Linux
 
1. system ctl
1. system ctl1. system ctl
1. system ctl
 
Uso de yum
Uso de yumUso de yum
Uso de yum
 
Tutorial Instalacion Openvpn
Tutorial Instalacion OpenvpnTutorial Instalacion Openvpn
Tutorial Instalacion Openvpn
 
Hardware para servidores 2017
Hardware para servidores 2017Hardware para servidores 2017
Hardware para servidores 2017
 

Similar a El servidor perfecto

Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticassuserbd237f
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hatjcausil1
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
presentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfpresentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfJohnathanRodriguez12
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Irontec
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónSocialBiblio
 
Exposicion plataforma de monitoreo zabbix
Exposicion plataforma de monitoreo   zabbixExposicion plataforma de monitoreo   zabbix
Exposicion plataforma de monitoreo zabbixFlechaVeloz1
 

Similar a El servidor perfecto (20)

Despliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informáticaDespliegue de Imágenes en aulas de informática
Despliegue de Imágenes en aulas de informática
 
Virtualización con vmware
Virtualización con vmwareVirtualización con vmware
Virtualización con vmware
 
Elastix slide book-ect(1)
Elastix  slide book-ect(1)Elastix  slide book-ect(1)
Elastix slide book-ect(1)
 
Elastix slide book-ece
Elastix  slide book-eceElastix  slide book-ece
Elastix slide book-ece
 
Elastix slide book-ect
Elastix  slide book-ectElastix  slide book-ect
Elastix slide book-ect
 
Docker 2014 v2
Docker 2014 v2Docker 2014 v2
Docker 2014 v2
 
SERVIDOR WEB PARA LINUX
SERVIDOR WEB PARA LINUXSERVIDOR WEB PARA LINUX
SERVIDOR WEB PARA LINUX
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hat
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
presentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfpresentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdf
 
Techdays 2010 Hyper-V R2 SP1
Techdays 2010 Hyper-V R2 SP1Techdays 2010 Hyper-V R2 SP1
Techdays 2010 Hyper-V R2 SP1
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Instalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuraciónInstalación KOHA: desarrollo, requerimientos y configuración
Instalación KOHA: desarrollo, requerimientos y configuración
 
Virtualización con Xen
Virtualización con XenVirtualización con Xen
Virtualización con Xen
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
XEN - Taller presentación Xen
XEN - Taller presentación XenXEN - Taller presentación Xen
XEN - Taller presentación Xen
 
Consolidacion
ConsolidacionConsolidacion
Consolidacion
 
Exposicion plataforma de monitoreo zabbix
Exposicion plataforma de monitoreo   zabbixExposicion plataforma de monitoreo   zabbix
Exposicion plataforma de monitoreo zabbix
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 

Más de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Más de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

El servidor perfecto

  • 1. El servidor perfecto Crea tu propio servidor de hosting Ismail Ismailov @ismail2ov
  • 2. ¿Qué es web hosting? Web hosting (alojamiento web o alojamiento de páginas web), se refiere al lugar que ocupa una página web, sitio web, sistema, correo electrónico, archivos etc. en internet o más específicamente en un servidor que por lo general hospeda varias aplicaciones o páginas web.
  • 3. Tipos de web hosting ● Alojamiento compartido ● Servidores virtuales (VPS, Virtual Private Server) ● Servidores dedicados
  • 4. Virtualización La virtualización consiste emular el hardware mediante una aplicación llamada "hypervisor", de tal forma que permita ejecutar uno o varios sistemas operativos, es decir, desvincular la ejecución del sistema operativo y aplicaciones del hardware para encapsularlo dentro de un entorno virtual simulado por software.
  • 5. Virtualización La virtualización empaqueta el hardware, sistema operativo, aplicaciones y datos de las máquinas virtuales en ficheros, que como tales son trasportables de una máquina física a otra. La virtualización es aplicable tanto a servidores como a equipos de escritorio.
  • 6. Tipos de hipervisores ● Nativo ● Hosted VMware ESXi (gratis) ● Parallels Virtuozzo ● ● Oracle VirtualBox (gratis) Citrix XenServer (gratis) ● Microsoft Hyper-V Server (gratis) ●
  • 7. Proxmox VE Proxmox Virtual Environment es una sencilla plataforma de virtualización, basada en sistemas de código abierto para la implementación de máquina virtuales utilizando los entornos OpenVZ y KVM.
  • 8. KVM ● Kernel-based Virtual Machine (Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. ● Está formada por un módulo del núcleo (con el nombre kvm.ko) y herramientas en el espacio de usuario. El componente KVM para el núcleo está incluido en Linux desde la versión 2.6.20. ● KVM necesita un procesador x86 con soporte Virtualization Technology. Puede ejecutar huéspedes GNU/Linux y Windows.
  • 9. OpenVZ ● OpenVZ es una tecnología de virtualización en el nivel de sistema operativo para Linux. ● OpenVZ permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como VPS o Entornos Virtuales (EV). ● OpenVZ proporciona mejor rendimiento, escalabilidad, densidad, administración de recursos dinámicos, y facilidad de administración
  • 10. El servidor ● Procesador: Intel Core i5-2400 4x3.1+ GHz ● Virtualización: Instrucciones VT ● Turbo Boost Technologie @ 3.40GHz ● Arquitectura 64 bits ● Memoria RAM: 16 GB DDR3 ● Disco duro: 2x 2TB - SATA2 ● RAID: SOFT 0/1 ● NIC: FastEthernet ● IP Failover: 3
  • 11. RAID1 por software Desventajas: Ventajas: ● es más lento porque los ● siempre tienes copias de tus datos se escriben en los dos datos y si peta uno de los discos y se deben comprobar discos sigues con el otro hasta que te lo cambien. ● cuando se sincronizan los discos, el proceso de sincronización tardara mucho ● uno de los discos no lo puedo utilizar y así pierdo 2T de disco duro.
  • 12. Solución ● Eliminar el RAID con mdadm ● Instalar sistema operativo formateando solo uno de los discos ● De mi manera
  • 13. Crear IP fail-over y DNS 1. Nos conectamos en el manager de OVH 2. Seleccionamos el servidor dedicado 3. Seleccionamos Servicios y en la zona de Gestión IP hacemos clic en IP FailOver 4.Creamos tres IP fail-over apuntando la IP de nuestro servidor. 5. Primero seleccionamos el dominio principal que vamos a usar. 5.1. Para este paso necesitamos tener DNS que están funcionando. En Dominio & DNS -> Servidores DNS yo puse dns20.ovh.net y ns20.ovh.net. 5.2.Activamos Redirecciones web. En Dominio & DNS -> Zona DNS añadimos dos entradas Tipo A.
  • 14. Crear IP fail-over y DNS La primera ns1.tudominio.com apuntando a la primera IP fail-over y ns2.tudominio.com apuntando a la segunda IP fail-over.
  • 15. DNS con nuestro dominio En Dominio & DNS -> Glue HOST creamos dos hosts ns1.tudominio.com apuntando a la primera IP fail-over y ns2.tudominio.com apuntando a la segunda IP fail-over. A veces no nos deja y tenemos que esperar para que se propaguen los DNS. Si no os deja debéis intentarlo cada dos horas.
  • 16. Reinstalar el sistema operativo Vamos a Servicios -> Reinstalar / Cambiar de SO
  • 17. Reinstalar el sistema operativo A la pregunta ¿Qué sistema operativo desea? elegimos Sistema operativo Linux
  • 18. Reinstalar el sistema operativo Entre los sistemas operativos Linux, OVH le propone : distribuciones clásicas o distribuciones listas para el empleo -> Distribución lista para su uso OVH le ofrece la posibilidad de elección entre los sistemas siguientes : -> Sistema operativo VPS Proxmox 1.9 Opciones de sistema : el idioma que desean (yo personalmente prefiero Ingles) Y damos a Validar.
  • 19. Reinstalar el sistema operativo Como no quiero usar el RAID1 por software en la siguiente ventana seleccionamos Particionado personalizado y formatear únicamente el primer disco.
  • 20. Reinstalar el sistema operativo Para que no falle el instalador creamos solo las 2 particiones (las otras crearemos después): / primaria ext3 10GB /swap primaria 4GB
  • 21. Webmin Webmin es una herramienta, que permite configurar y administrar visualmente los sistemas operativos basados en UNIX. Con Webmin se pueden hacer muchas cosas como administrar los servicios, usuarios, archivos… etc. Nosotros lo usaremos para crear las particiones.
  • 22. Instalar Webmin 1.Hacemos un updates y upgrade. Esto es algo normal para los usuarios de Linux apt-get update && apt-get upgrade 2.Vamos al directorio/tmp y descargamos Webmin cd /tmp wget http://prdownloads.sourceforge.net/webadmin/webmin_1.570_all.deb 3.Instalamos Webmin dpkg -i webmin_1.570_all.deb 4.Nos dará un error por problemas de dependencias que se resuelve con el siguiente comando: apt-get install –f 5.Nos pregunta si quiérenos seguir. Le damos “Y” y con esto se instala Webmin y los paquetes que necesita.
  • 23. Acceder a Webmin Abrimos Webmin en nuestro navegador https://IP.DE.SU.SERVIDOR:10000/
  • 24. Montando las particiones Primero montamos lv1 en /tmp: mount /dev/pve/lv1 /mnt Movemos todos los archivos de la carpeta /var/lib/vz/ a /mnt : mv /var/lib/vz/* /mnt Cuando hemos copiado todo el contenido desmontamos /mnt: umount /mnt Ahora lo montamos lv1 en /var/lib/vz/ mount /dev/pve/lv1 /var/lib/vz/ Creamos una carpeta para lo backups mkdir backups Montamos lvb en /backups
  • 25. Las particiones de los discos duros sda (SATA dispositivo A) Nº Tipo Sistema Ruta de Tamaño Priority Montaje 1 primaria ext3 / 10 GB 2 primaria swap /swap 4 GB -1 3 LV ext3 /var/lib/vz/ 1749 GB Sin particionar 100 GB sdb (SATA dispositivo B) Nº Tipo Sistema Ruta de Tamaño Priority Montaje 1 primaria swap /swap 4 GB 30 2 LV ext3 /backups 1859 GB
  • 26. Descargar plantilla para 64bit Las plantillas podéis encontrar en http://download.proxmox.com/appliances/system/ Cambiamos el directorio donde se guardan las plantillas de Proxmox: cd /var/lib/vz/template/cache wget http://download.proxmox.com/appliances/system/debian-6.0- standard_6.0-4_amd64.tar.gz
  • 28. Crear maquina virtual Cuando termina la creación de VM nos sale este mensaje:
  • 31. Habilitar IPTABLES 1) Abrimos el archivo /etc/vz/vz.conf 2) Comentar la actual línea de IPTABLES= y añadir lo siguiente: IPTABLES=”ipt_REJECT ipt_recent ipt_owner ipt_REDIRECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp” Guardamos los cambios y reiniciamos el servicio vz: /etc/init.d/vz restart
  • 32. Virtualmin GPL Virtualmin GPL es un panel de control de alojamiento Web: ● Gratuito y con código abierto ● Parecido a Plesk y cPanel ● Fácil de instalar ● Arquitectura modular ● Sencillo, ● Seguro y muy completo
  • 33. Instalar Virtualmin 1.Cambiamos el directorio temporal. cd /tmp 2.Descargamos el archivo mas reciente del instalador de Virtualmin. wget http://software.virtualmin.com/gpl/scripts/install.sh 3.Ejecutamos el instalador. sh ./install.sh Cuando nos pregunta si queremos continuar decimos “y” y palante…
  • 44. Configurar Virtualmin Virtualmin is now installed but needs to be configured. First we need to install apache2-suexec-custom. You need this so virtualmin can change apache's default directory to /home # apt-get install apache2-suexec-custom # cd /etc/apache2/suexec Editamos www-data y cambiamos la linea "/var/www" con "/home" # apache2ctl restart Hasta que nos salga .. your system is ready for use by Virtualmin.
  • 45. Añadir nuestro dominio En Virtualmin hacemos clic en Create Virtual Server.
  • 46. Configurar el servidor DNS En Webmin -> Servers -> BIND DNS Server vemos las zonas de DNS que existen. Seleccionamos sudominio.com (que hemos creado recientemente) después Address y vemos que ns2.sudominio.com apunta a la primera IP fail-over. Hacemos clic y cambiamos su dirección así que apunte a la segunda IP fail-over y guardamos los cambios.
  • 47. Instalar APC apt-get install php-pear apt-get install php5-dev apache2-prefork-dev build-essential pecl install apc Editamos /etc/php5/conf.d/apc.ini extension=apc.so apc.enabled=1 apc.shm_size=30 /etc/init.d/apache2 restart
  • 48. Protección de servidor La primera cosa que debemos hacer es cambiar el puerto de Webmin. Vamos a Webmin -> Webmin Configuration -> Ports and Addresses y cambiamos Listen en port a un puerto que elijamos. Opcionalmente podemos deshabilitar que escuche en UPD.
  • 49. Instalar un firewall # cd /tmp # rm -fv csf.tgz # wget http://www.configserver.com/free/csf.tgz Descomprimimos el paquete # tar -xzf csf.tgz # cd csf Ejecutamos el instalador # sh install.sh Probamos que funcionará bien: perl /etc/csf/csftest.pl
  • 52. Control de acceso SSH En Webmin -> Servers -> SSH Server hacemos clic en Access Control y allí podemos dar permiso SSH a un usuario solo para evitar ataques brute force al usuario root.
  • 53. Cambiar el puerto de SSH Webmin -> Servers -> SSH Server y en Networking cambiamos Listen on port a un numero aleatorio a un puerto que no se usa y nos fijamos que está habilitado solo SSH v2.
  • 54. Escanear para viruses # clamscan -ri /home
  • 55. Linux Malware Detect Instalar # cd /usr/local/src/ # wget http://www.rfxn.com/downloads/maldetect-current.tar.gz # tar zxvf maldetect-current.tar.gz # cd maldetect-1.4.1/ # ./install.sh Escanear maldet --scan-all /home?/?/public_html
  • 56. Utilizar Google Apps con los dominios ● Google Apps es un servicio de Google para usar Gmail entre otros servicios, para usarlo con nuestro propio dominio. ● Más información de google apps edición estándar en http://www.google.com/apps/intl/es/group/index.html
  • 57. Utilizar Google Apps con los dominios ${DOM}. IN MX 1 ASPMX.L.GOOGLE.COM. ${DOM}. IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. ${DOM}. IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. ${DOM}. IN MX 10 ASPMX2.GOOGLEMAIL.COM. ${DOM}. IN MX 10 ASPMX3.GOOGLEMAIL.COM. ${DOM}. IN MX 10 ASPMX4.GOOGLEMAIL.COM. ${DOM}. IN MX 10 ASPMX5.GOOGLEMAIL.COM. mail.${DOM}. IN CNAME ghs.google.com.
  • 58. Ismail Ismailov @ismail2ov