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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Форвард портов (для камеры)  (Прочитано 1887 раз)

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Форвард портов (для камеры)
« Ответ #15 : 20 Августа 2010, 16:37:55 »
Саму камеру можно было оставить на... эээ... хмык :) вот откуда ноги росли у бага.
Объясняю. Карту в руки возьми, чтобы следить за мыслью.

-t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination $CAMERA_IP:$CAMERA_PORT

Поскольку nat/PREROUTING выполняется до filter/FORWARD, любой пакет, адресованный на порт 80 и проходящий через нашу машину, будет пересылаться на камеру.
В том числе попытки подключиться к HTTP серверам в интернете.
Чтобы этого не было, надо объяснить нетфильтру, какие именно пакеты мы хотим куда посылать.

Как-то так:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Отрежем пакеты, относящиеся к уже установленным соединениям
-A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Пошлём новые входящие соединения из интернета на камеру
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to-destination 192.168.0.20:80
# Ну и то что было - NAT на выходе
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT

P.S.
Тем, у кого "--dport без -m tcp работает" - iptables само дописывает -m tcp при передаче правила нетфильтру. Так что так.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн lega911

  • Участник
  • *
  • Сообщений: 203
    • Просмотр профиля
    • python & linux
Re: Форвард портов (для камеры)
« Ответ #16 : 20 Августа 2010, 20:34:32 »
P.S. Тем, у кого "--dport без -m tcp работает" - iptables само дописывает -m tcp при передаче правила нетфильтру. Так что так.
в том и дело, и это в iptables уже вроде как давно, поэтому прописывать нет необходимости.

Оффлайн MaratSh

  • Участник
  • *
  • Сообщений: 204
  • Всё пройдёт...
    • Просмотр профиля
Re: Форвард портов (для камеры)
« Ответ #17 : 20 Августа 2010, 20:37:02 »
Топик-стартер понимает, что это:
*filter
:INPUT ACCEPT [438:51102]
:FORWARD ACCEPT [725:176324]
:OUTPUT ACCEPT [387:53181]
означает, что сервер торчит голым задом в инет?  ???

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Форвард портов (для камеры)
« Ответ #18 : 20 Августа 2010, 21:05:52 »
P.S. Тем, у кого "--dport без -m tcp работает" - iptables само дописывает -m tcp при передаче правила нетфильтру. Так что так.
в том и дело, и это в iptables уже вроде как давно, поэтому прописывать нет необходимости.

Повторяю - ПРОПИСЫВАЕТ, а не ПОДРАЗУМЕВАЕТ. Иными словами, оно НУЖНО. но в виду крайней ОЧЕВИДНОСТИ этого правила, его добавление происходит помимо пользователя, если в правиле после -p xxx идут специфичные для протокола проверки.

Топик-стартер понимает, что это:

Не понимает...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

 

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