13.06.2023

CentOS üzerinde OpenVPN Kurulumu ve Konfigürasyonu

OpenVPN, VPN protokolünün açık bir yazılım uygulamasıdır. Bu ürünün ayırt edici bir özelliği, şifreli tüneller oluşturma yeteneğidir ve mobil platformlar da dahil olmak üzere çoğu popüler işletim sistemi için uygulamalar vardır.

CentOS deposunun özelliği, OpenVPN'in içinde yer almamasıdır. Ancak bu paket Fedora Projesi tarafından yönetilen EPEL deposu (Enterprise Linux) kullanılarak elde edilebilir. Bu arada bu depodan, standart CentOS deposunda bulunmayan diğer paketleri de edinebilirsiniz. Komut ile yükleyin:

yum install epel-release

OpenVPN'i yüklemek için devam edin. Paketi yükleyin:

yum install openvpn easy-rsa -y

Sunucuyu yapılandırmaya devam edin. server.conf dosyasını kopyalayın:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/

"*" işaretine dikkat etmek önemlidir. Yalnızca bir yükleme denemesi yapıldıysa, program sürümü bir yıldız sembolü ile değiştirilebilir. Birkaç kurulum denemesi yapıldıysa, dosyanın yolunu tamamen belirtmeniz gerekebilir.

Anahtarları oluşturmadan önce sunucu yapılandırma dosyasında birkaç değişiklik yapın

server.conf dosyasını herhangi bir düzenleyici ile açın.

nano /etc/openvpn/server.conf

"Diffie hellman parameters." satırını bulun ve arayın:

dh dh2048.pem

Tam olarak belirtilmişse, herhangi bir değişiklik yapılmasına gerek yoktur. Paketin yeni sürümünün nüansı, parametrenin zaten değerlere sahip olmasıdır. Eski sürümlerde sadece "dh" vardır. Biz onu kendi değerimiz gibi gösteriyoruz.

Ardından, "# Certain Windows-specific network settings" satırını bulun. Aşağıdaki parametrelerden birini açın (satırın başındaki “semicolon” (;) sembolünü silin). Şöyle bir şey görünmelidir:

push "dhcp-option DNS 8.8.8.8"

İsterseniz DNS sunucunuzu belirtebilirsiniz. Ayrıca, istemcilere alternatif bir DNS sunucusu iletmek için ikinci satırı da kaldırabilirsiniz.

Sunucu güvenliği için, nobody kullanıcısı ve nogroup grubu ile başlayacağız. Satırlardaki yorumu kaldırın:

user nobody
group nobody

Sertifika oluşturmaya başlıyoruz

Önceden yüklenmiş easy-rsa paketini kullanarak sunucu ve istemci anahtarlarını oluşturun.

Anahtarların yer alacağı bir dizin oluşturun:

mkdir -p /etc/openvpn/easy-rsa/keys

Yeni oluşturulan easy-rsa dizinine komut dosyalarını kopyalayın:

cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa

/etc /openvpn/easy-rsa/3/ dizinine gidin ve bir vars betiği oluşturun
cd /etc/openvpn/easy-rsa/

nano vars

Önemli! Easy-rsa sürümü farklı olabilir ve bu nedenle yolun ayarlanması gerekecektir.

Aşağıdaki satırları açık dosyaya ekleyin:

set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "RU"
set_var EASYRSA_REQ_PROVINCE "Moscow"
set_var EASYRSA_REQ_CITY "Moscow"
set_var EASYRSA_REQ_ORG "MyOrg"
set_var EASYRSA_REQ_EMAIL "openvpn@mydomain.net"
set_var EASYRSA_REQ_OU "CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"

Dosya yürütülmesine izin ver:

chmod +x vars

PKI dizinini başlatıyoruz ve bir CA sertifikası oluşturuyoruz:

./easyrsa init-pki
./easyrsa build-ca

Önemli! Bir CA sertifikası oluştururken, komut dosyası en az 4 karakterlik bir parola isteyecektir. Girilen parola hatırlanmalıdır.

Sunucu anahtarını oluşturun.

./easyrsa gen-req server nopass

"nopass" özelliğini belirtmezseniz, anahtar oluşturulurken kod bir parola isteyecektir.

Sunucu sertifikasını imzalıyoruz:

./easyrsa sign-req server server

Komut dosyası ilk eylemle güvenimize ilgi gösterecek, "Yes" cevabını verecektir. Ardından CA sertifikası oluşturulurken belirtilen şifreyi soracaktır.

Sertifikanın imzalanıp imzalanmadığını kontrol edin:

openssl verify -CAfile pki/ca.crt pki/issued/ server.crt

Ek bir sunucu anahtarı ta.key oluşturuyoruz:

openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Kullanıcı sertifikaları

Kullanıcı sertifikası oluşturma işlemi sunucu sertifikası oluşturma işlemiyle aynıdır.

  1. Şifre koruması olmadan oluşturuyoruz:
    ./easyrsa gen-req client01 nopass
  2. Sertifika imzalanıyor:
    ./easyrsa sign-req client client01
  3. İmzayı doğrulayın:
    openssl verify -CAfile pki/ca.crt pki/issued/client01.crt

Diffie Hellman.

Sertifika oluşturma

./easyrsa gen-dh

Sonuç olarak, dh.pem dosyası oluşturulacak ve dh2048.pem yapılandırmasında olacaktır. Anahtarları kopyalarken daha sonra yeniden adlandırın.

Sertifikaları transfer ediyoruz

Sunucu anahtar dosyalarını kopyalayın. Bunu yapmak için sırayla gerçekleştiriyoruz:

cp pki/ca.crt /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/keys/ta.key /etc/openvpn/

İstemci anahtarlarını kopyala

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client01.crt /etc/openvpn/client/
cp pki/private/client01.key /etc/openvpn/client/

Difie-Hellman anahtar dosyasını kopyalayın

cp pki/dh.pem /etc/openvpn/dh2048.pem

Önemli! Hedef dosya adı kasıtlı olarak yapılandırmadaki adla değiştirilir.

Yönlendirmeyi yapılandırma

Yapılandırmayı hızlandırmak için, çalışma FirewallD ile değil iptables ile gerçekleştirilecektir. Tutarlı bir şekilde gerçekleştirin:

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush

Daha fazla yapılandırma yapmadan önce, komutu kullanarak arayüzlerin adlarına bakmalısınız:

ifconfig -a

NAT için bir kural ekleyin:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o <имя_интерфейса> -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Bir örnek olarak:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables

Ağ arayüzleri arasında paket iletimine izin verin. Bunu yapmak için sysctl.conf sistem dosyasını düzenleyin:

nano /etc/sysctl.conf

Dosyanın başına şu satırı ekleyin:

net.ipv4.ip_forward = 1

Dosyayı kaydediyoruz, editörü kapatıyoruz ve ağ hizmetini komutla yeniden başlatıyoruz:

systemctl restart network.service

OpenVPN sunucusunu başlatıyoruz

Başlamak için hizmeti otomatik yüklemeye ekleyin:

systemctl -f enable openvpn@server.service

OpenVPN'i başlatın:

openvpn /etc/openvpn/server.conf

Müşteri ayarı.

Sunucu yapılandırıldı, geriye bağlanabilmesi için istemciyi yapılandırmak kalıyor.

Kullanılan işletim sistemi ne olursa olsun, mobil, sunucu veya ev sürümü, Linux veya Windows, her zaman 4 dosyaya ihtiyacınız olacaktır:

İlk 3 dosya /etc/openvpn /client/directory dizininde bulunur ve client.ovpn dosyasının oluşturulması gerekecektir. Bunu yapmak için, tüm istemci anahtarlarının bulunduğu dizine gidin:

cd /etc/openvpn/client/

Bir dosya oluşturun:

nano client.ovpn

Aşağıdaki içeriği doldurun:

client
dev tun
proto udp
remote <IP_ADDRESS> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client01.crt
key client01.key

IP_ADDRESS yerine sunucunun IP adresini veya alan adını girin. Dosyayı Ctrl + X ile kaydedin ve düzenleyiciyi kapatın.

Dosyaları istemciye aktarıyoruz. Bunu örneğin SFTP aracılığıyla yapmak veya dizini arşivlemek ve web sunucusu aracılığıyla "vermek" mümkündür.

İstemci bağlantısı

İşletim sistemine bağlı olarak, kurulum dosyasını indiriyoruz veya depodan yüklüyoruz. Ayrıca, OpenVPN resmi web sitesinden edinilebilir.

Windows:

Windows çalıştıran bilgisayarlar için, ürün dağıtım paketini resmi siteden indirmeli, "dört dosyayı" almalı, C: Program FilesOpenVPNconfig klasörüne koymalısınız.

OpenVPN GUI'yi başlattıktan sonra, program simgesi sistem tepsisinde görünecektir. Farenin sağ tuşu ile üzerine tıklıyoruz, Bağlan'ı seçiyoruz.

MacOS

MacOS için OpenVPN biraz daha karmaşıktır. Açık kaynak aracı Tunnelblick'i kullanmalısınız. Anahtarlar ve yapılandırma dosyası ~ /Library/Application Support/Tunnelblick/Configurations içine konulmalıdır. Ya da yapılandırma dosyasına çift tıklayın.

Linuix:

Depodan yüklemelisiniz.

Debian/Ubuntu

apt-get install openvpn

CentOS/OpenSUSE/Fedora

yum install openvpn -y

Kurulumdan sonra, anahtarları içeren yapılandırma dosyasının bulunduğu klasöre gidin ve komutu çalıştırın:

sudo openvpn --config client.ovpn

Sunucunun çalışmasını kontrol etmek için IP adresinizi gösteren sitelerden herhangi birini kullanmalısınız.