The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: openvpn, vpn, tunnel, linux,  (найти похожие документы)
From: GeAlex Date: Mon, 23 Oct 2010 17:02:14 +0000 (UTC) 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

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Мансур (?), 19:19, 24/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автору оромное спасибо, перерыл кучу советов, но этот самый дельный, получилось за раз, хотя никогда в жизни не настраивал впн сервер. Еще раз огромный респект :)
     
  • 1.2, Сергей (??), 20:19, 04/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня такая проблема:
    неопытный университетский провайдер что-то намутил с настройками, и в линуксе весь траффик на 80 порту режется(или уходит куда-то не туда), в винде все работает. Мне посоветовали решить проблему с помощью ОпенВПН, но как это может помочь, если ВПН сервер я могу поднять только в нашей(общажной) локалке, и весь траффик, идущий от ПК к серверу на порт 1194, раскидывается на изначальные порты(веб на 80, к примеру) и приходит к провайдеру, где на 80 порту траффик все также будет резаться?Или не будет?
     
  • 1.3, Сергей (??), 21:50, 09/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос!
    А шифрование как я понимаю  - не будет работать?
     
     
  • 2.6, Slider (??), 13:03, 18/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Из HOWTO: "By default OpenVPN uses Blowfish, a 128 bit symmetrical cipher".
     

  • 1.4, Slider (??), 19:22, 14/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вместо
    ./vars (не работает)
    надо
    . ./vars (работает, из HOWTO)
     
  • 1.5, Slider (??), 12:53, 18/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Из примера конфига клиента: "It's best to use a separate .crt/.key file pair for each client".
    Т.е. для тех, кто считает, что "It's best...", вместо:
    ./build-key-pkcs12 clientN
    нужно:
    ./build-key clientN
     
  • 1.7, hAh0L (?), 11:16, 15/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На работе стоит прокся (сквид + дансгвардиан). Соответственно режется все - в том числе и 1194 порт. Сервер с OpenVPN пингуется, но подключиться никак. Следует указать в качестве listening 80-ый порт? Этого будет достаточно?
     
     
  • 2.9, Вут (?), 14:56, 25/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше 8080 (если его не режет) ибо подключение хоть и установится, но 80 порт будет занят и браузеры не смогут грузить страницы.
     

  • 1.8, Виктоия (?), 01:30, 14/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Настройка OpenVPN-сервра для доступа в интернет
     
  • 1.11, Fillco (?), 13:36, 02/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Второе правило, не хватает дефиса, должно быть так:
    iptables -A FORWARD -d 10.8.0.0/24 -m state --state  ESTABLISHED,RELATED -j ACCEPT
     
  • 1.12, Fillco (?), 13:42, 02/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И третье тоже:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 111.111.111.111
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру