Günümüzde VPN teknolojisi daha popüler hale geliyor. Sıradan kullanıcılar İnternet'e güvenli bir şekilde erişmek için VPN kullanıyor. Ayrıca yerel olarak engellenen web sitelerini ve hizmetleri atlatmaya ve olası harici kötü niyetli davranışlara karşı korumaya yardımcı oluyor. Bir VPN sunucusuna bağlandığınızda, bilgisayarınız ile sunucu arasında dışarıdan erişilemeyen güvenli bir tünel olur, böylece VPN sunucusu İnternet erişim noktanız olur. Hem ücretsiz hem de ücretli birçok VPN hizmeti var, ancak herhangi bir nedenle sizin için çalışmıyorlarsa, her zaman kendi VPN sunucunuzu yapılandırabilirsiniz.
Kendi VPN'inizi çalıştırmak için şunları yapmalısınız: VPS sunucusu kirala. VPN bağlantısı oluşturmanıza olanak sağlayan farklı yazılımlar vardır. Desteklenen işletim sistemleri ve kullanılan algoritmalara göre birbirlerinden farklılık gösterirler. Bir VPN sunucusu kurmak için iki bağımsız yaklaşıma bakacağız. İlki, artık eski ve güvenli olmayan ancak yapılandırması gerçekten kolay olan PPTP protokolüne dayanmaktadır. Diğeri ise modern ve güvenli yazılım OpenVPN kullanır ancak üçüncü taraf bir istemci uygulamasının yüklenmesini ve daha kapsamlı bir kurulum sürecini gerektirir.
Test ortamımızda Ubuntu Server 18.04 tarafından desteklenen bir sanal sunucu kullanacağız. Sunucudaki bir güvenlik duvarı kapatılacak çünkü yapılandırması ayrı bir makaleyi hak ediyor. Windows 10'daki kurulum sürecini açıklayacağız.
Hazırlık
Hangi VPN sunucusunu seçerseniz seçin, İnternet erişimi işletim sisteminin entegre araçlarıyla kurulacaktır. Harici bir servis arayüzü üzerinden İnternet erişimini açmak için arayüzler arasında paket iletimine izin vermeli ve ağ adresi çevirisini yapılandırmalısınız.
Paket yönlendirmeyi açmak için dosyayı açın “/etc/sysctl.conf” ve değişim “net.ipv4.ip_forward” parametre değeri içine 1.
Bilgisayarı yeniden başlatmadan değişiklikleri uygulamak için şu komutu çalıştırın:
sudo sysctl -p /etc/sysctl.conf
Ağ adresi çevirisi, aşağıdakiler aracılığıyla yapılandırılır: iptables. İlk olarak, komutu çalıştırarak harici ağ arayüzünüzün adını kontrol edin “Ip bağlantı gösterisi” - bir sonraki adımda buna ihtiyacınız olacak. Bizim adımız “ens3”.
Tüm yerel ağ düğümleri için harici arayüzünüzde ağ adresi çevirisini etkinleştirin.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Sunucunuzun arayüzünün gerçek adını belirtmeniz gerektiğini unutmayın, bizimkinden farklı olabilir.
Varsayılan olarak, iptables tarafından oluşturulan tüm kurallar sunucu yeniden başlatıldıktan sonra sıfırlanır. Bunu önlemek için şunu kullanın: “iptables-kalıcı” yardımcı programı. Aşağıdaki paketi yükleyin:
sudo apt install iptables-persistent
Kurulum süreci sırasında bir noktada, geçerli iptables kurallarını kaydetmenizi önerecek bir yapılandırma penceresi göreceksiniz. Kurallar zaten tanımlı olduğundan, sadece onaylayın ve tıklayın "Evet" iki kez. Şu andan itibaren kurallar sunucu yeniden başlatıldıktan sonra otomatik olarak uygulanacaktır.
PPTP sunucusu
Sunucu yapılandırması
Paketi yükleyin:
sudo apt install pptpd
Kurulum bittikten sonra dosyayı açın “/etc/pptpd.conf” herhangi bir metin düzenleyicide açıp şu şekilde düzenleyebilirsiniz:
option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses
Daha sonra dosyayı düzenleyin “/etc/ppp/pptpd-seçenekleri”Parametrelerin çoğu varsayılan olarak ayarlanmıştır.
#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
Bir sonraki aşamada, istemci bağlantıları için bir kayıt oluşturmanız gerekecektir. Diyelim ki bir kullanıcı eklemek istiyorsunuz “vpn kullanıcısı” şifre ile "1" ve onun için dinamik adreslemeye izin verin. Dosyayı açın “/etc/ppp/chap-sırları” ve dosyanın sonuna kullanıcının parametrelerini içeren şu satırı ekleyin:
vpnuser pptpd 1 *
“pptpd” değer, dosyada belirttiğimiz hizmetin adıdır “pptpd-seçenekleri”. Yerine "*" sabit bir IP adresi belirtebilirsiniz. Sonuç olarak, dosya "sır-adam" Şöyle olmalıdır:
Ayarları uygulamak için sıfırlama pptpd servis edin ve otomatik yüklemeye ekleyin.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Sunucu yapılandırması tamamlandı.
İstemci yapılandırması
Açılış "Başlama" - “Ayarlar” - Ağ ve İnternet - "VPN" ve tıklayın "VPN bağlantısı ekle"
Açılan pencerede bağlantı parametrelerini girin ve tıklayın. "Kayıt etmek"
- VPN sağlayıcısı: “Windows (yerleşik)”
- Bağlantı adı: “vpn_connect” (herhangi bir ad seçebilirsiniz)
- Sunucu adı veya adresi: (Sunucunun harici IP adresini belirtin)
- VPN türü: “Otomatik”
- Oturum açma bilgisi türü: “Kullanıcı adı ve şifre”
- Kullanıcı adı: vpn kullanıcısı (Sunucudaki “chap-secrets” dosyasında belirtilen ad)
- Parola: 1 (örneğin “chap-secrets” dosyasında olduğu gibi)
Parametreleri kaydettikten sonra pencerede yeni VPN bağlantısını göreceksiniz. Bağlantıya sol tıklayın ve seçin "Bağlan"Başarılı bir bağlantı durumunda şunu göreceksiniz: "Bağlı" durumu.
Seçenekler'de istemcinin ve sunucunun dahili adreslerini bulacaksınız. Alan "Hedef adres" harici sunucu adresini görüntüler.
Bağlandığında, sunucunun dahili IP adresi, 172.16.0.1 bizim durumumuzda, tüm giden paketler için varsayılan ağ geçidi haline gelir.
Herhangi bir çevrimiçi hizmeti kullanarak bilgisayarınızın harici IP adresinin artık VPN sunucunuzun IP adresiyle aynı olduğundan emin olabilirsiniz.
OpenVPN sunucusu
Sunucu yapılandırması
Mevcut kullanıcının izin seviyesini yükseltelim çünkü daha sonraki yapılandırmamız için root erişimine ihtiyacımız olacak.
sudo -s
Gerekli tüm paketleri yükleyin. İhtiyacımız olacak "Kolay-RSA" Şifreleme anahtarlarını yönetmek için paket.
apt install openvpn easy-rsa iptables-persistent
1194 numaralı porttan UDP protokolü ile gelen bağlantılara izin verin ve iptables kurallarını uygulayın.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
“Easy-RSA” paketinden kopyalanan dosyaların olduğu bir dizin oluşturun ve içine gidin.
make-cadir ~/openvpn
cd ~/openvpn
Ortak Anahtar Altyapısı (PKI) Oluşturun.
./easyrsa init-pki
Sertifika Yetkilisi (CA) kök sertifikasını oluşturun.
./easyrsa build-ca
Oluşturma işlemi sırasında bir parola belirlemeniz ve hatırlamanız istenecektir. Ayrıca soruları yanıtlamanız ve anahtar sahibi hakkında bilgi girmeniz gerekecektir. Köşeli parantez içinde verilen varsayılan değerleri bırakabilirsiniz. Girişi tamamlamak için "Enter" tuşuna basın.
Özel bir anahtar ve bir sertifika isteği oluşturun. Argüman olarak, rastgele bir ad belirtin; bizim örneğimizde bu "vpn-server"dır.
./easyrsa gen-req vpn-server nopass
Ortak Ad değerini varsayılan olarak bırakın.
Oluşturulan sunucu sertifika isteğini imzalayın.
./easyrsa sign-req server vpn-server
Bu adımda imzayı onaylamak için "evet" cevabını verin, ardından kök sertifika oluşturma sırasında oluşturulan parolayı girin.
Diffie-Hellman parametrelerini oluşturun. Bu parametreler, sunucu ve istemci arasında güvenli anahtar değişimi için kullanılır.
./easyrsa gen-dh
Gerekli tüm dosyalar oluşturuldu. OpenVPN çalışma dizininde anahtarları saklamak için bir "keys" klasörü oluşturalım ve oluşturulan dosyaları oraya kopyalayalım.
mkdir /etc/openvpn/keys
sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys
NAT'ı kullanarak yapılandırın iptables kurallar. Adlı bir dosya oluşturun nat ve düzenleme için açın /etc/openvpn/ dizin.
#!/bin/sh
# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP
# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP
sudo netfilter-persistent save
Dosyayı kaydedin ve çalıştırılabilir hale getirin.
sudo chmod 755 /etc/openvpn/nat
Sunucu yapılandırma şablonunu kopyalayın.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Dosyayı açın “/etc/openvpn/server.conf” Düzenleme için aşağıdaki satırları içerdiğinden emin olun ve gerekirse düzenleyin:
#Port, protocol, and interface
port 1194
proto udp
dev tun
#Path to the encryption keys
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpn-server.crt
key /etc/openvpn/keys/vpn-server.key
dh /etc/openvpn/keys/dh.pem
#SHA256 Hashing Algorithm
auth SHA256
#Switching off additional encryption
#tls-auth ta.key 0
#Network parameters
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.
keepalive 10 120
#Set up AES-256 encryption for the tunnel.
cipher AES-256-GCM
#Demoting the service OpenVPN after launch
user nobody
group nogroup
#Switching on parameters saving after reboot
persist-key
persist-tun
#Set log verbosity
verb 3
#Redirecting logs
log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.
up /etc/openvpn/nat
Sunucuda trafik yönlendirmeyi etkinleştirin.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Yapılandırmayı uygulamak için OpenVPN'i başlatın.
systemctl restart openvpn@server
Sunucu yapılandırması tamamlandı!
İstemci yapılandırması
OpenVPN'in resmi web sitesine gidinhttps://openvpn.net”, git “TOPLUM” Bölüm.
Aşağı kaydırın ve işletim sistemi sürümünüze uygun yükleyiciyi indirin. Bizim örneğimizde Windows 11 ARM64'tür.
Uygulamayı tüm parametreleri varsayılan şekilde bırakarak yükleyin.
Bir sonraki aşamada sunucuda aşağıdaki dosyayı hazırlamanız ve istemci bilgisayara aktarmanız gerekecektir:
- genel ve özel anahtarlar;
- sertifika merkezi anahtarının kopyası;
- yapılandırma dosyası şablonu.
Sunucuya bağlanın, ayrıcalıkları yükseltin ve oluşturduğumuz dizine gidin "~/openvpn".
sudo -s
cd ~/openvpn
İstemci için özel bir anahtar ve bir sertifika isteği oluşturun. Argüman olarak, rastgele bir ad belirtin; bizim örneğimizde bu "client1"dir.
./easyrsa gen-req client1 nopass
Kök sertifikayı oluştururken belirlediğimiz şifreyi girip, Ortak Ad değerini varsayılan olarak bırakalım.
Oluşturulan istemci sertifika isteğini imzalayın.
./easyrsa sign-req client client1
Bu adımda imzayı onaylamak için "evet" cevabını verin, ardından kök sertifika oluşturma sırasında oluşturulan parolayı girin.
Kolaylık olması açısından, ana dizinde 'client1' adında bir klasör oluşturalım ve istemci bilgisayara aktarılacak tüm dosyaları bu klasörün içine kopyalayalım.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
İstemci yapılandırma dosyası şablonunu aynı dizine kopyalayın. Dosya uzantısını şu şekilde değiştirin: “.ovpn” Kopyalama sırasında.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Dizinin ve tüm dosyaların sahibini değiştirin “~/istemci1/” bunları müşteriye dağıtabilmek için. Hadi yapalım "mihail" Bizim durumumuzda mal sahibi.
chown -R mihail:mihail ~/client1
İstemci bilgisayara gidin ve içeriği kopyalayın “~/istemci1/” klasörü. Bunu yardımıyla yapabilirsiniz “PSCP” fayda, Putty ile birlikte gelir.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Anahtar dosyaları depolayabilirsiniz “ca.crt”, “müşteri1.crt”, “müşteri1.anahtar” istediğiniz yere. Bizim durumumuzda, bu klasördeler “c:\Program Dosyaları\OpenVPN\anahtarları”ve yapılandırma dosyasını modluyoruz “müşteri.ovpn” içine “c:\Program Dosyaları\OpenVPN\config” dizin.
Şimdi istemciyi yapılandırmaya geçelim. Dosyayı açın “c:\Program Dosyaları\OpenVPN\config\client.ovpn” Bir metin düzenleyicide aşağıdaki satırları düzenleyin:
#announce that this is the client
client
#interface and protocol just like on the server
dev tun
proto udp
#IP address of the server and port
remote ip_address 1194
#saving parameters after reload
persist-key
persist-tun
#key paths
ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”
cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”
key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification
remote-cert-tls server
#disable extra encryption
#tls-auth ta.key 1
cipher AES-256-CBC
auth-nocache
verb 3
Gerisini olduğu gibi bırakın.
Dosyayı kaydedin ve istemci uygulamasını başlatın “OpenVPN GUI”.
Görev çubuğundaki uygulama simgesine sağ tıklayın ve şunu seçin: "Bağlan"Bağlantı başarılı olursa simge yeşil renge dönecektir.
Herhangi bir çevrimiçi hizmeti kullanarak genel IP adresinizin değiştiğinden ve artık sunucunun IP adresiyle aynı olduğundan emin olun.