OpenVPN с сертификатами X.509
В догонку к предыдущей статье , в этой будем настраивать OpenVPN на работу с сертификатами.
Для создания сертификатов для OpenVPN, разработчики уже позаботились, все команды есть в /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0
создадим папку
# mkdir /etc/openvpn/keys
для начала правим файл vars
export KEY_DIR=»/etc/openvpn/keys»
export KEY_COUNTRY=»двухбуквенный код страны»
export KEY_PROVINCE=»провинция»
export KEY_CITY=»город»
export KEY_ORG=»организация» # вот это самая важная строка
export KEY_EMAIL=»почта»
далее:
# source ./vars
# ./clean-all
# ./build-dh # может занять приличное время
# ./pkitool —initca
# ./pkitool —server myserver
далее создаем сертификат для клиента
# ./pkitool client1
далее копируем файлы client1.crt client1.key ca.crt на клиентскую машину в /etc/openvpn/keys
сертификаты созданы, переходим к настройке OpenVPN
создадим файл /etc/openvpn/server.conf такого содержания:
mode server
dev tun
tls-server
proto udp
port 3335
comp-lzo
persist-tun
persist-key
client-to-client # разрешаем клиентам видеть друг друга
# указываем узловые точки виртуальной сети
ifconfig 10.1.0.1 10.1.0.2
ifconfig-pool 10.1.0.4 10.1.0.251
route 10.1.0.0 255.255.255.0
#
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/myserver.crt
key /etc/openvpn/keys/myserver.key
log-append /var/log/openvpn.log
verb 3
# отправляем клиентам необходимые маршруты
push «route 192.168.0.0 255.255.255.0»
push «route 10.1.0.0 255.255.255.0»
#
keepalive 10 60
ping-timer-rem
user nobody
daemon
перезапускаем сервис /etc/init.d/openvpn restart
переходим к настройке клиента
создадим файл /etc/openvpn/to_server.conf сделующего содержания:
client
dev tun
tls-client
remote адрес_или_имя_сервера
proto udp
port 3335
comp-lzo
persist-tun
persist-key
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client1.crt
key /etc/openvpn/keys/client1.key
log-append /var/log/openvpn.log
verb 3
user nobody
daemon
перезапускаем сервис на клиенте /etc/init.d/openvpn restart
смотрим ifconfig и видем:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.0.6 P-t-P:10.1.0.5 Mask:255.255.255.255
ВВЕРХ POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:100
RX bytes:756 (756.0 B) TX bytes:756 (756.0 B)
смотрим ip ro и видем новые маршруты:
10.1.0.5 dev tun0 proto kernel scope link src 10.1.0.6
192.168.0.0/24 via 10.1.0.5 dev tun0 #маршрут на сеть за сервером
10.1.0.0/24 via 10.1.0.5 dev tun0 #маршрут на сеть клиентов
вот и всё, подключенные клиенты могут видеть друг друга, а также могут видеть сеть за сервером.
Удачной работы!
© shadow_alone