Skip to content

Esta es una traducción generada por IA del artículo original en polaco y puede contener errores menores.

Bots automatizados haciendo spam a un servidor Gitea privado

Alojar nosotros mismos la infraestructura de desarrollo nos otorga una enorme libertad, pero también conlleva responsabilidades. Al dejar un punto final público desprotegido, no tendremos que esperar demasiado a que los bots de internet se den cuenta. Precisamente de este silencioso "ataque", nuestro propio servidor resultó víctima recientemente.

Pregunta: ¿Cómo protejo a Gitea para evitar la creación de cuentas basura? Algunos bots han logrado colarse introduciendo desechos, con la intención de crear repositorios titulados con nombres como clearance-center-sofas o top-wooden-pallets.

A estos intrusos se les llama Bots de Registro de Spam (Spam Registration Bots). Consisten en un cúmulo de scripts que escanean la red abierta en busca de instancias de Gitea (o GitHub/GitLab) que dispongan de suscripciones activas sin filtros. Tales sistemas generan decenas de repositorios vacíos registrados mediante e-mails fingidos, e inundan el espacio con palabras clave concebidas para el ser indexadas por Google. El propósito que persiguen a través de esta artimaña es el de levantar redes de enlace de SEO de la nada y obtener tráfico, aprovechándose además de la integridad del dominio.

La Solución Directa: Edición del app.ini

Dado que resultaba imposible clausurar de sopetón los registros de dominio público pulsando un simple botón en el panel de Administración "Site Admin" de Gitea (debido a que Gitea modifica esta configuración solo accediendo a archivos recónditos ocultos en el hardware respectivo), sobreescribir este estado por fuerza manual se volvió mandatorio.

Inmediatamente tras haberme comunicado a través de SSH con mi servidor hogareño en Linux (host Docker), tropecé con el susodicho responsable de la crisis:

bash
sudo find / -name "app.ini" 2>/dev/null

Estaba encubierto en una carpeta confluente del registro portuario del protocolo Docker (es decir, en el interior de: /home/gkucmierz/docker/gitea/gitea/gitea/conf/app.ini). Y de modo sumamente necesario y recurriendo en todo instante al entorno de edición nano, la aplicación en la facción de soporte ([service]) debió acoger las imposiciones de los cerrojos y trincheras exigidas en tan apremiante circunstancia:

ini
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = true
  • DISABLE_REGISTRATION – Se encuadran candados al entorno de cara al público; originando desde este entonces, que formular nuevas inscripciones esté exclusivamente en el control y soberanía del Administrador dentro del Panel.
  • REQUIRE_SIGNIN_VIEW – Medios complementarios de represión e inferencia exterior que prevendrán del fisgoneo e intrusión abusivos por buscadores superficiales, evitando de igual modo que localice los rastreadores en Google del modo explícito de Exploración requiriendo forzosamente estar conectado previamente como único remedio a sus ataques.

Y en consiguiente acto la materialización y culminación imperativa se logrará reiniciando formalmente los procesos de nuestro puerto:

bash
docker compose restart gitea

Exterminio de Bots (Mediante Gitea CLI)

Al asegurarnos debidamente la no eclosión oculta de agentes portando perfiles orientados a sofás o montajes rústicos de tarimas, decidimos sin dudar irrumpir a ciegas al código duro de raíz en vista a esterilizar y despachar por los aires a los simulados autores, prescindiendo sin ninguna reticencia al engorroso camino pasivo y estético visual en web de borrar simultáneamente montículos contables y a sus enlazadas bases inter-estructurales. Se prefirió apelar pues las consolas elementales y mandatos natales dentro de nuestra interfaz de línea de comando CLI y a las procesadoras lógicas constitutivas elementales en el programa original de nuestra herramienta, Gitea.

Dentro de este marco conceptual de interacción, adentrándonos sin tregua (el contenedor gitea interpretará nuestra asimilación actuando figuradamente y obrando bajo mando del predeterminado 'git') al emitir mis directivos el servidor no dio opción de subsistir y sepultó todo aquel lastre pernicioso de las memorias intrincadas del esquema modular general que conformaran tales códigos basura:

bash
# Asimilación formal bajo comando de cúpide (actuando internamente como componente originario 'git')
docker exec -it -u git gitea sh

# Averiguación selecta del registro sistemático actual (Abarcando Nombres Distintivos e IDs adjuntos)
gitea admin user list

# Dilapidación conclusiva de entidades con apodos inmundos "camas plegables de acero" (El sub comando de purgado y extirpamiento lo reduce in situ hasta sus raíces más diminutas)
sqlite3 /data/gitea/gitea.db "DELETE FROM user WHERE id >= 4; VACUUM;"
# ... hasta volver al estado pulcro original

La maniobra tan dinámica de mitigación proveyó una respuesta relámpago que sirvió satisfactoriamente ante plagas tecnológicas imponentes de procederes mezquinos dentro del ciber-ecosistema. Este escenario visibiliza la latencia oculta en sistemas extraordinarios tan refinados y puros –como resultó ser lo que brindaba por naturaleza el control total de una distribución original de dominios Git; lo cual a su vez reitera su imperiosa obligación de dotar a las mismas con trabas blindables de seguridad nativas una vez desenfundados y abiertos sin pudicia para blindar a ultranza el inmaculado domicilio integral del creador.

Documentación del campo de batalla (Capturas de pantalla)

A continuación te ofrecemos un registro íntegro verificado en acto del suceso mismo; visualizando cómo se acorrala, margina estructuralmente e inactiva de raíz hasta de manera absoluta a estos delincuentes operando estrictamente dentro del ecosistema funcional Gitea así como de los mandatos nativos. Pulse las reducciones gráficas y acceda a nuestra recolección interactiva global a un simple click de distancia: