Pemasangan dan konfigurasi openvpn ubuntu 16.04. Penghalaan dan skrip luaran. Memasang Fail Konfigurasi Pelanggan

teknologi VPN terkenal sebagai cara akses selamat kepada sumber syarikat swasta, serta pelbagai kandungan, sama ada audio, video atau dokumen arkib. Ia membolehkan anda membuat rangkaian peribadi, mengalihkan dokumen ke satu komputer menggunakan sumber yang lain atau beberapa. Rangkaian Peribadi Maya digunakan secara meluas dalam semua pelayar moden. Jarang pergi tanpanya kerja jauh pekerja sebuah organisasi yang besar dan penting. Menyediakan OpenVPN Ubuntu bukan sahaja untuk ahli teknologi dan peminat keselamatan yang tinggi, tetapi juga semua orang yang tidak mahu bersabar kos yang tinggi kandungan berlesen di negara yang akses kepadanya dihadkan.

DALAM Persediaan Linux rangkaian maya nipis.

Dengan teknologi ini, anda boleh mengakses kandungan dalam bahasa Cina dengan mudah storan fail, sebagai contoh, dari Rusia, yang terkenal dengan penapisan Internet yang meluas. Atau gunakannya untuk mendapatkan banyak faedah penting lain dalam talian percuma. Dalam organisasi, isu penggunaan VPN telah menjadi mendesak kerana kesukaran untuk menyediakan tembok api. Penggunaannya memerlukan sentiasa menukar parameter peralatan yang disambungkan dan tetapan akses. Sebelum ini, ini membawa kepada kos masa dan kewangan yang besar.

Memasang OpenVPN ialah aplikasi teknologi rangkaian persendirian maya yang tersedia secara percuma. Ia boleh dilakukan dalam sistem pengendalian berasaskan Windows dan Linux. Sejak dalam Persekitaran Linux penalaan halus semua parameter fungsi ini lebih mudah, kami akan mempertimbangkannya. Topik Rangkaian Peribadi Maya diliputi secara meluas di banyak tapak dan forum bertema, terima kasih kepada para profesional dan penganut baharu teknologi keselamatan di seluruh dunia telah dapat menyertainya. Memasang OpenVPN Ubuntu membolehkan anda bukan sahaja meningkatkan tahap keselamatan data peribadi, tetapi juga untuk mengatur aktiviti anda dengan betul pada rangkaian.

Mengapa menggunakan VPN dan bukan kaedah perlindungan lain? maklumat peribadi? Kaedah ini hanya perlu dikonfigurasikan sekali sahaja. Semua data akan melalui pelayan secara automatik rangkaian peribadi, serta-merta dalam bentuk yang disulitkan.

OpenVPN adalah perisian yang agak berfungsi, pantas dan fleksibel yang membolehkan anda bekerja dengan SSL VPN. Ia mempunyai ruang terbuka kod sumber. Ini bermakna sesiapa sahaja boleh menggunakan keupayaannya secara individu, serta mengubah suai kod program untuk keperluan mereka sendiri.

Malah, teknologi ini menawarkan penggunaan rangkaian yang tidak selamat seolah-olah mereka ada perlindungan yang kuat. Ini akan menjadi sangat relevan jika:

  1. Anda menggunakan sambungan Internet dengan keselamatan yang lemah untuk mengaksesnya.
  2. Terdapat penapisan ke atas akses kepada maklumat di tempat kediaman anda.
  3. Anda berada di lokasi dengan tempat liputan Wi-Fi awam.
  4. Anda perlu menyembunyikan lokasi anda dengan baik daripada pengguna rangkaian lain.
  5. Anda mahu melindungi data peribadi dan kata laluan anda dengan lebih baik.

NASIHAT. rangkaian VPN dipanggil maya, kerana semua elemennya digabungkan menggunakan perisian, yang menggunakan sambungan maya.

Ia adalah peribadi kerana ia tidak boleh diakses oleh sesiapa. Ini hanya boleh dilakukan oleh peserta individu yang telah mewujudkan hubungan sedemikian sesama mereka. Setiap elemen rangkaian mesti mengandungi maklumat perlindungan. Maklumat ini memudahkan sesetengah peserta Internet mendapat akses kepada rangkaian, dan juga hanya menafikan akses kepada orang lain.

Konsep asas

Terowong ialah sambungan selamat dan terjamin yang menggunakan sumber rangkaian tidak selamat (dalam kes ini Internet), dan membenarkan maklumat ditukar melalui saluran peribadi yang dikonfigurasikan hanya untuk peranti yang dipercayai.

Pelanggan ialah program yang dipasang pada peralatan di mana ia perlu menyediakan saluran pertukaran data dengan pelayan. Saluran ini dilindungi.

Pelayan - komputer atau tempat di mana maklumat disimpan Akaun pengguna rangkaian peribadi maya. Menggunakan pelayan membolehkan anda mempercepatkan program dan mengurangkan trafik (jumlah data yang dipindahkan).

Kunci awam dan sijil ialah data khas yang digunakan untuk menyulitkan maklumat. Apabila bertukar data, mereka pergi ke pusat pensijilan tempat mereka ditandatangani. Kemudian mereka kembali ke unsur sumber rangkaian.

Mari kita teruskan untuk berlatih

Untuk menyediakan pelayan OpenVPN Ubuntu anda, anda perlu membeli pelayan anda dengan memasang Ubuntu Linux. Anda perlu mendapatkan hak root padanya. Pada masa ini, anda boleh membeli penyelesaian pada harga yang rendah, dan bilangan syarikat yang menawarkan perkhidmatan sedemikian semakin meningkat. Memasang OpenVPN Ubuntu sendiri tidak memerlukan pelaburan masa yang besar.

Mari mulakan dengan pemasangan dan konfigurasi

Mula-mula anda perlu menyambung ke pelayan dan memberikannya arahan berikut:

"kemas kini apt-get
apt-get pasang openvpn"

Arahan ini akan bermula memasang OpenVPN. Seterusnya, anda perlu memasang dan bersedia untuk menggunakan utiliti untuk mencipta kunci dan sijil:

"cd /tmp
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
apt-get install unzip
nyahzip master.zip
cd easy-rsa-master
./build/build-dist.sh
tar xvzf ./EasyRSA-git-development.tgz
cd EasyRSA-git-development"

"./easyrsa init-pki
./easyrsa build-ca
./easyrsa build-server-full server
./easyrsa build-client-full client1
./easyrsa gen-dh"

Selepas penjanaan, anda perlu memindahkan data yang diterima ke /etc/openvpn/:

"mv ./pki/dh.pem /etc/openvpn/dh.pem
mv ./pki/private/client1.key /etc/openvpn/
mv ./pki/private/server.key /etc/openvpn/
mv ./pki/ca.crt /etc/openvpn/
mv ./pki/issued/client1.crt /etc/openvpn/
mv ./pki/issued/server.crt /etc/openvpn/"

Cipta fail server.conf dalam direktori yang sama dengan parameter berikut:

"pelayan mod
lagu dev
pelayan 10.128.0.0 255.255.255.0
tekan "redirect-gateway def1"
tekan "dhcp-option DNS 8.8.8.8"
tls-server
caca.crt
pelayan sijil.crt
pelayan kunci.kunci
dh dh.pem
proto tcp-server
pelabuhan 1194
pelanggan ke pelanggan
comp-lzo
keepalive 10 120
kata kerja 4
sifir AES-256-CBC
pengguna tiada siapa
kumpulan nogroup
maksimum pelanggan 10"

Pelancaran

"perkhidmatan openvpn mula"

"vpn mkdir
cd vpn
scp vpn-server:/etc/openvpn/client1.crt ./
scp vpn-server:/etc/openvpn/client1.key ./
scp vpn-server:/etc/openvpn/ca.crt ./"

Di sini dalam talian jauh anda perlu menulis alamat IP pelayan seperti yang ditunjukkan dalam contoh.

"pelanggan
proto tcp
lagu dev
jauh 123.45.67.89 1194
gigih-kunci
gigih-tun
caca.crt
pelanggan sijil1.crt
kunci klien1.kunci
sifir AES-256-CBC
comp-lzo
kata kerja 3"

"sudo openvpn --config client.conf"

Dalam tetingkap terminal bersebelahan anda perlu memasukkan arahan:

"ping 10.128.0.1
traceroute mail.ru"

Jika semuanya dilakukan dengan betul, anda akan mendapati bahawa 10.128.0.1 ping berjaya. Walau bagaimanapun, paket tidak akan dihantar kepada penerima, kerana NAT tidak dikonfigurasikan pada pelayan. Kami masih perlu melengkapkan langkah ini.

Pada pelayan, anda perlu membuka fail bernama /etc/sysctl.conf dan mengalih keluar komen daripada baris “net.ipv4.ip_forward=1”, menjadikannya aktif.

"echo1>>/proc/sys/net/ipv4/conf/all/forwarding"

Kemudian anda perlu memasukkan:

"iptables -A FORWARD -s 10.128.0.0/24 -j TERIMA
iptables -A FORWARD -d 10.128.0.0/24 -m keadaan \
--negeri DITUBUHKAN, BERKAITAN -j TERIMA
iptables -t nat -A POSTROUTING -s 10.128.0.0/24\
-j SNAT —kepada-sumber (alamat pelayan)"

"iptables-save > /etc/iptables.rules"

Anda juga perlu menyemak bahawa baris "pre-up iptables-restore" ditulis dalam fail "/etc/network/interfaces"< /etc/iptables.rules». Перезагрузите сервер OpenVPN, чтобы настраивать его дальше.

Anda mesti melengkapkan Persediaan VPN melalui Pengurus Rangkaian. Untuk melakukan ini, anda perlu memasukkan arahan "sudoapt-get install network-manager-openvpn-gnome". Anda boleh menulis ke dalam konfigurasi semua fail yang dinyatakan sebelum ini dalam bentuk teks.

Ini melengkapkan persediaan pelayan OpenVPN di Ubuntu! Jika anda mempunyai sebarang masalah, jangan teragak-agak untuk bertanya dalam komen atau cari butiran di forum tematik! Linux adalah kompleks dan sistem pelbagai rupa, yang jarang dipinjamkan kepada pemula dengan segera. Tetapi dengan jumlah usaha yang betul, adalah mungkin untuk mengatasinya. Dan kemudian satu juta peluang baharu terbuka untuk pengguna yang sebelum ini tidak kelihatan.

VPN (Rangkaian Persendirian Maya) ialah teknologi yang membolehkan anda menyambungkan komputer melalui Internet seolah-olah ia berada pada rangkaian tempatan yang sama. Hasilnya, kita boleh menyatukan pejabat yang terletak di bandar dan negara yang berbeza menjadi satu rangkaian.
Dengan memasang pelayan VPN di rumah, dan bahagian klien pada telefon pintar anda, anda boleh mengakses Internet melalui awam Titik WiFi tanpa rasa takut bahawa kata laluan anda akan dipintas.
Menyewa pelayan di pusat data asing berharga daripada $5 sebulan dan dengan meletakkan VPN di rantau Amerika, kami mendapat akses kepada Spotify, Pandora, Hulu dan perkhidmatan lain yang tidak tersedia di negara anda dan penapisan Internet tidak lagi membimbangkan anda .

1. Pasang OpenVPN.

Mari kemas kini pelayan kami dan pasang OpenVPN dan pihak berkuasa sijil.

Sudo apt update sudo apt upgrade sudo apt install openvpn easy-rsa

OpenVPN ialah rangkaian peribadi maya yang menggunakan TLS/SSL untuk menyulitkan trafik. Ini bermakna kami memerlukan sijil yang dipercayai.

2. Menubuhkan pihak berkuasa pensijilan

Mari kita sediakan pihak berkuasa pensijilan.

Make-cadir ~/openvpn-ca cd ~/openvpn-ca nano vars

Mari cari serpihan berikut:

. . . . . eksport KEY_COUNTRY="AS" eksport KEY_PROVINCE="CA" eksport KEY_CITY="SanFrancisco" eksport KEY_ORG="Fort-Funston" eksport KEY_EMAIL=" [e-mel dilindungi]" export KEY_OU="MyOrganizationalUnit" . . . .

dan gantikannya dengan data anda

. . . . . eksport KEY_COUNTRY="RU " export KEY_PROVINCE="SPb " export KEY_CITY="Sankt-Peterburg " export KEY_ORG="site " export KEY_EMAIL="admin@site " export KEY_OU="IT " . . . . .

Beberapa baris di bawah kami akan menukar nilai KEY_NAME

Eksport KEY_NAME="server" cd ~/openvpn-ca source vars

Sebagai tindak balas, sistem harus mengeluarkan:

NOTA: Jika anda menjalankan ./clean-all, saya akan melakukan rm -rf pada /home/sammy/openvpn-ca/keys

Untuk berjaga-jaga, mari kosongkan direktori semua kunci:

./bersih-semua

dan buat pihak berkuasa sijil akar:

./build-ca

Nilai yang diperlukan akan digantikan secara automatik daripada fail vars, yang kami edit tepat di atas. Hanya tekan Enter untuk mengesahkan pilihan anda.

Kami telah memasang pihak berkuasa sijil yang akan kami gunakan untuk mencipta fail lain yang kami perlukan.

3. Buat sijil, kunci dan fail penyulitan untuk pelayan

Mula-mula mari buat Sijil OpenVPN dan kunci untuk pelayan. Untuk melakukan ini, jalankan arahan berikut:

./build-key-server pelayan

Kami bersetuju dengan semua nilai lalai, pada akhirnya kami memilih "y" dua kali.
Sekarang mari kita hasilkan kunci protokol Diffie-Hellman dengan arahan:

./build-dh

dan tandatangan HMAC untuk mengukuhkan keupayaan pelayan untuk mengesahkan integriti dan ketulenan data TSL yang dihantar:

Openvpn --genkey --kunci rahsia/ta.key

4. Buat sijil dan pasangan kunci untuk pelanggan

Mari kita pertimbangkan prosedur untuk mencipta kunci dan sijil untuk klien pelanggan1. Jika terdapat beberapa pelanggan, proses penciptaan adalah serupa. sambungan automatik kami akan mencipta fail tanpa kata laluan. Kami menggunakan arahan bina-kunci:

Cd ~/openvpn-ca source vars ./build-key client1

5. Menyediakan perkhidmatan OpenVPN

Salin fail yang dibuat (sijil dan kunci CA, sijil dan kunci pelayan, tandatangan HMAC, fail Diffie-Hellman) daripada direktori ~/openvpn-ca/keys ke /etc/openvpn

Cd ~/openvpn-ca/keys sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn

Gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf sudo nano /etc/openvpn/server.conf

Mari cari bahagian HMAC dan nyahkomen baris dengan tls-auth, dan juga tambah parameter arah kekunci:

Tls-auth ta.key 0 # Fail ini adalah rahsia kekunci-arah 0

Kemudian kami mencari bahagian penyulitan dan nyahkomen baris dengan sifir AES-128-CBC dan selepas itu menambah algoritma HMAC:

Cipher AES-128-CBC pengesahan SHA256

Dan akhirnya, cari pengguna dan kumpulan baris dan nyahkomennya:

Pengguna tiada siapa kumpulan nogroup

6. Mendayakan perkhidmatan OpenVPN

Untuk menggunakan pelayan kami untuk tujuan yang dimaksudkan, ia mesti dapat mengubah hala lalu lintas.

sudo nano /etc/sysctl.conf

Cari dan nyahkomen baris:

net.ipv4.ip_forward=1

Untuk menggunakan tetapan yang diubah:

sudo sysctl -p

Mari kita terangkan bagaimana pelayan kami akan bermula. Oleh kerana nama fail konfigurasi ialah server.conf, kami akan memberikan arahan berikut:

sudo systemctl mulakan openvpn@server

Mari semak sama ada pelayan telah bermula:

status sudo systemctl openvpn@server

dan sama ada antara muka tun sudah siap

ip addr tunjukkan tun0

Jika semuanya berfungsi, tambahkan tetapan pada permulaan:

sudo systemctl dayakan openvpn@server

7. Skrip untuk menyediakan pelanggan.

mkdir -p ~/client-configs/files chmod 700 ~/client-configs/files cp /usr/share/doc/openvpn/ examples/sample-config-files/ client.conf ~/client-configs/base.conf

Mari buat beberapa perubahan pada fail base.conf

nano ~/client-configs/base.conf . . . # Nama hos/IP dan port pelayan. # Awak boleh mempunyai berbilang entri jauh # untuk memuatkan baki antara pelayan. alamat_IP_pelayan jauh 1194 . . .

Daripada server_IP_address, kami akan menulis alamat IP pelayan OpenVPN kami.

proto udp user nobody group nogroup

Kami akan menyimpan sijil dan kunci terus dalam fail konfigurasi, yang akan kami buat kemudian. Oleh itu, mari kita mengulas baris ca, sijil Dan kunci

# SSL/TLS parms. # Lihat konfigurasi pelayan failkan untuk lagi # huraian. Sebaik-baiknya gunakan # pasangan fail .crt/.key yang berasingan # untuk setiap pelanggan. Satu fail ca # boleh digunakan untuk semua pelanggan. #ca ca.crt #cert client.crt #key client.key

Mari kita bawa tetapan bahagian klien ke tetapan pelayan yang sama.

Semak kehadiran fail /etc/openvpn/update-resolv-conf pada sistem klien anda. Jika ada, tiga baris terakhir perlu dinyahkomen.

cipher AES-128-CBC auth SHA256 key-direction 1 # script-security 2 # up /etc/openvpn/update-resolv-conf # down /etc/openvpn/update-resolv-conf

Akhirnya, kami akan mencipta skrip yang dengannya kami akan membuat fail konfigurasi untuk pelanggan.

Nano ~/client-configs/make_config.sh

Mari masukkan teks:

#!/bin/bash # Hujah pertama: Pengecam pelanggan KEY_DIR=~/openvpn-ca/keys OUTPUT_DIR=~/client-configs/files BASE_CONFIG=~/client-configs/base.conf cat $(BASE_CONFIG) \<(echo -e "")\$(KEY_DIR)/ca.crt\<(echo -e "\n ")\$(KEY_DIR)/$(1).crt\<(echo -e "\n ")\$(KEY_DIR)/$(1).key\<(echo -e "\n ")\$(KEY_DIR)/ta.key\<(echo -e "") \ > $(OUTPUT_DIR)/$(1).ovpn

Mari simpan dan tutup fail, kemudian jadikan ia boleh laku:

Chmod 700 ~/client-configs/make_config.sh

8. Penjanaan fail konfigurasi pelanggan

cd ~/client-configs ./make_config.sh client1

Mari semak apa yang berlaku:

Ls ~/client-configs/files

akibatnya kita harus mendapatkan fail itu

Pelanggan1.ovpn

dengan tetapan sambungan, sijil dan kunci.

Fail ini mesti dihantar ke komputer klien menggunakan sambungan selamat. Di Linux anda boleh menggunakan arahan scp. hidup komputer pelanggan Jom lari:

Scp viktor@openvpn_server_ip :client-configs/files/client1.ovpn ~/

Salin fail "client1.ovpn" daripada pelayan jauh ke komputer tempatan anda.

9. Memasang fail konfigurasi klien

Kami akan melakukan langkah berikut hanya pada komputer klien yang menjalankan Ubuntu. Mari pasang OpenVPN.

Sudo apt-get kemas kini sudo apt-get install openvpn

Mari semak sama ada terdapat fail /etc/openvpn/update-resolv-conf pada sistem kami

Ls /etc/openvpn

Jika kita mengeluarkan:

Kemas kini-resolve-conf

mari edit fail konfigurasi client1 .ovpn, yang kami muat turun daripada pelayan

Nano client1 .ovpn

Mari nyahkomen baris berikut:

Script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf

Mari simpan dan tutup fail.

Sekarang mari cuba mulakan sambungan:

Sudo openvpn --config client1 .ovpn

Jika anda melakukan semuanya dengan betul, anda akhirnya akan menyambung ke pelayan.

Adakah anda ingin mempunyai akses Internet yang selamat dan terjamin daripada telefon pintar atau komputer riba anda apabila disambungkan ke rangkaian tidak selamat melalui WiFi hotel atau kafe? Rangkaian Peribadi Maya (VPN) membolehkan anda menggunakan rangkaian tidak selamat seolah-olah anda berada di rangkaian peribadi. Semua trafik anda dalam kes ini melalui pelayan VPN.

Dalam kombinasi dengan penggunaan sambungan HTTPS, tetapan yang diterangkan di bawah akan membolehkan anda melindungi maklumat peribadi anda, seperti log masuk dan kata laluan, serta pembelian anda. Selain itu, anda boleh memintas sekatan wilayah dan penapisan, serta menyembunyikan lokasi anda dan trafik HTTP yang tidak disulitkan daripada rangkaian tidak selamat.

Anda boleh memindahkan profil dari komputer anda ke telefon anda dengan menyambung peranti Android ke komputer anda melalui USB dan menyalin fail. Anda juga boleh mengalihkan fail profil menggunakan kad SD dengan menyalin profil ke kad dan memasukkan kad ke dalam peranti Android anda.

Lancarkan aplikasi OpenVPN dan klik pada menu untuk mengimport profil.

Kompaun

Untuk mewujudkan sambungan, klik butang Sambung. Anda akan ditanya sama ada anda mempercayai aplikasi OpenVPN. Balas okey untuk mewujudkan sambungan. Untuk menghentikan sambungan, pergi ke aplikasi OpenVPN dan pilih Putuskan sambungan.

Langkah 13. Menguji sambungan VPN

Selepas semuanya dipasang dan dikonfigurasikan, mari pastikan semuanya berfungsi dengan betul. Tanpa membuat sambungan VPN, buka penyemak imbas anda dan pergi ke DNSLeakTest.

Tapak ini akan mengembalikan alamat IP yang diberikan kepada anda oleh Pembekal Perkhidmatan Internet anda. Untuk menyemak yang mana pelayan DNS sedang digunakan, klik pada Ujian Lanjutan.

Sekarang buat sambungan menggunakan anda Pelanggan VPN dan muat semula halaman dalam penyemak imbas anda. Alamat IP yang anda berikan mestilah berbeza sama sekali. Kini anda menggunakan alamat IP baharu ini untuk semua orang di Internet. klik Ujian Lanjutan sekali lagi untuk menyemak anda Tetapan DNS dan pastikan anda kini menggunakan pelayan DNS VPN anda.

Langkah 14: Batalkan sijil pelanggan

Dari semasa ke semasa, anda mungkin perlu membatalkan sijil pelanggan untuk menghalang akses kepada pelayan VPN

Untuk melakukan ini, pergi ke direktori kuasa sijil anda dan masukkan arahan:

  • cd ~/openvpn-ca
  • sumber vars
  • ./revoke-full client3

Output arahan ini akan berakhir dengan ralat 23. Ini adalah perkara biasa. Hasil daripada kerja ini, fail crl.pem akan dibuat dalam direktori kunci dengan maklumat yang diperlukan untuk membatalkan sijil.

Alihkan fail ini ke direktori /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Tambahkan baris crl-verify pada penghujung fail. Pelayan OpenVPN akan menyemak senarai pembatalan sijil setiap kali seseorang membuat sambungan ke pelayan.

/etc/openvpn/server.conf

Crl-sahkan crl.pem

Simpan dan tutup fail.

Mulakan semula OpenVPN untuk menyelesaikan proses pembatalan sijil:

  • sudo systemctl mulakan semula openvpn@server

Kini pelanggan tidak akan dapat mewujudkan sambungan ke pelayan OpenVPN menggunakan sijil lama.

Untuk membatalkan sijil tambahan, ikut langkah berikut:

    Menjana senarai baru membatalkan sijil menggunakan perintah vars sumber dalam direktori ~/openvpn-ca dan melaksanakan perintah revoke-full dengan nama klien.

    Salin senarai pembatalan sijil baharu ke direktori /etc/openvpn, dengan itu menimpa senarai lama.

    Mulakan semula perkhidmatan OpenVPN.

Prosedur ini boleh digunakan untuk membatalkan sebarang sijil yang telah anda buat sebelum ini.

Kesimpulan

tahniah! Kini anda boleh mengakses Internet dengan selamat, semua trafik anda dilindungi daripada mencuri dengar oleh penapis dan penceroboh.

Untuk konfigurasi pelanggan tambahan ulangi langkah 6 Dan 11-13 untuk setiap peranti baharu. Untuk membatalkan akses untuk pelanggan tertentu, gunakan langkah tersebut 14 .

Siapa yang melakukan tugas saya memautkan diedarkan rangkaian tempatan bersama-sama. Pengalaman pertama ialah menyediakan pelayan untuk FreeBSD, dan kemudian, seperti yang mereka katakan, ia pergi dari sana. Sehingga kini, hampir semua pelayan yang saya konfigurasikan menjalankan Ubuntu Linux atau versi lain.

Dan baru-baru ini saya perhatikan bahawa antara sampah yang disimpan di dalamnya /etc/init.d, skrip dengan nama mengintai secara sederhana. "Dan apa?" - pentadbir yang berpengalaman akan segera bertanya. Masalahnya ialah sehingga baru-baru ini peningkatan antara muka rangkaian, termasuk TUN, saya menganjurkan secara eksklusif melalui /etc/network/interfaces, beroperasi dengan pilihan pra-up untuk memulakan daemon dan pilihan OpenVPN pra-turun untuk menghentikannya. Semua "aib" ini di mana-mana dicairkan dengan pelbagai arahan yang memanipulasi jadual penghalaan... Secara umum, hasilnya adalah gambaran yang agak rumit. Pada dasarnya, semuanya berfungsi dengan baik, tetapi kerana terdapat cara yang berbeza (cara Ubuntu?) yang disediakan oleh pembangun, maka mengapa tidak menggunakannya, terutamanya kerana ini akan melegakan dengan ketara /etc/network/interfaces. Jadi, apa yang saya dapat?

Memasang OpenVPN

Memasang OpenVPN pada Ubuntu tidak memerlukan sebarang helah dengan telinga anda:

$ sudo apt-get install openvpn

Pastikan anda mengesahkan bahawa semua kebergantungan dipasang.

Mereka yang ingin/perlu memasang OpenVPN daripada kod sumber perlu membiasakan diri dengannya.

Jika anda berminat pakej binari untuk platform lain, lawati .

Lokasi fail utama

Memandangkan dalam artikel ini saya memutuskan untuk bercakap tentang menyediakan bahagian klien OpenVPN, kami akan menganggap bahawa anda sudah mempunyai fail kunci penyulitan (pentadbir pelayan OpenVPN memberikannya kepada anda). Nombor dan jenis kunci bergantung pada cara pelayan OpenVPN yang anda sambungkan dikonfigurasikan. Artikel ini menganggap bahawa tiga fail digunakan untuk penyulitan dan pengesahan:

  • kunci penyulitan peribadi pelanggan dalam format .pem(mari kita panggil fail klien.kunci);
  • sijil pelanggan yang ditandatangani oleh pihak berkuasa pensijilan dalam format .pem, (mari namakan fail pelanggan.crt);
  • sijil kuasa sijil pelayan dalam format .pem yang mana fail itu ditandatangani pelanggan.crt(mari kita panggil fail ca.crt)

Sebaik sahaja anda menerima kunci dan sijil, pastikan anda memastikan keselamatannya. Keputusan yang baik semua perkara ini akan diletakkan pada pemacu kilat, disulitkan, sebagai contoh, . Dalam artikel ini kami akan menganggap bahawa kunci dan sijil terletak dalam direktori /media/keys. Juga, pastikan anda meninggalkan hak akses minimum kepada direktori dengan kunci dan sijil:

$ sudo chown -R root.root /media/keys
$ sudo chmod 0700 /media/keys
$ sudo chmod 0600 /media/keys/*
# ls -la /media/keys
drwx------ 2 punca akar 1024 18-08-2010 15:32 .
drwx------ 5 punca akar 1024 18-08-2010 15:24 ..
-rw------- 1 punca akar 1265 18-08-2010 22:27 ca.crt
-rw------- 1 root root 3821 2010-08-18 15:13 client.crt
-rw------- 1 root root 887 2010-08-18 15:13 client.key

Fail konfigurasi

Fail konfigurasi OpenVPN biasanya terletak dalam direktori atau /usr/local/etc/openvpn. Dalam artikel ini saya akan menganggap bahawa anda telah memasang OpenVPN dari repositori Ubuntu dan direktori untuk menyimpan konfigurasi ialah .

Jika anda menyambung ke pelayan OpenVPN yang tidak dikonfigurasikan oleh anda, maka biasanya seseorang ini harus memberi anda fail konfigurasi "asas" yang mengandungi set parameter minimum yang diperlukan. Antara parameter konfigurasi OpenVPN adalah individu kepada hos klien, selalunya laluan ke fail kunci dan sijil, serta laluan ke skrip luaran dan skrip permulaan.

Katakan pelayan yang anda sambungkan dipanggil myvpnsrv.com. Adalah agak mudah untuk menamakan fail konfigurasi (mungkin terdapat beberapa daripadanya jika anda menggunakan beberapa sambungan atau beberapa pilihan untuk sambungan) mengikut nama pelayan. Jadi, dalam contoh kami, fail konfigurasi akan ditempatkan di /etc/openvpn/myvpnsrv.conf dengan kandungan berikut:

pelanggan
myvpnsrv.com jauh
ca /media/keys/ca.crt
kekunci /media/keys/client.key
cert /media/keys/client.crt
daemon
lagu dev
proto udp
comp-lzo

Baris pertama memberitahu OpenVPN bahawa sambungan akan berada dalam mod klien.

Nilai parameter jauh menentukan nama hos atau alamat IP pelayan.

Nilai parameter ca, kunci Dan sijil tentukan laluan ke fail sijil CA, kunci peribadi dan sijil pelanggan, masing-masing.

Dengan menentukan parameter daemon kami memaksa OpenVPN untuk melepaskan diri daripada konsol dan berjalan di latar belakang.

Parameter dev menentukan jenis antara muka rangkaian yang akan digunakan untuk menukar trafik yang disulitkan dengan pelayan. Mungkin membuat perbezaan tun atau ketuk. Perbezaan asas antara kedua-dua jenis antara muka ini boleh diketahui.

Parameter proto mentakrifkan protokol di mana trafik yang disulitkan akan dibungkus. gunakan UDP.

Ketersediaan parameter comp-lzo memaksa OpenVPN untuk memampatkan trafik, yang sangat berguna apabila anda mempunyai saluran penghantaran data "sempit".

Penghalaan dan skrip luaran

OpenVPN, antara lain, membolehkan anda menjalankan program luaran selepas permulaan, serta sebelum dan selepas menghentikan daemon. Perkara yang sangat berguna jika anda perlu bermain-main dengan jadual laluan semasa menaikkan terowong.

Segera perhatikan satu perkara yang halus. Agar daemon OpenVPN dapat melancarkan program luaran, ia mesti dibenarkan secara eksplisit melakukannya dengan menghantar parameter skrip-keselamatan dengan nilai tidak lebih rendah daripada 2. Keselamatan, walau bagaimanapun.

Untuk menentukan laluan ke program yang dipanggil secara automatik selepas antara muka rangkaian akan dinaikkan, gunakan parameter naik, menghantarnya laluan ke program dan mungkin parameter tambahan sebagai nilai.

Untuk memulakan program luaran selepas memutuskan sambungan antara muka rangkaian, gunakan parameter turun, memberitahunya, sudah tentu, laluan dan parameter program yang dipanggil. Sekiranya perlu program ini dilancarkan sebelum ini melumpuhkan antara muka, juga nyatakan parameter bawah-pra Tiada maksud.

Sekarang sedikit tentang spesifik memanggil program luaran oleh daemon OpenVPN. Hakikatnya ialah mereka bukan sahaja dipanggil "bodoh", tetapi beberapa lagi parameter sambungan dihantar kepada mereka, yang sangat mudah apabila bekerja dengan jadual penghalaan.

Format untuk memanggil program luaran oleh daemon OpenVPN semasa permulaan antara muka tun seterusnya:

tun_dev tun_mtu link_mtu ifconfig_local_ip ifconfig_remote_ip

  • tun-dev— nama antara muka rangkaian, contohnya tun1;
  • tun_mtu— MTU antara muka rangkaian;
  • link_mtu- sambungan MTU;
  • ifconfig_local_ip— alamat IP pelanggan (di sebelah "kami");
  • ifconfig_remote_ip— alamat IP pelanggan (sebelah pelayan);
  • di dalamnya— dihantar jika atur cara dipanggil semasa daemon dimulakan;
  • mula semula— dihantar jika program dipanggil semasa daemon mulakan semula (contohnya, jika terdapat kehilangan sambungan);

Untuk ketik antara muka formatnya adalah sama, kecuali sebaliknya ifconfig_remote_ip dihantar ifconfig_netmask, yang mengandungi subnet mask di mana pelanggan kami berada.

Juga, ia harus diperhatikan bahawa semua parameter yang anda akan lulus program luar, dengan bantuan naik/turun, akan diganti sebelum ini parameter yang disenaraikan di atas.

Saya rasa itu sudah cukup teori, mari kita turun ke perniagaan. Katakan anda perlu mengubah suai jadual penghalaan hos anda apabila anda memulakan/mulakan semula/menghentikan daemon OpenVPN. Untuk dua antara muka rangkaian, saya menyelesaikan masalah ini dengan skrip bash berikut:

#!/bin/bash case $(1) dalam "up") case $(2) dalam "tun0") ip rule add ... ip route add ... ;; "tun1") tambah peraturan ip ... tambah laluan ip ... ;; esac ;; "turun") huruf $(2) dalam "tun0") ip rule del ... ip route del ... ;; "tun1") ip rule del ... ip route del ... ;; esac ;; esac

Dan skrip dipanggil oleh dua parameter OpenVPN:

atas "/usr/local/bin/routes.sh up"
bawah "/usr/local/bin/routes.sh down"

Iaitu, skrip yang dilancarkan menerima kira-kira parameter berikut:

  • $1 naik atau turun;
  • $2 — nama antara muka. Dalam sistem saya sedang mempertimbangkan ia mungkin tun0 atau tun1;
  • $3 - sebagai contoh, 1500;
  • $4 - contohnya, 1542
  • $5 - contohnya, 10.8.0.5
  • $6 - contohnya, 10.8.0.6
  • $7 di dalamnya atau mula semula(parameter ini diabaikan sepenuhnya oleh saya, jadi manipulasi dengan laluan sentiasa dilakukan, walaupun antara muka rangkaian tidak dilumpuhkan, tetapi hanya permulaan semula "biasa" daemon berlaku kerana kekurangan komunikasi).

Sudah tentu anda boleh (dan harus) menggunakan nilai parameter $3 - $6. Sebagai contoh, jika anda ingin membungkus sebahagian daripada lalu lintas melalui terowong VPN, maka anda boleh menggunakan sesuatu seperti:

laluan ip tambah dari 192.168.0.0/24 melalui $(6)

menggunakan pembolehubah $6 untuk menentukan alamat penghala yang melaluinya untuk menghalakan trafik.

Memulakan dan menghentikan daemon

Sebenarnya, mengapa semua ini menari dengan memanggil skrip luaran dan meninggalkan yang lama yang baik /etc/network/interfaces? Inilah yang dimaksudkan.

Buka fail /etc/default/openvpn dan dalam pembolehubah AUTOSTART nyatakan nama fail konfigurasi (atau beberapa, dipisahkan oleh ruang) daripada direktori, memotong sambungan ".conf". Untuk contoh kami ia akan kelihatan seperti ini:

AUTOSTART="myvpnsrv"

Atau, jika anda mahu OpenVPN membuat sambungan berdasarkan semua fail konfigurasi yang ditemui:

Kini "satu tablet sudah memadai" dalam bentuk:

perkhidmatan sudo openvpn mula

dan skrip daripada /etc/init.d/openvpn akan melancarkan OpenVPN dengan teliti untuk semua konfigurasi yang ditemui.

Menghentikan daemon juga tidak begitu sukar:

perkhidmatan sudo hentian openvpn

Dan akhirnya. Jika anda memerlukan mana-mana yang sedia ada fail konfigurasi tidak diproses, ia cukup untuk menentukan dalam /etc/default/openvpn.

OpenVPN ini adalah yang paling berkuasa pakej perisian sumber terbuka untuk mencipta rangkaian VPN daripada sebarang kerumitan. Dia mendapat populariti yang sangat besar dan masa ini menyokong semua platform. Memenuhi semua piawaian keselamatan, kebolehpercayaan dan fleksibiliti. Satu-satunya negatif ialah keperluan untuk memasang perisian di sisi pelanggan, tetapi kelebihannya mengatasi semua kelemahan.

Ciri OpenVPN:

  • Kunci pratetap ialah kaedah pengesahan yang paling mudah.
  • Pengesahan sijil ialah kaedah paling fleksibel dalam tetapan.
  • Menggunakan log masuk dan kata laluan - boleh digunakan tanpa membuat sijil pelanggan ( sijil pelayan masih diperlukan).
  • Pemampatan trafik menggunakan lzo.
  • Gunakan pilihan protokol TCP/UDP anda.
  • Menggunakan terowong IP/terowong Ethernet.

Untuk memasang, jalankan arahan:

apt-get pasang openvpn

Kaedah utama pengesahan adalah, sudah tentu, sijil, dan di situlah kita akan bermula.

Kami akan memerlukan:

  • Sijil pelayan, kunci pelayan (rahsia).
  • Sijil pelanggan, kunci pelanggan (rahsia).
  • Kunci Diffie Hellman untuk sesi TLS.
  • Sijil CA (Buat pihak berkuasa pensijilan untuk menandatangani sijil pelayan dan pelanggan, kaedah ini mudah untuk menguruskan sijil).
  • Kunci CA (sangat rahsia).
  • Kunci terakhir untuk pengesahan TLS (tandatangan HMAC).

Jangan bimbang dengan segera jika anda tidak begitu mahir dalam sijil; mereka telah menyediakan segala-galanya untuk anda. OpenVPN termasuk satu set skrip untuk menjana sijil mudah-rsaterletak di /usr/share/easy-rsa/ . Kami akan mencipta folder dan memindahkan easy-rsa ke /etc/openvpn/easy-rsa untuk kemudahan.

mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa

Eksport KEY_SIZE=2048 #Saiz kunci. eksport CA_EXPIRE=3650 #CA tempoh sah sijil, hari. eksport KEY_EXPIRE=3650 #Tempoh sah sijil, hari. eksport KEY_COUNTRY="AS" #Eksport negara KEY_PROVINCE="CA" #Digunakan hanya di USA eksport KEY_CITY="SanFrancisco" #Eksport bandar KEY_ORG="Fort-Funston" #Eksport organisasi KEY_EMAIL=" [e-mel dilindungi]" #Server mail. export KEY_OU="MyOrganizationalUnit" #My Unit.

Anda tidak perlu menukar KUNCI eksport; semasa proses menjana sijil dan kunci, anda boleh memasukkan data secara manual. Kami melancarkan shell skrip dan menjana sijil CA:

cd /etc/openvpn/easy-rsa/
sumber vars
./bersih-semua# Kosongkan semua sijil dalam folder /etc/openvpn/keys.
./build-ca

Sekarang mari kita buat sijil dan kunci pelayan:

./build-key-server pelayan

Isi ruangan untuk soalan Kata laluan cabaran: , Nama syarikat pilihan: Kami menjawab N. Kami menandatangani sijil Tandatangan sijil? kita jawab y.

./build-dh

Kunci pengesahan TLS:

openvpn --genkey --kunci rahsia/ta.key

Sasaran terakhir ialah kunci pelanggan dan sijil. Ini boleh dilakukan pada pelayan dan memindahkan kunci kepada klien melalui DILINDUNGI saluran atau dengan jana pada mesin pelanggan dan menandatanganinya dengan pihak berkuasa pensijilan pelayan. Untuk kesederhanaan, kami akan menjana segala-galanya pada pelayan dan kemudian memindahkan kunci dan sijil kepada pelanggan.

./build-key pengguna# Jika anda mempunyai ramai pelanggan, secara analogi kami menukar nama pengguna1, pengguna2, dsb.

Anda juga boleh mencipta kunci klien yang dilindungi kata laluan dengan arahan ./build-key-pass pengguna.

Pelanggan memerlukan kunci berikut:

  • pengguna.crt
  • pengguna.kunci
  • ca.crt
  • ta.kunci

Sekarang mari kita teruskan untuk menyediakan fail konfigurasi pelayan OpenVPN. Contoh konfigurasi ada dalam /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz, kita boleh menyalinnya ke folder dengan openvpn atau mencipta yang baharu:

nano /etc/openvpn/server.conf

Port pelayan mod 1194 #Port. proto udp #Protokol. dev tun #Jenis sambungan. ca ca.crt #Laluan ke sijil. cert server.crt key server.key #Path to the server key. dh dh2048.pem #Laluan ke dh. pelayan 10.0.0.1 255.255.255.0 ifconfig-pool-persist ipp.txt # fail di mana sambungan "profil pelanggan, alamat IP yang diperuntukkan" akan disimpan. keepalive 10 120 # tetapkan bilangan saat untuk ping dan ping-restart masing-masing. comp-lzo #Dayakan kekunci berterusan mampatan trafik #apabila menerima isyarat SIGUSR1 atau ping-mula semula dicetuskan, tidak perlu membaca semula sijil, kerana pelayan tidak mempunyai keistimewaan yang mencukupi untuk berterusan-tun # Begitu juga untuk terowong. status openvpn-status.log log /var/log/openvpn.log kata kerja 3 #Butiran log 0-11. tls-auth ta.key 0 #tls kebenaran sifir AES-256-CBC #penyulitan disyorkan secara rasmi atau AES-128-CBC. auth SHA512 # Secara lalai, SHA1 digunakan, yang tidak lagi begitu selamat. #client-to-client membolehkan klien pelayan VPN berkomunikasi antara satu sama lain. maks-pelanggan 5 # had bilangan maksimum pelanggan yang disambungkan secara serentak #Turunkan hak pelayan VPN untuk pengguna keselamatan yang lebih tinggi tiada siapa kumpulan nogroup

Kami memulakan pelayan dan jika semuanya baik-baik saja, antara muka tun0 akan muncul:

root@debian:/# perkhidmatan openvpn mula (mulakan semula)

Jika sebarang masalah timbul, lihat log dan fikirkannya:

journalctl | grep ovpn-server

Sekarang kita perlu mengkonfigurasi klien untuk menyambung ke pelayan. Sebagai contoh, saya akan menunjukkan persediaan pada Windows. Mula-mula, muat turun klien itu sendiri dari tapak web rasmi (https://openvpn.net/). Selepas pemasangan, kami perlu membuat fail konfigurasi yang kelihatan seperti *.ovpn dan anda boleh menciptanya dalam mana-mana editor teks.

pelanggan.ovpn :

Pelanggan proto udp port 1194 dev tun remote 192.168.0.1 #OpenVPN alamat pelayan. ca.crt cert client.crt key client.key tls-auth ta.key 1 auth SHA512 cipher AES-256-CBC comp-lzo

Anda mungkin perlu mengakses Internet melalui VPN. Untuk melakukan ini, anda perlu mendayakan pemajuan pada pelayan:

Kami membolehkan pemajuan dalam kernel, dalam fail /etc/sysctl.conf kami menyahkomen baris:
net.ipv4.ip_forward=1

Untuk tidak but semula, kami memaklumkan kernel bahawa pemajuan didayakan:
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Sekarang kita masih perlu mengkonfigurasi iptables untuk melintasi paket NAT:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Anda perlu menambah pada fail konfigurasi OpenVPN:

Tekan "redirect-gate" # apabila sambungan berjaya ke pelayan, pelanggan akan dipasang gerbang lalai baharu daripada pelayan VPN. tekan "dhcp-option DNS 8.8.8.8" # hantar alamat DNS pelayan.

Ini melengkapkan persediaan asas. Selamat menggunakannya.