LINUX.ORG.RU
ФорумAdmin

Некорректная работа ipset+iptables

 , ,


0

1

Добрый день, подскажите почему может не корректно работать ipset?

На сервер использую Белый Лист ip, для этого применил несколько правил iptables + ipset. В ipset создал список и заношу в него ip адреса (порядка 500-800 штук), в iptables внес этот список, далее запретил все подключения, вот как сделал:

iptables -I INPUT -p tcp -m set --match-set wlist src -j ACCEPT // Список (white list) ipset
iptables -I INPUT -p tcp -m multiport --dports http,https -s $ipOne -j ACCEPT //  Свой личный адрес №1
iptables -I INPUT -p tcp -m multiport --dports http,https -s $ipTwo -j ACCEPT //  Свой личный адрес №2
iptables -A INPUT -p tcp -m multiport --dports http,https -j DROP  // Остальные Отбросить

Вроде это работает исправно, но сервер часто стал не пропускать пакеты с ip адресом из списка ipset. Предположил что Список перегружен (порядка 1000 адресов), очистил список и занес в него пару адресов, Начало работать, через час все повторилось, то один адрес не пускает, то второй. Как можно выявить причину, либо может вообще не правильно сделано? Но некоторое время работает исправно, дальше рандомно не пускает некоторые адреса из списка.



Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от anc

Вот вывод iltables -L INPUT :

  1. 1-2 = Доступ с другого сервиса,
  2. 3 = Белый список ipset,
  3. 5-19 = CloudFlare доступ,
  4. 20 = DROP ALL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  ddos.guard.com       anywhere             multiport dports http,https
2    ACCEPT     tcp  --  test.com             anywhere             multiport dports http,https
3    ACCEPT     tcp  --  anywhere             anywhere             match-set wlists src
4    ACCEPT     tcp  --  78.36.48.215         anywhere             multiport dports http,https
5    ACCEPT     tcp  --  131.0.72.0/22        anywhere             multiport dports http,https
6    ACCEPT     tcp  --  172.64.0.0/13        anywhere             multiport dports http,https
7    ACCEPT     tcp  --  104.24.0.0/14        anywhere             multiport dports http,https
8    ACCEPT     tcp  --  104.16.0.0/13        anywhere             multiport dports http,https
9    ACCEPT     tcp  --  162.158.0.0/15       anywhere             multiport dports http,https
10   ACCEPT     tcp  --  198.41.128.0/17      anywhere             multiport dports http,https
11   ACCEPT     tcp  --  197.234.240.0/22     anywhere             multiport dports http,https
12   ACCEPT     tcp  --  188.114.96.0/20      anywhere             multiport dports http,https
13   ACCEPT     tcp  --  190.93.240.0/20      anywhere             multiport dports http,https
14   ACCEPT     tcp  --  108.162.192.0/18     anywhere             multiport dports http,https
15   ACCEPT     tcp  --  141.101.64.0/18      anywhere             multiport dports http,https
16   ACCEPT     tcp  --  103.31.4.0/22        anywhere             multiport dports http,https
17   ACCEPT     tcp  --  103.22.200.0/22      anywhere             multiport dports http,https
18   ACCEPT     tcp  --  103.21.244.0/22      anywhere             multiport dports http,https
19   ACCEPT     tcp  --  173.245.48.0/20      anywhere             multiport dports http,https
20   DROP       tcp  --  anywhere             anywhere             multiport dports http,https

Включить журналирование, временно нет возможности, так как происходит DDOS атака.

Разрешенные Адреса из iptables = Работают постоянно, Проблема только с адресами из ipset

Вывод ipset -L :

Name: wlists
Type: hash:ip
Revision: 5
Header: family inet hashsize 4096 maxelem 65536 bucketsize 12 initval 0x6e76772c
Size in memory: 10472
References: 1
Number of entries: 264
Members:
185.171.63.103
79.102.233.75
Devill
() автор топика

Включить журналирование, временно нет возможности, так как происходит DDOS атака

и

но сервер часто стал не пропускать пакеты с ip адресом из списка ipset.

А как ты это определил? То, что сервис не ответил не ознаяает, что пакет отбросили. Ты в условиях DDoS. IMHO 1000 хостов из белого списка могут организовать тебе DDoS.

Предположил что Список перегружен

Зачем гадать? У тебя maxelem 64К, т.ч. он не перегружен.

Открой для себя ipset типа «hash:net» который позволяет вносить сети произвольных размеров (включая /32) и правила с 4 по 19 будут одной строкой.

Кстати, у ipset есть полезная опция «counters» которая показывает счетчик обращений к элементу. Видно активных клиентов.

Настрой мониторинг rps на твойм сервисе и в iptables. По разнице в числе входящих соединений и числу выполненных запросов будет видно сколько запросов может обрабатывать твой сервис.

vel ★★★★★
()
Ответ на: комментарий от vel

В общем исключил ipset, все адреса добавляю напрямую в iptables, работает хорошо, проблем не наблюдается.

Проблема вроде не решена, но добился что требовалось

Devill
() автор топика