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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: правило iptables. открыть порт.  (Прочитано 6992 раз)

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

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
правило iptables. открыть порт.
« : 20 Апреля 2013, 20:32:28 »
Понимаю, что пишу очередной баян, но не смог найти ответ на свой вопрос. Решения находились, но они были нерабочими.
Вдобавок привык к GUI-ям.

Ситуация такая: на "чистой" ubuntu-server 12.04 настроен шлюз (ICS), в дальнейшем планируется установка торрент-клиента.
Не могу открыть порт для торрента, ниже конфиг с правилами iptables:

#!/bin/sh

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#открываем порты на сервере -- именно с этим правилом проблема.

iptables -A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT

#Разрешаем входящие подключения на 3389

iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.3:3389
iptables -I FORWARD -i ppp0 -p tcp --dport 3389 -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i ppp0 -o eth1 -j REJECT

подскажите, пожалуйста, какое правило мне нужно?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #1 : 20 Апреля 2013, 21:29:08 »
В 100500-й раз - показывайте iptables-save
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #2 : 20 Апреля 2013, 22:01:27 »
вот.
root@ubuntu:~# iptables-save
# Generated by iptables-save v1.4.12 on Sat Apr 20 21:59:30 2013
*mangle
:PREROUTING ACCEPT [68274:21267945]
:INPUT ACCEPT [2652:246271]
:FORWARD ACCEPT [65541:20981760]
:OUTPUT ACCEPT [2210:295928]
:POSTROUTING ACCEPT [67791:21286214]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sat Apr 20 21:59:30 2013
# Generated by iptables-save v1.4.12 on Sat Apr 20 21:59:30 2013
*nat
:PREROUTING ACCEPT [2475:145306]
:INPUT ACCEPT [438:36303]
:OUTPUT ACCEPT [125:11164]
:POSTROUTING ACCEPT [72:7854]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.3:3389
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Sat Apr 20 21:59:30 2013
# Generated by iptables-save v1.4.12 on Sat Apr 20 21:59:30 2013
*filter
:INPUT ACCEPT [2610:241618]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2254:299949]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Sat Apr 20 21:59:30 2013

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #3 : 20 Апреля 2013, 22:28:31 »
А должно быть


*filter
:INPUT DROP [2610:241618]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2254:299949]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED,DNAT -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPT-FORWARD "
-A FORWARD -i ppp0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
COMMIT

P.S.
Судя по
:FORWARD DROP [0:0]
у вас пересылка пакетов не включена.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #4 : 20 Апреля 2013, 23:29:24 »
т.е. чтобы из вне можно было к роутеру по нужному порту коннектиться должна быть политика "iptables -P FORWARD ACCEPT", я правильно понимаю?
если я ее применю, те правила, которые сущесвуют сейчас перестанут работать как работали до ее применения?
что значат вычеркнутые правила?

прошу прощения за свою неосведомленность.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: правило iptables. открыть порт.
« Ответ #5 : 20 Апреля 2013, 23:39:32 »
что значат вычеркнутые правила?
Значит, что они не нужны.

т.е. чтобы из вне можно было к роутеру по нужному порту коннектиться должна быть политика "iptables -P FORWARD ACCEPT", я правильно понимаю?
Нет, выхлоп iptables-save требуетсф привести к указанному выше виду.

А эти строки по сути имеют одинаковый эффект:
Цитировать
:FORWARD DROP [0:0]
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
« Последнее редактирование: 20 Апреля 2013, 23:43:38 от ArcFi »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #6 : 20 Апреля 2013, 23:40:13 »
kolesov, у вас НЕТУ ТРАФИКА через цепочку FORWARD.
Политика тут дело 100500-е.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #7 : 21 Апреля 2013, 00:29:22 »
начал добавлять/убирать правила из скрипта по Вашим рекомендациям, вот, что получил:
:OUTPUT ACCEPT [4523:615149]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
COMMIT
но сразу пропал инет. сейчас откатился назад. я не уверен, что правильно действовал. мне же не только в скрипте нужно правила добавлять/удалять? что надо забэкапить, чтоб назад откатиться не переставляя системы?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #8 : 21 Апреля 2013, 00:38:06 »
Неудивительно. Потому что люди давно уже используют iptables-restore, а не мучаются со скриптами.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: правило iptables. открыть порт.
« Ответ #9 : 21 Апреля 2013, 00:39:37 »
kolesov, есть мнение, что для сохранения/загрузки правил целесообразнее использовать iptables-save/iptables-restore, тогда не придётся морочить моск ни себе, ни остальным.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #10 : 21 Апреля 2013, 00:53:02 »
выхлоп iptables-save требуется привести к указанному выше виду.
Только в отношении таблицы filter.
Остальные таблицы боле-мене нормально выглядят. Хотя...

Пользователь решил продолжить мысль 21 Апреля 2013, 01:04:16:
*mangle
:PREROUTING ACCEPT [68274:21267945]
:INPUT ACCEPT [2652:246271]
:FORWARD ACCEPT [65541:20981760]
:OUTPUT ACCEPT [2210:295928]
:POSTROUTING ACCEPT [67791:21286214]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT

*nat
:PREROUTING ACCEPT [2475:145306]
:INPUT ACCEPT [438:36303]
:OUTPUT ACCEPT [125:11164]
:POSTROUTING ACCEPT [72:7854]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.3:3389
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT

*filter
:INPUT DROP [2610:241618]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2254:299949]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED,DNAT -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPT-FORWARD "
-A FORWARD -p tcp -j REJECT --reject-with tcp-reset
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
COMMIT
« Последнее редактирование: 21 Апреля 2013, 01:04:16 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #11 : 21 Апреля 2013, 13:13:23 »
теперь iptables-save выглядит так:
# Generated by iptables-save v1.4.12 on Sun Apr 21 13:01:13 2013
*mangle
:PREROUTING ACCEPT [807:108308]
:INPUT ACCEPT [601:71288]
:FORWARD ACCEPT [181:33920]
:OUTPUT ACCEPT [675:75179]
:POSTROUTING ACCEPT [909:116488]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sun Apr 21 13:01:13 2013
# Generated by iptables-save v1.4.12 on Sun Apr 21 13:01:13 2013
*nat
:PREROUTING ACCEPT [38:2872]
:INPUT ACCEPT [17:1617]
:OUTPUT ACCEPT [417:42507]
:POSTROUTING ACCEPT [22:1644]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.3:3389
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Sun Apr 21 13:01:13 2013
# Generated by iptables-save v1.4.12 on Sun Apr 21 13:01:13 2013
*filter
:INPUT ACCEPT [569:69220]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [725:80290]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth1 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Sun Apr 21 13:01:13 2013
порты открылись, но куда делись правила оставленные и те которые нужно было добавить, например:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED,DNAT -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPT-FORWARD "
-A FORWARD -i ppp0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
а их нет здесь.

в конце-концов жестко прописал правила, которые вы указали в iptables.rules, и указал "post-up iptables-restore < /etc/iptables.rules" пропал инет (форвардин пакетов работал).

сейчас загрузился со скриптом, который в самом начале приведен.
почему-то открыт порт 8112, 6990 закрыт... раньше-то оба были закрыты.
« Последнее редактирование: 21 Апреля 2013, 13:42:03 от kolesov »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: правило iptables. открыть порт.
« Ответ #12 : 21 Апреля 2013, 14:15:06 »
Вот же готовое:
(Нажмите, чтобы показать/скрыть)

1. Это всё скопировать и сохранить в /etc/iptables.rules

2. Выполнить:
sudo iptables-restore /etc/iptables.rulesДолжно пройти без ошибок.

3. Проверить работоспособность инета и чего там ещё надо.

4. Если всё OK, то добавить в автозагрузку.

5. Если возникли проблемы, то показываем sudo iptables-save и рассказываем, что не работает.
« Последнее редактирование: 21 Апреля 2013, 14:30:06 от ArcFi »

Оффлайн kolesov

  • Автор темы
  • Участник
  • *
  • Сообщений: 202
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #13 : 21 Апреля 2013, 14:38:22 »
при iptables-restore /etc/iptables.rules
говорит:
Error occurred at line: 28
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
root@ubuntu:~# iptables-restore v1.4.12: Bad state "DNAT"
в строке 28:
-A FORWARD -m state --state RELATED,ESTABLISHED,DNAT -j ACCEPT



Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: правило iptables. открыть порт.
« Ответ #14 : 21 Апреля 2013, 18:07:56 »
Обновите ваш дистрибутив.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

 

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