VPN Android

Для того, чтобы зашифровать трафик Вашего мобильного телефона достаточно выполнить несколько простых действий

0) Закажем виртуальный сервер с Debian8.
Достаточно будет минимального тарифа Camp у vpsville.ru

1) Установим OpenVPN
apt-get install openvpn easy-rsa
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

После распаковки архива откроем своим любимым редактором файл
vim /etc/openvpn/server.conf

И приведем его к виду
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
server 192.168.111.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

2) Включаем пересылку пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
Открываем файл
nano /etc/sysctl.conf

Убираем комментарий со строки
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1


Настраиваем фаерволл для перенаправления пакетов в сеть vpn, заменить 78.46.40.25 на выданный серверу ip адрес.

iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -o eth0 -j SNAT --to-source 78.46.40.25


3. Генерируем сертификаты
OpenVPN использует сертификаты для шифрования трафика между клиентом и сервером
В этом пункте мы настроим наш Центр Сертификации Certificate Authority (CA) в два шага:
настройку переменных и генерацию сертификата

Для начала скопируем скрипты для генерации
cp -r /usr/share/easy-rsa/ /etc/openvpn

Затем создадим папку для хранения ключей
mkdir /etc/openvpn/easy-rsa/keys

Затем откройте Вашим любимым редактором файл с переменными
vim /etc/openvpn/easy-rsa/vars

Приведите файл к примерно такому виду
export KEY_COUNTRY="RU"
export KEY_PROVINCE="MOSCOW"
export KEY_CITY="MOSCOW"
export KEY_ORG="vpsville"
export KEY_EMAIL="support@vpsville.ru"
export KEY_OU="vpsville"

Затем создадим ключ Диффи — Хеллмана
openssl dhparam -out /etc/openvpn/dh2048.pem 2048

Наш ключ сгенерирован. Время генерировать сертификаты
Перехиодм в нашу директорию
cd /etc/openvpn/easy-rsa

Инициализируем PKI. Обратите внимание на пробел между. и ./
. ./vars

Затем мы очистим все наши текущие ключи
./clean-all

Генерируем наш главный сертификат

touch /etc/openvpn/easy-rsa/keys/index.txt
echo '01' > /etc/openvpn/easy-rsa/keys/serial
./build-ca

Нажимайте ENTER для того, чтобы считать настройки с нашего файла с переменными.
4. Генерируем сертификат сервера
./build-key-server server

Нажимайте ENTER для того, чтобы подставлялись значения из нашего файла.
Когда запросят дополнительные поля
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Просто оставим значения пустыми
Подписываем сертификат, нажимая y
Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]

6. Копируем сертификаты сервера в папку с openvpn
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn

Активируем запуск всех доступных конфигураций сервера

sed -i 's/#AUTOSTART="all"/AUTOSTART="all"/g' /etc/default/openvpn


Запускаем демона
service openvpn start
service openvpn status

Вывод должен быть примерно такого вида
* openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled)
   Active: active (exited) since Thu 2016-07-07 02:20:18 EDT; 9s ago
  Process: 2505 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 2505 (code=exited, status=0/SUCCESS)

6. Генерируем ключи для клиента
./build-key client1

Опять же оставляем пустыми поля
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

И подписываем сертификат
Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]

Создаем файл /etc/openvpn/easy-rsa/keys/client.ovpn
Вместо 185.118.65.1 вставляем IP Вашего сервера
client
dev tun
proto tcp
remote 185.118.65.1 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
verb 3

7. Настраиваем клиента android
Скачиваем в google play приложение
play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru
Создаем на SD карте телефона папку oepnvpn
И загружаем в нее файлы
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
/etc/openvpn/easy-rsa/keys/client.ovpn
/etc/openvpn/ca.crt
Запускаем приложение и выбираем
Import profile from SD card
и выбираем файл client.ovpn
Подключение должно загореться зеленым цветом.

Настройка закончена, теперь наш трафик шифруется и передается через защищенный сервер

Для большей надежности рекомендуется установить и настроить собственный DNS сервер. Эту настройку мы оставляем на нашего читателя.
  • 0
  • 07 марта 2016, 02:09
  • admin

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

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.