วิธีการใช้คอมพิวเตอร์สองเครื่องหลัง NAT และไฟร์วอลล์โดยไม่ต้องใช้คอมพิวเตอร์เครื่องที่สาม


9

ฉันพยายาม ssh ลงในกล่อง Linux ที่บ้าน บ้านของฉันเป็นสภาพแวดล้อมแบบหอพัก - NAT และไฟร์วอลล์พร้อมแล็ปท็อปส่วนตัวที่ใช้งาน Arch Linux งานของฉันคือสไตล์องค์กร Windows 7 - NAT และไฟร์วอลล์พร็อกซีไม่มีสิทธิ์ของผู้ดูแลระบบ

ฉันสามารถเชื่อมต่อพกพา Team Viewer ทั้งสองที่ทำงานอยู่ได้ อย่างไรก็ตามนี่ไม่เหมาะกับสิ่งที่ฉันกำลังมองหา ฉันกำลังมองหา SSH เพียงแค่ในกล่อง Linux ที่บ้านปล่อยให้กล่อง Linux ของฉันออกจากระบบอย่างสมบูรณ์ - โดยทั่วไปหัวเมื่อฉันไม่ได้มี

ฉันได้อ่านการขุดอุโมงค์แล้ว แต่ถ้าฉันเข้าใจการขุดอุโมงค์อย่างถูกต้องฉันต้องใช้เซิร์ฟเวอร์บุคคลที่สามที่คอมพิวเตอร์ทั้งสองเครื่องสามารถเชื่อมต่อได้ ฉันไม่มีเซิร์ฟเวอร์ดังกล่าวและไม่ต้องการจ่ายสำหรับสิ่งนั้น


อะไรคือทางออกที่ง่ายและปลอดภัยในการใช้ SSH ในแล็ปท็อปของฉันจากการทำงาน มี 'เซิร์ฟเวอร์ที่สาม' ฟรีและปลอดภัยหรือไม่ ฉันได้ลง Google แล้ว แต่ดูเหมือนจะสับสนมากขึ้นเรื่อย ๆ


2
คุณมีสิทธิ์เข้าถึงเราเตอร์หรือไม่ โดยปกติคุณต้องปรับการตั้งค่า NAT เพื่อชี้ที่อยู่ IP สาธารณะของคุณที่เซิร์ฟเวอร์ SSH ภายในของคุณเพื่อทำสิ่งนี้
jmreicha

ไม่ฉันไม่มีสิทธิ์เข้าถึงเราเตอร์และไม่สามารถปรับการตั้งค่า NAT
user1026169

จากนั้นในกรณีนี้คุณอาจต้องใช้พร็อกซีผ่านเซิร์ฟเวอร์ที่สามเพื่อเชื่อมต่อหากตัวเลือก Team Viewer ใช้งานไม่ได้
jmreicha

ใครเป็นผู้ให้เซิร์ฟเวอร์ที่ฉันสามารถใช้เป็นพร็อกซีสำหรับ ssh เท่านั้น?
user1026169

ฉันเดิมพัน VPS บนคลาวด์ที่จะทำเคล็ดลับ
jmreicha

คำตอบ:


16

pwnatเป็นเครื่องมือโอเพนซอร์ซที่คาดคะเนปัญหานี้ มันบอกว่า :

pwnat เป็นเครื่องมือที่อนุญาตให้ไคลเอนต์จำนวนมากที่อยู่เบื้องหลัง NATs สื่อสารกับเซิร์ฟเวอร์ที่อยู่หลัง NAT แยกต่างหากโดยไม่มีการส่งต่อพอร์ตและไม่มีการติดตั้ง DMZ บนเราเตอร์ใด ๆ เพื่อสื่อสารโดยตรงกับกันและกัน เซิร์ฟเวอร์ไม่จำเป็นต้องรู้อะไรเกี่ยวกับไคลเอนต์ที่พยายามเชื่อมต่อ

ไม่มีคนกลางไม่มีพร็อกซีไม่มีบุคคลที่สามไม่ต้องใช้ UPnP / STUN / ICE ไม่ต้องมีการปลอมแปลงและไม่มีเทคนิค DNS

ที่สำคัญกว่านั้นไคลเอนต์สามารถเชื่อมต่อกับโฮสต์หรือพอร์ตใด ๆ บนรีโมตโฮสต์หรือไปยังโฮสต์คงที่และพอร์ตที่ตัดสินใจโดยเซิร์ฟเวอร์

pwnat กำหนดการเชื่อมต่อชนิดนี้:

เครื่อง A (IP: 192.168.1.3) -> NAT A (IP: 122.xxx) -> อินเทอร์เน็ต -> NAT B (IP: 59.xxx) -> เครื่อง B (192.168.2.10)

pwnat มีการกระจายเฉพาะสำหรับลินุกซ์ แต่บทความ PWNAT: Windows ตามรุ่นที่มีระบบปฏิบัติการวินโดวส์รุ่น ดูเพิ่มเติมโดยผู้เขียนคนเดียวกันPWNAT: ตัวอย่าง

วิธีการที่ pwnat ใช้นั้นฉลาดอย่างไม่น่าเชื่อ แต่ไม่มีการรับประกันว่ามันจะทำงานกับสภาพแวดล้อมของคุณ


1
หมายเหตุ: pwnat ขึ้นอยู่กับ ICMP ในการทำงาน โดยเฉพาะอย่างยิ่งข้อความสะท้อน icmp และเวลาเกิน สิ่งนี้ทำงานได้เพราะ ICMP ไร้สัญชาติ
shadowbq

ไม่ได้ผลสำหรับฉัน เราเตอร์ NAT pwnatที่มีไม่เพียงพอที่จะใช้สมาร์ทมาตรฐานหรือฉลาดพอที่จะเข้าใจผู้เขียน +1 ยังคงเป็นความฉลาด
ควอนตัม

ฉันได้ลอง pwnat โดยไม่ประสบความสำเร็จ แต่เป็นไปได้ว่าฉันมีบางอย่างผิดปกติในการกำหนดค่าของฉัน มีใครบ้างไหมที่มีความสำเร็จที่สามารถให้การสนับสนุนได้?
robguinness

5

ฉันคิดว่าการสร้างอุโมงค์เป็นทางเลือกที่ดีที่สุดของคุณแม้ว่าคุณจะยังไม่มีเซิร์ฟเวอร์ที่สาม

Amazon EC2 เสนอตัวเลือกการกำหนดราคาระดับฟรีช่วยให้ลูกค้าใหม่สามารถใช้งานอินสแตนซ์ขนาดเล็กของ Linux / Windows ได้มากถึง 750 ชั่วโมง / เดือนฟรีเป็นเวลาหนึ่งปี ฉันไม่ได้ใช้บริการด้วยตัวเอง แต่คิดว่าถ้าคุณเรียกใช้เซิร์ฟเวอร์เสมือนเมื่อจำเป็นคุณจะได้รับ SSH tunnel และใช้งานได้ฟรี คุณอาจพบว่าบริการราคาถูกพอที่จะรับประกันการจ่ายเงินได้ใช่ไหม

Hak5สร้างการแนะนำที่ดีสำหรับการขุดอุโมงค์ (ด้วยความเพียร) คุณสามารถตั้งค่าสคริปต์ทริกเกอร์ CRON เพื่อพยายามเชื่อมต่อกับเซิร์ฟเวอร์เสมือนเพื่อให้คุณสามารถเข้าถึงแล็ปท็อปได้ภายในไม่กี่นาทีหลังจากเริ่มต้นอินสแตนซ์ EC2 ...


ขอบคุณฉันพบ VPS ฟรีพร้อมความช่วยเหลือจากฟอรัมไม่กี่แห่ง
user1026169

1
โปรดทราบว่า 750 ชั่วโมงคือ 31.25 วัน ... โดยทั่วไปคุณจะได้รับt2.microอินสแตนซ์ฟรีหนึ่งครั้งเป็นเวลาหนึ่งปี
Attie

3

ตัวเลือกที่ดีที่สุดคือการตั้งค่าการส่งต่อพอร์ตหากทำได้ แต่หากวิทยาเขตของคุณทำการไฟร์วอลล์และคุณไม่สามารถทำการส่งต่อพอร์ตด้วยตัวเองได้ให้ใช้คำแนะนำนี้

ใช่มีเซิร์ฟเวอร์ตัวที่ 3 ฟรีและคุณใช้งานแล้ว TeamViewer ตรวจสอบให้แน่ใจว่าคุณติดตั้ง TeamViewer เป็นบริการ (หรืออะไรก็ตามที่เทียบเท่ากับ Linux ฉันใช้เฉพาะรุ่น windows) จากนั้นติดตั้งไดรเวอร์ VPN ทั้งที่ทำงานและที่บ้าน จากนั้นคุณจะสามารถเชื่อมต่อโดยใช้ VPN จากที่ทำงานและที่บ้านของคุณจะมีที่อยู่ IP 7.xxx จากนั้นหากคุณต้องการเข้าสู่เซสชันเทอร์มินัลให้เรียกใช้ SSH ผ่านลิงก์ VPN

ตัวเลือกการติดตั้ง VPN อยู่ภายใต้การตั้งค่าขั้นสูง ป้อนคำอธิบายรูปภาพที่นี่

ซึ่งจะเพิ่มตัวเลือก "VPN" สำหรับประเภทการเชื่อมต่อที่คุณสามารถทำได้ ป้อนคำอธิบายรูปภาพที่นี่


1
ขอบคุณมากสำหรับความช่วยเหลือและภาพหน้าจอโดยละเอียด ฉันใช้ TeamViewer portable และไม่มีสิทธิ์ของผู้ดูแลระบบ ตัวเลือก VPN เป็นสีเทาและฉันใช้ไม่ได้
user1026169

1

คุณควรจะสามารถตั้งค่าการส่งต่อพอร์ต (พอร์ต 22) บนเราเตอร์ / ไฟร์วอลล์ที่บ้านของคุณ จากนั้นเชื่อมต่อกับที่อยู่ IP สาธารณะของคุณเมื่อคุณทำงาน คุณสามารถใช้บางอย่างเช่น dyndns หากคุณไม่มี IP สาธารณะคงที่บ้าน


การส่งต่อพอร์ตไม่สามารถทำได้ในเครื่องของฉันเนื่องจากเครือข่ายที่ให้บริการ ฉันไม่มีการตั้งค่า ip แต่ไม่มีพอร์ตที่ฉันสามารถใช้เชื่อมต่อเครื่องได้
user1026169

0

คุณสามารถใช้เซิร์ฟเวอร์ XMPP / Tox สาธารณะเป็น "เซิร์ฟเวอร์ที่สาม" กล่าวคือมีโครงการเช่นTuntoxและPPPoAT (PPP ผ่านการขนส่งใด ๆ ) ซึ่งใช้โปรโตคอลการส่งข้อความโต้ตอบแบบทันทีเหล่านี้เป็นเลเยอร์การขนส่ง

ฉันลองใช้ PPPoAT ซึ่งรองรับ XMPP และไม่เหมือนกับ PWNAT กลไกนี้ใช้งานได้จริงสำหรับฉัน

หากต้องการใช้งานคุณต้องมีบัญชี XMPP สองบัญชีบนเซิร์ฟเวอร์สาธารณะใด ๆ หนึ่งบัญชีสำหรับเซิร์ฟเวอร์ที่คุณต้องการลงชื่อเข้าใช้อีกบัญชีหนึ่งสำหรับลูกค้าของคุณ หลังจากที่คุณเริ่มpppoatบนเซิร์ฟเวอร์จากนั้นในไคลเอนต์ (ทั้งที่มีพารามิเตอร์การกำหนดค่าที่เหมาะสม) คุณสามารถเริ่มการเชื่อมต่อได้ทันทีเช่น

ssh username@10.0.0.2

มันจะช้ากว่าการเชื่อมต่อโดยตรงแน่นอนและความเร็วจะขึ้นอยู่กับเซิร์ฟเวอร์ XMPP ที่คุณเลือก แต่สำหรับกิจกรรมคอนโซลปกติมันดีพอ

สำหรับความปลอดภัย SSH สามารถทำงานในเครือข่ายที่ไม่ปลอดภัยได้ทั้งหมดเนื่องจากมันใช้การเข้ารหัสของตัวเองอยู่แล้วดังนั้นการเชื่อมต่อที่ใช้ XMPP นั้นมีความปลอดภัยหรือไม่นั้นไม่เกี่ยวข้องจริง ๆ เมื่อคุณใช้ SSH

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.