powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Поставить VPN сервер и port forward с хитрыми настройками
10 сообщений из 10, страница 1 из 1
Поставить VPN сервер и port forward с хитрыми настройками
    #39364385
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Нужно реализовать такую схему - VPN сервер с внешним IP и VPN клиент без внешнего IP. На VPN сервере настроить port forward так, чтобы при обращении извне по некоему порту пакеты шли на VPN клиент.
Задача, казалось бы, простая, но, нужно настроить трансляцию адресов так, чтобы VPN клиент видел обращения не с внешнего IP, а с IP от VPN сервера. Как это сделать?
Есть - сервер Ubuntu 14.04 (который будет VPN сервером), и роутер, который будет VPN клиентом.
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39364443
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey AgafonovЗадача, казалось бы, простая, но, нужно настроить трансляцию адресов так, чтобы VPN клиент видел обращения не с внешнего IP, а с IP от VPN сервера. Как это сделать?помимо port-forward-инга еще и еще и нат настроить надо.
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39364465
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bga83,

Так port-forwarding или nat? Я полагаю, для моей задачи что-то одно
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39364867
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Agafonovbga83,

Так port-forwarding или nat? Я полагаю, для моей задачи что-то однонет, именно и то и другое одновременно
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39364961
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно. Ну, возможно, Вы и правы, но почему?
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39366478
fortress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что 'port-forwarding', что 'нат' - все эти правила находятся в одной таблице правил, которая называется nat (имеется ввиду iptables). Отличие лишь в том, что правила для port-forwarding будут находиться в цепочке dstnat, а правила для смены адреса при обращении к vpn-клиенту - в цепочке srcnat.
Может получиться что-то вроде этого:
прокинуть порт на vpn-клиента ($WAN_IP - внешний адрес vpn-сервера, $vpn_client_ip - адрес vpn-клиента)
Код: sql
1.
iptables -t nat -A PREROUTING --dst $WAN_IP -p tcp --dport 80 -j DNAT --to-destination $vpn_client_IP


Поменять адрес при обращении к vpn-клиенту ($WAN_IFACE - интерфейс на сервере, который смотрит в интернет, tun1 - виртуальный интерфейс для того самого клиента):
Код: sql
1.
iptables -t nat -A POSTROUTING -i $WAN_IFACE -o tun1 -j MASQUERADE


И еще нужно будет проверить таблицу forward, что бы там был разрешен трафик к vpn-клиентам.
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39369470
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortress, спасибо, первая команда сработала, пакеты ходят на vpn клиента. А во вторая не выполняется


Код: plaintext
1.
2.
root>iptables -t nat -A POSTROUTING -i venet0 -o ppp0 -j MASQUERADE
iptables v1.4.21: Can't use -i with POSTROUTING

Я убрал -i и оно заработало!

Код: plaintext
1.
2.
root>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables v1.4.21: Can't use -i with POSTROUTING

Конечно, остается вопрос, как подменять IP адрес ТОЛЬКО с определенного входящего интерфейса, но это больше для любопытсва, так как в моем случае только один.
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39369901
fortress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey AgafonovЯ убрал -i и оно заработало!
Действительно, проверил сам сейчас - не получится указать входной интерфейс для траффика, если правило в цепочке srcnat.
Alexey AgafonovКонечно, остается вопрос, как подменять IP адрес ТОЛЬКО с определенного входящего интерфейса, но это больше для любопытсва, так как в моем случае только один. Поскольку интерфейс указать не получится, можно указать подсеть адресов (которые находятся на этом интерфейсе) для которых это правило будет применяться, например:
Код: sql
1.
iptables -t nat -A POSTROUTING --src 187.187.197.0/24 -o ppp0 -j MASQUERADE


Т.е. если удаленных клиентов можно отнести к одной подсети (например, 172.16.0.0/24), то их запросы vpn-клиент увидит как-будто бы они от vpn-сервера.
С другой стороны, если клиенты из случайных подсетей, можно попробовать такое правило:
Код: sql
1.
iptables -t nat -A POSTROUTING --src 0.0.0.0/0 -o ppp0 -j MASQUERADE


Тогда для любого адреса клиента будет выполняться подмена адреса, даже для клиентов из локальной сети. Если это не желатьельно и локальная сеть имеет вадрес 192.168.1.0/24, то корректнее будет использовать следующее правило:
Код: sql
1.
iptables -t nat -A POSTROUTING --src ! 192.168.1.0/24 -o ppp0 -j MASQUERADE

Т.е. выполнять подмену адреса для всех клиентов, кроме локальной сети.

Сейчас картинку разглядел, там написано что vpn-клиент должен видеть запросы как от 192.168.1.1, при этом vpn-клиент имеет адрес для vpn подключения 192.168.10.2. Если я правильно понимаю работу vpn, то сервер для связи c vpn-клиентами будет использовать адрес 192.168.10.1 (например, при пинге vpn-клиентов с сервера). Это я все к тому, что при использовании в правиле действия MASQUERADE, адрес запросов к vpn-клиенту будет заменён на адрес vpn-сервера на ppp-интерфейсе, т.е. на 192.168.10.1. Если же нужно чтобы vpn-клиент видел запросы именно от 192.168.1.1, то можно попробовать такое правило:
Код: sql
1.
iptables -t nat -A POSTROUTING --src 0.0.0.0/0 -o ppp0 -j SNAT --to-source 192.168.1.1 


При этом vpn-клиенты должны знать о том, как попасть в подсеть 192.168.1.0/24, чтобы отвечать на запросы. Если vpn подключение для них будет также использоватся как шлюз по умолчанию, то проблем не должно быть. Иначе нужно будет на них вручную прописать маршруть до подсети 192.168.1.0/24 через vpn-подключение.
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39369917
Alexey Agafonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortress, спасибо за подробные ответы. Помимо того, что что меня уже устраивало после того ответа, как работает, я все же подумаю о тюнниге своей таблицы, чтобы было и красиво и переносимо :-)
...
Рейтинг: 0 / 0
Поставить VPN сервер и port forward с хитрыми настройками
    #39369952
fortress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время мне здорово помогла статья на opennet'e разобраться с iptables.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Поставить VPN сервер и port forward с хитрыми настройками
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]