ขึ้นอยู่กับสิ่งที่ SSH ต้องการสำหรับคุณอาจจะสามารถบรรลุเป้าหมายนี้ (สำหรับคนที่ไม่สำคัญ) โดยใช้ IPTables เพื่อยุติเซสชันหากขนาดของแพ็คเก็ตใหญ่กว่านั้นควรบอกว่า 1,400 ไบต์ ซึ่งหมายความว่า ssh แบบอินเทอร์แอคทีฟส่วนใหญ่จะทำงานได้ แต่ทันทีที่บางสิ่งบางอย่างพยายามส่งแพ็กเก็ต 1500 ไบต์ - เช่นเดียวกับ scp ควรสำหรับไฟล์ที่มีขนาดใหญ่กว่านั้น 1,499 ไบต์จะถือว่า MTU มาตรฐานที่ 1500 จะยุติการเชื่อมต่อ
วิธีนี้จะป้องกันการ "โจมตี" ที่คุณกล่าวถึง
น่าเสียดายที่นี่หมายความว่าคุณอาจมีปัญหาในการแก้ไขไฟล์ด้วยตัวแก้ไขข้อความหากหน้าจอต้องการวาดมากกว่า 1400 ตัวอักษรหรือหากคุณต้องการใช้ไฟล์ขนาดยาวหรือทำรายชื่อไดเรกตอรีแบบยาว
ในกรณีที่ง่ายที่สุดคำสั่งให้ทำเช่นนี้อาจมีลักษณะคล้าย
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff -j DROP
เราสามารถทำให้การทำงานนี้ดีขึ้นโดยการรวมการตรวจสอบความยาวของแพ็กเก็ตกับ ipt_recent ดังนั้นคุณจึงอนุญาตให้มีจำนวนแพ็คเก็ตที่ใหญ่กว่านั้น จำกัด 1,400 ไบต์ภายในระยะเวลาที่กำหนด (8 แพ็คเก็ตต่อ 5 วินาที) - ผ่าน แต่อาจให้การโต้ตอบที่คุณต้องการสำหรับการแก้ไขไฟล์ ฯลฯ แน่นอนว่าคุณสามารถปรับแต่งจำนวนของแพ็คเก็ตได้
นี่อาจดูเหมือนอะไร
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --set
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --update --seconds 5 --hitcount 8 \
-j REJECT --reject-with tcp-reset
ตัวอย่างกฎด้านบนป้องกันการอัปโหลด scp เช่นscp myfile.data remote.host:~
เท่านั้น นอกจากนี้การป้องกันการดาวน์โหลด SCP เช่นscp remote.host:~/myfile.data /local/path
ทำซ้ำกฎดังกล่าวข้างต้น แต่แทนที่ด้วย--dport
--sport
แฮ็กเกอร์ที่ฉลาดแกมโกงสามารถแก้ไขข้อ จำกัด เหล่านี้ได้โดยตั้งค่า MTU ให้ต่ำกว่า 1,400 หน่วยในเครื่องของเขา (หรือบังคับให้ mtu หรือคล้ายกัน) นอกจากนี้ในขณะที่คุณไม่สามารถ จำกัด สิ่งนี้ให้กับผู้ใช้บางคนคุณสามารถ จำกัด โดยใช้ IP โดยการแก้ไขบรรทัด iptables ตามความเหมาะสม !!
ไชโยเดวิดโก