Setup Pfsense as openvpn server for windows XP - Client to site
ติดตั้ง openvpn client
Gen key สำหรับ server และ client
Client config. file
Setup Pfsense
ทำ bridging ระหว่าง WAN และ Lan ของ Pfsense
1. ติดตั้ง openvpn client
ดาวน์โหลด openvpn client จาก http://wwwvpn.net สำหรับ windows รองรับ xp, vista, 7 จะมี 2 แบบคือ
OpenVPN Access Server Windows Client Download
OpenVPN Community Software Windows Client Download <--ใช้อันนี้
แล้วติดตั้งที่เครื่อง client
2. Gen Key สำหรับ server(pfsense) และ client
เรียก command-pomp โดยต้องมีสิทธิ admin เข้าไปที่ path c:program filesopenvpneasy-rsa แล้วใช้คำสั่ง
>init-config.bat
แก้ไขไฟร์ vars.bat ด้วย text editor แก้ตัวแปร attribute เป็นตามต้องการ เช่น country, province, city, org, email
>vars.bat
>clean-all.bat
>build-ca.bat <-- สร้าง file ca ตัวแปรที่สำคัญตอนสร้างคือ "Common Name"
>build-key-server.bat server <-- สร้าง key, crt ของ server ตัวแปรสำคัญคือ "common name" ให้กำหนดเป็น "server" หรือตามชอบ
>build-dh.bat <-- ไฟร์ในการเข้ารหัส
>build-key.bat ovpn-client <-- สร้าง crt, key สำหรับ client โดย ovpn-client แทนด้วยชื่อที่เราต้องการ จะสร้างกี่ client ก็ได้ แต่ชื่อต้องไม่ซ้ำกัน
3. Client config file
client ที่จะ connect ใช้ 4 file โดยเอาไปไว้ที่ "c:program filesopenvpnconfig" คือ
ca.crt <-- ได้จากการสร้าง build-ca.bat อยู่ใน c:program filesovpneasy-rsakeys
client.crt, client.key <-- ได้จากการสร้าง client key อยู่ path เดียวกับ ca โดยชื่อจะเป็นตามที่เรากำหนดเวลาสร้าง
connect_client.ovpn <-- file config สำหรับเชื่อมต่อ สร้างขึ้นเองจาก text editor
ตัวอย่าง config file
client
dev tun <-- ลักษณะการเชื่อมต่อ tap, tun
proto udp <-- protocal tcp, udp
remote xxx.xxx.xxx.xxx 1194 <-- ip ของ pfsense ovpn server และ port
ping 10
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt <-- file ca ชื่อตามที่เรา gen ขึ้นมา
cert client.crt <-- file cert ชื่อตาม client ที่เรา gen
key client.key <-- file key ชื่อตาม client ที่เรา gen
ns-cert-type server <-- ชื่อ server ตามที่ gen
comp-lzo <-- การส่งข้อมูลของ tunnal บีบอัดแบบ lzo
pull
verb 3
4. Setup pfsense
เข้าที่ pfsense vpn->openvpn->server tab ปรับตัวเลือกสอดคล้องกับ client file
protocal : udp
local port : 1194
address pool : xxx.xxx.xxx.0/24 <-- ช่วง ip ที่ไม่ถูกใช้ เพราะถ้าเราเลือกแบบ ไม่ fix ip แล้ว ip ของ client ที่ connect เข้ามา จะได้อยู่ในช่วงของ address pool
Local Network : xxx.xxx.xxx.0/24 <-- ip range ของ lan อิงตามขา lan ของ pfsense
Remote Network : blank
Cryptography : BF-CBC(128 bit) <-- หรือตามต้องการ
Authentication Method : PKI <-- ใช้เป็น Public key
เลือก DHCP-Opt: Disable NetBIOS
เลือก LZO Compression
จากนั้น copy เนื้อหาของ file, key, dh, ca ลงตามช่องของ pfsense
ca.crt ใน "CA certificate"
server.crt ใน "Server certificate"
server.key ใน "Server key"
dh1024.pem ใน "DH parameters"
เปิด rule ของ firewall ให้ openvpn
ตอน นี้ client ควรจะ connect และได้ ip จาก address pool แล้ว แต่ก็ยัง ping เข้าหา เครื่องที่อยู่ใน lan ของ server ไม่ได้ เพราะยังไม่มีการเชื่อมต่อกัน ระหว่างส่วนที่เป็น wan ที่ client connect เข้ามา กับส่วนที่เป็น lan ภายใน โดยต้องทำ Bridging ก่อน
5. OpenVPN Client Bridging
เข้าไปที่ pfsense -> openvpn -> server tab เลือก edit
เลือก "Use static IPs" <-- pfsense จะจ่าย ip ให้ ovpn client โดยอิงกับ dhcp ภายในเอง หรือ รเาจะ fix iip ไปเลยก็ได้
Cuntomer Option เพิ่มเป็น
dev tapx <-- x เป็นตัวเลข 0, 1, ... ขึ้นกับใช้ tap ไหน
server-bridge 192.1.1.1 255.255.255.0 192.1.1.20 192.1.1.30 <-- อยู่ในรูป (Lan IP)(Lan netmask)(openvpn client range start)(openvpn client range end)
3. เข้าไป shell ของ pfsense แก้ /conf/config.xml เพิ่มโค๊ดนี้ ในส่วนของ system
ifconfig bridge0 create
ifconfig bridge0 addm em2 up <-- em2 คือ lan interface เปลี่ยนตามความถูกต้อง
ifconfig bridge0 addm tap0 <-- เป็น tap หรือ tun ตาม client ที่ connect เข้ามา
ifconfig bridge0 ถ้าทำได้ถูกต้อง เมื่อไปที่ pfsense -> status -> interfaces จะเป็น Lan ในส่วน bridge status จะเป็น Learning
ผิดถูกอย่างไรแนะนำด้วยครับ
0 comments:
Post a Comment