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 sewa pelayan VPS. Terdapat perisian berbeza yang membolehkan anda membuat sambungan VPN. Ia berbeza antara satu sama lain mengikut sistem pengendalian yang disokong dan algoritma yang digunakan. Kami 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 untuk dikonfigurasikan. Yang satu lagi menggunakan perisian OpenVPN 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 semula paket, buka fail “/etc/sysctl.conf” dan perubahan “net.ipv4.ip_forward” nilai parameter ke dalam 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 dengan cara iptables. Mula-mula, semak nama antara muka rangkaian luaran anda yang menjalankan arahan “tunjukkan pautan ip” - 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 dibuat oleh iptables ditetapkan semula selepas pelayan dimulakan semula. Untuk mengelakkannya, gunakan “iptables-persistent” utiliti. 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 sudah ditetapkan, cuma sahkan dan klik "Ya" dua kali. Sejak 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 membuat rekod untuk sambungan pelanggan. 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 penghujung fail:

vpnuser pptpd 1 *

“pptpd” value ialah nama perkhidmatan yang kami tentukan dalam fail “pptpd-options”. Sebaliknya "*" anda boleh menentukan alamat IP tetap. Hasilnya, fail “rahsia-rahsia” sepatutnya kelihatan seperti ini:

Persediaan pelayan VPN

Untuk menggunakan tetapan tetapkan semula pptpd perkhidmatan dan tambahkannya pada autoloading.

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". Dalam kes sambungan yang berjaya, anda akan lihat "Bersambung" status.

Menambah sambungan VPN

Dalam Pilihan, anda akan menemui alamat dalaman pelanggan dan pelayan. Padang “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. Kami akan perlukan “RSA mudah” paket 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 mengedit, 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 “KOMUNITI” bawah seksyen ini.

Заходим на официальный сайт проекта “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” sambil menyalin.

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

Tukar pemilik direktori dan semua fail “~/klien1/” untuk dapat mengedarkannya kepada pelanggan. Jom buat “mihail” pemilik dalam kes kami.

chown -R mihail:mihail ~/client1

Pergi ke komputer klien dan salin kandungannya “~/klien1/” folder. Anda boleh melakukannya dengan bantuan “PSCP” utiliti, yang berlaku dengan Putty.

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

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

Sekarang mari kita mula mengkonfigurasi 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 hijau.

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

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

Tanya kami tentang VPS

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