ความขัดแย้งของ ufw และ fail2ban ที่อาจเกิดขึ้น


45

การรันทั้ง fail2ban และ ufw จะทำให้เกิดปัญหาหรือไม่ ฉันสังเกตเห็นว่า fail2ban ปรับเปลี่ยนกฎ iptables แต่ ufw มีกฎ iptables ที่กำหนดไว้แล้วมากมาย ... ดังนั้นฉันไม่แน่ใจว่า fail2ban จะทำสิ่งเหล่านี้ผิดหรือไม่


ซึ่งUbuntuรุ่น? ('ufw' ได้รับการปรับปรุงเล็กน้อยระหว่าง10.04 LTSและ11.x )
david6

@ david6: ขอโทษฉันจำไม่ได้ว่าฉันใช้เวอร์ชั่นใดตอนแรกที่ฉันถามคำถาม
Adam Monsen

คำตอบ:


49

คุณสามารถใช้ ufw และ fail2b ร่วมกัน แต่ตามที่ระบุไว้ก่อนหน้านี้ลำดับของกฎ (ufw) คือสิ่งที่สำคัญ

fail2ban ใช้ iptables และกฎการแทรกก่อนออกจากกล่อง INPUT chain สิ่งนี้จะไม่ทำอันตรายหรือขัดแย้งกับ ufw

หากคุณต้องการรวม fail2ban ทั้งหมดเพื่อใช้ ufw (แทน iptables) คุณจะต้องแก้ไขไฟล์จำนวนมากรวมถึง

/etc/fail2ban/jail.local

jail.local เป็นที่ที่คุณกำหนดบริการของคุณรวมถึงพอร์ตที่พวกเขากำลังฟังอยู่ (คิดว่าเปลี่ยน ssh เป็นพอร์ตที่ไม่ใช่ค่าเริ่มต้น) และสิ่งที่ต้องดำเนินการ

** โปรดทราบ *: ไม่เคยแก้ไขjail.confการเปลี่ยนแปลงของคุณควรทำjail.local! ไฟล์นั้นเริ่มต้นด้วยสิ่งนี้:

# Changes:  in most of the cases you should not modify this
#           file, but provide customizations in jail.local file,
#           or separate .conf files under jail.d/ directory

ใช้ ssh เป็นตัวอย่างสังเกตคำนิยามของพอร์ตที่ไม่ใช่ค่าเริ่มต้นเช่นกัน =)

[ssh]
enabled = true
banaction = ufw-ssh
port = 2992
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

จากนั้นคุณกำหนดค่า fail2ban เพื่อใช้ ufw ใน (หนึ่งไฟล์. config สำหรับแต่ละบริการ)

/etc/fail2ban/action.d/ufw-ssh.conf

ไวยากรณ์คือ

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip> to any app OpenSSH
actionunban = ufw delete deny from <ip> to any app OpenSSH

หมายเหตุ: คุณกำหนดค่า fail2ban เพื่อใช้ ufw และเพื่อแทรกกฎใหม่ครั้งแรกโดยใช้ไวยากรณ์ "insert 1" การลบจะค้นหากฎโดยไม่คำนึงถึงลำดับ

มีโพสต์บล็อกที่ดีที่จะลงรายละเอียดเพิ่มเติมที่นี่

http://blog.vigilcode.com/2011/05/ufw-with-fail2ban-quick-secure-setup-part-ii/

[แก้ไข] สำหรับ Ubuntu 16.04+

โดยค่าเริ่มต้นแล้ว " defaults-debian.conf" /etc/fail2ban/jail.dด้วยเนื้อหา

[sshd]
enabled = true

จะเปิดใช้งานการป้องกัน ssh ของ fail2ban

คุณต้องใส่มันผิด

จากนั้นสร้างคุกในท้องถิ่นเช่นเดียวกับที่คุณทำโดยทั่วไปของฉันจะเป็นเช่นนี้:

[ssh-with-ufw] 
enabled = true 
port = 22 
filter = sshd 
action = ufw[application="OpenSSH", blocktype=reject] 
logpath = /var/log/auth.log 
maxretry = 3

มี ufw.conf อยู่แล้วในการติดตั้งเริ่มต้น fail2ban ดังนั้นไม่จำเป็นต้องสร้างขึ้นมาใหม่

การเปลี่ยนแปลงเฉพาะอย่างเดียวสำหรับคุณ jail.local จะเป็นที่บรรทัดคำสั่งที่คุณต้องใส่แอปพลิเคชันที่เกี่ยวข้องกับการป้องกันและสิ่งที่คุณต้องการให้ได้ผลลัพธ์

ufw มีแนวโน้มที่จะตรวจพบแอปจำนวนหนึ่งที่ทำงานโดยอัตโนมัติโดยใช้เครือข่าย sudo ufw app listจะมีรายการประเภทเพียง มันเป็นกรณี ๆ ไป

โหลด fail2ban อีกครั้งและคุณจะไม่เห็นเครือข่าย fail2ban อีกต่อไปและหาก IP ใด ๆ ได้รับบล็อกคุณจะเห็นมัน sudo ufw status


7
ดังนั้นโดยย่อ: โดยไม่รวมการทำงานตามที่อธิบายไว้ทั้ง ufw และ fail2ban ทำงานเหมือนที่ควร Fail2ban จะแทรกคำจำกัดความการบล็อกก่อนที่จะใช้กฎของ ufw ในอีกทางหนึ่งหากต้องการให้บล็อกปรากฏขึ้นufw statusคุณต้องมีการรวมเข้าด้วยกัน นอกจากจะมีบล็อกปรากฏขึ้นufw statusแล้วจะไม่มีประโยชน์อื่นอีกไหม? โดยเฉพาะอย่างยิ่งเพราะผู้เขียนบล็อกระบุว่าสิ่งต่อไปนี้: ไม่ทำงาน Fail2ban ทำงานได้กับกฎ iptables แต่สิ่งเหล่านี้เล่นได้ไม่ดีกับคำสั่ง UFW ที่ง่ายกว่าของเรา (... )
bouke

1
เผง "Don't play nice" หมายถึงไม่แสดงเมื่อคุณตรวจสอบสถานะ ufw ประโยชน์ของการรวมระบบคือคุณใช้เครื่องมือเดียว ufw เพื่อจัดการและแสดงกฎไฟร์วอลล์ของคุณ ไม่มีอะไรผิดปกติกับการใช้ fail2ban ตามที่เป็นอยู่ในกรอบของฟังก์ชัน ปัญหาก็คือเพื่อดูกฎ fail2ban คุณจะต้องใช้ iptables -L -v -n และอย่างที่คุณเห็นเมื่อใช้ ufw เอาต์พุตจะยาวและยากต่อการปฏิบัติตาม ข้อได้เปรียบของการรวมกันคือกฎและไวยากรณ์นั้นง่ายต่อการเข้าใจ (สมมติว่าเป็นเหตุผลที่คุณใช้ ufw ตั้งแต่แรก)
Panther

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

@AntonioCangiano - ลิงก์ใช้งานได้ดีที่นี่ตรวจสอบเบราว์เซอร์และ DNS ของคุณ
Panther

@ bodhi.zazen การคลิกที่บทความที่เชื่อมโยงใด ๆ จะเป็นการเปลี่ยนเส้นทางไปยังเว็บไซต์โกงเนื่องจาก Antonio ชี้ให้เห็นอย่างถูกต้อง ฉันลังเลที่จะรับคำแนะนำด้านความปลอดภัยจากบทความดังกล่าว
Goran Miskovic

4

ฉันใช้ fail2ban และ ufw มาหลายปีกับคอมพิวเตอร์หลายเครื่องและไม่เคยมีปัญหาใด ๆ เลย ในการตั้งค่า fail2ban:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano jail.local

ตอนนี้แก้ไขไฟล์ตามที่คุณต้องการตัวอย่างเช่นถ้าคุณต้องการที่จะป้องกันไม่ให้ ssh หาบรรทัด:

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

หากตั้งค่า "enable" เป็น "false" ให้เปลี่ยนเป็น "true" ดังที่ระบุไว้ที่นี่ หลังจากที่คุณตั้งค่ากฎคุณต้องเริ่มต้นกระบวนการ fail2ban อีกครั้ง:

sudo /etc/init.d/fail2ban restart

หากคุณเปิดพอร์ต 22 บนไฟร์วอลล์ ufw ของคุณ fail2ban จะห้ามไคลเอนต์ที่พยายามเชื่อมต่อมากกว่า 6 ครั้งโดยไม่ประสบความสำเร็จมันจะไม่ทำลายไฟร์วอลล์ของคุณ


4

การติดตั้ง 0.9.5 จาก fail2ban รวมถึงการufwกระทำที่ฉันต้องตั้งค่าสำหรับbanaction


2
สำหรับบันทึกการกระทำนั้นมีอยู่ในเวอร์ชัน 0.8.13 ด้วย
Joril
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.