Amazon-Web-Services

L2TP 問題 AWS EC2

  • March 5, 2021

我正在嘗試在 AWS VPC 中設置 l2tp,但遇到了問題。

我使用的是 MAC 作業系統,但一直收到錯誤消息“無法建立與 PPP 伺服器的連接。請嘗試重新連接。如果問題仍然存在,請驗證您的設置並聯繫您的管理員。” 來自 Mac 的其他 l2tp 連接可以正常工作,所以我認為這是與 AWS 網路有關的伺服器端配置問題。

伺服器確實有一個 EIP,並且安全組對流量開放。我也設置了UDP封裝,但沒有樂趣。

編輯:

我已經確認它也不能在 Windows 機器上執行。錯誤是:“L2TP 連接嘗試失敗,因為安全層在與遠端電腦的初始協商期間遇到了處理錯誤”

這是我 Mac 上的日誌:

Tue Mar  2 21:06:53 2021 : publish_entry SCDSet() failed: Success!
Tue Mar  2 21:06:53 2021 : publish_entry SCDSet() failed: Success!
Tue Mar  2 21:06:53 2021 : l2tp_get_router_address
Tue Mar  2 21:06:53 2021 : l2tp_get_router_address 172.20.10.1 from dict 1
Tue Mar  2 21:06:53 2021 : L2TP connecting to server 'XXXXXXXXXXXX' (XX.XX.XX.XXX)...
Tue Mar  2 21:06:53 2021 : IPSec connection started
Tue Mar  2 21:06:53 2021 : IPSec phase 1 client started
Tue Mar  2 21:06:53 2021 : IPSec phase 1 server replied
Tue Mar  2 21:06:54 2021 : IPSec phase 2 started
Tue Mar  2 21:06:54 2021 : IPSec phase 2 established
Tue Mar  2 21:06:54 2021 : IPSec connection established
Tue Mar  2 21:06:54 2021 : L2TP sent SCCRQ
Tue Mar  2 21:06:54 2021 : L2TP received SCCRP
Tue Mar  2 21:06:54 2021 : L2TP sent SCCCN
Tue Mar  2 21:06:54 2021 : L2TP sent ICRQ
Tue Mar  2 21:06:54 2021 : L2TP received ICRP
Tue Mar  2 21:06:54 2021 : L2TP sent ICCN
Tue Mar  2 21:06:54 2021 : L2TP connection established.
Tue Mar  2 21:06:54 2021 : L2TP set port-mapping for en0, interface: 6, protocol: 0, privatePort: 0
Tue Mar  2 21:06:54 2021 : using link 0
Tue Mar  2 21:06:54 2021 : Using interface ppp0
Tue Mar  2 21:06:54 2021 : Connect: ppp0 <--> socket[34:18]
Tue Mar  2 21:06:54 2021 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x312e33e6> <pcomp> <accomp>]
Tue Mar  2 21:06:57 2021 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x312e33e6> <pcomp> <accomp>]
Tue Mar  2 21:06:57 2021 : rcvd [LCP ConfReq id=0x0 <mru 1400> <auth eap> <magic 0x7ad21b17> <pcomp> <accomp> <callback CBCP> <mrru 1614> <endpoint 13 17 01 4f 48 20 23 13 c3 46 18 8f aa 74 9e ef 65 fe 3a 00 00 00 00>]
Tue Mar  2 21:06:57 2021 : lcp_reqci: rcvd unknown option 13
Tue Mar  2 21:06:57 2021 : lcp_reqci: returning CONFREJ.
Tue Mar  2 21:06:57 2021 : sent [LCP ConfRej id=0x0 <callback CBCP> <mrru 1614>]
Tue Mar  2 21:06:57 2021 : rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x312e33e6> <pcomp> <accomp>]
Tue Mar  2 21:06:57 2021 : rcvd [LCP ConfReq id=0x1 <mru 1400> <auth eap> <magic 0x7ad21b17> <pcomp> <accomp> <endpoint 13 17 01 4f 48 20 23 13 c3 46 18 8f aa 74 9e ef 65 fe 3a 00 00 00 00>]
Tue Mar  2 21:06:57 2021 : lcp_reqci: returning CONFNAK.
Tue Mar  2 21:06:57 2021 : sent [LCP ConfNak id=0x1 <auth chap MS-v2>]
Tue Mar  2 21:06:57 2021 : rcvd [LCP ConfReq id=0x2 <mru 1400> <auth chap MS-v2> <magic 0x7ad21b17> <pcomp> <accomp> <endpoint 13 17 01 4f 48 20 23 13 c3 46 18 8f aa 74 9e ef 65 fe 3a 00 00 00 00>]
Tue Mar  2 21:06:57 2021 : lcp_reqci: returning CONFACK.
Tue Mar  2 21:06:57 2021 : sent [LCP ConfAck id=0x2 <mru 1400> <auth chap MS-v2> <magic 0x7ad21b17> <pcomp> <accomp> <endpoint 13 17 01 4f 48 20 23 13 c3 46 18 8f aa 74 9e ef 65 fe 3a 00 00 00 00>]
Tue Mar  2 21:06:57 2021 : sent [LCP EchoReq id=0x0 magic=0x312e33e6]
Tue Mar  2 21:06:58 2021 : rcvd [CHAP Challenge id=0x0 <74364045b7347b39c5b1dfc36728e117>, name = "XXX"]
Tue Mar  2 21:06:58 2021 : sent [CHAP Response id=0x0 <734347e818645e3291e5aadb64eba088000000000000000068b867912db9f4098b52051c0e350df91af72a1774b6708700>, name = "XXXXX"]
Tue Mar  2 21:06:58 2021 : rcvd [LCP EchoRep id=0x0 magic=0x7ad21b17]
Tue Mar  2 21:06:58 2021 : rcvd [CHAP Success id=0x0 "S=FB69C2CC6DD794FF835AF55ED91E9DBAB6278C81"]
Tue Mar  2 21:06:58 2021 : sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Tue Mar  2 21:06:58 2021 : sent [IPV6CP ConfReq id=0x1 <addr fe80::167d:daff:fece:57fd>]
Tue Mar  2 21:06:58 2021 : sent [ACSCP ConfReq id=0x1 <route vers 16777216> <domain vers 16777216>]
Tue Mar  2 21:06:58 2021 : rcvd [CCP ConfReq id=0x4 <mppe +H -M -S -L -D +C>]
Tue Mar  2 21:06:58 2021 : Unsupported protocol 'Compression Control Protocol' (0x80fd) received
Tue Mar  2 21:06:58 2021 : sent [LCP ProtRej id=0x2 80 fd 01 04 00 0a 12 06 01 00 00 01]
Tue Mar  2 21:06:58 2021 : rcvd [LCP ProtRej id=0x5 80 21 01 01 00 16 03 06 00 00 00 00 81 06 00 00 00 00 83 06 00 00 00 00]
Tue Mar  2 21:06:58 2021 : rcvd [LCP ProtRej id=0x6 80 57 01 01 00 0e 01 0a 16 7d da ff fe ce 57 fd]
Tue Mar  2 21:06:58 2021 : rcvd [LCP ProtRej id=0x7 82 35 01 01 00 10 01 06 00 00 00 01 02 06 00 00 00 01]
Tue Mar  2 21:06:58 2021 : sent [LCP TermReq id=0x3 "No network protocols running"]
Tue Mar  2 21:06:58 2021 : Connection terminated.
Tue Mar  2 21:06:58 2021 : L2TP disconnecting...
Tue Mar  2 21:06:58 2021 : L2TP sent CDN
Tue Mar  2 21:06:58 2021 : L2TP sent StopCCN
Tue Mar  2 21:06:58 2021 : L2TP clearing port-mapping for en0
Tue Mar  2 21:06:58 2021 : L2TP disconnected

這是來自 Windows 伺服器的日誌:

"XXX","RAS",03/02/2021,21:07:24,4,"XXXXXX",,"XX.XX.XX.XX","XX.XX.XX.XX",,,"XXX","XXXXX",1,,"XX.XX.XX.XX","XXX",1614737244,,5,,1,2,,,0,"311 1 fe80::edb8:9338:cb73:6adf 03/03/2021 01:54:30 4",,,,,1,,,,"5",2,,,,,"7",1,,3,1,"174.247.13.222","XX.XX.XX.XX",,,,,,,"MSRASV5.20",311,,"0x00504545524C455353",4,,"Microsoft Routing and Remote Access Service Policy",1,,,,
"XXX","RAS",03/02/2021,21:07:26,4,"XXXXX",,"XX.XX.XX.XX","XX.XX.XX.XX",,,"XXX","XX.XX.XX.XX",1,,"XX.XX.XX.XX","XX.XX.XX.XX",1614737244,,5,,1,2,,,0,"311 1 fe80::edb8:9338:cb73:6adf 03/03/2021 01:54:30 4",,,,,2,,292,407,"5",2,0,11,13,1,"7",1,,3,1,"174.247.13.222","XX.XX.XX.XX",,,,,,,"MSRASV5.20",311,,"0x00504545524C455353",4,,"Microsoft Routing and Remote Access Service Policy",1,,,,

我完全被這件事難住了。

這似乎是 AWS EC2 伺服器本身的路由問題,我關注了 AWS 論壇上的一篇舊文章:https ://forums.aws.amazon.com/thread.jspa?messageID=487251 。這個執行緒上的最後一篇文章是我跟隨的,一切都按預期開始工作,我在這裡添加了他的文章,以便在連結失效時可以保存它。對我來說,訣竅是添加靜態路由,因為我之前已經完成了大部分文章,或者它不適用於我的情況。

遊戲有點晚了,因為這篇文章已經快 2 歲了;但是,我們剛剛在 Win2012 實例上完成了帶 L2TP IPSEC VPN 和 NAT 的 RRAS 配置。希望這對碰巧找到此執行緒的其他人有所幫助。

此設置非常開放,一旦一切正常,您將希望鎖定 ACL 和 SecGroup;但是,這應該可以幫助您:

注意:^ = 右鍵點擊

先決條件:

  1. 網際網路網關
  2. 具有一個或多個子網的 VPC(我們使用 2 個 - 一個專門用於 RRAS,另一個用於 LAN 伺服器)。
  3. 帶有 2 個網路介面的 Windows 2012 實例(我們的 RRAS 伺服器)。為每個介面分配靜態 IP(我們有連續的 IP,但不確定是否需要)。將 EIP 附加到 Eth0。在每個介面上禁用 SRC/DEST 檢查(注意:根據我的經驗,在實例上禁用 SRC/DEST 只會影響 Eth0。最好在每個介面上手動執行此操作)。
  4. Windows 2012 實例(我們的 LAN 伺服器),帶有 1 個網路介面,分配了靜態 IP
  5. RRAS 伺服器已加入您的域(很確定這是 RRAS 所必需的,但我們的設置肯定需要它,因為 VPN 使用者針對 AD 進行身份驗證)。您應該已經將 ACL 和 SG 設置配置為允許 RRAS 伺服器與您的 DC 通信。

配置 ACL(為了測試,我們將 ACL 應用於 RRAS 和 LAN 子網)入站:埠 3389 (RDP);通信協議;您的 IP 或 IP 範圍(用於管理目的;可以在您的 VPN 啟動後刪除或修改)入站:全部;全部; 全部; VPC 子網(用於 NAT)入站:埠 500;UDP;0.0.0.0/0;允許(對於 VPN)入站:埠 4500;UDP;0.0.0.0/0;允許(對於 VPN)入站:全部;ESP(50);0.0.0.0/0;允許(對於 VPN)入站:1701;UDP;0.0.0.0/0;允許(對於 VPN)入站:範圍 49152-65535;TCP & UDP;0.0.0.0/0;允許(回复 LAN 流量) 出站:全部;全部; 0.0.0.0/0;允許(用於 NAT 和 VPN)

為 RRAS 伺服器配置安全組入站:全部;全部; LAN SG ID 入站:TCP;3389 (RDP); 您的 IP 或 IP 範圍(也用於管理目的;可以在您的 VPN 啟動後刪除或修改) 入站:- 入站:UDP;500; 0.0.0.0/0 入站:UDP;1701; 0.0.0.0/0 入站:UDP;4500; 0.0.0.0/0 入站:ESP (50);全部; 0.0.0.0/0 出站:全部;全部; 0.0.0.0/0

為區域網路伺服器配置安全組 Inbound: All; 全部; RRAS SG ID 入站:TCP;3389 (RDP); 您的 IP 或 IP 範圍(也用於管理目的;可以在您的 VPN 啟動後刪除或修改)出站:全部;全部; 0.0.0.0/0

為 RRAS 伺服器配置路由表(我們使用 Main rtb)VPN 子網;當地的; 活躍的 0.0.0.0/0;IGW 標識;積極的

為 LAN 伺服器配置路由表(NAT 需要)VPN 子網;當地的; 活躍的 0.0.0.0/0;RRAS Eth1 介面 ID;active 此時,您應該能夠從本地電腦對兩台伺服器進行 RDP,以及從一台伺服器到另一台伺服器。此外,RRAS 伺服器應該能夠訪問公共站點(例如,Google),而 LAN 伺服器不應該。現在讓 voo-doo 將它們組合在一起:

在 RRAS 伺服器上安裝路由和遠端訪問

伺服器管理器 > 添加角色和功能 > 基於角色的遠端訪問(接受預設值) 出現提示時,包括路由角色服務

配置路由和遠端訪問服務 注意:我們在本練習中使用 PSK 和靜態地址池;您的最終配置可能會有所不同 路由和遠端訪問 ^ 伺服器名稱 > 配置和啟用路由和遠端服務自定義配置 > VPN 訪問、NAT

路由和遠端訪問 ^ 伺服器名稱 > 屬性安全 > 身份驗證方法 > 取消選中 EAP(這會導致不必要的麻煩)檢查:允許 L2TP/IKEv2 的自定義 IPsec 策略 > 輸入 PSK

路由和遠端訪問 > 伺服器名稱 > IPv4 選擇靜態地址池並輸入適當的範圍 [注意:我們選擇使用 RRAS 子網中的 IP,儘管任何私有 IP 範圍都可以使用,只要 IP 不會與您的 VPC 中的實例)

路由和遠端訪問 > 伺服器名稱 > IPv4 ^ NAT > 新介面 > 乙太網(這應該是 Eth0 - 通過 IP 驗證) 選擇:連接到網際網路的公共介面 檢查:在此設備上啟用 NAT

路由和遠端訪問 > 伺服器名稱 > IPv4 ^ NAT > 新介面 > 乙太網 2(這應該是 Eth1 - 通過 IP 驗證) 選擇:連接到專用網路的專用介面 好的,負責路由和遠端服務;但是,它還不能正常工作。還記得我提到的那個“voo-doo”嗎?是時候調整 RRAS 伺服器以送出…

Voo-doo 項目 #1(感謝 AWS 支持,僅在我第 5 次支持電話後才提供此資訊)

RegEdit > HKLM\SYSTEM\CurrentControlSet\Services\Tcpip ^ 參數 > 新 DWORD:DisableTaskOffload ^ DisableTaskOffload > 修改 > 數值數據:1

Voo-doo 項目 #2(感謝 Comcast 這週搞砸了我的家庭網路並給了我終於讓 NAT 工作的 AHA 時刻)路由和遠端訪問 > 伺服器名稱 > IPv4 ^ 靜態路由 > 新靜態路由 > 介面:乙太網(即Eth0);目的地:0.0.0.0;網路遮罩:0.0.0.0;網關:RRAS 伺服器的預設網關(從 IPCONFIG/ALL 中獲取);指標:1 路由和遠端訪問 > 伺服器名稱 > IPv4 ^ 靜態路由 > 新靜態路由 > 介面:乙太網 2(即 Eth1);目的地:VPC 子網;網路遮罩:VPC 子網遮罩;網關:RRAS伺服器的預設網關;公制:1

最後是客戶端機器。在我們的例子中,Win7x64,但也適用於 Win8x64:

  1. 創建 VPN 連接 網路和共享中心 > 設置新連接或網路 > 連接到工作場所 創建新連接

> > 使用我的網際網路連接網際網路地址:RRAS EIP 目的地名稱:勾選:現在不連接;只需進行設置,以便稍後連接(相信我)輸入域憑據創建 > 關閉 > > >

  1. 配置 VPN 連接 ^“AWS L2TP”(或您命名的任何名稱)> 屬性安全選項卡 VPN 類型:第 2 層數據加密:需要取消選擇:CHAP 高級選項卡使用 PSK

Voo-doo Item #3(什麼…你以為它結束了?) RegEdit > HKLM\SYSTEM\CurrentControlSet\services\PolicyAgent ^ AssumeUDPEncapsulationContextOnSendRule > Modify > 值數據:2

您現在應該能夠

$$ a $$建立與您的 RRAS 伺服器的 L2TP VPN 連接並通過私有 IP 和 FQDN 訪問您的 LAN 伺服器(假設您的 VPC 先前已配置為允許 RRAS 和您的 DC 之間的通信);建立從您的 LAN 伺服器到公共資源的連接。Tracert 應確認流量正在通過 RRAS 伺服器。 你有它。簡單易懂,VPC…sy?

最後一句話:正如我之前提到的,此時 ACL 和 SG 設置相當寬鬆。這裡的目標不是擁有一個完全安全的網路,而是一個概念證明。我強烈建議您調整 ACL 和 SG 設置以收緊您的 VPC,同時測試您的連接。換句話說,我不負責——你負責。;)

問題的關鍵是lcp_reqci: rcvd unknown option 13- 顯然它與雙方配置的身份驗證方法有關。

也許這個答案會有所幫助:L2TP with PEAP authentication from MacOS/iOS

引用自:https://serverfault.com/questions/1055710