OpenVPN-AS на сервере Debian и клиенте Ubuntu 12.10

Я недавно подписал VPS (минимум 32 бита OpenVZ / Debian), установил OpenVPN-AS (Access Server) и успешно подключился к нему, однако у меня есть некоторые сомнения.

Чтобы было понятно, я объясню, как я установил OpenVPN-AS и какие шаги я сделал.

  • Включены TUN/TAP и PPP на интерфейсе SolusVM

  • Обновленный Debian

  • Установил OpenVPN-AS, следуя этому руководству:

http://docs.openvpn.net/how-to-tutorialsguides/virtual-platforms/install-openvpn-access-server-on-linux-debian-6/

  • После этого руководства добавлено два пользователя:

http://openvpn.net/index.php/access-server/docs/admin-guides/216-how-to-add-users-to-your-openvpn-access-server.html

  • Войдите в систему с созданным пользователем, загрузили файл "client.ovpn" и войдите в него, используя команду: sudo openvpn --config client.ovpn

Это почти то, что я сделал.

Все работает, но есть некоторые подвохи. Я открыл порты 443 (TCP) и 1194 (UDP) в маршрутизаторе и клиентской системе (Ubuntu 12.10) и настроил Deluge и Transmission для использования порта 1194. Когда VPN отключена, тесты обеих программ показывают, что порт открыт, однако, когда я подключаю VPN, порт кажется закрытым на тестах, и здесь есть одна загвоздка: Deluge и Transmission подключаются только через TCP-порт, и порт 1194 VPN является только UDP.

Вот почему возникает вопрос номер один: что мне нужно сделать, чтобы открыть порт 1194 в VPN? Возможно ли заставить Deluge или Transmission использовать UDP-порт?

Мой второй вопрос проще (я так думаю). Как я уже говорил, я могу подключиться к VPN с помощью команды "sudo openvpn --config client.ovpn", недостатком является то, что необходимо держать терминал открытым, я хотел бы подключиться через графический интерфейс, обычно: нажмите в диспетчере сети на верхней панели> перейдите в VPN-подключения> выберите подключение> и готово. Но я не знаю, как это сделать, и это мой второй вопрос: как я могу экспортировать конфигурации "client.ovpn" или настроить соединение через графический интерфейс?

Я пользуюсь Ubuntu в течение полутора лет и считаю себя промежуточным пользователем, однако я никогда раньше не играл с VPS и OpenVPN-AS, так что я совершенно нуб. Я погуглил мои сомнения, но большинство уроков основаны на OpenVPN, а не на OpenVPN-AS, и, очевидно, они совершенно разные.

Надеюсь, что мой пост достаточно понятен, и извините за мой английский. Любая помощь будет оценена, спасибо!

1 ответ

Относительно вашего первого вопроса: UDP-порт 1149 должен быть открыт на сервере, чтобы клиенты могли к нему подключаться. Я проверил здесь, и клиент, кажется, использует более высокий диапазон портов (>50000) по умолчанию для отправки и получения пакетов UDP на порт сервера 1149.

Однако, похоже, у вас есть небольшое недоразумение по поводу работы VPN, поэтому я попытаюсь немного разобраться с этим. При запуске клиента таблица маршрутизации должна быть настроена так, чтобы весь (или большая часть или часть, которая зависит от вашей конфигурации) трафика проходила через интерфейс tun0 вместо интерфейса eth0. Единственные пакеты, проходящие непосредственно через eth0, должны быть UDP-пакетами на сервер через порт 1149, все остальные пакеты, TCP или UDP или ICMP, маршрутизируются через tun0, где они инкапсулируются openvpn, а затем отправляют через 1149 UDP-пакеты через eth0 на сервер.

На сервере инкапсуляция меняется, и пакеты TCP, UDP или ICMP повторно собираются и отправляются оттуда, как если бы они исходили от соседнего сетевого узла, входящего через локальный интерфейс (eth0/tun0/tap0), и соответственно маршрутизируются. Таким образом, ваш клиент, кажется, "владеет" интерфейсом на сервере. Отсюда и название виртуальной частной сети.

Таким образом, вы должны настроить передачу или шлюз для использования любого другого порта, кроме 1149 - потому что этот используется VPN - то есть 16000 (TCP и UDP). Используйте этот порт при передаче или потоке и откройте его в брандмауэре на сервере и, возможно, направьте его на интерфейс VPN, поэтому в этом примере (при условии, что сервер имеет интерфейс eth0):

Открытые порты 16000 на сервере

iptables -A INPUT -i eth0 -m tcp -p tcp --dport 16000 -j ACCEPT
iptables -A INPUT -i eth0 -m udp -p udp --dport 16000 -j ACCEPT

и применить NAT. Эти линии перенаправляют все входящие соединения TCP и UDP на порты 16000-16010 на сервере на интерфейс VPN с IP-адресом 10.0.0.5

iptables -t nat -A PREROUTING -i eth0 -m multiport -p udp --dports 16000:16010 -j DNAT --to-destination 10.0.0.5
iptables -t nat -A PREROUTING -i eth0 -m multiport -p tcp --dports 16000:16010 -j DNAT --to-destination 10.0.0.5

Ну, могут быть другие или лучшие способы справиться с этим, но это должно помочь вам начать.

Другие вопросы по тегам