FreeBSD: установка и настройка OpenVPN клиента

Автор: | 09/15/2012
 

Устанавливаем OpenVPN клиент:

# cd /usr/ports/security/openvpn/ && make install clean

Создаем рабочий каталог и файлы для логов:

# mkdir /var/log/openvpn/
# touch /var/log/openvpn/openvpn-status.log
# touch /var/log/openvpn/openvpn.log

Если каталога /usr/local/etc/openvpn/ нет — создайте его вручную.

Создаем наш файл конфигурации. В него вписываем данные:

# cat /usr/local/etc/openvpn/openvpn.conf
dev tun
proto udp
remote 77.***.***.** 1194
client
client
resolv-retry infinite
ca /home/setevoy/.openvpn/config/ca.crt
cert /home/setevoy/.openvpn/config/setevoy.crt
key /home/setevoy/.openvpn/config/setevoy.key
nobind
persist-key
persist-tun
comp-lzo
verb 3
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3

В каталог /home/setevoy/.openvpn/config/ копируем наши файлы сертифката и сам ключ.

Запускаем:

# /usr/local/etc/rc.d/openvpn onestart
Starting openvpn.
Enter Private Key Password:

Проверяем:

# ps axw | grep openvpn
93030  ??  Ss     0:00.03 /usr/local/sbin/openvpn —cd /usr/local/etc/openvpn —daemon openvpn —config /usr/local/etc/openvpn/openvpn.conf —writepid /var/run/openvpn.pid
93076   2  S+     0:00.00 grep openvpn

# ping 10.5.10.14
PING 10.5.10.14 (10.5.10.14): 56 data bytes
64 bytes from 10.5.10.14: icmp_seq=0 ttl=63 time=1.853 ms
64 bytes from 10.5.10.14: icmp_seq=1 ttl=63 time=1.931 ms

Если требуется запускать VPN-сеть вместе с системой — в файл /etc/rc.conf добавляем:

# cat /etc/rc.conf | grep open
openvpn_enable=»YES»
openvpn_if=»tun»
openvpn_configfile=»/usr/local/etc/openvpn/openvpn.conf»
openvpn_dir=»/usr/local/etc/openvpn»

При необходимости в /etc/resolv.conf добавляем локальный NS сети, к которой мы подключаемся по VPN, в данном случае 10.0.10.3:

# cat /etc/resolv.conf
nameserver 10.0.10.3
nameserver 192.168.1.1

Сервер 192.168.1.1 — это локальный DNS сети, в котором изчально находится машина.

Другой вариант, если VPN не используется постоянно — не добавлять записи в /etc/rc.conf и /etc/resolv.conf, а создать 3 небольших скрипта для запуска, перезапуска и остановки OpenVPN:

# cat vpn.start

#!/usr/local/bin/bash
echo «nameserver 10.0.10.3» > /etc/resolv.conf
echo «nameserver 192.168.1.1» >> /etc/resolv.conf
/usr/local/etc/rc.d/openvpn onestart
service openvpn onestatus

Перезапуск VPN:

# cat vpn.restart

#!/usr/local/bin/bash
/usr/local/etc/rc.d/openvpn onerestart
service openvpn onestatus

Остановка OpenVPN:

# cat vpn.halt

#!/usr/local/bin/bash
/usr/local/etc/rc.d/openvpn onestop
echo «nameserver 192.168.1.1» > /etc/resolv.conf
service openvpn onestatus

Не забываем установить права на выполнение:

$ chmod +x vpn.start vpn.restart vpn.restart

В результате, сеть должна придти к такому виду:

# ifconfig

re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 1c:6f:65:72:fb:df
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX )
status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
options=80000
inet6 fe80::1e6f:65ff:fe72:fbdf%tun0 prefixlen 64 scopeid 0x9
inet 10.5.99.186 —> 10.5.99.185 netmask 0xffffffff
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Opened by PID 2038

Из таблицы ниже — сети 10.*, 77.*, 82.* — это внутренние адреса VPN-сети. Сеть 192.168.1.0/24 — соответственно, локальная сеть настраиваемого клиента.

# netstat -rn

Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 14805 re0
10.0.0.0/8 10.5.99.185 UGS 0 1507 tun0
10.5.99.1/32 10.5.99.185 UGS 0 0 tun0
10.5.99.185 link#9 UH 0 0 tun0
10.5.99.186 link#9 UHS 0 0 lo0
77.120.112.132/32 10.5.99.185 UGS 0 0 tun0
82.144.192.33/32 10.5.99.185 UGS 0 0 tun0
82.144.193.236/32 10.5.99.185 UGS 0 0 tun0

82.144.193.241/32 10.5.99.185 UGS 0 0 tun0
83.218.234.20/32 10.5.99.185 UGS 0 0 tun0
127.0.0.1 link#8 UH 0 762 lo0
192.168.1.0/24 link#1 U 0 152 re0
192.168.1.2 link#1 UHS 0 10 lo0
Internet6:
Destination Gateway Flags Netif Expire
::/96 ::1 UGRS lo0
::1 ::1 UH lo0
::ffff:0.0.0.0/96 ::1 UGRS lo0
fe80::/10 ::1 UGRS lo0
fe80::%lo0/64 link#8 U lo0
fe80::1%lo0 link#8 UHS lo0
fe80::%tun0/64 link#9 U tun0
fe80::1e6f:65ff:fe72:fbdf%tun0 link#9 UHS lo0
ff01::%lo0/32 ::1 U lo0
ff01::%tun0/32 fe80::1e6f:65ff:fe72:fbdf%tun0 U tun0
ff02::/16 ::1 UGRS lo0
ff02::%lo0/32 ::1 U lo0
ff02::%tun0/32 fe80::1e6f:65ff:fe72:fbdf%tun0 U tun0