ฉันเดาว่าคนที่ขับรถ เซิร์ฟเวอร์ Linux รู้และรู้เกี่ยวกับ ปฏิเสธโฮสท์ y Fail2ban. สำหรับผู้ที่ไม่รู้จักเขาฉันจะ อธิบาย เล็กน้อยเกี่ยวกับสองคนนี้ การใช้งาน. |
เราจะติดตั้งและกำหนดค่าแอปพลิเคชั่นทั้งสองนี้เพื่อหลีกเลี่ยงความปวดหัว ก่อนอื่นเราจะอธิบายว่าทั้งสองแอปพลิเคชันคืออะไรและมีหน้าที่อะไร:
Fail2Ban
เป็นเครื่องมือวิเคราะห์บันทึกที่ค้นหาความพยายามในการลงทะเบียนที่ล้มเหลวและบล็อก IP ที่เกิดจากความพยายามเหล่านี้ มีการแจกจ่ายภายใต้สิทธิ์การใช้งาน GNU และโดยทั่วไปจะทำงานกับทุกระบบที่เชื่อมต่อกับระบบควบคุมการโจมตีหรือไฟร์วอลล์ในพื้นที่
Fail2Ban มีการกำหนดค่าที่ยอดเยี่ยมและยังสามารถสร้างกฎสำหรับโปรแกรม
ของตัวเองหรือบุคคลที่สาม
ปฏิเสธโฮสท์
เป็นเครื่องมือรักษาความปลอดภัยที่เขียนด้วย python ที่ตรวจสอบบันทึกการเข้าถึงเซิร์ฟเวอร์เพื่อป้องกันการโจมตีแบบเดรัจฉานบนเซิร์ฟเวอร์เสมือน โปรแกรมทำงานโดยการห้ามที่อยู่ IP ที่มีความพยายามในการเชื่อมต่อที่ล้มเหลวเกินจำนวนที่กำหนด
แอปพลิเคชัน Linux เหล่านี้ - DenyHosts และ Fail2ban - สามารถใช้แยกกันหรือใช้ร่วมกันได้ ในกรณีของฉันฉันให้พวกเขาทั้งสองทำงานร่วมกัน
การติดตั้งและการกำหนดค่าของแต่ละรายการขึ้นอยู่กับการแจกจ่ายที่คุณใช้ โพสต์นี้มุ่งเน้นไปที่ CentOS 6.3 แม้ว่าความแตกต่างระหว่าง Distros อื่น ๆ จะไม่มีการทำเครื่องหมายมากนัก
ถ้าอย่างนั้นไปทำงาน
การติดตั้งและกำหนดค่า Fail2Ban
แอปพลิเคชันนี้สร้างกฎแบบไดนามิกในไฟร์วอลล์ของลินุกซ์เองและรับผิดชอบในการสร้างกฎที่ใช้งานจริงใน IpTables
การติดตั้ง
สำหรับการติดตั้ง:
ยำติดตั้ง fail2ban
หากแพ็คเกจไม่ปรากฏขึ้นเราต้องเพิ่มที่เก็บที่จำเป็น:
รอบต่อนาที -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
ด้วยสิ่งนี้คุณควรเริ่มติดตั้งแอปพลิเคชันพร้อมกับการอ้างอิง
ตอนนี้เราต้องกำหนดค่า Fail2Ban เพื่อวิเคราะห์บันทึกที่เราต้องการและบล็อก
IP ของการส่งการแจ้งเตือนทางอีเมล สำหรับสิ่งนี้เราต้องแก้ไขไฟล์ jail.conf ที่เราพบใน / etc / fail2ban
cd / etc / fail2ban
นาโน jail.conf
ควรทำสิ่งต่อไปนี้ในไฟล์นี้:
- Modify คือค่า bantime ค่านี้กำหนดเวลาเป็นวินาทีที่ IP ของผู้โจมตีจะถูกบล็อกโดยค่าเริ่มต้นจะมาใน 600 วินาที
- ค้นหาค่าสูงสุดที่จะเป็นจำนวนครั้งที่ IP สามารถตรวจสอบสิทธิ์ล้มเหลวก่อนที่จะถูกบล็อก
- เพิ่ม ip ของเราในพารามิเตอร์ Ignoreip ที่นี่แอปพลิเคชันจะละเว้น IP ที่ตรวจสอบสิทธิ์ของเราในพารามิเตอร์นั้น
[ค่าเริ่มต้น]
# "ignip" อาจเป็นที่อยู่ IP, CIDR mask หรือโฮสต์ DNS Fail2ban จะไม่
# ห้ามโฮสต์ที่ตรงกับที่อยู่ในรายการนี้ หลายที่อยู่ได้
# กำหนดโดยใช้ตัวคั่นช่องว่าง
ไม่สนใจ = 127.0.0.1
# "bantime" คือจำนวนวินาทีที่โฮสต์ถูกแบน
bantime = 600
# โฮสต์ถูกแบนหากสร้าง "maxretry" ในช่วง "findtime" ล่าสุด
# วินาที
findtime = 600
# "maxretry" คือจำนวนความล้มเหลวก่อนที่โฮสต์จะถูกแบน
maxretry = 3
ตัวอย่างวิธีการดูมีดังนี้:
ไม่สนใจ = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2
กำหนดค่า Fail2Ban และ SSH
หากต้องการค้นหาความพยายามในการเข้าสู่ระบบ SSH ที่ล้มเหลวเราจะแก้ไขไฟล์จนกว่าจะมีลักษณะดังต่อไปนี้:
[ssh-iptables]
เปิดใช้งาน = จริง
ตัวกรอง = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # นี่คือ บันทึกที่จะแยกวิเคราะห์ fail2ban
maxretry = 3 # IP ใด ๆ ที่มีความพยายามล้มเหลวสามครั้งขึ้นไปจะถูกบล็อก
bantime = 86400 # เวลาห้าม 24 ชั่วโมงแสดงเป็นวินาที
อย่าลืมว่าหากคุณแก้ไขพอร์ตที่ SSH รับฟังคุณต้องแก้ไขพารามิเตอร์พอร์ตด้วย
แอปพลิเคชันนี้ไม่เพียง แต่ใช้งานได้สำหรับการเข้าถึงโดยไม่ได้รับอนุญาตใน SSH เท่านั้น แต่ยังใช้กับ apache เพื่ออ่านบันทึก Asterisk เป็นต้น
การติดตั้งและการกำหนดค่า DenyHOSTS
การดำเนินการจะขึ้นอยู่กับการใช้ไฟล์ /etc/hosts.deny นั่นคือในการบล็อกที่อยู่ของโฮสต์ที่ "โจมตี" สร้างรายการโฮสต์ที่ถูกปฏิเสธ
การติดตั้งจากที่เก็บสามารถรับได้ด้วยคำสั่งต่อไปนี้:
ยำติดตั้ง denhosts
ไฟล์คอนฟิกูเรชันอยู่ใน /etc/denyhosts.conf
ก่อนที่จะดำเนินการต่อเนื่องจากในฐานะมนุษย์เราสามารถทำผิดพลาดและทำ "Layer 8" ตามปกติเมื่อเข้าถึงบริการใด ๆ และปิดกั้นตัวเอง เพื่อหลีกเลี่ยงสิ่งนั้นเราแก้ไขไฟล์ /etc/hosts.allow และเพิ่ม IP ของเครื่องที่เราไม่ต้องการถูก จำกัด เนื่องจากการเข้าถึงล้มเหลว
แก้ไขไฟล์ปฏิเสธhosts.conf
เพื่อไม่ให้ไปไกลในการตั้งค่าในไฟล์นี้เราจะแก้ไขและยกเลิกการแสดงความคิดเห็นบางพารามิเตอร์เท่านั้น เหล่านี้คือ:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 ชม
SYNC_UPLOAD = ใช่
SYNC_DOWNLOAD = ใช่
SYNC_ดาวน์โหลด_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 ชม
ดังนั้นเราจะปล่อยให้การกำหนดค่าเป็นค่าเริ่มต้น แต่มีความปลอดภัยที่ดีเยี่ยมต่อการโจมตี SSH
นาโน /etc/hosts.allow
ตัวอย่าง:
sshd:127.0.0.1
sshd:192.168.1.10
sshd: 192.168.0. *
หลังจากนี้เราจะเริ่มบริการใหม่:
/etc/init.d/denyhosts เริ่มต้นใหม่
ด้วยเหตุนี้เราจึงให้สิทธิ์ IP ช่วง IP และแน่นอนสำหรับอินเทอร์เฟซแบบย้อนกลับของเรา สิ่งที่ฉันไม่ได้ลอง - ดังนั้นฉันจึงไม่รู้ว่ามันใช้ได้ - คือการเพิ่ม DNS ลงในไฟล์นี้ นั่นคือด้วยบริการเช่น DynDNS ถ้าฉันทำฉันจะบอกคุณว่ามันเป็นอย่างไร
ด้วยตัวเลือกและการปรับเปลี่ยนบางอย่างเราจะตรวจสอบให้แน่ใจด้วยว่าหลังจากระยะเวลาที่เราระบุในการกำหนดค่า DenyHOSTS ที่อยู่ที่จัดเก็บไว้จะถูกล้างและจะได้รับการอัปเดตด้วยรายการอื่น ๆ ที่สร้างโดยผู้อื่นหากเราระบุว่าให้สิทธิ์ในการเข้าถึง เซิร์ฟเวอร์ของ DenyHOSTS
ในการล้างแอดเดรสที่เก็บไว้เป็นครั้งคราวตามที่กำหนดค่าไว้ daemon ต้องรันด้วยพารามิเตอร์ –purge:
/etc/init.d/denyhosts เริ่ม --purge
นอกจากนี้เราต้องรวมไว้ที่จุดเริ่มต้นของระบบ:
chkconfig ปฏิเสธโฮสต์บน