Bsdadmin.ru

Записки администратора FreeBSD

Установка OpenVPN на FreeBSD

Устанавливаем пакет openvpn выполняем:
#pkg_add -r openvpn
Теперь нужно создать папку /usr/local/etc/openvpn/ и скопировать туда папку с сертификатами и конфигами.
 Примеры того и другого лежат:
/usr/local/share/doc/openvpn/
Итак, надо скопировать папки easy-rsa и sample-config-files. На самом деле, примеры конфигов можно не копировать, а скопировать оттуда только файл server.conf.
Идем в /usr/local/etc/openvpn/easy-rsa и выполняем следующим команды:
. ./vars
./clean-all
./build-ca
Будут спрашивать данные для сертификата, лучше отвечать ближе к правде, хотя и не обязательно. Важно обязательно что-то писать в поле, не оставлять пустыми.
./build-key-server server
Аналогично, отвечать нужно на все вопросы.
 Common name должно быть server. На 2 вопроса отвечать  <y>
./build-dh
Теперь делаем сертификат для клиента. Если у нас несколько клиентов, то повторяем этот шаг несколько раз, меняя номер клиента.
./build-key client1
Если Вы хотите защитить сертификат паролей то используйте
./build-key-pass client1
Важно с поле Common Name писать соответствующее имя, например client1
Настраиваем конфиг для сервера. Он должен находится в /usr/local/share/doc/openvpn/ и называтся server.conf.
Все что нам нужно изменить в примера конфига:
ca /usr/local/share/doc/openvpn/easy-rsa/keys/ca.crt
cert /usr/local/share/doc/openvpn/easy-rsa/keys/server.crt
key /usr/local/share/doc/openvpn/easy-rsa/keys/server.key
dh /usr/local/share/doc/openvpn/easy-rsa/keys/dh1024.pem
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option WINS 10.8.0.1"
user nobody
group nobody
Сохраняем файл.
Выполняем
sysctl net.inet.ip.forwarding=1
/sbin/ipfw nat 123 config ip ВАШ_ВНЕШНИЙ_ИП log
/sbin/ipfw add 10 nat 123 ip from 10.8.0.0/24 to any
/sbin/ipfw add 20 nat 123 ip from any to ВАШ_ВНЕШНИЙ_ИП
 
Запускаем OpenVPN:
#/usr/local/etc/rc.d/openvpn start
Теперь ставим OpenVPN клиент для Windows.
 После установки заходим в папку установки программы, 
 например: C:\Program and Files\OpenVPN\sample-config. Открываем текстовым редактором (блокнотом) файл client.ovpn и пишем в строке remote my-server-1 1194 IP своего сервера вместо my-server-1. Больше ничего не трогаем, сохраняем и закрываем файл.
Последнее что надо сделать, это скачать с сервера 3 файла сертификатов в эту же папку, где только что редактировали файл. Итак, скачать нужно следующие файлы:
/usr/local/share/doc/openvpn/easy-rsa/keys/ca.crt
/usr/local/share/doc/openvpn/easy-rsa/keys/client1.crt
/usr/local/share/doc/openvpn/easy-rsa/keys/client1.key
client1 соответственно нужно заменить на нужный номер клиента. После этого переименовываем файлы, убирая цифры номера клиент, т.е. из client1.crt делаем client.crt и т.д.
Все готово для подключения и проверки.
Нажимаем правой кнопкой на файл client.ovpn и выбираем Start OpenVPN on this config file. Убеждаемся, что соединение установлено правильно. 
Делаем пинг до сервера . Сейчас весь трафик ходит через VPN в зашифрованном виде.