Score:0

ใช้มูลค่าของ จากความล้มเหลว 2ban regex

ธง es

ฉันพยายามส่งอีเมลถึงฉันและผู้ใช้ว่ามีคนพยายามลงชื่อเข้าใช้ ssh และล้มเหลว - IP ถูกแบน แต่ฉันไม่เข้าใจว่าฉันจะใช้ตัวแปรในอีเมลที่ฉันพยายามส่งได้อย่างไร

Sendmail ได้รับการตั้งค่าอย่างถูกต้องเนื่องจากอีเมลถูกส่งโดยไม่มีปัญหา

นี่คือ jail.local config ของฉัน

[sshd]
พอร์ต = ssh
ล็อกพาธ = %(sshd_log)s
แบ็กเอนด์ = %(sshd_backend)s
การกระทำ = %(banaction)s[ชื่อ=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="% (ห่วงโซ่"]
             %(mta)s-whois-lines-ssh[ชื่อ=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain= "%(ห่วงโซ่"]

และนี่คือ action.d/sendmail-whois-lines-ssh.conf ของฉัน

[รวมถึง]

ก่อน = sendmail-common.conf
         helpers-common.conf

[คำนิยาม]

ปรับปรุงใหม่ = 1
actionban = ( printf %%b "หัวเรื่อง: [Fail2Ban] <ชื่อ>: ถูกแบน <ip> จาก <fq-hostname>
            วันที่: `LC_ALL=C วันที่ +"%%a, %%d %%h %%Y %%T %%z"`
            จาก: <ชื่อผู้ส่ง> <<ผู้ส่ง>>
            ถึง: <dest>, <F-USER>@mydomain.cz\n
            สวัสดี\n
            IP <ip> เพิ่งถูกแบนโดย Fail2Ban หลังจากนั้น
            <ความล้มเหลว> พยายามต่อต้าน <ชื่อ>\n\n
            นี่คือข้อมูลเพิ่มเติมเกี่ยวกับ <ip> :\n
            `/usr/bin/whois <ip> || echo ไม่มีโปรแกรม whois`\n\n
            บรรทัดที่มีความล้มเหลวของ <ip>\n";
            %(_grep_logs)s;
            พิมพ์f %%b "\n
            ขอแสดงความนับถือ\n
            Fail2Ban" ) | /usr/sbin/sendmail -f <sender>.mydomain.cz <dest> <F-USER>@mydomain.cz

[ในนั้น]
ชื่อ = ค่าเริ่มต้น
ล็อกพาธ = /dev/null

อีเมลที่ส่งถึงฉันไม่เป็นไร เพราะนำมาจากการกำหนดค่าอย่างถูกต้อง แต่ <F-USER> ไม่มีค่า ดังนั้นมันจึงถูกส่งไปที่ @mydomain.cz

ฉันจะรับค่าเพื่อส่งอีเมลไปยังผู้ใช้ได้อย่างไร

แก้ไข regex ที่โดน SSH คืออันนี้:

^pam_unix\(sshd:auth\):\s+การตรวจสอบความถูกต้องล้มเหลว;\s*logname=\S*\s*uid=\d*\s*euid=\d*\s*tty=\S*\s *ruser=<F-USER>\S*</F-USER>\s*rhost=<HOST>\s.*%(__suff)s$
es flag
นั่นไม่สำคัญในบริบทนี้ อันที่จริงแล้ว ว่างเปล่า ดังนั้นหากอีเมลไม่ได้ถูกส่งไปทางใดทางหนึ่ง
Score:1
ธง il

ฉันพยายามส่งอีเมลถึงฉันและผู้ใช้ว่ามีคนพยายามลงชื่อเข้าใช้ ssh และล้มเหลว

ฉันมีข้อสงสัยเล็กน้อยเกี่ยวกับแนวทางนี้ เช่น "ช่องโหว่" บางอย่างที่อาจนำมาใช้ - RE <F-USER>\S*</F-USER> จะจับคู่อะไรก็ได้จนถึงช่องว่างแรก เช่น หากตรงกับ "ชื่อผู้ใช้" จะเป็น [email protected] ทดสอบ จดหมายของคุณจะถูกส่งไปที่ [email protected]ซึ่งอาจไม่ใช่ผู้ใช้โดเมนของคุณ ฉันสามารถจินตนาการถึงสถานการณ์อื่นได้เนื่องจากคุณกำลังพยายามใช้อินพุตต่างประเทศ (จากบันทึก) ในการดำเนินการกับอีเมล ดังนั้นควรตรวจสอบให้แน่ใจว่าสิ่งนี้จะไม่ได้รับผลกระทบจากความเป็นไปได้ในการฉีด (โปรดทราบ GHSA-m985-3f3v-cwmm ตัวอย่างเช่น).

regex ที่โดน SSH คืออันนี้ ...

ต้องมี Fairegex ด้วย <F-USER>...</F-USER> เพื่อจับค่าที่จะเก็บเป็น user name และต้องตรงกับอะไร

ที่นี่ เป็นตัวอย่างลักษณะที่ปรากฏในเวอร์ชันปัจจุบัน (โปรดทราบว่านี่ไม่ใช่ความล้มเหลวของ RE เนื่องจาก <F-NOFAIL> tag เป็นเพียงตัวช่วยในการค้นหา IP สำหรับข้อความที่ไม่มี IP ดู ปัญหา/3189#issuecomment-999571654 สำหรับรายละเอียด)

ด้วยประการฉะนี้ <F-ALT_USER> เป็นชื่อผู้ใช้สำรองและจะเก็บไว้ที่ F-ผู้ใช้ จับกลุ่มในตั๋วถ้าเป็นส่วนหนึ่ง <F-USER>...</F-USER> จะตรงกับค่าว่าง

บางที (เช่นในปัญหา/3189 ด้านบน) คุณมีแบ็กเอนด์ที่ไม่ถูกต้อง ดังนั้นให้เปลี่ยนไปใช้ ระบบ จะช่วยให้คุณจับคู่โดยใช้ sshd-regex อื่น

เกี่ยวข้องกับ regexp ของคุณสามารถเปลี่ยนแปลงได้ดังนี้ (back-ported จาก sshd-filter ปัจจุบัน):

- ^pam_unix\(sshd:auth\):\s+การตรวจสอบความถูกต้องล้มเหลว;\s*logname=\S*\s*uid=\d*\s*euid=\d*\s*tty=\S*\ s*ruser=<F-USER>\S*</F-USER>\s*rhost=<HOST>\s.*%(__suff)s$
+ ^pam_unix\(sshd:auth\):\s+การตรวจสอบความถูกต้องล้มเหลว;(?:\s+(?:(?:logname|e?uid|tty)=\S*)){0,4}\s+ ruser=<F-ALT_USER>\S*</F-ALT_USER>\s+rhost=<HOST>(?:\s+user=<F-USER>\S*</F-USER>)?%( __suff)s$

แต่นี่ค่อนข้างเป็น RE ของ แพมเพิสทั่วไป ตัวกรอง / คุก ตามที่ได้กล่าวไปแล้วใน ฉบับ/3189ดังนั้นจึงไม่ถูกต้องนักที่จะใช้สิ่งนี้กับคุก sshd (โดยปกติคุณจะเห็นข้อความที่แตกต่างกันในบันทึกประจำวันหรือ auth.log)

อย่างไรก็ตามในการตรวจสอบลึกลงไปนั้นต้องการตัวอย่างข้อความ (หรือดีกว่าตัดตอนบันทึกพร้อมข้อความทั้งหมดของ sshd-session ที่ทำให้เกิดการแบน)

es flag
ขอบคุณมากสำหรับคำตอบที่ครบถ้วนสมบูรณ์ของคุณ !

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา