Пользователь
0,0
рейтинг
9 октября 2012 в 00:09

Разработка → Теплый и ламповый VPN tutorial


Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

— Алло, милый! У меня youtube не работает!
— Прекрасно, иди спать!
— Нууу! Там новая серия вышла!
— Завтра всё сделаю!
— Ну Заяя, нуууу!
— Ладно! Ладно! Сейчас.


Из этого поста вы узнаете ответы на следующие вопросы:
Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!


Начало



Первым делом я попросил сделать трейс и отрезолвить youtube.com с DNS провайдера и Google Public DNS
tracert youtube.com
nslookup youtube.com
nslookup youtube.com 8.8.8.8
Стало ясно что проблема в провайдере, его DNS отдавал IP заглушки, а трейс до IP youtube.com, полученному запросом к 8.8.8.8 уходил в никуда.

После этого я подкинул пару хороших и быстрых прокси, чтобы моя милая успокоилась и пошла смотреть свой любимый сериал. Попутно объяснил ей где найти очередные прокси, если эти помрут, а так же провел инструктаж о мерах предосторожности при использовании чужих прокси. Её все устроило, скорость была отменной, она визжала как поросенок, после чего пропала на пару часов в бездне кинематографа. Это был самый простой и быстрый способ ее успокоить и вернуть возможность вновь наслаждаться благами цивилизации.

Прокси, тем более публичные, это не серьезно, проблемно и очень не безопасно, нам нужен VPN подумал я, и поэтому решил — пока меня не отвлекают надо приступить к реализации. Для начала выберем сервер.

vServer VQ 7 — от Hetzner подойдет, цена вопроса всего 7.90 Евро/мес, а т.к. ничего кроме VPN мы запускать пока не планируем, этой простейшей конфигурации вполне хватит.
Как зарегистрироваться и купить сервер, объяснять не буду, скажу только что у меня попросили любой документ удостоверяющий личность, на котором видна дата рождения. Платил картой VISA.

Настройка сервера


И так, мы зарегистрировались и купили vServer VQ 7, заходим в админку и видим наш сервер


Теперь установим на него debian (кстати это можно сделать прямо во время оформления заказа). Переходим на вкладку Linux, выбираем конфигурацию Debian 6.0 minimal, 32bit, жмем Activate.


Установка начнется при следующем запуске сервера, т.е. нам надо его перезагрузить, сделать это можно на вкладке vServer, или по SSH.
Через некоторое время на почту придет письмо что все готово. Там же будет и пароль root пользователя, подключаемся по SSH к серверу и приступаем к настройке.

# меняем пароль пользователя
passwd root

# обновляем список пакетов и установим mc (дело вкуса, но я его ставлю)
apt-get update
apt-get install mc

# установим openvpn и приступим к настройке
apt-get install openvpn
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

# редактируем переменные
nano ./vars

	# меняем строки
	export KEY_SIZE=1024  # Длинна ключа
	export KEY_EXPIRE=3650 # Срок действия ключа в днях

	# описание сертификатов по-умолчанию
	export KEY_COUNTRY="RU"
	export KEY_PROVINCE="RU"
	export KEY_CITY="Moscow"
	export KEY_ORG="http://habrahabr.ru"
	export KEY_EMAIL="org@example.com"

	# сохраняем файл

# инициализируем переменные и чистим папку keys и создаем сертификаты
. ./vars
. ./clean-all

./build-ca			# корневой сертификат
./build-key-server server	# сертификат сервера
./build-dh			# ключ Диффи Хельман

# если вы планируете использовать tls-auth, который позволит скрыть порт на котором сервер слушает vpn подключения, защитить от DoS атак и кое чего еще, то выполните еще и эту строку:
openvpn --genkey --secret ./keys/ta.key

# Включили tls-auth? Тогда не забудьте передать ta.key клиентам, его надо будет положить рядом с сертификатом пользователя.

# перенесем полученные сертификаты в рабочую папку
cp ./keys/ca.crt /etc/openvpn
cp ./keys/server.crt /etc/openvpn
cp ./keys/server.key /etc/openvpn
cp ./keys/dh1024.pem /etc/openvpn

# Для tls-auth, выполните и эту строку:
cp ./keys/ta.key /etc/openvpn

# создадим сертификаты пользователей, сколько вам нужно (вводить данные не обязательно, поля будут принимать значения переменных по-умолчанию, достаточно просто нажимать Enter. В конце будет предложено ввести пароль (Enter export password), он защитит ваш сертификат от импорта недоброжелателями, хорошенько его запомните)
./build-key-pkcs12 vpn.android
./build-key-pkcs12 vpn.windows
./build-key-pkcs12 vpn.debian
./build-key-pkcs12 vpn.ddwrt
./build-key-pkcs12 vpn.home

# после этого в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ появятся ваши сертификаты vpn.android.*,  vpn.windows.* и другие.
# Если захотите создать сертификаты поздней, подключаетесь по SSH, и:
#	cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
#	. ./vars
#	./build-key-pkcs12 vpn.newuser1
#	./build-key-pkcs12 vpn.newuser2


# настроим сервер
zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
nano /etc/openvpn/server.conf

	# все настройки по-умолчанию нас устроят, меняем, раскомментируем:
	local IP_АДРЕС_ВАШЕГО_СЕРВЕРА
	push "redirect-gateway def1 bypass-dhcp"
	push "dhcp-option DNS 8.8.8.8"
	push "dhcp-option DNS 8.8.4.4"
	client-to-client # раскомментируйте, если хотите иметь доступ между клиентами внутри вашего VPN

	# Для включения tls-auth, необходимо добавить (без #)
	# tls-auth ta.key 0

	# Если хотите спрятать сервер от китайских ботов и ФСБ, поменяйте стандартный порт, на любой другой. Только не забудьте прописать этот же порт в настройках клиента.
	port 1194

	# сохраняем

# применим настройки файрвола через rc.local, можно сделать иначе, но я остановился на этом варианте.
nano /etc/rc.local

	# добавляем строки до exit 0
	iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
	iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
	iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
	# сохраняем

nano /etc/sysctl.conf

	# раскомментируем строчку
	net.ipv4.ip_forward=1

# отправляем на перезагрузку, чтобы сразу убедиться что автозапуск работает
reboot


Всё, серверная часть готова. Можно подключаться. Для перехода к следующим этапам, надо выгрузить с нашего сервера сертификаты из папки:
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
Это можно сделать при помощи SSH, либо mc если у вас есть ftp сервер. Нам нужны только некоторые файлы, какие именно читаем ниже.

Настройка android клиента (root не требуется)


1. Устанавливаем на телефон OpenVPN for Android
2. Загружаем на карту памяти сертификат p12, брать тут
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.android.p12

3. Запускаем OpenVPN for Android
4. VPN Profiles > Add, вводим любое имя. Приступаем к настройке профиля:
  • Basic > Server Address: IP адрес вашего VPN сервера, либо имя домена если вы его привязали
  • Type: PKCS12 File
  • Select: Выбираем наш файл *.p12
  • PKCS12 Password: вводим пароль импорта сертификата, заданный при его генерации.
  • upd: используйте последнюю версию приложения, в ней проверка remote-cert-tls server включена по-умолчанию. либо включите вручную в настройках авторизации, проверку сертификата сервера
  • Если вы включили tls-auth на сервере, включите в настройках профиля tls-auth и выберите ta.key

5. Готово. Подключаемся и проверяем, текущий статус подключения доступен в панели уведомлений (можно добавить на рабочий стол ярлык для конкретного VPN, он будет стартовать сразу по клику на ярлык, без лишних телодвижений. Если хотите чтобы при каждом подключении спрашивало пароль, просто не сохраняйте его в настройках профиля).

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


1. Скачиваем и устанавливаем клиент: 32bit | 64bit
2. Создаем файл конфигурации myvpnconfig.ovpn (обычный текстовый файл):
remote IP_вашего_сервера 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.windows.p12
verb 3
pull

# Если вы включили tls-auth на сервере, добавьте в конфиг эту строку:	
tls-auth ta.key 1

3. Создаем batch скрипт (start_my_vpn.cmd) для запуска VPN сессии:
cd C:\some\path\openvpn\
"C:\Program Files\OpenVPN\bin\openvpn.exe" --config C:\some\path\openvpn\myvpnconfig.ovpn

4. Скрипт и конфиг ложим в одну папку, в эту же папку кидаем vpn.windows.p12 сертификат, брать его тут
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.windows.p12

5. Готово, ярлык на скрипт кидаем на рабочий стол, запускаем от имени администратора или от пользователя с его правами, при запуске он попросит ввести пароль для «импорта» сертификата.

Если пароль верный, то несколько секунд и мы подключились:


Для не параноиков или автостарта туннеля без ввода пароля, можно вместо p12 использовать связку сертификатов ca.crt, vpn.windows.key и vpn.windows.crt, выглядит это так,
вместо
pkcs12 vpn.windows.p12
пишем:
ca ca.crt
cert vpn.windows.crt
key vpn.windows.key

Файлы брать все там же
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
и положить в папку с myvpnconfig.ovpn и start_my_vpn.cmd.

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


Настройка на примере debian 6.0

# ставим пакет openvpn
apt-get install openvpn

# создаем папку, в любом удобном месте для хранения сертификатов и скрипта подключения к VPN
mkdir /opt/openvpn

# создаем скрипт подключения
echo 'cd /opt/openvpn
/usr/sbin/openvpn --config /opt/openvpn/myvpnconfig.ovpn
' > /opt/openvpn/start_vpn.run

# создаем файл конфигурации
echo 'remote IP_ВАШЕГО_СЕРВЕРА 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.debian.p12
verb 3
pull' > /opt/openvpn/myvpnconfig.ovpn

# Если вы включили tls-auth на сервере, добавьте в конфиг эту строку:	
# tls-auth ta.key 1

# vpn.debian.p12 берем как обычно на сервере /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
# опять же, можно вместо p12 использовать ca.crt, vpn.debian.key и vpn.debian.crt, как в примере с windows, для того чтобы не вводить пароль для подключения к VPN, это пригодиться например для автозапуска VPN.

chmod +x /opt/openvpn/start_vpn.run


Готово. Не забудьте положить vpn.debian.p12 или ca.crt, vpn.debian.key и vpn.debian.crt в папку со скриптом и файлом конфигурации.
Для подключения к VPN, просто выполните с повышенными привилегиями:
/opt/openvpn/start_vpn.run


Настройка роутера на dd-wrt (Big или Mega)


В данном случае будет проведена настройка роутера, как клиента сети VPN, для возможности удаленного подключения к роутеру, если подключение по внешнему адресу недоступно, например провайдер внезапно выдал вам NAT'ированный IP. Подключаться можно будет с любого устройства, внутри вашего VPN.

1. Перейдите на страницу router_ip/Diagnostics.asp (тех.обслуживание->команды)
2. Если у вас уже есть «Параметры запуска», то нажмите Редактировать и добавьте ниже приведенный код, после, либо до вашего. Если нет то просто вставьте его в «Командный процессор» и нажмите «Сохранить параметры запуска»
3. Собственно сам код запуска:

#### CERT ####
CA_CRT='-----BEGIN CERTIFICATE-----
C4dczC6ZeWIgri7krQzPIrX5hNYAc676PNv6iomNWVJNkugr
-----END CERTIFICATE-----'

CLIENT_CRT='-----BEGIN CERTIFICATE-----
C4dczC6ZeWIgri7krQzPIrX5hNYAc676PNv6iomNWVJNkugr
-----END CERTIFICATE-----'

CLIENT_KEY='-----BEGIN RSA PRIVATE KEY-----
C4dczC6ZeWIgri7krQzPIrX5hNYAc676PNv6iomNWVJNkugr
-----END RSA PRIVATE KEY-----'                                  
#### CERT ####

#### OPEN VPN ####
OPVPNENABLE=`nvram get openvpncl_enable | awk '$1 == "0" {print $1}'`

if [ "$OPVPNENABLE" != 0 ]
then
   nvram set openvpncl_enable=0
   nvram commit
fi

sleep 30
mkdir /tmp/openvpn; cd /tmp/openvpn

echo "$CA_CRT" > ca.crt
echo "$CLIENT_CRT" > client.crt
echo "$CLIENT_KEY" > client.key

chmod 644 ca.crt client.crt
chmod 600 client.key

sleep 30

echo 'remote IP_ВАШЕГО_СЕРВЕРА 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
ca ca.crt
cert client.crt
key client.key
verb 3
pull' > openvpn.conf

# Если вы включили tls-auth на сервере, добавьте в конфиг эту строку:	
# tls-auth ta.key 1

killall openvpn
openvpn --config /tmp/openvpn/openvpn.conf&

### MASQUERADE
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
iptables -I INPUT -i tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
###

4. Переменные CA_CRT, CLIENT_CRT и CLIENT_KEY, это содержимое файлов ca.crt, vpn.ddwrt.crt и vpn.ddwrt.key соответственно, просто открывайте их текстовым редактором и копируйте содержимое, в vpn.ddwrt.crt блок будет в самом конце, в двух других копируем содержимое полностью. Брать файлы известно где
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/

5. Не забудьте заменить IP_ВАШЕГО_СЕРВЕРА и нажать «Сохранить параметры запуска».
6. Перезагружаем роутер, пробуем подключиться к нему с другого устройства в вашем VPN. Посмотреть VPN IP адрес роутера можно например через ifconfig.

fin


Запустив OpenVPN на любом из клиентских устройств, проверить что вы выходите в интернет через защищенный канал достаточно просто, откройте 2ip.ru, если там будет IP адрес вашего сервера, а провайдером значится Hetzner, всё в порядке.


Настоятельно рекомендую запускать VPN туннель сразу после того как вы подключаетесь к открытым точкам доступа Wi-Fi.
Как показала моя последняя командировка, ловить в wi-fi сетях гостиниц и прочих учреждений не заботящихся о безопасности своих клиентов можно очень долго и невозбранно (особенно удивляет обилие сканов паспортов, в почтовых ящиках тур. агентов).

Помимо прочего, вы получаете возможность подключаться между устройствами, даже если они находятся за NAT провайдера, это очень удобно. Если конечно вы раскомментировали строку client-to-client в конфиге сервера.

Большое спасибо:
1. www.opennet.ru/base/sec/openvpn_server.txt.html
2. wiki.hidemyass.com/DD-WRT_OpenVPN_Setup
3. www.hetzner.de

p.s.: провайдер так и не разблокировал youtube.com.
p.p.s.: android способ проверен на стоковых One X и SGS II.
p.p.p.s.: пост опубликован во вторник, это случайность.
@zorgrhrd
карма
50,7
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (157)

  • +8
    сразу видно, что софт не доведен до уровня пользователя.

    автор, ты писал это для пользователей у которых зарублен youtube и т.п. или просто историю из своей жизни?
    • +16
      До уровня юзабельности обычным пользователем, софт доводят VPN-провайдеры, коих нынче множество. Названия указывать не буду, ибо самореклама — это плохо, а реклама конкурентов — не выгодно.
      • 0
        Чего же у вас в разделе настроек под мак на последнем скрине до сих пор неявная реклама конкурентов?)) kebrum.com/configuration/openvpn/mac/
        • +2
          Руки не доходят поменять. И вообще, закончить бы стройку века с новым клиентом™ на Qt.
          • 0
            вы таки отказались от Mono? Поздравляю =)
            • 0
              Есть определённый набор проблем, в первую очередь связанных с макосью и работой GTK# под этой самой макосью. Так всё всех устраивало. Сейчас на Qt переносимое ядро с платформозависимыми участками, и логика на JS.
              • 0
                оно работает? и когда оно будет доступно для всех и каждого?
      • 0
        Простите мою серость. А вот если я захочу свою локальную рабочую сеть через вас пустить, это мне надо будет оплатить все клиентские машины? Или есть какой-то хаб, или прокси-сервер что-ли?
        • 0
          думаю нужно просто маршрутизатор сети подключить к VPN и сделать VPN дефолтным маршрутом.
    • +4
      Мне наверное повезло с девушкой, но со своего телефона к VPN она подключалась минуты 2-3, с того момента как я отправил ей сертификат.
      Она просто вписала адрес моего VPN сервера в профиле и выбрала сертификат который я ей прислал, всё. Для удобства еще скинула ярлык мгновенного подключения на рабочий стол. Сказала что все было просто.
      • +1
        Простите за оффтоп, Вы все это в 2 часа ночи сделали?
        • +13
          Не знаю как у автора комментария, но у меня при словах «2 часа ночи» и «девушка» совсем другие мысли и планы, а вот «VPN» в тот же самый момент в голову ну никак не попадает.
          • +6
            «2 часа ночи», «девушка» и «VPN» — значит девушка явно чужая
          • +5
            Все должно быть безопасно.
          • –1
            Если девушка в другом городе, а планы далеко идущие, то вполне логичные шаги =)
          • +2
            Возможно, открою для вас нечто новое, но девушка — это не предмет употребления в согласии с вашими «мыслями и планами», а еще и живой человек, который при правильном выборе доставляет гораздо больше удовольствия от других вещей, а не только от тех, что первыми приходят в воспаленное подростковое сознание.
      • +1
        Скажите, а почему в это время Вы были так далеко от неё? :)
    • +1
      OpenVPN AS устанавливается в пару комманд и имеет пользовательский интерфейс, не нужно вообще заморачиваться. openvpn.net/index.php/access-server/docs/admin-guides/123-how-to-install-openvpn-as-software.html

      2 пользователя могут работать бесплатно, что более чем достаточно для спасения «милой» =) автор потратил время только
  • +26
    >Как спасти свою милую от стресса в 2 часа ночи?
    Есть другие более приятные способы.
    • +13
      Когда она за 600 км, они работают менее эффективно)
      • –5
        Есть же skype :P
    • 0
      Зашел сюда в надежде прочитать эту великолепную блистательную остроту.
  • –2
    Если Youtube заблокируют совсем, то и за использование VPN, прокси, tor и I2P будут сажать к тому времени, мне кажется.
    Сейчас пока «прощупывают».
    • +3
      Для личного использования вряд-ли. Если только продажу подобных услуг на территории страны будут пресекать.
      • 0
        Уже предложили ввести штрафы. Но я крайне сомневаюсь, что можно оштрафовать всех пользователей VPN.
    • 0
      К вопросу о DPI (цитата из man openvpn про режим с pre-shared key):

      Another advantageous aspect of Static Key encryption mode is that it is a handshake-free protocol without any distinguishing signature or feature (such as a header or protocol handshake sequence) that would mark the ciphertext packets as being generated by OpenVPN. Anyone eavesdropping on the wire would see nothing but random-looking data.

      Сажать — вряд ли. Даже в Китае не сажают.
  • –2
    А прописать альтернативный DNS (ну если вся блокировка сводилась к тому что DNS не отдавал адрес ютуба) не проще было б, чем связываться с проксями?
    • +4
      а трейс до IP youtube.com, полученному запросом к 8.8.8.8 уходил в никуда
  • +2
    Ага, а потом она будет жаловаться на надписи
    «К сожалению, это музыкальное содержание ИМЯ_КОПИРАСТА_КРЫШУЕМОГО_ГЕМОЙ не доступно в Германии, потому что организация GEMA не предоставила соответствующие издательские права.»
    Проблему решил настройкой IPv6 от HE.net (гуглом все сети туннельброкера определяются как США), подцепленного к тому самому серверу в Германии. Но там все сложнее с настройкой DualStack поверх tap.
    • +1
      Поддерживаю, немецкий IP для youtube — это плохая затея.
  • 0
    Для Android нынче рынок VPN не такой тусклый как был раньше, и сейчас можно подключиться в пару кликов. Поэтому париться с настройкой под мобильный я бы по крайней мере не стал. Кроме того, учитывая, что надо еще и на вдс деньги тратить… лучше уж софт готовый поюзаю с халявушкой.

    play.google.com/store/search?q=vpn
  • 0
    В этом посте я узнал про замечательного хостера. Завтра вышлю админа покупать сервера.
    • +2
      С Hetzner-ом, увы, не всё так гладко. Они раздают сейчас IP в подсети 5.0.0.0/8, так что вы рискуете нарваться на неработоспособность сайта у клиента, сын которого поставил на компьютер Hamachi. Ресурсы околоигровой тематики там хостить вообще противопоказано.
      • –3
        Мне как бы для внутренних нужд надо было. Хм.
        Хотя с другой стороны не хорошо что там какие-то левые IP.
        • +7
          Это не IP левые, а хамачи начали использовать для внутренней сети адреса которые были ничьи, но пространство закончилось… и адреса получили хозяина, а хамачи внутренние не переделала.
          • 0
            Спасибо. Я просто не в курсе таких вещей.
        • 0
          Для внутренних нужд вполне подходит, стабильность на высоте.
        • 0
      • 0
        Я всё не могу понять, чей сын устанавливает Hamachi.
        • +2
          Очень популярно среди геймеров. Организует вам «локалку» через интернет из-за любого NAT-а.
        • –1
          И чего сразу сын-то? :) Мы с друзьями до сих пор в StarCraft и HoMM3 играем в своей «псевдолокалке» через Хамачи :)
  • 0
    можно еще юзать openvpn as, там вроде как 2 коннекта бесплатно, из приятного вебморда, и все гораздо проще для енд юзера при подключении. Да и лицензии 5 баксов за штуку располагают к покупке.
  • +20
    Возможно она специально забанила youtube, чтобы ты к ней приехал, а ты взял и VPN поднял ))
  • +9
  • +5
    Если абстрагироваться от удовольствия сделать это с нуля собственными руками и от прокачки кармы :), то есть смысл сравнить упомянутые затраты на сервер — «Hetzner подойдет, цена вопроса всего 7.90 Евро/мес» с тарифами упоминаемого Вами в ссылках «Hide My Ass» — от $11.52/мес до $6.55/мес при заказе срока пользования VPN соответственно 1 мес. и 1 год.
    При этом у НМА 282 сервера в 51-й стране. Завтра Вам может понадобиться американский IP — например, захочется послушать радио pandora.com или какой-то ролик на youtube окажется заблокированным и для немцев.
    • 0
      отсутствие логов и сниферов — бесценно :) хотя в полной мере это относится только к отдельной железке
  • 0
    Можно вместо хетзнера взять Amazon AWS. Недавно настраивал работает вполне сносно. По цене вообще полная шара (ну ток за трафик не вылазить), ибо в Free акк оно вписывается без особых проблем.
    Для тех, кому лень заморачиваться с настройками, есть openvpn.net/ ставиться в пару кликов, работает прямо из коробки, как на серверное стороне так и на клиентской.
    • +1
      Free ак, он же на год только.
      • 0
        А сейчас, по истечении шары, приходят счета по 20-30$. VPS-ка в Hetzner всяко дешевле выходит.
        • 0
          У меня стабильно «Total: $5.30» за один включенный инстанс. Наверное меньше используется.
          • 0
            Мистика. Надо садиться и просматривать счета, за что берут. Сам считаю что за полу-дохлый Micro instance 20$ перебор, а вот 5.30 было бы самое оно. Осталось только разобраться как на такую цифру выйти. Спасибо за идею.
            • 0
              В письме биллинга имеется ссылка, где можно посмотреть каких услуг вы перерасходовали.
      • 0
        через год стоит пять с лишним баксов, что тоже не напрягает
        • 0
          Бесплатно и 5 баксов в месяц, всё-таки разные величины. Особенно если этот сервер нужен по мелочи и раз в полгода.
          • 0
            Год бесплатно, потом либо пять баксов в месяц для ленивых и не жадных, либо новый (например виртуальный) пластик и новый аккаунт амазон…
            • 0
              в догонку, его можно тормозить с админки, и не платить когда не нужен.
  • +3
    не знаю почему, но содержание топика вызвало ностальгию по интернету начала 2000х. недостаток underground'a видимо
  • 0
    Тоже думаю последнее время про VPN. Анонимность меня не сильно волнует (точнее волнует, но я вроде не параноик), но в универе есть открытая сеть и вот там с некоторых пор приходится часто пользоваться ноутбуком и вобщем-то опасаюсь за свои пароли и прочую ерунду. Насколько безопасно пользоваться открытой точкой доступа wifi и при этом по соединению ssl? Gmail, google account, google reader и т.п. — т.е. все что угодно, но через ssl(https)?
    • 0
      Если не принимать сертификаты с кривой подписью — то безопасно.
    • 0
      Не очень безопасно, как-то у себя дома свой трафик снифал — оказалось, что добрая половина софта смело принимает левые сертификаты без вопросов (например, встроенный в андроид exchange-клиент) и выдаёт в открытом виде явки/пароли.
  • 0
    Собственноручно поднятый vpn-сервер безопаснее коммерческой услуги? Если предположить, что коммерческих провайдеров vpn обязывают вести логи и предоставлять их в случае чего?
    • +5
      кто кого обяжет?
      вот есть vpn-провайдер, юр.лицо у него на Виргинских островах, сервера стоят на Каймановых, а сам он живет в Новой Гвинеи с паспортом гражданина Гвинеи-Бисау. Кто его обяжет?
      но в любом случае свое надежней )) главное поднимать его в стране в которой вы уверены.
      • 0
        Вроде бы никто не обяжет, а на практике таки бывает, что ведут. Откуда вам знать, что он в Новой Гвинее, а не местный особист?
      • 0
        Я ничего не знаю про провайдера, поэтому у меня нет над ним контроля. Вдруг он на фбр работает, мало ли.
        Ну а по поводу страны — есть ли разница, если это мой сервер? Провайдер будет вести логи всех запросов со всех серверов?
        • 0
          Разница есть, когда к вам подбираются с той стороны :) То есть, когда расследование идёт от сервера к злоумышленнику, и прервётся на анонимном впн-сервере. А бывает и наоборот
        • 0
          Есть, конечно. Посмотрите локальные законы и поймете в чем разница.
          • 0
            Я не про законы, я про техническую сторону вопроса. Если я арендовал сервер и поднял там vpn, что можно отследить?
            • 0
              по запросу хостер может лить ваш трафик. смотрите законы той страны где хостите сервак
            • 0
              без монтирования вашей виртуалки входящие коннекты, с монтированием все что угодно.
              вы взяли VPS, он лежит на хосте.
              дальше продолжать?
  • +2
    Я себе такой-же практически поднял. Очень доволен.
    Подключаюсь с Android телефона и с ноутбука.

    Думаю не помешает заметить, что в Linux можно подключаться очень просто через openvpn плагин для NetworkManager через GUI и без ковыряния конфигов.

    Я ключи генерирую в /etc/openvpn/keys а не в /usr/share/doc/openvpn/examples/easy-rsa/2.0/ т.к. второй смотрится как-то не интуитивно =)

    Вот мои конфиги, если кому интересно.

    $ ls /etc/openvpn/
    keys  README  server.conf  update-resolv-conf  vars
    
    $ cat /etc/openvpn/server.conf | grep -E "^[a-z]"
    port 1194
    proto udp
    dev tun
    ca /etc/openvpn/keys/ca.crt
    cert /etc/openvpn/keys/server.crt
    key /etc/openvpn/keys/server.key  # This file should be kept secret
    dh /etc/openvpn/keys/dh1024.pem
    server 10.8.0.0 255.255.255.128
    push "redirect-gateway def1"
    push "dhcp-option DNS 208.67.222.222"
    client-to-client
    keepalive 10 120
    comp-lzo
    user nobody
    group nogroup
    persist-key
    persist-tun
    verb 3
    
    $ cat /etc/openvpn/vars | grep -E "^[a-z]"
    export EASY_RSA="`pwd`"
    export OPENSSL="openssl"
    export PKCS11TOOL="pkcs11-tool"
    export GREP="grep"
    export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
    export KEY_DIR="/etc/openvpn/keys"
    echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
    export PKCS11_MODULE_PATH="dummy"
    export PKCS11_PIN="dummy"
    export KEY_SIZE=1024
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    export KEY_COUNTRY="RU"
    export KEY_PROVINCE="Moscow"
    export KEY_CITY="Moscow"
    export KEY_ORG="seriyps"
    export KEY_EMAIL="me@*********"
    
    $ cat /etc/openvpn/README
    http://habrahabr.ru/blogs/linux/67209/
    http://lithium.opennet.ru/articles/openvpn/openvpn-howto.html
    
    # NAT
    sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/25 -o eth0 -j MASQUERADE 
    sudo sysctl net.ipv4.ip_forward=1
    
    # Generate new key
    sudo su
    cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
    source /etc/openvpn/vars
    export CLIENT_NAME="client_name"
    ./build-key-pass $CLIENT_NAME
    tar -cf /home/seriy/$CLIENT_NAME.tar /etc/openvpn/keys/ca.crt /etc/openvpn/keys/$CLIENT_NAME.{crt,key}
    sudo chown seriy:seriy /home/seriy/$CLIENT_NAME.tar
    
    
  • +1
    У себя дома в Молдове сделал домашнюю файлопомойку, с торрент клиентом, и бонусом добавил VPN сервер. Как в воду глядел.
    В Молдове на работе внешка была зарезана до полумегабита, а интранет доступен на 100 мегабит, вот и нужен был vpn сервер, чтобы пользоваться с работы быстрым домашним 30мегабитным инетом. Как оказалось, не зря я курил маны по установке vpn сервера на Ubuntu.
    Понаехав в Россию, мой молдавский сервер VPN оказался как никогда актуален в свете последних событий, так как в Молдове не блочат сервера в интернете — нет смысла, да и законодательство не позволяет.
  • +1
    Для России цена этого сервера без налога €6.64. Плюс, если планируете у них держать NS — €0.5 один раз за добавление домена. Сам пользуюсь уже больше года. Не только VPN, а еще всякие разные сервисы для себя.
  • +2
    У меня VPN до дома есть уже давно. В качестве сервера D-Link DFL-800, так как никаких секретных данных не гоняю, то все без изысков. Стандартный PPTP с минимальным шифрованием (ибо настраивалось еще на русской прошивке, а там все что больше 56бит недоступно ибо ФЗ). Плюс PPTP в том, что работает на всем, чем нужно вообще без плясок с бубном (Win, OS X, Android, iOS), спокойно НАТится в обе стороны, в отличии от L2TP и чистого IPSec-а, и не надо ничего устанавливать.
    Недавно тоже прикупил себе на всякий случай серверок и поднял до него IPSec (с той стороны racoon под CentOS) в тестовых целях. Хотя РТК (да и остальные провы в нашем регионе) пока ничего не блокирует, но так спокойнее. Если что-то заблокируют, можно зарулить в IPSec-овый туннель.
    • 0
      я тоже за pptp, из коробки работает с айфонов, легко поднять с роутера…
  • 0
    В такой конфигурации какая максимальная скорость соединения была?
    • 0
      У меня все уперлось в мой канал связи (~20Мбит/с), поэтому реальную производительность замерять не удалось.
  • 0
    А кто бы подсказал подходящего провайдера для размещения VPN-сервера внутри России. А то в наших палестинах и со спутника толком ничего не транслируют на русском и по IP большинство русскоязычных сервисов режут. А так хоть к ним доступ бы был. А то есть у человека желание смотреть отечественное ТВ, а как помочь, да так чтобы за недорого, пока не придумал.
    • +1
      clodo.ru, selectel.ru
      • 0
        спасибо!
        идально
    • 0
      bloodhost.ru, inferno.name
      • +1
        Прямо адские какие-то хостинги, по именам…
  • 0
    А насколько правильно править ручками файлы в /usr/ пусть даже в директории examples?
    • +1
      Вот тут я написал как это обойти habrahabr.ru/post/153855/#comment_5248427
      Нужно, например, скопировать файл /usr/share/doc/openvpn/examples/easy-rsa/2.0/vars в /etc/openvpn/vars и в нём прописать export KEY_DIR="/etc/openvpn/keys"
      Тогда для генерации ключа
      sudo su
      cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
      source /etc/openvpn/vars
      ./build-key-pass ...
      

      и ключи появятся в KEY_DIR, т.е. /etc/openvpn/keys, или что вы там пропишете
  • 0
    Наверняка можно поставить как DIY приложение на OpenShift (https://openshift.redhat.com/ ), тогда получаем вообще бесплатное решение
  • –2
    Не очень понятно, почему так сложно настраивался Debian. Там же NetworkManager есть, а он давно поддерживает openVPN в том числе с гуя.
    • 0
      На удаленных серверах, как правило, не поднимают графический интерфейс. Да и для тек кто привык работать с консолью, настройка через GUI может показаться неудобной, сложной, негибкой.
      • +2
        Он говорит про настройку клиента очевидно. VPN-клиент в NetworkManager вполне себе ничего.
        • 0
          Я понимаю, лично у меня был негативный опыт настройки через NetworkManager, то что в /etc/network/interfaces изменяется за пару минут там, по крайней мере раньше, было каким-то сложным в NetworkManager и работало не так как нужно было :)
          PS. А если нужен функционал который в данный момент не поддерживается NetworkManager он начинал глючить с измененными вручную настройками.
          PPS. Да и зачем грузить сервер лишними приложениями, изначально покупался сервер подешевле.
          • 0
            В смысле «грузить сервер лишними приложениями»?
            У меня есть VPS с OpenVPN сервером настроенным как у автора
            У меня есть ноутбук с Ubuntu и NetworkManager с которого я к этому VPN подключаюсь

            Ноутбук я настраиваю через NM. Из плюсов — иконка на значке соединения позволяет увидеть что VPN отвалился + приложения знают (через D-Bus интерфейс если есть необходимость), что я работаю через VPN ну и настройка в гуе.
            Внутри этот плагин точно так же запускает обычный /usr/bin/openvpn --client с нужными параметрами.

            Если вы через VPN соединяете 2 сервера, то это конечно другая история
            • 0
              Мы о разных вещах говорили) Я почему — то подумал что имеется ввиду поднятие VPN сервера на VPS средствами NM. Да и все это не так важно, каждый пользуется инструментами которые ему удобнее, я и на клиентской машине, скорее всего, настраивал бы через консоль.
  • 0
    Статья хорошая, но у моей бы крыша точно бы уехала)
  • –1
    >> Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал?
    Прописал гугловские ДНС и все работает.
    • 0
      Некоторые московские провайдеры блокируют доступ к чужим ДНС и заставляют пользоваться своими, с#ки :)
  • 0
    А что мешает использовать купленный сервер как прокси используя ssh-туннель?
    Поставить программку Bitvise Tunnelier, прописать там динамический туннелинг и дать наказ жёношке запускать эту прогу и в настройках браузера прописать полученный прокси? Там телодвижений намного меньше
  • 0
    А Hetzner не банит за использование VPN? Где-то читал, что запрещено… но что-то сейчас не найду гед ((
    • 0
      У меня больше года на их серверах тоннель крутится, ни разу никаких писем счастья или блокировок не было, хотя я и торренты гонял и просто серфил (на работе только через свой тоннель).
    • +3
      У них в вики есть:
      " Are tun/tap devices usable?
      Yes they are usable. If you wanted to you could run for example openVPN on a virtual server." (http://wiki.hetzner.de/index.php/VServer/en)
      Так что думаю никаких проблем быть не должно :)
  • +1
    А с какой стати вообще youtube заблокирован? И почему не сменить провайдера на другого, «годного»?
    • +1
      Eсть места, где провайдер — монополист с соответствующими замашками «куда хочу — туда верчу». Альтернатива им — дохленький мегафон модем который даже 500 кбит не вытягивает.
  • +16
    1) Не рекомендуется для генерации ключей использовать VPN сервер. При компрометации ca.* файлов компрометируется вся сеть. Лучше вынести папку easy-rsa куда-нибудь в безопасное место.

    2) Не стоит использовать стандартный порт. Причины очевидны. Устанете дяде из ФСБ объяснять, что это Вы ютуб смотрите, а не «central processors» (CP) передаете через этот Ваш буржуйский openvpn.

    3) Включите tls-auth:
    openvpn --genkey --secret ta.key
    раскидываем ta.key на сервер и клиенты, Далее
    tls-auth ta.key 0 — на сервере
    tls-auth ta.key 1 — на клиентах
    Телодвижений минимум, а выгода: скрытие факта существования VPN сервера и защита от (D)DOS'a, даже если спалите нестандартный порт.

    4) (да, я параноик!) chroot наше все. OpenVPN это прекрасно умеет.
    5) Включите верификацию сертификата сервера на клиентах (remote-cert-tls server), а то школьник Вася, прилежно загугливший про man-in-the-middle атаки будет слушать весь Ваш трафик, в то время, как Вы будете успокоены безопасностью VPN.
    6) Чем длинее ключи, тем спокойнее спится. У меня VDSка за 150 рублей вполне спокойно рулит трафиком с
    KEY_SIZE=2048
    cipher AES-256-CBC
    7) С помощью iptables не только трафик форвардить надо, еще все порты, что не нужно лучше сразу закрыть.

    Подробная инструкция на английском: openvpn.net/index.php/open-source/documentation/howto.html#security
    • 0
      remote-cert-tls server, первое о чем я подумал как дописал статью. позже обязательно добавлю.
    • 0
      Спасибо.
    • 0
      Уважаемый, почему у вас отрицательная карма? Ну непорядок же. :)
      • +7
        Стреляли…
    • 0
      3) Включите tls-auth:
      openvpn --genkey --secret ta.key
      раскидываем ta.key на сервер и клиенты, Далее
      tls-auth ta.key 0 — на сервере
      tls-auth ta.key 1 — на клиентах
      Телодвижений минимум, а выгода: скрытие факта существования VPN сервера и защита от (D)DOS'a, даже если спалите нестандартный порт.


      для того чтобы скрыть факт использования шифрования аутентификация по симметричному ключу больше подходит.
      для большей совместимости с некоторыми клиентами лучше использовать key-direction 0|1

      некоторые провайдеры блокируют tls режим, но рф это пока не касается.

    • 0
      Добавил в конфиги в статье remote-cert-tls server.
      tls-auth вызывает лишний шаг в настройке и мне кажется для базовой конфигурации излишен, поэтому внес комментарии в статью, для тех кому он необходим. Так же добавил заметку, про нестандартный порт.
  • 0
    А может кто знающий подскажет решение следующих идей:
    1. Контролировать/органичить траффик (объем скажем в день/месяц) по VPN для отдельного пользователя.
    2. На клиенте пустить по VPN только определенные хосты (для экономии платного траффика), скажем только Youtube.
    3. Получить доступ (объеденить в одну сеть) по Windows Network внутрь Windows виртуальной машины на том же сервере, что и VPN.
    • 0
      ОС какая?
      • 0
        На сервере? Как и у ТС, один в один ;)
        На клиенте Windows.
        • 0
          1. Когда я последний раз интересовался вопросом, винда не умела делить трафик по пользователям в пределах одной системы.
          2. Прописываете маршрут к подсетям ютуб через VPN — интерфейс. Конкретику не скажу, не владею виндой.
          3. Не очень понял вопрос. Вам нужно связать host и guest машины через windows network (smb протокол)? Либо подсоединяете гостя к VPN и просто настраиваете рабочую группу. Должно заработать.
          • 0
            1. VPN (сервер) же на Debian'е. Хочется, чтобы жена/подруга не сожрала израсходовала весь месячный траффик за день.
            3. Есть WinXP вирутальная машина на том же сервере, что и OpenVPN. Хочется снаружи на ноуте быть с той машиной в одной сети. Вобщем, похоже это решается клиентом openVPN на виртуальной машине…
            • 0
              1. Контролировать/органичить траффик (объем скажем в день/месяц) по VPN для отдельного пользователя.

              1. VPN (сервер) же на Debian'е. Хочется, чтобы жена/подруга не сожрала израсходовала весь месячный траффик за день.

              Что Вы имеете в виду под «отдельным пользователем»? Локального пользователя на виндовом клиенте? Или компьютер жены, подключающийся к VPN по отдельному своему сертификату? Если второе, то ставьте любую систему учета трафика на сервер. Я когда-то давно использовал NetAMS, тогда еще в третье версии.
              Если первое, то не понимаю как связан локальный пользователь на клиенте и сервер на Debian.
              • 0
                Да, конечно второе. Спасибо, посмотрю.
                А может есть какое-то решение внутри VPN (понятно, что не openVPN, но на его основе и не на его куча всяких решений), которые позволяют скажем вебмордой создавать пользователей (VPN), котролировать сертификаты, траффик, скажем временем доступа и т.п.
    • 0
      1. радиус может помочь
  • 0
    Хм, насколько я понимаю на iOS (Apple) под OpenVPN клиента не существует? (везде предлагают только для джелбрекнутых версий клиенты)?
    • 0
      iOS поддерживает VPN из коробки. Только вот отваливается он, нельзя его один раз включить и постоянно юзать, надо каджый раз при необходимости включать в настройках
      • +1
        Из коробки iOS вроде как поддерживает только L2TP, IPSec и PPTP…
        • 0
          да, пардон l2tp ipsec
      • 0
        Это правда лишь отчасти. Для VPN с использованием сертификатов ( L2TP / IPsec ) есть такая опция как onDemand, когда подключение будет активироваться всякий раз когда происходит доступ к ресурсам сети. По странной логике Apple, для парольной авторизации такая опция не предусмотрена.
        • 0
          ну да, я слышал, Cisco OnDemand, но где ж его взять на обычном покупном впне. Логика действительно странная
    • 0
      Тогда вопрос- может кто подкинуть статейку хорошую как организовать L2TP / IPsec для таких нужд, ну или хоте бы какой софт для этого использовать порекомендуете (есть сервачек с CentOS)?
  • 0
    Вот буквально на днях выбрал себе такую же конфигурацию. Автор, спасибо! теперь руки точно дойдут.
  • +1
    Ubuntu server 12.04.1, локальный IP: 192.168.1.33, Маршрутизатор: 192.168.1.1 + внешний IP, порт 1194 проброшен.

    Сделал всё по инструкции. Windows-машина подключается, но доступ почему то есть только к 192.168.1.33. Любые другие адреса не отвечают. (Подсоединялся с другого провайдера.)

    server.conf http://paste.org.ru/?0l9n5a
    openvpn-windows клиент http://paste.org.ru/?i1lhzq

    В чем может быть проблема?
    • 0
      Вывод
      iptables -vnL
      iptables -t nat -vnL
      дайте.
      • 0
        iptables -vnL http://paste.org.ru/?dk31x6
        iptables -t nat -vnL http://paste.org.ru/?ov84hk

        Что то 192.168.122.0 меня смущает.
        • 0
          virbr0 к VPN отношения не имеет
        • 0
          Медотом исключения остается проверить cat /proc/sys/net/ipv4/ip_forward на сервере. Должен выдавать единицу. Если выдает ноль, то сделайте

          echo '1' > /proc/sys/net/ipv4/ip_forward

          и, если заработает, сохраните в /etc/sysctl.conf
          net.ipv4.ip_forward = 1
          • 0
            Это в статье тоже описано было, выполнял.
            cat /proc/sys/net/ipv4/ip_forward
            Показывает «1»
            • 0
              Как проверяете доступность?
            • 0
              Недоступны ресурсы в локальной сети сервера, или в интернете?
    • +1
      Столкнулся с подобной проблемой, напишу, вдруг еще кто-нибудь столкнется.

      Не обязательно интернет висит на eth0, как указано в конфиге из статьи, нужно подставлять свой интерфейс
  • 0
    Простите, возможно глупый вопрос, но мне не понятно — после установки впн-клиента на андроиде и подключения его к серверу — почему вдруг браузер или любое другое приложение должно идти на запрашиваемый ресурс не напрямую, а через канал впн?
    Клиент впн под андроид назначает шлюз по умолчанию для активного интерфейса? Или создает виртуальный интерфейс, связывает его с интерфейсом сервера впн, делая его шлюзом по-умолчанию?
    Если я при этом расшариваю этот интернет с помощью телефона (делаю его wifi-точкой доступа) — то клиенты этого wifi — тоже пойдут в интернет по впн?
    Простите еще раз за возможную глупость, просто хотелось бы все до конца понять. Связывая 2 сети через интернет с помощью openvpn мне пришлось править iptables направляя трафик из одной сети в другую и наоборот.
    • 0
      «создает виртуальный интерфейс, связывает его с интерфейсом сервера впн, делая его шлюзом по-умолчанию" — это я имел в виду, что правильный этот вариант.

  • 0
    «создает виртуальный интерфейс, связывает его с интерфейсом сервера впн, делая его шлюзом по-умолчанию?»

    Связывая 2 сети через интернет с помощью openvpn мне пришлось править iptables направляя трафик из одной сети в другую и наоборот.
    Достаточно было сказать
    push «redirect-gateway def1 bypass-dhcp»
    в конфиге сервера. Кстати, это можно говорить для отдельных клиентов, используя параметр ccd.
    • 0
      спасибо, просветили мою серость).
  • 0
    Как раз решил настроить OpenVPN на своем VPS на базе CentOS.
    Сделал по инструкции.
    Прописываю параметр push «redirect-gateway def1 bypass-dhcp»
    Трафик до сервера ходит нормально, но вот дальше начинаются проблемы.
    Трассировка на доменные имена на работает.
    Трассировка на, к примеру, 8.8.8.8 занимает пару минут.
    На машине ничего не открывается.
    Клиент под Windows.
    route PRINT на нем выдает
    IPv4 таблица маршрута
    ===========================================================================
    Активные маршруты:
    Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
    0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.2 25
    0.0.0.0 128.0.0.0 10.18.0.5 10.18.0.6 30
    10.18.0.0 255.255.255.0 10.18.0.5 10.18.0.6 30
    10.18.0.4 255.255.255.252 On-link 10.18.0.6 286
    10.18.0.6 255.255.255.255 On-link 10.18.0.6 286
    10.18.0.7 255.255.255.255 On-link 10.18.0.6 286


    Ранее с такой проблемой не сталкивался. В iptables все прописано корректно. Как понять в чем может быть проблема?
    • 0
      Выложите трейс до 8.8.8.8 с сервера и с клиента.
      • 0
        Трейс ходил, но очень медленно. Какой-то баг был временный, видимо. Сейчас все поднялось.
  • 0
    Кстати хетцнеру не нравится, когда его пользуют под vpn. Был опыт — забанили.
  • 0
    Я попытался нагуглить эту статью по словам «OpenVPN на страже семейных отношений», так как фраза классная и запоминающаяся. Не получилось, хотя через посик хабра нашел.
    Потом понял, что фраза была в самой картинке
  • +2
    Внес небольшие изменения в статью (конфиги и комментарии), надеюсь она не стала чуть более запутанной.
  • 0
    Вохможно есть вариант дешевле. Выбираем на Amazon Web Services Free Usage Tier получаете машинку примерно тех же параметров на год безплатно. Там же есть ещё Virtual Private Cloud но безплатно уже не выйдет. 5 центов в час.
  • 0
    Сделал все как в инструкции. Кто нибудь может объяснить, как сделать, чтобы whoer.net не палил мой российский DNS?
    • 0
      Если все сделано как в статье то не должен, т.к. в конфиге из стать пушатся DNS от гугла.
      Перечитайте вот эти строки
      # все настройки по-умолчанию нас устроят, меняем, раскомментируем:
  • 0
    На днях заморочился автоматизацией подключения и хранением сертификатов для подключения, получилось достаточно дружелюбно.

    SFX EXE файл с упакованным во внутрь томом TrueCrypt и самим TrueCrypt в портативном виде. При запуске exe файла, все его содержимое (бинарник truecrypt и том tc) извлекаются во временную директорию, ./tmp_vpn, рядом с exe файлом, удобно например если носишь на флешке.
    после того как все будет распаковано, открывается консоль CMD и запрашивает пароль от тома tc, введенный пароль заменяется символами **** через EditV64 или EditV32 (архитектура определяется автоматом), если пароль на том введен верно, он монтируется в тихом режиме как флешка, на томе лежит защищенный паролем сертификат PFX и бинарники openvpn для 32 и 64 битных ПК, конфиг создается на лету из скрипта и кладется рядом с сертификатом, после этого консоль спрашивает второй IP, уже от сертификата, если пароль подошел, происходит подключение к тоннелю. Для разрыва соединения достаточно закрыть консоль.

    Для конечного пользователя все выглядит достаточно просто, он вставляет флешку в любой ПК, запускает exe файл, вводит 2 пароля и всё, он подключен.

    При закрытии терминала происходит автоматическое отключение от тоннеля и размонтирование тома TC. Все достаточно не плохо. Драйвера TAP ставятся на ПК при необходимости тоже в автоматическом режиме, разве что выйдет окно, доверяете ли вы издателю.
    • 0
      спрашивает второй IP
      второй пароль конечно, не успел отредактировать.
  • 0
    А есть такое же руководство, но для поднятия vpn pptp сервера? Спасибо.
  • +1
    Небольшое дополнение.

    Если необходимо чётко установить исходящий IP-адрес (к примеру, если на сервере их много), то вместо:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

    Указываем:
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 111.222.333.444
    где 111.222.333.444 — внешний IP сервера.

    PS. Если вы уже ввели первое условие, то чтобы его удалить запускаем:
    iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    т.е. вместо «-A», указываем «-D».
  • 0
    В последних версиях openvpn easy-rsa исключили из пакета. Есть ли где-то актуальная инструкция?
  • 0
    Старался всё делать по инструкции, но не взлетело.
    • Запускаю так: sudo openvpn --config ./vpn.ovpn. Получаю Initialization Sequence Completed
    • На сервере openvpn.log пуст
    • На сервере openvpn-status.log видит 10.8.0.6,faiwer,мойip:1194,Thu Mar 31 10:41:28 2016 клиента, судя по всему
    • На клиенте nslookup ya.ru и nslookup youtube.com 8.8.8.8 ― пусто
    • На сервере эти же команды возвращают адреса.
    • Ping на сервере до 93.158.134.3 (yandex из nslookup) идёт, а на клиенте молчит (даже по прямому IP т.е.)
    • На сервере cat /proc/sys/net/ipv4/ip_forward выдаёт 1
    • На сервере service openvpn status пишет * VPN 'server' is running
    • ping к серверу по его IP на клиенте идёт
    • ping к серверу по его домену уже нет

    ЧЯДНТ? В сетях почти ничего не понимаю...
    • 0
      Похоже что на сервере просто не включен маскарадинг, вот этот кусок из статьи:
          # добавляем строки до exit 0
          iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
          iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
          iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
          # сохраняем

      Проверьте что при выполнении этих команд, нет ошибок в выводе. Проверьте имя вашей сетевой, что она действительно eth0
      Не сохраняйте в файл, а именно выполните их в консоли сервера.
      • 0
        cat /etc/rc.local
        #!/bin/sh -e
        #
        # rc.local
        #
        # This script is executed at the end of each multiuser runlevel.
        # Make sure that the script will "exit 0" on success or any other
        # value on error.
        #
        # In order to enable or disable this script just change the execution
        # bits.
        #
        # By default this script does nothing.
        
        #faiwer
        iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
        iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
        iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
        
        exit 0


        Запуск
        root@faiwer:~# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
        root@faiwer:~# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
        root@faiwer:~# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
        root@faiwer:~#


        Т.е. ни ошибок, ни каких-либо сообщений.
        Проверьте имя вашей сетевой, что она действительно eth0

        А как? Так?
        ifconfig
        root@faiwer:~# ifconfig
        eth0      Link encap:Ethernet  HWaddr 00:16:3e:5a:ad:3a  
                  inet addr:IP_МОЕГО_СЕРВЕРА  Bcast:31.131.16.255  Mask:255.255.255.0
                  inet6 addr: fe80::216:3eff:fe5a:ad3a/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:199293 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:124354 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000 
                  RX bytes:18315365 (18.3 MB)  TX bytes:1982768199 (1.9 GB)
                  Interrupt:32 
        
        lo        Link encap:Local Loopback  
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  inet6 addr: ::1/128 Scope:Host
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:102 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0 
                  RX bytes:17277 (17.2 KB)  TX bytes:17277 (17.2 KB)
        
        tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
                  inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
                  UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
                  RX packets:4180 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:100 
                  RX bytes:263759 (263.7 KB)  TX bytes:0 (0.0 B)


        В некоторых статьях помимо apt-get openvpn были ещё пакеты. Вроде как раз что-то вроде для маскарада. Может быть в этом дело?
        • 0
          Тут хорошо бы и сторону сервера посмотреть.
          • 0
            Тут хорошо бы и сторону сервера посмотреть.

            Подскажите, плз, что именно и как? Листинг ifconfig я показал как раз серверный.
            • Мой клиентский располагает eth0, lo, wlan0.
            • Сервер: uname -a => Linux {name} 3.2.0-75-generic #110-Ubuntu SMP Tue Dec 16 19:11:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux. UbuntuServer.
            • Клиент: Linux faiwer-mint 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux. LinuxMint.
            • Версия OpenVPN на клиенте: 2.3.2-7ubuntu3.1, на сервере: 2.2.1-8ubuntu1.4.
      • 0
        Интересное дело. Спустя пару дней я снова полез ковыряться. Но оно заработало само. Без каких-либо изменений. Ох уже сети :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Интересные публикации