База Едноставни упатства за работа со услугата Profitserver
главните База Поставување VPN сервер на Linux: PPTP или OpenVPN?

Поставување VPN сервер на Linux: 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. Прво, проверете го името на вашиот надворешен мрежен интерфејс што ја извршува командата „ИП-линк шоу“ - ќе ви треба на следниот чекор. Нашето име е „ens3“.

шоу за врска со IP

Овозможете превод на мрежна адреса на вашиот надворешен интерфејс за сите локални мрежни јазли.

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

Забележете дека треба да го наведете вистинското име на интерфејсот на вашиот сервер, тој може да се разликува од нашиот.

Стандардно, сите правила создадени од iptables се ресетираат по рестартирање на серверот. За да го спречите тоа, користете „iptables-упорно“ корисност. Инсталирајте го следниот пакет:

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-опции“. Повеќето од параметрите се стандардно поставени.

#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

Во следната фаза, ќе треба да креирате запис за врски со клиенти. Да речеме дека сакате да додадете корисник „vpnuser“ со лозинка "1" и овозможи динамично обраќање за него. Отворете ја датотеката „/etc/ppp/chap-secrets“ и додадете ја следната линија со параметрите на корисникот на крајот од датотеката:

vpnuser pptpd 1 *

„pptpd“ вредност е името на услугата што ја наведовме во датотеката „pptpd-опции“. Наместо "*" можете да наведете фиксна IP адреса. Како резултат, датотеката „Поглавје тајни“ треба да изгледа вака:

Поставување на VPN сервер

За да ги примените поставките, ресетирајте го pptpd услуга и додајте ја во автоматско вчитување.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Конфигурацијата на серверот е завршена.

Конфигурација на клиентот

Отворено „Почеток“ - "Подесувања" - Мрежа и Интернет - „ВПН“ и кликнете на „Додај VPN конекција“

Поставете клиент за VPN конекција

Внесете ги параметрите за поврзување во отворениот прозорец и кликнете „Зачувај“

  • VPN провајдер: „Windows (вграден)“
  • Име на врската: „vpn_connect“ (можете да изберете кое било име)
  • Име или адреса на серверот: (наведете ја надворешната IP адреса на серверот)
  • Вид VPN: „Автоматски“
  • Вид на информации за најавување: „Корисничко име и лозинка“
  • Корисничко име: vpnuser (името наведено во датотеката „chap-secrets“ на серверот)
  • Лозинка: 1 (како во датотеката „chap-secrets“)

Откако ќе ги зачувате параметрите, во прозорецот ќе ја видите новата VPN конекција. Лево-клик на врската и изберете „Поврзи се“. Во случај на успешна врска, ќе видите „Поврзано“ статус.

Додавање VPN конекција

Во Опции, ќе најдете внатрешни адреси на клиентот и серверот. Поле „Адреса на дестинација“ ја прикажува адресата на надворешниот сервер.

Како сами да поставите VPN сервер

Кога е поврзан, внатрешната IP адреса на серверот, 172.16.0.1 во нашиот случај, станува стандардна порта за сите појдовни пакети.

Проверете ја надворешната IP-адреса

Користејќи која било онлајн услуга, можете да бидете сигурни дека надворешната IP адреса на компјутерот сега е иста како и IP адресата на вашиот VPN сервер.

OpenVPN сервер

Конфигурација на серверот

Ајде да го промовираме нивото на дозволи на тековниот корисник бидејќи за нашата понатамошна конфигурација ќе ни треба root пристап.

sudo -s

Инсталирајте ги сите потребни пакети. ќе ни треба „Лесно-RSA“ пакет за управување со клучеви за шифрирање.

apt install openvpn easy-rsa iptables-persistent

Дозволете дојдовни конекции на портата 1194 преку UDP протоколот и применете ги правилата на 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-server“.

./easyrsa gen-req vpn-server nopass

Оставете ја вредноста „Заедничко име“ како стандардна.

Потпишете го генерираното барање за сертификат на серверот.

./easyrsa sign-req server vpn-server

Во овој чекор, одговорете со „да“ за да го потврдите потписот, а потоа внесете ја лозинката што беше креирана за време на генерирањето на root сертификатот.

Генерирај Diffie-Hellman параметри. Овие параметри се користат за безбедна размена на клучеви помеѓу серверот и клиентот.

./easyrsa gen-dh

Сите потребни датотеки се генерирани. Ајде да креираме папка „keys“ во работниот директориум на 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“, одете на „ЗАЕДНИЦА“ секција.

Заходим на официјалната страница на проектот „https://openvpn.net“, се наоѓа во разделот „COMUNITY“.

Скролувајте надолу и преземете го инсталерот за верзијата на вашиот оперативен систем. Во нашиот случај, тоа е Windows 11 ARM64.

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

Инсталирајте ја апликацијата оставајќи ги сите параметри стандардно.

Во следната фаза ќе треба да ја подготвите следната датотека на серверот и да ги пренесете на клиентскиот компјутер:

  • јавни и приватни клучеви;
  • копија од клучот од центарот за сертификација;
  • шаблон за конфигурациска датотека.

Поврзете се со серверот, подигнете ги привилегиите и одете до нашиот креиран директориум "~/openvpn".

sudo -s

cd ~/openvpn

Генерирајте приватен клуч и барање за сертификат за клиентот. Како аргумент, наведете произволно име; во нашиот случај, тоа е „client1“.

./easyrsa gen-req client1 nopass

Внесете ја лозинката што ја поставивме при креирањето на root сертификатот и оставете ја вредноста Common Name како стандардна.

Заедничко име по умолчанию.

Потпишете го генерираното барање за сертификат на клиентот.

./easyrsa sign-req client client1

Во овој чекор, одговорете со „да“ за да го потврдите потписот, а потоа внесете ја лозинката што беше креирана за време на генерирањето на root сертификатот.

На овој начин го отфрли „да“ за подверзија на подписи, откако ќе го даде својот пароль, кој создаде корневого сертификат.

За погодност, да креираме папка со име „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/“ да може да ги дистрибуира до клиентот. Ајде да направиме „Михаил“ сопственикот во нашиот случај.

chown -R mihail:mihail ~/client1

Одете на клиентскиот компјутер и копирајте ја содржината на „~/client1/“ папка. Можете да го направите тоа со помош на „PSCP“ корисност, што оди со Putty.

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 адресата на серверот.

❮ Претходна статија Како да поставите Wireguard VPN на вашиот сервер
Следна статија ❯ Поставување на FTP сервер

Прашајте не за VPS

Секогаш сме подготвени да одговориме на вашите прашања во секое време од денот или ноќта.