Маршрутизировать весь трафик через OpenVPN

Дайте время процессу входа в систему и посмотрите, как долго он будет длиться:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

См. выше, потребовалось около 45 секунд для входа в систему -------- ОЧЕНЬ SLOW

Как только вы входите в систему как root, отредактируйте файл sshd_config и измените запись UseDNS, как показано ниже. Здесь я использую sed вместо редактирования файла.

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

Давайте попробуем время для входа в систему и посмотрим, как долго это займет.

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Посмотрите, как это взяли сейчас 6 секунд, время для ввода пароля.

1
задан 8 May 2014 в 01:52

4 ответа

Возможно, вы забыли изменить свой NAT? Запустите эти 3 команды как root

Команды:

iptables -I FORWARD -i tun0 -o eth0 \
         -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
         -j ACCEPT

iptables -t nat -I POSTROUTING -o eth0 \
          -s 10.8.0.0/24 -j MASQUERADE

Caption:

tun0: ваша виртуальная сетевая карта VPN eth0: обычная сетевая карта 10.8.0.0: ваша VPN-сеть VPN
9
ответ дан 24 May 2018 в 08:02
  • 1
    Этот шаг изменения NAT очень важен. Я просто не мог заставить это работать, не выполняя над 3 командами. – Nitesh Kumar Anand 15 June 2015 в 11:13
  • 2
    обратите внимание, что эти команды должны запускаться на сервере openvpn, а не на клиенте. – Kem Mason 18 March 2016 в 02:52

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

Я использую пакет Xubuntu 14.04 и OpenVPN из основного источника. В настройках> Система> Сеть я заменил предустановленный DNS-адрес 127.0.1.1 на 8.8.8.8 Google, и теперь я вижу весь трафик, проходящий через VPN-сервер.

В таблице Wireshark такая строка, как DNS отсутствует: все данные идут как TCP через зашифрованный канал. Я вижу DHCP и DNS-трафик, когда смотрю на tun0 (внутренняя часть ноутбука). Когда я исследую трафик wlan0 (внешний между ноутбуком и Wi-Fi-маршрутизатором), я получаю только серые пакеты TCP.

Я думаю, что это происходит, потому что DNS-запрос не требуется в декодировании символов и цифр, и это идет в общий поток, как обычный пакет данных.

Буду рад узнать ваши соображения, это не будет неожиданностью, если я полностью ошибаюсь

1
ответ дан 24 May 2018 в 08:02
  • 1
    Я забыл: этот метод имеет одно неоспоримое преимущество - он работает, даже если VPN-сервер не поддерживает перенаправление DNS. – xrobot 12 July 2014 в 02:33
  • 2
    Кстати, мы могли бы сделать один трюк: если мы будем время от времени посылать ложные видимые невинные DNS-запросы, косвенно это может быть подтверждением нашей лояльности к Большому Брату. – xrobot 12 July 2014 в 02:33

Добавьте следующую директиву в файл конфигурации сервера:

push "redirect-gateway def1"

Если ваша настройка VPN выполняется по беспроводной сети, где все клиенты и сервер находятся в одной и той же беспроводной подсети, добавьте локальный флаг :

push "redirect-gateway local def1"

Нажатие опции перенаправления-шлюза клиентам приведет к тому, что весь трафик сети IP, происходящий на клиентских компьютерах, пройдет через сервер OpenVPN. Сервер должен быть настроен так, чтобы каким-то образом обрабатывать этот трафик, например, путем NAT-подключения к Интернету или маршрутизировать его через HTTP-прокси сервера сайта.

В Linux вы можете использовать команду, такую ​​как это для NAT-трафика VPN-клиента в Интернете:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Эта команда предполагает, что подсеть VPN 10.8.0.0/24 (взята из директивы сервера в конфигурации сервера OpenVPN) и что локальная Ethernet-интерфейс - eth0.

Когда используется перенаправление-шлюз, клиенты OpenVPN будут маршрутизировать DNS-запросы через VPN, и VPN-серверу потребуется обработать их. Это может быть достигнуто путем нажатия адреса DNS-сервера на подключение клиентов, которое заменит их обычные настройки DNS-сервера за время, когда VPN активен. Например:

push "dhcp-option DNS 10.8.0.1"

настроит клиенты Windows (или клиенты, отличные от Windows, с некоторыми дополнительными серверными скриптами), чтобы использовать 10.8.0.1 в качестве своего DNS-сервера. Любой адрес, доступный для клиентов, может использоваться как адрес DNS-сервера.

0
ответ дан 24 May 2018 в 08:02

Если ваш клиент OpenVPN находится в Windows 10 (или аналогичный), есть еще одна проблема, о которой нужно помнить, порядок привязки сетевых адаптеров. Существующие настройки DNS-сервера в адаптере LAN или Wifi могут иметь приоритет над настройками DNS-сервера для интерфейса туннеля, поэтому, несмотря на то, что все настроено по-разному с точки зрения OpenVPN, Windows продолжает использовать оригинальный DNS-сервер.

Вы можете исправить это, как описано в этой публикации на форуме Microsoft.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/1cc5b647-6e51-482b- 8998-ac5c3900938c / как к силе, VPN-клиентов в использовании, заместитель dnsserver-из-их-VPN-адаптер-не-на-dnsserver-из-их? форум = winserverNIS [!] d2

0
ответ дан 24 May 2018 в 08:02

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

Похожие вопросы: