OpenVPN server
Устанавливаем OpenvVPN сервер.
Install OpenVPN server.
# pkg ins openvpn
Создаем директорию для сервера.
Create directory for server.
# mkdir /usr/local/etc/openvpn
Копируем стандартный конфиг для OpenVPN сервера.
Copy sample config for OpenVPN server.
# cp /usr/local/share/examples/openvpn/sample-config-files/server.conf /usr/local/etc/openvpn/openvpn.conf
Копируем директорию easy-rsa для сборки и генерации ключей и сертификатов.
Copy directory easy-rsa for build and generate keys and certificates.
# cp -r /usr/local/share/easy-rsa/ /usr/local/etc/openvpn/easy-rsa
# cd /usr/local/etc/openvpn/easy-rsa
Редактируем конфиг vars для сборки сертификата сервера.
Edit file vars for build server certificate.
# vi vars
Находим и раскомментируем и параметры:
Find and uncomment next parameters:
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "California"
set_var EASYRSA_REQ_REQ_CITY "San Francisco"
set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL "me@example.net"
set_var EASYRSA_REQ_OU "My organizational Unit"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_CA_EXPIRE 3650
set_var EASYRSA_CERT_EXPIRE 3650
Переходим в оболочку sh.
Go to sh shell.
# sh
Устаналиваем директорию для сборки сертификатов и ключей.
Install direcotry pki for build certificates and keys.
# ./easyrsa.real init-pki
Создаем сертификат сервера, пароль для него и указываем имя хоста.
Create server certificate, password for certificate and specify hostname.
# ./easyrsa.real build-ca
Отключаем ввод пароля для сертификата сервера. Вводим пароль, который мы создали.
Disable password for server certificate.
# ./easyrsa.real build-server-full openvpn-server nopass
Создаем сертификат клиента и пароль для него. В конце создания сертификата потребуется ввести ранее созданный пароль для сертификата сервера.
Create client certificate and client password.
# ./easyrsa.real build-client-full f2oclient
Генерируем сертификат Диффи-Хеллмана. Это может занять длительное время.
Genereate certificate Diffie-Hellman. It may take a long time.
# ./easyrsa.real gen-dh
Создаем директорию keys для ключей и сертификатов.
Create directory keys for keys and certificates.
# mkdir /usr/local/etc/openvpn/keys
Копируем туда созданные сертификаты для сервера.
Copy certificates and keys.
# cp pki/dh.pem ../keys
# cp pki/ca.crt ../keys
# cp pki/issued/openvpn-server.crt ../keys
# cp pki/private/openvpn-server.key ../keys
Переходим в корневую директорию OpenVPN сервера.
Go to OpenVPN directory.
# cd ..
Редактируем openvpn.conf.
Edit openvpn.conf.
# vi openvpn.conf
Находим и редактируем следующие параметры:
Find and change next parameters:
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/openvpn-server.crt
key /usr/local/etc/openvpn/keys/openvpn-server.key
dh /usr/local/etc/openvpn/keys/dh.pem
Добавляем следующие строчки:
Add next string:
push "route-gateway 192.168.1.1" # Указываете вместо 192.168.1.1 адрес своего шлюза. Данная строчка пробрасывает интернет на подключающиеся клиенты.
remote-cert-tls client # Позволяет защиттиться от атак MITM
Настраиваем логирование.
Setup logging.
# vi /etc/syslog.conf
Переходим в конец файла и перед строчкой:
Go to the end of file and add before string:
!*
Пишем следующую:
Next strings:
!openvpn
*.* /var/log/openvpn.log
Настраиваем ротацию логов. Добавляем в файл /etc/newsyslog.conf следующую строчку:
Setup log rotation. Add to the end of file /etc/newsyslog.conf, next string:
/var/log/openvpn.log 600 30 * @T00 ZC
Включаем OpenVPN сервер.
Enable OpenVPN server.
# sysrc 'openvpn_enable="YES"'
# systc 'openvpn_if="tun"'
# service openvpn start
На клиент копируем следующие сертификаты и ключи:
Copy to client machine next certificates:
ca.crt
f2oclient.crt
f2oclient.key