|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Всем привет. Нужно реализовать такую схему - VPN сервер с внешним IP и VPN клиент без внешнего IP. На VPN сервере настроить port forward так, чтобы при обращении извне по некоему порту пакеты шли на VPN клиент. Задача, казалось бы, простая, но, нужно настроить трансляцию адресов так, чтобы VPN клиент видел обращения не с внешнего IP, а с IP от VPN сервера. Как это сделать? Есть - сервер Ubuntu 14.04 (который будет VPN сервером), и роутер, который будет VPN клиентом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2016, 14:38 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Alexey AgafonovЗадача, казалось бы, простая, но, нужно настроить трансляцию адресов так, чтобы VPN клиент видел обращения не с внешнего IP, а с IP от VPN сервера. Как это сделать?помимо port-forward-инга еще и еще и нат настроить надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2016, 17:25 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
bga83, Так port-forwarding или nat? Я полагаю, для моей задачи что-то одно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2016, 18:25 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Alexey Agafonovbga83, Так port-forwarding или nat? Я полагаю, для моей задачи что-то однонет, именно и то и другое одновременно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2016, 14:14 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Интересно. Ну, возможно, Вы и правы, но почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2016, 15:19 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Что 'port-forwarding', что 'нат' - все эти правила находятся в одной таблице правил, которая называется nat (имеется ввиду iptables). Отличие лишь в том, что правила для port-forwarding будут находиться в цепочке dstnat, а правила для смены адреса при обращении к vpn-клиенту - в цепочке srcnat. Может получиться что-то вроде этого: прокинуть порт на vpn-клиента ($WAN_IP - внешний адрес vpn-сервера, $vpn_client_ip - адрес vpn-клиента) Код: sql 1.
Поменять адрес при обращении к vpn-клиенту ($WAN_IFACE - интерфейс на сервере, который смотрит в интернет, tun1 - виртуальный интерфейс для того самого клиента): Код: sql 1.
И еще нужно будет проверить таблицу forward, что бы там был разрешен трафик к vpn-клиентам. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2016, 10:50 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
fortress, спасибо, первая команда сработала, пакеты ходят на vpn клиента. А во вторая не выполняется Код: plaintext 1. 2.
Я убрал -i и оно заработало! Код: plaintext 1. 2.
Конечно, остается вопрос, как подменять IP адрес ТОЛЬКО с определенного входящего интерфейса, но это больше для любопытсва, так как в моем случае только один. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2016, 02:13 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
Alexey AgafonovЯ убрал -i и оно заработало! Действительно, проверил сам сейчас - не получится указать входной интерфейс для траффика, если правило в цепочке srcnat. Alexey AgafonovКонечно, остается вопрос, как подменять IP адрес ТОЛЬКО с определенного входящего интерфейса, но это больше для любопытсва, так как в моем случае только один. Поскольку интерфейс указать не получится, можно указать подсеть адресов (которые находятся на этом интерфейсе) для которых это правило будет применяться, например: Код: sql 1.
Т.е. если удаленных клиентов можно отнести к одной подсети (например, 172.16.0.0/24), то их запросы vpn-клиент увидит как-будто бы они от vpn-сервера. С другой стороны, если клиенты из случайных подсетей, можно попробовать такое правило: Код: sql 1.
Тогда для любого адреса клиента будет выполняться подмена адреса, даже для клиентов из локальной сети. Если это не желатьельно и локальная сеть имеет вадрес 192.168.1.0/24, то корректнее будет использовать следующее правило: Код: sql 1.
Т.е. выполнять подмену адреса для всех клиентов, кроме локальной сети. Сейчас картинку разглядел, там написано что 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.
При этом vpn-клиенты должны знать о том, как попасть в подсеть 192.168.1.0/24, чтобы отвечать на запросы. Если vpn подключение для них будет также использоватся как шлюз по умолчанию, то проблем не должно быть. Иначе нужно будет на них вручную прописать маршруть до подсети 192.168.1.0/24 через vpn-подключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 11:21 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
fortress, спасибо за подробные ответы. Помимо того, что что меня уже устраивало после того ответа, как работает, я все же подумаю о тюнниге своей таблицы, чтобы было и красиво и переносимо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 11:29 |
|
Поставить VPN сервер и port forward с хитрыми настройками
|
|||
---|---|---|---|
#18+
В свое время мне здорово помогла статья на opennet'e разобраться с iptables. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 11:54 |
|
|
start [/forum/topic.php?fid=25&msg=39369917&tid=1481617]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 236ms |
total: | 361ms |
0 / 0 |