пʼятниця, 26 серпня 2016 р.

Настройка OpenVPN-сервра для доступа в интернет

https://www.opennet.ru/base/sec/openvpn_server.txt.html

Subject: Настройка OpenVPN-сервера для доступа в интернет

Оригинал: http://gealex.ru/linux-111.html

   Задача: поднять на сервере под управлением Debian lenny VPN сервер на
   базе OpenVPN для выхода посредством этого сервера в интернет.

   Выгоды от этого много, все не перечислишь, от использования реального
   ip в интернете, до обхода ограничений провайдера и сокрытия от него
   трафика. Так же кроме шифрования трафик сжимается, что экономит его.

   Устанавливаем OpenVPN и все его зависимости:

             aptitude install openvpn


   Переходим в директорию с утилитами для создания ключей и сертификатов:

             cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/


   В файле vars можно изменить данные для подписи ключей под себя,
   редактируем последние 5 строчек:

             export KEY_COUNTRY="RU"
             export KEY_PROVINCE="RU"
             export KEY_CITY="Kirov"
             export KEY_ORG="Personal service"
             export KEY_EMAIL="me@gealex.ru"


   Остальные переменные оставляем как есть.

   Инициализируем переменные и очищаем от старых сертификатов и ключей
   папку keys и создаем серийный и индексные файлы для новых ключей:

             ./vars
             ./clean-all


   В директории /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
   появляются серийный и индексный файлы.

   Создаем ключи, отвечая на предлагаемые вопросы (можно не отвечать, а
   жать enter):

             ./build-ca # Создаем Certificate Authority для сервера
             ./build-key-server server # Создаем сертификат X.509 для сервера
             ./build-dh # Создаем ключ Диффи Хельман


   В папке ./keys появляется созданные ключи, нужные ключи нужно
   скопировать в директорию /etc/openvpn/:

             cp ./keys/ca.crt /etc/openvpn
             cp ./keys/server.crt /etc/openvpn
             cp ./keys/server.key /etc/openvpn
             cp ./keys/dh1024.pem /etc/openvpn


   Создаем ключи для клиентов:

             ./build-key-pkcs12 client1
             ./build-key-pkcs12 client2


   из папки ./keys забираем файл client1.p12 и  client1.p12 и отдаем
   клиентам.


Настраиваем сервер

   Создаем фал конфигурации из фала примера:

             zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf


   Настройки которые включены по умолчанию в файле
   /etc/openvpn/server.conf:

             port 1194
             proto udp # более быстрый и меньше генерирует служебный трафик, но
                           # не гарантирует доставку пакета, кому нужна работа без потерь можно влючить tcp proto tcp
             dev tun # используем тип тунеля для интернет, tap для eternet
             ca ca.crt # наши сертификаты
             cert server.crt
             key server.key
             dh dh1024.pem
             server 10.8.0.0 255.255.255.0 # собственно наша виртуальная сеть
             ifconfig-pool-persist ipp.txt
             keepalive 10 120 # пинг каждые 10 секунд для поддержания канала связи
             comp-lzo # сжатие трафика
             persist-key
             persist-tun
             status openvpn-status.log #лог
             verb 3 # уровень болтливости записей в логи
             # Добавил опции:
             local 111.111.111.111 # ip на котором будет слушать порт openvpn сервер
             push "redirect-gateway" # при подключении клиента у него устанавливается шлюз по умолчанию на этот сервер


   Конфиг сохраняем

   Стартуем OpenVPN сервер:

             /etc/init.d/openvpn start


   Далее, для того что бы клиенты использовали интернет нужно настроить
   NAT:

     # разрешаем клиентом из сети 10.8.0.0/24 обращатся в интернет.
     iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT 
     # разрешаем отдавать пакеты из   интернета клиентам сети 10.8.0.0/24.
     iptables -A FORWARD -d 10.8.0.0/24 -m state -state  ESTABLISHED,RELATED -j ACCEPT 
     # с этого ip пользователи будут ходить в интернет.
     iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT -to-source 111.111.111.111 

   После перезагрузки данные правила утратят свое действие, поэтому
   добавляем их в файл /etc/rc.local или в правила iptables

   Еще осталось включить форвардинг в ядре
   в файле /etc/sysctl.conf раскомментируем строчку: net.ipv4.ip_forward=1

   Чтобы не перезагружаться сообщаем ядру о включении форвардинга:

             echo 1 > /proc/sys/net/ipv4/conf/all/forwarding


   Все, настройка серверной части закончилась.


Настройка клиентов:

Windows XP

   Качаем и устанавливаем openvpn для windows отсюда
   http://openvpn.se/download.html , на момент написания файл -
   openvpn-2.0.9-gui-1.0.3-install.exe
   Перезагружаем систему :)

   В директорию c:\Program Files\OpenVPN\config\ вложим ключ client1.p12
   (клиентский ключ который сгенерировали).
   Там же создаем текстовый файл с названием client.ovpn и вписываем туда
   параметры:

             remote 111.111.111.111 1194 # ip и порт нашего сервера
             client
             dev tun
             ping 10
             comp-lzo
             proto udp # или proto tcp, в зависимости от настроек сервера
             tls-client
             pkcs12 client1.p12 #имя файла клиентского ключа
             verb 3
             pull


   Далее кликаем правой кнопкой мыши на значке openvpn в трее и выбираем
   connect. Если все было настроено правильно, произойдет соединение с
   сервером и можно пользоваться интернетом. Программы для интернета
   настраивать не нужно, на всякий случай проверим что весь трафик идет
   через сервер - заходим на сайт http://internet.yandex.ru/ и смотрим ip,
   он должен быть как у нашего сервера.


GNU/Linux

1 способ для Mandriva 2009

   Кликаем правой копкой мыши на NetApplet в трее и выбираем
   VPN-подключение, далее управление VPN-соединениями. Откроется окошко
   настройка VPN, вводим пароль root. Выбираем тип VPN - OpenVPN. После
   этого если OpenVPN не установлен будет предложено установить нужные
   пакеты, устанавливаем.

   Далее - вписываем название создаваемого соединения, переходим далее,
   где предлагается выбрать ключи и способы шифрования. Выбираем
   "Публичный ключ инфраструктуры X509, во вкладке PKCS # 12 указываем
   путь к нашему клиентскому ключу нажав на кнопку открыть (лучьше его
   заранее скинуть в /etc/openvpn/, чтобы не валялся где папало), больше
   ничего не указываем.

   Переходим далее, где предлагается ввести параметры соединения - в поле
   шлюз вписываем ip адрес нашего сервера, ip адрес выбираем получать с
   сервера, нажимаем на "дополнительно", где вводим в появившемся окне
   порт шлюза - 1194, если сервер настроили на tcp, то ставим галочку
   "Использовать tcp ротокол" (в нашем случаее, используем протокол udp,
   поэтому галочку не ставим), тип виртуального устройства tun,
   подтверждаем параметры и переходим далее
   Здесь предлагается активировать соединение, соглашаемся.

   Все мы в интернете. Проверяем ip http://internet.yandex.ru/
   Деактивировать и активировать данное VPN соединение можно через
   NetApplet выбирая имя VPN соединения (понадобится вводить пароль root,
   как разрешить пользователю еще не придумал), а можно
   переконфигурировать через NetApplet сетевую карту или например DSL
   cоединение, указав в настройках имя нашего VPN, тогда при активации
   соответствующего соединения VPN будет подниматся автоматически (можно
   активировать DSL с VPN от пользователя, если указано было при настройке
   DSL).

2 способ для любого Linux, в том числе и Mandrivа

   Все настройки производим от пользователя root.
   Устанавливаем OpenVPN если не установлен, для Mandriva:

             urpmi openvpn


   В директорию /etc/openvpn/вкладываем файл ключа клиента VPN, созданный
   на сервере.

   Создаем в этой директории файл client.conf и вписываем туда параметры
   как для клиента windows в файле client.ovpn. Сохраняем.
   Запускаем OpenVPN

             /etc/init.d/openvpn start


   Все мы в интернете через OpenVPN.
   Отключаем VPN командой

             /etc/init.d/openvpn stop

Немає коментарів:

Дописати коментар