Ref:
- https://community.fortinet.com/t5/FortiGate/Technical-Tip-IPsec-connection-between-FortiGate-and-Ubuntu-via/ta-p/207149
Env
- Ubuntu 24.04 (sudo apt upgrade)
# install main and plugin package strongswan
sudo apt update
sudo apt install strongswan
sudo apt install charon-systemd
sudo apt install strongswan libcharon-extra-plugins libstrongswan-standard-plugins
# check plugin load able
sudo ipsec statusall | grep "plugins"
- คอนฟิก /etc/ipsec.conf อย่าลืมกันเหนียวก่อน
# config /etc/ipsec.conf เพิ่ม connection ไว้ด้านล่างสุดได้เลย อย่าลืม ด้านล่าง FGT ต้อง indent ด้วยนะ
conn "FGT"
keyexchange=ikev1
ikelifetime=1440m
keylife=720m
aggressive=yes # <--- ลองเปลี่ยนจาก no เป็น yes
ike=aes256-sha256-modp2048 # <--- มั่นใจว่าเป็น modp2048 (Group 14) [cite: 100, 137]
esp=aes256-sha256-modp2048
xauth=client
left=%defaultroute
leftsourceip=%config
leftauth=psk
rightauth=psk
leftauth2=xauth
right=122.x.x.xxx # [cite: 54]
rightid=122.x.x.xxx # [cite: 54]
rightsubnet=0.0.0.0/0
xauth_identity=myuservpn # <--- ใส่ Username ตามตัวอย่าง [cite: 157]
auto=add
- คอนฟิก secret key อย่าลืมกันเหนียวด้วย /etc/ipsec.secret
# config /etc/ipsec.secrets
122.x.x.xxx : PSK "pass share key"
myuservpn : XAUTH "mypasswordvpn"
- ผิดอยู่ตั้งนานที่ตรงนี้
# % 122.x.x.xxx : PSK "passkey" ไม่ต้องมี % นำหน้า 122
- สตาร์ท vpn connection ที่สร้างไว้ชือ่ FGT
# start vpn connection
sudo ufw allow 500/udp
sudo ufw allow 4500/udp
sudo ipsec restart
sudo ipsec up FGT
- ถ้าเชื่อมต่อได้ปกติ จะขึ้นประมาณนี้
connection 'FGT' established successfully
- หยุดก็น่าจะประมาณนี้
sudo ipsec down FGTIKE_SA [1] closed successfully
- ถ้ายังเชื่อมต่อไม่ได้ให้ไปดู log
sudo tail -f /var/log/syslog | grep --color=auto charon
- แล้วเอา log ไปถาม ลูกพี่ต่อนะจ้ะ
- กรณีสั่ง sudo ipsec up CON_NAME แล้ว shutdown เครื่องโดยไม่สั่ง sudo ipsec down CON_NAME
- เปิดเครื่องใหม่สั่ง sudo ipsecc up CON_NAME แล้ว
2026-04-05T10:03:47.597027+07:00 Inspiron-5458 charon: 03[NET] no socket implementation registered, sending failed
2026-04-05T10:03:54.797559+07:00 Inspiron-5458 charon: 16[IKE] sending retransmit 2 of request message ID 0, seq 1
2026-04-05T10:03:54.798356+07:00 Inspiron-5458 charon: 16[NET] sending packet: from 192.168.1.86 to 122.154.130.253[500] (560 bytes)
2026-04-05T10:03:54.798599+07:00 Inspiron-5458 charon: 03[NET] no socket implementation registered, sending failed
- เชื่อมต่อ VPN ไม่ได้ ลูกพี่บอกว่า มัน มี service ที่รันอยู่แล้วเพราะไม่สั่ง down ก่อนหน้า เลยพยายามเปิด socket ซ้ำซ้อน
1. แก้ไขปัญหาเฉพาะหน้า (เพื่อให้รันได้ทันที) อันนี้ลองแล้วใช้ได้คับ
- สั่งหยุดและเคลียร์ Service ที่ค้างอยู่ แล้วเริ่มระบบใหม่แบบสะอาดๆ ครับ:
sudo systemctl stop strongswansudo systemctl stop strongswan-startersudo ipsec restartsudo ipsec up CON_NAME
2. วิธีแก้ปัญหาถาวร (ป้องกันไม่ให้เกิดอีกหลัง Reboot) อันนี้ลอง ไม่ down แล้วปิดและเปิดใหม่ สามารถ สั่ง up ได้ปกติ
ใน Ubuntu 24.04 แพ็กเกจ strongswan จะพยายามรัน charon-systemd (แบบใหม่) ผ่าน systemd โดยอัตโนมัติ ซึ่งมันไปตีกับ strongswan-starter (แบบเก่าที่คุณใช้คอนฟิก ipsec.conf) ให้คุณปิดตัวที่ก่อปัญหาทิ้งไปครับ:
Disable Service แบบใหม่:
sudo systemctl disable strongswan && sudo systemctl stop strongswanตั้งค่าให้ Service แบบเก่ารันตอนบูตแทน:
sudo systemctl enable strongswan-starter
สาเหตุที่เกิดขึ้นจาก Log ของคุณ
"initiating Aggressive Mode": ระบบพยายามเริ่มเชื่อมต่อตามคอนฟิกที่คุณตั้งไว้ได้ถูกต้องแล้ว
"no socket implementation registered": ตัว Daemon (charon) บูตขึ้นมาสมบูรณ์แต่ปลั๊กอินสำหรับสร้าง Network Socket ไม่ทำงาน เนื่องจากมีการรัน Service ซ้อนกัน ทำให้ปลั๊กอินถูกแย่งใช้งานหรือโหลดไม่สำเร็จครับ
ข้อแนะนำเพิ่มเติม
หากคุณต้องใช้ VPN นี้บ่อยๆ และไม่อยากพิมพ์คำสั่งทุกครั้งที่เปิดเครื่อง คุณสามารถเปลี่ยนค่าใน /etc/ipsec.conf จาก:
auto=addเป็นauto=startเพื่อให้ระบบพยายามเชื่อมต่อ VPN ให้ทันทีที่บูตเครื่องและมีอินเทอร์เน็ตครับ- หากต้องการเปลี่ยนชื่อ หรือ เพิ่ม connection vpn ก็เข้าไปแก้ไฟล์
sudo nanao /etc/ipsec.conf
- เมื่อแก้ไขหรือเพิ่ม connection vpn อันใหม่แล้ว restart ipsec และจะใช้ชื่อ connection ใหม่ได้
sudo ipsec restart && sudo ipsec up connection_new
- เราสามารถตรวจสอบ สถานะต่างๆ แล ip vpn ด้วยคำสั่ง
sudo ipsec statusall
- หรือ คำสั่ง
ip addr show
No comments:
Post a Comment