OpenVPN არის პროგრამული პაკეტი, რომელიც საშუალებას გაძლევთ დაიცვას მომხმარებლის ტრაფიკი "ჩამორთმევა" მიერ დაშიფრული მონაცემთა გადაცემით კლიენტის აპარატის სერვერთან OpenVPN- ის დამონტაჟებით. დიდი სარგებელისთვის გამოიყენეთ საზოგადოებრივი WiFi- ის წვდომის წერტილები, სადაც ინფორმაცია შეიძლება მესამე მხარის მიერ მოხდეს. ან იმ შემთხვევაში, როდესაც თქვენი IP დაბლოკილია გარკვეულ საიტზე და თქვენ უნდა უსაფრთხოდ გადალახოს ეს შეზღუდვა.
სერვერზე OpenVPN- ის ინსტალაციისა და კონფიგურაციის გარდა, თქვენ უნდა შეძლოთ კლიენტის კონფიგურაცია კომპიუტერიდან, სადაც Windows გამოყენებული იქნება როგორც ოპერაციული სისტემა.
სტანდარტული პაკეტის მენეჯერის გამოყენებით, დააინსტალირეთ openvpn.
# aptitude install openvpn
სტატიის შინაარსი:
- Создание сертификатов 1 სერტიფიკატების შექმნა
- Настройка сервера 2 Server Setup
- Перенаправление трафика через OpenVPN 3 Traffic გადამისამართების მეშვეობით OpenVPN
- OpenVPN клиент на Windows 4 OpenVPN კლიენტი Windows- ზე
- OpenVPN совместно с NetworkManager 5 OpenVPN- ის ქსელით
სერტიფიკატის შექმნა
OpenVPN აუცილებლად მოითხოვს სერვერებისა და კლიენტების სერტიფიკატების თაობას. ეს არის ლოგიკური, რადგან კლიენტიდან სერვერზე უნდა დაშიფრულიყო.
ნავიგაცია openvpn საქაღალდეში:
# cd / etc / openvpn
ჩვენ გამოვიყენებთ გასაღებები მარტივად.
შექმენით საქაღალდე კონფიგურაციის ფაილებთან და სერტიფიკატის დამწერლობის სკრიპტებთან:
# გააკეთე კადირ რაზა # cd rsa
გახსენით vars კონფიგურაციის ფაილი და შეცვალოთ პარამეტრები:
ექსპორტი KEY_COUNTRY = "აშშ" ექსპორტი KEY_PROVINCE = "CA" ექსპორტი KEY_CITY = "სანფრანცსკო" ექსპორტი KEY_ORG = "Fort-Funston" ექსპორტი KEY_EMAIL = "me@myhost.mydomain"
KEY_COUNTRY - შეიყვანეთ ქვეყნის კოდი (RU, UA და ა.შ.);
KEY_PROVINCE - ეს საქონელი არ არის შესაბამისი, თუ არ ცხოვრობთ შეერთებულ შტატებში. :) თქვენ შეგიძლიათ შეცვალოთ XX;
KEY_CITY - თქვენი ქალაქი, სადაც თქვენ ცხოვრობთ;
KEY_EMAIL - თქვენი ელექტრონული ფოსტის მისამართი.
და ასევე uncomment ექსპორტის KEY_CN ხაზი, რომლის ღირებულება განსაზღვრავს სერვერის სახელი:
ექსპორტი KEY_CN = "example.com"
ყველა ცვლადი ივსება ლათინურ ენაზე.
შეინახეთ ფაილი და აწარმოებს:
# vars
შემდეგ დაიწყეთ ძველი სერტიფიკატების წაშლა:
#
ძიების სერთიფიკატის შექმნა:
# ./build-ca
თუ error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198
სერტიფიკატის გენერირება მოხდა შეცდომის error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198
, დაამატეთ ხაზი Vars ფაილი:
ექსპორტი KEY_ALTNAMES = "რაღაც"
და შემდეგ ხელახლა აწარმოებს წინა ბრძანებებს: vars, ./clean-all, ./build-ca.
შემდეგი ნაბიჯი არის გასაღები და სერვერის სერტიფიკატის შექმნა.
# ./build-key- სერვერის სერვერი
შემდეგ კი კლიენტისთვის სერთიფიკატი და გასაღები შექმნა:
# ./build-key კლიენტი
გთხოვთ, გაითვალისწინოთ: თითოეული კლიენტისთვის თქვენ უნდა მოახდინოთ საკუთარი სერთიფიკატი და გასაღები. თქვენ უბრალოდ უნდა მიუთითოთ სხვადასხვა სახელები (კლიენტის ნაცვლად) და კონფიგურაციის ფაილებში მათთვის ბილიკების შეცვლა. ამავდროულად, შეგიძლიათ დაიცვას კლიენტების გასაღებები პაროლით, ამისათვის გამოიყენეთ ბრძანება build-key- პასის ნაცვლად build-key.
შემდეგი, თქვენ უნდა შექმნათ Diffie-Hellman გასაღები გამოიყენოს Forward Secrecy:
# ./build-dh
და გასაღები tls ავტორიზაციის:
# openvpn --genkey --secret /etc/openvpn/ta.key
ახლა თქვენ უნდა დააკოპიროთ სერთიფიკატები და გასაღებები OpenVPN პარამეტრების საქაღალდეში:
# cp keys / ca.crt keys / server.crt keys / server.key გასაღებები / dh2048.pem / etc / openvpn /
და ასევე დააყენა მათ უფლებები, რომელიც საშუალებას იძლევა კითხულობს და იცვლება მხოლოდ მათი მფლობელი.
# chmod 0600 /etc/openvpn/ca.crt /etc/openvpn/server.crt /etc/openvpn/server.key /etc/openvpn/dh2048.pem /etc/openvpn/ta.key
დარწმუნდით, რომ თქვენს კომპიუტერში კოპირება, მაგალითად, დესკტოპის, გასაღებები საქაღალდედან, კლიენტების დამაკავშირებლად საჭირო გასაღები : client.crt , client.key , ca.crt , ta.key .
ეს ასრულებს სერტიფიკატის მომზადების პროცესს.
სერვერი კონფიგურაცია
In / usr / share / doc / openvpn / დირექტორია არსებობს მაგალითი ფაილი გახსნის OpenVpn სერვერზე. დააკოპირეთ / etc / openvpn / directory და unzip:
cd / etc / openvpn; cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz / etc / openvpn /; gunzip server.conf.gz
ახლა ჩვენ განიხილავს საჭირო პარამეტრების openvpn მუშაობა.
პორტი, რომელზეც Openvpn მიიღებს კავშირებს. By default, 1194. ვურჩევ მას შეცვალოს, რათა დაიმალოს იგი. თქვენ შეგიძლიათ გაეცნოთ openvpn ვებ-სერვერის ქვეშ, რომელიც განსაზღვრავს პორტს 80-ს.
პორტი 20100
რეგისტრაცია გზავნილების სერტიფიკატის ფაილების და სერვერის გასაღების შესახებ.
ca ca.crt სერვერი სერვერი გასაღები სერვერი
გზას გასაღები Diffie-Hellman.
dh dh2048.pem
ორივე ბილიკები შედარებით / etc / openvpn დირექტორია (თუ ფაილი მდებარეობს მასში) და აბსოლუტური შეიძლება იყოს მითითებული.
იპოვეთ და შეუკვეთეთ ხაზი:
ბიძგი "გადამისამართება-კარიბჭე def1 bypass-dhcp"
საჭიროა ინტერნეტის ხელმისაწვდომობა OpenVPN სერვერის საშუალებით. თუ ეს არ არის გამოუყენებელი, ქსელში მხოლოდ კომპიუტერი ხელმისაწვდომი იქნება.
თქვენ ასევე უნდა მიუთითოთ DNS სერვერები კლიენტებთან დაკავშირების მიზნით.
დააყენებს "dhcp-option DNS 213.183.57.55" დააყენებს "dhcp- ვარიანტი DNS 87.98.175.85"
სერვერის ადგილმდებარეობის მიხედვით, შეგიძლიათ აირჩიოთ სხვა დნმ-სერვერები, მაგალითად, პროექტის OpenNIC .
შემდეგი, მოძებნა და uncomment tls-auth პარამეტრი.
tls-auth ta.key 0
ყურადღება! კლიენტის პარამეტრებში, ამ პარამეტრის ბოლო ციფრი უნდა შეიცვალოს 1 -tls-auth ta.key 1 .
მხოლოდ ქვემოთ კონფიგურაციის ფაილი შემდეგნაირად ჩამონათვალი ხელმისაწვდომი ciphers. გამოაცხადეთ AES-128-CBC ცipher.
cipher AES-128-CBC # AES
საჭიროების შემთხვევაში, ის შეიძლება შეიცვალოს AES-256-CBC- ით . კლიენტის კონფიგურაციის ფაილში, საიდუმლო უნდა იყოს იდენტური სერვერზე.
ასევე დაამატეთ ავტო პარამეტრი. თავდაპირველად, 160-bit sha1 გასაღებები გამოიყენება ავტორიზაციისთვის, მაგრამ sha1 ალგორითმი აღიარებულია, როგორც დაუცველი. გამოყენებული იქნება შემდეგი პარამეტრის მითითებით, გამოყენებული იქნება SHA512 გასაღებები 512 ბიტის სიგრძით.
auth SHA512
ისევე როგორც პარამეტრი tls-version-min, რომელიც განსაზღვრავს ვერსია tls გამოიყენება. ამ შემთხვევაში, უახლესი ვერსია 1.2. ყურადღება! ქსელის მენეჯერი ამ პარამეტრს მხარს არ უჭერს (წერის დროს). ამიტომ, თუ თქვენ აპირებთ VPN სერვერთან დაკავშირებას ქსელის მენეჯერის მეშვეობით, მაშინ ეს პარამეტრი სერვერზე არ არის მითითებული.
tls- ვერსია-მინ 1.2
OpenVPN არ უნდა იყოს გაშვებული როგორც root. აქედან გამომდინარე, ხაზების გაერთიანება:
არავის არ აქვს ჯგუფი nogroup
ეს არ იქნება ზედმეტია იმისათვის, რომ გახსენით OpenVPN- ის ჟურნალი. განსაკუთრებით, პირველად გამოყენების შემდეგ tuning ეძებს შეცდომები და ა.შ.
log /var/log/openvpn.log
დატოვეთ ყველა სხვა პარამეტრი /etc/openvpn/server.conf კონფიგურაციის ფაილი default values. ეს ასრულებს OpenVPN სერვერის კონფიგურაციას.
გააქტიურება openvpn ბრძანებით:
# systemctl enable openvpn
და გადატვირთეთ:
# სერვისი openvpn გადატვირთვა
ასევე სასარგებლოა შეცდომების შესამოწმებლად შეცდომები.
მოძრაობის გადატვირთვა OpenVPN- ის საშუალებით
სერვერზე openvpn- ის საშუალებით ინტერნეტთან წვდომისთვის, ამისათვის საჭიროა ამის გაკეთება.
1. კონფიგურაცია sysctl
კონსოლში აწარმოებს ბრძანება:
# sysctl net.ipv4.ip_forward
თუ ბრძანების გამომუშავება ტოლია net.ipv4.ip_forward = 1 , მაშინ არაფერი შეცვლის საჭიროებას. თუ ცვლადის ღირებულება 0 არის 0, მაშინ შემდეგი ხაზი უნდა დაემატოს /etc/sysctl.conf ფაილი:
net.ipv4.ip_forward = 1
და განაახლეთ წესები ბრძანებით:
# sysctl -p
2. iptables კონფიგურაცია
ალტერნატიულად, აწარმოებს შემდეგ ბრძანებებს კონსოლში:
# iptables -A FORWARD -i eth0 -o tun0 -m სახელმწიფო - სტაბილური დამონტაჟდა, ამავე თემაზე # iptables -A FORWARD- ის 10.8.0.0/24 -o eth0 -j ACCEPT # iptables -t nat-a POSTROUTING -s 10.8.0.0/24 -o eth0 -j masquerade
ამგვარად, ჩვენ შეგვიძლია დავუშვათ გადაზიდვა OpenVPN სერვერზე ქვენეტისთვის 10.8.0.0 უკვე არსებული კავშირების ფარგლებში.
თუ openvpn კლიენტს სერვერის კონკრეტული IP მისამართი უნდა მიენიჭოს, მაშინ წინა ბრძანების ნაცვლად წინა პიტების სიიდან iptables- სთვის, თქვენ უნდა აწარმოოთ ეს:
-A POSTOUTING- ს 10.8.0.0/24 -o eth0 -j SNAT - დან 127.0.0.1
სადაც პარამეტრის - წყაროს შემდეგ, უნდა მიუთითოთ გარე IP სერვერი.
OpenVPN კლიენტი Windows- ზე
გახსენით Openvpn კლიენტის შექმნა Windows- ზე. აქ ყველაფერი მარტივია: კლიენტის ოფიციალური საიტიდან გადმოტვირთვა , ინსტალაცია, კონფიგურაციის ფაილი შექმნა და გაშვება.
უნდა აღინიშნოს, რომ აუცილებელია Windows- ზე openvpn- ის გახსნას ადმინისტრატორის უფლებები, თუ ანგარიშების კონტროლი აქტიურია.
თუ არ შეცვლილა საინსტალაციო გზა, მაშინ თქვენი კომპიუტერის კონფიგურაციის ფაილების მაგალითები განთავსებულია C: \ Program Files \ OpenVPN \ sample-config- ში . დააკოპირეთ client.ovpn ფაილი აქედან და განათავსეთ იგი C: \ Program Files \ OpenVPN \ config- ის დირექტორიაში.
შეამოწმეთ კლიენტისთვის შექმნილი სერტიფიკატები? მათ ასევე უნდა გადმოწერილი სერვერიდან და გადაწერილი ამ დირექტორიაში.
გახსენით client.ovpn კონფიგურაციის ფაილი და იპოვოთ დისტანციური My-server-1 1194 პარამეტრი. ჩემი სერვერის ნაცვლად, მიუთითეთ თქვენი სერვერის IP ან დომენი. შემდეგ პორტი, რომელიც ადრე შეიცვალა. შედეგად, ხაზი შეიძლება ასე გამოიყურებოდეს:
დისტანციური 192.168.0.1 20100
შემდეგი, თქვენ უნდა მიუთითოთ სერტიფიკატის გზა, რომელიც თქვენ სერვერზე გენერირდებიან. თითოეული კლიენტისათვის, გასაღები შექმნილი უნიკალური სახელით, რომელიც კლიენტის ნაცვლად უნდა აღინიშნოს.
ca ca.crt სერტიფიკატი კლიენტი გასაღები კლიენტი
თქვენ ასევე უნდა აღინიშნოს პარამეტრი, რომელიც განსაზღვრავს tls-key- ს გზას.
tls-auth ta.key 1
მანამდე უკვე ითქვა, რომ სერვერზე ბოლო ციფრი უნდა იყოს 0-ზე, კლიენტზე - 1.
და ბოლო პარამეტრების არიან cipher, რომ თქვენ დაინსტალირებული სერვერზე.
cipher AES-128-CBC auth SHA512 tls- ვერსია-მინ 1.2
ეს არის ყველაფერი, რაც საჭიროა კლიენტის კონფიგურაციისთვის. სცადეთ გაშვებული OpenVPN კლიენტი და დაუკავშირდეთ თქვენს სერვერს. აუცილებელი კავშირი ინფორმაცია გამოჩნდება openvpn GUI- ში.
OpenVPN- სთან NetworkManager- თან
დააყენეთ გრაფიკული ინტერფეისი ქსელის მენეჯერისთვის.
# aptitude დააყენოთ ქსელის მენეჯერი- openvpn-gnome
და გადატვირთეთ.
# მომსახურების ქსელის მენეჯერი გადატვირთვა
ჩვენ გადაწერეთ კლიენტისთვის გენერირებული სერთიფიკატები კომპიუტერზე თვითნებური საქაღალდეში. მაგალითად, /home/user/.openvpn/.
დააჭირეთ მაუსის მარჯვენა ღილაკს ქსელის მენეჯერის ხატულაზე, აირჩიეთ პუნქტი "შეცვალეთ კავშირები", დაამატეთ "OpenVPN" ტიპის ახალი კავშირი.
მიუთითეთ:
- კავშირის სახელი
- Gateway (დომენი ან სერვერი IP)
- ტიპი: სერთიფიკატები
მომხმარებლის სერტიფიკატი არის სერტიფიკატი, რომელიც ჩვენ კლიენტისთვის კლიენტისთვის (კლიენტისთვის) წარმოიქმნა.
CA სერთიფიკატი - ca.crt ფაილი.
პირადი გასაღები არის კლიენტის გასაღები (კლიენტი.
დააჭირეთ "Advanced" ღილაკს. ფანჯარაში, რომელიც იხსნება "ზოგადი" tab- ში, თქვენ უნდა შეცვალოთ რამდენიმე ელემენტი.
- გამოიყენეთ სხვადასხვა კარიბჭე პორტი (სერვერის შექმნისას არასტანდარტული მითითებით)
- გამოიყენეთ lzo შეკუმშვა
"უსაფრთხოების" ჩანართზე გადართვა. აირჩიეთ საიდუმლო, როგორც სერვერის პარამეტრებში. როგორც ღირებულების hmac ავტორიზაციის პარამეტრი, თქვენ უნდა მიუთითოთ ალგორითმი, როგორც auth ღირებულება სერვერზე. სტატიაში ჩვენ შევარჩიეთ SHA512.
გახსენით TLS ავთენტიფიკაციის ჩანართი და მონიშნეთ შემდეგი ელემენტი:
- შემოწმება თანხმობა ...
- გამოიყენეთ დამატებითი TLS ავთენტიფიკაცია
უკანასკნელი პარამეტრისთვის, დააკონკრეტეთ ta.key ფაილების გზა და აირჩიეთ 1. როგორც ქვემოთ ჩამოთვლილი სიიდან ძირითადი მიმართულება, ასევე Windows- ის კონფიგურაციის ფაილი.
კავშირის შენახვა და დაკავშირება. :)
უბრალოდ, ჩვენ ვხედავთ, რომ NM წერს სისტემაში შესვლისას:
# tail -f / var / log / syslog
მადლობა სტატიისთვის. ძალიან სასარგებლო.
შესანიშნავი სტატია, ავტორი ძვირფასო პიროვნება!
ავტორი, როგორც მე არ ვცდილობდი, რომ არ გაეცათ იმის გასაგებად, თუ რატომ ვერ ვუკავშირდები ჩემს კლიენტებს, openvpn არ აკეთებს ჟურნალს! მითხარი რა გავაკეთო!
ასე რომ, თქვენ უნდა შეამოწმოთ კლიენტთა ჟურნალი. OpenVPN GUI ასეთი შესვლა აუცილებლად მივყავართ. მარჯვენა ღილაკით -> აჩვენე შესვლა.
იქნებ მითითება არ არის ინსტრუქციიდან ...
მადლობა, მაგრამ როგორც აღმოჩნდა, აუცილებელი იყო ამის გაკეთება #openvpn /opt/vp/vp.conf და აპლიკაცია hooked up config ფაილი - ჟურნალი წავიდა - მე შევხედე ყველაფერს და გააკეთა VPN მუშაკი.
აცნობიერებენ სახელმძღვანელოს სახელმძღვანელოს ავტორი. როგორ გააკეთოს გვირაბი სერვერს შორის სერბი და მირიტოკომი. შეაერთეთ მათი ადგილობრივი ქსელი. 2 ბინა.
მადლობა პოსტისთვის. ჯერ კიდევ დაინტერესებულია მობილური კლიენტების შექმნისთვის, როგორიცაა აქ: http://sysadm.pp.ua/linux/shifrovanie/openvpn-client-server.html . შეგიძლიათ გთხოვოთ კარგი და მოსახერხებელი მობილური OpenVPN კლიენტი?
ჩემს Android სმარტფონზე მე ოფიციალურ კლიენტს ვიღებდი OpenVpn- დან "Openvpn connect" - ის მეშვეობით https://play.google.com/store/apps/details?id=net.openvpn.openvpn
ეს საკმაოდ ადვილია. გენერირებული ფაილების კლიენტი უნდა ატვირთული ნებისმიერი საქაღალდეში ტელეფონის ფლეშ დრაივი. შემდეგ აწარმოეთ Openvpn Connect, აირჩიეთ "იმპორტი" მენიუში, შემდეგ "იმპორტი პროფილი SD ბარათიდან". ფაილი მენეჯერი გაიხსნება, სადაც თქვენ უნდა აირჩიოთ *. Ovpn ფაილი, დააჭირეთ ღილაკს "აირჩიეთ". წარმატებული იმპორტის დადასტურებისას ეკრანზე გამოჩნდება შეტყობინება "პროფილი იმპორტირებული".
დაკავშირება, დააჭირეთ ღილაკს "დაკავშირება". ეს ყველაფერი. :)
სხვა კლიენტებთან დაკავშირებით არ ვიცი, მაგრამ ეს დიდი სამუშაოა.
PS თუ თქვენ აპირებთ დაკავშირება კომპიუტერიდან და ტელეფონიდან ერთდროულად, მაშინ ამ უკანასკნელს უნდა გენერირება თქვენი საკუთარი გასაღები და სერტიფიკატი.
სტატიამ ზოგადად გახსნა openvpn- ის პრინციპების გაგება. გმადლობთ.
წინადადება და არ მუშაობს ამ ინსტრუქციის NIFIGA!
გმადლობთ. ყველაფერი მუშაობს!
განახლება
მე -2 პუნქტმა გადაწყვიტა კლიენტის უფლებების დამონტაჟება. ძირითადი გასაღები (აშკარად შეუმჩნეველია ის პირველი). + აუცილებელი იყო TCP კავშირის ტიპის მკაფიოდ განსაზღვრა და ადაპტერის ტიპი - TAP / TUN
გმადლობთ! დიდი სტატია!
ყველაფერს ვაკეთებ ინსტრუქციის მიხედვით, მაგრამ ასეთი პრობლემაა:
კლიენტი სერვერთან აკავშირებს, მაგრამ ინტერნეტი არ არის. კლიენტი მბრუნებს ორივე VPN 10.8.0.1 სერვერს და ერთგულ სერვერს ip. სერვერებიდან თავად გარე საიტები უპრობლემოდ უპასუხებენ პრობლემებს. აღმოჩნდება, რომ ძაღლი დაკრძალულია სადღაც IPtables და ip.frwarding. რაიმე აზრები? შემიძლია სწრაფად იფიქრო ამ ტყეზე?
აუცილებელია სხვა მარშრუტიზაციის წესების განსაზღვრა
iptables -t nat-a POSTROUTING -o venet0 -j SNAT- ის IP_ADDRESS_Your_SERVER
iptables -A FORWARD -i venet0 -o tun0 -m სახელმწიფო-დაკავშირებული მეზობელი, დამტკიცებული- j გადაწყვეტილება
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT