Проблема при создании VPN соединения
Предыстория:
До этой недели с успехом пользовался pptpd для VPN соединения, однако после того как провайдер поставил у себя новый коммутатор, VPN соединения перестали работать. Путем долгих поисков, выяснил что на этом коммутаторе был запрещен GRE трафик. Можно было конечно попытаться пободатся с провайдером, чтоб разрешили доступ, но здраво подумал, что лучше сделать так, чтоб подобных вопросов просто не возникало. Посему назрела необходимость поднять OpenVPN, который не использует GRE пакеты. Да и гораздо безопаснее сам по себе в конечном итоге.
Итак имеем: сервер Ubuntu 8.04 с двумя сетевыми картами. eth0 смотрит в локаль, eth1 смотрит в интернет. Настроен маскарадинг и форвардинг. В iptables разрешено все что не запрещено.
1. Установка
sudo apt-get install openvpn
Создаем папки: /etc/openvpn; /etc/openvpn/keys; /etc/openvpn/easy-rsa
Идем в /usr/share/doc/openvpn/examples/easy-rsa/2.0 и копируем всю папку куда-нибудь поближе. Например в /etc/openvpn/easy-rsa
редактируем: /etc/openvpn/easy-rsa/vars
1 2 3 4 5 6 |
export KEY_DIR="/etc/openvpn/keys" export KEY_COUNTRY="RU" export KEY_PROVINCE="VO" export KEY_CITY="Vologda" export KEY_ORG="pvtuning" export KEY_EMAIL="admin@pvtuning.ru" |
2. Создание ключей:
из папки /etc/openvpn/easy-rsa/ выполняем
sourse ./vars. && ./clean-all && ./build-ca && ./build-key -server имя_сервера
имя_сервера — имя вашего сервера
openvpn —genkey —secret /etc/openvpn/keys/ta.key
source ./vars && ./build-dh
Генерация сертификатов для конечных пользователей (клиентов):
source ./vars && ./build-key имя_компьютера
4. Создание файла настроек сервера
touch /etc/openvpn/openvpn.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
dev tun proto tcp port 1194 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem user nobody group nogroup server 10.10.10.0 255.255.255.0 # виртуальная сеть соединения - можно даж не трогать persist-key persist-tun client-to-client push "redirect-gateway def1" |
5. Клиентский файл настроек Windows:
Для каждого клиента необходимо сформировать сертификаты
source ./vars && ./build-key имя_компьютера
Скопировать файлы : ca.key имя_компьютера.key имя_компьютера.crt имя_компьютера.csr на клиентский компьютер. Например в папку c:\key
создайте файл с расширением ovpn и скопируйте туда:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
dev tun client proto tcp remote ip_сервера 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca c:/key/ca.crt cert c:/key/имя_компьютера.crt key c:/key/имя_компьютера.key comp-lzo |