Cara Setting VPN berbasis IPsec dengan Strongswan di CentOS/RHEL 8


strongSwan adalah solusi VPN berbasis IPsec sumber terbuka, multi-platform, modern, dan lengkap untuk Linux yang memberikan dukungan penuh untuk Internet Key Exchange (baik IKEv1 dan IKEv2) untuk membangun asosiasi keamanan (SA) antara dua rekan. Ini berfitur lengkap, desain modular dan menawarkan lusinan plugin yang meningkatkan fungsionalitas inti.

Artikel Terkait: Cara Mengatur VPN berbasis IPsec dengan Strongswan di Debian dan Ubuntu

Dalam artikel ini, Anda akan mempelajari cara menyiapkan gateway VPN IPsec situs-ke-situs menggunakan strongSwan di server CentOS/RHEL 8. Hal ini memungkinkan rekan-rekan untuk mengautentikasi satu sama lain menggunakan kunci pra-berbagi yang kuat (PSK). Penyiapan situs-ke-situs berarti setiap gateway keamanan memiliki sub-jaringan di belakangnya.

Lingkungan Pengujian

Jangan lupa untuk menggunakan alamat IP dunia nyata Anda selama konfigurasi sambil mengikuti panduan ini.

Situs 1 Gerbang
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Situs 2 Gerbang
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Langkah 1: Mengaktifkan Penerusan IP Kernel di CentOS 8

1. Mulailah dengan mengaktifkan fungsionalitas penerusan IP kernel di file konfigurasi /etc/sysctl.conf di kedua gateway VPN.

vi /etc/sysctl.conf

Tambahkan baris-baris ini di file.

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 

2. Setelah menyimpan perubahan pada file, jalankan perintah berikut untuk memuat parameter kernel baru saat runtime.

sysctl -p

3. Selanjutnya, buat rute statis permanen di file /etc/sysconfig/network-scripts/route-eth0 di kedua gateway keamanan.

vi /etc/sysconfig/network-scripts/route-eth0

Tambahkan baris berikut dalam file.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Kemudian mulai ulang pengelola jaringan untuk menerapkan perubahan baru.

systemctl restart NetworkManager

Langkah 2: Menginstal strongSwan di CentOS 8

5. Paket strongswan disediakan di repositori EPEL. Untuk menginstalnya, Anda perlu mengaktifkan repositori EPEL, lalu menginstal strongwan di kedua gateway keamanan.

dnf install epel-release
dnf install strongswan

6. Untuk memeriksa versi strongswan yang terinstal di kedua gateway, jalankan perintah berikut.

strongswan version

7. Selanjutnya, mulai layanan strongswan dan aktifkan layanan tersebut untuk memulai secara otomatis saat boot sistem. Kemudian verifikasi status di kedua gateway keamanan.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Catatan: Versi terbaru strongswan di CentOS/REHL 8 hadir dengan dukungan untuk swanctl (utilitas baris perintah portabel baru yang diperkenalkan dengan strongSwan 5.2.0, digunakan untuk mengonfigurasi, mengontrol, dan memantau daemon IKE Charon menggunakan plugin vici) dan starter utilitas (atau ipsec) menggunakan plugin stroke yang tidak digunakan lagi.

8. Direktori konfigurasi utama adalah /etc/strongswan/ yang berisi file konfigurasi untuk kedua plugin:

ls /etc/strongswan/

Untuk panduan ini, kita akan menggunakan utilitas IPsec yang dipanggil menggunakan perintah strongswan dan antarmuka guratan. Jadi kita akan menggunakan file konfigurasi berikut:

  • /etc/strongswan/ipsec.conf – file konfigurasi untuk subsistem strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets – file rahasia.

Langkah 3: Mengonfigurasi Gerbang Keamanan

9. Pada langkah ini, Anda perlu mengonfigurasi profil koneksi pada setiap gateway keamanan untuk setiap situs menggunakan file konfigurasi strongswan /etc/strongswan/ipsec.conf.

Mengonfigurasi Profil Koneksi Situs 1

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Salin dan tempel konfigurasi berikut ke dalam file.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Mengonfigurasi Profil Koneksi Situs 2

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Salin dan tempel konfigurasi berikut ke dalam file:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Mari kita uraikan secara singkat masing-masing parameter konfigurasi di atas:

  • penyiapan konfigurasi – mendefinisikan informasi konfigurasi umum untuk IPSec yang berlaku untuk semua koneksi.
  • charondebug – menentukan berapa banyak keluaran debug Charon yang harus dicatat.
  • uniqueids – menentukan apakah ID peserta tertentu harus tetap unik.
  • conn gateway1-to-gateway2 – digunakan untuk mengatur nama koneksi.
  • type – mendefinisikan jenis koneksi.
  • Otomatis – digunakan untuk mendeklarasikan cara menangani koneksi ketika IPSec dimulai atau dimulai ulang.
  • keyexchange – mendeklarasikan versi protokol IKE yang akan digunakan.
  • authby – menentukan bagaimana rekan harus mengautentikasi satu sama lain.
  • kiri – menyatakan alamat IP antarmuka jaringan publik peserta kiri.
  • leftsubnet – mendeklarasikan subnet pribadi di belakang peserta kiri.
  • kanan – menyatakan alamat IP antarmuka jaringan publik peserta yang tepat.
  • rightsubnet – mendeklarasikan subnet pribadi di belakang peserta kiri.
  • ike – digunakan untuk mendeklarasikan daftar algoritma enkripsi/autentikasi IKE/ISAKMP SA yang akan digunakan. Perhatikan bahwa ini bisa berupa daftar yang dipisahkan koma.
  • esp – menentukan daftar algoritma enkripsi/autentikasi ESP yang akan digunakan untuk koneksi.
  • agresif – menyatakan apakah akan menggunakan Mode Agresif atau Utama.
  • keyingtries – menyatakan jumlah upaya yang harus dilakukan untuk menegosiasikan koneksi.
  • ikelifetime – menentukan berapa lama saluran kunci suatu koneksi harus bertahan sebelum dinegosiasi ulang.
  • seumur hidup – menentukan berapa lama koneksi tertentu akan bertahan, mulai dari negosiasi yang berhasil hingga habis masa berlakunya.
  • dpddelay – menyatakan interval waktu pengiriman pesan/INFORMASI R_U_THERE ke rekan.
  • dpdtimeout – digunakan untuk mendeklarasikan interval waktu habis, setelah itu semua koneksi ke rekan akan dihapus jika tidak ada aktivitas.
  • dpdaction – menentukan cara menggunakan protokol Dead Peer Detection (DPD) untuk mengelola koneksi.

Anda dapat menemukan deskripsi semua parameter konfigurasi untuk subsistem strongSwan IPsec dengan membaca halaman manual ipsec.conf.

man ipsec.conf

Langkah 4: Mengonfigurasi PSK untuk Otentikasi Peer-to-Peer

10. Selanjutnya, Anda perlu membuat PSK yang kuat untuk digunakan oleh rekan-rekan untuk otentikasi sebagai berikut.

head -c 24 /dev/urandom | base64

11. Tambahkan PSK di file /etc/strongswan/ipsec.conf di kedua gateway keamanan.

vi /etc/strongswan/ipsec.secrets

Masukkan baris berikut dalam file.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Kemudian mulai layanan strongsan dan periksa status koneksi.

systemctl restart strongswan
strongswan status

13. Uji apakah Anda dapat mengakses subnet pribadi dari salah satu gateway keamanan dengan menjalankan perintah ping.

ping 10.20.1.1
ping 10.10.1.1

14. Terakhir, untuk mempelajari lebih lanjut perintah strongswan untuk memunculkan/menurunkan koneksi secara manual dan banyak lagi, lihat halaman bantuan strongswan.

strongswan --help

Itu saja untuk saat ini! Untuk berbagi pemikiran Anda dengan kami atau mengajukan pertanyaan, hubungi kami melalui formulir umpan balik di bawah. Dan untuk mempelajari lebih lanjut tentang utilitas swanctl baru dan struktur konfigurasi baru yang lebih fleksibel, lihat Dokumentasi Pengguna strongSwan.