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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 528465 раз)

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

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1950 : 21 Июня 2013, 07:49:18 »
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -d 192.168.1.0/24 -j ACCEPTтак?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: HOWTO: Iptables для новичков
« Ответ #1951 : 21 Июня 2013, 07:51:26 »
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -d 192.168.1.0/24 -j ACCEPTтак?
Ну, да, типа того.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1952 : 21 Июня 2013, 07:51:32 »
А остальные правила не вызывают подозрения на опытный глаз?
Комп будет напрямую к Инету включен, надо чтобы лишнее не пролазило.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: HOWTO: Iptables для новичков
« Ответ #1953 : 21 Июня 2013, 08:03:00 »
А остальные правила не вызывают подозрения на опытный глаз?
Зависит от степени параноидальности. :coolsmiley:

У меня в правилах детализация вплоть до портов и ещё OUTPUT фильтруется.
« Последнее редактирование: 21 Июня 2013, 08:09:34 от ArcFi »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1954 : 21 Июня 2013, 08:55:50 »
ArcFi,
Ну сейчас у меня закрывается все, что приходит из вне, за исключением того, чтобы было запрошено внутри и своих внешних адресов.

Однако внешние адреса мне нужны только определенные порты, а в OUTPUT какие у тебя фильтры? Можешь скинуть кусок фильтрация портов и OUTPUT?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: HOWTO: Iptables для новичков
« Ответ #1955 : 21 Июня 2013, 09:12:50 »
Однако внешние адреса мне нужны только определенные порты, а в OUTPUT какие у тебя фильтры? Можешь скинуть кусок фильтрация портов и OUTPUT?
Ну, кусок-то скинуть могу, только это мало что даст, ведь у вас могут быть совсем другие задачи.
(Нажмите, чтобы показать/скрыть)

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1956 : 21 Июня 2013, 09:58:34 »
ArcFi,
Конечно другие, но я не собираюсь его себе втыкать, я посмотрю, что и как ты фильтруешь, почитаю про незнакомые опции и подумаю нужно ли оно мне :)

Спасибо.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1957 : 04 Июля 2013, 12:02:34 »
Нужно пропустить подключение по 3389 к серверу за шлюзом, где я не прав?

iptables -F FORWARD
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -s $ip -d 192.168.1.46 -p tcp --dport 3389 -j ACCEPT
iptables -P FORWARD DROP

iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 195.208.35.31

iptables -F INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $ip/32 -p tcp --dport 3389 -j ACCEPT
iptables -P INPUT DROP

iptables -F OUTPUT
iptables -P OUTPUT ACCEPT

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1958 : 04 Июля 2013, 12:35:42 »
iptables-save показывайте...
А вообще, много где. Смотрите выше, были примеры DNAT.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн insiki

  • Участник
  • *
  • Сообщений: 168
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1959 : 13 Июля 2013, 12:38:30 »
Пока читаю тему, задам несколько вопросов. Можно не отвечать полностью, а лишь направить в нужное русло.
Документация по IPTABLES и картинка с хождением пакетов под рукой ;)

Есть 2 интерфейса:
eth0 - интернет
eth1 - локалка

1. Одно правила в IPTABLES для организации NAT в локалку достаточно? (В Керио на каждом правиле (если вы их делали для разных портов и тдотдельно) необходимо было включать НАТ). Речь о iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
2. Во многих фаерволах принцип работы идет сверху вниз, если вы прописали вверху - Заблокировать все, правила ниже работать не будут. Здесь же часто вижу, что пишут -P INPUT DROP, -P OUTPUT DROP, -P FORWARD DROP, а ниже уже идут другие правила этих же цепочек, и они работают. Непонятен немного принцип.
3. Маскарадинг и проброс HTTP-трафика на порт 3128 Сквида по шаблону сделал, HTTP страницы открываются,сейчас хочу разрешить пользователям локалки POP/SMTP трафик и HTTPS.
iptables
(Нажмите, чтобы показать/скрыть)
iptables-save
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 13 Июля 2013, 18:38:24:
бррр, чего-то не пойму
В Prerouting в таблице Mangle я заворачиваю трафик идущий через порт 80,8080 на порт Squid 3128
В Input фильтрую входящие пакеты (они попадают в таблицу filter), определяю состояния пакетов, и если есть пакеты с состоянием Related (уже установленное соединение) или Established (новое соединение, связанное с уже установленным), то такие соединения разрешаются. Дальше разрешаю пакеты (из тех пакетов, что пустило предыдущее правило) идущие на 443,25,110 порты, то есть открываю эти порты на шлюзе.
В Forward фильтрую проходящие пакеты на другие хосты(они попадают в таблицу filter), определяю состояния пакетов, и если есть пакеты с состоянием Related (уже установленное соединение) или Established (новое соединение, связанное с уже установленным), то такие соединения разрешаются. Дальше разрешаю пакеты (из тех пакетов, что пустило предыдущее правило) идущие на или с 443,25,110 портов других указанных хостов.

Но когда я делаю правило с определением состояния пакетов в цепочке Forward, у меня идет трафик с клиентских машин по всем по любым портам, даже если я закомментирую правила на 443,25,110 порт этой цепочки, почта и HTTPS страницы открываются.Читаю мануал и пытаюсь понять - почему? :)

Еще непонятно, если Input и Forward в таблице трассировке не пересекаются (идут по сути разными путями) и уходят в разные стороны после Prerouting, то как они взаимосвязаны? т.е. зачем я должен открывать порты в цепочке Input?
iptables-save
(Нажмите, чтобы показать/скрыть)

iptables -t filter -L
(Нажмите, чтобы показать/скрыть)
В голове сумбур, отдохнет пожалуй мозг, пока может кто чего разъяснит.
« Последнее редактирование: 13 Июля 2013, 18:57:00 от insiki »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1960 : 13 Июля 2013, 19:03:15 »
У вас в filter/INPUT не разрешен трафик из локальной сети. Вообще. Работает только потому, что пропускает вообще всё.
То же самое про filter/FORWARD.
Цепочка filter/OUTPUT не нужна.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн insiki

  • Участник
  • *
  • Сообщений: 168
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1961 : 13 Июля 2013, 20:12:07 »
У вас в filter/INPUT не разрешен трафик из локальной сети. Вообще. Работает только потому, что пропускает вообще всё.
То же самое про filter/FORWARD.
Цепочка filter/OUTPUT не нужна.
И как сразу не заметил? :) Правило разрешающее вообще все в Forward убрал и интернет работать стал только за счет Маскарадинга (если не прав - поправьте).
Получается так? (где eth0 - интерфейс внешний)
Цитировать
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
...
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -s 192.168.1.0/24 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 22 -j ACCEPT

А что по поводу моей трактовки цепочек и тд, можете дать комментарий? Где мысли верные, где нет.
Конечно, если это не отнимет у вас много времени. Штудирую пока тему, нашел уже ваши посты с обширными комментариями.
Спасибо.
« Последнее редактирование: 13 Июля 2013, 21:29:18 от insiki »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1962 : 13 Июля 2013, 21:54:41 »
В INPUT 22/25/110/443 порты есть смысл открывать, только если желаете принимать подключения из интернета по этим протоколам.
В FORWARD их открывать нет смысла вообще.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн insiki

  • Участник
  • *
  • Сообщений: 168
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1963 : 13 Июля 2013, 23:00:45 »
В INPUT 22/25/110/443 порты есть смысл открывать, только если желаете принимать подключения из интернета по этим протоколам.
Да, мне необходимо, чтобы клиентские машины из локальной сети могли ходить по HTTPS и забирать почту по pop/smtp/imap.
Для начала задача такая, дальше - разрешить работу mail.ru агент, 1C по впн и тд.
В FORWARD их открывать нет смысла вообще.
То есть сам по себе пакет, которые впустили мы через порт цепочке INPUT попадет через FORWARD тому, от кого был запрос, если есть правило с указанием источника, разрешающее эти запросы делать?
Я распечатал себе картинку, как пакеты ходят, но не пойму, как из INPUT пакет может попасть в FORWARD, если после обработки он идет в Postrouting. Или пакет может вернуться из INPUT через routing и пойти в Forward?
Глупость наверное, но понимания пока нет.
« Последнее редактирование: 13 Июля 2013, 23:23:59 от insiki »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1964 : 14 Июля 2013, 00:09:56 »
В INPUT 22/25/110/443 порты есть смысл открывать, только если желаете принимать подключения из интернета по этим протоколам.
Да, мне необходимо, чтобы клиентские машины из локальной сети могли ходить по HTTPS и забирать почту по pop/smtp/imap.
Вы невнимательно читаете то, что я пишу. Либо вообще не дочитываете.

В FORWARD их открывать нет смысла вообще.
То есть сам по себе пакет, которые впустили мы через порт цепочке INPUT попадет через FORWARD
Пакеты из INPUT никогда не попадут в FORWARD.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

 

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