Hace unos días se usó una vulnerabilidad en la versión que tenía instalada de gitlab en la que era posible ver los mails de los usuarios de la instancia de gitlab… esto hizo que los usuarios empezásemos a recibir correos electrónicos de que nuestra cuenta estaba bloqueada por intentos fallidos de acceso.
Actualicé a la última versión de gitlab y como veía que seguían los intentos de acceso al sistema tomé una drástica decisión, parar el gitlab y encenderlo solo cuando lo necesitase hasta que tuviese tiempo de implementar esta solución que planteo en este post.
Había dos cosas a solucionar, la primera la del proxy de nginx y la segunda la del fail2ban.
Proxy nginx
El gitlab lo tengo en un contenedor lxc detrás de un proxy nginx, la parte del frontal ya la tenía bien configurada, pero faltaba configurar la parte del gitlab. Para ello será necesario editar el fichero de configuración de gitlab y añadir lo siguiente:
# vi /etc/gitlab/gitlab.rb # Each address is added to the NGINX config as set_real_ip_from address; nginx['real_ip_trusted_addresses'] = [ '192.168.1.0/24', '192.168.1.10', '2001:0db8::/32' ] # Other real_ip config options nginx['real_ip_header'] = 'X-Forwarded-For' nginx['real_ip_recursive'] = 'on'
Y recargar la configuración
# gitlab-ctl reconfigure # gitlab-ctl status
Ahora si vemos el log, si está todo bien, veremos ya la ip real
# tail -f /var/log/gitlab/nginx/gitlab_access.log
Listos!
fail2ban
Ahora la segunda parte, bloquear estas ips que nos están dando la brasa y bloquearlas. Lo haremos con fail2ban
# apt -y install fail2ban
Y creamos …