วิธีปิดใช้งานรายการบันทึกการตรวจสอบสำเร็จใน dmesg


11

เวอร์ชั่นย่อ: จะปิดการใช้งานข้อความตรวจสอบ (dmesg) ในระบบ Fedora ได้อย่างไร?


ระบบ Fedora ยังคงบันทึกข้อความ "การตรวจสอบ: ความสำเร็จ" ใน dmesg - ในแบบสุดขั้วที่ dmesg ไม่สามารถใช้งานได้เพราะเต็มไปด้วยข้อความเหล่านี้ ( dmesg | grep -v auditว่างเปล่า) ข้อความเหล่านี้ไร้ประโยชน์อย่างสมบูรณ์เนื่องจากต้องการแจ้งให้ผู้ใช้ทราบว่ากระบวนการภายในทุกวันประสบความสำเร็จ (ซึ่งอาจเป็นที่สนใจเมื่อทำการดีบั๊ก แต่เป็นเพียงเสียงรบกวนในกรณีนี้)

แม้แต่อินเตอร์เฟสบรรทัดคำสั่ง (เมื่อเปลี่ยนเป็น non-X tty ด้วยCtrl+ Alt+ F2) ก็ไม่สามารถใช้งานได้เนื่องจากมันยุ่งเหยิงกับข้อความตรวจสอบเหล่านี้อยู่เสมอมันเป็นไปไม่ได้ที่จะอ่านเอาต์พุตของคำสั่งที่รันโดยผู้ใช้จริง ตัวอย่างเช่นหลังจากป้อนชื่อผู้ใช้ (เข้าสู่ระบบ) ข้อความตรวจสอบจะถูกพ่นออกมา (บอกผู้ใช้ว่าสิ่งที่จัดรูปแบบ / พิมพ์สำเร็จ):

audit: type = 1131 audit (1446913801.945: 10129): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'หน่วย = fprintd comm = "systemd" exe = "/ usr / lib / systemd / systemd" systemd " addr =? = ขั้ว? ความละเอียด = ความสำเร็จ

ปรากฏว่าข้อความเหล่านี้ส่วนใหญ่ระบุว่า "สำเร็จ" อย่างไรก็ตามยังมีข้อความตรวจสอบจำนวนมากที่ไม่มีคำหลักนี้ การเรียกใช้ Chromium ทริกเกอร์หลายร้อยรายการต่อไปนี้:

การตรวจสอบ: type = 1326 การตรวจสอบ (1446932349.568: 10307): auid = 500 uid = 500 gid = 500 ses = 2 pid = 1593 comm = "chrome" exe = "/ usr / lib64 / chromium / chrome" sig = 0 arch = c000003e syscall = 273 compat = 0 ip = 0x7f9a1d0a34f4 รหัส = 0x50000

ข้อความอื่น ๆ ได้แก่ :

audit: type = 1131 audit (1446934361.948: 10327): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'หน่วย = NetworkManager-dispatcher comm = "systemd" lib = system / "/ usr / lib / systemd / systemd / systemd" systemd " =? addr =? = ขั้ว? ความละเอียด = ความสำเร็จ

การตรวจสอบ: type = 1103 การตรวจสอบ (1446926401.821: 10253): pid = 28148 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'op = PAM: ผู้ให้บริการ setcred = p am_env, pam_unix / crond "hostname =? addr =? terminal = cron res = success '

โดยทั่วไปข้อความการตรวจสอบล่าสุดส่วนใหญ่ (ณ เวลาที่เขียน) มีคำหลัก " NetworkManager " หรือ " chrome "

ข้อความเหล่านี้จะถูกปิดการใช้งานอย่างสมบูรณ์ได้อย่างไร


คะแนนเพิ่มเติม:

  • ในกรณีที่ทุกคนอาจกำลังคิดว่า "คุณควรอ่านและวิเคราะห์ข้อความการตรวจสอบเหล่านี้ไม่ใช่ปิดใช้งานพวกเขาอาจมีความสำคัญ" ไม่สำคัญไม่ใช่พวกเขาเกือบจะเป็นข้อความ "สำเร็จ" เท่านั้น ไม่มีใครจะต้องบอกว่าสิ่งที่ควรจะทำงานจริง ๆ แล้วงาน อย่างไรก็ตามหากข้อความสำคัญที่แท้จริงถูกบันทึกไว้มันจะไม่ถูกสังเกตเห็นในพายุของข้อความที่ไม่มีนัยสำคัญนับพัน ไม่ว่าในกรณีใดไม่ต้องการบันทึกการตรวจสอบในระบบนี้ (มันทำงานในสภาพแวดล้อมที่มีการควบคุมอยู่แล้ว)
  • เห็นได้ชัดว่ามีบางสิ่งที่ต้องกำหนดค่าผิดพลาดอย่างมากในระบบนี้ อย่างไรก็ตามมันเคยเป็นการติดตั้ง Fedora เริ่มต้นซึ่งได้รับการอัพเกรดทุกครั้งที่มีการออกรุ่นใหม่ อาจเป็นเพียงการตั้งค่าง่าย ๆ ที่ต้องเปลี่ยน แต่เนื่องจากไม่ได้เกิดการเปลี่ยนแปลงการกำหนดค่าระบบด้วยตนเอง (โดยเจตนา) คำถาม stackexchange.com นี้หวังว่าจะช่วยให้ผู้อื่นที่ได้รับระบบของพวกเขาอยู่ในสถานะเดียวกัน
  • ตอนนี้เป็นระบบ Fedora 22 ที่ใช้ Linux 4.0.6 (systemd 219)
  • มันคือการติดตั้งเดสก์ท็อปมาตรฐานของ Fedora ซึ่งปัจจุบันใช้ KDE
  • SELinux ถูกปิดใช้งาน (/ etc / selinux / config ถูกตั้งค่าเป็น "disabled")

อัปเดต : หลังจากอัปเกรดเป็น Fedora 23 (เคอร์เนล 4.2.5, systemd 222) จะมีข้อความตรวจสอบน้อยลงกว่า แต่ก่อน


แทนที่จะปิดใช้งานการตรวจสอบซึ่งปิดใช้งานการเขียนข้อความตรวจสอบลงในบันทึกที่คุณสามารถดูaudit2allowได้คุณพิจารณาเพียงแค่ปรับเปลี่ยนค่า kernel.printk ที่เกี่ยวข้องกับการพิมพ์ข้อความเคอร์เนลไปยังคอนโซลหรือไม่ ตามค่าเริ่มต้นของ Fedora คือ "7 4 1 7" ค่าที่เหมาะสมกว่าคือ "3 4 1 7"
บ๊อบ

คำตอบ:


12

ประการแรกใน fedora ทั้ง auditd และ auditctl มาจากแพ็คเกจเดียวกัน (การตรวจสอบชื่อที่ไม่น่าเชื่อถือ) ดังนั้นหากคุณไม่มี auditctl สิ่งอื่นที่ไม่ถูกต้อง ลองสิ่งนี้:

rpm -ql audit |grep ctl

ถ้าสิ่งนั้นให้อะไรกับคุณแสดงว่าคุณไม่ได้ติดตั้งแพ็คเกจการตรวจสอบเลย

ประการที่สองบรรทัดภาษา "มนุษย์" บรรทัดแรกในไฟล์ grub.cfg ที่คุณพูดถึงระบุว่า "ไม่ต้องแก้ไข" ในระบบของฉัน นี่เป็นเงื่อนงำที่การเปลี่ยนแปลงใด ๆ ในไฟล์ด้วยตนเองอาจสูญหายได้

ตำแหน่งที่ถูกต้องในการแก้ไขการกำหนดค่า grub บนระบบ fedora / redhat คือไฟล์เดียวที่คุณแนะนำเป็นการเฉพาะว่าไม่จำเป็นต้องเปลี่ยน (/ etc / default / grub) ในความเป็นจริงนี่เป็นวิธีเดียวที่ "ปลอดภัย" เพื่อทำการเปลี่ยนแปลงที่เสนอและอยู่รอดในการอัพเกรดเคอร์เนล นี่เป็นเพราะมันถูกใช้เป็นส่วนหนึ่งของการกำหนดค่าแหล่งที่มาในระหว่างการอัพเกรดเคอร์เนลเพื่อสร้าง grub.cfg ที่ใช้งานได้ ค้นหาคำสั่ง grub2-mkconfig (และเป็นเพื่อน) รายละเอียดอยู่ที่นี่: https://fedoraproject.org/wiki/GRUB_2

คำตอบของคุณไม่ผิด แต่ฉันคิดว่ามันสับสนเล็กน้อย ฉันเกลียดบรรทัดคำสั่ง grub และ IMHO ทุกคนที่มีแนวโน้มที่จะพลาดการเพิ่มช่องว่างในบรรทัดคำสั่งเคอร์เนลอาจจะไม่ขอบคุณใครที่นำไปสู่ถนนสายนั้น ถึงกระนั้นบางคนชอบที่จะเรียนรู้วิธีที่ยากลำบากที่ฉันรู้

คำสั่งทั้งหมดด้านล่างจะต้องถูกเรียกใช้ในฐานะรูท (ซึ่งอยู่ในตัวของมันเองและเป็นสิ่งที่อันตรายที่จะแนะนำ)

สำหรับระบบที่กำลังทำงาน:

auditctl -e 0

หากคุณไม่พบ auditctl ให้ตรวจสอบ PATH และพิจารณา:

dnf install audit

อย่างน้อยควรลดหากไม่ได้ปิดการใช้งานข้อความจนกว่าจะถึงเวลาที่คุณสามารถรีบูตได้

ในการคงอยู่เหนือการรีบูตให้แก้ไข / etc / default / grub และเปลี่ยนบรรทัด GRUB_CMDLINE_LINUX เพื่อเพิ่ม "audit = 0" ไปยังจุดสิ้นสุดจากนั้นใช้ grub2-mkconfig เพื่อสร้าง grub.cfg ใหม่ ขั้นตอนสุดท้ายนี้ยังทำให้ชั้นของการตรวจสอบระหว่างการเปลี่ยนแปลงของคุณและระบบการทำงาน


ขอบคุณที่ชี้ให้เห็นว่า/etc/default/grubและgrub2-mkconfigควรจะใช้ ฉันได้เพิ่มการแก้ไขคำตอบแล้ว
พื้นฐาน 6

6

คุณสามารถปิดใช้งานการตรวจสอบชั่วคราวได้อย่างรวดเร็วด้วย

sudo auditctl -e 0

และลบกฎทั้งหมดด้วยชั่วคราว

sudo auditctl -D

สำหรับรองเท้าในอนาคตคุณสามารถลองปิดการใช้งานเริ่มต้นด้วย

 sudo systemctl disable auditd

3

ไม่มีบริการ auditd ที่สามารถปิดการใช้งานในขณะที่ระบบกำลังทำงานอยู่ แต่ปรากฎว่าการเพิ่มตัวเลือกการบูตaudit=0ดูเหมือนจะปิดการใช้งานข้อความเหล่านี้ทั้งหมด ระบบสามารถใช้งานได้อีกครั้งแม้ในบรรทัดคำสั่งโดยไม่ต้องใช้ X

ตัวเลือกนี้สามารถตั้งค่าชั่วคราว (การเปลี่ยนแปลงจะไม่รอดจากการรีบูต):

  1. เมื่อด้วงบูตเมนูปรากฏขึ้น (ขวาหลังจากที่เปิดไฟบน) ตีeไปอีดิพารามิเตอร์บูต นี่จะแสดงกล่องข้อความขนาดใหญ่
  2. เลื่อนลงไปที่บรรทัดที่ขึ้นต้นด้วย "linux" กดEndปุ่มเพื่อเลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัด
  3. audit=0ป้อนตัวอักษรช่องว่างเพื่อให้คุณไม่ทำลายตัวเลือกสุดท้ายแล้วผนวก ตัวอย่างเช่น... LANG=en_US.UTF-8 audit=0(ไม่...UTF-8audit=0ชัด)
  4. ระวังอย่าเปลี่ยนสิ่งอื่นใด หากคุณแก้ไขตัวเลือกอื่นโดยไม่ได้ตั้งใจให้แก้ไขหรือรีบูตและเริ่มต้นใหม่
  5. กดF10ปุ่มเพื่อบูตระบบ

แน่นอนว่าการเปลี่ยนแปลงนี้จะมีผลเฉพาะในขณะที่ระบบกำลังทำงาน การตรวจสอบน้ำท่วมจะกลับมาหลังจากรีบูต เพื่อให้การเปลี่ยนแปลงนี้เป็นแบบถาวรการกำหนดค่าการบูตจะต้องเปลี่ยนอย่างถาวร บน Fedora มันควรจะเพียงพอที่จะแก้ไขได้ง่าย ๆ/boot/grub2/grub.cfgเพราะเมื่อมีการติดตั้งเคอร์เนลใหม่ (อัพเดตระบบ), grubby ควรคัดลอกตัวเลือกของเคอร์เนลล่าสุดไปยังเคอร์เนลที่ติดตั้งใหม่ ซึ่งหมายความว่าaudit=0จะต้องต่อท้ายlinuxบรรทัดแรก ( menuentryส่วนแรก) ในไฟล์นี้ มันไม่ควรจะเป็นสิ่งที่จำเป็นเพื่อการเปลี่ยนแปลง /etc/default/grub
การแก้ไข: จริงๆแล้วแนวทางที่ถูกต้องและเชื่อถือได้มากที่สุดคือการแก้ไข/etc/default/grubและฟื้นฟูคอนฟิกใช้grub2-mkconfig -o /boot/grub2/grub.cfgขอบคุณKnightLordAndMaster สำหรับการชี้ออกมานี้


หมายเหตุเพิ่มเติมเกี่ยวกับบันทึกการตรวจสอบในไฟล์บันทึก:

ตามหมายเหตุด้านล่างบรรทัดต่อไปนี้ควรป้องกันไม่ให้บันทึกการตรวจสอบสิ้นสุดลงในไฟล์บันทึก แต่พวกเขายังคงถ่วง dmesg และคอนโซลดังนั้นสิ่งนี้จึงไม่ใช่วิธีแก้ปัญหาในตัวเอง บรรทัดนี้จะถูกวางเป็นกฎข้อแรกใน/etc/rsyslog.conf:

...
#### RULES ####

# no audit
:programname, isequal, "audit" ~

...

ตอนนี้ส่งผลให้คำเตือนต่อไปนี้:

 rsyslogd[xxxx]: warning: ~ action is deprecated, consider using the 'stop' statement instead [v8.35.0 try http://www.rsyslog.com/e/2307]

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