Nginx y Apache Security Headers

Creado: Octubre 5, 2022

Security Headers para Apache y Nginx actualizados, una breve reseña de los mismos. Este breve articulo no es mas que una nota o cheatsheet de los security headers a utilizar y requeridos en su mayoría. Si desean leer sobre el tema pueden seguir el siguiente enlace.

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header Feature-Policy "microphone none;camera none;geolocation none;";
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Expect-CT "max-age=31536000; report-uri=https://www.barrahome.org/contact";
add_header Access-Control-Allow-Origin "*" always;

El equivalente para Apache seria utilizando algo como esto:

<IfModule mod_headers.c>
   Header always set X-XSS-Protection "1; mode=block"
<IfModule mod_headers.c>

Pueden observar los resultados aplicados en este blog visitando el sitio de Serpworx.

Leer artículo...

Apache con ExecCGI y FPM

Creado: Septiembre 22, 2022

Una simple receta con notas de como se debe configurar un Virtual Host con Apache para que ejecute CGIs y PHP.

Esta configuración de Apache se realizo bajo Ubuntu 22.04 con el modulo de proxy_fcgi, setenvif y cgid. El modulo cgid se habilita cuando nuestro MPM es event mientras que cuando ejecutamos prefork el modulo a utilizar es cgi.

En Ubuntu se habilita o deshabilita el modulo mediante el comando: a2enmod cgi{d} dependiendo del MPM a utilizar. Para conocer mas sobre estos comandos a2enmod/a2dismod pueden visitar el siguiente enlace. Para PHP-FPM puede que deban ejecutar a2enconf y pueden leer mas sobre esto en este otro enlace.

Leer artículo...

post-merge con Python en Linux

Creado: Septiembre 19, 2022

Actualizando mi blog con Github, Gitup via post-merge con un backend en Flask (Python) en Linux. Voy a utilizar y modificar la siguiente implementación para el hook de post-merge en git.

#!/usr/bin/env bash
# MIT © Sindre Sorhus - sindresorhus.com

# git hook to run a command after `git pull` if a specified file was changed
# Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`.

changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"

check_run() {
    echo "$changed_files" | grep --quiet "$1" && eval "$2"
}

# Example usage
# In this example it's used to run `npm install` if package.json changed
check_run *website/content* "systemctl reload barrahome"
Leer artículo...

Gunicorn reload Systemd

Creado: Septiembre 18, 2022

Recargar la configuración o cambios de Gunicorn mediante Systemd.

Se agregan estas las lineas ExecReload y ExecStop al "unit" de systemd.

El siguiente articulo describe la utilización y otros temas:

[alberto@barrahome barrahome-flask]$ cat /etc/systemd/system/barrahome.service
[Unit]
Description=Barrahome web application
After=network.target

[Service]
User=alberto
Group=alberto
WorkingDirectory=/home/alberto/barrahome-flask
ExecStart=/usr/bin/python3 /usr/bin/gunicorn  --bind 127.0.0.1:8000 website:app --pid=barrahome.pid
ExecReload = /bin/kill -s HUP $MAINPID
ExecStop = /bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
[alberto@barrahome barrahome-flask]$

Luego ejecutamos:

[alberto@barrahome barrahome-flask]$ sudo systemctl daemon-reload
[alberto@barrahome barrahome-flask]$ sudo systemctl reload barrahome
Leer artículo...

Gitup Barrahome

Creado: Septiembre 18, 2022

Guía rápida de como utilizar Gitup para actualizar mi blog automáticamente.

Instalamos Gitup:

sudo pip3 install gitup

Habilitamos el repositorio el cual actualizaremos:

gitup --add ~/barrahome-flask

Creamos una entrada de cron:

crontad -e

Agregamos la siguiente entrada:

*/5 * * * * gitup --update

Si deseamos listar los repositorios que tenemos para actualizar podemos ejecutar lo siguiente:

gitup --list

Nos dará como salida algo como esto:

[alberto@barrahome barrahome-flask]$ gitup --list
gitup: the git-repo-updater

Current bookmarks:
    /home/alberto/barrahome-flask
[alberto@barrahome barrahome-flask]$

Problemas con particiones en USB usando DD

Creado: Mayo 10, 2021

Un error que al parecer es común, luego de usar dd es que nuestro USB queda funcionando mal… al punto que formatearlo con gparted u otras herramientas es un problema, se quejara del inicio de sectores 2048, dará algún mensaje de invalido o:

physical block size is 512 bytes, but Linux says it is 2048 bytes

Esto se puede arreglar fácilmente con los siguientes comandos:

sudo parted /dev/sde mklabel msdos
sudo parted -a none /dev/sde mkpart  primary fat32 0 2048
sudo mkfs.vfat -n "Disk" /dev/sde1

Ahora podremos abrir fdisk o gparted y no tendremos el error de bloques inválidos.