ใช้ ssh ด้วยอินเตอร์เฟสเครือข่ายเฉพาะ


37

ฉันกำลังใช้openconnectเพื่อเชื่อมต่อกับ VPN หลังจากป้อนข้อมูลประจำตัวของฉันฉันได้รับสิ่งนี้:

POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection

การifconfigแสดงรายการฉันมีอินเทอร์เฟซเครือข่ายใหม่tun0พร้อมที่อยู่ IP ที่แน่นอน

คำถาม: ฉันจะsshใช้เฉพาะอินเทอร์เฟซเครือข่ายtun0เพื่อให้สามารถเข้าถึงคอมพิวเตอร์บนเครือข่ายส่วนตัวนั้นได้อย่างไร

แก้ไข:

การกำหนดค่าเครือข่ายของฉัน ( route -n) น่าจะเป็นสิ่งนี้:

172.16.194.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.25.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 eth0

คุณสามารถอธิบายอย่างละเอียดเกี่ยวกับการกำหนดค่าเครือข่ายของคุณได้หรือไม่? ด้วยการกำหนดเส้นทางที่เหมาะสมการรับส่งข้อมูลที่กำหนดไว้สำหรับเครือข่ายที่เชื่อมต่อกับ tun0 จะใช้อินเตอร์เฟสดังกล่าว
Eli Heady

คำตอบ:


45

ไม่ใช่ไคลเอนต์ ssh ที่ตัดสินใจผ่านอินเตอร์เฟส TCP แพ็กเก็ตที่ควรเป็นเคอร์เนล กล่าวโดยย่อคือ SSH ขอให้เคอร์เนลเปิดการเชื่อมต่อไปยังที่อยู่ IP ที่แน่นอนและเคอร์เนลจะตัดสินใจว่าจะใช้อินเตอร์เฟสใดโดยปรึกษาตารางการเราต์

(ต่อไปนี้จะถือว่าคุณอยู่ใน GNU / Linux แนวคิดทั่วไปเหมือนกันสำหรับทุก Unices แต่เฉพาะคำสั่งที่จะเรียกใช้และวิธีการจัดรูปแบบเอาต์พุตอาจแตกต่างกัน)

คุณสามารถแสดงเคอร์เนลเส้นทางตารางที่มีคำสั่ง เส้นทาง -nและ / หรือ IP แสดงเส้นทาง

OpenConnect ควรเพิ่มบรรทัดสำหรับtun0อินเตอร์เฟส; การเชื่อมต่อไปยังที่อยู่ใด ๆ ที่ตรงกับบรรทัดนั้นจะถูกกำหนดเส้นทางผ่านส่วนต่อประสานนั้น ตัวอย่างเช่นทำงานroute -nบนแล็ปท็อปของฉันฉันได้ผลลัพธ์ต่อไปนี้:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.30.0.1       0.0.0.0         UG    0      0        0 eth0
10.30.0.0       0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

ซึ่งหมายความว่าการเชื่อมต่อไปยังโฮสต์ใน 192.168.122.0/24 (เช่นที่อยู่ 192.168.122.0 เพื่อ 192.168.122.255 ตามรูปแบบ CIDR ) เครือข่ายจะถูกส่งผ่านอินเตอร์เฟซvirbr0; ผู้ที่จะ 169.254.0.0/16 และ 10.30.0.0/24 จะผ่านeth0และสิ่งอื่น ๆ (สาย 0.0.0.0) จะถูกส่งผ่าน eth0 ไปยังเกตเวย์โฮสต์ 10.30.0.1


ขอขอบคุณที่อธิบายสิ่งนี้ให้ฉัน - ดูเหมือนopenconnectว่าไม่ได้เพิ่มบรรทัดสำหรับtun0อินเทอร์เฟซ ฉันคิดว่าฉันควรทำสิ่งนี้ด้วยตนเอง
axel22

1
@ axel22 คุณอาจจะดูที่นี่: bbs.archlinux.org/viewtopic.php?id=69064สำหรับสคริปต์ที่ใช้ openconnect และตั้งค่าเส้นทาง
Riccardo Murri

@RiccardoMurri คุณต้องการที่จะตอบคำถามของฉัน
Rahul Gautam

6

ฉันไม่รู้ว่าจะเปิดตัวเมื่อไหร่ แต่ลูกค้า OpenSSH บน RHEL7 มีสิ่งนี้อยู่ใน manpage:

 -b bind_address
         Use bind_address on the local machine as the source address of the connection.  Only useful on systems with more than one address.

ไม่ดีเท่าที่จะสามารถเลือกอินเทอร์เฟซ แต่ปิด


รวมถึง-Bแฟล็กซึ่งจะอนุญาตให้ระบุชื่อเน็ตเวิร์กอินเตอร์เฟสที่จะใช้
Henrik

ตัวเลือก-b bind_addressไม่ทำงานสำหรับฉันอย่างใด การเปลี่ยนเส้นทางควรทำงานชั่วคราว BTW: -Bไม่มีตัวเลือกในเวอร์ชัน SSH ที่มาพร้อมกับ Ubuntu
จอห์น

2

หากคุณกำลังใช้ตัวจัดการเครือข่ายในการจัดการการเชื่อมต่ออินเทอร์เน็ตของคุณ (เป็นผู้จัดการเริ่มต้นในระบบจำนวนมาก), คุณอาจต้องการที่จะติดตั้งทั้งในและopenconnectnetwork-manager-openconnect

เมื่อติดตั้งปลั๊กอิน OpenConnect สำหรับ Network Manager แล้วให้เปิด Network Manager และคลิกที่+ไอคอนด้านล่างซ้าย คุณควรจะได้รับกล่องคำสั่งผสมที่มีตัวเลือกVPNและจากนั้นความสามารถในการเลือกOpenConnect VPN

เมื่อใช้ตัวจัดการเครือข่ายเพื่อเชื่อมต่อกับ OpenConnect เส้นทางของคุณจะปรากฏขึ้นโดยอัตโนมัติและช่วยคุณเชื่อมต่อกับ VPN สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเข้าถึงเซิร์ฟเวอร์ผ่าน VPN เช่นวิธีที่FireHostทำสิ่งต่างๆ


1

เพียงแค่เติมคำตอบ คุณสามารถใช้การ-bตั้งค่าสถานะและกำหนดแหล่ง IP ของคุณในเวลาเข้าถึง

รูปแบบ + ตัวอย่าง

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