Instalación de LILDBI-Web 1.7b sobre CentOS 6.3

De wiki.bireme.org/es
Saltar a: navegación, buscar

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

por Lic. Facundo Victor - Compel Computación Electrónica S.R.L.


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.


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
#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@mydomain.com>
   	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

#!/bin/bash
SAVE="/sbin/iptables-save"
IPTABLES="/sbin/iptables"
# 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
# Flush de todas las reglas preexistentes en las tablas default
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
# Borra todas las cadenas no default que quedaran
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
# SSH
# 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
# HTTPD
# 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:

#!/bin/bash
# Backup en <Servidor de backup> (via Rsync)
# <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

6) Referencias:

http://wiki.bireme.org/pt/index.php/LILDBI-Webhttp://wiki.reddes.bvsalud.org/index.php/LILDBI-WEB-proteccionhttp://mysecureshell.sourceforge.net/en/index.html


7) Ayuda sobre Selinux:

http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html