Contando un poco sobre la web 3

"...
Se arranca mysql :
/etc/rc.d/rc.mysqld start
En este punto me decidí a instalar phpmyadmin y crear usuario con su base de datos para drupal ..."

Así terminaba mi anterior post de la serie contando un poco sobre mi web 2 , usando phpmyadmin para gestionar la base de datos drupal , cosa que me aconsejaron no hacer . De hecho en www.commixtitu.com no lo uso porque me parece un posible e innecesario agujero de seguridad ya que se accede por web abriendo así una vía mas de comunicación con el servidor susceptible de ser atacada.
Las bases de datos se pueden administrar perfectamente por comandos a través de ssh , ¿para qué rizar el rizo ? filosofía K.I.S.S siempre .

Continuo plasmando de manera muy escueta y esquemática algunos pasos para la instalación del servidor en sí mismo , lo que conforma el engranaje básico de la web y le da el volumen , la forma sustancial concreta para ser y existir como ente , como una neurona mas , turbina de luz del conocimiento y de la expresión accesible en las virtuales autopistas de internet.lol.
Intentando hacerlo de una manera segura por supuesto .
Pero antes de continuar releyamos el aviso legal para poner los puntos sobre las íes :

Aviso Legal
Este artículo no es una guía paso paso ,solo son esbozos de pasos básicos a modo de apunte extraídos de esbozos y apuntes , si funcona como guía paso a paso es solo pura y mera casualidad .
El orden de las actuaciones del proceso quizás pueda o debiera alterarse , pero dichas actuaciones o pasos funcionan concreta y específicamente por si solas , comprobado .
Fin del aviso legal .

Empecemos ya creando el usuario mysql y la base de datos de drupal por consola , como puede verse el proceso es muy sencillo y para nada se hecha en falta phpmyadmin :

1º mysql -h localhost -u root -p
2º create database nombre_de_base_de_datos character set utf8;
3º create user nuevo_usuario@'localhost';
4º set password for 'nuevo_usuario'@'localhost' = PASSWORD('UnAcl4v3muyDiFiCiL');
5º grant all on nombre_de_base_de_datos.* to 'nuevo_usuario'@'localhost' ;
6º flush privileges;
Extraído de ;
https://www.desarrolloweb.com/articulos/crear-bbdd-mysql-linea-comandos....

La instalación de drupal no tiene ninguna complicación pero antes de realizarla será necesario llevar a cabo algunos ajustes en apache , recuerdo que todo el servidor reposa sobre el S.O slackware como mencioné en "contando un poco sobre la web" , sistema operativo que exige la puesta a punto de los servicios relevantes manualmente y con mimo eludiendo automatismos y cosas raras .

-Lo primero sería activar php descomentando en el archivo de configuración /etc/httpd.conf ;
Include /etc/httpd/mod_php.conf

-Despues añadir "index.php" aquí , al lado de index.html ;
DirectoryIndex index.php index.html

-Aprovechando que andamos toqueteando apache se puede activar de paso el SSL o https descomentando ;
LoadModule ssl_module lib64/httpd/modules/mod_ssl.so
Include /etc/httpd/extra/httpd-ssl.conf
Include /etc/httpd/extra/httpd-vhosts.conf

-Seguidamente definimos el nombre del servidor web en ;
ServerName www.commixtitu.com

-Reiniciamos apache ;
/etc/rc.d/rc.httpd stop
/etc/rc.d/rc.httpd start

-Comprobamos si el módulo ssl ha sido cargado correctamente ;
httpd -t -D DUMP_MODULES 2>/dev/null | grep ssl

-Correcto ;
ssl_module (shared).

-Con este otro comando se comprueba que el puerto que usa ssl esté abierto ;
netstat -nl | grep 443

De nada nos sirve tener activado SSL sin su certificado correspondiente , afortunadamente este es fácil y barato de implementar con let's encrypt .Para ello vamos a instalarlo junto a toda su paquetería desde slackbuilds ;

1º sbopkg -i "psutil python-requests python2-pythondialog pyparsing configobj mock werkzeug pytz"
2º sbopkg -i " pysetuptools python-configargparse python-parsedatetime pyrfc3339 augeas python-augeas"
3º sbopkg -i "zope.interface zope.event zope.component ipaddress enum34 pycparser cffi pyasn1 six idna cryptography pyOpenSSL ndg_httpsclient letsencrypt"
(algunos paquetes pueden haber sido eliminados o modificados con el tiempo o versión de slackware , de todas maneras el propio sbopkg nos avisará si encuentra errores.).

Una vez instalado let's encrypt necesitamos su cliente . El mas conocido , oficial y que uso aquí es certbot pero podemos elegir entre varios como acme-tiny que además de otras cosas es mucho mas liviano .

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

-Dentro del directorio certbot descargado ejecutamos ;
certbot certonly

Y nos aparece la primera opción de su configuración ;
How would you like to authenticate with the ACME CA?

El resto de su instalación es muy sencillo , aquí los detalles :
https://www.linuxito.com/seguridad/842-como-generar-un-certificado-ssl-t...

Con las claves SSL ya creadas , guardadas a buen recaudo en un directorio discreto y con sus permisos recortaditos (ejem chmod 600 /root/SSL/ ), es el momento de configurar el vhost para la redirección de http a https ;

Aquí la ruta y un ejemplo con hsts ya activado ;

/etc/httpd/extra/httpd-vhosts.conf

VirtualHost *:80

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/srv/httpd/htdocs/"
ServerName commixtitu.com
ServerAlias www.commixtitu.com
Redirect permanent / https://www.commixtitu.com/
ErrorLog "/var/log/httpd/commixtitu.com-error_log"
CustomLog "/var/log/httpd/commixtitu.com-access_log" common

VirtualHost *:443

Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/srv/httpd/htdocs/"
ServerName commixtitu.com
ServerAlias www.commixtitu.com
SSLEngine on
SSLCertificateFile /ruta/ssl/certfcd/commixtitu.com/cert1.pem
SSLCertificateKeyFile /ruta/ssl/certfcd/commixtitu.com/privkey1.pem
ErrorLog "/var/log/httpd/commixtitu.com-error_log"
CustomLog "/var/log/httpd/commixtitu.com-access_log" common

-Otra cosa necesaria es poner tambien la ruta aquí ;

/etc/httpd/extra/httpd-ssl.conf

SSLCertificateFile " /ruta/ssl/certfcd/commixtitu.com/cert1.pem"
SSLCertificateKeyFile " /ruta/ssl/certfcd/commixtitu.com/privkey1.pem "
SSLCertificateChainFile "/ruta/ssl/certfcd/ca.crt"

-Comando para ver la configuración de vhost ;
httpd -S

-Y reininiciamos otra vez apache ;
/etc/rc.d/rc.httpd stop
/etc/rc.d/rc.httpd start

Ahora lo suyo sería activar el cortafuegos iptables , para ello simplemente se crea un script para ser ejecutado en el inicio del sistema .En dicho script se encuentran las reglas de filtrado conformadas a nuestro servidor , hay muchos tutoriales por la red sobre el tema yo simplemente fuí cogiendo y adaptando de diferentes sitios lo que mas me convenía .
Cuidado con la política DROP por defecto si no tenemos acceso físico al S.O nos puede jugar una mala pasada cortando la comunicación permanentemente .

-Al script con las reglas hay que darle permisos de ejecución e indicar su ruta , es decir el path donde se encuentra el archivo , dentro de ;
/etc/rc.d/rc.local .

-Ver estado de las cadenas del cortafuegos ;
iptables -L

Ya por fin correctamente configurado apache e iptables activado podemos empezar la instalación de drupal ;

-Descargar el paquete drupal core y su traduccion .
-Poner la traducción dentro de languages o translations que anda por la carpeta profile .
-Crear la carpeta ;
mkdir /var/www/htdocs/sites/default/files
-Darle los permisos correspondientes.
-Crear este archivo settings.php ;
cp /var/www/htdocs/sites/default/default.settings.php /var/www/htdocs/sites/default/settings.php
-Darle los permisos correspondientes.
-Una vez instalado drupal rebajar los permisos a settings.php y files/ .

Aunque la instalación de drupal es sencilla su configuración y moldeado ya es otro cantar , sobre todo si nunca antes se ha lidiado con un cms . Hay que tomárselo con paciencia para aclimatarse poco a poco a sus menús , módulos y sistema de funcionamiento .
Lo primero que se suele hacer es poner la web en modo mantenimiento donde se informa a los navegantes que estamos de obras o lo que les queramos contar .
Al poner el sitio en mantenimiento no nos saldrá ningún cuadro de logueo , lo que utilizo para poder entrar es ;
?q=user/login

Bueno hasta aquí llego por ahora , espero halla quedado todo mas o menos claro y no olvidarme de nada , ya me contaréis en los comentarios .
Escribiré algún artículo mas sobre el tema mas adelante una 4º parte y a lo mejor una 5º o 6º ya veremos .
Últimamente he tenido que hacer dos migraciones seguidas por problemas con los alojamientos de commixtitu mil perdones por las caídas e inestabilidad de la misma , ahora parece que he encontrado un hosting bastante adecuado para mis necesidades y la web está mucho mas asentada .

Bueno seres de luz , recordad lo que decía el locutor "Buscad la belleza. Es lo único que merece la pena en este asqueroso mundo" Ramón .T

Salud .

Tags: