Carding Forum
Professional
- Messages
- 2,788
- Reaction score
- 1,175
- Points
- 113
Установка и настройка OpenVPN версии 2.1.3 на арендованном VDS/VPS с CentOS 5. Пошаговый мануал.
UPD: Исправил ман под разные архитектуры серверов.
Введение.
Описывать отличие PPTP от OpenVPN здесь не буду, это тема отдельной статьи, поверьте на слово, что OpenVPN на порядок лучше и безопастнее PPTP.
Для желающих узнать больше на эту тему - кратко в сравнительной таблице.
Что нам понадобится?
- Арендованый VPS/VDS с root доступом.
Список провайдеров и организаций, предоставляющих такие сервера, можно найти на любом сайте, посвященному обзору хостинга, например тут
- Установленная на сервере CentOS 5.
Зачастую при заказе VPS/VDS провайдеры и организации предлогают сразу выбрать предустановленную ОС. Выбираем CentOS 5.
- Для полной анонимности - платежный метод, по которому невозможно узнать ваши личные данные.
Это может быть, например, виртуалка, купленная на plati.ru или платежная система типа w1.ru, персонализация в которой ПОКА не нужна и кошелек в которой можно пополнить через терминалы или обменом другой валюты. Списки обменников ищем на bestchange.ru или любом другом мониторинге обменников.
- Клиент для удаленного доступа на сервер по SSH под названием PuTTY
- Клиент для передчи данных по SFTP (Secret FTP) WinSCP
- OpenVPN GUI клиент для Windows, с помощью которого мы и будем подключаться к нашему VPN-у.
Что мы получим в итоге?
Как минимум:
- Сокрытие реального IP адреса.
- Сжатие траффика благодаря установленному алгоритму сжатия данных имени Лемпеля-Зива-Оберхеймера (LZO). Актуально для тех кто сидит на 3G.
- Собственноручный контроль над логами, как следствие - спокойный сон и крепкое здоровье.
- Небольшой опыт в собственноручном администрировании сервера, работающего на nix-ах =)
Итак, поехали
После оплаты VPD/VDS вам выдадут IP-адрес сервера и пароль для пользователя root.
Нам нужно зайти на сервер как root.
Запускаем PuTTY и вводим в строку Host Name (or IP address) IP нашего сервера, порт оставляем 22 (это порт SSH), жмем Open.
Для примера я буду использовать IP-адресс 156.156.156.156
Вводим root и жмакаем Enter.
Копируем наш пароль на сервер из тектовичка/админки хостера, в окне PuTTY жмем правую кнопку мыши (нажатие на правую кнопку мыши в PuTTY аналогично комманде Ctrl+V), жмакаем Enter.
Поздравляю, вы на зашли на сервер как root. Если получаем ответ Access denied - неправильно введен пароль.
Все комманды, указаные ниже, нужно просто копировать, вставлять в PuTTY и жмакать Enter ))
Для начала проверим наличие драйвера TAP\TUN такой коммандой:
Если комманда выведет что-то похожее на
то все в порядке.
Если же нет -
1) нужно пересобрать ядро дистрибутива самостоятельно
Это не так страшно как звучит и занимает 5 минут времени.
Подробный мануал тут.
2) нужно написать в саппорт хостера следующее "Пожалуйста, активируйте TUN/TAP устройства".
Итак, TAP\TUN на месте, устанавливаем пакеты, необходимые для OpenVPN.
Проверяем версию Centos и архитектуру сервера с командами.
Скачиваем необходимые пакеты:
Для архитектуры i386
Для архитектуры x86_64
Устанавливаем rpm-пакеты и добавляем репозитории:
Для Centos 5.x и i386
(для x86_64 архитектуры меняем "i386" на "x86_64")
Для Centos 6.x и i386 устанавливаем следующие rpm-пакеты и добавляем репозитории
(для x86_64 архитектуры меняем "i386" на "x86_64")
Копируем файлы OpenVPN в новую директорию.
Переходим к генерации ключей.
Загружаем переменные из vars в оболочку:
Удаляем из папки keys старые ключи и сертификаты:
Начинаем генерацию Master CA (Certificate Authority):
Во время генерации сертификата везде жмем Enter, кроме строки
Common Name (eg, your name or your server's hostname)
Сюда вписываем - это будет у нас имя ключа.
Дальше генерируем сертификат для сервера:
Во время генерации сертификата везде жмем Enter
На вопросы, требующие выбора Y/N везде отвечаем Y.
Сгенерируем сертификат клиента:
Во время генерации сертификата везде жмем Enter\
На вопросы, требуещие выбора Y/N везде отвечаем Y.
Сгенерируем ключ DH (Diffie Hellman):
Создадим ключ для TLS-аутентификации:
Все, мы сгенерировали все что нужно.
После проделаных действий в каталоге /etc/openvpn/2.0/keys появятся все наши ключи.
Файл ta.key будет в каталоге /etc/openvpn/2.0, скопируем его к ключам.
Создаем конфигурационный файл server.conf и открываем его на редактирование.
Если выдается ошибка о том что текстовый редактор Nano не установлен - устанавливаем его =)
И опять пробуем открыть файл конфига:
Помещаем в него следующие строки:
Выходим и сохраняемся- комбинация кнопок Ctrl+х , дальше буква Y и Enter.
Хочу прокомментировать некоторые параметры, указаные в конфиге.
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
Это DNS-ы принадлежащие opendns.com. При желании их можно заменить любыми Free DNS серверами, список прикреплен в самом низу статьи.
max-clients 2
Здесь указано максимальное кол-во одновременных подключений к серверу, в данном случае два клиента.
duplicate-cn
Строка указывает на то, что может быть использован один сертификат для нескольких клиентов.
Это если вы хотите дать попользоваться VPN-ом другу/брату/свату.
Если будете пользоваться только вы один - можете вообще убрать эту строку, а в max-clients указать 1.
verb 0
Строка указывает, как подробно нужно вести логи, значение от 0 до 3.
0 - логи не ведуться, 3 - логи ведуться подробно.
log /dev/null
status /dev/null
log-append /dev/null
Строки указывают, куда мы пишем/шлем логи =) А шлем мы их в нулл, другими словами (не вдаваясь в подробности) - удаляем.
Вернемся к нашим баранам и настроим сетевые параметры сервера.
Разрешим ip-fowrwarding:
Изменяем в файле значение net.ipv4.ip_forward на 1.
Выходим и сохраняемся.
Для применения параметров выполняем комманду:
Теперь нам нужно открыть порт 1194 (его мы прописали в конфиге, в файле openvpn.conf).
Для этого выполняем команду.
Если получаем сообщение об отсутствии утилиты, инсталируем ее:
И опять запускаем:
В появившимся окошке, похожем на старый-добрый Norton Commander, выбираем кнопку "Customize".
Дальше жмем ОК, потом еще раз ОК.
Теперь добавим правила в фаервол, включающие трансляцию адресов (NAT), дабы пакеты от клиента попадая на сервак могли уйти в инет и также вернуться назад:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.
Сохраним настройки таблицы iptables и добавим их в автозагрузку.
Проверим, все ли правильно записалось.
Все, по сути все готово, теперь осталось только запусить наш OpenVPN сервер.
Если ошибок не выдало - сервер запустился.
Если выдает ошибку - копируем текст ошибки в топик на обсуждение или же сами ищем в гугле решение проблемы.
Тепрь можно вернуться в любимую винду, инсталируем OpenVPN GUI.
После инсталяции не выключая PuTTY запускаем WinSCP.
В графу Host name вводим IP-адрес нашего сервера, Port number: 22, User name: root
Подключаемся, вводим пароль на сервер, видим каталоги и файлы на сервере в знакомом графическом формате =)
Переходим в папку /etc/openvpn/2.0/keys/
Копируем себе на винт в папку C:\Program Files(x86)\OpenVPN\config\ файлы и создаем тут же файл openvpn.ovpn, открываем его на редактирование блокнотом.
В него пишем следующее:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.
Ну и последний шаг - запускаем OpenVPN GUI, в трее на иконке правой кнопкой мыши -- Connect.
Если иконка в трее загорелась зеленым - радуемся и гордимся собой.
Идем на Whoer.net/Ip-Score, проверяем IP адрес.
Должен быть IP вашего VPS/VDS.
Если по Whoer светятся ваши родные DNS:
1) Ставим плагин для FireFox под названием DNS Cache, перезагружаем браузер, на иконке плагина (внизу справа) - правая кнопка мыши -- Flush DNS Cache.
Если не юзаем FireFox - жмем Win+R (Выполнить), вписываем ipconfig /flushdns
2) Если не помогла - заходим в настройки подключения (для основного адаптера + TAP-Win32 адаптера) и в свойствах IP4 прописываем DNS-ы от opendns.com (208.67.222.222 и 208.67.220.220) или любые другие Free DNS.
Для проверки входящего/ исходящего канала на сервере можно воспользоваться утилитой tcpdump.
Инсталируем ее на клиенте, т.е. на своем компе запускаем cmd -- ping mail.ru -t
На сервере запускаем tcpdump для прослушивания интерфейса tap0 и сниффинга уходящих с сервера пакетов:
Видим, что пакеты с сервера уходят не шифрованые =)
Для прослушивания канала между клиентом (компом) и сервером по интерфейсу eth0:
Видим абракадабру - все шифруется. Не видим абракадабру - что-то не так настроено, нужно разбираться.
Для полной уверености можно скачать и заснифать исходящий канал интернета с помошью программы WireShark.
Основная проблема с которой можно столкнуться:
При подключении к серверу в статусе OpenVPN GUI
В таком случае пишем письмо/тикет хостеру с просьбой включить TUN/TAP устройство или же пробуем пересобрать ядро дистрибутива самостоятельно.
Список Free DNS, которые можно юзать в настройках
http://clip2net.com/s/1PCld
Когда работаем со своим одним VPN-сервером каждый день, защиту от засвета IP при падении сервака можно настроить простым способом:
1. Узнаем свой основной шлюз: cmd >-> ipconfig /all
2. Предположим шлюз 192.168.0.1, а IP VPN-сервера 777.777.777.777
настраиваем маршрутизацию:
cmd >-> # route delete 0.0.0.0 >-> # route add 777.777.777.777 192.168.0.1
Теперь при падении VPN-сервера интернет полностью загашен и не один пакет не уйдет минуя заданный адрес VPN.
Для возврата значений по дефолту: cmd >-> # route add 0.0.0.0 192.168.0.1
UPD: Исправил ман под разные архитектуры серверов.
Введение.
Описывать отличие PPTP от OpenVPN здесь не буду, это тема отдельной статьи, поверьте на слово, что OpenVPN на порядок лучше и безопастнее PPTP.
Для желающих узнать больше на эту тему - кратко в сравнительной таблице.
Что нам понадобится?
- Арендованый VPS/VDS с root доступом.
Список провайдеров и организаций, предоставляющих такие сервера, можно найти на любом сайте, посвященному обзору хостинга, например тут
- Установленная на сервере CentOS 5.
Зачастую при заказе VPS/VDS провайдеры и организации предлогают сразу выбрать предустановленную ОС. Выбираем CentOS 5.
- Для полной анонимности - платежный метод, по которому невозможно узнать ваши личные данные.
Это может быть, например, виртуалка, купленная на plati.ru или платежная система типа w1.ru, персонализация в которой ПОКА не нужна и кошелек в которой можно пополнить через терминалы или обменом другой валюты. Списки обменников ищем на bestchange.ru или любом другом мониторинге обменников.
- Клиент для удаленного доступа на сервер по SSH под названием PuTTY
- Клиент для передчи данных по SFTP (Secret FTP) WinSCP
- OpenVPN GUI клиент для Windows, с помощью которого мы и будем подключаться к нашему VPN-у.
Что мы получим в итоге?
Как минимум:
- Сокрытие реального IP адреса.
- Сжатие траффика благодаря установленному алгоритму сжатия данных имени Лемпеля-Зива-Оберхеймера (LZO). Актуально для тех кто сидит на 3G.
- Собственноручный контроль над логами, как следствие - спокойный сон и крепкое здоровье.
- Небольшой опыт в собственноручном администрировании сервера, работающего на nix-ах =)
Итак, поехали
После оплаты VPD/VDS вам выдадут IP-адрес сервера и пароль для пользователя root.
Нам нужно зайти на сервер как root.
Запускаем PuTTY и вводим в строку Host Name (or IP address) IP нашего сервера, порт оставляем 22 (это порт SSH), жмем Open.
Для примера я буду использовать IP-адресс 156.156.156.156
Вводим root и жмакаем Enter.
Копируем наш пароль на сервер из тектовичка/админки хостера, в окне PuTTY жмем правую кнопку мыши (нажатие на правую кнопку мыши в PuTTY аналогично комманде Ctrl+V), жмакаем Enter.
Поздравляю, вы на зашли на сервер как root. Если получаем ответ Access denied - неправильно введен пароль.
Все комманды, указаные ниже, нужно просто копировать, вставлять в PuTTY и жмакать Enter ))
Для начала проверим наличие драйвера TAP\TUN такой коммандой:
Если комманда выведет что-то похожее на
то все в порядке.
Если же нет -
1) нужно пересобрать ядро дистрибутива самостоятельно
Это не так страшно как звучит и занимает 5 минут времени.
Подробный мануал тут.
2) нужно написать в саппорт хостера следующее "Пожалуйста, активируйте TUN/TAP устройства".
Итак, TAP\TUN на месте, устанавливаем пакеты, необходимые для OpenVPN.
Проверяем версию Centos и архитектуру сервера с командами.
Скачиваем необходимые пакеты:
Для архитектуры i386
Для архитектуры x86_64
Устанавливаем rpm-пакеты и добавляем репозитории:
Для Centos 5.x и i386
(для x86_64 архитектуры меняем "i386" на "x86_64")
Для Centos 6.x и i386 устанавливаем следующие rpm-пакеты и добавляем репозитории
(для x86_64 архитектуры меняем "i386" на "x86_64")
Копируем файлы OpenVPN в новую директорию.
Переходим к генерации ключей.
Загружаем переменные из vars в оболочку:
Удаляем из папки keys старые ключи и сертификаты:
Начинаем генерацию Master CA (Certificate Authority):
Во время генерации сертификата везде жмем Enter, кроме строки
Common Name (eg, your name or your server's hostname)
Сюда вписываем - это будет у нас имя ключа.
Дальше генерируем сертификат для сервера:
Во время генерации сертификата везде жмем Enter
На вопросы, требующие выбора Y/N везде отвечаем Y.
Сгенерируем сертификат клиента:
Во время генерации сертификата везде жмем Enter\
На вопросы, требуещие выбора Y/N везде отвечаем Y.
Сгенерируем ключ DH (Diffie Hellman):
Создадим ключ для TLS-аутентификации:
Все, мы сгенерировали все что нужно.
После проделаных действий в каталоге /etc/openvpn/2.0/keys появятся все наши ключи.
Файл ta.key будет в каталоге /etc/openvpn/2.0, скопируем его к ключам.
Создаем конфигурационный файл server.conf и открываем его на редактирование.
Если выдается ошибка о том что текстовый редактор Nano не установлен - устанавливаем его =)
И опять пробуем открыть файл конфига:
Помещаем в него следующие строки:
Выходим и сохраняемся- комбинация кнопок Ctrl+х , дальше буква Y и Enter.
Хочу прокомментировать некоторые параметры, указаные в конфиге.
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
Это DNS-ы принадлежащие opendns.com. При желании их можно заменить любыми Free DNS серверами, список прикреплен в самом низу статьи.
max-clients 2
Здесь указано максимальное кол-во одновременных подключений к серверу, в данном случае два клиента.
duplicate-cn
Строка указывает на то, что может быть использован один сертификат для нескольких клиентов.
Это если вы хотите дать попользоваться VPN-ом другу/брату/свату.
Если будете пользоваться только вы один - можете вообще убрать эту строку, а в max-clients указать 1.
verb 0
Строка указывает, как подробно нужно вести логи, значение от 0 до 3.
0 - логи не ведуться, 3 - логи ведуться подробно.
log /dev/null
status /dev/null
log-append /dev/null
Строки указывают, куда мы пишем/шлем логи =) А шлем мы их в нулл, другими словами (не вдаваясь в подробности) - удаляем.
Вернемся к нашим баранам и настроим сетевые параметры сервера.
Разрешим ip-fowrwarding:
Изменяем в файле значение net.ipv4.ip_forward на 1.
Выходим и сохраняемся.
Для применения параметров выполняем комманду:
Теперь нам нужно открыть порт 1194 (его мы прописали в конфиге, в файле openvpn.conf).
Для этого выполняем команду.
Если получаем сообщение об отсутствии утилиты, инсталируем ее:
И опять запускаем:
В появившимся окошке, похожем на старый-добрый Norton Commander, выбираем кнопку "Customize".
Дальше жмем ОК, потом еще раз ОК.
Теперь добавим правила в фаервол, включающие трансляцию адресов (NAT), дабы пакеты от клиента попадая на сервак могли уйти в инет и также вернуться назад:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.
Сохраним настройки таблицы iptables и добавим их в автозагрузку.
Проверим, все ли правильно записалось.
Все, по сути все готово, теперь осталось только запусить наш OpenVPN сервер.
Если ошибок не выдало - сервер запустился.
Если выдает ошибку - копируем текст ошибки в топик на обсуждение или же сами ищем в гугле решение проблемы.
Тепрь можно вернуться в любимую винду, инсталируем OpenVPN GUI.
После инсталяции не выключая PuTTY запускаем WinSCP.
В графу Host name вводим IP-адрес нашего сервера, Port number: 22, User name: root
Подключаемся, вводим пароль на сервер, видим каталоги и файлы на сервере в знакомом графическом формате =)
Переходим в папку /etc/openvpn/2.0/keys/
Копируем себе на винт в папку C:\Program Files(x86)\OpenVPN\config\ файлы и создаем тут же файл openvpn.ovpn, открываем его на редактирование блокнотом.
В него пишем следующее:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.
Ну и последний шаг - запускаем OpenVPN GUI, в трее на иконке правой кнопкой мыши -- Connect.
Если иконка в трее загорелась зеленым - радуемся и гордимся собой.
Идем на Whoer.net/Ip-Score, проверяем IP адрес.
Должен быть IP вашего VPS/VDS.
Если по Whoer светятся ваши родные DNS:
1) Ставим плагин для FireFox под названием DNS Cache, перезагружаем браузер, на иконке плагина (внизу справа) - правая кнопка мыши -- Flush DNS Cache.
Если не юзаем FireFox - жмем Win+R (Выполнить), вписываем ipconfig /flushdns
2) Если не помогла - заходим в настройки подключения (для основного адаптера + TAP-Win32 адаптера) и в свойствах IP4 прописываем DNS-ы от opendns.com (208.67.222.222 и 208.67.220.220) или любые другие Free DNS.
Для проверки входящего/ исходящего канала на сервере можно воспользоваться утилитой tcpdump.
Инсталируем ее на клиенте, т.е. на своем компе запускаем cmd -- ping mail.ru -t
На сервере запускаем tcpdump для прослушивания интерфейса tap0 и сниффинга уходящих с сервера пакетов:
Видим, что пакеты с сервера уходят не шифрованые =)
Для прослушивания канала между клиентом (компом) и сервером по интерфейсу eth0:
Видим абракадабру - все шифруется. Не видим абракадабру - что-то не так настроено, нужно разбираться.
Для полной уверености можно скачать и заснифать исходящий канал интернета с помошью программы WireShark.
Основная проблема с которой можно столкнуться:
При подключении к серверу в статусе OpenVPN GUI
В таком случае пишем письмо/тикет хостеру с просьбой включить TUN/TAP устройство или же пробуем пересобрать ядро дистрибутива самостоятельно.
Список Free DNS, которые можно юзать в настройках
http://clip2net.com/s/1PCld
Когда работаем со своим одним VPN-сервером каждый день, защиту от засвета IP при падении сервака можно настроить простым способом:
1. Узнаем свой основной шлюз: cmd >-> ipconfig /all
2. Предположим шлюз 192.168.0.1, а IP VPN-сервера 777.777.777.777
настраиваем маршрутизацию:
cmd >-> # route delete 0.0.0.0 >-> # route add 777.777.777.777 192.168.0.1
Теперь при падении VPN-сервера интернет полностью загашен и не один пакет не уйдет минуя заданный адрес VPN.
Для возврата значений по дефолту: cmd >-> # route add 0.0.0.0 192.168.0.1
Last edited by a moderator: