ฉันพยายามตั้งค่าเซิร์ฟเวอร์รูทในอินเทอร์เน็ตสาธารณะกับ StrongSwan เพื่อใช้เป็นเซิร์ฟเวอร์ VPN วางแผนที่จะทำการอุโมงค์การจราจรทางอินเทอร์เน็ตทั้งหมดสำหรับอุปกรณ์บางอย่างผ่านเซิร์ฟเวอร์นี้ ฉันยังได้ตั้งค่าเซิร์ฟเวอร์ OpenVPN สำหรับสิ่งเดียวกันซึ่งใช้งานได้ดี แต่อุปกรณ์บางอย่างรองรับ IPSec เท่านั้นดังนั้นฉันจึงจำเป็นต้องใช้เช่นกันดังนั้นโปรดอย่าบอกใบ้ให้ใช้ OpenVPN แทน;) ปัญหาที่ฉันเผชิญคือการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ จะทำให้หมดเวลาอิสระในสิ่งที่ลูกค้าใช้ ในเซิร์ฟเวอร์บันทึกเมื่อพยายามเชื่อมต่อฉันได้รับข้อความมากมาย:
Feb 22 16:05:30 htzsv001 charon: 14[IKE] retransmit 5 of request with message ID 0
ในขณะที่ลูกค้าฉันไม่ได้รับอะไรเลยหรือข้อผิดพลาด 0x2027 ซึ่งหมายถึงการหมดเวลาจากสิ่งที่ฉันพบบนอินเทอร์เน็ต Usecase หลักคือการเชื่อมต่อเราเตอร์ FritzBox กับ VPN ดังนั้นให้ฉันแสดงให้เห็นว่าการตั้งค่าที่นี่แม้ว่าการกำหนดค่าอื่น ๆ จะดูแตกต่างกันอย่างเห็นได้ชัดและเมื่อฉันได้รับปัญหาบนอุปกรณ์ทั้งหมดฉันถือว่ามันเป็นปัญหาทั่วไปหรืออย่างใดอย่างหนึ่ง
การกำหนดค่าเซิร์ฟเวอร์:
# ipsec.conf - strongSwan IPsec configuration file
config setup
conn %default
left=VPN Server fqdn
leftsubnet=0.0.0.0
authby=secret
auto=start
conn avm2swan
ike=aes256-sha-modp1024
esp=aes256-sha1-modp1024
right=DynDNS Of my Home
rightid=DynDNS Of my Home
rightsubnet=192.168.0.0/24
ikelifetime=3600s
keylife=3600s
ใน FritzBox ฉันนำเข้าการกำหนดค่าต่อไปนี้:
vpncfg {
connections {
enabled = yes;
editable = no;
conn_type = conntype_lan;
name = Server fqdn;
boxuser_id = 0;
always_renew = yes;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 0.0.0.0;
remote_virtualip = 0.0.0.0;
remotehostname = Server fqdn;
keepalive_ip = 0.0.0.0;
localid {
fqdn = DynDNS Of my Home;
}
remoteid {
fqdn = Server Hostname;
}
mode = phase1_mode_idp;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "Password set in ipsec.secrets";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.0.0;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = Server IP;
mask = 255.255.255.192;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 192.168.0.0 255.255.255.0";
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";
}
บรรทัดที่ฉันไม่แน่ใจจริงๆคือ
mask = 255.255.255.192;
ในส่วน phase2remoteid ฉันเพิ่งใส่ Netmask ที่ ifconfig ให้ฉันสำหรับอินเทอร์เฟซบนเซิร์ฟเวอร์บางทีมันอาจเป็น 0.0.0.0 shpuld? ทุกอย่างดูสมเหตุสมผลสำหรับฉัน แต่บางทีฉันอาจมีความเข้าใจผิด ๆ