Безопасный доступ в интернет в общественных местах

Практически все пользуются доступом к интернет в кафе. гостиницах, библиотеках, вокзалах -сейчас бесплатный беспроводной интернет доступен практически везде.
Это, бесспорно, очень удобно и практично, а поддержка Wi-Fi есть практически в любом современном персональном устройстве - КПК, смартфоне, нетбуке.
Но как это обычно бывает, имеются и недостатки. Один из них - беспроводной сигнал доступен ВСЕМ кто находится в радиусе действия беспроводной точки доступа, а это в свою очередь значит, что теоретически все передаваемые данные также могут быть доступны не только вам. Причём радиус действия может составлять десятки а то и сотни метров, а с неприятностями вы можете столкнуться значительно позже. Начиная от банального "взлома" аккаунта в социальной сети или электронной почты и заканчивая воровством данных кредитных карт.
Снизить риск возникновения подобного сценария возможно с помощью VPN - технологий. В этом случае весь поток данных от устройства пользователя через беспроводную точку доступа будет зашифрован и в этом случае использование бесплатной точки доступа будет относительно безопасным. Ниже читателю предлагается инструкция по настройке своего VPN сервера, который можно настроить самостоятельно за 15 минут, приложив минимум усилий.

При этом потребуется:
1. Компьютер с установленной ОС. желательно Linux.
Мы будем использовать Ubuntu 12.04.1 LTS

2. Подключение к интернет. В нашем случае компьютер получает IP адрес по протоколу DHCP от роутера.

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

1. Итак, первым шагом устанавливаем серверную часть openvpn на Ubuntu:
# apt-get install openvpn

2. Создаём рабочую директорию и копируем в неё шаблоны файлов, включенные в начальную установку:

mkdir ~/openvpn-admin
cd ~/openvpn-admin
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa
cd easy-rsa

3. Объявляем переменные и создаём директорию для хранения ключей:

. vars
./clean-all

4. Создаём CA - центр сертификации, выполнив команду ./build-ca. Можно заполнять поля произвольными данными. но эти данные позже будут видны в логах установления соединения. В результате будут созданы файлы ca.key и ca.crt внутри директории с ключами. Никому не сообщайте и храните файл ca.key в недоступном для других месте при любых обстоятельствах. Этот файл - ключ к вашей сети. Он позволяет подключаться к сети, поэтому его утеря - компрометация всей сети.

5. Создаём сертификат для VPN сервера:

./build-key-server server

Можно установить запрос пароля при каждом запуске сервера (не рекомендуется). Подтверждаем введённые данные. подписываем сертификат. В директории с ключами появятся два новых файла: server.key и server.crt.

6. Генерируем файл с Diffie-Hellman параметрами:

./build-dh

7. Можно использовать дополнительное средство защиты - TLS аутентификацию. Сгенерировать ключ можно командой:

openvpn --genkey --secret ta.key

Полученный файл ta.key должен присутствовать на машинах клиентов, но не стоит выкладывать этот ключ в открытый доступ.

На этом шаге настройка сертификатов для серверной части завершена. Переходим к настройке клиентской части.

8. Создаём сертификаты для клиентов VPN сервера. Для каждого клиента повторяем шаги:

Переход в директорию, в которой уже были созданы сертификаты сервера и CA:

cd ~/openvpn-admin/easy-rsa

Генерируем клиентские сертификат you.crt и ключ you.key:

./build-key you

Поле CommonName должно быть уникальным. Подтверждаем введённые данные. подписываем сертификат.

Идентификационные данные для клиента подготовлены.

Далее идёт настройка запуска службы openvpn сервера в Ubuntu Linux.

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

Создаём пользователя openvpn, от имени которого будет выполняться процесс. Запускать openvpn сервер от имени root не рекомендуется.

Копируем файлы server.key, server.crt, ca.crt и dh1024.pem, сгенерированные ранее в директорию /etc/openvpn. Прав доступа 400 (read-only для владельца) будет достаточно:

sudo cp ~/openvpn-admin/easy-rsa/keys/{server.key,server.crt,ca.crt,dh1024.pem} /etc/openvpn
sudo chmod 400 /etc/openvpn/{server.key,server.crt,ca.crt}

Также копируем файл ta.key:

sudo cp ~/openvpn-admin/easy-rsa/ta.key /etc/openvpn
sudo chmod 400 /etc/openvpn/ta.key

Создаём конфигурационный файл /etc/openvpn/server.conf и вставляем в него строки ниже:

proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth ta.key 0

# сжимать данные для экономии пропускной способности
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun

# логи полезны при дебаге
log-append openvpn-log
verb 3
mute 10

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

Помимо IP адреса openvpn сервера клиенту необходимо передать следующие файлы/данные:

ca.crt: для проверки сертификатов
server.crt: для проверки сервера и коммуникаций с ним
ta.key: для повышения безопасности
you.crt: для собственной идентификации
you.key: персональный ключ- заменяет пароль, права доступа должны быть 400 (read-only для владельца)

Устанавливаем openvpn на машине клиента:

# apt-get install openvpn

Размещаем файлы (ca.crt, ...) в директории /etc/openvpn.

Создаём конфигурационный файл /etc/openvpn/client.conf со следующим содержимым:

client
dev tap
proto udp

# заменить 1.2.3.4 на IP адрес сервера
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert you.crt
key you.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
user nobody
group nogroup
verb 3
mute 20

Запуск подключения:

/etc/init.d/openvpn start client

Останов подключения:

/etc/init.d/openvpn stop

На этом настройка клиента завершена. Инструкция успешно протестирована на сервере под управлением Ubuntu Linux и клиентской машиной под управлением Ubuntu Linux Desktop.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.