![]() |
![]() |
Здравствуйте, гость ( Вход | Регистрация )
|
![]() ![]() |
![]() |
![]()
Сообщение
#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грн/мес! |
|
|
![]()
Сообщение
#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 и бриджинг из подсети на интерфейс сервака, смотрящий на вайфай-роутер. Нифиганеработает! ![]() ![]() Идём по цепочке двойного проброса: после собственно проброса нужного порта на вайфае: 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грн/мес! |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 4.4.2025, 5:21 |