Суурь мэдлэг Profitserver үйлчилгээтэй ажиллах энгийн заавар
Үндсэн Суурь мэдлэг Линукс дээр VPN серверийн тохиргоо: PPTP эсвэл OpenVPN?

Линукс дээр VPN серверийн тохиргоо: PPTP эсвэл OpenVPN?


Өнөө үед VPN технологи улам бүр түгээмэл болж байна. Энгийн хэрэглэгчид интернетэд аюулгүй нэвтрэхийн тулд VPN ашигладаг. Энэ нь мөн дотоодоос хаагдсан вэбсайт, үйлчилгээг тойрон гарах, гадны болзошгүй хорлонтой үйлдлээс хамгаалахад тусалдаг. Таныг VPN серверт холбогдох үед таны компьютер болон серверийн хооронд гаднаас хандах боломжгүй аюулгүй хонгил байдаг тул VPN сервер нь таны интернетийн хандалтын цэг болдог. Үнэгүй болон төлбөртэй олон VPN үйлчилгээнүүд байдаг ч ямар нэг шалтгааны улмаас тэдгээр нь танд тохирохгүй бол та үргэлж VPN серверээ тохируулах боломжтой.

VPN-ээ ажиллуулахын тулд та VPS сервер түрээслэх хэрэгтэй . VPN холболт үүсгэх боломжийг олгодог өөр өөр програм хангамж байдаг. Энэ нь дэмжигдсэн үйлдлийн системүүд болон ашигласан алгоритмуудаараа бие биенээсээ ялгаатай. Бид VPN серверийг тохируулах хоёр бие даасан аргыг авч үзэх болно. Эхнийх нь аль хэдийн хуучирсан, аюулгүй биш гэж тооцогддог боловч тохируулахад үнэхээр хялбар PPTP протокол дээр суурилдаг. Нөгөө нь орчин үеийн, аюулгүй OpenVPN програм хангамжийг ашигладаг боловч гуравдагч талын клиент програмыг суулгах, илүү нарийвчилсан тохиргооны процесс шаарддаг.

Туршилтын орчинд бид Ubuntu Server 18.04 дээр суурилсан виртуал сервер ашиглах гэж байна. Галт ханыг сервер дээр унтраах гэж байна, учир нь түүний тохиргоо нь тусдаа нийтлэл байх ёстой. Бид Windows 10 дээрх тохиргооны үйл явцыг тайлбарлах болно.

Бэлтгэл

Аль ч VPN серверийг сонгохоос үл хамааран үйлдлийн системийн нэгдсэн хэрэгслээр интернет холболтыг тохируулах болно. Гадаад үйлчилгээний интерфейсээр дамжуулан интернетийн хандалтыг нээхийн тулд интерфэйсүүдийн хооронд пакет дамжуулахыг зөвшөөрч, сүлжээний хаягийн орчуулгыг тохируулах шаардлагатай.

Пакет дамжуулахыг идэвхжүүлэхийн тулд “/etc/sysctl.conf” файлыг нээгээд “net.ipv4.ip_forward” параметрийн утгыг 1 болгон өөрчилнө үү.

VPN тохиргоонд пакет дамжуулахыг асаана уу

Компьютерийг дахин ачаалахгүйгээр өөрчлөлт оруулахын тулд командыг ажиллуулна уу

sudo sysctl -p /etc/sysctl.conf

Сүлжээний хаягийн орчуулгыг iptables ашиглан тохируулдаг . Эхлээд гадаад сүлжээний интерфэйсийнхээ нэрийг “ip link show” командыг ажиллуулж шалгана уу - энэ нь танд дараагийн алхамд хэрэг болно. Бидний нэр бол “ens3”.

ip холбоос шоу

Дотоод сүлжээний бүх зангилааны гадаад интерфейс дээр сүлжээний хаягийн орчуулгыг идэвхжүүлнэ үү.

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

Та өөрийн серверийн интерфейсийн жинхэнэ нэрийг зааж өгөх хэрэгтэй гэдгийг анхаарна уу, энэ нь биднийхээс өөр байж болно.

Анхдагчаар, сервер дахин ачаалсны дараа iptables-ийн үүсгэсэн бүх дүрмүүд дахин тохируулагддаг. Үүнээс урьдчилан сэргийлэхийн тулд “iptables-persistent” хэрэгслийг ашиглаарай. Дараах пакетийг суулгана уу:

sudo apt install iptables-persistent

Суулгах процессын явцад та одоогийн iptables дүрмийг хадгалахыг санал болгох тохиргооны цонхыг харах болно. Дүрмүүд аль хэдийн тодорхойлогдсон тул баталгаажуулаад "Тийм" дээр хоёр удаа дарна уу. Одооноос эхлэн сервер дахин ачаалсны дараа дүрмүүд автоматаар хэрэгжих болно.

Хаягийн орчуулгыг асаана уу

PPTP сервер

Серверийн тохиргоо

Пакет суулгах:

sudo apt install pptpd

Суулгалт дууссаны дараа дурын текст засварлагч дээр "/etc/pptpd.conf" файлыг нээгээд дараах байдлаар засварлана уу:

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

Үүний дараа “/etc/ppp/pptpd-options” файлыг засварлана уу . Ихэнх параметрүүд анхдагчаар тохируулагдсан байдаг.

#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

Дараагийн шатанд та клиент холболтын бичлэг үүсгэх шаардлагатай болно. Та "1" нууц үгтэй "vpnuser" хэрэглэгчийг нэмж, түүнд динамик хаягжуулалт хийхийг хүсэж байна гэж бодъё. "/etc/ppp/chap-secrets" файлыг нээгээд файлын төгсгөлд хэрэглэгчийн параметрүүдтэй дараах мөрийг нэмнэ үү:

vpnuser pptpd 1 *

“pptpd” утга нь бидний “pptpd-options” файлд заасан үйлчилгээний нэр юм . “*”- ийн оронд та тогтмол IP хаягийг зааж өгч болно. Үүний үр дүнд “chap-secrets” файл дараах байдалтай харагдах ёстой:

VPN серверийн тохиргоо

Тохиргоог хэрэгжүүлэхийн тулд pptpd үйлчилгээг дахин тохируулаад автоматаар ачаалах горимд нэмнэ үү.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Серверийн тохиргоо дууссан.

Үйлчлүүлэгчийн тохиргоо

"Эхлүүлэх" - "Тохиргоо" - "Сүлжээ ба Интернет" - "VPN" цэсийг нээгээд "VPN холболт нэмэх" дээр дарна уу .

VPN холболтын клиентийг тохируулна уу

Нээгдсэн цонхонд холболтын параметрүүдийг оруулаад "Хадгалах" товчийг дарна уу.

  • VPN үйлчилгээ үзүүлэгч: "Windows (бүтээсэн)"
  • Холболтын нэр: “vpn_connect” (та ямар ч нэрийг сонгож болно)
  • Серверийн нэр эсвэл хаяг: (серверийн гадаад IP хаягийг зааж өгнө үү)
  • VPN төрөл: "Авто"
  • Нэвтрэх мэдээллийн төрөл: "Хэрэглэгчийн нэр, нууц үг"
  • Хэрэглэгчийн нэр: vpnuser (сервер дээрх "chap-secrets" файлд заасан нэр)
  • Нууц үг: 1 ("chap-secrets" файлд байгаа шиг)

Параметрүүдийг хадгалсны дараа та цонхонд шинэ VPN холболтыг харах болно. Холболт дээр хулганы зүүн товчийг дараад "Холбогдох"-ыг сонгоно уу . Амжилттай холболтын тохиолдолд та "Холбогдсон" төлөвийг харах болно.

VPN холболт нэмж байна

Тохиргоо хэсэгт та үйлчлүүлэгч болон серверийн дотоод хаягуудыг олох болно. "Хүрэх хаяг" талбарт гадаад серверийн хаягийг харуулна.

VPN серверийг өөрөө хэрхэн тохируулах вэ

Холбогдсон үед серверийн дотоод IP хаяг болох бидний тохиолдолд 172.16.0.1 нь бүх гарч буй пакетуудын анхдагч гарц болдог.

Гадаад IP хаягийг шалгана уу

Аливаа онлайн үйлчилгээг ашигласнаар та компьютерийн гадаад IP хаяг нь VPN серверийн IP хаягтай ижил байгаа эсэхийг шалгах боломжтой.

OpenVPN сервер

Серверийн тохиргоо

Одоо байгаа хэрэглэгчийн зөвшөөрлийн түвшинг дэмжицгээе, учир нь бидний цаашдын тохиргоонд root хандалт хэрэгтэй болно.

sudo -s

Шаардлагатай бүх пакетуудыг суулгана уу. Шифрлэлтийн түлхүүрүүдийг удирдахын тулд бидэнд “Easy-RSA” пакет хэрэгтэй болно.

apt install openvpn easy-rsa iptables-persistent

UDP протоколоор 1194 порт дээр ирж буй холболтыг зөвшөөрч, iptables дүрмийг хэрэгжүүлнэ үү.

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

sudo netfilter-persistent save

"Easy-RSA" багцаас хуулсан файлуудтай лавлах үүсгээд түүн рүү шилжинэ үү.

make-cadir ~/openvpn

cd ~/openvpn

Нийтийн түлхүүрийн дэд бүтцийг (PKI) үүсгэх.

./easyrsa init-pki

Гэрчилгээний албаны (CA) эх гэрчилгээг үүсгэнэ үү.

./easyrsa build-ca

Үүсгэх явцад нууц үг тохируулах, санахыг хүсэх болно. Та мөн асуултуудад хариулж, түлхүүр эзэмшигчийн талаарх мэдээллийг оруулах хэрэгтэй. Та дөрвөлжин хаалтанд өгсөн өгөгдмөл утгуудыг үлдээж болно. Оролтоо дуусгахын тулд "Enter" товчийг дарна уу.

Хувийн түлхүүр болон гэрчилгээний хүсэлтийг үүсгэх. Аргумент болгон дурын нэрийг зааж өгнө үү; Манай тохиолдолд энэ нь "vpn-сервер" юм.

./easyrsa gen-req vpn-server nopass

Common Name утгыг өгөгдмөл болгож үлдээнэ үү.

Үүсгэсэн серверийн гэрчилгээний хүсэлтэд гарын үсэг зурна уу.

./easyrsa sign-req server vpn-server

Энэ үе шатанд гарын үсгээ баталгаажуулахын тулд "тийм" гэж хариулж, үндсэн гэрчилгээ үүсгэх явцад үүсгэсэн нууц үгээ оруулна уу.

Диффи-Хеллман параметрүүдийг үүсгэх. Эдгээр параметрүүдийг сервер болон үйлчлүүлэгчийн хооронд аюулгүй түлхүүр солилцоход ашигладаг.

./easyrsa gen-dh

Шаардлагатай бүх файлыг үүсгэсэн. OpenVPN-н ажлын санд "түлхүүр" хавтас үүсгээд түлхүүрүүдийг хадгалаад тэнд үүсгэсэн файлуудыг хуулж авцгаая.

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-г ашиглан тохируулна уу iptables дүрэм. нэртэй файл үүсгэ nat дээр засварлахын тулд нээнэ үү /etc/openvpn/ сан.

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

Файлыг хадгалж, гүйцэтгэх боломжтой болго.

sudo chmod 755 /etc/openvpn/nat

Серверийн тохиргооны загварыг хуулна уу.

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

Засахын тулд “/etc/openvpn/server.conf” файлыг нээгээд , дараах мөрүүдийг агуулсан эсэхийг шалгаад шаардлагатай бол засварлана уу:

#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

Сервер дээр траффик дамжуулахыг идэвхжүүлнэ.

sudo sysctl -w net.ipv4.ip_forward=1

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

Тохиргоог хэрэгжүүлэхийн тулд OpenVPN-г эхлүүлнэ үү.

systemctl restart openvpn@server

Серверийн тохиргоо дууслаа!

Үйлчлүүлэгчийн тохиргоо

OpenVPN-ийн албан ёсны вэбсайт болох " https://openvpn.net " руу орж, "COMUNITY" хэсэг рүү очно уу.

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

Доош гүйлгээд үйлдлийн системийн хувилбарт суулгагчийг татаж аваарай. Манай тохиолдолд энэ нь Windows 11 ARM64 юм.

Пролистываем вниз и скачиваем инсталлятор нь своей хувилбарын үйлдлийн систем. Энэ нь Windows 11 ARM64-д зориулагдсан.

Бүх параметрүүдийг анхдагчаар үлдээж програмыг суулгана уу.

Дараагийн шатанд та дараах файлыг сервер дээр бэлтгэж, үйлчлүүлэгчийн компьютерт шилжүүлэх шаардлагатай болно.

  • нийтийн болон хувийн түлхүүрүүд;
  • гэрчилгээжүүлэх төвийн түлхүүрийн хуулбар;
  • тохиргооны файлын загвар.

Сервертэй холбогдож, давуу эрхээ дээшлүүлж, бидний үүсгэсэн лавлах руу очно уу "~/openvpn".

sudo -s

cd ~/openvpn

Үйлчлүүлэгчийн хувийн түлхүүр болон гэрчилгээний хүсэлтийг үүсгэнэ үү. Аргумент болгон дурын нэрийг зааж өгнө үү; манай тохиолдолд энэ нь "үйлчлүүлэгч1" юм.

./easyrsa gen-req client1 nopass

Үндсэн гэрчилгээ үүсгэх үед бидний тохируулсан нууц үгээ оруулаад Common Name утгыг анхдагч болгон үлдээнэ үү.

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

Үүсгэсэн үйлчлүүлэгчийн гэрчилгээний хүсэлтэд гарын үсэг зурна уу.

./easyrsa sign-req client client1

Энэ үе шатанд гарын үсгээ баталгаажуулахын тулд "тийм" гэж хариулж, үндсэн гэрчилгээ үүсгэх явцад үүсгэсэн нууц үгээ оруулна уу.

Дараа нь "тийм" гэж хүлээн зөвшөөрч, дараа нь баталгаажуулна уу.

Тохиромжтой болгох үүднээс гэрийн лавлахдаа 'client1' нэртэй хавтас үүсгэж, клиент компьютер руу шилжүүлэхэд зориулагдсан бүх файлыг түүн рүү хуулж авцгаая.

mkdir ~/client1

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

Клиентийн тохиргооны файлын загварыг ижил сан руу хуулж ав. Хуулах явцад файлын өргөтгөлийг “.ovpn” болгож өөрчил.

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

Хавтасны эзэмшигч болон бүх “~/client1/” файлуудыг клиентэд түгээх боломжтой болгохын тулд тэдгээрийг өөрчилнө үү. Манай тохиолдолд эзэмшигчийг “mihail” болгоё.

chown -R mihail:mihail ~/client1

Клиент компьютер руу очоод “~/client1/” хавтасны агуулгыг хуулж ав . Та үүнийг Putty-тэй хамт ирдэг “PSCP” хэрэгслийн тусламжтайгаар хийж болно .

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

Та “ca.crt” , “client1.crt” , “client1.key” гэсэн түлхүүр файлуудыг хүссэн газраа хадгалж болно . Манай тохиолдолд тэдгээр нь “c:\Program Files\OpenVPN\keys” хавтсанд байрладаг бөгөөд бид “client.ovpn” тохиргооны файлыг “c:\Program Files\OpenVPN\config” хавтас руу оруулдаг.

Одоо клиентийг тохируулах ажилдаа оръё. “c:\Program Files\OpenVPN\config\client.ovpn” файлыг текст засварлагч дээр нээгээд дараах мөрүүдийг засварлана уу:

#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

Үлдсэн хэсгийг нь хөндөхгүй орхи.

Файлыг хадгалаад “OpenVPN GUI” клиент програмыг ажиллуулна уу.

VPN тохиргоо дууссан

Даалгаврын мөрөнд байгаа аппликейшны дүрс дээр хулганы баруун товчийг дараад "Холбох" гэснийг сонгоно уу . Хэрэв холболт амжилттай болвол дүрс ногоон өнгөтэй болно.

Таны нийтийн IP хаяг өөрчлөгдсөн бөгөөд одоо серверийн IP хаягтай ижил байгаа эсэхийг шалгахын тулд дурын онлайн үйлчилгээг ашиглана уу.

❮ Өмнөх нийтлэл FTP серверийн тохиргоо
Дараагийн нийтлэл ❯ Сервер дээрээ Wireguard VPN-г хэрхэн тохируулах вэ

VPS-ийн талаар биднээс асуу

Бид таны асуултанд өдөр, шөнийн аль ч цагт хариулахад бэлэн байна.