GeoIP+IPtables
Описание
Для начала скомпилируем сам модуль:
aptitude install module-assistant xtables-addons-source linux-headers-`uname -r`
aptitude install libtext-csv-xs-perl libxml-csv-perl libtext-csv-perl unzip
module-assistant auto-install xtables-addons-source
Если вылетит ошибка — жмите Continue и запускайте ещё раз — у меня после этого всё поставилось нормально.
Теперь запустим такую команду:
root@firewall:~# iptables -I INPUT ! -i lo -m geoip --src-cc US -j DROP
Нам пожалуются, что у нас нет БД в каталоге. Либо /usr/share/xt_geoip/LE, либо /usr/share/xt_geoip/BE. Зависит от архитектуры, но мне лениво запоминать какой каталог от какой архитектуры. Да и скопипастить директорию проще, чем потом создавать) Я буду отталкиваться от того, что у меня попросили директорию /usr/share/xt_geoip/LE.
Поставим нужные модули для perl и unzip:
root@firewall:~# aptitude install libtext-csv-xs-perl libxml-csv-perl libtext-csv-perl unzip
Собственно, проблема в том, что автособиралка модулей для дебиана не создаёт базу GeoIP для iptables. Но никто не мешает создать нам её руками. Идем за исходниками и распаковываем оттуда архив. После распаковки у меня получился каталог xtables-addons-1.28/
Соберем базу:
root@firewall:~# cd xtables-addons-1.28/geoip/root@firewall ~/xtables-addons-1.28/geoip # ./geoip_download.shroot@firewall ~/xtables-addons-1.28/geoip # mkdir -p /usr/share/xt_geoip/LEroot@firewall ~/xtables-addons-1.28/geoip # ./geoip_build_db.pl -D /usr/share/xt_geoip/LE < GeoIPCountryWhois.csv
База собрана. Можем начинать её использовать.
Приведу несколько примеров.
Бан КИТАЙ по 5060 udp и tcp
iptables -A INPUT -p tcp -d $INETIP --dport 5060 -m geoip --src-cc CN -j DROP
iptables -A INPUT -p udp -d $INETIP --dport 5060 -m geoip --src-cc CN -j DROP
Забаним на сервере весь трафик от/до хостов, которые расположены не в Германии, Украине или России:
root@firewall:~# iptables -I INPUT ! -i lo -m geoip ! --src-cc DE,UA,RU -j DROP
Тоже самое, но только для 80го порта, с доступом только из России:
root@firewall:~# iptables -I INPUT -p tcp --dport 80 ! -i lo -m geoip ! --src-cc RU -j DROP
Забаним китай совсем:
root@firewall:~# iptables -I INPUT ! -i lo -m geoip --src-cc CN -j DROP
Рекомендуемые комментарии
Комментариев нет
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти