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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: iptables Пробросить порт во внутреннюю сеть  (Прочитано 27041 раз)

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

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
хочу чтоб с любой точки мира при обращении к 91.195.101.20 на порт 7788 машина перебрасывала запрос на машину внутренней сети 192.168.100.251 на тотже порт

iptables -t nat -A PREROUTING -p tcp -d 91.195.101.20 --dport 7788 -j DNAT --to-destination 192.168.100.251:7788
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.100.251 --dport 7788 -j SNAT --to-source 91.195.101.20

Первое правило подменяет ip приёмника на внутренний ип, а второе обратно подменяет ип отправителя на внешний.

« Последнее редактирование: 02 Июня 2011, 00:27:37 от Дмитрий Бо »
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн Yden

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #1 : 07 Октября 2008, 20:42:17 »
а в чём собственно вопроссс? у меня вот так вот
-A PREROUTING -i ppp0 -p udp --dport 10000:50000  -j DNAT --to 10.0.7.111
« Последнее редактирование: 07 Октября 2008, 20:44:48 от Yden »

Оффлайн elec

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #2 : 29 Октября 2008, 13:50:46 »
а у меня вот что-то ни один из вариантов не пашет :-(
вот мой Iptables-save, мож подскажите в чем трабл?

# Generated by iptables-save v1.3.8 on Wed Oct 29 13:41:27 2008
*nat
:PREROUTING ACCEPT [2667:370555]
:POSTROUTING ACCEPT [250525:11039035]
:OUTPUT ACCEPT [250525:11039035]
-A PREROUTING -d ! 10.1.1.0/255.255.255.0 -i eth1 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 10.1.1.1:3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 30585 -j DNAT --to-destination 10.1.1.131
-A POSTROUTING -s 10.1.1.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Oct 29 13:41:27 2008
# Generated by iptables-save v1.3.8 on Wed Oct 29 13:41:27 2008
*mangle
:PREROUTING ACCEPT [66590:18923359]
:INPUT ACCEPT [51350:12761293]
:FORWARD ACCEPT [14204:6038232]
:OUTPUT ACCEPT [275986:23546296]
:POSTROUTING ACCEPT [290119:29580602]
COMMIT
# Completed on Wed Oct 29 13:41:27 2008
# Generated by iptables-save v1.3.8 on Wed Oct 29 13:41:27 2008
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j LOG
-A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP
-A INPUT -d 255.255.255.255 -i eth1 -j ACCEPT
-A INPUT -s 10.1.1.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -i eth1 -p ! tcp -j ACCEPT
-A INPUT -s 10.1.1.0/255.255.255.0 -i eth0 -j LOG
-A INPUT -s 10.1.1.0/255.255.255.0 -i eth0 -j DROP
-A INPUT -d 255.255.255.255 -i eth0 -j ACCEPT
-A INPUT -d 192.168.188.200 -i eth0 -j ACCEPT
-A INPUT -d 192.168.188.255 -i eth0 -j ACCEPT
-A INPUT -d 224.0.0.1 -j DROP
-A INPUT -j LOG
-A INPUT -j DROP
-A FORWARD -s 10.1.1.0/255.255.255.0 -i eth1 -o eth0 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 10.1.1.0/255.255.255.0 -o eth0 -j LOG
-A FORWARD -d 10.1.1.0/255.255.255.0 -o eth0 -j DROP
-A FORWARD -d 224.0.0.1 -j DROP
-A FORWARD -j LOG
-A FORWARD -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 255.255.255.255 -o eth1 -j ACCEPT
-A OUTPUT -d 10.1.1.0/255.255.255.0 -o eth1 -j ACCEPT
-A OUTPUT -d 224.0.0.0/240.0.0.0 -o eth1 -p ! tcp -j ACCEPT
-A OUTPUT -d 10.1.1.0/255.255.255.0 -o eth0 -j LOG
-A OUTPUT -d 10.1.1.0/255.255.255.0 -o eth0 -j DROP
-A OUTPUT -d 255.255.255.255 -o eth0 -j ACCEPT
-A OUTPUT -s 192.168.188.200 -o eth0 -j ACCEPT
-A OUTPUT -s 192.168.188.255 -o eth0 -j ACCEPT
-A OUTPUT -d 224.0.0.1 -j DROP
-A OUTPUT -j LOG
-A OUTPUT -j DROP
COMMIT
# Completed on Wed Oct 29 13:41:27 2008

Оффлайн elec

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #3 : 29 Октября 2008, 15:07:47 »
 :2funny: туплю


внешний eth0
192.168.188.200

внутренний eth1
10.1.1.1

комп на который надо проброс осуществить 10.1.1.131

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1117
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #4 : 29 Октября 2008, 16:00:40 »
нужно не только пробросить порт, но и разрешить форвардинг в этом направлении. у меня сделано вот так:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 55555 -i eth0 -j DNAT --to 192.168.111.66:55555
iptables -A FORWARD -m tcp -p tcp -d 192.168.111.66 --dport 55555 -j ACCEPT

Оффлайн elec

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #5 : 29 Октября 2008, 16:48:29 »
спасибо большое!
в итоге для того чтобы оно работало пришлось сделать аж 3 строчки! или я просто дурак :-D

-A PREROUTING -d 192.168.188.200 -p tcp -m tcp --dport 30583 -j DNAT --to-destination 10.1.1.131:30583
-A POSTROUTING -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j SNAT --to-source 192.168.188.200
-A FORWARD -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j LOG
-A FORWARD -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j ACCEPT

ничего лишнего тута нету? :)

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1117
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #6 : 30 Октября 2008, 09:21:59 »
спасибо большое!
в итоге для того чтобы оно работало пришлось сделать аж 3 строчки! или я просто дурак :-D

-A PREROUTING -d 192.168.188.200 -p tcp -m tcp --dport 30583 -j DNAT --to-destination 10.1.1.131:30583
-A POSTROUTING -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j SNAT --to-source 192.168.188.200
-A FORWARD -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j LOG
-A FORWARD -d 10.1.1.131 -p tcp -m tcp --dport 30583 -j ACCEPT

ничего лишнего тута нету? :)


LOG не обязательно. SNAT ИМХО не нужен...

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #7 : 31 Октября 2008, 11:40:54 »
У меня не работало.
В итоге на конечной машине шлюз по умолчанию должен быть прописан тот который перебрасывает порт на машину
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн bosha

  • Активист
  • *
  • Сообщений: 437
  • Mongolian Chop Squad 8)
    • Просмотр профиля
    • http://the-bosha.ru
А если сделать сложнее. Т.е. допустим у меня есть сайт доступный внешне(допустим http://tlt-portal.ru/), и в сети у нас есть не плохой форум который можно было бы прикрутить к нему же. Как мне сделать что бы при обращении к http://forum.tlt-portal.ru шел редирект на внутрейнний ip другого сервера. При чем усложняется это тем, что на сервере с форумом я буду поднимать postfix для рассылки уведомлений. Как бы это реализовать.

зы Не пинайте, в гугле не нашел.

Оффлайн stinis

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Поспотрите плиз.

Нужно пробросить порт на 192.168.1.2:12000
Не работает((( Что не так???


root@ubuntu-server:~# iptables-save
# Generated by iptables-save v1.4.1.1 on Thu Jul 30 16:00:01 2009
*filter
:INPUT ACCEPT [4079:469702]
:FORWARD ACCEPT [1653:244298]
:OUTPUT ACCEPT [1773:206395]
-A FORWARD -d 192.168.1.2/32 -p tcp -m tcp --dport 12000 -j ACCEPT
COMMIT
# Completed on Thu Jul 30 16:00:01 2009
# Generated by iptables-save v1.4.1.1 on Thu Jul 30 16:00:01 2009
*nat
:PREROUTING ACCEPT [106889:10722035]
:POSTROUTING ACCEPT [79:5400]
:OUTPUT ACCEPT [1422:105442]
-A PREROUTING -d 85.159.46.35/32 -p tcp -m tcp --dport 12000 -j DNAT --to-destination 192.168.1.2:12000
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 12000 -j SNAT --to-source 85.159.46.35
COMMIT
# Completed on Thu Jul 30 16:00:01 2009

Оффлайн Cobalt

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOW-TO iptables Пробросить порт во внутреннюю сеть
« Ответ #10 : 22 Октября 2009, 01:00:32 »
Хочу пробросить порт из интернета в локалку.
Делаю так:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 5002 -j DNAT --to-destination 10.1.0.1:4081
iptables -A FORWARD -d 10.1.0.1 -p tcp -m tcp --dport 4081 -j ACCEPT
ufw allow from any to any port 5002

Когда захожу на 5002 телнетом тот пишет — Не удалось открыть подключение к этому узлу, на порт 5002: Сбой подключения

:-[
« Последнее редактирование: 22 Октября 2009, 01:06:23 от Cobalt »

 

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