Сервер доступа vpn

Настройка OpenVPN-сервера для доступа в интернет (openvpn vpn tunnel linux)


Ключевые слова: openvpn, vpn, tunnel, linux,  (найти похожие документы)
From: GeAlex Date: Mon, 23 Oct 2010 17:02:14 +0000 (UTC) Subject: Настройка OpenVPN-сервера для доступа в интернет Оригинал: Задача: поднять на сервере под управлением 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="" Остальные переменные оставляем как есть. Инициализируем переменные и очищаем от старых сертификатов и ключей папку 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 отсюда , на момент написания файл - 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. Если все было настроено правильно, произойдет соединение с сервером и можно пользоваться интернетом. Программы для интернета настраивать не нужно, на всякий случай проверим что весь трафик идет через сервер - заходим на сайт и смотрим 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 Деактивировать и активировать данное 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



VPN или Virtual Private Network — виртуальная частная сеть. Это обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).

Проксирование/туннелирование трафика на тарифах с виртуализацией OpenVZ не разрешается. Используйте KVM серверы!

Создают VPN для решения разных задач:

  • Объединить в общую сеть нескольких географически удаленных офисов компании, имеющих доступ в Интернет
  • Защитить соединение пользователя, работающего из дома, с офисной сетью
  • Отделить сеть, доступную непривилегированным пользователям, от основной сети компании
  • Защитить передаваемые по сети данные с помощью шифрования
  • Доступ в интернет

Конкретный VPN может решать сразу несколько задач, например, одновременно шифровать соединение и связывать удалённые офисы в единую сеть.

Технических реализаций VPN много. Рассмотрим два самых доступных для настройки варианта: OpenVPN и PPTP.

OpenVPN

Установить OpenVPN можно автоматически из рецепта на любой сервер с виртуализацией KVM.

OpenVPN — распространяемая по лицензии GNU GPL реализация VPN. Для шифрования использует библиотеку OpenSSL и может использовать все доступные в ней алгоритмы шифрования. Для установки соединения может использовать TCP, либо UDP-протокол. Реализует одновременно как клиентское, так и серверное приложение. Может использоваться как для организации соединений точка-точка, так и для варианта сервер-клиенты. Известны также и варианты организации защиты Wi-Fi сети с помощью OpenVPN.

На VDS может использоваться для организации доступа в Интернет. Например, если провайдер не предоставляет клиентам внешнего маршрутизируемого адреса, связка OpenVPN + VDS-KVM является вполне реальным способом этот внешний маршрутизируемый адрес получить.

PPTP

PPTP — туннельный протокол типа точка-точка. Инкапсулирует PPP-кадры в IP-пакеты для передачи их по сети. PPP-сессия устанавливается с помощью протокола GRE.

После организации туннеля вы можете использовать его и для доступа из локальной сети в Интернет, и обратно. Обычно VPN используют для того, чтобы «подменить» IP, который вам выделяет провайдер, на IP-адрес сервера. А выбор стран, в которых вы можете приобрести сервер, огромен.

Многие используют VPN для шифрования трафика от собственного компьютера до сервера за границей и пребывают в спокойствии, что их интернет трафик не станет добычей злоумышленников.

Общая длина кровеносных сосудов в организме человека — примерно 100 тыс. км.