Бүгүнкү күндө 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 шилтеме көрсөтүү" - кийинки кадамда сизге керек болот. Биздин ат "ens3".
Бардык локалдык тармак түйүндөрү үчүн тышкы интерфейсиңизде тармак дарегин которууну иштетиңиз.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Сервериңиздин интерфейсинин чыныгы атын көрсөтүшүңүз керек экенин эске алыңыз, ал биздикинен башкача болушу мүмкүн.
Демейки боюнча, iptables тарабынан түзүлгөн бардык эрежелер серверди кайра күйгүзгөндөн кийин баштапкы абалга келтирилет. Мунун алдын алуу үчүн, колдонуу "iptables-туруктуу" пайдалуу. Төмөнкү пакетти орнотуу:
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
Кийинки этапта сиз кардар байланыштары үчүн рекорд түзүшүңүз керек болот. Сиз колдонуучуну кошкуңуз келет дейли "vpnuser" сыр сөз менен «1» жана ага динамикалык кайрылууга мүмкүндүк берет. Файлды ачыңыз "/etc/ppp/chap-secrets" жана файлдын аягында колдонуучунун параметрлери менен төмөнкү сапты кошуңуз:
vpnuser pptpd 1 *
"pptpd" value - бул биз файлда көрсөткөн кызматтын аталышы "pptpd параметрлери". Ордуна "*" туруктуу IP дарегин көрсөтө аласыз. Натыйжада, файл "Сырлар" мындай болушу керек:
Орнотууларды колдонуу үчүн баштапкы абалга келтириңиз 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
Бардык керектүү пакеттерди орнотуңуз. Бизге керек болот "Оңой-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
Каталогдун ээсин жана бардык файлдарды өзгөртүңүз “~/клиент1/” аларды кардарга тарата билуу. жасайбыз "михайл" биздин учурда ээси.
chown -R mihail:mihail ~/client1
Кардардын компьютерине барып, анын мазмунун көчүрүү “~/клиент1/” папка. Сиз мунун жардамы менен жасай аласыз "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".
Тапшырма панелиндеги колдонмо сөлөкөтүн оң баскыч менен чыкылдатып, тандаңыз "Туташуу". Эгер байланыш ийгиликтүү болсо, сөлөкөт жашыл түскө айланат.
Коомдук IP дарегиңиз өзгөргөнүнө жана сервердин IP дареги менен бирдей экенине ынануу үчүн каалаган онлайн кызматты колдонуңуз.