|
|||||||
Установки и настройка OpenVPN в Ubuntu Linux за 5 минут
Время создания: 05.11.2017 14:31
Текстовые метки: openvpn, vpn, linux, ubuntu
Раздел: Компьютер - Web / Internet - VPN - Virtual Private Network
Запись: xintrea/mytetra_syncro/master/base/1509881463s84qvjb1mq/text.html на raw.github.com
|
|||||||
|
|||||||
Установки и настройка OpenVPN в Ubuntu Linux за 5 минут Постоянные читатели этого блога, скорее всего, уже пару-тройку раз в своей жизни настраивали OpenVPN. Но думается, что новичкам данная заметка будет интересна и полезна. Из нее вы узнаете, как за пять минут поднять собственный VPN сервер, а также зачем он, собственно, нужен. Ну хорошо, учитывая время на регистрацию в каком-нибудь Amazon’е , DigitalOcean, VDSina или FastVDS и оплату VDS, пожалуй, потребуется не пять минут, а «целых» пятнадцать. Итак, зачем же кому-то ходить в сеть через VPN? На то есть целый ряд причин. Например, чтобы ваши пароли, передаваемые по HTTP, не утекли, когда вы сидите с открытых WiFi точек неизвестного происхождения. Да и вообще, даже вашему обычному провайдеру не обязательно знать, на какие сайты вы ходите. Еще — чтобы не палить свой IP в IRC сетях и прочих сервисах, с которыми вы работаете. Им знать ваше местоположение тоже совсем ни к чему. Также вам может захотеться попробовать какой-нибудь новый сервис, который пока что недоступен для пользователей с российским IP. Кроме того, трафик между вами и VPN сервером не только шифруется, но и сжимается, что нередко может создать ощущение более быстрого интернета. Также OpenVPN может быть полезен в целом ряде других случаев — для доступа сотрудников ко внутренним ресурсам компании, при построении на VDS’ах приложения с микросервисной архитектурой и не только. Почему VPN, а не какие-нибудь прокси или пробрасывание портов через SSH, надеюсь, тоже понятно. VPN достаточно настроить один раз и сразу весь трафик всех приложений пойдет через VPN cервер, в сжатом и зашифрованном виде. Чтобы поднять свой VPN, вам потребуется собственный сервер с Ubuntu Linux (или любым другим Linux/*BSD, но тогда вам будет довольно сложно следовать инструкциям данной заметки), а также права root’а на нем. Если сервер у вас уже есть, хорошо. Если нет, то не расстраивайтесь. В наши дни купить подходящий VDS/VPS можно за смешные 150 рублей в месяц. Компаний, предлагающих соответствующие услуги — десятки, некоторые были названы в начале заметки. Советовать какой-то конкретный сложно. Если вам нужна машина где-то в США, оплата только с помощью банковских карт и цены в долларах не смущают, присмотритесь к DigitalOcean . Если устраивает расположение сервера в Амстердаме c российским IP и хочется платить как можно меньше, используя Яндекс.Деньги, WebMoney или подобне системы (соответственно, с комиссией) попробуйте VDSina . Ну и, само собой разумеется, не поленитесь изучить вопрос самостоятельно, так как к моменту прочтения вами этих строк ситуация на рынке VDS может измениться. И нет, этот пост никем не проплачен :) Заходим на сервер, становимся root’ом, говорим: apt-get update Раньше в OpenVPN входила утилита под названием easy-rsa, предназначенная для генерации ключей и сертификатов. Начиная с версии 2.3 эту утилиту из пакета выпилили, поэтому придется скачать и собрать ее самостоятельно: cd /tmp Генерируем все необходимые ключи и сертификаты. Приготовьтесь вводить для них пароли. Так как мы настраиваем персональный VPN сервер, то, видимо, можно использовать один-единственный пароль, но подлиннее: ./easyrsa init-pki Выполнение последней команды может занять несколько минут. Примечание: Чтобы постоянно не вводить пароли на сертификаты при установке соединения, можно сгенерировать файлы сертификатов с опцией nopass. Это делает сеть уязвимой в случае кражи файлов сертификатов, но для частного использования вполне приемлемо: ./easyrsa build-server-full server nopass ./easyrsa build-client-full client1 nopass Переносим полученные ключи и сертификаты в каталог /etc/openvpn/: mv ./pki/dh.pem /etc/openvpn/dh.pem В том же каталоге создаем файл server.conf: mode server Попробуем запустить OpenVPN. При запуске от вас будет требоваться ввести пароль. Соответственно, после ребута поднимать OpenVPN придется руками (либо смотри Примечание про опцию nopass выше). Запускаем: service openvpn start Проверяем: netstat -tuwpan Сервер должен слушать порт 1194. Если это не так, курим /var/log/syslog. Теперь что касается клиентской стороны. Нам понадобятся файлы client1.crt, client1.key и ca.crt: mkdir vpn Создадим файл client.conf: client Подрубаемся к серверу, внимательно читаем логи: sudo openvpn --config client.conf В соседнем терминале говорим: ping 10.128.0.1 Если все было сделано правильно, вы обнаружите, что пинги успешно доходят до 10.128.0.1 (первая команда), но пакеты через него никуда не проходят (вторая команда). Это потому что мы забыли настроить на сервере NAT. Что мне лично кажется странным. Я смутно припоминаю, что когда в свое время я поднимал OpenVPN на FreeBSD , подобного шага не требовалось. Впрочем, я могу и ошибаться. На сервере открываем файл /etc/sysctl.conf и раскомментируем в нем строчку: net.ipv4.ip_forward=1 Чтобы не пришлось перезагружаться, говорим: echo 1 >> /proc/sys/net/ipv4/conf/all/forwarding Затем: iptables -A FORWARD -s 10.128.0.0/24 -j ACCEPT … где 123.45.67.89 — это IP сервера. Переподключаемся клиентом, попробуем зайти на какие-нибудь 2ip.ru или ip.xss.ru — теперь все должно работать. Если это не так, курим логи. Если все ОК, сохраняем правила фаервола на сервере: iptables-save > /etc/iptables.rules … и проверяем, что в файле /etc/network/interfaces есть строчка: pre-up iptables-restore < /etc/iptables.rules Если на сервере ранее уже настраивался фаервол , может оказаться, что правила хранятся в файле с именем, отличным от /etc/iptables.rules. Можно сказать reboot и проверить, что настройки держатся после перезагрузки сервера: cat /proc/sys/net/ipv4/conf/all/forwarding Сервер OpenVPN, разумеется, придется перезапустить руками. Осталось сделать последний штрих на клиенте. Дело в том, что (1) запускать openvpn в отдельном терминале и следить, не упал ли он там, неудобно. Кроме того, (2) если на клиенте сказать: nm-tool | grep DNS … где 192.168.0.1 — DNS вашего провайдера (выводится утилитой nm-tool), вы обнаружите, что резолвинг доменов сломался, а следовательно клиент все еще использует DNS провайдера. Можно убить двух зайцев, сказав: sudo apt-get install network-manager-openvpn-gnome … и настроив VPN через NetworkManager (иконку сети в правом верхнем углу Unity ). Делается это несложно, фактически нужно повторить текстовый конфиг клиента при помощи галочек и полей ввода. Понять, какая галочка какой строчке в конфиге соответствует, очень легко. Главное — не полениться залезть во всякие продвинутые свойства сети и прочие разделы настроек. Если же вы где-то ошибетесь, проблему можно с легкостью диагностировать при помощи файла /var/log/syslog. Несмотря на то, что заметка получилась довольно длинной, настройка OpenVPN действительно занимает всего лишь несколько минут. Безопасного и быстрого вам веб-серфинга! А также, как всегда, я буду искренне рад вашим вопросам и дополнениям. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|