ฉันต้องการอนุญาตบล็อกที่อยู่ IP ที่รู้จักให้ SSH ในเซิร์ฟเวอร์ของเราเท่านั้น ฉันมี Windows Server 2012, R2, CentOS 7 และ Ubuntu 12 และ 14
การปฏิบัติที่ดีที่สุดสำหรับแต่ละระบบปฏิบัติการคืออะไร
ฉันต้องการอนุญาตบล็อกที่อยู่ IP ที่รู้จักให้ SSH ในเซิร์ฟเวอร์ของเราเท่านั้น ฉันมี Windows Server 2012, R2, CentOS 7 และ Ubuntu 12 และ 14
การปฏิบัติที่ดีที่สุดสำหรับแต่ละระบบปฏิบัติการคืออะไร
คำตอบ:
มีหลายวิธีที่คุณสามารถทำได้ แต่ฉันจะบอกคุณว่าฉันทำอะไรให้กับลูกค้าของฉัน
ขึ้นอยู่กับวิธีที่คุณต้องการทำสิ่งนี้ (ฉันใช้ VLANs / subnets, ACLs และกลุ่มความปลอดภัย) โดยทั่วไปฉันจะสร้างกลุ่มความปลอดภัยเครือข่าย (โดยปกติจะเป็นไฟร์วอลล์ / สวิตช์ / เราเตอร์ที่ฉันทำงานด้วย) ซึ่งประกอบด้วย ช่วง IP กลุ่มเซิร์ฟเวอร์หรือวัตถุเครือข่ายที่ฉันจะอนุญาตให้เข้าถึงและจากนั้นฉันใช้ ACL เพื่อ จำกัด ปริมาณการใช้งาน
ตัวอย่างเช่นสมมติว่าคุณอนุญาตเซิร์ฟเวอร์เหล่านี้ที่คุณได้กล่าวถึงข้างต้นเพื่อเชื่อมต่อผ่าน SSH (พอร์ต TCP 22) ไปยังเซิร์ฟเวอร์ของคุณบนพื้นฐานภายใน / ภายนอก หมายถึงเซิร์ฟเวอร์ที่คุณกล่าวถึงข้างต้นนั้นเป็นเซิร์ฟเวอร์ภายนอกหรือภายนอก LAN ของคุณและเซิร์ฟเวอร์ที่คุณอนุญาตให้เซิร์ฟเวอร์เหล่านั้นสามารถใช้งานได้ในระบบ LAN ของคุณ คุณจะสร้างกลุ่มวัตถุบนไฟร์วอลล์ของคุณและเรียกว่าไคลเอนต์ SSH ภายนอกและใส่ IP ภายนอก / สาธารณะทั้งหมดของเซิร์ฟเวอร์เหล่านี้ลงในกลุ่มนี้ จากนั้นคุณจะสร้างกลุ่มอื่นบนไฟร์วอลล์สำหรับเซิร์ฟเวอร์ที่อยู่ใน LAN ภายในของคุณเพื่อให้พวกเขาสามารถเข้าถึงและเรียกมันว่าคล้ายกับเซิร์ฟเวอร์ภายในที่อนุญาต SSH ถัดไปคุณจะสร้าง ACL ที่จะอนุญาตการรับส่งข้อมูลจากไคลเอนต์ภายนอกไปยังเซิร์ฟเวอร์ภายใน ตัวอย่างเช่น ACL ของคุณจะมีลักษณะดังนี้:
ที่มา: ไคลเอนต์ SSH ภายนอก
ปลายทาง: อนุญาตให้ใช้เซิร์ฟเวอร์ภายใน SSH
โปรโตคอล / พอร์ต: SSH / 22
อนุญาต / ปฏิเสธ: อนุญาต
หากนี่เป็นไฟร์วอลล์หรืออุปกรณ์บางอย่างเช่นที่คุณวางกฎนี้ไว้เหนือกฎการปฏิเสธโดยปริยายของคุณ (กฎที่จะปฏิเสธการรับส่งข้อมูลทั้งหมดโดยปริยายเว้นแต่จะได้รับอนุญาตอย่างชัดเจน) ซึ่งโดยปกติจะเป็นกฎสุดท้ายของ ACL มีผลบังคับใช้ก่อนที่จะปฏิเสธ
สถานการณ์นี้มีเพียงบัญชีที่มาจากชุด IP สาธารณะหรือลูกค้าภายนอกเครือข่ายของคุณไปยังกลุ่มเซิร์ฟเวอร์ภายในบนเครือข่ายท้องถิ่นของคุณผ่าน SSH มีวิธีอื่น ๆ อีกมากมายในการทำสิ่งนี้และสถานการณ์อื่น บางทีคุณอาจสงสัยว่าจะทำเช่นไรภายในที่เซิร์ฟเวอร์ทั้งหมดอยู่ในเครื่องหรือบน LAN ของคุณและในกรณีนั้นมันไม่แตกต่างกันมากนัก ฉันแค่พยายามให้ความคิดพื้นฐานแก่คุณว่าคุณจะทำสิ่งนี้ได้อย่างไร แจ้งให้เราทราบหากมีอะไรที่ไม่สมเหตุสมผลและฉันสามารถชี้แจงเพิ่มเติมเกี่ยวกับรายละเอียดได้
ฉันแก้ไข /etc/hosts.allow: sshd: 198.xxx.xxx.xxx/255.255.255.248 sshd: 192.168.x.0 / 255.255.255.0
และ /etc/hosts.deny: sshd: ALL
และเริ่ม SSH ใหม่ ดูเหมือนว่าจะทำงาน