Dmesg'de yararsız “denetim başarısı” günlük girişleri nasıl devre dışı bırakılır


12

Kısa versiyon: Fedora sistemindeki denetim mesajlarını (dmesg) nasıl devre dışı bırakabilirim?


Bir Fedora sistemi dmesg'de "denetim: başarı" iletilerini günlüğe kaydeder - öyle ki, bu iletilerle doldurulduğu için ( dmesg | grep -v auditboş) dmesg kullanılamaz hale gelir . Bu mesajlar, kullanıcıya her gün dahili bir işlemin başarılı olduğunu bildirmek istedikleri için tamamen işe yaramaz (bir şey hata ayıklarken ilgi çekici olabilir, ancak bu durumda sadece gürültü).

Komut satırı arabirimi bile ( Ctrl+ Alt+ ile X olmayan bir tty'ye geçiş yaparken F2) bu denetim mesajlarıyla her zaman dağınık olduğu için kullanılamaz hale gelir, kullanıcı tarafından gerçekten çalıştırılan komutların çıktısını okumak imkansızdır. Örneğin, kullanıcı adını (login) girdikten sonra bir denetim mesajı verilir (görünüşe göre kullanıcıya bir şeyin başarıyla biçimlendirildiğini / yazdırıldığını söyler):

denetim: tür = 1131 denetim (1446913801.945: 10129): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'birim = fprintd comm = "systemd" exe = "/ usr / lib / systemd / systemd" hostname =? adr =? Terminal =? res = başarı

Bu mesajların çoğunun "başarılı" olduğu belirtiliyor, ancak bu anahtar kelimeyi içermeyen birçok denetim mesajı da var. Chrome'u çalıştırmak bunlardan yüzlerce tanesini tetikler:

denetim: tür = 1326 denetim (1446932349.568: 10307): auid = 500 uid = 500 gid = 500 ses = 2 pid = 1593 comm = "krom" exe = "/ usr / lib64 / krom / krom" sig = 0 kemer = c000003e syscall = 273 uyumlu = 0 ip = 0x7f9a1d0a34f4 kodu = 0x50000

Diğer mesajlar şunları içerir:

denetim: tür = 1131 denetim (1446934361.948: 10327): pid = 1 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'birim = NetworkManager-dağıtıcı comm = "systemd" exe = "/ usr / lib / systemd / systemd" ana bilgisayar adı =? adr =? Terminal =? res = başarı

denetim: tür = 1103 denetim (1446926401.821: 10253): pid = 28148 uid = 0 auid = 4294967295 ses = 4294967295 msg = 'op = PAM: setcred grantors = p am_env, pam_unix acct = "kullanıcı" exe = "/ usr / sbin / crond "hostname =? adr =? terminal = cron res = başarı '

Genel olarak, son denetim mesajlarının çoğunluğu (yazma sırasında) " NetworkManager " veya " chrome " anahtar kelimesini içerir .

Bu mesajlar nasıl tamamen devre dışı bırakılabilir?


Ek noktalar:

  • Herhangi birinin "bu denetim mesajlarını okumalı ve analiz etmelisiniz, devre dışı bırakmamalısınız, önemli olabilirler" diye düşünüyorsa, hayır önemli değillerdir, neredeyse tamamen "başarılı" mesajlardır. Hiç kimseye çalışması gereken bir şeyin aslında işe yaradığı söylenmemelidir. Ancak, gerçekten önemli bir mesaj günlüğe kaydediliyorsa, binlerce önemsiz mesaj fırtınasında asla fark edilmez. Her halükarda, bu belirli sistemde hiçbir denetim günlüğü tutulması istenmez (yine de kontrollü bir ortamda çalışıyor).
  • Açıkçası, bir şey bu sistemde çok yanlış yapılandırılmalıdır. Ancak, bir zamanlar yeni bir sürüm çıktığında yükseltilen varsayılan bir Fedora yüklemesiydi. Belki de sadece değiştirilmesi gereken basit bir ayardır, ancak sistem yapılandırmasını manuel olarak (bilerek) değiştirmediği için, bu stackexchange.com sorusu, aynı durumda sistemlerine sahip olan diğerlerine yardımcı olacaktır.
  • Artık Linux 4.0.6 (systemd 219) çalıştıran bir Fedora 22 sistemidir.
  • Şu anda KDE çalıştıran standart bir Fedora masaüstü kurulumu.
  • SELinux devre dışı (/ etc / selinux / config "devre dışı" olarak ayarlı).

Güncelleme : Fedora 23'e (çekirdek 4.2.5, sistemd 222) yükselttikten sonra, öncekinden daha az denetim mesajı var.


audit2allowGörebileceğiniz günlüklere denetim iletileri yazmayı devre dışı bırakan denetimi devre dışı bırakmak yerine, çekirdek iletilerini konsola yazdırmayla ilgili kernel.printk değerini değiştirmeyi düşündünüz mü? Fedora'da varsayılan olarak "7 4 1 7", daha mantıklı bir değer "3 4 1 7" dir.
Bob

Yanıtlar:


12

İlk olarak, fedora'da, hem auditd hem de auditctl aynı paketten gelir (tartışmasız olarak adlandırılan denetim). Auditl'niz yoksa, başka bir şey yanlıştır. Bunu dene:

rpm -ql audit |grep ctl

Bu size hiçbir şey vermezse, denetim paketiniz hiç yüklü değildir.

İkinci olarak, bahsettiğiniz grub.cfg dosyasındaki ilk "insan" dil satırı, sistemimde "DÜZENLEME" yazıyor. Bu, dosyadaki herhangi bir manuel değişikliğin kaybedilebileceğine dair bir ipucu.

Grub yapılandırmasını fedora / redhat sisteminde düzenlemek için doğru yer, özellikle değiştirmenize gerek olmadığı önerilen dosyadır (/ etc / default / grub). Gerçekte, önerilen değişikliği yapmanın ve çekirdek yükseltmelerinden sağ çıkmanın tek "güvenli" yolu budur. Bunun nedeni, çekirdek yükseltmeleri sırasında çalışan bir grub.cfg dosyasını yeniden oluşturmak için kaynak yapılandırmasının bir parçası olarak kullanılmasıdır. Grub2-mkconfig komutuna (ve arkadaşlarına) bakın. Ayrıntılar burada: https://fedoraproject.org/wiki/GRUB_2

Cevabınız yanlış değil, ama biraz kafa karıştırıcı buldum. Grub komut satırından nefret ediyorum ve IMHO bir çekirdek komut satırına bir boşluk karakteri eklemeyi özleyecek herkes muhtemelen bu yolda kurşun olduğu için kimseye teşekkür etmeyecekti. Yine de, bazı insanlar benim bildiğim zor yolu öğrenmeyi sever.

Aşağıdaki tüm komutların kök olarak çalıştırılması gerekir (ki bu kendi başına önerilecek tehlikeli bir şeydir).

Çalışan bir sistem için:

auditctl -e 0

Auditctl bulamazsanız, PATH'nizi kontrol edin ve şunları da göz önünde bulundurun:

dnf install audit

Bu, en azından mesajları yeniden başlatabileceğiniz bir zamana kadar devre dışı bırakmazsa azalmalıdır.

Yeniden başlatmaların ötesinde devam etmek için / etc / default / grub'u düzenleyin ve GRUB_CMDLINE_LINUX satırını sonuna "audit = 0" eklemek için değiştirin, sonra grub2fg'yi yeniden oluşturmak için grub2-mkconfig komutunu kullanın. Bu son adım aynı zamanda değişikliğiniz ile çalışan sistem arasında bir doğrulama katmanı oluşturur.


Bunu işaret ettiğiniz için teşekkür ederiz /etc/default/grubve grub2-mkconfigkullanılmalıdır. Cevabıma bir düzeltme ekledim.
basic6

6

İle denetimi geçici olarak hızlı bir şekilde devre dışı bırakabilirsiniz

sudo auditctl -e 0

ve ile tüm kuralları geçici olarak kaldırın

sudo auditctl -D

Gelecekteki botlar için başlangıcını devre dışı bırakmayı deneyebilirsiniz

 sudo systemctl disable auditd

3

Sistem çalışırken devre dışı bırakılabilecek bir denetim hizmeti yoktur, ancak önyükleme seçeneğini eklemenin audit=0tüm bu mesajları devre dışı bıraktığı görülüyor. Sistem, X çalışmadan komut satırında bile yeniden kullanılabilir.

Bu seçenek geçici olarak ayarlanabilir (değişiklik yeniden başlatıldığında hayatta kalmaz):

  1. (Sağ gücü açtıktan sonra) Grub önyükleme menüsü görünür, vurduğunda eiçin e dit önyükleme parametreleri. Bu büyük bir metin kutusu gösterecektir.
  2. "Linux" ile başlayan satıra ilerleyin. Endİmleci satırın sonuna taşımak için tuşa basın.
  3. Son seçeneği bozmamak için bir boşluk karakteri girin, sonra ekleyin audit=0. Örneğin ... LANG=en_US.UTF-8 audit=0( ...UTF-8audit=0açıkçası değil ).
  4. Başka bir şeyi değiştirmemeye dikkat edin. Başka bir seçeneği yanlışlıkla değiştirdiyseniz, düzeltin veya yeniden başlatın ve baştan başlayın.
  5. F10Sistemi başlatmak için tuşuna basın .

Tabii ki, bu değişiklik sadece sistem çalışırken geçerli olacaktır. Denetim seli yeniden başlatıldıktan sonra geri gelecektir. Bu değişikliği kalıcı hale getirmek için, önyükleme yapılandırmasının kalıcı olarak değiştirilmesi gerekir. Fedora'da, /boot/grub2/grub.cfgyeni bir çekirdek kurulduğunda (sistem güncellemesi), pisliğin en son çekirdeğin seçeneklerini yeni kurulan çekirdeğe kopyalaması gerektiğinden basitçe değiştirmek yeterli olmalıdır. Bu, bu dosyadaki audit=0ilk linuxsatıra (ilk menuentrybölüm) eklenmesi gerektiği anlamına gelir . Değiştirmeye gerek yok/etc/default/grub .
Düzeltme: Aslında, doğru ve en güvenilir yaklaşım /etc/default/grubGrub yapılandırmasını düzenlemek ve yeniden oluşturmaktır, bunu işaret ettiği için KnightLordAndMastergrub2-mkconfig -o /boot/grub2/grub.cfg teşekkürler .


Günlük dosyalarındaki denetim günlükleri hakkında ek not:

Bir yan not olarak, aşağıdaki satır denetim günlüklerinin günlük dosyalarında sonlanmasını engellemelidir, ancak yine de dmesg ve konsolu karıştırırlar, bu yüzden bu kendi başına bir çözüm değildir. Bu satır ilk kural olarak konulur /etc/rsyslog.conf:

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

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

...

Bu şimdi aşağıdaki uyarıyla sonuçlanır:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.