Archivos Mensuales: mayo 2023

ModSecurity en Debian Bookworm

Hace unos años, escribí un artículo comentando la forma de instalar ModSecurity con nginx en Buster. Desde entonces, hemos tenido una pandemia, visto salir Debian 11, 12 y (en el momento de escribir esto) casi la 13, una larga guerra en Europa y varias elecciones.

Esta es una actualización para Bookworm, con dos posibilidades: La larga y la corta.

En general, todo lo comentado en el artículo para Buster sigue estando vigente. Solo hay algunas cosillas:

El kit básico para compilar nginx se instala de aquesta manera.

Nginx:

sudo apt install nginx wget git gcc

Librerías:

sudo apt install libmodsecurity-dev libpcre3-dev libssl-dev libzlib-dev zlib1g-dev libxslt-dev libgd-dev libgeoip-dev libperl-dev

Traerse el código fuente de nginx:

wget -O - http://nginx.org/download/nginx-1.22.1.tar.gz | tar -xzf -

El módulo:

git clone https://github.com/SpiderLabs/ModSecurity-nginx.git

Configurar:

cd nginx-1.22.1

./configure --with-cc-opt='-g -O2 -ffile-prefix-map=/build/nginx-AoTv4W/nginx-1.22.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=stderr --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-compat --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-mail_ssl_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-stream_realip_module --with-http_geoip_module=dynamic --with-http_image_filter_module=dynamic --with-http_perl_module=dynamic --with-http_xslt_module=dynamic --with-mail=dynamic --with-stream=dynamic --with-stream_geoip_module=dynamic --add-dynamic-module=../ModSecurity-nginx --with-pcr

Compilar:

make

Y mover a su sitio, y hemos terminado.

Claro que, ya que estamos en bookworm, podemos usar el módulo precompilado que aparece por primera vez en esta versión… Y ahorrarnos todo el sarao:

sudo apt install libnginx-mod-http-modsecurity

Las ciencias adelantan que es una barbaridad, ¿eh?.