Há poucos dias, precisei atualizar a base de dados GeoIP de nosso IPS Suricata e não encontrei uma atualização recente nos repositórios do Ubuntu. O pacote geoip-database estava defasado em mais de um ano. Como criei uma blacklist baseada em um gatilho com geoip, precisei encontrar uma forma de atualizar a base de dados ou incluir endereços manualmente.
Lembrei que, para ativar o suporte xt_geoip (netfilter), é preciso fazer download da base atualizada no formato CSV. Sendo assim, refiz o processo referente a aquisição do csv e pude constatar que muitos IPs, até então sem classificação em consultas com geoiplookup, estavam previstos nele.
Analisando a estrutura de arquivos dos pacotes (com dpkg -L) geoip-bin e geoip-database, verifiquei que a base de dados é definida pelo arquivo /usr/share/GeoIP/GeoIP.dat e existe uma ferramenta para atualização chamada /usr/lib/geoip/geoip-generator.
Com esta informação, foi possível atualizar o arquivo GeoIP.dat a partir de um csv.
# Atualização do csv cd /usr/share/xt_geoip sudo aptitude install libtext-csv-xs-perl sudo /usr/lib/xtables-addons/xt_geoip_dl sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv# Atualização da base de dados /usr/lib/geoip/geoip-generator -v -o /usr/share/GeoIP/GeoIP.dat /usr/share/xt_geoip/GeoIPCountryWhois.csv
Mas, será que é possível automatizar o processo? Sim. Uma alternativa seria criar um script, contendo a sequência exibida (sem o aptitude install), e agendar no Cron uma chamada semanal.
Disponibilizei dois scripts para download: geoip.tar
Após descompactar o arquivo disponibilizado, basta copiar o script geo-update.sh para o diretório /opt e geoip-update para /etc/cron.weekly.
[…] tolice inicialmente, mas, nos firewalls que administro, precisei criar um script para atualização semanal. Com o esgotamento de endereços IPv4 (por exemplo), vem ocorrendo uma redistribuição de […]