Linux
如何讓 OpenVPN 客戶端 (Mikrotik RouterOS) <-> OpenVPN 伺服器 (Debian/Linux) 設置工作
我在讓 MT 與 OpenVPN 伺服器 (Debian) 一起工作時遇到了一些問題。我可以成功連接到 OVPN 伺服器,但流量沒有通過 OVPN 伺服器路由。這是我的配置。
設置 - http://i.imgur.com/WvbjQaj.jpg
OpenVPN 伺服器 (Debian/Linux) 配置
# cat /etc/openvpn/server.conf 本地 95.2.171.3 埠 1194 原型 tcp 開發屯 ca ca.crt 證書伺服器.crt 密鑰伺服器.key dh dh.pem 伺服器 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt 客戶端配置目錄 ccd 路線 192.168.81.0/24 255.255.255.0 保活 10 120 屯門 1500 mssfix 1450 密碼AES-256-CBC 身份驗證 sha1 持久鍵 堅持頓 狀態 /var/log/openvpn-status.log 日誌附加 /var/log/openvpn.log 動詞 5 crl-驗證 /etc/openvpn/easy-rsa/pki/crl.pem # 貓 /etc/openvpn/ccd/client iroute 192.168.81.0 255.255.255.0 10.8.0.2 ifconfig-push 10.8.0.2 10.8.0.1 # cat /proc/sys/net/ipv4/ip_forward 1 # netstat -an | grep 1194 tcp 0 0 95.2.171.3:1194 0.0.0.0:* 聽 tcp 0 0 95.2.171.3:1194 81.190.190.100:62973 已建立 # 如果配置 eth0 鏈路封裝:乙太網 HWaddr 20:cf:30:f2:a8:76 inet 地址:95.2.171.3 廣播:95.2.171.31 遮罩:255.255.255.224 inet6 地址:fe80::22cf:30ff:fef2:a876/64 範圍:連結 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX 數據包:255189 錯誤:0 丟棄:0 超限:0 幀:0 TX 數據包:333054 錯誤:0 丟棄:0 超限:0 運營商:0 碰撞:0 txqueuelen:1000 RX 字節:34521411 (32.9 MiB) TX 字節:367074147 (350.0 MiB) 中斷:26 基地址:0x8000 lo 鏈路封裝:本地環回 inet 地址:127.0.0.1 遮罩:255.0.0.0 inet6 地址::::1/128 範圍:主機 上環回執行 MTU:16436 指標:1 RX 數據包:15579 錯誤:0 丟棄:0 超限:0 幀:0 TX 數據包:15579 錯誤:0 丟棄:0 超限:0 運營商:0 碰撞:0 發送隊列:0 RX 字節:1326071 (1.2 MiB) TX 字節:1326071 (1.2 MiB) tun0 鏈路封裝:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet 地址:10.8.0.1 PtP:10.8.0.2 遮罩:255.255.255.255 UP POINTOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX 數據包:57 錯誤:0 丟棄:0 超限:0 幀:0 TX 數據包:6 錯誤:0 丟棄:0 超限:0 運營商:0 碰撞:0 發送隊列:100 RX 字節:6669 (6.5 KiB) TX 字節:504 (504.0 B) # 網路統計 -rn 核心IP路由表 目標網關 Genmask 標誌 MSS 視窗 irtt Iface 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 95.2.171.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0 192.168.81.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 0.0.0.0 95.2.171.30 0.0.0.0 UG 0 0 0 eth0 # iptables -S -P 輸入接受 -P 轉發接受 -P 輸出接受 -A 輸入 -i lo -j 接受 -A INPUT -d 127.0.0.0/8 -i !lo -j REJECT --reject-with icmp-port-unreachable -A 輸入 -i tun0 -j 接受 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A 輸入 -p tcp -m tcp --dport 1194 -j 接受 -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A 輸出 -j 接受 # iptables -t nat -S -P 預路由接受 -P 後路由接受 -P 輸出接受 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 # ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) 字節數據。 來自 8.8.8.8 的 64 個字節:icmp_req=1 ttl=55 time=12.9 ms 來自 8.8.8.8 的 64 字節:icmp_req=2 ttl=55 time=12.8 ms
這是我在 OpenVPN Server (Debian/Linux) 上的所有配置。
OpenVPN 客戶端(Mikrotik RouterOS 6)配置
/界面列印 標誌:D - 動態,X - 禁用,R - 執行,S - 從 # NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS 0 R ether1 ether 1500 1600 4076 D4:CA:6D:31:14:F4 1 S 乙太 2 乙太 1500 1598 2028 D4:CA:6D:31:14:F5 2 乙醚 3 乙醚 1500 1598 2028 D4:CA:6D:31:14:F6 3 S 乙太 4 乙太 1500 1598 2028 D4:CA:6D:31:14:F7 4 S 乙太5 乙太 1500 1598 2028 D4:CA:6D:31:14:F8 5 RS wlan1 wlan 1500 1600 D4:CA:6D:31:14:F9 6 R 橋1 橋1500 1598 D4:CA:6D:31:14:F5 7 R ovpn-out1 ovpn-out 1500 FE: 3E: 27: 7D: 61: 8C /interface 橋接列印 標誌:X - 禁用,R - 正在執行 0 R name="bridge1" mtu=auto actual-mtu=1500 l2mtu=1598 arp=enabled mac-address=D4:CA:6D:31:14:F5 protocol-mode=rstp priority=0x8000 auto-mac=yes admin -mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s transmit-hold-count=6 老化時間=5m /interface 橋接埠列印 標誌:X - 禁用,I - 不活動,D - 動態 # INTERFACE BRIDGE PRIORITY PATH-COST HORIZON 0 I ether2 bridge1 0x80 10 無 1 I ether3 bridge1 0x80 10 無 2 I ether4 bridge1 0x80 10 無 3 I ether5 bridge1 0x80 10 無 4 wlan1 bridge1 0x80 10 無 /ip 地址列印 標誌:X - 禁用,I - 無效,D - 動態 # 地址網路介面 0 192.168.81.1/24 192.168.81.0 橋1 1 D 192.168.7.200/24 192.168.7.0 乙太1 2 D 10.8.0.2/32 10.8.0.1 ovpn-out1 /ip 防火牆 nat 列印 標誌:X - 禁用,I - 無效,D - 動態 0 鏈=srcnat 動作=偽裝到地址=0.0.0.0 出介面=ether1 日誌=無日誌前綴 =“” /ip 路由列印 標誌:X - 禁用,A - 活動,D - 動態,C - 連接,S - 靜態,r - rip,b - bgp,o - ospf,m - mme,B - 黑洞,U - 無法訪問,P - 禁止 # DST-ADDRESS PREF-SRC 網關距離 0 ADS 0.0.0.0/0 192.168.7.1 0 1 ADC 10.8.0.1/32 10.8.0.2 ovpn-out1 0 2 ADC 192.168.7.0/24 192.168.7.200 乙太1 0 3 ADC 192.168.81.0/24 192.168.81.1 橋1 0 /interface ovpn-client 列印 標誌:X - 禁用,R - 正在執行 0 R name="ovpn-out1" mac-address=FE:3E:27:7D:61:8C max-mtu=1500 connect-to=195.13.171.3 port=1194 mode=ip user="client" password=" " 配置文件 = 預設證書 = 客戶端身份驗證 = sha1 密碼 = aes256 添加預設路由 = 否 /ping 10.8.0.1 SEQ 主機大小 TTL 時間狀態 0 10.8.0.1 56 64 6ms 1 10.8.0.1 56 64 9ms 2 10.8.0.1 56 64 7ms 3 10.8.0.1 56 64 6ms 發送=4 接收=4 丟包=0% min-rtt=6ms avg-rtt=7ms max-rtt=9ms
如您所見,我可以從 Mikrotik ping OpenVPN 伺服器。但是當我從本地 PC 使用網際網路時,它顯示 81.190.190.100 IP 地址,而不是我想看到的那個 - OpenVPN 伺服器 IP - 95.2.171.3。
我可以從筆記型電腦(192.168.81.100/24)成功 ping/traceroute 到 10.8.0.1,但不明白為什麼它沒有通過 VPN 隧道路由。我想我在伺服器(Linux)或客戶端(mikrotik)上都缺少路由。
謝謝你的幫助!我現在玩這個有一段時間了,不能讓它執行:(
祝你有美好的一天!
您的客戶端沒有通過 OVPN 隧道路由,因為 mikrotik 上沒有路由(預設網關)!
因此,在 mikrotik 上添加另一個網關,其路由標記為 OVPN 伺服器 10.8.0.1
/ip route add dst-address=0.0.0.0/0 gateway=10.8.0.1 routing-mark=clientmark
當然,您應該為路由標記添加一個 mangle 規則,例如:
/ip firewall mangle add action=mark-routing chain=prerouting src-address=192.168.81.0/24 new-routing-mark=clientmark
還應該有一個客戶端(src-addresses 192.168.81.0/24)的nat規則。
ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1