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


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

Автор Тема: NAT проброс портов  (Прочитано 3701 раз)

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

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
NAT проброс портов
« : 17 Марта 2011, 15:58:50 »
Всем привет. Я знаю что вопрос поднимался тут уже неоднократно, но почему-то не получается. У нас есть в локальной сети веб-сайт нужно сделать так чтоб могли туда заходить из интернета, стоит роутер на Ubuntu сервере 10.04. eth0 смотрит во внешку, eth1 в локалку. ип локального компьютера на который должно идти подключение  172.16.0.4 на 80 порт.
 По идее можно написать на роутере
iptables -t nat -I PREROUTING --dst 172.16.0.4 -p tcp -m tcp --dport 80 -j DNAT --to-destination 217.х.х.х:4999
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.16.0.4

но по ип 217.х.х.х:4999 никуда не захожу, подскажите пожалуйста в чём ошибка или недонастроил что?

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: NAT проброс портов
« Ответ #1 : 17 Марта 2011, 16:06:05 »
-A PREROUTING -p tcp -m tcp -d ip_eth0 --dport port_probrosa -j DNAT --to-destination ip_kompa:port_kompa
Be root, be different...

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #2 : 17 Марта 2011, 16:25:23 »
не работает(

Пользователь решил продолжить мысль 17 Марта 2011, 16:26:41:
у нас кстати после этого прокси перестаёт работать(

Гарри Кашпировский

  • Гость
Re: NAT проброс портов
« Ответ #3 : 17 Марта 2011, 16:35:32 »
-A PREROUTING -p tcp -m tcp -d ip_eth0 --dport port_probrosa -j DNAT --to-destination ip_kompa:port_kompa
--dst == -d
man iptables

ТС покажите iptables-save

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28479
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #4 : 17 Марта 2011, 16:55:56 »
Всем привет. Я знаю что вопрос поднимался тут уже неоднократно, но почему-то не получается. У нас есть в локальной сети веб-сайт нужно сделать так чтоб могли туда заходить из интернета, стоит роутер на Ubuntu сервере 10.04. eth0 смотрит во внешку, eth1 в локалку. ип локального компьютера на который должно идти подключение  172.16.0.4 на 80 порт.
 По идее можно написать на роутере
iptables -t nat -I PREROUTING --dst 172.16.0.4 -p tcp -m tcp --dport 80 -j DNAT --to-destination 217.х.х.х:4999
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.16.0.4

но по ип 217.х.х.х:4999 никуда не захожу, подскажите пожалуйста в чём ошибка или недонастроил что?


Вы уже определитесь, у вас eth0 или eth1 во внешку смотрит.
А то говорите одно, а в правилах пишете другое.
Вам надо три правила, на самом деле.
-t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t nat -A PREROUTING -i внешний интерфейс -p tcp -m tcp --dport порт перенаправления -j DNAT --to-destination адрес сервера:порт сервиса

-t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT

(Ладно, ладно, это четыре...)
В обоих таблицах первое правило должно быть первым, второе - где угодно до блокировок.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: NAT проброс портов
« Ответ #5 : 17 Марта 2011, 17:13:31 »
Цитировать
--dst == -d
man iptables

Я написал рабочее правило !
Be root, be different...

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #6 : 17 Марта 2011, 17:20:59 »
root@smgou:~# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 6693 packets, 528K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           ctstate RELATED,ESTABLISHED
    0     0 DNAT       tcp  --  217.х.х.х *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4800 to:172.16.0.4:80
   20  1164 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4800 to:172.16.0.4:80

Chain POSTROUTING (policy ACCEPT 3342 packets, 209K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3342 packets, 209K bytes)
 pkts bytes target     prot opt in     out     source               destination

Пользователь решил продолжить мысль 17 Марта 2011, 17:22:15:
пробовал
Цитировать
Вы уже определитесь, у вас eth0 или eth1 во внешку смотрит.
А то говорите одно, а в правилах пишете другое.
Вам надо три правила, на самом деле.
-t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t nat -A PREROUTING -i внешний интерфейс -p tcp -m tcp --dport порт перенаправления -j DNAT --to-destination адрес сервера:порт сервиса

-t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
из внешки не заходит

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: NAT проброс портов
« Ответ #7 : 17 Марта 2011, 17:26:49 »
ээээ.... а на 2-й тачке вообще разрешен 80 порт ?
Be root, be different...

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #8 : 17 Марта 2011, 17:40:39 »
да, через любую машину в локалке можно зайти по 172.16.0.4:80 , а если пишем на  машине которая в инете 217.х.х.х:4800 то не заходит никуда(

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28479
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #9 : 17 Марта 2011, 17:43:49 »
Цитировать
--dst == -d
man iptables

Я написал рабочее правило !
Нет. Сам найди, в чём ошибка.

root@smgou:~# iptables -L -n -v -t nat
И что нам это сказало? Тебя просили привести iptables-save. Где оно?

Цитировать
Цитировать
Вы уже определитесь, у вас eth0 или eth1 во внешку смотрит.
А то говорите одно, а в правилах пишете другое.
Вам надо три правила, на самом деле.
-t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t nat -A PREROUTING -i внешний интерфейс -p tcp -m tcp --dport порт перенаправления -j DNAT --to-destination адрес сервера:порт сервиса

-t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
из внешки не заходит
Спасибо, что удосужились поставить нас в известность.
ДИАГНОСТИКА ГДЕ? Конфиги логи? Как вы предполагаете, чтобы мы в ваших проблемах копались - по телепатическому каналу?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: NAT проброс портов
« Ответ #10 : 17 Марта 2011, 17:46:23 »
Цитировать
--dst == -d
man iptables

Я написал рабочее правило !
Нет. Сам найди, в чём ошибка.

Да. Работает на шлюзе, только под федорой.
Be root, be different...

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28479
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #11 : 17 Марта 2011, 17:47:40 »
Цитировать
--dst == -d
man iptables

Я написал рабочее правило !
Нет. Сам найди, в чём ошибка.

Да. Работает на шлюзе, только под федорой.
Нет... и ошибка не в _этом_ правиле. А в вашем совете.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #12 : 17 Марта 2011, 17:49:16 »
# Generated by iptables-save v1.4.4 on Thu Mar 17 17:47:17 2011
*filter
:INPUT ACCEPT [475125:349209275]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [420104:368318880]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
COMMIT
# Completed on Thu Mar 17 17:47:17 2011
# Generated by iptables-save v1.4.4 on Thu Mar 17 17:47:17 2011
*nat
:PREROUTING ACCEPT [22658:1769523]
:POSTROUTING ACCEPT [12152:737391]
:OUTPUT ACCEPT [12152:737391]
-A PREROUTING -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -i 217.x.x.x -p tcp -m tcp --dport 4800 -j DNAT --to-destination 172.16.0.4:80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4800 -j DNAT --to-destination 172.16.0.4:80
COMMIT

Оффлайн uid0

  • Активист
  • *
  • Сообщений: 371
    • Просмотр профиля
    • hitetra.ru
Re: NAT проброс портов
« Ответ #13 : 17 Марта 2011, 17:50:39 »
Цитировать
--dst == -d
man iptables

Я написал рабочее правило !
Нет. Сам найди, в чём ошибка.

Да. Работает на шлюзе, только под федорой.
Нет... и ошибка не в _этом_ правиле. А в вашем совете.


У меня подобными правилами осуществляются все пробросы портов с внешнего интерфейса в локалку !
И что я не так посоветовал ?
Be root, be different...

Оффлайн bubuntu-ru

  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Re: NAT проброс портов
« Ответ #14 : 17 Марта 2011, 17:54:49 »
Так поиграйся(если правльно понял что требуется)
-A PREROUTING -t nat -i ppp0 -p udp -m udp --dport 3210 -j DNAT --to-destination 192.168.2.204:3210
-A FORWARD -d 192.168.2.204/32 -i ppp0 -p udp -m udp --dport 3210 -j ACCEPT
с интефейсами сам играйся, какие у тебя, и портами.

 

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