ผมอยากจะเลือกสมองของชุมชนเกี่ยวกับการรักษาความปลอดภัยเซิร์ฟเวอร์ลินุกซ์โดยเฉพาะเกี่ยวกับการโจมตีแรงเดรัจฉานและการใช้fail2ban VS กำหนดเองiptables
มีคำถามที่คล้ายกันสองสามข้อ แต่ไม่มีคำถามใดที่ตอบหัวข้อนี้เพื่อความพึงพอใจของฉัน ในระยะสั้นฉันพยายามหาทางออกที่ดีที่สุดในการรักษาความปลอดภัยเซิร์ฟเวอร์ linux ที่เปิดเผยต่ออินเทอร์เน็ต (เรียกใช้บริการตามปกติ, ssh, เว็บ, อีเมล) จากการโจมตีที่โหดร้าย
ฉันมีการจัดการที่ดีเกี่ยวกับความปลอดภัยของเซิร์ฟเวอร์เช่นการล็อค ssh โดยไม่อนุญาตให้มีการล็อกอินรูทหรือรหัสผ่านเปลี่ยนพอร์ตเริ่มต้นมั่นใจว่าซอฟต์แวร์ทันสมัยตรวจสอบไฟล์บันทึกอนุญาตให้โฮสต์บางแห่งเข้าถึงเซิร์ฟเวอร์และใช้ความปลอดภัย เครื่องมือการตรวจสอบเช่นLynis ( https://cisofy.com/lynis/ ) สำหรับการปฏิบัติตามการรักษาความปลอดภัยโดยทั่วไปดังนั้นคำถามนี้ไม่จำเป็นต้องเกี่ยวกับว่าถึงแม้จะป้อนข้อมูลและคำแนะนำที่เป็นยินดีต้อนรับเสมอ
คำถามของฉันคือฉันควรใช้โซลูชันใด (fail2ban หรือ iptables) และฉันจะกำหนดค่าได้อย่างไรหรือฉันควรใช้ทั้งสองอย่างร่วมกันเพื่อป้องกันการโจมตีที่โหดร้าย?
มีการตอบสนองที่น่าสนใจเกี่ยวกับหัวข้อ ( Denyhosts vs fail2ban vs iptables- วิธีที่ดีที่สุดในการป้องกันการเข้าสู่ระบบกำลังดุร้าย? ) คำตอบที่น่าสนใจที่สุดสำหรับฉันคือ ( https://serverfault.com/a/128964 ) และการกำหนดเส้นทาง iptablesนั้นเกิดขึ้นในเคอร์เนลซึ่งตรงข้ามกับ fail2ban ซึ่งใช้เครื่องมือโหมดผู้ใช้เพื่อแยกวิเคราะห์ไฟล์บันทึก Fail2ban ใช้ iptables แน่นอน แต่ก็ยังต้องแยกวิเคราะห์ไฟล์บันทึกและจับคู่รูปแบบจนกว่าจะดำเนินการ
มันสมเหตุสมผลหรือไม่ที่จะใช้ iptables และใช้อัตรา จำกัด ( https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/ ) เพื่อวางคำขอจาก IP เป็นระยะเวลา เวลาที่พยายามเชื่อมต่อมากเกินไปในช่วงเวลาหนึ่งโดยไม่คำนึงถึงโปรโตคอลที่พยายามเชื่อมต่อ ถ้าเป็นเช่นนั้นมีความคิดที่น่าสนใจเกี่ยวกับการใช้ drop vs ปฏิเสธสำหรับแพ็กเก็ตเหล่านั้นที่นี่ ( http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject ) ความคิดใด ๆ
Fail2ban อนุญาตให้มีการกำหนดค่าที่กำหนดเองในรูปแบบของความสามารถในการเขียน ' กฎ ' ที่กำหนดเองสำหรับบริการที่อาจไม่ได้ระบุไว้ในการกำหนดค่าเริ่มต้น มันเป็นเรื่องง่ายในการติดตั้งและการตั้งค่าและมีประสิทธิภาพ แต่มันอาจจะเป็น overkill ถ้าทั้งหมดที่ฉันกำลังพยายามที่จะบรรลุคือ ' บล็อก ' ไอพีจากเซิร์ฟเวอร์ถ้าพวกเขาทำ 2 ครั้งการเข้าถึงล้มเหลวในการให้บริการใด ๆ / โปรโตคอลกว่าxจำนวน เวลา
เป้าหมายที่นี่คือการเปิดรายงานบันทึกการใช้งานรายวันและไม่จำเป็นต้องเลื่อนดูหน้าที่พยายามเชื่อมต่อกับเซิร์ฟเวอร์ที่ล้มเหลว
ขอบคุณที่สละเวลา