Теплый и ламповый VPN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# меняем пароль пользователя 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 |
Всё, серверная часть готова. Можно подключаться. Для перехода к следующим этапам, надо выгрузить с нашего сервера сертификаты из папки:
1 |
/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ |
Это можно сделать при помощи SSH, либо mc если у вас есть ftp сервер. Нам нужны только некоторые файлы, какие именно читаем ниже. Настройка android клиента (root не требуется) 1. Устанавливаем на телефон OpenVPN… Читать далее »