Бүгүнкү күндө 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ге өзгөртүңүз.
Өзгөртүүлөрдү компьютерди өчүрбөстөн колдонуу үчүн, буйрукту иштетиңиз
sudo sysctl -p /etc/sysctl.conf
Тармак дарегин которуу iptables аркылуу конфигурацияланат . Алгач, "ip link show" буйругун иштетип, тышкы тармак интерфейсиңиздин атын текшериңиз - ал сизге кийинки кадамда керек болот. Биздин атыбыз "ens3".
Бардык локалдык тармак түйүндөрү үчүн тышкы интерфейсиңизде тармак дарегин которууну иштетиңиз.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Сервериңиздин интерфейсинин чыныгы атын көрсөтүшүңүз керек экенин эске алыңыз, ал биздикинен башкача болушу мүмкүн.
Демейки боюнча, iptables тарабынан түзүлгөн бардык эрежелер сервер кайра жүктөлгөндөн кийин баштапкы абалга келтирилет. Мунун алдын алуу үчүн, "iptables-persistent" утилитасын колдонуңуз. Төмөнкү пакетти орнотуңуз:
sudo apt install iptables-persistent
Орнотуу процессинин кайсы бир учурунда, сиз учурдагы iptables эрежелерин сактоону сунуштаган конфигурация терезесин көрөсүз. Эрежелер мурунтан эле аныкталгандыктан, жөн гана ырастап, "Ооба" баскычын эки жолу басыңыз. Эми сервер кайра жүктөлгөндөн кийин эрежелер автоматтык түрдө колдонулат.
PPTP сервери
Server тарам
Пакетти орнотуу:
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” файлы төмөнкүдөй көрүнүшү керек:
Жөндөөлөрдү колдонуу үчүн, pptpd кызматын баштапкы абалга келтирип, аны автоматтык түрдө жүктөөгө кошуңуз.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Сервер конфигурациясы аяктады.
Кардардын конфигурациясы
"Баштоо" - "Орнотуулар" - "Тармак жана Интернет" - "VPN" бөлүмүн ачып , "VPN туташуусун кошуу" баскычын чыкылдатыңыз.
Ачылган терезеде туташуу параметрлерин киргизип, "Сактоо" баскычын чыкылдатыңыз.
- VPN камсыздоочу: "Windows (курулган)"
- Туташуу аты: “vpn_connect” (сиз каалаган аталышты тандай аласыз)
- Сервердин аты же дареги: (сервердин тышкы IP дарегин көрсөтүңүз)
- VPN түрү: "Авто"
- Кирүү маалыматынын түрү: "Колдонуучунун аты жана сырсөз"
- Колдонуучунун аты: vpnuser (сервердеги "чап сырлары" файлында көрсөтүлгөн аталыш)
- Купуя сөз: 1 ("Chap-secrets" файлындагыдай)
Параметрлерди сактагандан кийин, терезеде жаңы VPN туташуусун көрөсүз. Туташууну сол баскыч менен чыкылдатып, "Туташуу" дегенди тандаңыз. Ийгиликтүү туташуу болгон учурда, "Туташты" абалын көрөсүз.
"Опциялар" бөлүмүндө кардардын жана сервердин ички даректерин таба аласыз. "Багытталган дарек" талаасында тышкы сервердин дареги көрсөтүлөт.
Туташкан учурда, биздин учурда сервердин ички IP дареги 172.16.0.1 бардык чыгуучу пакеттер үчүн демейки шлюз болуп калат.
Каалаган онлайн кызматты колдонуп, компьютердин тышкы IP дареги VPN сервериңиздин IP дареги менен бирдей экенине ынанууга болот.
OpenVPN сервери
Server тарам
Келгиле, учурдагы колдонуучунун уруксаттар деңгээлин көтөрөлү, анткени биздин мындан аркы конфигурациябыз үчүн бизге тамыр мүмкүнчүлүгү керек болот.
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
Бул кадамда колду ырастоо үчүн "ооба" деп жооп бериңиз, андан кийин түпкү сертификатты түзүү учурунда түзүлгөн сырсөздү киргизиңиз.
Diffie-Hellman параметрлерин түзүү. Бул параметрлер сервер менен кардар ортосунда коопсуз ачкыч алмашуу үчүн колдонулат.
./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 ", "КООМЧУЛУК" бөлүмүнө өтүңүз.
Ылдый сыдырып, операциялык тутумуңуздун версиясы үчүн орнотуучуну жүктөп алыңыз. Биздин учурда, бул Windows 11 ARM64.
Демейки боюнча бардык параметрлерди калтырып, колдонмону орнотуңуз.
Кийинки этапта сиз серверде төмөнкү файлды даярдап, аларды кардар компьютерине өткөрүп беришиңиз керек:
- ачык жана купуя ачкычтар;
- күбөлүк борборунун ачкычынын көчүрмөсү;
- конфигурация файлынын шаблону.
Серверге туташыңыз, артыкчылыктарды жогорулатыңыз жана түзүлгөн каталогубузга өтүңүз "~/openvpn".
sudo -s
cd ~/openvpn
Кардар үчүн купуя ачкычты жана сертификат сурамын жаратыңыз. Аргумент катары ыктыярдуу ысымды көрсөтүңүз; биздин учурда, бул "кардар1".
./easyrsa gen-req client1 nopass
Түпкү сертификатты түзүүдө биз койгон сырсөздү киргизиңиз жана демейки катары 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" кардар тиркемесин ишке киргизиңиз.
Тапшырмалар тилкесиндеги колдонмонун сүрөтчөсүн оң баскыч менен чыкылдатып, "Туташуу" дегенди тандаңыз . Эгер туташуу ийгиликтүү болсо, сүрөтчө жашыл түскө айланат.
Коомдук IP дарегиңиз өзгөргөнүнө жана сервердин IP дареги менен бирдей экенине ынануу үчүн каалаган онлайн кызматты колдонуңуз.