Установка и настройка OpenVPN на CentOS 5.3
Аренда сервера
VPS, VDS, Windows VPS - от $10
VPS
Подготовка
В стандартных репозиториях CentOS пакет OpenVPN отсутствует. Добавляем репозиторий rpmforge, предварительно установив плагин priorities. Дело в том, что в различных репозиториях пакеты могут повторяться, priorities же указывает yum на то из какого репозитория использовать пакет, если имеются совпадения. Рекомендуемые значения приоритетов следующие:
[centosplus],[contrib] ... priority=2
Остальные ... priority=N (где N > 10)
Устанавливаем priorities:
Добавляем приоритеты (priority=1) к репозиториям (/etc/yum.repos.d):
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
priority=1
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
priority=1
... и т.д.
Устанавливаем GPG ключ репозитория:
Скачиваем пакет с информацией о репозитории:
wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
x86_64:
wget http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
Проверяем пакет:
Если проверка прошла успешно, устанавливаем:
Обновляем локальный кеш:
Все, новый репозиторий подключен. Можно переходить к установке OpenVPN.
Установка OpenVPN
Установим OpenVPN:
Создадим конфигурационные файлы OpenVPN‘а
# mkdir /etc/openvpn/ccd
# mkdir /etc/openvpn/keys
# cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/openssl.cnf /etc/openvpn
# cd /etc/openvpn/easy-rsa
# chmod +x clean-all
# chmod +x build*
Отредактируем /etc/openvpn/easy-rsa/vars
export KEY_PROVINCE=MSK
export KEY_CITY=MOSCOW
export KEY_ORG="OpenVPN-TEST-INSTALLATION"
export KEY_EMAIL="[email protected]"
Создадим ключи:
# . ./vars
# ./clean-all
# ./build-ca
# ./build-key-server vpnserver
# ./build-dh
Скопируем ключи:
# cp /etc/openvpn/easy-rsa/keys/vpnserver.crt /etc/openvpn/keys/vpnserver.crt
# cp /etc/openvpn/easy-rsa/keys/vpnserver.key /etc/openvpn/keys/vpnserver.key
# cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/keys/dh1024.pem
Отредактируем /etc/openvpn/openvpn.conf
proto tcp
dev tun
tls-server
server 192.168.100.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
client-config-dir /etc/openvpn/ccd
push "route 192.168.100.0 255.255.255.0"
duplicate-cn
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem
Пример добавления клиента:
192.168.100.100 - *net
192.168.100.101 - client01
192.168.100.102 - *gw
192.168.100.103 - *br
Пропишем клиента в /etc/openvpn/ccd
# echo "ifconfig-push 192.168.100.101 192.168.100.102" > /etc/openvpn/ccd/client01
Сгенерируем клиентские ключи:
# ./build-key client01 (в секции Common Name указать client01)
Теперь клиенту следует отдать файлы ca.crt, client01.crt, client01.key (все находятся в /etc/openvpn/easy-rsa/keys) и конфигурационный файл:
tls-client
verb 3
dev tun
proto tcp
remote <ip.add.re.ss> 1194
nobind
persist-key
persist-tun
ca ca.crt
cert client01.crt
key client01.key
Запуск OpenVPN:
Дополнительные записи: