четверг, 10 ноября 2011 г.

Настройка OpenVPN

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

Установим
aptitude install openvpn

Копируем файлики для генерации ключей и немного поднастроим:

cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa

если нужно, то редактируем строки в конце файла /etc/openvpn/easy-rsa/vars (страна, город и т.д.)

mkdir /etc/openvpn/easy-rsa/keys
touch /etc/openvpn/easy-rsa/keys/index.txt
echo "00">/etc/openvpn/easy-rsa/keys/serial

cd /etc/openvpn/easy-rsa
source ./vars
chmod 700 ./vars

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

./build-ca


Генерация ключей происходит в папке /etc/openvpn/easy-rsa. Перед каждым сеансом генерации ключей не забываем загружать переменные:

source ./vars

Генерируем ключ сервера:

./build-key-server server


Генерация сертификата и личного ключа клиента

source ./vars
./build-key computer2

Создаём параметр DH (Алгоритм Диффи — Хеллмана):

./build-dh

Генерируем TLS ключ:

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Настройка openvpn сервера
делаем отдельную папку keys в папке openvpn и копируем туда необходимые для работы сервера файлы:

mkdir /etc/openvpn/keys
cd /etc/openvpn/easy-rsa/keys/
cp ca.crt ca.key /etc/openvpn/keys/
mv server.crt server.key dh1024.pem ta.key /etc/openvpn/keys/

Запросы на генерацию сертификата можно удалить:

rm server.csr

Копируем примерный файл настройки сервера openvpn (а можно просто создать):

gzip -cd /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz >> /etc/openvpn/server.conf

Примерное содержание server.cong

# адрес на котором слушать входящие запросы.
# закоментированно, значит на всех
;local a.b.c.d
port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth keys/ta.key 0
cipher BF-CBC
comp-lzo
max-clients 30
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

Собственно говоря, на этом и все. Можно настроить выдачу шлюза по умолчанию и пр. редактируя server.conf

Есть вероятность, что tun на сервере не запущен
modprobe tun

Запускаем /etc/init.d/openvpn start и смотрим в лог /var/log/openvpn-status.log все ли нормально.
Проверяем вывод ifconfig. Должен появиться дополнительный интерфейс tun0 со своим ip
================================

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

Установим
aptitude install openvpn
Скопируем в папку с секьюрными правами файлы ca.crt computer2.key computer2.crt
к примеру в /etc/openvpn/keys/

затем в /etc/openvpn создадим конфиг _domain_.conf (удобно хранить названия домена, конфигов может быть несколько на разные сервера)
За основу можно взять /usr/share/doc/openvpn/examples/sample-config-files/client.conf

client
remote _domain_ 1194
proto udp
ca /etc/openvpn/keys/ca.crt
key /etc/openvpn/keys/computer2.key
cert /etc/openvpn/keys/computer2.crt
daemon
dev tun

Есть вероятность, что tun на клиенте не запущен
modprobe tun

Запуск клиента производится командой вида
openvpn --config /etc/openvpn/_domain_.conf

Проверяем вывод ifconfig. Должен появиться дополнительный интерфейс tun0 со своим ip

Комментариев нет:

Отправить комментарий