อนุญาตการพิสูจน์ตัวตนด้วยรหัสผ่านไปยังเซิร์ฟเวอร์ SSH จากเครือข่ายภายในเท่านั้น


22

ฉันมีเซิร์ฟเวอร์ OpenSSH 5.9p1 ที่ทำงานบน Ubuntu Precise 12.04 ซึ่งยอมรับการเชื่อมต่อจากทั้งเครือข่ายภายในและอินเทอร์เน็ต ฉันต้องการกำหนดให้ใช้การพิสูจน์ตัวตนด้วยรหัสสาธารณะสำหรับการเชื่อมต่อจากอินเทอร์เน็ต แต่ยอมรับการรับรองความถูกต้องของรหัสสาธารณะหรือการตรวจสอบรหัสผ่านสำหรับการเชื่อมต่อจากเครือข่ายภายใน ฉันสามารถกำหนดค่า OpenSSH เพื่อใช้งานได้หรือไม่

คำตอบ:


34

Matchสั่งในการ/etc/ssh/sshd_configช่วยให้คุณสามารถเลือกที่จะใช้แนวทางการกำหนดค่า หนึ่งในเกณฑ์การจับคู่ที่มีอยู่คือแหล่งที่อยู่ของการเชื่อมต่อและเพื่อให้สามารถใช้สิ่งที่คุณต้องการ คุณสามารถปิดใช้งานการตรวจสอบรหัสผ่านโดยค่าเริ่มต้นแล้วเปิดใช้งานสำหรับการเชื่อมต่อจากช่วง IP เครือข่ายภายใน (โปรดทราบว่าคุณต้องการปิดการใช้งานChallengeResponseAuthenticationเพื่อป้องกันการใช้รหัสผ่าน) ตัวอย่างนี้อนุญาตการตรวจสอบรหัสผ่านจากช่วง IP ส่วนตัวของ RFC1918 ทั้งหมด ดูsshd_config manpageสำหรับรายละเอียดเพิ่มเติม

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

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


3
โปรดทราบ: หากคุณทำสิ่งนี้และส่งต่อ SSH จากเครื่องสาธารณะที่เข้าถึงได้ (jumphost) ไปยังเครื่องที่มี config ข้างต้น (โฮสต์ภายใน) คุณยังสามารถเปิดตัวเองเพื่อโจมตีได้เนื่องจาก IP ต้นทางของ jumphost จะเป็นที่อยู่ RFC1918 และ อนุญาตการตรวจสอบรหัสผ่านไปยังโฮสต์ภายในของคุณ
c4urself
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.