Установка и настройка OpenVPN в CentOS
#Установка OpenVPN:
#Устанавливаем GPG ключ репозитория:
rpm —import http://apt.sw.be/RPM-GPG-KEY.dag.txt
#Скачиваем пакет с информацией о репозитории:
i386:
wget http://apt.sw.be/redhat/el6/en/i386/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.i386.rpm
x86_64:
wget http://apt.sw.be/redhat/el6/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#Проверяем пакет:
rpm -K rpmforge-release-0.5.3-1.el6.rf.*.rpm
#Если проверка прошла успешно, устанавливаем:
rpm -i rpmforge-release-0.5.3-1.el6.rf.*.rpm
#Обновляем локальный кеш:
yum clean all
yum makecache
yum check-update
#Установим OpenVPN:
yum install openvpn
#Добавим openvpn в автозагрузку
chkconfig —level 345 openvpn on
#Настройка OpenVPN:
#Создадим конфигурационные файлы OpenVPN’а
touch /etc/openvpn/openvpn.conf
mkdir /etc/openvpn/ccd
mkdir /etc/openvpn/keys
cp -r /usr/share/doc/openvpn-*/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0
chmod +x clean-all
chmod +x build*
chmod +x whichopensslcnf
chmod +x pkitool
chmod +x vars
chmod +x revoke-full
#Отредактируем /etc/openvpn/easy-rsa/2.0/vars
export KEY_COUNTRY=RU
export KEY_PROVINCE=NSK
export KEY_CITY=NOVOSIBIRSK
export KEY_ORG=»OpenVPN-TEST-INSTALLATION»
export KEY_EMAIL=»admin@example.com»
#Генерируем параметры Диффи-Хеллмана
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
#Создадим ключи:
cd /etc/openvpn/easy-rsa/2.0
source ./vars
./clean-all
./build-ca
./build-key-server vpnserver
./build-dh
#Генерируем клиентские ключи:
cd /etc/openvpn/easy-rsa/2.0
./build-key clientname
./build-key clientname (в секции Common Name указать clientname)
#Не забудьте принять сертификаты
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
#Генерируем TLS ключ для защиты соединения
cd /etc/openvpn/easy-rsa/2.0/keys
openvpn —genkey —secret ta.key
#Настройка сервера:
#Выше мы уже создали конфигурационный файлик для настроек сервера. Файл может #называться как угодно, главное расширение чтобы было .conf. Наш называется #openvpn.conf
——————server.conf——————-
dev tap0
port 5002
proto udp
mode server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnius.crt
key /etc/openvpn/keys/vpnius.key
dh /etc/openvpn/keys/dh1024.pem
tls-auth /etc/openvpn/keys/ta.key 0 ; (На стороне клиента 1)
cipher AES-256-CBC
local 195.195.130.43
server-bridge 192.168.11.0 255.255.255.0 192.168.11.2 192.168.11.100
ifconfig 192.168.11.1 255.255.255.0
route 192.168.7.0 255.255.255.0 192.168.11.21
route 192.168.9.0 255.255.255.0 192.168.11.25
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 60
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
crl-verify /etc/openvpn/keys/crl.pem ; Проверка отозванных сертификатов
log /var/log/openvpn/openvpn-log.log
log-append /var/log/openvpn/openvpn-log-append.log
status /var/log/openvpn/openvpn-status.log 60
status-version 2
verb 3
client-config-dir /etc/openvpn/ccd — если Вы хотите, чтобы какой-то из клиентов получил индивидуальные настройки, то в этом каталоге создаем файл с названием идентичным названию ключа для этого клиента. В нашем случае это pek_office. И вносим необходимые настройки. Для примера скину свои
ifconfig-push 192.168.11.21 255.255.255.0
#push «route 192.168.9.0 255.255.255.0 192.168.12.21»
————————————————————————
#Настройка клиента:
#Создадим конфигурационный файлик для настроек клиента. Файл может называться #как угодно, главное расширение чтобы было .conf
touch /etc/openvpn/client.conf
————————-client.conf——————————-
client
dev tap0
proto udp
remote 195.195.130.43 5002
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/keys_hab/ca.crt
cert /etc/openvpn/keys_hab/pek_office.crt
key /etc/openvpn/keys_hab/pek_office.key
ns-cert-type server
cipher AES-256-CBC
comp-lzo
log /var/log/openvpn/hab-openvpn-log.log
log-append /var/log/openvpn/hab-openvpn-log-append.log
status /var/log/openvpn/hab-openvpn-status.log 60
status-version 2
verb 3
keepalive 10 60
user nobody
group nobody
————————————————————-
#Что бы отозвать какой то сертификат:
cd /etc/openvpn/easy-rsa/2.0/
source ./vars
revoke-full clientname