Knowledgebase Arahan mudah untuk bekerja dengan perkhidmatan Profitserver
Utama Knowledgebase Persediaan pelayan VPN pada Linux: PPTP atau OpenVPN?

Persediaan pelayan VPN pada Linux: PPTP atau OpenVPN?


Pada masa kini, teknologi VPN menjadi lebih popular. Pengguna biasa menggunakan VPN untuk mengakses Internet dengan selamat. Ia juga membantu mengatasi tapak web dan perkhidmatan yang disekat secara tempatan dan melindungi daripada kemungkinan tingkah laku jahat luaran. Apabila anda menyambung ke pelayan VPN, terdapat terowong selamat antara komputer anda dan pelayan yang tidak boleh diakses dari luar, jadi pelayan VPN menjadi pusat akses Internet anda. Terdapat banyak perkhidmatan VPN di luar sana, percuma dan berbayar, tetapi jika ia tidak berfungsi untuk anda atas sebab tertentu, anda sentiasa boleh mengkonfigurasi pelayan VPN anda sendiri.

Untuk menjalankan VPN anda, anda harus menyewa pelayan VPS . Terdapat pelbagai perisian yang membolehkan anda membuat sambungan VPN. Ia berbeza antara satu sama lain mengikut sistem pengendalian yang disokong dan algoritma yang digunakan. Kita akan melihat dua pendekatan bebas untuk menyediakan pelayan VPN. Yang pertama adalah berdasarkan protokol PPTP yang sudah dianggap usang dan tidak selamat tetapi sangat mudah dikonfigurasikan. Yang satu lagi menggunakan perisian OpenVPN yang moden dan selamat tetapi memerlukan pemasangan aplikasi klien pihak ketiga dan proses persediaan yang lebih teliti.

Dalam persekitaran ujian kami, kami akan menggunakan pelayan maya yang dikuasakan oleh Pelayan Ubuntu 18.04. Firewall akan dimatikan pada pelayan kerana konfigurasinya memerlukan artikel yang berasingan. Kami akan menerangkan proses persediaan pada Windows 10.

Persediaan

Tidak kira pelayan VPN yang anda pilih, akses Internet akan disediakan dengan cara bersepadu sistem pengendalian. Untuk membuka akses Internet melalui antara muka perkhidmatan luaran, anda perlu membenarkan penghantaran paket antara antara muka dan mengkonfigurasi terjemahan alamat rangkaian.

Untuk menghidupkan penghantaran paket, buka fail “/etc/sysctl.conf” dan tukar nilai parameter “net.ipv4.ip_forward” kepada 1.

hidupkan pemajuan paket untuk persediaan VPN

Untuk menggunakan perubahan tanpa but semula komputer, jalankan arahan

sudo sysctl -p /etc/sysctl.conf

Terjemahan alamat rangkaian dikonfigurasikan melalui iptables . Pertama, semak nama antara muka rangkaian luaran anda dengan menjalankan arahan "ip link show" - anda akan memerlukannya pada langkah seterusnya. Nama kami ialah "ens3".

pertunjukan pautan ip

Dayakan terjemahan alamat rangkaian pada antara muka luaran anda untuk semua nod rangkaian tempatan.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Ambil perhatian bahawa anda perlu menyatakan nama sebenar antara muka pelayan anda, ia mungkin berbeza daripada kami.

Secara lalai, semua peraturan yang dicipta oleh iptables ditetapkan semula selepas pelayan dimulakan semula. Untuk mengelakkannya, gunakan utiliti “iptables-persistent” . Pasang paket berikut:

sudo apt install iptables-persistent

Pada satu ketika semasa proses pemasangan, anda akan melihat tetingkap konfigurasi yang akan mencadangkan anda menyimpan peraturan iptables semasa. Memandangkan peraturan telah ditakrifkan, sahkan sahaja dan klik "Ya" dua kali. Memandangkan sekarang peraturan akan digunakan secara automatik selepas pelayan dimulakan semula.

Hidupkan terjemahan alamat

Pelayan PPTP

Konfigurasi pelayan

Pasang paket:

sudo apt install pptpd

Selepas pemasangan tamat, buka fail “/etc/pptpd.conf” dalam mana-mana editor teks dan edit seperti ini:

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

Selepas itu, edit fail “/etc/ppp/pptpd-options” . Kebanyakan parameter ditetapkan secara lalai.

#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

Pada peringkat seterusnya, anda perlu mencipta rekod untuk sambungan klien. Katakan anda ingin menambah pengguna “vpnuser” dengan kata laluan “1” dan membenarkan pengalamatan dinamik untuknya. Buka fail “/etc/ppp/chap-secrets” dan tambahkan baris berikut dengan parameter pengguna pada akhir fail:

vpnuser pptpd 1 *

Nilai “pptpd” ialah nama perkhidmatan yang kami tentukan dalam fail “pptpd-options” . Anda boleh menentukan alamat IP tetap dan bukannya “*” . Hasilnya, fail “chap-secrets” sepatutnya kelihatan seperti ini:

Persediaan pelayan VPN

Untuk menggunakan tetapan, tetapkan semula perkhidmatan pptpd dan tambahkannya ke pemuatan automatik.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfigurasi pelayan selesai.

Konfigurasi pelanggan

Buka “Mula” - “Tetapan” - “Rangkaian & Internet” - “VPN” dan klik “Tambah sambungan VPN”

Sediakan klien untuk sambungan VPN

Masukkan parameter sambungan dalam tetingkap yang dibuka dan klik "Simpan"

  • Pembekal VPN: "Windows (terbina dalam)"
  • Nama sambungan: “vpn_connect” (anda boleh memilih mana-mana nama)
  • Nama atau alamat pelayan: (nyatakan alamat IP luaran pelayan)
  • Jenis VPN: "Auto"
  • Jenis maklumat log masuk: "Nama pengguna dan kata laluan"
  • Nama pengguna: vpnuser (nama dinyatakan dalam fail "chap-secrets" pada pelayan)
  • kata laluan: 1 (seperti dalam fail "chap-secrets")

Selepas menyimpan parameter, anda akan melihat sambungan VPN baharu dalam tetingkap. Klik kiri sambungan dan pilih “Sambung” . Sekiranya sambungan berjaya, anda akan melihat status “Bersambung” .

Menambah sambungan VPN

Dalam Pilihan, anda akan menemui alamat dalaman klien dan pelayan. Medan “Alamat destinasi” memaparkan alamat pelayan luaran.

Bagaimana untuk menyediakan pelayan VPN sendiri

Apabila disambungkan, alamat IP dalaman pelayan, 172.16.0.1 dalam kes kami, menjadi gerbang lalai untuk semua paket keluar.

Semak alamat IP luaran

Menggunakan mana-mana perkhidmatan dalam talian anda boleh memastikan bahawa alamat IP luaran komputer kini sama dengan alamat IP pelayan VPN anda.

Pelayan OpenVPN

Konfigurasi pelayan

Mari kita tingkatkan tahap kebenaran pengguna semasa kerana untuk konfigurasi selanjutnya kita memerlukan akses root.

sudo -s

Pasang semua paket yang diperlukan. Kita memerlukan paket “Easy-RSA” untuk mengurus kunci penyulitan.

apt install openvpn easy-rsa iptables-persistent

Benarkan sambungan masuk pada port 1194 melalui protokol UDP dan gunakan peraturan iptables.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

Buat direktori dengan fail yang disalin daripada pakej "Easy-RSA" dan navigasi ke dalamnya.

make-cadir ~/openvpn

cd ~/openvpn

Menjana Infrastruktur Kunci Awam (PKI).

./easyrsa init-pki

Hasilkan sijil akar Certificate Authority (CA).

./easyrsa build-ca

Semasa proses penciptaan, anda akan digesa untuk menetapkan dan mengingati kata laluan. Anda juga perlu menjawab soalan dan memasukkan maklumat tentang pemilik kunci. Anda boleh meninggalkan nilai lalai yang disediakan dalam kurungan segi empat sama. Tekan "Enter" untuk memuktamadkan input.

Hasilkan kunci peribadi dan permintaan sijil. Sebagai hujah, nyatakan nama sewenang-wenangnya; dalam kes kami, ia adalah "pelayan vpn".

./easyrsa gen-req vpn-server nopass

Biarkan nilai Common Name sebagai lalai.

Tandatangani permintaan sijil pelayan yang dijana.

./easyrsa sign-req server vpn-server

Pada langkah ini, jawab "ya" untuk mengesahkan tandatangan, kemudian masukkan kata laluan yang telah dibuat semasa penjanaan sijil akar.

Hasilkan parameter Diffie-Hellman. Parameter ini digunakan untuk pertukaran kunci selamat antara pelayan dan klien.

./easyrsa gen-dh

Semua fail yang diperlukan telah dihasilkan. Mari buat folder "kunci" dalam direktori kerja OpenVPN untuk menyimpan kunci dan menyalin fail yang dibuat di sana.

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

Konfigurasikan NAT menggunakan iptables peraturan. Buat fail bernama nat dan bukanya untuk diedit dalam /etc/openvpn/ direktori.

#!/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

Simpan fail dan jadikan ia boleh laku.

sudo chmod 755 /etc/openvpn/nat

Salin templat konfigurasi pelayan.

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

Buka fail “/etc/openvpn/server.conf” untuk penyuntingan, pastikan ia mengandungi baris berikut, dan editnya jika perlu:

#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

Dayakan pemajuan trafik pada pelayan.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

Mulakan OpenVPN untuk menggunakan konfigurasi.

systemctl restart openvpn@server

Konfigurasi pelayan telah selesai!

Konfigurasi pelanggan

Pergi ke laman web rasmi OpenVPN “ https://openvpn.net ”, pergi ke bahagian “KOMUNITI”.

Заходим на официальный сайт проекта “https://openvpn.net”, переходим dalam раздел “KOMUNITI”.

Tatal ke bawah dan muat turun pemasang untuk versi sistem pengendalian anda. Dalam kes kami, ia adalah Windows 11 ARM64.

пролистываем вниз и скачиваем инсталлятор для своей версии операционной системы. В нашем случае это Windows 11 ARM64.

Pasang aplikasi meninggalkan semua parameter secara lalai.

Pada peringkat seterusnya anda perlu menyediakan fail berikut pada pelayan dan memindahkannya ke komputer klien:

  • kunci awam dan peribadi;
  • salinan kunci pusat pensijilan;
  • templat fail konfigurasi.

Sambung ke pelayan, tingkatkan keistimewaan, dan navigasi ke direktori kami yang dibuat "~/openvpn".

sudo -s

cd ~/openvpn

Hasilkan kunci peribadi dan permintaan sijil untuk pelanggan. Sebagai hujah, nyatakan nama sewenang-wenangnya; dalam kes kami, ia adalah "klien1".

./easyrsa gen-req client1 nopass

Masukkan kata laluan yang kami tetapkan semasa membuat sijil akar dan biarkan nilai Nama Biasa sebagai lalai.

Вводим пароль, который мы устанавливали при создании корневого сертификата и оставляем значение Common Name по умолчанию.

Tandatangani permintaan sijil pelanggan yang dijana.

./easyrsa sign-req client client1

Pada langkah ini, jawab "ya" untuk mengesahkan tandatangan, kemudian masukkan kata laluan yang telah dibuat semasa penjanaan sijil akar.

На этом шаге отвечаем "yes" для подтверждения подписи, после чего вводим пароль, который был создан гдани при сертификата.

Untuk kemudahan, mari buat folder bernama 'client1' dalam direktori utama dan salin semua fail yang dimaksudkan untuk dipindahkan ke komputer klien ke dalamnya.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

Salin templat fail konfigurasi klien ke direktori yang sama. Tukar sambungan fail kepada “.ovpn” semasa menyalin.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

Tukar pemilik direktori dan semua fail “~/client1/” untuk dapat mengedarkannya kepada klien. Mari kita jadikan “mihail” sebagai pemilik dalam kes kita.

chown -R mihail:mihail ~/client1

Pergi ke komputer klien dan salin kandungan folder “~/client1/” . Anda boleh melakukannya dengan bantuan utiliti “PSCP” , yang disertakan dengan Putty.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

Anda boleh menyimpan fail kunci “ca.crt” , “client1.crt” , “client1.key” di mana sahaja anda mahu. Dalam kes kami, ia berada dalam folder ini “c:\Program Files\OpenVPN\keys” , dan kami mengubah suai fail konfigurasi “client.ovpn” ke dalam direktori “c:\Program Files\OpenVPN\config”.

Sekarang mari kita konfigurasikan klien. Buka fail “c:\Program Files\OpenVPN\config\client.ovpn” dalam editor teks dan edit baris berikut:

#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

Biarkan selebihnya tidak disentuh.

Simpan fail dan lancarkan aplikasi klien “OpenVPN GUI”.

Persediaan VPN selesai

Klik kanan pada ikon aplikasi dalam bar tugas dan pilih “Sambung” . Jika sambungan berjaya, ikon akan bertukar menjadi hijau.

Gunakan mana-mana perkhidmatan dalam talian untuk memastikan alamat IP awam anda telah berubah dan kini sama dengan alamat IP pelayan.

❮ Artikel sebelumnya Persediaan pelayan FTP
Artikel seterusnya ❯ Bagaimana untuk menyediakan Wireguard VPN pada pelayan anda

Tanya kami tentang VPS

Kami sentiasa bersedia untuk menjawab soalan anda pada bila-bila masa siang atau malam.