Diferencia entre revisiones de «Implementación Servidor de Base de Datos»

De Base de Conocimiento Técnico
Saltar a: navegación, buscar
(Página creada con « ------ Install LAMP ------- yum -y update sudo yum install httpd sudo service httpd start # vi /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB bas...»)
 
 
(No se muestran 9 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
  ------
+
==Hardware==
  Install LAMP
+
Se contaba con 2 servidores HP Proliant ML150 G5, los cuales se encontraban en estado regular.  Si bien los equipos prendían, estos presentaban severa corrosión en sus chasis.
  -------
 
  yum -y update
 
 
 
  sudo yum install httpd
 
 
 
  sudo service httpd start
 
  
# vi /etc/yum.repos.d/MariaDB.repo
+
Decidí tomar el que se encontraba en mejor estado y utilizar los componentes de ambos para obtener un servidor con las mejores características posibles.
[mariadb]
 
name = MariaDB
 
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
 
gpgcheck=1
 
  
 +
Restauré el chasis, eliminando la mayor cantidad de óxido posible de los componente metálicos y se aplico pintura nueva para controlar la corrosión.
 +
 +
El sistema final cuenta con dos procesadores Intel Xeon E5405 y 4 módulos de memoria de 2GB, totalizando 8GB.
 +
<gallery mode="packed-hover" heights=195px>
 +
Image:ScreenBIOS.jpg|caption|BIOS: Notar cantidad de procesadores y RAM
 +
Image:MoBo.jpg|caption|Motherboard
 +
</gallery>
 +
Para almacenamiento se instalaron 2 discos SATA de 750GB y 2 discos SATA de 2TB, los mismos fueron configurados en RAID 1 para incorporar un nivel de tolerancia a fallos.
 +
 +
==Entorno LAMP==
 +
===Sistema Operativo - CentOS===
 +
Traté de instalar CentOS 7 pero existe problema de compatibilidad con el hardware por la ausencia de controladores para el almacenamiento, lo que impedía el reconocimiento de los discos instalados.  Por esto se procedió a instalar CentOS 6.9 (minimal) que incluye los controladores y tiene soporte hasta 2020.
 +
 +
Sistema de archivos: En el disco de 750GB se reservó una pequeña partición para el arranque y el resto para la raíz.  El disco de 2TB fue asignado a /var.
 +
[root@dbs mediawiki]# df -h
 +
Filesystem            Size  Used Avail Use% Mounted on
 +
/dev/mapper/ddf1_OSp3
 +
                      680G  2.3G  643G  1% /
 +
tmpfs                3.9G    0  3.9G  0% /dev/shm
 +
/dev/mapper/ddf1_OSp1
 +
                      477M  52M  400M  12% /boot
 +
/dev/mapper/ddf1_Datap1
 +
                      1.8T  602M  1.7T  1% /var
 +
 +
 +
Configurar una IP estática para el servidor
 +
[root@dbs ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
 +
DEVICE=eth0
 +
HWADDR=00:22:64:42:A8:E9
 +
TYPE=Ethernet
 +
UUID=996ecfe7-1886-47ad-b13c-adfb678cfc29
 +
ONBOOT=yes
 +
NM_CONTROLLED=no
 +
BOOTPROTO=static
 +
IPADDR=192.168.1.24
 +
NETMASK=255.255.255.0
 +
Actualizar los repositorios y software
 +
[root@dbs ~]# yum -y update
 +
Sincronizar el reloj del sistema
 +
[root@dbs ~]# yum install ntp ntpdate ntp-doc
 +
[root@dbs ~]# ntpdate -u ec.pool.ntp.org
 +
Deshabilitar SELinux.
 +
 +
===Servidor HTTP - Apache 2.2===
 +
El servidor web más popular, y su instalación es bastante sencilla.
 +
# yum -y update
 +
# yum install httpd
 +
# service httpd start
 +
# chkconfig httpd on
 +
Es necesario permitir el acceso al puerto 80 en el firewall local.
 +
# iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
 +
# service iptables save
 +
===Motor de Base de Datos - MariaDB===
 +
Para poder instalar MariaDB es necesita declarar el repositorio, para esto creamos un nuevo archivo:
 +
# vi /etc/yum.repos.d/MariaDB.repo
 +
Con el siguiente contenido
 +
[mariadb]
 +
name = MariaDB
 +
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
 +
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
 +
gpgcheck=1
 +
Luego es posible instalar el software con yum.
 
  # yum install MariaDB-server MariaDB-client -y  
 
  # yum install MariaDB-server MariaDB-client -y  
 
+
 
+
#service mysql start
# service mysql start
+
# chkconfig --level 35 mysql on
# chkconfig --level 35 mysql on
+
# service mysql status
# service mysql status
+
Una vez el servicio esté corriendo, se debe ejecutar el script de instalación. 
 
+
# mysql_secure_installation
  # mysql_secure_installation
+
Permitir acceso al puerto 3306 en el firewall local, para conexiones remotas a la base.
 
+
# iptables -I INPUT 6 -i eth0 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
  muyuyoFCD.753
+
# service iptables save  
 
+
===Lenguaje Server-Side Script - PHP===
  sudo yum install php php-mysql php-gd
+
En el repositorio oficial de CentOS 6.9, la versión más reciente disponible de PHP es 5.3; por lo que es necesario agregar los repositorios EPEL y Remi para poder instalar versiones actuales.
 
+
# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
  chkconfig httpd on
+
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
 
+
# rpm -Uvh epel-release-6-8.noarch.rpm remi-release-6.rpm 
  iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
+
# yum install yum-utils
  iptables -I INPUT 6 -i eth0 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
+
# yum-config-manager --enable remi-php56    [Selección de versión]
  service iptables save  
+
# yum install php php-mysql php-gd
 
+
===Manejo de Base de Datos - PHPMyAdmin===
  rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+
El instalador de este popular sistema de gestión de base de datos mySQL o compatibles se encuentra en el repositorio EPEL, que ya lo hemos instalado.
  yum -y update
 
 
   yum -y install phpmyadmin
 
   yum -y install phpmyadmin
 
+
Modificamos el archivo de configuración:
  Agregar accesos a la red
+
vi /etc/httpd/conf.d/phpMyAdmin.conf
  vi /etc/httpd/conf.d/phpMyAdmin.conf
+
Agregar accesos a las redes locales de la FCD (192.168.100.0 y 192.168.200.0).
 +
Cambiar el alias de acceso a "dbadm" en lugar del canónico myPhpAdmin.
 +
 
 +
Reiniciar Apache para validar los cambios
 
   service httpd restart
 
   service httpd restart
 
+
----
 +
===Adicionales===
 +
====Protección contra intrusos - Fail2ban====
 
   yum install fail2ban
 
   yum install fail2ban
 
   cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
 
   cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
 
   vi /etc/fail2ban/jail.local
 
   vi /etc/fail2ban/jail.local
 
+
====Gestión del Servidor - Webmin====
  interface GigabitEthernet1/0/2
 
description Switch Uplink Port
 
switchport trunk encapsulation dot1q
 
switchport trunk allowed vlan 100,200
 
 
interface GigabitEthernet1/0/24
 
macro apply access_port $allowed_vlan 101
 
end
 
 
 
 
  yum install centos-release-scl
 
  yum install centos-release-scl
 
  yum install python27
 
  yum install python27
 
 
   
 
   
 
  [Webmin]
 
  [Webmin]
name=Webmin Distribution Neutral
+
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
+
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
+
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
+
enabled=1
wget http://www.webmin.com/jcameron-key.asc
 
rpm --import jcameron-key.asc
 
 
 
You will now be able to install with the command :
 
yum install webmin
 
 
 
iptables -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
 
 
   
 
   
  yum install ntp ntpdate ntp-doc
+
Instalar la llave
  chkconfig ntpd on
+
  # wget http://www.webmin.com/jcameron-key.asc
 
+
# rpm --import jcameron-key.asc
ntpdate -u ec.pool.ntp.org
+
Ahora podemos instalarlo con yum.
 
+
# yum install webmin
 
+
Permitir acceso en el puerto correspondiente en el firewall local
CREATE DATABASE kmwiki;
+
# iptables -I INPUT 7 -i eth0 -p tcp --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT
GRANT ALL PRIVILEGES ON kmwiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'k159265M';
+
====Wiki====
 +
Descargar paquete
 +
  # wget https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.1.tar.gz
 +
# tar xvzf mediawiki-*.tar.gz
 +
# mv mediawiki-1.29.1 /var/www/mediawiki
 +
# chown -R root:root /var/www/mediawiki
 +
Crear base de datos y usuario en mariaDB
 +
CREATE DATABASE kmwiki;
 +
GRANT ALL PRIVILEGES ON kmwiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'k159265M';
  
# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
+
[[Category:Servidores]]
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
 
# rpm -Uvh epel-release-6-8.noarch.rpm remi-release-6.rpm 
 
  yum install yum-utils
 
yum-config-manager --enable remi-php56    [Intall PHP 5.6]
 

Revisión actual del 23:51 25 oct 2017

Hardware[editar]

Se contaba con 2 servidores HP Proliant ML150 G5, los cuales se encontraban en estado regular. Si bien los equipos prendían, estos presentaban severa corrosión en sus chasis.

Decidí tomar el que se encontraba en mejor estado y utilizar los componentes de ambos para obtener un servidor con las mejores características posibles.

Restauré el chasis, eliminando la mayor cantidad de óxido posible de los componente metálicos y se aplico pintura nueva para controlar la corrosión.

El sistema final cuenta con dos procesadores Intel Xeon E5405 y 4 módulos de memoria de 2GB, totalizando 8GB.

Para almacenamiento se instalaron 2 discos SATA de 750GB y 2 discos SATA de 2TB, los mismos fueron configurados en RAID 1 para incorporar un nivel de tolerancia a fallos.

Entorno LAMP[editar]

Sistema Operativo - CentOS[editar]

Traté de instalar CentOS 7 pero existe problema de compatibilidad con el hardware por la ausencia de controladores para el almacenamiento, lo que impedía el reconocimiento de los discos instalados. Por esto se procedió a instalar CentOS 6.9 (minimal) que incluye los controladores y tiene soporte hasta 2020.

Sistema de archivos: En el disco de 750GB se reservó una pequeña partición para el arranque y el resto para la raíz. El disco de 2TB fue asignado a /var.

[root@dbs mediawiki]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/ddf1_OSp3
                      680G  2.3G  643G   1% /
tmpfs                 3.9G     0  3.9G   0% /dev/shm
/dev/mapper/ddf1_OSp1
                      477M   52M  400M  12% /boot
/dev/mapper/ddf1_Datap1
                      1.8T  602M  1.7T   1% /var


Configurar una IP estática para el servidor

[root@dbs ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:22:64:42:A8:E9
TYPE=Ethernet
UUID=996ecfe7-1886-47ad-b13c-adfb678cfc29
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.24
NETMASK=255.255.255.0

Actualizar los repositorios y software

[root@dbs ~]# yum -y update

Sincronizar el reloj del sistema

[root@dbs ~]# yum install ntp ntpdate ntp-doc
[root@dbs ~]# ntpdate -u ec.pool.ntp.org

Deshabilitar SELinux.

Servidor HTTP - Apache 2.2[editar]

El servidor web más popular, y su instalación es bastante sencilla.

# yum -y update
# yum install httpd 
# service httpd start
# chkconfig httpd on

Es necesario permitir el acceso al puerto 80 en el firewall local.

# iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# service iptables save 

Motor de Base de Datos - MariaDB[editar]

Para poder instalar MariaDB es necesita declarar el repositorio, para esto creamos un nuevo archivo:

# vi /etc/yum.repos.d/MariaDB.repo

Con el siguiente contenido

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Luego es posible instalar el software con yum.

# yum install MariaDB-server MariaDB-client -y 

#service mysql start
# chkconfig --level 35 mysql on
# service mysql status

Una vez el servicio esté corriendo, se debe ejecutar el script de instalación.

# mysql_secure_installation  

Permitir acceso al puerto 3306 en el firewall local, para conexiones remotas a la base.

# iptables -I INPUT 6 -i eth0 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
# service iptables save 

Lenguaje Server-Side Script - PHP[editar]

En el repositorio oficial de CentOS 6.9, la versión más reciente disponible de PHP es 5.3; por lo que es necesario agregar los repositorios EPEL y Remi para poder instalar versiones actuales.

# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh epel-release-6-8.noarch.rpm remi-release-6.rpm  
# yum install yum-utils
# yum-config-manager --enable remi-php56    [Selección de versión]
# yum install php php-mysql php-gd

Manejo de Base de Datos - PHPMyAdmin[editar]

El instalador de este popular sistema de gestión de base de datos mySQL o compatibles se encuentra en el repositorio EPEL, que ya lo hemos instalado.

 yum -y install phpmyadmin

Modificamos el archivo de configuración:

vi /etc/httpd/conf.d/phpMyAdmin.conf

Agregar accesos a las redes locales de la FCD (192.168.100.0 y 192.168.200.0). Cambiar el alias de acceso a "dbadm" en lugar del canónico myPhpAdmin.

Reiniciar Apache para validar los cambios

 service httpd restart

Adicionales[editar]

Protección contra intrusos - Fail2ban[editar]

 yum install fail2ban
 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
 vi /etc/fail2ban/jail.local

Gestión del Servidor - Webmin[editar]

yum install centos-release-scl
yum install python27

[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1

Instalar la llave

# wget http://www.webmin.com/jcameron-key.asc
# rpm --import jcameron-key.asc

Ahora podemos instalarlo con yum.

# yum install webmin

Permitir acceso en el puerto correspondiente en el firewall local

# iptables -I INPUT 7 -i eth0 -p tcp --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT

Wiki[editar]

Descargar paquete

# wget https://releases.wikimedia.org/mediawiki/1.29/mediawiki-1.29.1.tar.gz
# tar xvzf mediawiki-*.tar.gz
# mv mediawiki-1.29.1 /var/www/mediawiki
# chown -R root:root /var/www/mediawiki

Crear base de datos y usuario en mariaDB

CREATE DATABASE kmwiki;
GRANT ALL PRIVILEGES ON kmwiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'k159265M';