LINUX.ORG.RU
ФорумAdmin

OpenVPN+Forwarding+User

 


0

1

Много Уважаемые гуру. Прошу Вашей помощи. Задача имеется VDS. на ней ubunta 14. внешний айпи(Паблик) 54.12.25.24 На машине нужно поднять OpenVPN(так как очень гибкий зверь и можно трафик гонять по 443 порту со всеми вытекающими). К vpn будет подключаться компьютер и получать локальный IP 192.168.30.10. Вопрос 1. Как посмотреть какой именно будет интерфейс при подключении vpn (имеется ввиду на подобии eth0) Вопрос 2. Как прокинуть весь трафик, по всем портам, который будет приходить на 54.12.25.24, на 192.168.30.10, при этом с ограничением скорости канала до 5 мегабайт в секунду. Вопрос 3. Есть ли готовые решения, наподобии SoftEarth VPN Server? Последний к сожалению не подходит так как прокидывание портов вроде как не поддерживает, покрайне мере сутки поисков не помогли.

Ответ 1. Интерфейс задаётся в конфиге openvpn.

Ответ 2. Порты прокидываются в iptabels (правило DNAT), а полоса ограничивается командой ″tc″. Задачи никак не связаны между собой, «при этом» явно лишнее, да и с VPN сервером задачи не связаны, сервер делает тунель, а трафик рулится другим. Если вы подключаетесь клиентом к адресу 54.12.25.24, то как вы собрались пробрасывать в тунель всё, приходящее на этот адрес, openvpn-трафик сам себя завернуть хотите?

Ответ 3. Наверное, можно найти много разных vpn-серверов, с разными возможностями, но сомневаюсь, что будет такой, у котрого будет кнопка «пробростить трафик и ограничить полосу».

сутки поисков

Нече целые сутки фигню искать, спать тоже надо.

mky ★★★★★
()
Ответ на: комментарий от mky

Ответ 1. Интерфейс задаётся в конфиге openvpn

Спасибо, поищу. По команде ipconfig увидел название интерфейса tun0

Ответ 2. Порты прокидываются в iptabels (правило DNAT), а полоса ограничивается командой ″tc″.

Можно пример?

Если вы подключаетесь клиентом к адресу 54.12.25.24, то как вы собрались пробрасывать в тунель всё, приходящее на этот адрес, openvpn-трафик сам себя завернуть хотите?

Здесь госпожа логика меня наверное покинула:) Согласен не весь трафик нужно прокидывать, просто на клиенте который будет подключаться к 54.12.25.24, будут крутиться несколько сервисов, такие как apache (80)порт, видеонаблюдение причем трафик гоняет сам видеорегистратор (сейчас могу ересь сказать) по протоколу upnp на облако, так же подключение будет и напрямую, без облака к видеорегистратору. Дополнительно будут открываться порты для доп сервисов, прокидывать их будет некому, так как клиент разовый на обслуживание его не возьму, а специалиста нанят ему жаба видать давит.

Нече целые сутки фигню искать, спать тоже надо.

Согласен, однако с Linux дружбу начал водить недавно, посему ошибки банальны. Было бы время много сел бы изучать с нуля. Сейчас по мере возможности.

нашел интересную статью https://habrahabr.ru/post/231175/ Вот мне бы наверное примерно также весь трафик с eth0 в tun0 (OpenVpn Создает такой интерфейс) Получается на vds я прописываю что то подобное (пусть 1.2.3.4 это ip eth0 на который приходят пакеты с белого 54.12.25.24) ip route add 1.2.3.4 dev ton0

Однако, как сказал mky, нужно хотябы доступ по ssh (22 порт) и openvpn (1194 порт) сохранить, дабы оставить доступ к самому vds. Вопрос что тогда прописать для такой задачи?:)

alemsin
() автор топика
Ответ на: комментарий от alemsin

И еще один вопрос как настроить второй компьютер (Сервер S1 (внутренний)) если в статье указанной выше настройки делаются на centros, а в моем случае у клиента windows.

alemsin
() автор топика
Ответ на: комментарий от alemsin

что-то типа

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.123.123
ну и в FORWARD если политика дропа, то надо разрешить пакеты на твой адрес.

Посмотрел ту статью, там, как я понял, к серверу подключаются через другой адрес, не тот, который потом отдается клиенту (т. е. надо купить дополнительный IP-адрес, или, если на впске есть IPv6, можно в теории подключаться через него)

deadNightTiger ★★★★★
()
Последнее исправление: deadNightTiger (всего исправлений: 1)
Ответ на: комментарий от deadNightTiger

ну и в FORWARD если политика дропа, то надо разрешить пакеты на твой адрес.

Не совсем понял, какой «твой» адрес? имеется ввиду адрес с которого буду подключаться к серверу?

alemsin
() автор топика
Ответ на: комментарий от alemsin

Про DNAT правила вам уже написали. Про шейпинг, в самом простом случае, можно как-то так:

# tc qdisc add dev tun0 root tbf rate 5mbit latency 20ms buffer 50000

но, по факту, как только мы ограничиваем скорость начинаются всякие проблемы, для решения которых необходимо внутри этих 5 Мбит выделять отдельные гарантированные полосы для DNS-пакетов, служебных TCP-пакетов (ACK) и т.д. и появляются утилиты наподобие ″htb.init″ или ″sc″ которые из относительно простых файлов конфигурации генерят фильтры/шейперы tc.

mky ★★★★★
()
Ответ на: комментарий от deadNightTiger

что-то типа
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.123.123
ну и в FORWARD если политика дропа, то надо разрешить пакеты на твой адрес.

Большое спасибо, все заработало именно так как я хотел. Forward добавлять не стал так как там стоит accept. Правда теперь еще пара вопросов появились: после внесения изменений в iptables, после перезагрузки ubuntu (reboot), все настройки слетели, как быть чтобы не сбивались при перезагрузке. Так же у меня дополнительно крутиться pritunl, который тоже надо перезапускать при перезагрузке командой service pritunl start. Можно это как то автоматизировать?

alemsin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.