Filtrando ataques da China e Coréoa usando FreeBSD e PF
Considerando que diversos tipos de ataque (em especial bruteforce ssh), SPAM por correio eletrônico e por blogs vem de origens localizadas em servidores da China e da Coréia, filtrar tráfico destes países pode ser uma consideração que o administrador de sistemas consideraria. Há algum tempo, ao ler o spamd do OpenBSD vi este site onde é possível encontrar a lista de prefixos de rede usados na China e Coréia. Com um shell script simples (chamado aqui 500.get-china-korea-cidr) é possível pegar esta lista de IP's e formatá-la para uso no PF:
#!/bin/sh
if [ ! -d /etc/pf_rules ]
mkdir /etc/pf_ruleselse/usr/bin/fetch http://www.okean.com/sinokoreacidr.txt
cat sinokoreacidr.txt | cut -d ' ' -f 1 > /etc/pf_rules/china_and_korea.cidr
Coloque este script no /etc/periodic/weekly e torne-o executável (chmod +x /etc/periodic/weekly/500.get-china-korea-cidr).
Depois adicione estas regras no seu arquivo /etc/pf.conf :
table <blog_spammers> persist file "/etc/pf_rules/china_and_korea.cidr"
block in on $ext_if from <blog_spammers> to any
Desta forma o script atualizará a lista CIDR de prefixos de rede semanalmente e PF filtrará todo tráfego vindo de prefixos de rede encontrados no /etc/pf_rules/china_and_korea.cidr. Caso não queira filtrar todo tráfgo destas redes, escreva um conjunto de filtros seletivos ao invés do que foi aqui apresentado. Se quiser também filtrar apenas prefixos que são conhecidos como usados frequentemente por spammers, use a lista CIDR encontrado no SPEWS.
Referência: http://rhyll.com/freebsd/blog/