Dalam tutorial ini, LibreSwan akan diinstal pada Platform Ubuntu. LibreSwan adalah implementasi open source dari protokol IPsec, didasarkan pada proyek FreeSwan dan tersedia sebagai paket siap pakai pada distribusi Linux berbasis RedHat. Namun, instruksi terperinci diberikan dalam kode sumber proyek untuk mengompilasinya di platform Linux lainnya. Setelah proses instalasi, VPN IPsec berbasis gateway ke gateway akan dikonfigurasi untuk mengamankan data dari rekan pengirim ke penerima.
Detail tentang protokol IPsec diberikan di artikel kami sebelumnya. Namun, informasi singkat tentang dua bagian protokol IPsec sehubungan dengan LibreSwan dijelaskan di bawah ini.
VPN berbasis IPsec terdiri dari Internet Keying Exchange protokol dan Encapsulating Security Payload (ESP) protokol.
--> IKE
Seperti namanya, tujuan protokol IKE adalah untuk mengautentikasi (menggunakan kunci yang dibagikan sebelumnya, kriptografi kunci publik, freeradius) rekan VPN, untuk membuat kunci secara dinamis dan membagikan kunci dengan rekan VPN. Kunci enkripsi untuk fase kedua IPsec juga bergantung pada IKE. Libreswan mengimplementasikan protokol IKE menggunakan program pluto dari proyek tersebut.
--> ESP
Protokol ESP adalah spesifikasi aktual dari kebijakan peer yang disepakati yang diimplementasikan dalam tumpukan IPsec kernel Linux (NETEY/XFRM).
Fitur libreswan
- Dukungan untuk otentikasi berbasis kunci yang dibagikan sebelumnya.
- Dukungan untuk otentikasi berbasis kunci publik.
- Mendukung pertukaran kunci versi IKE v1/v2.
- Library kripto NSS didukung.
- Xauth dan DNSSec juga didukung.
Paket yang Diperlukan untuk Ubuntu 16.04
Diperlukan untuk menginstal paket-paket berikut di Ubuntu agar kompilasi LibreSwan berhasil. Informasi singkat juga diberikan dalam kode sumber cara mengaktifkan atau menonaktifkan plugin/fitur dan perintah saat Anda menginstal LibreSwan.
apt-get -y update
apt-get install libunbound-dev libevent-dev libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools
Instalasi paket yang diperlukan ditunjukkan di bawah ini.
Kode sumber terbaru alat IPsec diunduh menggunakan perintah wget dan diekstraksi menggunakan perintah tar berikut.
wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20
Tidak perlu menjalankan perintah configure, cukup jalankan make perintah yang akan menunjukkan dua cara untuk membangun LibreSwan seperti yang ditunjukkan di bawah ini.
Terakhir, jalankan make all perintah untuk membangun LibreSwan di platform.
make all
Sekarang jalankan make install perintah untuk menginstal program IPsec.
Memulai layanan IPsec
Seperti yang ditunjukkan pada tangkapan layar di atas, diperlukan untuk mengaktifkan layanan IPSec pada platform Ubuntu menggunakan perintah berikut.
systemctl enable ipsec.service
Diperlukan untuk menginisialisasi perpustakaan kripto NSS sebelum memulai layanan IPsec. Ini digunakan oleh LibreSwan untuk penggunaan algoritma kriptografi di IPsec VPN.
IPsec initnss
Terakhir, mulai layanan IPSec menggunakan perintah berikut.
ipsec setup start
Jalankan status ipsec perintah untuk melihat pengaturan LibreSwan pada platform Ubuntu.
ipsec status
Konfigurasi LibreSwan
Dalam tutorial ini, VPN IPsec akan diatur antara rekan menggunakan kunci yang dibagikan sebelumnya dan kunci RSA (pasangan kunci publik/pribadi). Konfigurasi kedua peer (kiri/kanan) diberikan di bawah ini.
VPN berbasis kunci yang dibagikan sebelumnya
ipsec.conf (configuration file of left VM) ipsec.secrets (configuration file of left VM)
versi 2 192.168.15.145 192.1 192.168.15.145 192.168.15.245
penyiapan konfigurasi
ike=aes256-sha256;modp4096
versi 2 192.168.15.245 192.168.15.145:PSK
penyiapan konfigurasi
ike=aes256-sha256;modp4096
Setelah menyetel konfigurasi di atas dalam file ipsec.conf dan ipsec.secrets, jalankan perintah berikut di kedua sisi untuk memulai proses negosiasi IPSec.
Keluaran status ipsec dan setkey -D perintah ditampilkan di bawah.
Diperlukan untuk membuat kunci RSA untuk kedua mesin dan menyertakannya dalam file konfigurasi. Versi kunci RSA yang dikurangi ditampilkan dalam tutorial ini. Pastikan juga bahwa kunci publik yang disertakan harus dalam satu baris.
Pembuatan kunci RSA
Seperti yang ditunjukkan di bawah ini, perintah berikut digunakan untuk menghasilkan kunci untuk kedua peer.
Kunci publik yang dihasilkan ditambahkan dalam file ipsec.secrets seperti yang ditunjukkan di bawah ini.
Demikian pula, kunci RSA dihasilkan menggunakan perintah yang sama untuk mesin sisi kanan seperti yang ditunjukkan pada cuplikan berikut.
Seperti yang ditunjukkan di atas, perintah pembuatan kunci secara otomatis menyertakan kunci publik RSA di /etc/ipsec.secrets pada kedua mesin rekan. Kunci pribadi RSA disimpan dalam database NSS di bawah /etc/ipsec.d/*.db file.
Setelah membuat kunci RSA, langkah selanjutnya mengubah konfigurasi kedua mesin di file ipsec.conf.
versi 2
penyiapan konfigurasi
ike=aes256-sha256;modp4096
versi 2
penyiapan konfigurasi
ike=aes256-sha256;modp4096
Setelah mengubah file konfigurasi LibreSwan, langkah selanjutnya adalah me-restart layanan IPsec di kedua mesin menggunakan perintah berikut.
Status IPsec VPN di perangkat kiri ditunjukkan pada tangkapan layar berikut. Ini menunjukkan bahwa RSASIG digunakan dalam kebijakan untuk mengautentikasi rekan terowongan IPsec.
Tujuan dari tutorial ini adalah untuk mengeksplorasi "LibreSwan" yang menyediakan implementasi protokol IPsec. Ini tersedia di distribusi RedHat, namun dapat dikompilasi untuk platform lain seperti Ubuntu/Debian dengan mudah. Dalam artikel ini, alat LibreSwan pertama dibuat dari sumber dan kemudian dua VPN dikonfigurasi menggunakan kunci pra-berbagi &RSA di antara perangkat gateway.
protostack=netkey
koneksi vpn_psk
phase2alg=aes256-sha256;modp4096
kiri=192.168.15.145
leftsubnet=172.16.10.0/24
kanan=192.168.15.245
rightsubnet=192.169.50.0/24
authby=secret
type=tunnel
auto=start ipsec.conf (configuration file of right VM) ipsec.secrets (configuration file of right VM)
protostack=netkey
koneksi vpn_psk
phase2alg=aes256-sha256;modp4096
kiri=192.168.15.245
leftsubnet=192.169.50.0/24
kanan=192.168.15.145
rightsubnet=172.16.10.0/24
authby=secret
type=tunnel
auto=start ipsec restart
Status VPN kunci yang dibagikan sebelumnya
ipsec status
setkey -D
VPN berbasis kunci RSA (publik/pribadi)
ipsec newhostkey --output /etc/ipsec.secrets
ipsec.conf (configuration file of left VM)
protostack=netkey
koneksi vpn_rsa
phase2alg=aes256-sha256;modp4096
kiri=192.168.15.145
leftsubnet=172.16.10.0/24
kanan=192.168.15.245
rightsubnet=192.169.50.0/24
authby=rsasig
leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
rightrsasigkey=0sAQO
type=tunnel
auto=start ipsec.conf (configuration file of right VM)
protostack=netkey
koneksi vpn_rsa
phase2alg=aes256-sha256;modp4096
kiri=192.168.15.245
leftsubnet=192.169.50.0/24
kanan=192.168.15.145
rightsubnet=172.16.10.0/24
authby=rsasig
rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]
type=tunnel
auto=start ipsec restart