Trong hướng dẫn này, LibreSwan sẽ được cài đặt trên Nền tảng Ubuntu. LibreSwan là một triển khai mã nguồn mở của giao thức IPsec, dựa trên dự án FreeSwan và có sẵn dưới dạng gói đã sẵn sàng để sử dụng trên các bản phân phối Linux dựa trên RedHat. Tuy nhiên, hướng dẫn chi tiết được đưa ra trong mã nguồn của dự án để biên dịch nó trên các nền tảng Linux khác. Sau quá trình cài đặt, một VPN IPsec dựa trên cổng đến cổng sẽ được cấu hình để bảo mật dữ liệu từ các đối tác gửi đến người nhận.
Chi tiết về giao thức IPsec được đưa ra trong bài viết trước của chúng tôi. Tuy nhiên, thông tin tóm tắt về hai phần của giao thức IPsec liên quan đến LibreSwan được giải thích bên dưới.
VPN dựa trên IPsec bao gồm giao thức Trao đổi khóa Internet và giao thức Tải trọng bảo mật đóng gói (ESP).
--> IKE
Như tên gọi của nó, mục đích của giao thức IKE là xác thực (sử dụng khóa được chia sẻ trước, mật mã khóa công khai, freeradius) các đối tác của VPN, tạo khóa động và chia sẻ khóa với các đối tác VPN. Khóa mã hóa cho giai đoạn thứ hai của IPsec cũng phụ thuộc vào IKE. Libreswan triển khai giao thức IKE bằng chương trình pluto của dự án.
--> ESP
Giao thức ESP là thông số kỹ thuật thực tế của chính sách được các đối tác đồng ý, được triển khai trong ngăn xếp IPsec của hạt nhân Linux (NETEY/XFRM).
Các gói bắt buộc cho Ubuntu 16.04
Cần cài đặt các gói sau trên Ubuntu để biên dịch LibreSwan thành công. Một thông tin tóm tắt cũng được cung cấp trong mã nguồn về cách bật hoặc tắt plugin/tính năng và lệnh khi bạn cài đặt LibreSwan.
Việc cài đặt các gói cần thiết được hiển thị bên dưới.
Mã nguồn mới nhất của công cụ IPsec được tải xuống bằng lệnh wget và giải nén bằng lệnh tar sau.
Không cần chạy lệnh configure, chỉ cần chạy lệnh make sẽ hiển thị hai cách để xây dựng LibreSwan như được hiển thị bên dưới.
Cuối cùng, chạy lệnh make all để xây dựng LibreSwan trên nền tảng.
Bây giờ hãy chạy lệnh make install để cài đặt chương trình IPsec.
Cần phải khởi tạo thư viện mã hóa NSS trước khi bắt đầu dịch vụ IPsec. LibreSwan sử dụng thư viện này để sử dụng thuật toán mã hóa trong IPsec VPN.
Cuối cùng, hãy khởi động dịch vụ IPSec bằng lệnh sau.
VPN dựa trên khóa được chia sẻ trước
phiên bản 2 192.168.15.145 192.168.15.245: PSK "vpn_psk123"
thiết lập cấu hình
protostack=netkey
conn vpn_psk
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
trái=192.168.15.145
mạng con trái=172.16.10.0/24
phải=192.168.15.245
mạng con phải=192.169.50.0/24
xác thực=bí mật
loại=đường hầm
tự động=bắt đầu
phiên bản 2 192.168.15.245 192.168.15.145: PSK "vpn_psk123"
cài đặt cấu hình
protostack=netkey
conn vpn_psk
VPN dựa trên khóa RSA (public/private)
Cần tạo khóa RSA cho cả hai máy và đưa chúng vào tệp cấu hình. Phiên bản rút gọn của khóa RSA được hiển thị trong hướng dẫn này. Ngoài ra, hãy đảm bảo rằng khóa công khai được bao gồm phải nằm trong một dòng.
Tạo khóa RSA
Như được hiển thị bên dưới, các lệnh sau được sử dụng để tạo khóa cho cả hai máy ngang hàng.
Khóa công khai được tạo ra được thêm vào tệp ipsec.secrets như được hiển thị bên dưới.
Tương tự như vậy, các khóa RSA được tạo ra bằng cùng một lệnh cho máy bên phải như được hiển thị trong ảnh chụp nhanh sau.
Như được hiển thị ở trên, các lệnh tạo khóa tự động bao gồm khóa công khai RSA trong /etc/ipsec.secrets trên cả hai máy ngang hàng. Khóa riêng của RSA được lưu trữ trong cơ sở dữ liệu của NSS dưới các tệp /etc/ipsec.d/*.db.
Sau khi tạo khóa RSA, bước tiếp theo sẽ thay đổi cấu hình của cả hai máy trong tệp ipsec.conf.
phiên bản 2
thiết lập cấu hình
protostack=netkey
conn vpn_rsa
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
left=192.168.15.145
leftsubnet=172.16.10.0/24
right=192.168.15.245
rightsubnet=192.169.50.0/24
authby=rsasig
leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE
type=tunnel
auto=start
phiên bản 2
config thiết lập
protostack=netkey
conn vpn_rsa
Trạng thái của VPN IPsec trên thiết bị bên trái được hiển thị trong ảnh chụp màn hình sau. Nó cho thấy rằng RSASIG được sử dụng trong chính sách để xác thực các đối tác của đường hầm IPsec.
Mục đích của hướng dẫn này là khám phá "LibreSwan" cung cấp triển khai giao thức IPsec. Nó có sẵn trong các bản phân phối RedHat, tuy nhiên nó có thể được biên dịch dễ dàng cho một nền tảng khác như Ubuntu/Debian. Trong bài viết này, công cụ LibreSwan đầu tiên được xây dựng từ nguồn và sau đó là hai VPN được cấu hình bằng khóa RSA được chia sẻ trước giữa các thiết bị cổng.
Chi tiết về giao thức IPsec được đưa ra trong bài viết trước của chúng tôi. Tuy nhiên, thông tin tóm tắt về hai phần của giao thức IPsec liên quan đến LibreSwan được giải thích bên dưới.
VPN dựa trên IPsec bao gồm giao thức Trao đổi khóa Internet và giao thức Tải trọng bảo mật đóng gói (ESP).
--> IKE
Như tên gọi của nó, mục đích của giao thức IKE là xác thực (sử dụng khóa được chia sẻ trước, mật mã khóa công khai, freeradius) các đối tác của VPN, tạo khóa động và chia sẻ khóa với các đối tác VPN. Khóa mã hóa cho giai đoạn thứ hai của IPsec cũng phụ thuộc vào IKE. Libreswan triển khai giao thức IKE bằng chương trình pluto của dự án.
--> ESP
Giao thức ESP là thông số kỹ thuật thực tế của chính sách được các đối tác đồng ý, được triển khai trong ngăn xếp IPsec của hạt nhân Linux (NETEY/XFRM).
Các tính năng của Libreswan
- Hỗ trợ xác thực dựa trên khóa được chia sẻ trước.
- Hỗ trợ xác thực dựa trên khóa công khai.
- Hỗ trợ cả phiên bản trao đổi khóa IKE v1/v2.
- Thư viện mã hóa NSS được hỗ trợ.
- Xauth và DNSSec cũng được hỗ trợ.
Các gói bắt buộc cho Ubuntu 16.04
Cần cài đặt các gói sau trên Ubuntu để biên dịch LibreSwan thành công. Một thông tin tóm tắt cũng được cung cấp trong mã nguồn về cách bật hoặc tắt plugin/tính năng và lệnh khi bạn cài đặt LibreSwan.
Mã:
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
Việc cài đặt các gói cần thiết được hiển thị bên dưới.
Mã nguồn mới nhất của công cụ IPsec được tải xuống bằng lệnh wget và giải nén bằng lệnh tar sau.
Mã:
wget https://download.libreswan.org/libreswan-3.20.tar.gz
Mã:
tar -xzf libreswan-3.20.tar.gz
Mã:
cd libreswan-3.20
Không cần chạy lệnh configure, chỉ cần chạy lệnh make sẽ hiển thị hai cách để xây dựng LibreSwan như được hiển thị bên dưới.
Cuối cùng, chạy lệnh make all để xây dựng LibreSwan trên nền tảng.
Mã:
make all
Bây giờ hãy chạy lệnh make install để cài đặt chương trình IPsec.
Khởi động dịch vụ IPsec
Như được hiển thị trong ảnh chụp màn hình ở trên, cần phải bật dịch vụ IPSec trên nền tảng Ubuntu bằng lệnh sau.
Mã:
systemctl enable ipsec.service
Cần phải khởi tạo thư viện mã hóa NSS trước khi bắt đầu dịch vụ IPsec. LibreSwan sử dụng thư viện này để sử dụng thuật toán mã hóa trong IPsec VPN.
Mã:
IPsec initnss
Cuối cùng, hãy khởi động dịch vụ IPSec bằng lệnh sau.
Mã:
ipsec setup start
Chạy lệnhipsec status để xem cài đặt của LibreSwan trên nền tảng Ubuntu.
Mã:
ipsec status
Cấu hình LibreSwan
Trong hướng dẫn này, VPN IPsec sẽ được thiết lập giữa các đối tác bằng khóa được chia sẻ trước và khóa RSA (cặp khóa công khai/riêng tư). Cấu hình của cả hai đối tác (trái/phải) được đưa ra bên dưới.VPN dựa trên khóa được chia sẻ trước
Mã:
[I]ipsec.conf (tệp cấu hình của VM bên trái) ipsec.secrets (tệp cấu hình của VM bên trái)
[/I]
thiết lập cấu hình
protostack=netkey
conn vpn_psk
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
trái=192.168.15.145
mạng con trái=172.16.10.0/24
phải=192.168.15.245
mạng con phải=192.169.50.0/24
xác thực=bí mật
loại=đường hầm
tự động=bắt đầu
Mã:
[I]ipsec.conf (tệp cấu hình của VM bên phải) ipsec.secrets (tệp cấu hình của VM bên phải)
[/I]
cài đặt cấu hình
protostack=netkey
conn vpn_psk
Sau khi thiết lập cấu hình trên trong các tệp ipsec.conf và ipsec.secrets, hãy chạy lệnh sau trên cả hai bên để bắt đầu quá trình đàm phán IPSec.ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
left=192.168.15.245
leftsubnet=192.169.50.0/24
right=192.168.15.145
rightsubnet=172.16.10.0/24
authby=secret
type=tunnel
auto=start
Mã:
ipsec restart
Trạng thái của VPN khóa chia sẻ trước
Đầu ra của lệnh ipsec status và setkey -D được hiển thị bên dưới.
Mã:
ipsec status
Mã:
setkey -D
VPN dựa trên khóa RSA (public/private)
Cần tạo khóa RSA cho cả hai máy và đưa chúng vào tệp cấu hình. Phiên bản rút gọn của khóa RSA được hiển thị trong hướng dẫn này. Ngoài ra, hãy đảm bảo rằng khóa công khai được bao gồm phải nằm trong một dòng.Tạo khóa RSA
Như được hiển thị bên dưới, các lệnh sau được sử dụng để tạo khóa cho cả hai máy ngang hàng.
Mã:
ipsec newhostkey --output /etc/ipsec.secrets
Khóa công khai được tạo ra được thêm vào tệp ipsec.secrets như được hiển thị bên dưới.
Tương tự như vậy, các khóa RSA được tạo ra bằng cùng một lệnh cho máy bên phải như được hiển thị trong ảnh chụp nhanh sau.
Như được hiển thị ở trên, các lệnh tạo khóa tự động bao gồm khóa công khai RSA trong /etc/ipsec.secrets trên cả hai máy ngang hàng. Khóa riêng của RSA được lưu trữ trong cơ sở dữ liệu của NSS dưới các tệp /etc/ipsec.d/*.db.
Sau khi tạo khóa RSA, bước tiếp theo sẽ thay đổi cấu hình của cả hai máy trong tệp ipsec.conf.
Mã:
[I]ipsec.conf (tệp cấu hình của VM bên trái)
[/I]
thiết lập cấu hình
protostack=netkey
conn vpn_rsa
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
left=192.168.15.145
leftsubnet=172.16.10.0/24
right=192.168.15.245
rightsubnet=192.169.50.0/24
authby=rsasig
leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE
type=tunnel
auto=start
Mã:
[I]ipsec.conf (tệp cấu hình của VM bên phải)
[/I]
config thiết lập
protostack=netkey
conn vpn_rsa
Sau khi thay đổi các tệp cấu hình LibreSwan, bước tiếp theo là khởi động lại dịch vụ IPsec trên cả hai máy bằng lệnh sau.ike=aes256-sha256;modp4096
Phase2alg=aes256-sha256;modp4096
left=192.168.15.245
leftsubnet=192.169.50.0/24
right=192.168.15.145
rightsubnet=172.16.10.0/24
authby=rsasig
rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE
type=tunnel
auto=start
Mã:
ipsec restart
Mục đích của hướng dẫn này là khám phá "LibreSwan" cung cấp triển khai giao thức IPsec. Nó có sẵn trong các bản phân phối RedHat, tuy nhiên nó có thể được biên dịch dễ dàng cho một nền tảng khác như Ubuntu/Debian. Trong bài viết này, công cụ LibreSwan đầu tiên được xây dựng từ nguồn và sau đó là hai VPN được cấu hình bằng khóa RSA được chia sẻ trước giữa các thiết bị cổng.