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
- 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
- !/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>”
- Configuracion
$RSYNC $PARAMS /etc $DESTINO $RSYNC $PARAMS /var/www/html $DESTINO $RSYNC $PARAMS /var/spool/cron $DESTINO $RSYNC $PARAMS /root $DESTINO