วิธี * เพิ่ม * กฎในคำจำกัดความตัวกรอง fail2ban ภายในเครื่อง


10

ฉันติดตั้ง fail2ban เป็นแพคเกจโดย Debian บนเซิร์ฟเวอร์ภายใต้การควบคุมของฉัน เนื่องจากฉันมีข้อผิดพลาดบางส่วนจากก่อนหน้านี้ฉันจึงนำสิ่งเหล่านี้ไปไว้ในไฟล์คำจำกัดความตัวกรองในเครื่องเพื่อที่พวกเขาจะได้รับการพิจารณาเช่นกัน ดังนั้นฉันลงท้ายด้วยเช่น /etc/fail2ban/filter.d/sshd.conf และ /etc/fail2ban/filter.d/sshd.local นี่คือวิธีที่แนะนำให้ตั้งค่าและดูเหมือนว่าจะทำงานได้ดีสำหรับสิ่งที่มันเป็น

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

มันจะดีจริงๆถ้าฉันสามารถแก้ไขรายการได้รับประโยชน์จากการทำงานของผู้ดูแลอัปสตรีมและเดเบียนในการติดตามการเปลี่ยนแปลงของ regexes ตัวกรองรายการบันทึกการกระจายการบำรุงรักษา

วิธีแก้ปัญหาจริงเพียงอย่างเดียวที่ฉันคิดได้ก็คือสร้างคุกสองแห่งโดยใช้การตั้งค่าที่จัดไว้ให้และอีกหนึ่งตัวใช้งานของฉันเอง สิ่งนี้ดูเหมือนว่าจะมีข้อเสีย (ที่สำคัญพอสมควร) ซึ่งถือว่าเป็นคุกอิสระ (ซึ่งคุณคาดหวังจากการตั้งค่าเช่นนั้น)

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

เป็นไปได้หรือไม่ที่จะแก้ไขรายการของ failregex และ ignoreregex ภายในคำจำกัดความตัวกรอง fail2ban ผ่านไฟล์ site-local หรือ host-local โดยไม่ทำการเปลี่ยนแปลงใด ๆ กับไฟล์ global หรือแจกจ่ายที่สอดคล้องกัน? ถ้าเป็นเช่นนั้นแล้วจะทำอย่างไร?

คำตอบ:


4

ให้เราดูที่ส่วนหนึ่งของ/etc/fail2ban/filter.d/sshd.confไฟล์

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

ดังนั้นคุณอาจคิดว่าคุณสามารถเพิ่มที่นี่: after = sshd.localและทำให้มันอ่านไฟล์ดังกล่าว; การตั้งค่าใด ๆ ในนั้นจะแทนที่ค่าในไฟล์นี้

และมันใช้งานได้ ยกเว้นว่าคุณไม่สามารถแก้ไขรายการfailregexหรือคำสั่งอื่น ๆ คุณสามารถแทนที่ได้เท่านั้น

ความรู้สึกของคุณถูกต้อง นี่เป็นข้อบกพร่องของรูปแบบไฟล์กำหนดค่า fail2ban อย่างแน่นอน ฉันจะบ่นกับผู้พัฒนา


2

ฉันมีข้อกำหนดเดียวกันและโพสต์ไว้เป็นปัญหา ผู้เขียนดูเหมือนจะทำงานกับมัน: https://github.com/fail2ban/fail2ban/issues/867

เมื่อรวมแล้วควรใช้งานได้เช่นนี้ (ตัวอย่างนี้ได้รับความอนุเคราะห์จาก Serg Brester):

# filter test.conf:
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

# filter test.local:
[Definition]
failregex = %(known/failregex)s
            failure test 2 (filter.d/test.local) <HOST>

และ regexes สามารถเพิ่มในคุกด้วยวิธีเดียวกัน ...

# jail.local
[test3known-interp]
filter=test
enabled = true
failregex = %(known/failregex)s
            failure test 3 (jail.local) <HOST>

สำหรับผลลัพธ์ของ:

$ bin/fail2ban-client -d -c config | grep addfail
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf)]
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local)]
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>']
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.