RouterOS: v6.43.2
在設定 OpenVPN server 前,首先需要先產生 server 需要的憑證檔案 (ca.key、ca.crt), 產生憑的方法參考這篇文章: [Ubuntu] 使用 OpenSSL 產生憑證
1. 設定 OVPN server
1.1 開啟 WinBox 上傳 server 用憑證與私鑰 (ca.crt & ca.key)
1.2 開啟 Winbox Terminal 匯入憑證與私鑰 (ca.crt & ca.key )
/certificate import file-name=ca.crt
passphrase: certificates-imported: 1 private-keys-imported: 0 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0
/certificate import file-name=ca.key
passphrase: certificates-imported: 0 private-keys-imported: 1 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0
1.3 設定 OVPN server
/ip pool add name=ovpn_pool ranges=10.10.0.1-10.10.0.254 /ppp profile add local-address=ovpn_pool name=ovpn remote-address=ovpn_pool /interface ovpn-server server set certificate=ca.crt_0 cipher=blowfish128,aes128,aes192,aes256 default-profile=ovpn enabled=yes netmask=16 /ppp secret add name=帳號 password=密碼 profile=ovpn service=ovpn
為方便管理,使用 /ip pool 分配一段無人使用的 IP 範圍給 OVPN server 使用。
在 /ppp profile 中 remote-address 為 OVPN 連線後分配給 client 端的 IP,local-address 則為 OVPN 連線後 server 端的 IP,local-address 與 remote-address 必須在同一網段,在這裏我是直接設成 ovpn_pool 。
最後在 /ppp secret 中新增帳號密碼給 client 端用來登入連線,同一組帳號密碼可同時多人登入使用。
OpenVPN server 設成完成。
2. Client 設定 – Windows
下載並安裝 OpenVPN client 軟體,將 ca.crt 複製到 c:\Program Files\OpenVPN\config\ ,然後編輯或新增 c:\Program Files\OpenVPN\config\OpenVPN.ovpn 檔案:
OpenVPN.ovpn 檔案內容如下:
client
dev tun
proto tcp
remote YOUR_OVPN_SERVER_IP 1194
keepalive 10 120
auth SHA1
auth-user-pass
cipher AES-256-CBC
verb 5
redirect-gateway def1
dhcp-option DNS 8.8.8.8
ca ca.crt
將 YOUR_OVPN_SERVER_IP 換成實際 server domain 或 IP 即可。
在每次連線時會 OpenVPN client 軟體會詢問帳號密碼,如果不想每次都詢問則將
auth-user-pass
改成
auth-user-pass auth.txt
並在 c:\Program Files\OpenVPN\config\ 目錄中建立 auth.txt,其內容即為SERVER設定的帳號密碼:
帳號 密碼
另外,可以將 ca.crt 整合到 OpenVPN.ovpn 檔案中,將
ca ca.crt
替換成
<ca> # 將 ca.crt 內容複製到這裏 </ca>
結果類似這樣:
<ca> -----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdABCby4xFzAVBgNVBAMT DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDEFJjj4XLh7dIN9b xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBABClZRNI+DT69 ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXDEFaJWFBM5 JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ -----END CERTIFICATE----- </ca>
server 與 client 設定正確的話就可以正常連線了。
3. Client 端設定 – MikroTik RouterOS
3.1 如果 client 是另一台 MikroTik RouterOS,並且想將 client 所有流量導向 OVPN 可以這樣設 :
/interface ovpn-client add connect-to=YOUR_OVPN_SERVER_IP name=ovpn-out1 password=密碼 user=帳號 /ip firewall nat add action=masquerade chain=srcnat out-interface=ovpn-out1 /ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=ovpn_rule passthrough=no src-address=10.33.1.0/24 /ip route add distance=1 gateway=ovpn-out1 routing-mark=ovpn_rule
YOUR_OVPN_SERVER_IP 可以換成 server domain 或 IP。
/ip firewall mangle 中 src-address=10.33.1.0/24 是指哪些 IP 範圍的封包要走 OVPN, 10.33.1.0/24 是我這台 ROS 的 DHCP 設定,也就是只要接在這台 ROS 機器下的網路設備封包都會走 OVPN 出去。
3.2 如果只是想存取 server 端下的內網,一般正常上網不走 OVPN 可以這樣設:
/interface ovpn-client add connect-to=YOUR_OVPN_SERVER_IP name=ovpn-out1 password=密碼 user=帳號 /ip firewall nat add action=masquerade chain=srcnat out-interface=ovpn-out1 /ip route add distance=1 gateway=ovpn-out1 dst-address=192.168.1.0/24
dst-address=192.168.1.0/24 為 server 端內網 IP 範圍,表示在 client 中要存取這些 IP 範圍則透過 ovpn-out1 出去。
您好,RouterOS: v6以上的版本
裡面就內建了certificate,可以製作憑證,我看了官網跟一些教學文章
依照上面的做法,用兩台MikroTik做 sie to sie ovpn
不過還是沒辦法起來,Client端連線一直出現could not connect
下一段就是disconnect了
不知道您有沒用Mikrotik的上的certificate 製作過憑證?
抱歉, 沒有使用過 Mikrotik 的 certificate 製作憑證的經驗