Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Поставить VPN сервер и port forward с хитрыми настройками / 10 сообщений из 10, страница 1 из 1
11.12.2016, 14:38
    #39364385
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
Всем привет.

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

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

Так port-forwarding или nat? Я полагаю, для моей задачи что-то однонет, именно и то и другое одновременно
...
Рейтинг: 0 / 0
12.12.2016, 15:19
    #39364961
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
Интересно. Ну, возможно, Вы и правы, но почему?
...
Рейтинг: 0 / 0
14.12.2016, 10:50
    #39366478
fortress
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
Что '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
18.12.2016, 02:13
    #39369470
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
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
19.12.2016, 11:21
    #39369901
fortress
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
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
19.12.2016, 11:29
    #39369917
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
fortress, спасибо за подробные ответы. Помимо того, что что меня уже устраивало после того ответа, как работает, я все же подумаю о тюнниге своей таблицы, чтобы было и красиво и переносимо :-)
...
Рейтинг: 0 / 0
19.12.2016, 11:54
    #39369952
fortress
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поставить VPN сервер и port forward с хитрыми настройками
В свое время мне здорово помогла статья на opennet'e разобраться с iptables.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Поставить VPN сервер и port forward с хитрыми настройками / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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