ทำให้ sshd ฟังอินเทอร์เฟซเฉพาะ


15

บนเครื่องของฉันฉันใช้ OpenVPN ซึ่งใช้อินเตอร์เฟส tun0 ฉันต้องการ sshd เพื่อฟังบนอินเทอร์เฟซนี้เท่านั้น

ฉันรู้ว่าฉันสามารถระบุที่อยู่ IP ที่จะรับฟังได้

/etc/ssh/sshd_config

กับ

ListenAddress 0.0.0.0

คำสั่ง แต่ที่อยู่ IP ของฉันจะเปลี่ยนแปลงดังนั้นฉันจึงไม่สามารถเลือก IP ที่นี่ซึ่งใช้ได้เสมอ ฉันรู้ว่าฉันสามารถเริ่มภูตเมื่อ VPN ขึ้น - นั่นไม่ใช่ปัญหา

ฉันจะทำให้ sshd ฟังได้เฉพาะบนอินเตอร์เฟสที่เจาะจง (tun0) ได้อย่างไร


2
ไฟร์วอลล์ปิดพอร์ต 22 บนพอร์ตใด ๆ ที่ไม่ใช่tun0หรือ
NickW

คำตอบ:


7

คุณไม่สามารถทำได้โดยตรงเนื่องจาก sshd เข้าใจเฉพาะที่อยู่ IP คุณอาจจะเคาะบางอย่างด้วยกันโดยใช้สคริปต์ openvpn

คำสั่ง -up cmd Shell เพื่อเรียกใช้หลังจากเปิดอุปกรณ์ TUN / TAP สำเร็จ (เปลี่ยน UID ผู้ใช้ล่วงหน้า) สคริปต์ขึ้นมีประโยชน์สำหรับการระบุคำสั่งเส้นทางซึ่งทราฟฟิก IP เส้นทางที่กำหนดไว้สำหรับเครือข่ายส่วนตัวที่มีอยู่ที่ปลายอีกด้านหนึ่งของการเชื่อมต่อ VPN เข้าสู่ช่องสัญญาณ ...

ดูเพิ่มเติมที่--downตัวเลือกในการล้างข้อมูลและส่วนต่าง ๆ ของเอกสารรายละเอียดความปลอดภัยของสคริปต์เป็นต้น

คุณจะพบที่อยู่ IP ของอุปกรณ์รับสัญญาณจะถูกส่งผ่านไปยังสคริปต์เป็นตัวแปรสภาพแวดล้อม นอกจากนี้ sshd ใช้ตัวเลือกในบรรทัดคำสั่งของแบบฟอร์ม

-oSomeOption=SomeValue

-o ตัวเลือกสามารถใช้เพื่อให้ตัวเลือกในรูปแบบที่ใช้ในไฟล์การกำหนดค่า สิ่งนี้มีประโยชน์สำหรับการระบุตัวเลือกที่ไม่มีแฟล็กบรรทัดคำสั่งแยกกัน สำหรับรายละเอียดทั้งหมดของตัวเลือกและค่าต่างๆให้ดูที่ sshd_config (5)

ดังนั้นคุณสามารถใช้

-o ListenAddress=<some address>

สันนิษฐานว่าคุณมีวิธีไม่อยู่ในแบนด์ของการพูดคุยกับ VPS ของคุณเพื่อที่ว่าเมื่อสิ่งนี้เกิดขึ้นคุณสามารถติดต่อเซิร์ฟเวอร์ได้


1
ลอง:-o ListenAddress=$(ip addr | awk '/inet/ && /tun0/{sub(/\/.*$/,"",$2); print $2}')
pjz

@pjz ฉันไม่คิดว่าคุณจะต้องทำอย่างนั้นเพราะฉันค่อนข้างแน่ใจว่าที่อยู่ IP ของอุปกรณ์นั้นพร้อมใช้งานเป็นตัวแปรสภาพแวดล้อมของสคริปต์ขึ้น ฉันแค่ไม่มีของที่จะลองใช้
user9517

1
ยอดเยี่ยม IP ถูกส่งผ่านไปยังสคริปต์ up เป็น ifconfig_local = 10.xx.xx.xx กลุ่มข้อมูลอื่นทั้งหมด (dev_type = tun, common_name = myservername, ifconfig_remote, route_gateway_1, untrusted_ip, ifconfig_local, proto_1, tls_serial_1, tls_serial_0 ... )
Philipp

ใช่ฉันรู้แล้วและตอนนี้คุณก็ทำเช่นกัน :)
user9517

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