Score:1

จะป้องกันไม่ให้รูท sasl_username เข้าสู่ระบบได้อย่างไร

ธง bo

เซิร์ฟเวอร์ Postfix ของฉันถูกใช้งานโดยผู้ส่งสแปม นี่คือผลลัพธ์ของ sudo postcat -vq สำหรับข้อความสแปมล่าสุดที่ตรวจพบ:

âââ> sudo postcat -vq 3513818A8A
postcat: name_mask: ทั้งหมด
postcat: inet_addr_local: กำหนดค่าที่อยู่ IPv4 2 รายการ
postcat: inet_addr_local: กำหนดค่าที่อยู่ IPv6 2 รายการ
*** ซองบันทึกรอการตัดบัญชี/3/3513818A8A ***
ขนาดข้อความ: 8412 720 1 0 8412
message_arrival_time: พฤ. ส.ค. 19 13:35:50 น. 2564
create_time: พฤ. 19 ส.ค. 13:35:50 น. 2021
ชื่อ_attribute: log_ident=3513818A8A
name_attribute: rewrite_context=remote
name_attribute: sasl_method=เข้าสู่ระบบ
name_attribute: sasl_username=root
ผู้ส่ง: [email protected]
Name_attribute: log_client_name=unknown
ชื่อ_attribute: log_client_address=93.122.252.4
ชื่อ_attribute: log_client_port=16374
Name_attribute: log_message_origin=unknown[93.122.252.4]
name_attribute: log_helo_name=109-166-129-221.orangero.net
name_attribute: log_protocol_name=ESMTP
name_attribute: client_name=unknown
Name_attribute: reverse_client_name=unknown
ชื่อ_attribute: client_address=93.122.252.4
ชื่อ_attribute: client_port=16374
ชื่อ_attribute: helo_name=109-166-129-221.orangero.net
name_attribute: protocol_name=ESMTP
ชื่อ_attribute: client_address_type=2
ชื่อ_attribute: dsn_orig_rcpt=rfc822;[email protected]
ผู้รับเดิม: [email protected]
ผู้รับ: [email protected]

ขึ้นอยู่กับสองบรรทัดนี้:

name_attribute: sasl_method=เข้าสู่ระบบ
name_attribute: sasl_username=root

ฉันเชื่อว่าผู้ส่งอีเมลขยะประสบความสำเร็จในการเข้าสู่ระบบในฐานะ ราก แล้วส่งข้อความสแปมออกจากเซิร์ฟเวอร์ของฉัน และนั่นคือการยืนยันโดยการวิ่ง sudo cat /var/log/maillog | grep sasl_username=รูท ซึ่งแสดงรายการจำนวนมากเช่น:

19 ส.ค. 17:13:15 น. mail postfix / smtpd [11442]: EA58D18CCD: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:17 น. mail postfix / smtpd [11442]: BDA4E18D32: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:19 น. mail postfix/smtpd[11442]: 7387E18D31: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:21 mail postfix/smtpd[11442]: 1C0FB18D34: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:22 mail postfix/smtpd[11442]: DCB4418D36: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:24 mail postfix/smtpd[11442]: B62DD18D39: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:26 mail postfix/smtpd[11442]: 6F52B18D38: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:28 mail postfix/smtpd[11442]: 24DEF18D3A: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:29 น. mail postfix/smtpd[11442]: A30B418D3C: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:31 mail postfix/smtpd[11442]: 88D8318D3B: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root
19 ส.ค. 17:13:33 mail postfix/smtpd[11442]: 11F6118D44: client=unknown[93.122.252.4], sasl_method=LOGIN, sasl_username=root

ฉันมี Dovecot ทำงานบนเซิร์ฟเวอร์นอกเหนือจาก Postfix ดังนั้นให้ตรวจสอบไฟล์ /etc/dovecot/conf.d/10-mail.conf ไฟล์แสดง:

# ช่วง UID ที่ถูกต้องสำหรับผู้ใช้ ค่าเริ่มต้นคือ 500 ขึ้นไป นี้เป็นส่วนใหญ่
# เพื่อให้แน่ใจว่าผู้ใช้ไม่สามารถเข้าสู่ระบบในฐานะ daemons หรือผู้ใช้ระบบอื่นๆ
# โปรดทราบว่าการปฏิเสธการเข้าสู่ระบบรูทนั้นฮาร์ดโค้ดเป็น dovecot binary และทำไม่ได้
# ทำได้แม้ว่าจะตั้งค่า first_valid_uid เป็น 0
first_valid_uid = 1,000
#last_valid_uid = 0

ดังนั้นตอนนี้ฉันจึงหลงทางว่าผู้ส่งสแปมจัดการกับการรับรองความถูกต้องอย่างไร ราก. ไปโดยไม่บอกว่า ราก ผู้ใช้ถูกปิดใช้งานในระบบ

คำแนะนำใด ๆ เกี่ยวกับวิธีป้องกัน sasl_username อย่างสมบูรณ์ ราก จากการเข้าสู่ระบบ?

anx avatar
fr flag
anx
ฉันสงสัยว่าคุณไม่ได้ใช้ Dovecot เพื่อตรวจสอบการเข้าสู่ระบบ sasl ผลลัพธ์ของคำสั่ง `postconf smtpd_sasl_type` จะบอก ฉันยังสงสัยด้วยว่าคุณมีเหตุผลที่ดีที่จะยอมรับการส่งที่ได้รับการรับรองความถูกต้องบนพอร์ต 25 (บรรทัดที่เริ่มต้น `smtp inet`) ดังนั้นให้ตรวจสอบ master.cf ของคุณและตรวจสอบให้แน่ใจว่า `-o smtpd_sasl_auth_enable=yes` ปรากฏเฉพาะกับบริการที่มีไว้สำหรับการส่งเท่านั้น (บรรทัดที่เริ่มต้น `smtps inet` และตัวเลือก `submission inet`)
bo flag
คุณพูดถูก: การรัน `postconf smtpd_sasl_type` ได้ชี้ไปที่ `cyrus` แต่จากนั้นการค้นหา `cyrus` ในระบบแสดงบางรายการใน `selinux` (ซึ่งถูกปิดใช้งาน) และบางรายการใน `/usr/share/doc/` จึงไม่มีไฟล์การกำหนดค่าใดๆ
Score:1
ธง fr
anx

โดยไม่รู้ว่าใครเป็นคนติดตั้งระบบนั้นและทำไม ผมไม่สามารถให้คำแนะนำเฉพาะเจาะจงได้ แต่ฉันสามารถพูดได้ว่าเซิร์ฟเวอร์ส่วนใหญ่ที่ Dovecot จัดการการตรวจสอบสิทธิ์ IMAP นั้นให้บริการได้ดีโดยให้ Dovecot จัดการการตรวจสอบสิทธิ์ SMTP ด้วย และนั่นคือวิธีการกำหนดค่า Dovecot ของคุณ first_valid_uid จะมีผลสำหรับการส่งจดหมายเช่นกัน

อ่าน เอกสารที่เกี่ยวข้อง จากนั้นให้พิจารณากำหนดค่า Postfix ของคุณเพื่อเลื่อนการตรวจสอบสิทธิ์ไปยัง Dovecot ซึ่งโดยปกติแล้วจะอยู่ในบรรทัดเหล่านี้ main.cf:

smtpd_sasl_type = นกพิราบ
smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง

นอกจากนี้ ให้พิจารณาการตั้งค่า smtpd_sasl_auth_enable = ไม่ ใน main.cf และถอดอันแรกออก smtpd_sasl_auth_enable=ใช่ ขึ้นในของคุณ มาสเตอร์.cf. โดยทั่วไปการรับรองความถูกต้องจะเป็นที่ต้องการเฉพาะสำหรับบริการที่มีไว้สำหรับการส่งเท่านั้น (บรรทัดที่เริ่มต้น smtps inet และทางเลือกในการส่ง inet) ดังนั้นจึงควรเปิดใช้งานสำหรับบริการดังกล่าวหนึ่งหรือสองรายการเท่านั้นผ่าน มาสเตอร์.cf. ซึ่งจะทำให้ไคลเอ็นต์ที่ใช้พอร์ต 25 ส่งเมลที่ผ่านการรับรองความถูกต้องเสียหาย - แต่การกำหนดค่าไคลเอ็นต์ดังกล่าวอาจต้องได้รับการตรวจสอบอยู่ดี หากคุณกำลังเปลี่ยนการกำหนดค่า

anx avatar
fr flag
anx
เมื่อการส่ง *ใหม่* ถูกจำกัดอย่างเหมาะสม คุณยังคงต้องจัดการกับจดหมายที่ส่งไปก่อนหน้านี้และยังคงค้างอยู่ในคิว เนื่องจากคุณอาจต้องการใช้ [postsuper](https://serverfault.com/search?q=postsuper)
bo flag
ระบบตั้งค่าในลักษณะนั้นพร้อมกับ Webmin/Virtualmin การตั้งค่า `smtpd_sasl_auth_enable=` เป็น `no` ในบรรทัดที่ขึ้นต้นด้วย `smtp` ในไฟล์ master.cf ดูเหมือนว่าจะหยุดความพยายามตรวจสอบสิทธิ์ sasl ที่ไม่ต้องการทั้งหมด ในขณะเดียวกันก็ทำให้ผู้ใช้ที่ถูกต้องสามารถใช้ไคลเอนต์เมลต่อไปได้ ขอบคุณมาก!
anx avatar
fr flag
anx
@ user102362 เพื่อให้ชัดเจนที่สุดที่นี่: การปิดใช้งานคุณสมบัติการตรวจสอบสิทธิ์บนพอร์ตใดพอร์ตหนึ่งที่ไม่จำเป็นอาจหยุดบอทหนึ่งตัวที่ใช้การตั้งค่าการตรวจสอบสิทธิ์ที่กำหนดค่าผิด - *แต่คุณยังคงต้องแก้ไข* การกำหนดค่าการตรวจสอบสิทธิ์ของคุณ เนื่องจากเซิร์ฟเวอร์ของคุณอาจยังคงถูกละเมิด ด้วยวิธีนั้นกับพอร์ตอื่น ๆ ที่ใช้โดยผู้ใช้ที่ถูกต้อง!
Score:1
ธง ec

เมื่อเร็ว ๆ นี้ฉันมีเหมือนกันในกล่อง Ubuntu ที่อัปเดตแล้ว ฉันแน่ใจว่าฉันมีชุด smtpd_sasl_type = dovecot และ smtpd_sasl_path = private/auth

ฉันมีคำถามเดียวกันกับที่ user102362 มี: เมื่อฉันอ่านสิ่งนี้ในการกำหนดค่าของฉัน:

# โปรดทราบว่าการปฏิเสธการเข้าสู่ระบบรูทนั้นฮาร์ดโค้ดเป็น dovecot binary และทำไม่ได้
# ทำได้แม้ว่าจะตั้งค่า first_valid_uid เป็น 0

ฉันคิดว่าเป็นไปไม่ได้ที่จะพิสูจน์ตัวตนในฐานะรูท แต่ทำไมจึงเป็นไปได้:

19 ม.ค. 21:16:46 VPS postfix/smtpd[9392]: EF1B6BD5B8: client=unknown[213.233.y.x], sasl_method=LOGIN, sasl_username=root

และส่งผลให้มีการส่งจดหมายที่ไม่พึงประสงค์จำนวนมาก?

บังเอิญหรือไม่ การตรวจสอบสิทธิ์ SASL (ที่สำเร็จ) มาจากประเทศและผู้ให้บริการเดียวกัน ฉันจึงตัดสินใจบล็อกการบล็อกต่อไปนี้ทั้งหมด:

93.122.128.0/17
213.233.88.0/24
46.97.176.0/21
178.138.64.0/18
109.166.128.0/17

และฉันเปลี่ยนรหัสผ่านรูท (และบัญชีอื่นๆ)

โพสต์คำตอบ

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