Управление OpenVPN сертификатами в консоли |
Заголовок темы: Управление OpenVPN сертификатами в консоли Отправитель: linuxMir 27/04/2012 21:38:45 Управление OpenVPN сертификатами через консоль Предположим что у вас уже есть сервер на котором запущена услуга по выдачи VPN на базе OpenVPN, но нет панели управления сертификатами. Создание клиента и выдачи сертификатов OpenVPN В самом начале нам конечно потребуется создать клиентов, но в будущем можно будет только отзывать и выдавать новые сертификаты минуя эти действия. 1. Добавляем нового клиента: Цитата: cd /etc/openvpn/easy-rsa/2.0/ и т.д. 2. Приводим /etc/openvpn/openvpn.conf к такому виду: Цитата: dev tun 3. в папке /etc/openvpn/ccd клиентские конфиги для разных ip например: Цитата: [root@serv ccd]# cat client1 Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN). С учетом перечисленных условий для клиентов и сервера подойдут пары IP-адресов со следующими парами последних октетов: Цитата:
именно поэтому 10.8.0.9 10.8.0.10, 10.8.0.13 10.8.0.14 и так далее Ну и после добавления в клиентский конфиг ip добавляем правило iptables: iptables -t nat -A POSTROUTING -s 10.8.0.9 -o venet0 -j SNAT --to-source 77.79.14.162, то есть client1(конфиг: [root@serv ccd]# cat client1 ifconfig-push 10.8.0.9 10.8.0.10 iroute 10.8.0.0 255.255.255.0) при коннекте получит внутренний локальный ip 10.8.0.9, который iptables будет редиректить на 77.79.14.162 на выходе ну и так далее: Цитата: iptables -t nat -A POSTROUTING -s 10.8.0.17 -o venet0 -j SNAT --to-source 77.79.14.165 Для клиента в итоге конфиг ovpn-файла будет выглядеть так: Цитата: client где 77.79.14.161, IP адрес сервера на котором установлен VPN 4. Для полноценной работы необходимы следующие файлы: ca.crt ca.key client.crt client.csr client.key $HOSTNAME.ovpn где client имя клиента из пункта генерации.(место нахождения /etc/openvpn/easy-rsa/2.0/;) 5. Сохраняем правила iptables: iptables-save > rules.ipt после ребута рестор правил: iptables-restore < rules.ipt 6. Сгенерированные сертификаты для удобства скопируем в отдельную директорию каждому клиенту, пример: Цитата: cp /etc/openvpn/easy-rsa/2.0/keys/ca.key /root/clients/client1 ,где serv.buxar-host.eu.ovpn конфиг файл вашего сервере ($HOSTNAME.ovpn) 7. Архивируем сертификаты и конфиг в архив: Перед этим переходим в нужную директорию: cd /root/clients/ 7.1. Если только нужно для одного клиента добавить в архив то по команде: tar czf vpn_client1.tgz client1/ 7.2. Если нужно сразу для всех клиентов сертификаты добавить каждый в отдельный архив то по команде: for i in *; do tar czf vpn_$i.tgz $i; done 8. Скачиваем сертификаты себе на компьютер: scp root@IP_сервера:/root/clients/vpn_client1.tgz /home/user/Загрузки/VPN/ 9. Пересылаем сертификат клиенту. Отзыв сертификатов Отозвать сертификат очень просто, выполняем: Цитата:
Генерация нового сертификата После отзыва сертификата вам не нужно повторять полностью процедуру описанную в начале статьи по созданию клиента. Если вы хотите выдать новый сертификат с тем же IP адресом, вам достаточно выполнить эти действия: Цитата:
Далее выполняем пункты 6-9 из выше описанной инструкции. Автор: BuxarNET для IntFAQ.ru |