| English | Español |
BlackIP es un proyecto que recopila y unifica listas públicas de bloqueo de direcciones IPs, para hacerlas compatibles con Squid e IPSET (Iptables Netfilter).
| ACL | Blocked IP | File Size |
|---|---|---|
| blackip.txt | 421688 | 6,0 Mb |
git clone --depth=1 https://github.com/maravento/blackip.gitblackip.txt ya viene optimizada. Descárguela y descomprimala en la ruta de su preferencia.
wget -q -N https://raw.githubusercontent.com/maravento/blackip/master/blackip.tar.gz && cat blackip.tar.gz* | tar xzf -wget -q -N https://raw.githubusercontent.com/maravento/blackip/master/blackip.tar.gz && cat blackip.tar.gz* | tar xzf -
wget -q -N https://raw.githubusercontent.com/maravento/blackip/master/blackip.txt.sha256
LOCAL=$(sha256sum blackip.txt | awk '{print $1}'); REMOTE=$(awk '{print $1}' blackip.txt.sha256); echo "$LOCAL" && echo "$REMOTE" && [ "$LOCAL" = "$REMOTE" ] && echo OK || echo FAIL- No debe utilizar
blackip.txten IPSET y en Squid al mismo tiempo (doble filtrado). blackip.txtes una lista IPv4. No incluye CIDR.
Ipset/Iptables Rules
Edite su bash script de Iptables y agregue las siguientes líneas (ejecutar con privilegios root):
#!/bin/bash
# https://linux.die.net/man/8/ipset
# Replace with your path to blackip.txt
ips=/path_to_lst/blackip.txt
# ipset rules
ipset -L blackip >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "set blackip does not exist. create set..."
ipset -! create blackip hash:net family inet hashsize 1024 maxelem 10000000
else
echo "set blackip exist. flush set..."
ipset -! flush blackip
fi
ipset -! save > /tmp/ipset_blackip.txt
# read file and sort (v8.32 or later)
cat $ips | sort -V -u | while read line; do
# optional: if there are commented lines
if [ "${line:0:1}" = "#" ]; then
continue
fi
# adding IPv4 addresses to the tmp list
echo "add blackip $line" >> /tmp/ipset_blackip.txt
done
# adding the tmp list of IPv4 addresses to the blackip set of ipset
ipset -! restore < /tmp/ipset_blackip.txt
# iptables rules
iptables -t raw -I PREROUTING -m set --match-set blackip src -j DROP
iptables -t raw -I PREROUTING -m set --match-set blackip dst -j DROP
iptables -t raw -I OUTPUT -m set --match-set blackip dst -j DROP
echo "done"Puede agregar las siguientes líneas al bash anterior para incluir rangos de IPs completos de países con IPDeny agregando los países de su elección.
# Put these lines at the end of the "variables" section
# Replace with your path to zones folder
zones=/path_to_folder/zones
# download zones
if [ ! -d $zones ]; then mkdir -p $zones; fi
wget -q -N http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz
tar -C $zones -zxvf all-zones.tar.gz >/dev/null 2>&1
rm -f all-zones.tar.gz >/dev/null 2>&1
# replace the line:
cat $ips | sort -V -u | while read line; do
# with (e.g: Russia and China):
cat $zones/{cn,ru}.zone $ips | sort -V -u | while read line; do- Ipset permite realizar filtrado masivo, a una velocidad de procesamiento muy superior a otras soluciones (consulte benchmark).
- Blackip es una lista que contiene millones de líneas IPv4 y para ser soportada por Ipset, hemos tenido que aumentar arbitrariamente el parámetro maxelem (para más información, consulte ipset's hashsize and maxelem parameters).
- Limitación de Ipset/iptables: "Cuando las entradas agregadas por el objetivo SET de iptables/ip6tables, el tamaño del hash es fijo y el conjunto no se duplicará, incluso si la nueva entrada no se puede agregar al conjunto" (para más información, consulte Man Ipset).
- El uso intensivo de estas reglas puede ralentizar su PC al punto de hacerlo colapsa. Úselas bajo su propio riesgo.
- Probado en: iptables v1.8.7, ipset v7.15, protocol version: 7.
Squid Rule
Edit:
/etc/squid/squid.confY agregue las siguientes líneas:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Block Rule for BlackIP
acl blackip dst "/path_to/blackip.txt"
http_access deny blackipblackip.txtha sido testeada en Squid v3.5.x y posteriores.
BlackIP contiene millones de direcciones IP, por tanto se recomienda:
- Use
blackcidr.txtpara agregar IP/CIDR que no están incluidas enblackip.txt(Por defecto contiene algunos Block CIDR). - Use
allowip.txt(una lista blanca de direcciones IPs IPv4 tales como Hotmail, Gmail, Yahoo. etc). - Use
aipextra.txtpara agregar listas blancas de IP/CIDR que no están incluidas enallowip.txt. - Por defecto,
blackip.txtexcluye algunos rangos privados o reservados RFC1918. Use IANA (iana.txt) para excluirlos todos. - Por defecto,
blackip.txtexcluye algunos servidores DNS incluidos endns.txt. Puede usar esta lista y ampliarla, para denegar o permitir servidores DNS. - Para incrementar la seguridad, cierre Squid a cualquier otra petición a direcciones IP con ZTR.
### INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS ###
# Allow Rule for IP
acl allowip dst "/path_to/allowip.txt"
http_access allow allowip
# Allow Rule for IP/CIDR ACL (not included in allowip.txt)
acl aipextra dst "/path_to/aipextra.txt"
http_access allow aipextra
# Allow Rule for IANA ACL (not included in allowip.txt)
acl iana dst "/path_to/iana.txt"
http_access allow iana
# Allow Rule for DNS ACL (excluded from blackip.txt)
acl dnslst dst "/path_to/dns.txt"
http_access allow dnslst # or deny dnlst
# Block Rule for IP/CIDR ACL (not included in blackip.txt)
acl blackcidr dst "/path_to/blackcidr.txt"
http_access deny blackcidr
## Block Rule for BlackIP
acl blackip dst "/path_to/blackip.txt"
http_access deny blackip
## Block IP
acl no_ip url_regex -i ^(http|https)://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
http_access deny no_ipEsta sección es únicamente para explicar cómo funciona el proceso de actualización y optimización. No es necesario que el usuario la ejecute. Este proceso puede tardar y consumir muchos recursos de hardware y ancho de banda, por tanto se recomienda usar equipos de pruebas.
El proceso de actualización de
blackip.txtes ejecutado en secuencia por el scriptbipupdate.sh. El script solicitará privilegios cuando lo requiera.
wget -q -N https://raw.githubusercontent.com/maravento/blackip/master/bipupdate/bipupdate.sh && chmod +x bipupdate.sh && ./bipupdate.shLa actualización requiere python 3x y bash 5x
wget git curl idn2 perl tar rar unrar unzip zip python-is-python3 ipset squidCaptura las IPv4 de las listas de bloqueo públicas descargadas (ver FUENTES) y las unifica en un solo archivo.
La mayoría de las FUENTES contienen millones de IP inválidas e inexistentes. Entonces se hace una verificación doble de cada IP (en 2 pasos) vía DNS y los inválidos e inexistentes se excluyen de Blackip. Este proceso puede tardar. Por defecto procesa en paralelo ≈ 6k a 12k x min, en dependencia del hardware y ancho de banda.
HIT 8.8.8.8
Host 8.8.8.8.in-addr.arpa domain name pointer dns.google
FAULT 0.0.9.1
Host 1.9.0.0.in-addr.arpa. not found: 3(NXDOMAIN)Corre Squid-Cache con BlackIP y cualquier error lo envía a
SquidError.txten su escritorio.
BlackIP: Done 02/02/2024 15:47:14tw.txtcontiene IPs de servidores teamviewer. Por defecto están comentadas. Para bloquearlas o autorizarlas activelas enbipupdate.sh. Para actualizarla usetw.sh.- Antes de utilizar
bipupdate.shdebe activar las reglas en Squid. - Algunas listas tienen restricciones de descarga, entonces no ejecute
bipupdate.shmás de una vez al día. - Durante la ejecución de
bipupdate.shsolicitará privilegios cuando los necesite. - Si usa
aufs, cámbielo temporalmente aufsdurante la actualización, para evitar:ERROR: Can't change type of existing cache_dir aufs /var/spool/squid to ufs. Restart required.
allowip.txtya esta actualizada y optimizada. El proceso de actualización deallowip.txtes ejecutado en secuencia por el scriptaipupdate.sh.
wget -q -N https://raw.githubusercontent.com/maravento/blackip/master/bipupdate/wlst/aipupdate.sh && chmod +x aipupdate.sh && ./aipupdate.sh- abuse.ch - Feodo Tracker
- abuse.ch - Zeustracker blocklist
- alienvault - reputation
- BBcan177 - minerchk
- BBcan177 - pfBlockerNG Malicious Threats
- binarydefense - Artillery Threat Intelligence Feed and Banlist Feed
- blocklist.de - export-ips_all
- blocklist.de - IPs all
- Cinsscore - badguys
- CriticalPathSecurity - Public-Intelligence-Feeds
- dan.me.uk - TOR Node List
- darklist - raw
- dshield.org - block
- duggytuxy - Data-Shield_IPv4_Blocklist
- ellio.tech - Threat List
- Emerging Threats - compromised ips
- Emerging Threats Block
- Firehold - Forus Spam
- Firehold - level1
- Greensnow - blocklist
- IPDeny - ipblocks
- Myip - full BL
- MyIP - latest BL
- Nick Galbreath client9 - datacenters
- OpenBL - base
- opsxcq - proxy-list
- Project Honeypot - list_of_ips
- romainmarcoux - malicious-ip
- Rulez - BruteForceBlocker
- rulez.sk - bruteforceblocker
- SecOps-Institute - TOR Exit Node List
- Spamhaus - drop-lasso
- stamparm - ipsum
- StopForumSpam - 180
- StopForumSpam - Toxic CIDR
- torproject - TOR BulkExitList
- Uceprotect - backscatterer Level 1
- Uceprotect - backscatterer Level 2
- Uceprotect - backscatterer Level 3
- Ultimate Hosts IPs Blocklist - ips
- yoyo - adservers
- Allow IP/CIDR extra
- Allow IPs
- Allow URLs
- Amazon AWS
- Block IP/CIDR Extra
- DNS
- IANA
- Microsoft Azure Datacenter
- Este proyecto incluye componentes de terceros.
- Los cambios deben proponerse mediante Issues. No se aceptan Pull Requests.
- Blackip no es un servicio de listas negras como tal. No verifica de forma independiente las direcciones IP. Su función es consolidar y formatear listas negras públicas para hacerlas compatibles con Squid/Iptables/Ipset.
- Si su dirección IP aparece en Blackip, y considera que esto es un error, debe revisar las fuentes públicas SOURCES, identificar en cuál(es) aparece, y contactar al responsable de dicha lista para solicitar su eliminación. Una vez que la dirección IP sea eliminada en la fuente original, desaparecerá automáticamente de Blackip en la siguiente actualización.
Agradecemos a todos aquellos que han contribuido a este proyecto. Los interesados pueden contribuir, enviándonos enlaces de nuevas "Blocklist", para ser incluidas en este proyecto.
Special thanks to: Jhonatan Sneider
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO MODO, QUE SURJA DE, A PARTIR DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES EN EL SOFTWARE.
Debido a los recientes cambios arbitrarios en la terminología informática, es necesario aclarar el significado y connotación del término blacklist, asociado a este proyecto:
En informática, una lista negra, lista de denegación o lista de bloqueo es un mecanismo básico de control de acceso que permite a través de todos los elementos (direcciones de correo electrónico, usuarios, contraseñas, URL, direcciones IP, nombres de dominio, hashes de archivos, etc.), excepto los mencionados explícitamente. Esos elementos en la lista tienen acceso denegado. Lo opuesto es una lista blanca, lo que significa que solo los elementos de la lista pueden pasar por cualquier puerta que se esté utilizando. Fuente Wikipedia
Por tanto, blacklist, blocklist, blackweb, blackip, whitelist y similares, son términos que no tienen ninguna relación con la discriminación racial.
