ADS 468x60

2012-01-27

Безопасное использование общественного WiFi

Не кому не секрет, что использование общественных WiFi
точек доступа в Интернет, размещенных в магазинах или ресторанах, влечет за собой
риск утечки ваших личных данных, минимально это пароли от почты,
социальных сетей и других сайтов. На сегодняшний день, многие сайты используют защищенное соединение “https” в момент авторизации или на время соединения, но от всего это не спасет. В Интернете, находиться очень много информации о перехвате данных, наводятся примеры, инструкции, видео-ролики с детальным описанием
последовательности действий и инструментария, что на мою точку зрения
провоцирует людей на совершение преступлений. (ст.361-363 УК Украины)

Мое решение данной проблемы, защита трафика, используя
VPN-туннель, который строится между вашим устройством телефоном/планшетом/ноутбуком/ПК и безопасным сервером/ПК.

Где взять безопасный сервер?
Существует много компаний предоставляющие платный/бесплатный VPN доступ,
утверждая, что они защитят вас при использовании интернета в том-числе и
через публичные точки доступа. Если Вас устраивает данное решение,
воспользуйтесь поисковой системой и дальше можете не читать, если нет,
добро пожаловать.

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

Для создания собственного виртуального сервера необходимо следующие:
1. Персональный компьютер подключенный к Интернет или домашний сервер.
2.
VirtualBox - кроссплатформенное ПО виртуализации, почитать тут скачать тут.

3. Ubuntu-server - linux дистрибутив, почитать тут скачать тут.

Т.к. дома я использую
Ubuntu Linux, VPN-сервер разворачиваю именно на данной операционной системе. Если вы используете другую ОС, вам необходимо будет скачать VirtualBox для своей версии системы.

Не хочу отдельно описывать все процессы установки, что и как надо настраивать в
VirtualBox и Ubuntu, рекомендую ознакомиться с вот этой статьей. Для первоначальной установки выполняем все описанное в статье до команды “sudo apt-get install
console-cyrillic” - ее тоже можно выполнить, (если все-таки возникнут
трудности, обращайтесь в комментарий, что-то придумаем или воспользуйтесь поисковой системой).

Устройства на базе ОС
Android и Apple iOS по умолчанию содержат VPN-клиент, который поддерживает 4 варианта подключения (PPTP, L2TP, L2TP/IPSec
PSK, L2TP/IPSec CRT). Рассмотрим построение VPN-туннеля по протоколу
L2TP (вы конечно можете выбрать для себя другой протокол). Если
установка ОС прошла успешно, следующий шаг это установка серверной части
программного обеспечения L2TP.


Устанавливаем ПО (клиент-серверной части) L2TP на Linux.
sudo apt-get install xl2tpd

Настраиваем фоновую службу xl2tpd (
Daemon).
Для возможности в любой момент откатиться назад, рекомендую предварительно  создать резервную копию конфигурационного файла xl2tpd.conf.
Командой “
cp” – создаем резервную копию файла.
sudo cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.backup

Редактируем конфигурационный файл.
sudo cp /dev/null /etc/xl2tpd/xl2tpd.conf – очищаем файл.
sudo
nano /etc/xl2tpd/xl2tpd.conf – открываем файл редактором nano.
Добавляем в файл “xl2tpd.conf” следующие строки:
[global]

port = 1701
[lns default]
ip range = 10.10.10.1-10.10.10.15 – указываем диапазон IP выдаваемых подключенным клиентам (телефон, ноутбук, ПК).
local ip = 10.1.1.12 – в данном случае я указал IP моего роутера.
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

Редактируем /etc/ppp/options.xl2tpd (sudo nano /etc/ppp/options.xl2tpd) — если файл не существует, его нужно создать:

sudo cp /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bak – создаем резервную копию.
sudo nano /etc/ppp/options.xl2tpd

Добавляем в файл “options.xl2tpd ” следующие строки:
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

Настройка chap-secrets - данный файл содержит учетные данные для подключения через VPN.
sudo cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.backup
sudo nano /etc/ppp/chap-secrets

# user server password ip
USER1 l2tpd PASS1 *
USER1 – указываете имя пользователя(ей) под которым будете подключаться.

PASS1 – пароль.
* - IP адрес с которого разрешено подключаться под данным пользователем (* - означает, что подключаться можно с любого IP).

Запускаем L2TP службу.
Командой
sudo /etc/init.d/xl2tpd restart - перезагружаем службу.
После запуска службы необходимо включить форвардинг (IP forwarding) почитать можно тут и тут.
Записываем в файл
ip_forward цифру “1” – это можно сделать следующей командой:
echo 1 > /proc/sys/net/ipv4/ip_forward



Для автоматического включения форвардинга после перезагрузки системы, необходимо отредактировать файл “sysctl.conf”.
sudo nano /etc/sysctl.conf
Добавляем в него следующую строку:
net.ipv4.ip_forward = 1

Включаем NAT с помощью iptables
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0 – интерфейс через который виртуальная машина выходит в интернет.

Для того чтоб NAT работал после перезагрузки:
sudo iptables-save > /etc/iptables.up.rules – сохраняем настройки iptables в файл.
Редактируем /etc/networks/interfaces (sudo nano /etc/networks/interfaces)
pre-up iptables-restore < /etc/iptables.up.rules –
для автоматической загрузки правил, добавляем строку в конец файла.

В моем случае виртуальная машина находиться за роутером (router), для того чтоб была возможность подключиться из интернета, на роутере необходимо настроить port forwarding. Я использую альтернативную прошивку dd-wrt, как настроить можно почитать тут.


Принцип:
Внешний IP -> port 1701 -> 10.1.1.14 -> port 1701

10.1.1.14 - IP адрес виртуальной машины в локальной сети.

Если вы тоже используете роутер, обратитесь инструкции как это сделать на вашем устройстве. Все вопросы в комментарии.

3 comments:

Unknown said...

Даже, как то не задумывался об этом.....теперь учту......

Костянтин said...

А как быть с Windows?

Mikhail said...

Константин, что именно с Windows?

Post a Comment

Популярне за тиждень