ฉันเพิ่งตัดสินใจทำการบำรุงรักษาความปลอดภัย ฉันเห็นบันทึกของฉันและมีความพยายามต่อต้านเซิร์ฟเวอร์ SSH ของฉัน ตอนแรกผมย้ายออกไปพอร์ต SSH จากเริ่มต้นที่ 22 หลังจากที่ผมอ่านบางอย่างเกี่ยวกับfail2ban , BlockHostsและDenyHosts
ฉันดูที่แรก: มันง่ายในการกำหนดค่าทุกอย่างเข้าใจได้ แต่เมื่อฉันพยายามที่จะ "ตรวจสอบการป้องกัน" การทดสอบจะล้มเหลว ทุกอย่างดูเหมือนจะดี แต่ฉันยังสามารถเข้าถึงเซิร์ฟเวอร์ได้
ฉันยังทดสอบ IPtables: # iptables -I INPUT -j DROP
- หลังจากนั้นการเชื่อมต่อ SSH ของฉันหายไป (ดังนั้นสิ่งที่ฉันต้องการ) จากนั้น# iptables -I INPUT -s 84.x.y.z -j DROP
ซึ่งทำงานเกินไป
แต่สิ่งที่ Fail2ban ทำในกฎนั้นไม่ได้ผล: ( $ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
โหลดโมดูลเคอร์เนลแล้ว: ( $ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
รุ่น:
- Debian Lenny 5.06, เคอร์เนล 2.6.26-2-686
- IPtables 1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1: 5.1p1-5
ทดสอบ # 1 ทีละขั้นตอน:
- กำหนดค่า Fail2ban ให้น้อยที่สุด 60 วินาที จากนั้นโหลดซ้ำ
- พยายามเข้าสู่ระบบ (กับ SSH) โดยตรงด้วยรหัสผ่านผิด
- สำหรับครั้งที่ 6 ให้ป้อนรหัสผ่านที่ถูกต้อง (ลองได้สูงสุด 4 ครั้งเท่านั้น) ฉันเข้าสู่ระบบฉันยังสามารถเข้าถึงหน้าเว็บที่โฮสต์โดยเซิร์ฟเวอร์นั้นได้
iptables -L
แสดงให้ฉันเป็นดังกล่าวข้างต้น ดังนั้นการแบนจึงทำงานเมื่อฉันเชื่อมต่อสั่งเซิร์ฟเวอร์ของฉัน
ทดสอบ # 2 ทีละขั้นตอน:
- หยุด Fail2ban สร้าง
at
สคริปต์เพื่อลบกฎการแบนที่เขียนด้านล่างในอนาคต (iptables -D INPUT 1
) - สร้างกฎการแบน:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- ฉันไม่สามารถพิมพ์สิ่งอื่นการเชื่อมต่อ SSH ไม่สามารถใช้ได้ ฉันไม่สามารถเข้าถึงหน้าเว็บได้ ดังนั้นสิ่งที่ฉันต้องการจาก iptables
- หลังจาก
at
สคริปต์ฉันสามารถเข้าถึงเซิร์ฟเวอร์ของฉัน
ฉันไม่เห็นวิธีแก้ปัญหาฉันควรทำอย่างไรเพื่อให้ IPtables ของฉันแบน (ทำโดย Fail2ban) ทำงาน