Diferencia entre revisiones de «Implementación Servidor de Base de Datos»
(No se muestran 7 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
==Hardware== | ==Hardware== | ||
+ | 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. | ||
+ | <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. | 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== | ==Entorno LAMP== | ||
===Sistema Operativo - CentOS=== | ===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 que incluye los controladores y tiene soporte hasta 2020. | + | 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 | Configurar una IP estática para el servidor | ||
Línea 21: | Línea 45: | ||
[root@dbs ~]# yum install ntp ntpdate ntp-doc | [root@dbs ~]# yum install ntp ntpdate ntp-doc | ||
[root@dbs ~]# ntpdate -u ec.pool.ntp.org | [root@dbs ~]# ntpdate -u ec.pool.ntp.org | ||
+ | Deshabilitar SELinux. | ||
===Servidor HTTP - Apache 2.2=== | ===Servidor HTTP - Apache 2.2=== | ||
− | + | El servidor web más popular, y su instalación es bastante sencilla. | |
− | #yum -y update | + | # yum -y update |
− | #yum install httpd | + | # yum install httpd |
− | #service httpd start | + | # service httpd start |
− | #chkconfig httpd on | + | # chkconfig httpd on |
Es necesario permitir el acceso al puerto 80 en el firewall local. | 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=== | ===Motor de Base de Datos - MariaDB=== | ||
Para poder instalar MariaDB es necesita declarar el repositorio, para esto creamos un nuevo archivo: | Para poder instalar MariaDB es necesita declarar el repositorio, para esto creamos un nuevo archivo: | ||
Línea 42: | Línea 66: | ||
gpgcheck=1 | gpgcheck=1 | ||
Luego es posible instalar el software con yum. | 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. | 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=== | ===Lenguaje Server-Side Script - PHP=== | ||
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. | 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. | ||
Línea 64: | Línea 84: | ||
# yum-config-manager --enable remi-php56 [Selección de versión] | # yum-config-manager --enable remi-php56 [Selección de versión] | ||
# yum install php php-mysql php-gd | # yum install php php-mysql php-gd | ||
− | |||
− | |||
− | |||
===Manejo de Base de Datos - PHPMyAdmin=== | ===Manejo de Base de Datos - PHPMyAdmin=== | ||
− | + | 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 | yum -y install phpmyadmin | ||
− | |||
Modificamos el archivo de configuración: | Modificamos el archivo de configuración: | ||
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) | + | 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. | |
− | Cambiar el alias de acceso | ||
Reiniciar Apache para validar los cambios | Reiniciar Apache para validar los cambios | ||
service httpd restart | service httpd restart | ||
− | + | ---- | |
===Adicionales=== | ===Adicionales=== | ||
====Protección contra intrusos - Fail2ban==== | ====Protección contra intrusos - Fail2ban==== | ||
Línea 99: | Línea 111: | ||
Instalar la llave | Instalar la llave | ||
− | wget http://www.webmin.com/jcameron-key.asc | + | # wget http://www.webmin.com/jcameron-key.asc |
− | rpm --import jcameron-key.asc | + | # rpm --import jcameron-key.asc |
− | |||
Ahora podemos instalarlo con yum. | Ahora podemos instalarlo con yum. | ||
− | yum install webmin | + | # yum install webmin |
Permitir acceso en el puerto correspondiente en el firewall local | 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 | + | # iptables -I INPUT 7 -i eth0 -p tcp --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT |
− | |||
− | |||
− | |||
====Wiki==== | ====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; | CREATE DATABASE kmwiki; | ||
GRANT ALL PRIVILEGES ON kmwiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'k159265M'; | GRANT ALL PRIVILEGES ON kmwiki.* TO 'wiki'@'localhost' IDENTIFIED BY 'k159265M'; | ||
+ | |||
+ | [[Category:Servidores]] |
Revisión actual del 23:51 25 oct 2017
Sumario
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';