Како да инсталирате и конфигурирате OpenVPN на OpenSUSE Leap 42.1


VPN или виртуелна приватна мрежа е безбедна приватна мрежа преку јавна мрежа како што е интернетот. VPN е безбеден тунел низ интернет кој го штити вашиот сообраќај на податоци и ја зголемува приватноста и безбедноста на интернет. Пристапот до VPN е ограничен со безбедни методи за автентикација.

OpenVPN е софтвер со отворен код за изградба на виртуелни приватни мрежи, ја користи библиотеката OpenSSL за шифрирање на тунелираните податоци и поддржува UDP или TCP транспорт. OpenVPN може да користи претходно споделени клучеви, механизми за автентикација базирани на сертификат и корисничко име/лозинка.

Во ова упатство, ќе ви покажам како да имплементирате виртуелна приватна мрежа користејќи OpenVPNvpn под оперативниот систем Linux OpenSUSE Leap 42.1.

Предуслови

  • OpenSUSE Leap 42.1 - 64bit
  • Привилегии на root
  • TUN/TAP е овозможено

Чекор 1 - Проверка дали е овозможено TUN/TAP

Ако сакате да креирате VPN на вашиот сервер, проверете дали е инсталиран и овозможен TUN/TAP. Можете да го проверите тоа со командата подолу:

cat /dev/net/tun

Резултатот треба да биде:

cat: /dev/net/tun: File descriptor in bad state

Чекор 2 - Инсталирајте OpenVPN

OpenVPN е достапен во складиштето OpenSUSE. Можете да го инсталирате користејќи ја командата zypper:

zypper in openvpn

Чекор 3 - Лесно-RSA поставување

Следно, преземете easy-rsa за да генерирате датотека со сертификат. Easy-rsa е упатство за управување со сертификати, со него можете да креирате авторитет за основни сертификати и да барате и потпишувате сертификати.

Одете во директориумот OpenVPN и преземете easy-rsa со командата wget:

cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/archive/release/2.x.zip

Извлечете ја архивата и преместете го директориумот easy-rsa:

unzip 2.x.zip
mv easy-rsa-release-2.x/easy-rsa/ /etc/openvpn/
rm -rf easy-rsa-release-2.x/

Конфигурирајте го клучот

Одете во директориумот easy-rsa и уредете ја датотеката vars за да ги конфигурирате клучот и сертификатот:

cd easy-rsa/2.0/
vim vars

Ред 53 - Ако сте навистина параноични, можете да ја зголемите големината на клучот.

export KEY_SIZE=2048

Ред 56 и 59 - За колку дена ќе истечат клучот и сертификатот.

export CA_EXPIRE=3650
export KEY_EXPIRE=3650

Линија 64 - 72 - Променете ја стандардната вредност на информациите за клучот и сертификатот.

export KEY_COUNTRY="US"
export KEY_PROVINCE="California"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL=""
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"

Зачувајте ја датотеката и излезете.

Иницијализирајте го PKI

Следно, иницијализирајте ја PKI (Инфраструктура на јавен клуч):

source ./vars && ./clean-all && ./build-ca

Ќе ја оставиме стандардната вредност, само притиснете \Enter\.

Генерирајте параметри на Diffie Hellman

Извршете ја командата подолу:

./build-dh

Ќе го видите излезот:

Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................

Генерирајте го приватен клуч на серверот

Генерирајте го приватниот клуч со името \сервер\:

./build-key-server server

Притиснете enter и напишете \y\ за да потврдите да го генерирате клучот.

Генерирај клуч и сертификат за клиентот

Генерирајте го клиентскиот клуч и сертификат со име \client1\:

./build-key client1

Притиснете enter и напишете \y\ за да го потврдите генерирањето клучеви.

Клучот и сертификатот се генерирани во директориумот \keys\. Сега направете копија од директориумот \keys\ и ставете го во директориумот \openvpn\.

cp -r keys/ /etc/openvpn/

Чекор 4 - Конфигурирајте OpenVPN

Во овој чекор, ќе го конфигурираме OpenVPN да работи на протоколот UDP, користејќи ја портата 2034 за клиентската врска. Направете го новиот сервер за конфигурациска датотека.conf во директориумот OpenVPN.

cd /etc/openvpn/
vim server.conf

Залепете ја конфигурацијата подолу:

#change with your port
port 2034

#You can use udp or tcp
proto udp

# "dev tun" will create a routed IP tunnel.
dev tun

#Certificate Configuration

#ca certificate
ca /etc/openvpn/keys/ca.crt

#Server Certificate
cert /etc/openvpn/keys/server.crt

#Server Key and keep this is secret
key /etc/openvpn/keys/server.key

#See the size a dh key in /etc/openvpn/keys/
dh /etc/openvpn/keys/dh2048.pem

#Internal IP will get when already connect
server 10.10.2.0 255.255.255.0

#this line will redirect all traffic through our OpenVPN
push "redirect-gateway def1"

#Provide DNS servers to the client, you can use goolge DNS
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

#Enable multiple client to connect with same key
duplicate-cn

keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon

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

#enable log
log-append /var/log/openvpn/openvpn.log

#Log Level
verb 3

Зачувајте ја датотеката и излезете од уредникот.

Следно, креирајте нов директориум и датотека за дневникот openvpn:

mkdir -p /var/log/openvpn/
touch /var/log/openvpn/{openvpn,openvpn-status}.log

Чекор 5 - Конфигурирајте го SuSEfirewall2

SuSEfirewall2 е скрипта за генерирање правила за iptables врз основа на датотеката \/etc/sysconfig/SuSEfirewall2\. Ќе инсталираме SuSEfirewall2 и потоа ќе ја конфигурираме портата за пристап до OpenVPN, а потоа ќе овозможиме NAT со скрипта iptables за OpenVPN.

Инсталирајте го SuSEfirewall2 со командата zypper:

zypper in SuSEfirewall2

Сега, одете во директориумот sysconfig и уредете ја конфигурациската датотека SuSEfirewall2:

cd /etc/sysconfig/
vim SuSEfirewall2

Линија 134 - Овозможи рута.

FW_ROUTE="yes"

Линија 253 - Овозможете TCP порта 22 за SSH пристап надвор од мрежата.

FW_SERVICES_EXT_UDP="22"

Линија 267 - Овозможи udp порта за пристап до клиентот openvpn - порта 2034.

FW_SERVICES_EXT_UDP="2034"

Линија 877 - Овозможи сопствени правила SuSEfirewall2.

FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"

Зачувај и излези.

Следно, уредете ги сопствените правила на SuSEfirewall2 во директориумот скрипти.

cd /etc/sysconfig/scripts/
vim SuSEfirewall2-custom

Внатре во директивата \fw_custom_after_chain_creation\, залепете ги новите правила iptables за OpenVPN:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.10.2.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.10.2.0/24 -o eth0 -j MASQUERADE

Зачувај и излези.

Забелешка:

IP 10.10.2.0/24 е мрежата од конфигурациската датотека на server.conf OpenVPN.

Сега можеме да овозможиме препраќање со додавање на оваа нова конфигурациска линија во датотеката sysctl.conf.

vim /etc/sysctl.conf

Залепете ја конфигурацијата подолу:

net.ipv4.ip_forward = 1

Зачувај и излези.

Забелешка:

Ако ја имате линијата веќе во датотеката, сменете ја вредноста од \0\ во \1\ наместо да додавате нова линија.

Сега извршете ја командата подолу за да ја примените промената на конфигурацијата.

sysctl -p

Стартувајте го серверот SuSEfirewall2 и OpenVPN:

systemctl start SuSEfirewall2
systemctl start

Ако имате грешка, можете да ја видите деталната порака за грешка во дневникот на OpenVPN.

Додадете ги сите услуги во стартувањето на системот:

systemctl enable SuSEfirewall2
systemctl enable

Чекор 5 - Конфигурирајте го клиентот

Преземете го клиентскиот клуч и сертификатот од директориумот со клучеви на вашиот локален компјутер. Можете да ја користите командата scp или sftp, тука сум користејќи scp:

Команда што треба да се изврши на локалниот компјутер.

scp :~/etc/openvpn/keys/client1.key ~/myvpn/

Во директориумот myvpn, креирајте нова конфигурациска датотека за клиентот \client1.ovpn\.

cd ~/myvpn/
vim client1.ovpn

Залепете ја конфигурацијата подолу:

client
dev tun
proto udp

#Server IP and Port
remote SERVERIP 2034

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo

Зачувај и излези.

За да се поврзете на нашиот VPN, можете да инсталирате VPN клиент или ако користите Linux, можете да го користите \Network-Manager\. Ако сакате да ја тестирате VPN со терминал, можете да ја користите командата подолу:

cd ~/myvpn/
sudo openvpn --config client1.ovpn

Референца