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.
- Şifre koruması olmadan oluşturuyoruz:
./easyrsa gen-req client01 nopass
- Sertifika imzalanıyor:
./easyrsa sign-req client client01
- İ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:
- ca.crt;
- client.crt;
- client.key;
- client.ovpn
İ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.