Jump to content

Xtables-addons настройка


Recommended Posts

Добрый день! Прошу прощение, возможно оффтоп. Нужна помощь с базой xtables-addons, базу создал как описано, но выдает в логе, что неправильный код страны.

Скрытый текст

Apr 25 16:53:45ndm

Opkg::Manager: /opt/etc/ndm/netfilter.d/001filter-rules.sh: iptables v1.4.21: geoip: invalid country code ''.
Apr 25 16:53:45ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/001filter-rules.sh: Try `iptables -h' or 'iptables --help' for more information.
Apr 25 16:53:45ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/001filter-rules.sh: exit code 2.
 
Базу ставил как описано тут 1, 2  3
Установлен xtables-addons_legacy - 1.47.1-1a - проведена замена пути базы с /opt/usr/share/xt_geoip на /opt/share/xt_geoip, так как пытался подхватить директорию с прошивки.
 
Скрытый текст

Keenetic Viva, release v2.08(AANT.4)C2

~ # opkg list-installed
badblocks - 1.43.7-1
boost - 1.66.0-1
boost-date_time - 1.66.0-1
boost-filesystem - 1.66.0-1
boost-program_options - 1.66.0-1
boost-system - 1.66.0-1
busybox - 1.27.2-3c
bzip2 - 1.0.6-3
ca-bundle - 20170717
chattr - 1.43.7-1
curl - 7.58.0-1
debugfs - 1.43.7-1
dmesg - 2.30.2-2
dnscrypt-proxy - 1.9.5-8
dnscrypt-proxy-resolvers - 1.9.5+git-20171001-2d43be3-8
dropbear - 2017.75-5
dumpe2fs - 1.43.7-1
e2freefrag - 1.43.7-1
e2fsprogs - 1.43.7-1
entware-release - 1.0-2
ext-ui-nginx-7 - 0.2-3a
fake-hwclock - 0.11-1
fdisk - 2.30.2-2
filefrag - 1.43.7-1
findutils - 4.6.0-1
glib2 - 2.55.1-1
grep - 2.26-1
htop - 2.0.2-1
iptables - 1.4.21-2a
ldconfig - 2.27-8
libacl - 20180121-1
libatomic - 7.3.0-8
libattr - 20170915-1
libblkid - 2.30.2-2
libbz2 - 1.0.6-3
libc - 2.27-8
libcap - 2.25-1
libcurl - 7.58.0-1
libevent2 - 2.0.22-1
libext2fs - 1.43.7-1
libfdisk - 2.30.2-2
libffi - 3.2.1-3
libfreetype - 2.9-1
libgcc - 7.3.0-8
libiconv-full - 1.11.1-3
libintl-full - 0.19.8.1-1
libjpeg - 9a-1
libldns - 1.6.17-2
libltdl - 2.4-2
liblua - 5.1.5-1
liblzma - 5.2.3-1
libmbedtls - 2.6.0-1
libminiupnpc - 2.0.20170509-1
libmnl - 1.0.4-1
libmount - 2.30.2-2
libncurses - 6.1-1
libncursesw - 6.1-1
libndm - 1.8.0-1
libnetfilter-conntrack - 2017-07-25-e8704326-1
libnfnetlink - 1.0.1-1
libopenssl - 1.0.2n-1b
libpcre - 8.41-2
libpng - 1.6.34-1
libpthread - 2.27-8
librt - 2.27-8
libslang2 - 2.3.1a-1
libsmartcols - 2.30.2-2
libsodium - 1.0.16-1
libssh2 - 1.8.0-1
libssp - 7.3.0-8
libstdcpp - 7.3.0-8
libuuid - 2.30.2-2
libxml2 - 2.9.7-1
locales - 2.27-8
lsattr - 1.43.7-1
mc - 4.8.20-1
ndmq - 1.0.2-3
nginx - 1.12.2-1
opkg - 2011-04-08-9c97d5ec-17b
opt-ndmsv2 - 1.0-10a
perl - 5.26.1-3
perl-text-csv_xs - 1.34-1
perlbase-base - 5.26.1-3
perlbase-bytes - 5.26.1-3
perlbase-config - 5.26.1-3
perlbase-dynaloader - 5.26.1-3
perlbase-errno - 5.26.1-3
perlbase-essential - 5.26.1-3
perlbase-fcntl - 5.26.1-3
perlbase-getopt - 5.26.1-3
perlbase-io - 5.26.1-3
perlbase-list - 5.26.1-3
perlbase-posix - 5.26.1-3
perlbase-scalar - 5.26.1-3
perlbase-selectsaver - 5.26.1-3
perlbase-socket - 5.26.1-3
perlbase-symbol - 5.26.1-3
perlbase-tie - 5.26.1-3
perlbase-xsloader - 5.26.1-3
php7 - 7.2.2-1
php7-cgi - 7.2.2-1
php7-cli - 7.2.2-1
php7-fastcgi - 7.2.2-1
php7-mod-curl - 7.2.2-1
php7-mod-dom - 7.2.2-1
php7-mod-exif - 7.2.2-1
php7-mod-gd - 7.2.2-1
php7-mod-json - 7.2.2-1
php7-mod-mbstring - 7.2.2-1
php7-mod-session - 7.2.2-1
php7-mod-simplexml - 7.2.2-1
php7-mod-xml - 7.2.2-1
php7-mod-xmlreader - 7.2.2-1
php7-mod-xmlwriter - 7.2.2-1
php7-mod-zip - 7.2.2-1
polipo - 1.1.1-2
portspoof - 1.3-1
resize2fs - 1.43.7-1
shellinabox - 2.20-1
tar - 1.30-1
terminfo - 6.1-1
tor - 0.3.2.9-1
transmission-cli-mbedtls - 2.93-4
transmission-daemon-mbedtls - 2.93-4
transmission-remote-mbedtls - 2.93-4
transmission-web - 2.93-4
tune2fs - 1.43.7-1
vnstat - 1.17-1
xtables-addons_legacy - 1.47.1-1a
xz - 5.2.3-1
xz-utils - 5.2.3-1
zlib - 1.2.11-2
zoneinfo-asia - 2018c-1
zoneinfo-europe - 2018c-1

 

Link to comment
Share on other sites

21 час назад, naileddeath сказал:

... проведена замена пути базы...

в файле extension/libxt_geoip.c была изменена 28 строка (#define GEOIP_DB_DIR "/usr/share/xt_geoip" => #define GEOIP_DB_DIR "/opt/share/xt_geoip")

Link to comment
Share on other sites

В 27.04.2018 в 13:17, TheBB сказал:

в файле extension/libxt_geoip.c была изменена 28 строка (#define GEOIP_DB_DIR "/usr/share/xt_geoip" => #define GEOIP_DB_DIR "/opt/share/xt_geoip")

Спасибо за собранный пакет на 2.11 (delta) завелось! Правила появились в iptables, без модулей xtables в прошивке не заведется. Для конвертирования базы ставился пакет perl-text-csv_xs и perlbase, командой opkg list | grep perlbase- | sed 's/ - .*//' | xargs opkg install.
Спасибо за полезности!

 

 2018-05-05_6-59-16.png

Edited by naileddeath
Link to comment
Share on other sites

Скрытый текст

#!/bin/sh

[ "$type" == "iptables" ] && exit 0
[ "$table" != "filter" ] && exit 0

## xtbles-addons
## Блокировка стран по коду
#iptables -A INPUT -i wan -m geoip ! --src-cc CN,TW,KR,US,IN -j REJECT
## Блокировка анонимных прокси
#iptables -A INPUT -i wan -m geoip ! --src-cc A1 -j REJECT
## Подключение к порту только из выбранного кода страны
#iptables -A INPUT -i wan -p tcp --dport 22 -m geoip ! --src-cc RU -j REJECT
#iptables -A INPUT -i wan -p tcp --dport 20 -m geoip ! --src-cc RU -j REJECT
#iptables -A INPUT -i wan -p tcp --dport 21 -m geoip ! --src-cc RU -j REJECT
## Запрет исходящих ICMP в некоторые страны
#iptables -A OUTPUT -i wan -p icmp -m geoip ! --dst-cc ES -j REJECT
## Атака на скан открытого порта(соединение открыто и не закрывается).
iptables -A INPUT -i wan -p tcp -m tcp -m multiport ! --dports 7,22,23,80,88,8080,8888,135,139 -j TARPIT
## Порт для пустых соединений
#iptables -A INPUT -i wan -p tcp -m tcp -dport 8080 -j TARPIT
## Эмуляция открытых портов
iptables -A INPUT -i wan -p tcp -m tcp -j TARPIT

Для настройки под свои нужды заменить интерфейс wan на свой, в данном примере xtables работает как portspoof только лишен fuzzed & verbose mode.

Может кому то понадобится.

 

  • Upvote 2
Link to comment
Share on other sites

  • 3 months later...

/lib/modules/3.4.113 # ls | grep ipt_
ipt_ECN.ko
ipt_ROUTE.ko
ipt_ULOG.ko
ipt_ah.ko

то тебе не LOG нужен а ULOG

man iptablesimage.png.51de372bef197b55abfa368965cdf557.png

Блокировка стран по коду с логированием

## Блокировка стран по коду
/opt/sbin/iptables -A INPUT -i eth2.2 -m geoip ! --src-cc CN,TW,KR,US,IN -j ULOG --ulog-prefix "REJECT geoip: "
/opt/sbin/iptables -A INPUT -i eth2.2 -m geoip ! --src-cc CN,TW,KR,US,IN -j REJECT

Edited by naileddeath
Link to comment
Share on other sites

  • 3 months later...

конфиг xtables.sh

Скрытый текст

 

#!/bin/sh

[ "$table" != "filter" ] && exit 0

## Методы борьбы с экзотическими видами сканирования
## Запрет FIN-сканирования
#iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
## Запрет X-сканирования
#iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
## Запрет N-сканирования
#iptables -A INPUT -p tcp -m tcp –-tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP
## Защита от SYN/ACK-сканирования, с помощью nmap-флага -sS
#iptables -I INPUT -p tcp -m tcp -m osf --genre NMAP -j DROP

## Борьба со сканированием с помощью iptables
## Проверка на стук в нерабочие порты (10 в час)
iptables -A INPUT -m recent --rcheck --seconds 3600 --hitcount 10 --rttl -j RETURN
## Вторая проверка на стук в нерабочие порты (2 в минуту)
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 2 --rttl -j RETURN
## Заносим адреса стучащихся в список
iptables -A INPUT -m recent --set
## Отбрасываем пакеты всех, кто превысил лимит на количество подключений
iptables -P INPUT DROP

## Типы ICMP-сообщений
# 0 — echo reply (echo-ответ, пинг)
# 3 — destination unreachable (адресат недосягаем)
# 4 — source quench (подавление источника, просьба посылать пакеты медленнее)
# 5 — redirect (редирект)
# 8 — echo request (echo-запрос, пинг)
# 9 — router advertisement (объявление маршрутизатора)
# 10 — router solicitation (ходатайство маршрутизатора)
# 11 — time-to-live exceeded (истечение срока жизни пакета)
# 12 — IP header bad (неправильный IPзаголовок пакета)
# 13 — timestamp request (запрос значения счетчика времени)
# 14 — timestamp reply (ответ на запрос значения счетчика времени)
# 15 — information request (запрос информации)
# 16 — information reply (ответ на запрос информации)
# 17 — address mask request (запрос маски сети)
# 18 — address mask reply (ответ на запрос маски сети)

## Запрет опасных ICMP-сообщений
#iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
#iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
#iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
#iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
#iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
#iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT

## Защита от брутфорса с помощью iptables
## Цепочка проверки соединений
iptables -N brute_check
## Блокировка адреса, если за 60 секунд он инициировал более 2-х соединений
iptables -A brute_check -m recent --update --seconds 60 --hitcount 3 -j DROP
## Если нет - разрешаем соединение и заносим адрес в список
iptables -A brute_check -m recent --set -j ACCEPT
## Очищаем цепочку INPUT
#iptables -F INPUT
## Отправляем в цепочку всех, кто пытается подключиться к 65021,500,4500-му порту
iptables -A INPUT -m conntrack --ctstate NEW -p tcp -m tcp -m multiport --dports 21,2221 -j brute_check
#iptables -A INPUT -m conntrack --ctstate NEW -p tcp -m tcp --dport 65021 -j brute_check
iptables -A INPUT -m conntrack --ctstate NEW -p udp -m udp -m multiport --dports 500,4500 -j brute_check
iptables -P INPUT DROP

## xtbles-addons
## Port scan detect
iptables -I INPUT -m psd -j DROP

## Блокировка стран по коду
#iptables -A INPUT -m geoip ! --src-cc CN,TW,KR,US,IN,JP,GB -j DROP

## Блокировка анонимных прокси
#iptables -A INPUT -m geoip ! --src-cc A1 -j DROP

## Подключение к порту только из выбранного кода страны
iptables -I INPUT ! -i eth2.2 -p udp -m udp -m multiport --dports 500,4500 -m geoip ! --src-cc RU -j DROP
#iptables -I INPUT ! -i eth2.2 -p udp --dport 4500 -m geoip ! --src-cc RU -j DROP
iptables -I INPUT ! -i eth2.2 -p tcp -m tcp -m multiport --dports 21,2221 -m geoip ! --src-cc RU -j DROP

## Запрет исходящих ICMP в некоторые страны
#iptables -A OUTPUT -p icmp -m geoip ! --dst-cc ES -j REJECT

## Атака на скан открытого порта(соединение открыто и не закрывается).
iptables -A INPUT -p tcp -m tcp -m multiport --dports 21,22,23,80,88,8080,8888,8443,135,139,443,445,8123,3128 -j TARPIT
#iptables -A INPUT -p tcp -m tcp -m multiport --dports 21,22,23,80,88,8080,8888,8443,135,139,443,445,8123,3128 -j CHAOS --tarpit
#iptables -A INPUT -p tcp -m tcp -m multiport --dports 21,22,23,80,88,8080,8888,8443,135,139,443,445,8123,3128 -j REJECT

## Порт для пустых соединений
#iptables -A INPUT -i eth2.2 -p tcp -m tcp -dport 8080 -j TARPIT

## Эмуляция открытых портов
iptables -A INPUT -p tcp -m tcp -j TARPIT
#iptables -A INPUT -p tcp -m tcp -j CHAOS
#iptables -A INPUT -p tcp -m tcp -j REJECT

 

 

конфиг raw.sh

Скрытый текст

 

#!/bin/sh

[ "$table" != "raw" ] && exit 0

## Предотвращение обработки блокируемых соединений подсистемой conntrack(TARPIT ports table filter)
iptables -I PREROUTING -p tcp -m tcp -m multiport --dports 21,22,23,80,88,8080,8888,8443,135,139,443,445,8123,3128 -j NOTRACK
iptables -I PREROUTING -p tcp -m tcp -j NOTRACK

## Обход блокировки
iptables -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass

 

 

 

 

Edited by naileddeath
Link to comment
Share on other sites

  • 3 years later...
Posted (edited)

Здравствуйте.

Хочу забанить Китай.

# iptables -A INPUT -m geoip --src-cc CN -j REJECT
iptables: No chain/target/match by that name.

В чём моя ошибка?

 

PS.

cat /proc/net/ip_tables_matches 
state
pkttype
limit
helper
conntrack
conntrack
conntrack
connskip
connndmmark
connmark
ndmmark
mark
icmp
dtls
tls
tcpmss
length
set
set
set
set
set
udplite
udp
tcp


geoip - отсутствует.

Это так и должно быть?

 

Edited by kroleg
Link to comment
Share on other sites

Posted (edited)
modprobe xt_geoip.ko
modprobe: FATAL: Module xt_geoip.ko not found in directory /lib/modules/4.9-ndm-5

 

Edited by kroleg
Link to comment
Share on other sites

~ # 
~ # modinfo /lib/modules/4.9-ndm-5/xt_geoip.ko
filename:       /lib/modules/4.9-ndm-5/xt_geoip.ko
alias:          ipt_geoip
alias:          ip6t_geoip
description:    xtables module for geoip match
author:         Samuel Jean
author:         Nicolas Bouliane
license:        GPL
depends:        
vermagic:       4.9-ndm-5 SMP mod_unload MIPS32_R2 32BIT 
~ # 
~ # lsmod | grep geoip
~ # 
~ # insmod /lib/modules/4.9-ndm-5/xt_geoip.ko
~ # 
~ # lsmod | grep geoip
xt_geoip                3414  0
~ #

Компонент прошивки "Пакет расширения Xtables-addons для Netfilter" установлен?

Link to comment
Share on other sites

Posted (edited)

А вот так

# lsmod | grep geoip
xt_geoip 3414 0 - Live 0x82d2c000 (O)

 

# iptables -m geoip --help
iptables v1.4.21: Couldn't load match `geoip':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

 

И правила тоже не добавляет...

 

Хотя вот вполне работает

# iptables -m esp --help

Edited by gaaronk
Link to comment
Share on other sites

1 час назад, gaaronk сказал:

# iptables -m geoip --help
iptables v1.4.21: Couldn't load match `geoip':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

А так?

opkg install xtables-addons_legacy
...
[!] --version	-V		print package version.

geoip match options:
[!] --src-cc, --source-country country[,country...]
	Match packet coming from (one of) the specified country(ies)
[!] --dst-cc, --destination-country country[,country...]
	Match packet going to (one of) the specified country(ies)

NOTE: The country is inputed by its ISO3166 code.

~ # 

 

  • Thanks 1
Link to comment
Share on other sites

Posted (edited)

 

3 часа назад, TheBB сказал:

Компонент прошивки "Пакет расширения Xtables-addons для Netfilter" установлен?

opkg install xtables-addons_legacy
Package xtables-addons_legacy (1.47.1-2) installed in root is up to date.

Оно?

Пробовал, даже, собирать из сырцов Entware - собирается, но там всё тоже самое.

Пробовал и старый  xtables-addons_legacy - 1.47.1-1a - тоже самое.

Как я понял, нужно как-то собрать из исходников, где есть xt_geoip.h & xt_geoip.c

https://sourceforge.net/projects/xtables-addons/files/latest/download

Подскажите, пожалуйста, что мне делать дальше?

modinfo /lib/modules/4.9-ndm-5/xt_geoip.ko
modinfo: ERROR: Module alias /lib/modules/4.9-ndm-5/xt_geoip.ko not found.

 

Edited by kroleg
Link to comment
Share on other sites

Posted (edited)
1 час назад, kroleg сказал:

Подскажите, пожалуйста, что мне делать дальше?

modinfo /lib/modules/4.9-ndm-5/xt_geoip.ko
modinfo: ERROR: Module alias /lib/modules/4.9-ndm-5/xt_geoip.ko not found.

 

А так

cd /lib/modules/4.9-ndm-5

ls -l | grep xt_


Куча файлов xt_..... среди которых xt_geoip.ko

Берем файл по ссылке например http://bin.entware.net/mipselsf-k3.4/xtables-addons_legacy_1.47.1-2_mipsel-3.4.ipk

Смотрим что внутри - два файла нам интересен data.tar.gz в нем data.tar.gz\.\opt\lib\iptables - TAR+GZIP архив, размер исходных файлов 164 457 байт

Скрытый текст

305812407_-1.thumb.jpg.7ea7b9edcfd8f9623ea68c376e36445d.jpg

Для справки

- для Keenetic DSL, LTE, VOX - mips

- для остальных Keenetic`ов - mipsel

Можно установить не "opkg install xtables-addons_legacy" а скопировать данный файл в любой каталог и запустить из этого каталога "opkg install xtables-addons_legacy_1.47.1-2_mipsel-3.4.ipk"

Edited by vasek00
Link to comment
Share on other sites

Posted (edited)

Ура!

Мне удалось пройти этот квест по поиску xt_geoip.ko!

Оказывается, надо было установить компонент "Протокол IPv6" - у него в зависимостях "Модули ядра подсистемы Netfilter".

После установки "Протокол IPv6", появляется "Модули ядра подсистемы Netfilter", а у него в зависимостях "Пакет расширения Xtables-addons для Netfilter".

После установки "Модули ядра подсистемы Netfilter", появляется и "Пакет расширения Xtables-addons для Netfilter".

Теперь, вопрос: как сделать автозагрузку xt_geoip.ko? ( insmod /lib/modules/4.9-ndm-5/xt_geoip.ko )

 

PS.

добавил

 cat /opt/etc/init.d/S15modules

#!/bin/sh

insmod /lib/modules/4.9-ndm-5/xt_geoip.ko

Не знаю, так правильно или нет?

Но модуль, загружается.

Edited by kroleg
Link to comment
Share on other sites

Posted (edited)

Вроде бы всё настроил, но мне кажется, что бан по country не работает.

это просто для тестирования:

# iptables -S | grep CN
-A INPUT -m geoip --source-country CN,TW,KR,SG,NL,US  -j REJECT --reject-with icmp-port-unreachable

в браузере установлено расширение Browsec, где можно менять страну.

Это правило в таблице iptables как будто бы, не работает- я свободно захожу на свой сайт.

ipv6 отключен на интерфейсах в sysctl.conf

 

Что я сделал не так?
 

ip2cidr 23.106.56.21
23.106.56.0/21

 

/opt/lib/xtables-addons# cat /opt/lib/xtables-addons/GeoLite2-Country-Blocks-IPv4.csv | grep 23.106.56.0/21
23.106.56.0/21,2635167,2635167,,0,0

 

Edited by kroleg
Link to comment
Share on other sites

Posted (edited)

Почему-то при таком условии

[ "$table" != "filter" ] && exit 0

правило не добавляется в таблицу

iptables -A INPUT -m geoip --src-cc CN,TW,KR,SG,NL,US -j REJECT


Добавляется, если вместо "filter" написать "nat"  или "mangle", но это, как я понимаю, не тот хук, поэтому и не работает.

Edited by kroleg
Link to comment
Share on other sites

  • 4 weeks later...

Странное дело. Есть Giga III и Duo. На обоих 3.7.4 (на гиге из delta).

На обоих используется модуль xt_geoip

Бинарные файлики стран которые готовятся xt_geoip_build делаются на внешней машине и одновременно загружаются в гигу и дуо.

На Duo все работает как надо. На гиге под правило, например с параметрами -m geoip --dst-cc RU - попадает весь трафик. Если вместо RU выбрать любую другую страну - все равно матчит все.

Link to comment
Share on other sites

  • 4 weeks later...

Всем привет. Тему я создал для себя как блокнотик. Одно примечания в компонентах я ставил всегда ipv6. В доп компонентах opkg все что связано с netfilter. С момента публикации, примерно через года 2 у меня умер hdd и флешка, я прекратил юзать на роутере опкг + опкг обновилась уже раз 10 и вышли новые модели. Вряд-ли я чем смогу помочь кому-то. Да и еще я полный ноль в юниксах. Просто по фану курил мануалы и записи, пока не докопаюсь до истины. Так что всем удачи))))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...