GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengonfigurasi OpenVPN di Ubuntu 16.04

Melanjutkan rangkaian artikel VPN, sekarang kita menginstal OpenVPN di Server Ubuntu 16.04. OpenVPN adalah perangkat lunak VPN yang terkenal dari perusahaan dengan nama yang sama. Ini agak sulit untuk dikonfigurasi daripada perangkat lunak VPN lainnya, jadi kami akan berkonsentrasi pada konfigurasi sisi server, dan membuat file ovpn di artikel ini. Panduan ini dirancang untuk dijalankan sebagai pengguna non-root. Jika Anda login sebagai root, pertama-tama kita mulai dengan menambahkan pengguna non-root.

adduser newuser

Kemudian kami memberinya hak sudo dan login sebagai pengguna

usermod -aG sudo newuser

su newuser

Anda dapat melewati langkah-langkah tersebut jika Anda sudah memiliki pengguna non-root, dan kemungkinan besar memang demikian.

Sekarang login sebagai pengguna baru atau pengguna non-root lainnya, kami akan menginstal openvpn

sudo apt-get install openvpn easy-rsa

Sertifikat Server dan klien

Pertama-tama, kita perlu membuat dir untuk otoritas sertifikat dan mengedit file vars adalah

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

Temukan baris yang memiliki KEY_ ekspor di dalamnya dan buat seperti ini

export KEY_COUNTRY="US"
export KEY_PROVINCE="New York State"
export KEY_CITY="New York City"
export KEY_ORG="Linoxide"
export KEY_EMAIL="[email protected]"
export KEY_OU="LinuxGeeks"

Ada juga baris bernama KEY_NAME di file yang sama, jadi kami hanya akan menempatkan server di sana sebagai namanya

export KEY_NAME="server"

Setelah menyimpan file vars, selanjutnya kita ketik:

source vars

yang seharusnya memberi Anda catatan tentang perintah ./clean-all. Jadi, mari kita ketik untuk memastikan kita menjalankan lingkungan yang bersih.

./clean-all

Sekarang kita pindah ke bagian pembuatan sertifikat:

./build-ca

Ini akan menanyakan beberapa pertanyaan kepada Anda, tetapi karena kami mengedit vars, default baru akan baik-baik saja sehingga Anda dapat menekan enter pada semua hitungan.

./build-key-server server

Sekali lagi masuk, tapi kali ini tidak penting. Ketika meminta Anda untuk memasukkan kata sandi, jangan masukkan, dan pada akhirnya tekan untuk membuat sertifikat. Berikutnya adalah diffie hellman:

./build-dh

Ini akan memakan waktu, jadi bersabarlah. Selanjutnya kita membutuhkan ta.key untuk meningkatkan keamanan server.

openvpn --genkey --secret keys/ta.key

Dan kemudian kami menyalin semua file yang relevan ke direktori /etc/openvpn, karena openvpn hanya membaca dari sana.

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

Kami selesai dengan sertifikat server, jadi sekarang kami membuat sertifikat untuk client100.

cd ~/openvpn-ca

source vars
./build-key client100

Default sumbernya ok lagi, jadi cukup tekan enter dan y di akhir.

Konfigurasi Server

Untuk titik awal kami menyalin konfigurasi sampel dengan perintah berikut:

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

Selanjutnya kita perlu mengedit server.conf agar server kita bisa bekerja. Anda dapat menggunakan editor apa pun tetapi kami akan menggunakan perintah sed sekarang

sudo sed -i 's/;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 208.67.222.222"/g' /etc/openvpn/server.conf
sudo sed -i 's/;push "dhcp-option DNS 208.67.220.220"/push "dhcp-option DNS 208.67.220.220"/g' /etc/openvpn/server.conf
sudo sed -i 's/;user nobody/user nobody/g' /etc/openvpn/server.conf
sudo sed -i 's/;group nogroup/group nogroup/g' /etc/openvpn/server.conf

sudo sed -i 's/;log-append/log-append/g' /etc/openvpn/server.conf

Hal-hal yang kami lakukan di sini:Kami menyetel semua lalu lintas untuk melewati OpenVPN, kami menyetel grup dan pengguna ke nogroup dan tak seorang pun, dan kami menyetel log ke /etc/openvpn/openvpn.log. Setelah itu kita perlu satu perubahan lagi tentang ta.key:

sudo nano /etc/openvpn/server.conf

Dan temukan baris ini

tls-auth ta.key 0 # This file is secret
key-direction 0

Itu saja untuk server.conf, selanjutnya kita perlu mengaktifkan penerusan paket untuk server Ubuntu kita

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sudo sysctl -p

aturan ufw juga perlu diubah untuk memungkinkan penyamaran, jadi tambahkan ini di awal, sebelum *filter
bagian

sudo nano /etc/ufw/before.rules
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

Perhatikan bahwa bagian eth0 kemungkinan besar Anda perlu mengubah untuk mencerminkan nama asli dari antarmuka jaringan yang menghadap internet Anda, jadi saya menyorotnya. Selanjutnya kita aktifkan forwarding di ufw seperti yang kita lakukan di sysctl:

sudo sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw

Kami mengkonfigurasi firewall

sudo ufw allow 1194/udp
sudo ufw disable

sudo ufw enable
sudo systemctl start openvpn@server
sudo systemctl status -l openvpn

Jika semuanya berjalan dengan baik, aktifkan mulai openvpn saat boot

sudo systemctl enable openvpn@server

Konfigurasi Klien

Dengan bagian konfigurasi klien, kami menggunakan sertifikat yang sudah kami buat, misalnya client100. Kami juga membutuhkan file konfigurasi klien

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

File yang kami salin adalah pengaturan dasar, oleh karena itu perlu diedit.

nano ~/client-configs/base.conf

Dan kemudian temukan baris yang mengatakan jarak jauh. Ubah juga arahkan ke alamat IP server FQDN Anda.

remote your.serv.ipor.fqdn 1194

Simpan itu, sebagai sisa pengeditan yang akan kita lakukan dengan perintah sed dan echo:

sudo sed -i 's/;user nobody/user nobody/g' ~/client-configs/base.conf
sudo sed -i 's/;group nogroup/group nogroup/g' ~/client-configs/base.conf

sudo sed -i 's/ca ca.crt/#ca ca.crt/g' ~/client-configs/base.conf
sudo sed -i 's/cert client.crt/#cert client.crt/g' ~/client-configs/base.conf
sudo sed -i 's/key client.key/#key client.key/g' ~/client-configs/base.conf

sudo echo key-direction 1 >> ~/client-configs/base.conf

Jadi apa yang kami lakukan di sini? Kami pertama-tama mengatur pengguna dan grup menjadi tidak ada dan tidak ada grup. Kemudian kami mengomentari jalur sertifikat, karena kami akan mengintegrasikan sertifikat sebaris dalam file .ovpn. Kemudian kami menambahkan parameter key-direction 1.

Script untuk membuat konfigurasi klien

Untuk menyematkan konfigurasi klien, kunci, dan sertifikat ke dalam file .ovpn tunggal untuk memudahkan transfer ke klien jarak jauh, kita akan menggunakan skrip sederhana. Ayo lakukan

nano ~/client-configs/make_config.sh

Dan kemudian rekatkan pastebin ini di sana. Setelah menyimpan ini, kita perlu menambahkan bit yang dapat dieksekusi, jadi jalankan perintah ini:

chmod +x ~/client-configs/make_config.sh

Kemudian kita dapat dengan mudah membuat file konfigurasi

cd ~/client-configs
./make_config.sh client100
ls ~/client-configs/files

Sintaks perintahnya mudah, Anda harus berada di dalam direktori client-configs dan menjalankan perintah dengan argumen yang mengatakan nama klien yang Anda buat sebelumnya. Jika Anda membutuhkan lebih banyak klien, buat lebih banyak sertifikat klien dengan nama lain dan jalankan kembali perintah ini. Jika semuanya berjalan dengan baik, di direktori client-configs/files seharusnya ada file ovpn di dalamnya. Anda perlu mentransfernya ke klien atau klien Anda, dan terhubung. Saya akan melakukannya dengan scp, dari laptop Fedora saya, saya melakukan perintah seperti ini

 scp [email protected]:/home/newuser/client-configs/files/client100.ovpn /home/miki/Documents/

Dari sana Anda dapat memuatnya di ponsel Android dengan kabel USB atau melalui AirDroid, atau di Windows VM, atau di Mac. Untuk pengelola jaringan Linux, Anda perlu membongkar file

Kesimpulan

Ini tentang konfigurasi server, selanjutnya kita perlu terhubung dari berbagai klien. Untuk Android kita bisa menggunakan OpenVPN Connect, untuk Mac Tunnelblick, untuk Windows ada OpenVPN dari situs resminya, dan untuk Linux ada network manager. Dalam beberapa artikel berikut kami akan membahas semua ini.


Ubuntu
  1. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  2. Cara Menginstal Dan Mengkonfigurasi Server Redis Di Ubuntu

  3. Cara Menginstal OpenVPN di Ubuntu 18.04

  1. Cara Memasang dan Mengonfigurasi Server Akses OpenVPN

  2. Cara mengatur server OpenVPN di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04

  3. Cara Mengatur Server OpenVPN di Ubuntu 18.04