如何讓 OpenVPN 用戶端 (Mikrotik RouterOS) OpenVPN 伺服器 (Debian/Linux) 設定正常運作

如何讓 OpenVPN 用戶端 (Mikrotik RouterOS)  OpenVPN 伺服器 (Debian/Linux) 設定正常運作

我在使 MT 與 OpenVPN 伺服器 (Debian) 配合使用時遇到一些問題。我可以成功連接到 OVPN 伺服器,但流量未透過 OVPN 伺服器路由。這是我的配置。

設定 -https://i.stack.imgur.com/AAH9Y.jpg

OpenVPN 伺服器 (Debian/Linux) 配置

# cat /etc/openvpn/server.conf
本地 95.2.171.3
埠 1194
原始 TCP
開發屯

ca.crt
證書伺服器.crt
金鑰伺服器.key
DH-PEM

伺服器 10.8.0.0 255.255.255.0
ifconfig-池-堅持 ipp.txt

用戶端配置目錄 ccd
路線 192.168.81.0/24 255.255.255.0

保持活動 10 120
屯-MTU 1500
修復1450

密碼 AES-256-CBC
授權 sha1

持久鍵
堅持-tun

狀態 /var/log/openvpn-status.log
日誌附加 /var/log/openvpn.log

動詞5
crl-驗證 /etc/openvpn/easy-rsa/pki/crl.pem

# 貓 /etc/openvpn/ccd/client
路由 192.168.81.0 255.255.255.0 10.8.0.2
ifconfig-push 10.8.0.2 10.8.0.1

# 貓 /proc/sys/net/ipv4/ip_forward
1

# netstat -an |正規表示式 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 連結 encap:乙太網路 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 範圍:連結
          上行廣播運行多播 MTU:1500 指標: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 連結 encap:本地環回
          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 txqueuelen:0
          RX 位元組:1326071 (1.2 MiB) TX 位元組:1326071 (1.2 MiB)

tun0 連結 encap: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
          上點運行 NOARP 多播 MTU:1500 指標:1
          RX 封包:57 錯誤:0 丟棄:0 溢出:0 幀:0
          TX 封包:6 個錯誤:0 個丟棄:0 個溢位:0 個業者:0
          碰撞:0 txqueuelen:100
          RX 位元組:6669 (6.5 KiB) TX 位元組:504 (504.0 B)

#netstat-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 輸入 -m 狀態 --state 相關,已建立 -j 接受
-A 輸入 -p tcp -m tcp --dport 1194 -j 接受
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables被拒絕:" --log-level 7
-A 輸入 -j 拒絕 --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 時間=12.9 ms
8.8.8.8 中的 64 位元組:icmp_req=2 ttl=55 時間=12.8 ms

這是我在 OpenVPN 伺服器 (Debian/Linux) 上的所有設定。

OpenVPN 用戶端 (Mikrotik RouterOS 6) 配置

/介面列印
標誌:D - 動態、X - 停用、R - 運行、S - 從屬
 # 名稱 類型 實際 MTU L2MTU 最大 L2MTU MAC 位址
 0 R 乙醚1 乙醚 1500 1600 4076 D4:CA:6D:31:14:F4
 1 S 醚2 醚 1500 1598 2028 D4:CA:6D:31:14:F5
 2 S 醚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 無線區域網路1 無線區域網路 1500 1600 D4:CA:6D:31:14:F9
 6 R 橋1 橋 1500 1598 D4:CA:6D:31:14:F5
 7 R ovpn 輸出1 ovpn 輸出 1500 FE:3E:27:7D:61:8C

 /介面橋列印
標誌:X - 停用,R - 運行
 0 R 名稱=“bridge1”mtu =自動實際mtu = 1500 l2mtu = 1598 arp =啟用mac位址= D4:CA:6D:31:14:F5協定模式= rstp優先權= 0x8000 auto-mac =是管理-mac =00:00:00:00:00:00 最大訊息年齡=20s 轉送延遲=15s 傳送保持計數=6 老化時間=5m

/interface 橋接連接埠列印
標誌:X - 停用、I - 不活動、D - 動態
 # 介面橋優先權路徑成本範圍
 0 I ether2 橋 1 0x80 10 無
 1 I ether3 橋 1 0x80 10 無
 2 I ether4 橋 1 0x80 10 無
 3 I ether5 橋 1 0x80 10 無
 4 wlan1 網橋 1 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
 2D 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-位址 PREF-SRC 閘道距離
 0 廣告 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-客戶端列印
標誌:X - 停用,R - 運行
 0 R 名稱 =“ovpn-out1”mac 位址 = FE:3E:27:7D:61:8C max-mtu = 1500 連線至 = 195.13.171.3 連接埠 = 1194 模式 = ip 使用者 =「客戶端」密碼 = “設定文件=預設憑證=客戶端身份驗證=sha1密碼=aes256新增預設路由=否

 /ping 10.8.0.1
  SEQ 主機大小 TTL 時間狀態
    0 10.8.0.1 56 64 6 毫秒
    1 10.8.0.1 56 64 9毫秒
    2 10.8.0.1 56 64 7 毫秒
    3 10.8.0.1 56 64 6毫秒
    發送=4 接收=4 封包遺失=0% min-rtt=6ms avg-rtt=7ms max-rtt=9ms

如您所見,我可以從 Mikrotik ping OpenVPN 伺服器。但是當我從本地 PC 使用互聯網時,它顯示 81.190.190.100 IP 位址,而不是我想看到的 IP 位址 - OpenVPN 伺服器 IP - 95.2.171.3。

我可以從筆記型電腦 (192.168.81.100/24) 成功 ping/traceroute 到 10.8.0.1,但無法理解為什麼它不通過 VPN 隧道路由。我認為我在伺服器(Linux)或客戶端(mikrotik)上缺少路由的東西。

感謝您的幫忙!我現在玩這個有一段時間了,無法讓它運行:(

祝你有美好的一天!

答案1

您的用戶端未透過 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

另外應該有一個針對客戶端的 nat 規則(src-addresses 192.168.81.0/24)。

ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1

相關內容