Рейтинг:0

Не удается установить исходящие соединения с iptables, настроенным на разрешение всех

флаг ba

Я не могу понять, почему DROP сталкивается с исходящими запросами, исходящими от моего VPS на основе openvz.

Я знаю, что это должно быть что-то из-за того, что пакет не идет напрямую, или что-то в этом роде, и мне кажется, что здесь не хватает какой-то основной вещи. Я пробовал разные вещи, и единственный способ заставить его снова работать - сбросить правила (iptables-F)

Цель - заблокировать весь входящий трафик, кроме с одного IP (1.2.3.4) и порта 53/113 всем, и разрешить весь исходящий.

Вот вывод iptables -L -n -v - Я вижу, что количество пакетов DROP увеличивается, когда я пытаюсь закрутить исходящий трафик. (IP-адреса немного изменены для конфиденциальности)

Цепочка INPUT (политика ACCEPT 0 пакетов, 0 байтов)
 pkts bytes target prot opt ​​in out source target         
  239 17668 ПРИНЯТЬ все -- * * 1.2.3.4 0.0.0.0/0           
  118 11175 ПРИНЯТЬ udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:53
    3 174 ПРИНЯТЬ udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
   17 1176 ПРИНЯТЬ TCP -- * * 0.0.0.0/0 0.0.0.0/0 TCP dpt:113
    0 0 ПРИНЯТЬ все -- lo * 0.0.0.0/0 0.0.0.0/0           
 2238 119K УДАЛИТЬ все -- * * 0.0.0.0/0 0.0.0.0/0           

Цепочка FORWARD (политика ACCEPT 0 пакетов, 0 байт)
 pkts bytes target prot opt ​​in out source target         

Цепочка OUTPUT (политика ACCEPT 0 пакетов, 0 байтов)
 pkts bytes target prot opt ​​in out source target         
  889 56648 ПРИНЯТЬ все -- * * 0.0.0.0/0 0.0.0.0/0           

это из iptables-сохранить (IP-адреса немного изменены для конфиденциальности)

# Сгенерировано iptables-save v1.8.4, четверг, 2 декабря, 02:42:40 2021
*фильтр
:ВВОД ПРИНЯТЬ [0:0]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТЬ [0:0]
-A ВВОД -s 1.2.3.4/32 -j ПРИНЯТЬ
-A ВВОД -p udp -m udp --sport 53 -j ПРИНЯТЬ
-A ВВОД -p udp -m udp --dport 53 -j ПРИНЯТЬ
-A INPUT -p tcp -m tcp --dport 113 -j ПРИНЯТЬ
-A ВВОД -i lo -j ПРИНЯТЬ
-A ВВОД -j DROP
-A ВЫВОД -j ПРИНЯТЬ
СОВЕРШИТЬ
# Завершено в четверг, 2 декабря, 02:42:40 2021

это интерфейсы (IP-адреса немного изменены для конфиденциальности)

venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
        инет 127.0.0.1 сетевая маска 255.255.255.255 широковещательная рассылка 0.0.0.0 пункт назначения 127.0.0.1
        inet6 2a00:d880:3:1::ad49:a3f2 prefixlen 128 scopeid 0x0<глобальный>
        inet6 2a00:d880:3:1::a639:a610 prefixlen 128 scopeid 0x0<глобальный>

venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
        инет 81.1.1.1 сетевая маска 255.255.255.255 широковещательная рассылка 81.1.1.1 пункт назначения 81.1.1.1
Рейтинг:0
флаг za

Твой ВХОД chain отклоняет действительные ожидаемые ответы на исходящие пакеты. Чтобы разрешить им:

iptables -I INPUT 1 -m conntrack --ctstate УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ

Он обнаружит, является ли пакет продолжением какого-либо предыдущего соединения (например, ответом на какой-либо исходящий пакет), и разрешит его.

Также предлагаю изменить ВХОД политика УРОНИТЬ. Обработка не изменится (у вас неограниченный УРОНИТЬ вниз в наборе правил), но намерение будет ясно.

iptables -P ВХОД DROP
флаг ba
поэтому проблема, почему у меня нет некоторых из этих дополнительных -m, заключается в том, что я получаю «iptables: нет цепочки/цели/совпадения по этому имени». похоже, что он работает с полным ядром (поэтому я предполагаю, что все модули там) `Linux foo 5.4.0 #1 SMP, четверг, 27 июня, 15:10:55 MSK 2019 x86_64 x86_64 x86_64 GNU/Linux` однако я в гостях openvz.
Nikita Kipriyanov avatar
флаг za
Это странно. Ваша установка завершена? Вместо этого попробуйте `-m state --state ESTABLISHED,RELATED` (однако это *устаревший* способ сделать это, и в ядре 5.x он определенно реализован внутри через модуль conntrack).
флаг ba
не помогло. похоже, он ориентирован на ядро ​​​​хоста (у меня даже не было установлено его в гостевой системе. Я установил его, но он, похоже, не загружается, вероятно, потому что openvz...) Мне интересно, если это что-то на уровне хоста, например, если он включен в ядре хоста. Я могу управлять пакетами на своем уровне, но, похоже, не могу получить доступ к модулям conntrack или state.
Nikita Kipriyanov avatar
флаг za
Вы должны либо заранее знать весь возможный трафик и разрешать его статически, либо использовать межсетевой экран с отслеживанием состояния, который обнаруживает его динамически. «Включить выбранные входящие соединения и все возможные исходящие соединения» требует брандмауэра с отслеживанием состояния, поэтому кажется, что то, что вы просите, невозможно. Ваш последний шанс — попросить вашего хостинг-провайдера загрузить для вас необходимые модули. // P.S openvz? В конце 2021? Серьезно?
флаг ba
он использует ramnode ... есть много дешевых дешевых VPS-провайдеров, которые все еще используют его.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.