Назад | Перейти на главную страницу

Невозможно установить правила GeoIP в iptables

Я пытаюсь добавить это правило:

iptables -A INPUT -m geoip ! --src-cc CZ,SK -j DROP

Я установил поддержку GeoIP согласно этому ответу: Ubuntu IPTables позволяет разрешить только 1 страну | Суперпользователь

Но это не работает, потому что я получаю сообщение: iptables: No chain/target/match by that name.

Я использую Debian 9.

Обновить:

После результата после бега uname -a

Linux Andromeda 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux

Как я могу это исправить?

Связанный вопрос / ответ является неполным. В дополнение к пользовательским инструментам вам понадобится эквивалент на стороне ядра: вам нужно будет установить пакет xtables-addons-dkms. Обратите внимание, что xtables-addons-common рекомендует xtables-addons-dkms, поэтому при установке первого следовало либо установить более позднее, либо упомянуть рекомендацию. Невыполнение этого требования сильно ограничивает полезность xtables-addons-common.

Остерегайтесь, он потянет за собой весь пакет компиляции, необходимый для dkms. Убедитесь, что вы получили linux-headers-4.9.0-4-amd64 пакет, потому что он не последний из доступных и не может быть извлечен автоматически.

Если это по понятным причинам неприемлемо для производственных систем, его необходимо будет установить в системе разработки, и это придется запускать вручную. Точная команда может зависеть от версии целевого ядра:

dkms mkbmdeb xtables-addons/2.12 -k 4.9.0-4-amd64

Недавно созданный пакет, содержащий:

find /var/lib/dkms/ -name 'xtables-addons*deb'

затем можно установить на производственном сервере (вместе с xtables-addons-common пакет).

Чтобы заявить это еще раз: dkms mkbmdeb ... нужен только для «двухступенчатой» установки. Если xtables-addons-dkms устанавливается непосредственно на сервере с использованием правил iptables, этого не нужно делать: установка уже позаботилась об этом.