Осторожно, “многобукаф“.
“.. когда ты просто идёшь по улице, ничего не подозревая, ты даже не знаешь, что происходит в этом долбанном мире, сейчас, в эту же секунду умирает десятки людей от насилия, от болезней, от голода, но мы ничего не знаем, мы никогда не знали, эта ширма, она везде, мы слепы, до безумства слепы, наши привычки дают им силы, они питаются нами, а мы ничего не знаем, мы даже не подозреваем, наши желания и мечты под ширмой, большой занавес над нами, бежать некуда, мы взаперти..”
Итак, сегодня в рубрике “Freedom”: как открыть доступ к свободному интернету! Пока что правительство Украины не предпринимало никаких действий по поводу блокировки сайтов, как это практикуют наши соседи, но в эту сторону смотрят, так что нужно начинать действовать!
Дальше будет инструкция, как создать свой виртуальный сервер в Амстердаме, поставить там VPN, и радоваться открытому интернету, попивая колу у себя на диване!
Что вам будет нужно?
Первая мысль, которая пришла к вам в голову: “Сервер? Свой сервер? Это же, наверное, безумно дорого!?” — нет, скажу я, это бесплатно! Не вечно, но бесплатно!
Переходим на сайт DigitalOcean, кто не знает, это — Virtual Private Server (виртуальные приватные серверы) хостинг. Их можно использовать, как хочешь: можно сделать из него веб-сервер, поставить там свой сайт, можно сделать всё, что можно сделать с обычным сервером на Линуксе. Проходим мини регистрацию и попадаем в панель управления. Итак, первое, что нужно сделать — это достать халявных денег. Можете использовать вот этот вот промо-код: DIVEIN10. Он даст вам 10$, это — два месяца постоянной роботы одного сервера. Но, если он не заработает, тогда заходим на страницу DO in Twitter и ищем там последний промо-код, они их очень часто раздают, так что — не переживайте, просто ищите! Когда у нас есть промо код, сайт нам предлагает сразу же привязать банковскую карту, если вдруг не предложит, то нужно будет перейти на вкладку “Billing” и ввести данные своей карты (или не своей). Но это обязательно надо, иначе сервис не позволит вам создать Дроплет (Виртуальный сервер). Перед вводом данных желательно внизу этой же страницы ввести свой промо-код. После успешной привязки карты нажимаем на зеленую кнопку “CREATE”. Теперь у нас открывается страница “Создание дроплетов”, ура! Сейчас начинается самое интересное, поэтому можете сходить и сделать чаю/кофе или, в общем, как хотите.
Первое — это, конечно, же придумываем название нашему чудо серверу. Я назову ForKEDDRServerVPN. Далее — выбираем характеристики нашего сервера, для наших потребностей нам хватит минимума, это — 5$ в месяц за 20 Gb SSD, 1 ядро, 512 Mb RAM и 1 Tb трафика, если вы думаете, что наш сервер будет слабенький, то нет – это не так, его нам хватит с головой, а вся ОЗУ, которая нам понадобится — это несчастные 100 Мб, максимум. Далее — это выбор, где наш сервер будет находится территориально, выбор не велик, но этого вполне достаточно. Не рекомендую использовать американские серверы, поскольку скорость работы и пинг будут слабые. Поэтому я выбираю Амстердам, а вы — как хотите. Теперь выбираем систему, которая будет стоять на нашем сервере. Я буду ставить стабильную Ubuntu 12.04 x64, на другие системы инструкция будет немного отличаться. Нажимаем Create Droplet и ждём, сервер создаётся очень быстро (55 секунд, как заявляют сами DigitalOcean). Но, увы, практика говорит, что не всегда так! Когда дроплет будет создан, вам на почту придёт письмо с поздравлениями об успешном создании VPS и вас перебросит в панель управление вашим сервером. Самое главное, что придёт на почту: IP адрес сервера, имя и пароль пользователя. Что с этим делать — дальше, в следующем шаге.
Теперь нам нужно как-то подключиться к нашему серверу. Если у вас Mac OS или Linux, то подключаться будем через терминал, если у вас Форточки (Windows), то нужно скачать маленькую утилиту, называется она PuTTY (скачать). Для подключения через терминал пишем
ssh root@Айпи_вашего_дроплета и нажимаем Enter
вводим пароль пользователя и — вуаля! — вы в системе.
Для подключения через Putty: запускаем, вместо адреса пишем айпи и подключаемся, в появившемся окне пишем имя пользователя (root) и пароль.
Итак, поздравляю! Вы подключились к своему серверу в Амстердаме, звучит круто, не так ли? Как вы поняли, вся настройка и установка VPN будет… Да, да, именно в консоли!
Итак, поехали! Начинаем установку обновлением существующих пакетов:
apt-get update
теперь ставим openvpn:
apt-get install openvpn -y
Для полной защиты нам нужно будет создать собственный центр сертификаций, звучит громко, но на деле — обычная папочка, пишем:
mkdir /etc/openvpn/easy-rsa
копируем содержимое из установленной папки в созданную:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
Следующим шагом мы будем создавать сертификаты и ключ, но для это надо openssl, эта штука нужна для создания сертификатов, ключей, и шифрования данных. Переходим в наш рабочий каталог:
cd /etc/openvpn/easy-rsa
Узнаем, что у нас стоит в системе сейчас:
aptitude show openssl
У меня вот что вышло: 1.0.1-4ubuntu3, если у вас тоже самое (а так и должно быть), то подойдёт версия 1.0.0, переименуем наш файл:
mv openssl-1.0.0.cnf openssl.cnf
./clean-all
./build-ca
Нужно будет ввести в сертификат данные о сервере, пишем всё, что хотим, или же просто нажимаем enter. Теперь у вас в папочке /etc/openvpn/easy-rsa/keys лежат два файла: ca.crt (сертификат) и ca.key (ключ). Теперь сгенерируем сертификаты openvpn сервера:
./build-key-server keddro-test
Вводим данные для ключей (не обязательно), просто нажимайте Enter, только в конце нужно будет подтвердить подпись сертификатов: дважды ввести “y” — и всё. Вместо keddro-test можете написать, что угодно, это название вашего openvpn сервера. Ещё важным действием является выбор алгоритма Диффи-Хеллмана.
./build-dh
После окончания получите ключ в папке keys и вот такую вот картинку. Все основные ключи и сертификаты сгенерированы в папке keys, для простоты копируем наши ключики в папку /etc/openvpn
cd /keys
cp ca.crt dh1024.pem keddro-test.crt keddro-test.key /etc/openvpn/
Теперь можно создать сертификаты для разных пользователей
./build-key-pkcs12 vpn.for.keddr
Опять нужно нажать несколько раз enter, дважды согласиться и ввести пароль для этого пользователя. Вместо vpn.for.keddr можете написать всё, что угодно, и создать таких пользовательских сертификатов можно огромное количество, я остановлюсь на одном. Теперь переходим к настройке самого сервера. Возьмём файл из примера и распакуем его в нашу рабочую папку командой:
zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Теперь нужно отредактировать его:
nano /etc/openvpn/server.conf
Изменять мы почти ничего не будем, нам нужно только роскомментировать пару тройку строк:
local (здесь пишите айпи вашего сервера)
push “redirect-gateway def1 bypass-dhcp”
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”
Ещё находим строку cert server.crt, меняем на cert keddo-test.crt, key server.key на key keddro-test.key, можно ещё найти строку port и сменить номер порта для большей безопасности. Теперь нужно добавить пару строк в настройки фаервола:
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
Последний шаг в настройке сервера — это скопировать себе сертификаты с него. Если у вас Mac/Linux, то открываем новое окно терминала и пишем:
scp root@айпи_сервера:/etc/openvpn/* /место/куда/сохранить
Введите пароль и ждите, пока скопируются. Для Windows вам нужно открыть консоль Пуск-cmd и пишем:
pscp root@айпи_сервера:/etc/openvpn/* c:\
Все ваши сертификаты будут в корне диска С:\
Всё, сервер у нас готов к работе, теперь нам нужно настроить клиент у себя, чтобы можно было подключаться. Первое, что нам нужно сделать, это, конечно же, установить openvpn у себя на машине, как это сделать, я думаю, вы знаете. Для Ubuntu/Debian просто пишем:
sudo apt-get install openvpn -y
Создаем папочку для сертификатов и скрипта подключения:
mkdri /opt/openvpn
Создаем скрипт (после каждой строки нажимаем Enter):
echo ‘cd /opt/openvpn
/usr/sbin/openvpn –config /opt/openvpn/myvpnconfig.ovpn
‘ > /opt/openvpn/start.run
И теперь создаем файл конфига:
echo ‘remote IP_ВАШЕГО_СЕРВЕРА 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls keddo-test
pkcs12 vpn.for.keddr
verb 3
pull’ > /opt/openvpn/myvpnconfig.ovpn
Меняем права:
chmod +x /opt/openvpn/start.run
И всё, у нас всё готово. Для того, чтобы подключиться, просто пишем:
/opt/openvpn/start.run
Для WIndows:
Открываем блокнот (или просто создаем обычный текстовый документ) и пишем:
remote IP_вашего_сервера 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls keddro-test
pkcs12 vpn.for.keddr
verb 3
pull
сохраним его вот так: C:\openvpn\keddoconfig.ovpn . Теперь создаём скрипт для запуска. Создаём текстовый файл и пишем:
cd C:\openvpn\
“C:\Program Files\OpenVPN\bin\openvpn.exe” –config C:\openvpn\keddroconfig.ovpn
Сохраняем файл, как start.cmd в нашу папку openvpn, туда же скачиваем наши сертификаты. Можете ещё сделать ярлык на файл start.cmd на рабочий стол.
Если у вас Mac OS, то вам нужно успользовать программу TunnelBlick. С ней все просто, инструкция есть на сайте скачки. Предварительно скачайте с сервера сертификаты. Дл андроида тоже существует приложения в Google Play – OpenVPN for Android.
Удачи вам и вашему серверу! Берегите себя, впереди — тяжкие времена! С вами был ваш Параноик!
Отлично, спасибо.
Господин Параноик, у меня вот назрел вопрос. На сайте провайдера VPN вы указываете данные своей кредитной карты. То есть вы действительно считаете, что если кто-то захочет вас найти, он не выйдет на провайдера и не зажмет его в тиски? Пробить кредитку — в два счета. Виртуальные вроде бы без каких либо данных тоже не зарегестрируешь. Я вот не верю, что в спецслужбах сидят совсем далёкие люди и что для них составит труд пробить всех известных VPN провайдеров. И наверняка, если вы совершили что-то серьезное, потребуют выдать вас, и, думаю, мало кто сумеет противостоять этому ради одного лишь имиджа. Что скажете?
оп, а этот парень знает, что пишет. Ув. Господин Параноик, как вы отреагируете?
Тут, скорей, автор не ставит цели сокрытия своих действий в интернете. Здесь стоит вопрос в обходе блокировки доступа к различным ресурсам.
Зачем же указывать данные карты зарегистрированной на свое имя? Есть же виртуальные карты типа Киви, в которых будет только номер телефона купленный возле метро.
Я не писал о полной анонимности и о том что вы после каких либо незаконных действий будете защищены от спецслужб. Это не так, но с этого все начинается.
Не понял, что тут про свободу? Про свободу пиратства? Или про какую свободу?
У соседей блокируют варезятники и торренты.
И второе, почему убунта х64? В 512 метрах это жуткий тормоз. В такие инстансы люди ставят 32-разрядные системы.
вот сервер с openVPN с ubuntu 12.04 x64 –
использовано ОЗУ 46 мб из 491
здесь нет оболочки, нету иксов, жрать ОЗУ попросту некому
Может в случае, если там только впн, то жрать и нечему. Про иксы на инстансе я даже подумать не смог. Ну если я не авторитет… Ты “радио-т” слушаешь? Там в 360м выпуске Бобук с Умпутуном дружно и безапелляционно сказали, что на такие микроинстансы они ставят только х32. тема была не про это, но прост вскользь, умные и авторитетные люди оказались того же мнения что и я.
куда ж без “радио-т”, ну значит я просто забыл) хотя, если использовать для одного VPN, то все равно что там будет стоять
Ну то да. А так свободно можно ещё пяток небольших сайтов держать.
у соседей блокируют все, что неправильно лежит. худшее из зол то, что добром прикидывается.
Неплохо. Только пока не вижу смысла в этом. Для большинства пользователей будет проще воспользоваться Tor’ом. И если уж арендовать VPS, то лучше поднять собственный почтовый сервер.
исли захотеть то на c VPS можно сделать многое
например?
Можно поднять почтовый сервер, веб-сервер, (модное сегодня слово) облачное хранилище, например для бэкапов или просто как файло-помойку. Можно джаббер сервер сделать. Или игровой сервер. Это то что первое в голову приходит.