Phần này giải quyết các vấn đề thường gặp trong quá trình thiết lập VPN và cung cấp giải pháp cho các phiên bản hệ điều hành khác nhau.
| Hệ điều hành | Phần mềm IPsec khuyến nghị | Package Manager | Trạng thái |
|---|---|---|---|
| Amazon Linux 2 | OpenSwan | yum | ✅ Hỗ trợ |
| Amazon Linux 2023 | Libreswan | dnf | ✅ Khuyến nghị |
| Ubuntu 20.04+ | StrongSwan | apt | ✅ Ưu tiên |
| RHEL 8+ | Libreswan | dnf | ✅ Hỗ trợ |
Nguyên nhân: Gói OpenSwan không có sẵn trong Amazon Linux 2023
Thông báo lỗi:
No match for argument: openswan
Error: Unable to locate package openswan
✅ Giải pháp: Sử dụng Libreswan thay vì OpenSwan
# Kiểm tra phiên bản OS trước
cat /etc/os-release
# Đối với Amazon Linux 2023
sudo dnf update -y
sudo dnf --enablerepo=fedora install libreswan -y
# Xác minh cài đặt
rpm -qa | grep libreswan
systemctl status ipsec
Nguyên nhân: Cấu hình OpenSwan không hoạt động với Libreswan
✅ Giải pháp: Cập nhật cú pháp cấu hình
Cấu hình Libreswan (/etc/ipsec.conf):
# /etc/ipsec.conf - Cấu hình Libreswan
config setup
protostack=netkey
plutodebug=none
# Bao gồm crypto policies và cấu hình bổ sung
include /etc/crypto-policies/back-ends/libreswan.config
include /etc/ipsec.d/*.conf
Cấu hình AWS Cập nhật (/etc/ipsec.d/aws.conf):
conn Tunnel1
authby=secret
auto=start
left=%defaultroute
leftid=<CUSTOMER_GATEWAY_PUBLIC_IP>
right=<AWS_VPN_TUNNEL_1_IP>
type=tunnel
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp2048
ike=aes128-sha1;modp2048
keyingtries=%forever
keyexchange=ike
leftsubnet=<LOCAL_NETWORK_CIDR>
rightsubnet=<REMOTE_NETWORK_CIDR>
dpddelay=10
retransmit-timeout=30s
dpdaction=restart_by_peer
conn Tunnel2
authby=secret
auto=start
left=%defaultroute
leftid=<CUSTOMER_GATEWAY_PUBLIC_IP>
right=<AWS_VPN_TUNNEL_2_IP>
type=tunnel
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp2048
ike=aes128-sha1;modp2048
keyingtries=%forever
keyexchange=ike
leftsubnet=<LOCAL_NETWORK_CIDR>
rightsubnet=<REMOTE_NETWORK_CIDR>
dpddelay=10
retransmit-timeout=30s
dpdaction=restart_by_peer
Khác biệt chính so với OpenSwan:
auth=esp (không cần trong Libreswan)dpdtimeout=30 thành retransmit-timeout=30sNguyên nhân: Lệnh service network restart không tìm thấy
Thông báo lỗi:
bash: service: command not found
# hoặc
Failed to restart network.service: Unit network.service not found
✅ Giải pháp: Sử dụng lệnh systemd cho Amazon Linux 2023
# Quản lý network service hiện đại
sudo systemctl restart systemd-networkd
sudo systemctl restart systemd-networkd-wait-online
# Áp dụng thay đổi sysctl
sudo sysctl -p
# Quản lý IPsec service
sudo systemctl enable ipsec
sudo systemctl start ipsec
sudo systemctl restart ipsec
Nguyên nhân: IPsec tunnels không thể thiết lập kết nối
✅ Các bước Chẩn đoán:
sudo systemctl status ipsec
sudo ipsec status
sudo ipsec trafficstatus
sudo ipsec verify
sudo ipsec whack --status
# Test kết nối đến AWS VPN endpoints
ping -c 4 <AWS_VPN_TUNNEL_1_IP>
ping -c 4 <AWS_VPN_TUNNEL_2_IP>
# Kiểm tra routing
ip route show
ip route get <REMOTE_NETWORK>
# Giám sát log real-time
sudo journalctl -u ipsec -f
# Kiểm tra authentication logs
sudo tail -f /var/log/secure
# Kiểm tra system messages
sudo tail -f /var/log/messages
Nguyên nhân: PSK authentication thất bại
Nguyên nhân thường gặp:
✅ Giải pháp:
# Định dạng chính xác (chú ý khoảng cách)
<CUSTOMER_GATEWAY_IP> <AWS_TUNNEL_IP>: PSK "<PRE_SHARED_KEY>"
# Ví dụ:
3.0.55.195 18.138.189.202: PSK "ODdP8ym_R7vCDK0DXdjKhozZc323Nd7V"
3.0.55.195 52.74.110.26: PSK "UKjoh_Q_FzbSyHAtlkQWUCj2ssw.6H09"
sudo chmod 600 /etc/ipsec.d/aws.secrets
sudo chown root:root /etc/ipsec.d/aws.secrets
sudo systemctl restart ipsec
Kiểm tra Cấu hình Hệ thống:
# Xác minh IP forwarding
cat /proc/sys/net/ipv4/ip_forward
# Kiểm tra RP filter settings
cat /proc/sys/net/ipv4/conf/default/rp_filter
# Xác minh source route acceptance
cat /proc/sys/net/ipv4/conf/default/accept_source_route
Áp dụng Thiết lập Chính xác (/etc/sysctl.conf):
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
# Áp dụng thay đổi
sudo sysctl -p
Kiểm tra Trạng thái Firewall:
# Kiểm tra firewall có đang chạy không
sudo systemctl status firewalld
# Liệt kê rules hiện tại
sudo firewall-cmd --list-all
Cho phép IPsec Traffic:
# Cho phép IPsec protocols
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --permanent --add-port=500/udp
sudo firewall-cmd --permanent --add-port=4500/udp
# Reload firewall
sudo firewall-cmd --reload
Tối ưu IPsec Performance:
# Thêm vào /etc/ipsec.conf dưới config setup
config setup
protostack=netkey
plutodebug=none
# Tối ưu hiệu suất
nhelpers=0
interfaces=%defaultroute
# Từ Customer Gateway đến AWS private resources
ping -c 4 <AWS_PRIVATE_IP>
# Từ AWS private resources đến Customer Gateway
ping -c 4 <CUSTOMER_GATEWAY_PRIVATE_IP>
# Kiểm tra VPN routes đã được học chưa
ip route show | grep <REMOTE_NETWORK>
# Xác minh route table trong AWS Console
# VPC → Route Tables → Kiểm tra propagated routes
# Giám sát liên tục
watch -n 5 'sudo ipsec trafficstatus'
# Kiểm tra tunnel statistics
sudo ipsec whack --trafficstatus
# Quản lý Service
sudo systemctl status ipsec
sudo systemctl restart ipsec
sudo systemctl enable ipsec
# Xác minh Cấu hình
sudo ipsec verify
sudo ipsec whack --status
# Kiểm tra Kết nối
ping -c 4 <REMOTE_IP>
traceroute <REMOTE_IP>
# Phân tích Log
sudo journalctl -u ipsec -f
sudo tail -f /var/log/secure
# Chẩn đoán Mạng
ip route show
netstat -rn
ss -tuln | grep -E '500|4500'
Nếu bạn tiếp tục gặp vấn đề:
Để được hỗ trợ thêm, tham khảo:
💡 Mẹo: Luôn test VPN connectivity từ cả hai hướng và giám sát logs trong quá trình thiết lập ban đầu để nhanh chóng xác định và giải quyết vấn đề.