GNU/Linux >> Belajar Linux >  >> Panels >> OpenVPN

Instal Server OpenVPN di Debian 11/Debian 10

Dalam panduan ini, kita akan belajar cara menginstal Server OpenVPN di Debian 11/Debian 10.

Instal Server OpenVPN di Debian 11/Debian 10

Jalankan pembaruan sistem

apt update

Instal OpenVPN di Debian 11/Debian 10

Paket OpenVPN tersedia pada repo default Debian 11/Debian 10.

apt install openvpn -y

Buat Infrastruktur Kunci Publik OpenVPN

Inisialisasi OpenVPN PKI. PKI terdiri dari:

  • kunci publik dan kunci pribadi untuk server dan setiap klien
  • sertifikat dan kunci Certificate Authority (CA) master yang digunakan untuk menandatangani setiap sertifikat server dan klien.

Jadi, salin direktori konfigurasi easy-rsa ke lokasi yang berbeda untuk memastikan bahwa pemutakhiran paket OpenVPN di masa mendatang tidak akan menimpa modifikasi Anda.

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

Selanjutnya, inisialisasi PKI.

cd /etc/easy-rsa/
./easyrsa init-pki

Contoh keluaran perintah;

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/easy-rsa/pki

Buat Sertifikat dan Kunci Otoritas Sertifikat (CA)

Selanjutnya, buat sertifikat CA dan kunci untuk menandatangani server OpenVPN dan sertifikat klien.

cd /etc/easy-rsa/
./easyrsa build-ca

Ini akan meminta Anda memasukkan frasa sandi kunci CA dan nama umum server.

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019

Enter New CA Key Passphrase: 
Re-Enter New CA Key Passphrase: 
Generating RSA private key, 2048 bit long modulus (2 primes)
.............................................+++++
...................................+++++
e is 65537 (0x010001)
Can't load /etc/easy-rsa/pki/.rnd into RNG
139670192284800:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:98:Filename=/etc/easy-rsa/pki/.rnd
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:Kifarunix-demo CA

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/easy-rsa/pki/ca.crt

Sertifikat CA dibuat dan disimpan di /etc/easy-rsa/pki/ca.crt .

Hasilkan Parameter Diffie Hellman

Hasilkan kunci Diffie-Hellman yang digunakan untuk pertukaran kunci selama jabat tangan TLS antara server OpenVPN dan klien penghubung. Perintah ini telah dijalankan dalam direktori Easy-RSA;

./easyrsa gen-dh

Parameter DH ukuran 2048 akan dibuat di /etc/easy-rsa/pki/dh.pem .

Buat Sertifikat dan Kunci Server OpenVPN

Untuk menghasilkan sertifikat dan kunci pribadi untuk server OpenVPN, jalankan perintah di bawah ini;

cd /etc/easy-rsa
./easyrsa build-server-full server nopass

Masukkan frasa sandi kunci CA buat di atas untuk menghasilkan sertifikat dan kunci.

nopass menonaktifkan penggunaan frasa sandi.

Contoh keluaran;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Generating a RSA private key
........................................+++++
.......................................+++++
writing new private key to '/etc/easy-rsa/pki/private/server.key.MMFHTTtpKD'
-----
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'server'
Certificate is to be certified until Oct 10 18:23:08 2024 GMT (1080 days)

Write out database with 1 new entries
Data Base Updated

Buat kunci Kode Otentikasi Pesan Berbasis Hash (HMAC)

Kunci otentikasi pra-berbagi TLS/SSL digunakan sebagai tanda tangan HMAC tambahan pada semua paket handshake SSL/TLS untuk menghindari serangan DoS dan banjir port UDP. Ini dapat dibuat dengan menggunakan perintah;

openvpn --genkey secret /etc/easy-rsa/pki/ta.key

Buat Sertifikat Pencabutan OpenVPN

Untuk membatalkan sertifikat yang ditandatangani sebelumnya, Anda perlu membuat sertifikat pencabutan.

Jalankan skrip di dalam direktori Easy-RSA;

./easyrsa gen-crl

Sertifikat pencabutan dibuat dan disimpan di /etc/easy-rsa/pki/crl.pem .

Contoh keluaran;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:

An updated CRL has been created.
CRL file: /etc/easy-rsa/pki/crl.pem

Salin Sertifikat dan Kunci Server ke Direktori Konfigurasi Server

Salin semua sertifikat/kunci server yang dihasilkan ke direktori konfigurasi server OpenVPN.

cp -rp /etc/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/

Buat Sertifikat dan Kunci Klien OpenVPN

Sertifikat klien OpenVPN dan kunci pribadi dapat dibuat sebagai berikut

cd /etc/easy-rsa
./easyrsa build-client-full koromicha nopass
  • di mana koromicha adalah nama klien yang sertifikat dan kuncinya dibuat.
  • Selalu gunakan nama umum yang unik untuk setiap klien yang sertifikat dan kuncinya Anda buat.

Contoh keluaran perintah;

Using SSL: openssl OpenSSL 1.1.1d  10 Sep 2019
Generating a RSA private key
...........................+++++
...........................................................................................................................+++++
writing new private key to '/etc/easy-rsa/pki/private/koromicha.key.saAaE6L0tX'
-----
Using configuration from /etc/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'koromicha'
Certificate is to be certified until Oct 10 18:25:37 2024 GMT (1080 days)

Write out database with 1 new entries
Data Base Updated

Untuk menghasilkan untuk klien kedua,

./easyrsa build-client-full janedoe nopass

Anda dapat melihat cara menggunakan easyrsa perintah dengan ./easyrsa --help .

Salin Sertifikat dan Kunci Klien ke Direktori Klien

Buat direktori klien OpenVPN. Misalnya, kami telah membuat sertifikat dan file kunci untuk dua klien, koromicha dan janedoe, oleh karena itu kami membuat direktori sebagai;

mkdir /etc/openvpn/client/{koromicha,janedoe}

Setelah itu, salin sertifikat/kunci yang dibuat klien dan sertifikat CA server ke direktori konfigurasi klien OpenVPN. Anda bisa

cp -rp /etc/easy-rsa/pki/{ca.crt,issued/koromicha.crt,private/koromicha.key} /etc/openvpn/client/koromicha
cp -rp /etc/easy-rsa/pki/{ca.crt,issued/janedoe.crt,private/janedoe.key} /etc/openvpn/client/janedoe/

Konfigurasi Server OpenVPN di Debian 11/Debian 10

Langkah selanjutnya adalah mengkonfigurasi server OpenVPN. Salin contoh konfigurasi server OpenVPN ke /etc/openvpn/server direktori seperti yang ditunjukkan di bawah ini;

Pada Debian 10;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/

Ekstrak konfigurasi.

cd /etc/openvpn/server/
gunzip server.conf.gz

Pada Debian 11;

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/

Ubah file konfigurasi, server.conf , untuk memenuhi kebutuhan Anda;

Beginilah tampilan konfigurasi kami tanpa komentar.

cp /etc/openvpn/server/server.conf{,.bak}
cat > /etc/openvpn/server/server.conf << 'EOL'
port 1194
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
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 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
EOL

Simpan dan keluar dari konfigurasi setelah selesai mengedit.

Konfigurasikan Penerusan IP OpenVPN

Untuk memastikan bahwa lalu lintas dari klien dirutekan melalui alamat IP server OpenVPN (membantu menutupi alamat IP klien), Anda perlu mengaktifkan penerusan IP di server OpenVPN.

Batalkan komentar pada baris, net.ipv4.ip_forward=1 , di /etc/sysctl.conf untuk mengaktifkan penerusan paket untuk IPv4

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

Terapkan perubahan tanpa me-reboot server.

sysctl -p

Izinkan port layanan OpenVPN melalui firewall;

ufw allow 1194/udp

Konfigurasi Penyamaran IP di UFW

Temukan antarmuka default tempat paket Anda dikirim.

ip route get 8.8.8.8
8.8.8.8 via 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 0

Selanjutnya, perbarui aturan UFW;

vim /etc/ufw/before.rules

Tambahkan baris yang disorot berikut tepat sebelum *filter pengaturan meja. Perhatikan antarmuka yang digunakan harus sesuai dengan nama antarmuka di atas.

...
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o enp0s3 -j MASQUERADE
COMMIT
# Don't delete these required lines, otherwise there will be errors
*filter
...

Simpan dan keluar dari konfigurasi.

Aktifkan penerusan paket UFW;

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

Muat ulang UFW;

ufw reload

Menjalankan Server OpenVPN di Debian 11/Debian 10

Mulai dan aktifkan server OpenVPN untuk berjalan pada boot sistem;

systemctl enable --now [email protected]

Memeriksa status;

systemctl status [email protected]
[email protected] - OpenVPN service for server
   Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-10-26 15:06:18 EDT; 9s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Main PID: 1595 (openvpn)
   Status: "Initialization Sequence Completed"
    Tasks: 1 (limit: 2359)
   Memory: 2.4M
   CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
           └─1595 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

Oct 26 15:06:18 debian systemd[1]: Starting OpenVPN service for server...
Oct 26 15:06:18 debian systemd[1]: Started OpenVPN service for server.

Ketika layanan OpenVPN berjalan, itu akan membuat antarmuka tunneling, tun0;

ip add s
...
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::bf6a:bdf4:58e1:ec24/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Juga, pastikan untuk memeriksa log;

tail /var/log/openvpn/openvpn.log
/sbin/ip link set dev tun0 up mtu 1500
/sbin/ip addr add dev tun0 10.8.0.1/24 broadcast 10.8.0.255
Could not determine IPv4/IPv6 protocol. Using AF_INET
Socket Buffers: R=[212992->212992] S=[212992->212992]
UDPv4 link local (bound): [AF_INET][undef]:1194
UDPv4 link remote: [AF_UNSPEC]
MULTI: multi_init called, r=256 v=256
IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0
IFCONFIG POOL LIST
Initialization Sequence Completed

Server OpenVPN sekarang siap menerima dan merutekan koneksi dari klien.

Itu menandai akhir dari panduan kami tentang cara menginstal Server OpenVPN di Debian 11/Debian 10.

Sekarang Anda dapat mengonfigurasi klien Anda sesuai dengan itu.

Tutorial Terkait

Instal dan Konfigurasikan Klien OpenVPN di CentOS 8/Ubuntu 18.04

Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

Konfigurasikan IPSEC VPN menggunakan StrongSwan di Ubuntu 18.04

OpenVPN
  1. Cara menginstal dan mengkonfigurasi Server OpenVPN di Debian 10

  2. Instal server Wireguard di Debian 10/11

  3. Instal server OpenVPN di Debian 10/11

  1. Cara Menginstal Server Redis di Debian 11

  2. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  3. Instal Cockpit di Debian 9

  1. Cara Memasang Server Minecraft di Debian 9

  2. Cara menginstal SuiteCRM di Debian 9

  3. Cara Menginstal ProFTPD di Debian 8