Post Views: 48
หลักการ
- สร้าง Certificate Authority (CA) สำหรับใช้ในการ sign Cert หรือ key อื่นๆ
- สร้าง Certificate สำหรับ Server
- สร้าง Certificate สำหรับ Client
- เปิด Firewall สำหรับ IPSec
- ตั้งค่า IPSec
วิธีการ
Certificate
- เริ่มต้นจากการสร้าง Cert. ต่างๆ กันก่อน อันแรกก็จะเป็น CA ซึ่งจะใช้สำหรับการรับรอง (sign) และตรวจสอบ (validate) cert. อื่นๆ จะถูกนำใช้ในระบบ
- name และ common-name ใช้กำหนดชื่อ CA
- key-size กำหนดขนาดของ CA โดยปกติจะเป็น 8-bit คือ 512 1024 2048 4096 ในที่นี่ขอแนะนำเป็นขนาด 4096
- days-valid กำหนดอายุของ CA เป็นจำนวนวัน
- key-usage เป็นการกำหนดหน้าที่ของ CA ว่าจะใช้ทำอะไร สำหรับ CA นั้นให้กำหนดเป็น key-cert-sign และ crl-sign
/certificate add name="Home CA" common-name="Home CA" key-size=4096 days-valid=7300 key-usage=key-cert-sign,crl-sign
/certificate sign "Home CA"
- หลังจากสร้าง CA เรียบร้อย ต่อไปก็สร้าง certificate สำหรับ server
- กำหนดชื่อให้กับ certificate
- subject-alt-name เป็นการกำหนด host dns สำหรับการเชื่อมต่อ
- key-usage สำหรับ server จะเป็น tls-server
/certificate add name="Home server" common-name="Home server" subject-alt-name="DNS:XXXXXXXXXXX.sn.mynetname.net" key-size=4096 days-valid=3650 key-usage=tls-server
/certificate sign "Home server" ca="Home CA"
- สร้าง CA สำหรับ client ที่จะใช้สำหรับการเชื่อมต่อ หลังจากสร้างแล้วก็ทำการ Sign และ export ไฟล์สำหรับใช้ในการติดตั้งที่ client
- กำหนดชื่อตามต้องการ
- key-usages กำหนดเป็น tls-client
/certificate add name="Home client1" common-name="Home client1" key-size=4096 days-valid=3650 key-usage=tls-client
/certificate sign "Home client1" ca="Home CA"
/certificate export-certificate "Home client1" file-name="Home client1" type=pkcs12 export-passphrase=1234567890
ตั้งค่า Firewall
- กำหนดให้ขาเข้าสามารถใช้งาน UDP port 500 และ 4500 ซึ่งเป็น port สำหรับ IPSec/IKE2
/ip firewall filter add action=accept chain=input comment="Allow IPSEC/IKE2 connections" dst-port=500,4500 protocol=udp
/ip firewall filter add action=accept chain=forward comment="Accept in ipsec policy" ipsec-policy=in,ipsec
/ip firewall filter add action=accept chain=forward comment="Accept out ipsec policy" ipsec-policy=out,ipsec
ตั้งค่า IPSec
/ip ipsec mode-config add address-pool=vpn name=vpn
/ip ipsec policy group add name=vpn
/ip ipsec profile add dh-group=modp1024 enc-algorithm=aes-256 hash-algorithm=sha256 name=vpn
/ip ipsec peer add exchange-mode=ike2 name=vpn passive=yes profile=vpn
/ip ipsec proposal add enc-algorithms=aes-256-cbc name=vpn pfs-group=none
/ip ipsec identity add auth-method=digital-signature certificate="Home server" comment="Home client1" generate-policy=port-strict match-by=certificate mode-config=vpn peer=vpn policy-template-group=vpn remote-certificate="Home client1"
/ip ipsec policy add dst-address=0.0.0.0/0 group=vpn proposal=vpn src-address=0.0.0.0/0 template=yes
อ้างอิง
https://forum.mikrotik.com/viewtopic.php?p=919648