FastNetMon

Wednesday 17 December 2014

Настройка OpenVPN сервера на CentOS 7 и активация клиентам на Mac OS

Подключаем  Epel репозиторий:
yum install -y epel-release
Устанавливаем OpenVPN пакет:
yum install -y openvpn
Копируем пример конфига OpenVPN в боевой путь:
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/server.conf
Корректируем конфиг:
vim /etc/openvpn/server.conf
Добавляем в самый низ (подключаем DNS серверы Google):
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

И следом активируем перенаправление всего трафка в туннель:
push "redirect-gateway def1 bypass-dhcp"
Включаем форвардинг трафика в ядре:
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/forwarding.conf
sysctl --system 
Активируем фаерволл:
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
Применяем изменения:

firewall-cmd --reload
И разрешаем OpenVPN и ssh трафик:
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=openvpn --permanent
firewall-cmd --add-masquerade --permanent

Теперь нам нужно сгенерировать сертификаты для сервера;
mkdir /root/openvpn_keys
yum install -y unzip zip
mkdir /root/openvpn_keys
cd /root/openvpn_keys
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
unzip master.zip
cd easy-rsa-master/easyrsa3
Создаем собственный PKI (не забудьте пароль от CA, иначе в будущем придется создавать его заново):
mv vars.example  vars
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-dh
Создаем сертификаты для сервера:
./easyrsa gen-req myservername
./easyrsa sign-req server myservername
Снимаем пароль с приватного ключа:
openssl rsa -in /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key -out /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/mmyservername.key.without_password

Заменяем ключ на безпарольный:
mv /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key.without_password /root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/myservername.key
Переносим сертификаты и ключи в папку OpenVPN:
cp pki/ca.crt   /etc/openvpn/ca.crt
cp pki/dh.pem /etc/openvpn/dh1024.pem
cp pki/issued/myservername.crt /etc/openvpn/server.crt
cp pki/private/myservername.key  /etc/openvpn/server.key
Создаем конфиг клиенту (уже с флажком nopass, так как нам тут пароль не нужен):
./easyrsa gen-req clientmac nopass
./easyrsa sign-req client clientmac

Запускаем OpenVPN:
systemctl enable openvpn@server
systemctl start openvpn@server
systemctl status -l openvpn@server

При настройке клиента стоит учесть, что ему нужно передать каким-либо безопасным способом следующие файлы:
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/issued/clientmac.crt
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/clientmac.key
/root/openvpn_keys/easy-rsa-master/easyrsa3/pki/private/ca.crt
Продолжаем настройку - настроим клиента OpenVPN на MacOS.



1 comment :

  1. https://github.com/viljoviitanen/setup-simple-openvpn
    https://github.com/viljoviitanen/setup-simple-pptp-vpn

    PPTP встроен практически в любой системе, в отличии от глючного tunnelbrick, хотя и считается более слабым, зато меньше проблем с конфигурацией.

    Если всё таки использовать OpenVPN, то уже лучше прописывать в LaunchAgent, в brew уже есть конфиг.

    ReplyDelete

Note: only a member of this blog may post a comment.