ฉันจะทำให้วินาทีไม่สนใจการประทับเวลาได้อย่างถูกต้องได้อย่างไร


13

ฉันมีกฎที่ตั้งขึ้นเช่นนั้น

ใน /etc/sec/rules.d ฉันมี

type=SingleWithSuppress
ptype=regexp
pattern=(\S+) sshd\[\d+\]: PAM \d+ more authentication failures\; logname=.* uid=.* euid=.* tty=ssh ruser=.* rhost=(.*) user=(.*)
desc=Login Failure: $0
action=pipe '%s ' /bin/mail -s "login failure $2 to $3@$1" team@team.com
window=300

ดังนั้นถ้าสิ่งนี้มาถึง syslog;

Nov 21 11:24:10 servername.server.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=kloggins

ควรจับคู่สิ่งนี้ (ซึ่งทำตามตัวแก้ไข regex ของฉัน) ตามรูปแบบ

servername.server.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user=kloggins

เราประสบปัญหากับสแปมเนื่องจากการประทับเวลาเปลี่ยนไป ดังนั้นฉันจึงเขียนรูปแบบเพื่อจับคู่ทุกอย่างหลังจากชื่อโฮสต์

อย่างไรก็ตามสิ่งนี้ดูเหมือนจะไม่ทำงานและทุกครั้งที่ผู้ใช้ "การรับรองความถูกต้องล้มเหลว" ฉันยังคงได้รับอีเมล

ฉันใช้การทดสอบต่อไปนี้

logger -p syslog.err 'sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= user='

ความคิดใด ๆ ฉันอาจจะเข้าใจผิดวินาที นี่เป็นครั้งแรกที่ฉันทำงานกับมัน! ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ขอบคุณ!

คำตอบ:


11

หลังจากดึงผมมาเกือบหนึ่งวันในที่สุดฉันก็เข้าใจก) วิธีทำและข) ความเข้าใจผิดที่ฉันมีเกี่ยวกับวินาที

ในการอ่านหน้าคนวินาทีและมันจะอธิบาย desc = เป็นการแสดงการจับคู่เป็นหลัก ดังนั้นในใจของฉันนั่นหมายความว่ามันควรจะแสดงให้เห็นว่าอะไรก็ตามที่ถูกจับคู่ในรูปแบบ ในกรณีนี้การจับคู่ในรูปแบบนั้นคือ; ชื่อโฮสต์, rhost และผู้ใช้

ดังนั้นเมื่อฉันทำ desc = ความล้มเหลวในการเข้าสู่ระบบ: $ 0 ฉันจะปิดทั้งบรรทัด เลวร้าย.

ดังนั้นฉันจึงเปลี่ยนมันเพื่อปิดชื่อผู้ใช้และชื่อโฮสต์ซึ่งทำให้มันเป็นไปตาม window = 300 กฎเนื่องจากการประทับเวลา (ทั้งบรรทัด) ไม่เปลี่ยน อาคาบทสรุปดังต่อไปนี้

/etc/sec/rules.d/ssh.sec

type=SingleWithSuppress
ptype=regexp
pattern=(\S+) sshd\[\d+\]: PAM \d+ more authentication failures\; logname=.* uid=.* euid=.* tty=ssh ruser=.* rhost=(.*) user=(.*)
desc=Login Failure: $3@$1
action=pipe '%s $0' /bin/mail -s "Login Failure: $3@$1" email@email.com
window=300

Error Line

Nov 21 01:58:10 test.test.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=test.test.com user=kloggins

มันจะสังเกตเห็นว่าผู้ใช้ kloggins@test.test.com และจะไม่รายงานหากมันเกิดขึ้นอีกครั้งหลังจาก 300 วินาทีเพราะมันปิด kloggins@test.test.com

ฉันได้ทดสอบหลายครั้งแล้วตอนนี้มันเป็น 'werkin


1
ทำได้ดีมาก
Magellan

4
ได้ยินนี่ +1 จากฉันทั้งคู่สำหรับคำถามที่ยอดเยี่ยมเขียนได้ดีวิจัยได้ดีและมีขอบเขตและสำหรับการกลับมาและโพสต์คำตอบรายละเอียดหลังจากที่คุณมี Epiphany ที่จำเป็น! ขอขอบคุณ.
MadHatter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.