Здравствуйте, гость ( Вход | Регистрация )

Бизнес ЛайфКиевстар бизнес         Корпоративный МТС

Зарабатывайте по 1грн за сообщение на свой мобильный счёт - экономьте на связи! Подробнее>>>>

 
Ответить в данную темуНачать новую тему
> Port mapping/forwarding
DAMPSoid
сообщение 29.10.2010, 16:42
Сообщение #1


Администратор
******

Группа: Главные администраторы
Сообщений: 1.890
Регистрация: 2.11.2007
Из: Ukraine
Пользователь №: 1



Наверное каждый мало-мальски практикующий сисадмин сталкивался с проблемой проброски портов в локалку через фряшный или линуховый сервер.

Задачу можно решать по-разному: с помощью natd, ipfw и пр...но как сделать просто быстро и надёжно?

Неоценимую помощь в сабже оказал мне сегодня этот конфиг:

cd /usr/ports/net/rinetd && make && make install clean
echo "rinetd_enable="YES"" >> /etc/rc.conf

В /usr/local/etc/rinetd.conf прописываем:

213.27.10.8 5900 192.168.0.100 5900 (внешний IP порт внутренний IP порт)

Стартуем rinetd:
/usr/local/etc/rc.d/rinetd start

всё чудесно заработало, даже перезагрузка не понадобилась!

Респект автору>>


--------------------
Всегда найдется в Африке хотя бы один негр, который станет учить норвежца на лыжах кататься!

Формула успеха: (СБЛ50+Бизнес10+СМТС+БУМ+Наши Люди)*Мультисим+CDMA=Безлимитка за 150грн/мес!
Перейти в начало страницы
 
+Цитировать сообщение
DAMPSoid
сообщение 3.4.2021, 23:24
Сообщение #2


Администратор
******

Группа: Главные администраторы
Сообщений: 1.890
Регистрация: 2.11.2007
Из: Ukraine
Пользователь №: 1



Проблема "двойного NAT'a" звучит устрашающе для новичков, да что греха таить, подчас может ввести в ступор и бывалых админов.

Откуда ноги растут? Есть обычных домашний Wifi-роутер который умеет только прокидывать порты сквозняком (без переназначения номеров) и позволяет настроить примитивную маршрутизацию и раздачу DHCP либо статику с подсетью 192.168.1.0/24

В локалке за роутером стоит сервак HP G7 с Proxmox KVM на борту. Своим единственным сетевым интерфейсом он смотрит на роутер с шлюзом 192.168.1.1. На нём крутятся виртуалки с внутренними IP 10.10.10.0/24

Задача: обеспечить виртуалкам доступ в глобальную сеть по определённым портам, например RDP.

Первым делом, пробрасываю порт сквозняком, включаю роутинг на вайфае в подсетку 10.10.10.0 и бриджинг из подсети на интерфейс сервака, смотрящий на вайфай-роутер.
Нифиганеработает! angry.gif dry.gif

Идём по цепочке двойного проброса:

после собственно проброса нужного порта на вайфае:
33389 192.168.1.2 33389 TCP или UDP Включено

вносим конфигурационные изменения в конфиг сети сервака с Proxmox:

nano /etc/network/interfaces

находим там виртуальный интерфейс vmbr1(2,3...и т.п.) который связан с нужной нам виртуалкой и добавляем в конец конфига следующие строки:

auto vmbr1
iface vmbr1 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0

post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE


Vmbr0 это интерфейс сервака, смотрящий на вайфай роутер с айпи в моем случае 192.168.1.2 - он может называться eth0, eth1 и т.п.
В моём конфиге он выглядит так:
auto vmbr0
iface vmbr0 inet static
address 192.168.1.2/24
gateway 192.168.1.1
bridge-ports eth0
bridge-stp on
bridge-fd 0
network 192.168.1.0
dns-nameservers 192.168.1.1 8.8.8.8
pre-up ifconfig eth0 mtu 9000


Дальше добавляем правило в iptables:

(схематично, не копируйте втупую, а подставьте свои данные:
iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d %IP_external% --dport %ext_port% -j DNAT --to %IP_internal%:%int_port%
где
%IP_external% - внешний IP, но не глобальный инетовский, а внешний для виртуалки, т.е. адрес интерфейса сервака, смотрящий на роутер
%ext_port% - внешний порт, тот что задан вторым в проброске на роутере (в моем случае они одинаковы)
%IP_internal% - внутренний айпи виртуалки
%int_port% - айпи самой виртуалки, который и нужно пробросить

т.е. в моем случае это выглядит так:

iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d 192.168.1.2 --dport 33389 -j DNAT --to 10.10.10.2:3389


Теперь нужно сохранить правила iptables, чтобы при перезагрузке они сохранялись:
iptables-save > /etc/iptables.rules
Создадим скрипт загрузки правил:

nano /etc/network/if-pre-up.d/iptables


И впишем в него команду загрузки правил из сохраненного ранее файла:
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules

дадим ему права на исполнение:
chmod +x /etc/network/if-pre-up.d/iptables

всё, теперь при перезагрузке правила сохранятся

И ВСЁ ЗАМЕЧАТЕЛЬНО РАБОТАЕТ!!! Проверено.

Спасибо за мануал: https://skobk.in/2012/03/kvm-vps-proxmox-wi...ort-forwarding/


--------------------
Всегда найдется в Африке хотя бы один негр, который станет учить норвежца на лыжах кататься!

Формула успеха: (СБЛ50+Бизнес10+СМТС+БУМ+Наши Люди)*Мультисим+CDMA=Безлимитка за 150грн/мес!
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 23.11.2024, 6:43
Rambler's Top100
build_links(3); ?>