База Едноставни упатства за работа со услугата 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 . Прво, проверете го името на вашиот надворешен мрежен интерфејс со извршување на командата „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

Во следната фаза, ќе треба да креирате запис за клиентските врски. Да речеме дека сакате да додадете корисник „vpnuser“ со лозинка „1“ и да дозволите динамичко адресирање за него. Отворете ја датотеката „/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 адреса на компјутерот сега е иста како и IP адресата на вашиот VPN сервер.

OpenVPN сервер

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

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

sudo -s

Инсталирајте ги сите потребни пакети. Ќе ни треба пакетот „Easy-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/“ за да можете да ги дистрибуирате до клиентот. Во нашиот случај, да го направиме „mihail“ сопственик.

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

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

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

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