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

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Вот собственно постала такая задача ... есть сервер на нам находится 2 адреса один xxx.ru другой yyy.ua, на xxx.ru уже действует DC++ хаб, но появилась задача надо поставить на yyy.ua такой же хаб, который бы тоже отзывался на стандартный порт хаба 411, сетевая карта одна айпи адрес тоже...  Собственно вопрос: Как зделать чтобы на один и тот же порт но отзываемый с разных DNS адресов откликались разные хабы ?  :(
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн speccyfan

  • Участник
  • *
  • Сообщений: 522
  • CCNA
    • speccyfan (Примеры различных конфигураций сетевых сервисов)
Создать дополнительный подинтерфейс eth0:0 назначить ему какой надо IP, прописать его в ДНС, а вот можно ли указать самому DC++ что слушать, эт не знаю.
With best regards, Yury Konovalov aka 2:453/53

Оффлайн Schum@cheR

  • Участник
  • *
  • Сообщений: 71
    • http://twitter.com/schumachermkua
Создать дополнительный подинтерфейс eth0:0 назначить ему какой надо IP, прописать его в ДНС
1)Тоесть мне надо у меня на сервере поднять и настроить DNS ?
2)Поподробней создать вторую виртуальную карту ?  ???
http://twitter.com/schumachermkua - Мой Твиттер

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
1)Тоесть мне надо у меня на сервере поднять и настроить DNS ?
2)Поподробней создать вторую виртуальную карту ?  ???

1. Как поднять DNS читай в пошаговых инструкциях.
2. создать второй адрес просто, надо  в /etc/net/ifaces/eth0/ipv4address записать второй адрес, например есть уже запись 10.0.0.1/24 добавить запись наже строкой
10.0.0.254/24 , затем сделать service network restart   и при выполнении команды ip a s  покажет уже два адреса.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Anatel

  • Участник
  • *
  • Сообщений: 2
Проброс порта внутрь сети
« Ответ #4 : 23.03.2009 18:00:12 »
Здравствуйте господа форумчане! Прошу помощи. Установил Alt Liux Office Server 4.0, настроил следующую схему:
Интерфейс eth2 (192.168.1.5/24) подключен к АДСЛ модему(который настроен маршрутизатором и подключен к провайдеру), интерфейс eth0 (10.0.0.5/24) подключен к локальной сети. На сервере настроил SQUID на порт 3128, с авторизацией NCSA. Прокси работает, но стокнулся с проблемой, не могу пробросить порты 25, 110, 1024 для работы программы  Банк-клиент и попутно для Outlook Express на машинах в сети. Для этого выолнил:   
1- Остановил Postfix,
2 – выполнил команды
    iptables –t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth2 –p tcp –m tcp –dport   1024 –j SNAT –to-source 192.168.1.5:1024
 аналогично для 25 и 110
3 – разрешил форвардинг (не  знаю нужно-ли было)
 #echo 1 > /proc/sys/net/ipv4/ip_forvard
В итоге ничего не работет, банк-клиент и почтовые клиенты на компах в сети не получают почту. Я конечно понимаю, что чего-то не допонимаю, не могли бы ткнуть носом в нужную сторону. MANы конечно ещё почитаю, просто начальство со сроками поджимает, а с Линуксом имею дело ровно неделю.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Не углубляясь далеко, первое, что бросается глаза. Если вы даже всё сделали правильно - вы произвели однократные действия, который работают до первой перезагрузки системы.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
    iptables –t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0  eth2 –p tcp –m tcp –dport   1024 –j SNAT –to-source 192.168.1.5:1024
 аналогично для 25 и 110
У меня работало примерно так:

iptables –t nat -A POSTROUTING -s 10.0.0.0/24 -d 217.217.217.217 eth2 –p tcp –m tcp –dport 1024 –j SNAT –to 192.168.1.5

Разрешаем доступ сети 10.0.0.0/24  обращаться к хосту 217.217.217.217 на 1024 порт протокола tcp; такие обращения пропускаем через интерфейс eth2, который имеет адрес 192.168.1.5


iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -p tcp --dport 1024 -j MASQUERADE
   Более короткое правило, аналогичное вышеприведённому, только здесь 10.0.0.0/24 имеют доступ к любому 1024 в Интернете.



3 – разрешил форвардинг (не  знаю нужно-ли было)
 #echo 1 > /proc/sys/net/ipv4/ip_forvard
разрешаем маршрутизацию на на один раз до перезагрузки
# sysctl -w net.ipv4.ip_forward=1
Проверить
# sysctl -a |grep forwarding
увидеть  net.ipv4.conf.lo.forwarding = 1 или 0 если не открыт
Для того чтобы правило вступало в силу и после перезагрузки заходим в  /etc/net/sysctl.conf находим
net.ipv4.ip_forward = 0 и изменяем на 1

Для того чтобы iptables  запускался при перезагрузки сервера
# chkconfig --level 35 iptables  on
# chkconfig --list iptables
iptables           0:off   1:off   2:off   3:on    4:off    5:on    6:off


Сохраняем эти правила, чтобы  при запуске системы прописанные нами правила восстановились.
# iptables-save > /etc/sysconfig/iptables

« Последнее редактирование: 23.03.2009 19:58:24 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Anatel

  • Участник
  • *
  • Сообщений: 2
Не углубляясь далеко, первое, что бросается глаза. Если вы даже всё сделали правильно - вы произвели однократные действия, который работают до первой перезагрузки системы.

да забыл упомянуть про service iptables save

to Salomatin
Спасибо. Попробую по Вашему примеру. Кажется понял ошибку  :)

Оффлайн speccyfan

  • Участник
  • *
  • Сообщений: 522
  • CCNA
    • speccyfan (Примеры различных конфигураций сетевых сервисов)
iptables проброс порта во внутрь сети
« Ответ #8 : 02.06.2009 13:09:42 »
Здравствуйте! Есть интересная задача. Есть сервер в сети Интернет который на определенном порту (например 222) предоставляет некий сервис.

Есть задача "вытянуть" этот порт на наш шлюз, что бы до него можно было достучаться из локалки, подключаясь к шлюзу изнутри, при этом не попадая в Инет.

т.е.
1. клиент подключается к нашему шлюзу на порт 222
2. шлюз перенаправляет пакет серверу в Интернет па порт 222
3. сервер отвечает шлюзу
4. шлюз перенаправляет ответ сервера клиенту

Вопрос, как это реализовать средствами iptables?

Обычно в сети примеры для пробрасывания порта наружу, а тут немного наоборот.
сделал правило:
iptables -t nat -A PREROUTING -d /внутренний ip шлюза/ -p tcp -m tcp --dport 222 -j DNAT --to-destination /ip сервера:222/

Теперь если просканить внутренний ip шлюза видим:
Interesting ports on gateway (лок. ip шлюза):
PORT    STATE    SERVICE
222/tcp filtered rsh-spx

Nmap finished: 1 IP address (1 host up) scanned in 1.129 seconds
т.е. он почему-то filtered.

добавил:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 222 -j ACCEPT
iptables -A FORWARD -i ppp2 -p tcp -m tcp --dport 222 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 222 -j ACCEPT
Ничего не помогает, ppp2 тут внешний интерфейс шлюза. Пробывал покрутить SNAT, тоже не получилось. Что-то я запутался, есть мысли у кого, как такое сделать правильно?
With best regards, Yury Konovalov aka 2:453/53

Оффлайн Andrey

  • Участник
  • *
  • Сообщений: 734
Re: iptables проброс порта во внутрь сети
« Ответ #9 : 02.06.2009 13:15:40 »
tcpdump -ni ppp2
в момент сканирования что показывает?

Оффлайн speccyfan

  • Участник
  • *
  • Сообщений: 522
  • CCNA
    • speccyfan (Примеры различных конфигураций сетевых сервисов)
Re: iptables проброс порта во внутрь сети
« Ответ #10 : 02.06.2009 13:39:53 »
[root@gateway sysconfig]# tcpdump -ni ppp2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
12:37:33.477086 IP 10.8.21.229.47670 > 82.209.206.133.222: S 2075869848:2075869848(0) win 1024 <mss 1460>
12:37:33.580280 IP 10.8.21.229.47671 > 82.209.206.133.222: S 2075804313:2075804313(0) win 3072 <mss 1460>
Тут 10.8.21.229 машина с которой сконирую, 82.209.206.133  удаленный сервер
Ощущение, что пакеты не возвращаются :(
With best regards, Yury Konovalov aka 2:453/53

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: iptables проброс порта во внутрь сети
« Ответ #11 : 02.06.2009 13:58:41 »
Может быть такое решение:
Проверял, работает:
iptables -t nat -A POSTROUTING -s 10.0.3.41 -d 217.217.217.217 -o eth1 -p tcp --dport 222 -j SNAT --to 116.116.116.116
   Разрешаем прямой доступ к порту 222. Подробнее: разрешаем доступ хосту 10.0.3.41 из внутренней сети обращаться к хосту 217.217.217.217 на 222 порт протокола tcp; такие обращения пропускаем через интерфейс eth1, который имеет адрес 116.116.116.116
 
iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 222 -j MASQUERADE
   Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому  серверу в Интернете по 222 порту.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн speccyfan

  • Участник
  • *
  • Сообщений: 522
  • CCNA
    • speccyfan (Примеры различных конфигураций сетевых сервисов)
Re: iptables проброс порта во внутрь сети
« Ответ #12 : 02.06.2009 14:12:03 »
Может быть такое решение:
Проверял, работает:
[skip]
 iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 222 -j MASQUERADE
   Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому  серверу в Интернете по 222 порту.
Почти так оно на данный момент и работает, только указан еще -d "ip назачения". Проблема в том, что не хочется видеть Интернетовские IP адреса у себя в локалке. И не прописывать этот маршрут на всех цисках.
Т.е. сделать как бы подмену хоста с перенаправлением пакетов.
Но есть большое подозрение, что сие реализовать вообще не получится.
« Последнее редактирование: 02.06.2009 14:15:10 от speccyfan »
With best regards, Yury Konovalov aka 2:453/53

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: iptables проброс порта во внутрь сети
« Ответ #13 : 02.06.2009 14:30:20 »
Но есть большое подозрение, что сие реализовать вообще не получится.

Не думаю.
Вот так, например, пробрасывают порт  снаружи вовнутрь:
iptables -t nat -A PREROUTING -d 81.89.95.114 -p tcp --destination-port 222 -j DNAT --to-destination 10.0.0.27
при обращении снаружи на ip 81.89.95.114 попадаешь на 10.0.0.27
аналогично можно пробросить порт наружу.   
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Andrey

  • Участник
  • *
  • Сообщений: 734
Re: iptables проброс порта во внутрь сети
« Ответ #14 : 02.06.2009 15:52:13 »
[root@gateway sysconfig]# tcpdump -ni ppp2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
12:37:33.477086 IP 10.8.21.229.47670 > 82.209.206.133.222: S 2075869848:2075869848(0) win 1024 <mss 1460>
12:37:33.580280 IP 10.8.21.229.47671 > 82.209.206.133.222: S 2075804313:2075804313(0) win 3072 <mss 1460>
Тут 10.8.21.229 машина с которой сконирую, 82.209.206.133  удаленный сервер
Ощущение, что пакеты не возвращаются :(
Как Вы думаете 82.209.206.133, что нибудь знает о 10.8.21.229?
Покажите еще
traceroute 82.209.206.133
Подозреваю что вашу схему не в этом месте нужно реализовыват...