Для установки OpenVPN в CentOS нужно подключить репозиторий – rpmforge. Ранее я писал как правильно подключить репозитории – rpmforge и epel.Установка OpenVPN в CentOS не должна вызвать сложность. Ставим пакеты
yum install openvpn -y
Копируем папку с конфигурационным скриптами
cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/ cd /etc/openvpn/easy-rsa/ rm -rf 1.0/ Windows/
Делаем исполняемыми.
cd /etc/openvpn/easy-rsa/2.0/ chmod +x *
Модифицируем файл “vars”, он запускается при каждом создании нового юзера. Меняем на свои значения.
export KEY_COUNTRY="RU" export KEY_PROVINCE="RU" export KEY_CITY="Moscow" export KEY_ORG="IT" export KEY_EMAIL="me@gmail.me"
Создаем openssl.cnf файл.
cp openssl-1.0.0.cnf openssl.cnf
Далее запускаем последовательно комманды и отвечаем на вопросы.
source vars ./clean-all ./build-ca
После этого у вас текущей директории появится папка keys. В ней будут лежать все сертификаты и ключи.
Создаем ключ сервера
./build-key-server Server
Отвечаем на вопросы, подписываем сертификат.
Генерируем ключ Диффи-Хелмана
./build-dh
Создаем ключ для клиента. Если в дальнейшем придется создавать новых пользователей, достаточно будет повторить текущую комманду.
./build-key user-laptop
Создаем директорию где будут храниться ключи и сертификаты сервера и копируем их туда.
mkdir /etc/openvpn/key cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/key/ cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/key/ cp /etc/openvpn/easy-rsa/2.0/keys/Server.crt /etc/openvpn/key/ cp /etc/openvpn/easy-rsa/2.0/keys/Server.key /etc/openvpn/key/
Создаем конфигурационный файл сервера следующего содержания.
# #OpenVPN conf # port 48841 proto udp dev tun ca /etc/openvpn/key/ca.crt cert /etc/openvpn/key/Server.crt key /etc/openvpn/key/Server.key dh /etc/openvpn/key/dh1024.pem #crl-verify /etc/openvpn/crl.pem server 10.170.30.0 255.255.255.224 push "route 10.170.30.0 255.255.255.0" ifconfig-pool-persist ipp.txt #Let OpenVPN server to record the last used IP for each client, which allows client to use the same IP when reconnected. keepalive 10 120 comp-lzo #Enable compression for saving bandwidth. user nobody group users persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log verb 3 client-to-client # Allow clients to communicate with each others. Remove this line if you dont▒t want it.
Не забываем создать папку для логов
mkdir /var/log/openvpn
Добавляем в автозагрузку и запускаем
chkconfig openvpn --level 235 on service openvpn start
Не забываем добавить в Iptables правила.
iptables -A INPUT -i eth0 -p udp --dport 48841 -j ACCEPT iptables -A OUTPUT -o eth0 -p udp --dport 48841 -j ACCEPT iptables -A INPUT -i tun0 -j ACCEPT iptables -A OUTPUT -o tun0 -j ACCEPT iptables -A FORWARD -o tun0 -j ACCEPT
Далее настриваем клиентскую часть. Для начала нужно скачать и установить OpenVPN-client. После создаем в папке “C:\Program Files (x86)\OpenVPN\config” папку с названием к примеру “ConnectVPN”. В ней создаем конфигурационный файл – “ConnectVPN.ovpn” следующего содержания. Замечу что имя файла должно совпадать с именем директории.
client dev tun proto udp remote {ваш IP} 48841 resolv-retry infinite nobind persist-tun ca ca.crt cert user-laptop.crt key user-laptop.key ns-cert-type server comp-lzo verb 3
В эту же папку нужно будет скопировать с сервера следующие файлы
ca.crt user-laptop.crt user-laptop.key
Все теперь можно подключаться.