Форум русскоязычного сообщества Ubuntu


Автор Тема: iptables не пропускает dns  (Прочитано 991 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lev-stas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
iptables не пропускает dns
« : 18 Марта 2018, 00:27:06 »
Всем доброго времени суток. Возникла такая проблема, корень которой не могу понять. Есть сервер Ubuntu 16.04, который работает в качестве шлюза для двух vlanов. Состояния по умолчанию:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

правила для FORWARD:
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD - m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
iptables -A FORWARD -s 192.168.3.0/24 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
iptables -A FORWARD -p tcp -m conntrack --ctstate NEW -m tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 67 -j ACCEPT
При такой конфигурации хосты из подсетей не могут обращаться к днс, хотя пинги по ip  проходят. В чем может быть проблема, если синтаксис, вроде бы как правильный? То, что проблема именно в цепочке FORWARD  это точно, потому что если изменяю состояние по умолчанию
iptables -P FORWARD ACCEPT то все работает нормально.
Буду благодарен за советы и рекомендации.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28301
    • Просмотр профиля
Re: iptables не пропускает dns
« Ответ #1 : 18 Марта 2018, 01:21:11 »
iptables -P OUTPUT DROP
Ошибка.

Пользователь добавил сообщение 18 Марта 2018, 01:21:51:
При такой конфигурации
Конфигурация где?
iptables-save под спойлер.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: iptables не пропускает dns
« Ответ #2 : 18 Марта 2018, 09:36:14 »
Цитата: lev-stas от Сегодня в 01:27:06

    iptables -P OUTPUT DROP

Ошибка.
Скажем так: Это практически всегда приводит к ошибкам.
Отказ от этого правила приносит меньше вреда, нежели ведро неуклюжих правил которые приходится добавлять.
Их неуклюжесть геометрически прогрессирует к нехватке опыта и знаний админа.

И я бы для диагноза посмотрел бы все правила, а не выжимки
sudo iptables-save
И ещё вопрос: как проверяете работу клиентов с DNS?
« Последнее редактирование: 18 Марта 2018, 09:39:17 от fisher74 »

Оффлайн lev-stas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: iptables не пропускает dns
« Ответ #3 : 18 Марта 2018, 13:44:36 »
Переписал файл /etc/nat, в котором задавал правила iptables заново, упорядочив строки по цепочкам. Все заработало, хотя синтаксис не менял, только порядок строк. В конечном варианте файл /etc/nat  приобрел следующий вид:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o enp0s3 -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.2.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.3.0/24 -j MASQUERADE

iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
iptables -A FORWARD -s 192.168.3.0/24 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80.443 -j ACCEPT
iptables -A FORWARD -p tcp -m conntrack --ctstate NEW -m tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 67 -j ACCEPT

команда iptables-save:
Generated by iptables-save v1.6.0 on Sun Mar 18 13:36:14 2018
*nat
:PREROUTING ACCEPT [76:10906]
:INPUT ACCEPT [1:60]
:OUTPUT ACCEPT [29:3416]
:POSTROUTING ACCEPT [13:1268]
-A POSTROUTING -s 192.168.2.0/24 -o enp0s3 -j MASQUERADE
-A POSTROUTING -s 192.168.3.0/24 -o enp0s3 -j MASQUERADE
COMMIT
# Completed on Sun Mar 18 13:36:14 2018
# Generated by iptables-save v1.6.0 on Sun Mar 18 13:36:14 2018
*filter
:INPUT DROP [107:15701]
:FORWARD DROP [0:0]
:OUTPUT DROP [16:2148]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
-A FORWARD -p tcp -m conntrack --ctstate NEW -m tcp --dport 53 -j ACCEPT
-A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT
-A FORWARD -p udp -m conntrack --ctstate NEW -m udp --dport 67 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -o enp0s3 -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Mar 18 13:36:14 2018

Проблема решена, но ее причины так и остались невыясненными... неужели порядок строк мог вносить ошибку?
Всем спасибо за участие.

P.S. Работу днс проверял:
ping 8.8.8.8пинг есть
ping google.com
пинга нет. Точнее не было. После исправления файла появился.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: iptables не пропускает dns
« Ответ #4 : 18 Марта 2018, 14:52:52 »
неужели порядок строк мог вносить ошибку?
Вы не поверите, но именно так.
Если пакет попал под запрещающее или модифицирующее правило, то до разрешающего он уже может и не добраться. Потому мы всегда и просим предоставить все ЗАГРУЖЕННЫЕ правила, а не скрипты, которые эти правила загружают и, тем более, выжимки из них.

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.