Я пытаюсь добавить это правило:
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, этого не нужно делать: установка уже позаботилась об этом.