Instalação LILDBI-Web 1.7b sobre CentOS 6.3

Tutorial para la instalación de LILDBI-Web 1.7b

El tutorial es para una instalación sobre un Centos minimal. Este tutorial fue hecho mediante la instalación de LILDBI-Web 1.7b sobre CentOS 6.3.

Índice:

1 → requerimientos. 2 → Proceso de instalación. 3 → Descarga y configuración de la página web. 4 → Configuración de SELinux para LILDBI-Web. 5 → Configuración de Backup vía rsync. 6 → Referencias. 7 → Contactos. 8 → Ayuda sobre SELinux.

1) Requerimientos:

1.a) Requerimientos básicos:

1. Apache 2.2 2. php 5.3 3. gcc 4. make 5. glibc 6. libxml2-devel.i686 7. libxml2-devel.i686 8. libpng-devel.i686 9. libxslt-devel.i686 10. php-fpm.i686

1.b) Requerimientos para seguridad:

1. mysecureshell a. Se necesita el repositorio /etc/yum.repos.d/mysecureshell.repo con el contenido:

[mysecureshell] name=MySecureShell baseurl=http://mysecureshell.free.fr/repository/index.php/centos/$basearch/ enabled=1 gpgcheck=0

2. policycoreutils-python

1.c) Requerimientos para backup:

1. cronie.i686 2. ntpdate 3. xinetd 4. rsync 5. ntpd 6. ntp.i686

2) Proceso de instalación:

2.a) Instalar Apache y php:

yum install httpd php

2.b) Configurar /etc/httpd/conf/httpd.conf:

NameVirtualHost <IP-servidor>:80 AddDefaultCharset ISO-8859-1 AddType application/x-httpd-php .php

  1. LoadModule php5_module modules/libphp5.so (Lo carga por default)

Include conf.d/*.conf

2.c) Configurar /etc/httpd/conf.d/0_default.conf:

<VirtualHost <IP-servidor>:80>

   	ServerAdmin webmaster@bblanca.com.ar
   	DocumentRoot /var/www/html/default/
   	ServerName <nombre-servidor>
   	ErrorLog /var/log/httpd/default-error.log
   	TransferLog /var/log/httpd/default-access.log

</VirtualHost>

2.d) Configurar /etc/httpd/conf.d/1_lilacs.conf:

<VirtualHost <IP-servidor>:80> DocumentRoot “/var/www/html/lilacs/htdocs” Options Indexes FollowSymLinks MultiViews ServerName <nombre-pagina-web> DirectoryIndex index.htm index.php homepage.htm ScriptAlias /cgi-bin/ “/var/www/html/lilacs/cgi-bin/” ErrorLog /var/log/httpd/lilacs-error.log TransferLog /var/log/httpd/lilacs-access.log <Directory “/var/www/html/lilacs/cgi-bin”>

   		AllowOverride None
   		Options FollowSymLinks
   		Order allow,deny
   		Allow from all

</Directory> <Directory “/var/www/html/lilacs/htdocs”>

   		AllowOverride None
   		Options All
   		Order deny,allow
   		Allow from all

</Directory> </VirtualHost>

2.e) Configurar /etc/php.ini:

register_globals = Off short_open_tag = On

3) Descarga y Configuración de la página web:

3.a) Descarga:

http://trac.reddes.bvsalud.org/projects/lildbi/browser/downloads/Linux/LILDBI-WEB1.7b.tar.gz

3.b) Ubicación de archivos:

3.b.1) Descomprimir LILDBI-WEB1.7b.tar.gz en /tmp

3.b.2) Crear la carpeta /var/www/html/lilacs

3.b.3) Copiar el contenido de /tmp/bvs a /var/www/html/lilacs

3.b.4) Crear el archivo /var/www/html/lilacs/htdocs/index.htm con el siguiente contenido:

<!DOCTYPE html> <html>

   	<head>
           	<meta HTTP-EQUIV="REFRESH" content="0; url=./lildbi/index_es.htm">
   	</head>
   	<body>
   	</body>

</html>

3.b.5) Crear el archivo /var/www/html/lilacs/.htaccess con el siguiente contenido:

short_open_tag = On php_flag display_errors Off

3.b.6) Crear el archivo /var/www/html/lilacs/bases/lildbi/.htaccess con el siguiente contenido:

deny from all

3.c) Creación del usuario lilacs con MySecureshell

Para crear el usuario:

adduser -d /var/www/html/lilacs/ -g users -s /bin/MySecureShell <usuario>

En caso de que el usuario esté creado, editar /etc/passwd y buscar la linea correspondiente al usuario a utilizar. Luego editar la shell por /bin/MySecureShell y el directorio por /var/www/html/lilacs/ y finalmente cambiar el grupo ejecutando:

usermod -g users <usuario>

3.c) Configuración de permisos de linux sobre el directorio /var/www/html/lilacs

3.c.1) Configurar dueños:

chown <usuario>:users /var/www/html/lilacs chown -R <usuario>:users /var/www/html/lilacs/cgi-bin chown -R <usuario>:users /var/www/html/lilacs/htdocs chown -R <usuario>:apache /var/www/html/lilacs/bases chown root:root /var/www/html/lilacs/.htaccess chown root:root /var/www/html/lilacs/bases/lildbi/.htaccess

3.c.2) Configurar permisos:

Desde la carpeta /var/www/html/lilacs ejecutar:

find cgi-bin/ -type d | xargs chmod 755 find cgi-bin/ -type f | xargs chmod 644 chmod 755 cgi-bin/wxis1660.exe

find htdocs/ -type d | xargs chmod 755 find htdocs/ -type f | xargs chmod 644

find bases/ -type d | xargs chmod 777 find bases/ -type f | xargs chmod 766

chmod 644 root:root /var/www/html/lilacs/.htaccess chmod 644 root:root /var/www/html/lilacs/bases/lildbi/.htaccess

3.d) Configuración firewall

  1. !/bin/bash

SAVE=”/sbin/iptables-save” IPTABLES=”/sbin/iptables”

  1. Politica default a la tablas

$IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT $IPTABLES -t nat -P OUTPUT ACCEPT $IPTABLES -t mangle -P PREROUTING ACCEPT $IPTABLES -t mangle -P OUTPUT ACCEPT

  1. Flush de todas las reglas preexistentes en las tablas default

$IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F

  1. Borra todas las cadenas no default que quedaran

$IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X

  1. SSH
  1. Red hosting – administracion

$IPTABLES -A INPUT -i eth0 -s <Administration Network>/<Mask> -p tcp –dport 22 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp –dport 22 -j DROP

  1. HTTPD
  1. Red de acceso a la pagina

$IPTABLES -A INPUT -i eth0 -s <Access Network>/<Mask> -p tcp –dport 80 -j ACCEPT $IPTABLES -A INPUT -i eth0 -p tcp –dport 80 -j DROP

$SAVE > /etc/sysconfig/iptables

3.e) Verificación del funcionamiento esperado para php:

Para verificar, en /var/www/html/lilacs/htdocs crear TEMPORALMENTE index.php con el contenido:

<?php phpinfo() ;>

Luego, levantar el servicio httpd y abrir un navegador y verificar que http://nombre-pagina-web/info.php muestre información de php.

Borrar el archivo archivo anterior luego de la verificación!!

3.f) Inicio del instalador:

Desde un navegador, ir a la url → http://nombre-pagina-web/lildbi/install/setup.php Y completar como se indica en la siguiente imagen:

4) Configuración de Selinux para LILDBI-web:

Una vez verificado el correcto funcionamiento de la página web, se debe proceder a configurar los tag de selinux en la página:

NOTA: El semanage no hace que el tag httpd_sys_script_exec_t sobreviva a un relabel. Da error. Por lo que se hace con chcon por ahora. Sobrevive a reinicios. Para intentar grabar los cambios en el contexto del filesystem se utiliza:

semanage fcontext -a -t <tag_type> <directorios_exp_regular>

Desde /var/www/html/ ejecutar:

4.a) Marcar todo con el tag de solo lectura httpd_sys_content_t.

find ./lilacs/* -type f | xargs chcon -t httpd_sys_content_t chcon -t httpd_sys_content_t ./lilacs

4.b) Se debe dar permisos para el binario cgi con el tag httpd_sys_script_exec_t.

chcon -t httpd_sys_script_exec_t ./lilacs/cgi-bin/wxis1660.exe

4.c) Los archivos de las bases solo pueden ser escritos por el binario cgi, por lo que deben ir marcados con el tag httpd_sys_content_rw_t.

find ./lilacs/bases/* -type f | xargs chcon -t httpd_sys_content_rw_t

4.d) Los archivos restantes de cgi no son binarios, por lo que solo pueden ser leidos y concatenados (read-append) a los cgi para ser ejecutados y deben ser marcados con el tag httpd_sys_content_ra_t.

find ./lilacs/cgi-bin/lildbi/* -type f | xargs chcon -t httpd_sys_content_ra_t

5) Configuración de backup vía rsync:

Editar /etc/crontab y agregar:

20 04 * * * root /root/scripts/backup.sh 2>&1 > /dev/null

Crear el archivo /root/scripts/backup.sh con los permisos 744, owner root y grupo root.

-rwxr–r–. 1 root root 368 Jul 3 18:40 /root/scripts/backup.sh

El contenido debe ser:

  1. !/bin/bash
  1. Backup en <Servidor de backup> (via Rsync)
  2. <Autor de la configuracion> – <Fecha>

RSYNC=”/usr/bin/rsync” PARAMS=”-az –password-file=/etc/rsync.secrets –delete” DESTINO=”root@<Servidor de backup>::backup/<nombre del servidor actual>”

  1. Configuracion

$RSYNC $PARAMS /etc $DESTINO $RSYNC $PARAMS /var/www/html $DESTINO $RSYNC $PARAMS /var/spool/cron $DESTINO $RSYNC $PARAMS /root $DESTINO