Syslog - ağ sistemi günlüğü. Hangi sistem günlüğü kimliğinin en yüksek önceliğe sahip olduğu sırayla Linux günlük dosyaları

şeytan Unixçalışan programı adlandırın "üzerinde arka fon" , terminalden kontrol gerektirmeden ve diğer işlerinizi "ön planda" yapabilmenizi sağlar. Daemon, ya başka bir işlemle, örneğin, herhangi bir kontrol terminaline erişmeden sistem başlatma komut dosyalarından biri tarafından veya bir terminalden bir kullanıcı tarafından başlatılabilir, ancak bu durumda da iblis "yakalamıyor"çalışması sırasında terminal. Doğal olarak, sisteminizde hangi arka plan programlarına ihtiyaç duyulduğu ve hangilerinin devre dışı bırakılabileceği sorusu ortaya çıkar.

terimin kökeni
Gerçek (yani bilgisayar olmayan) dünyada, "iblis" terimi (veya kelimesi) bir ruhu (çoğunlukla kötü olanı) veya "iç sesi" ifade eder. Bu değerlerin her ikisinin de Unix arka plan programları için geçerli olduğunu belirtmekte fayda var. Mitolojik iblisler gibi, Unix'teki iblisler de görünmez kalmaya çalışarak "perde arkasında" bir yere saklanır. Ve tıpkı bir iç ses ya da bilinçaltımız gibi, her zaman "tetikte"dirler, her zaman ulaşılabilirdirler, her zaman "ortaya çıkabilirler". "İblis" kelimesinin kendisi bu bilgisayar kısaltmalarından birini temsil eder. Başlangıçta bir tavuk mu yoksa yumurta mı olduğuna karar vermek ne kadar zorsa, kökenini belirlemek de o kadar zordur. muhtemelen bu terim ("DAEMON") kelimelerden gelir "Disk ve Yürütme Monitörü" programı.

Konuyu incelemek için yola çıktıktan sonra Ubuntu işletim sistemine sahip bir bilgisayar kullanan bir rahibin yanına gittim. Her ihtimale karşı, Windows ile bir disk aldım. Asla bilemezsin ... Ben basit bir insanım, çalıların etrafında dolanmadım, hemen tüm bilgileri verdim. Uzun ve detaylı anlatılmış. Büyük bir mutluluk için, her şeyi sakince karşıladı, bazı yerlerde ben konuşurken gülümsedi bile, özellikle ablamın kocasının ubuntu'yu reddetme nedenlerinden bahsederken. Baba, normal bir adam, zaten 50 yaşında, biraz daha konuştuk, daha doğrusu konuştum, ne dediğimi doğru öğrendiğini anlamak için. Ondan sonra bana, harfi harfine hatırlamıyorum ama kayıt cihazında çözemedim, o yüzden kendi kelimelerimle anlatacağım dedi. Genel olarak, bu terimi Linux'ta kullanmakta yanlış bir şey yoktur, asıl şey Tanrı'ya olan inançtır.

Hizmetlere giriş

/etc/init.d'de atıfta bulunulan arka plan programları, Linux'ta hizmet veya hizmet olarak çalışacak şekilde tasarlanmıştır. Hizmetler, /etc/init.d dizininde bulunan init betikleri aracılığıyla başlatılan ve durdurulan programlardır. Bu hizmetlerin çoğu, sistem önyükleme aşamasında başlatılır. /sbin/service yardımcı programı, başlatma komut dosyalarıyla bir kullanıcı arabirimi (etkileşim) sağlar. Ve bu komut dosyalarının kendileri, hizmetleri yönetmek için bir arabirim sağlayarak kullanıcıya hizmetin başlatılması, durdurulması, yeniden başlatılması, hizmetin durumunu sorgulaması ve hizmet üzerinde diğer eylemleri gerçekleştirmesi için seçenekler sunar. Örneğin, httpd hizmet başlatma komut dosyası aşağıdaki seçeneklere sahiptir:

/sbin/service httpd Kullanım: httpd (start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest)

Hizmet yardımcı programına aşağıdaki seçenekle tüm sistem hizmetlerinin mevcut durumunu görüntüleyebilirsiniz:

/sbin/service --status-all acpid (pid 2481) çalışıyor... anacron (pid 2647) çalışıyor... atd (pid 2657) çalışıyor... auditd (pid 2189) çalışıyor...

Bu hizmetlerin çalışma düzeyi, yani belirli bir hizmetin sistem önyükleme zamanında hangi sistem çalıştırma düzeylerinin başlatılacağına ilişkin bilgiler, chkconfig yardımcı programı kullanılarak elde edilebilir veya değiştirilebilir. Örneğin, sistem günlüğü hizmeti için geçerli ayarlara bakalım:

/sbin/chkconfig --list syslog syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2., 3., 4. ve 5. seviyelere gittiğinizde syslog hizmetinin otomatik olarak başladığını görebiliyoruz. 3. ve 4. seviyelerde başlamasını devre dışı bırakmak için (bu arada iyi bir fikir değil), aşağıdaki chkconfig komut seçeneği:

/sbin/chkconfig --levels 34 sistem oturumunu kapat

/usr/bin/system-config-services yardımcı programı, sistem hizmetlerine mevcut durumlarını görüntülemenize ve değiştirmenize ve ayrıca başlangıçlarını çeşitli çalışma seviyelerinde ayarlamanıza olanak tanıyan bir grafik arabirim sağlar.

Bakalım bu servisler ve cinler ps komutunun çıktısında nasıl görünüyor. İşte kısa bir alıntı:

UID PID PPID C STIME TTY TIME CMD root 1 0 0 23:36 ? 00:00:00 kök 2161 1 0 23:37 ? 00:00:00 Auditd root 2177 1 0 23:37 ? 00:00:00 syslogd -m 0 kök 2180 1 0 23:37 ? 00:00:00 klogd -x kök 2207 1 0 23:37 ? 00:00:00 mcstransd kök 2254 1 0 23:37 ? 00:00:00 rpc.statd kök 2287 1 0 23:37 ? 00:00:00 rpc.idmapd kökü 2577 1 0 23:37 ? 00:00:00 crond root 2631 1 0 23:37 ? 00:00:00 /usr/sbin/atd root 2654 1 0 23:37 ? 00:00:00 rhnsd --aralık 240

Burada dikkat edilmesi gereken ilginç olan (tabii ki bugün bilgisayar başında çok geç kaldığım dışında)? Her bir arka plan programı için üst işlem kimliği (PPID) 1'dir. Bu, arka plan programlarının sistem önyüklemesi sırasında init işlemi tarafından başlatıldığını gösterir.

Bu sonuç, "ebeveynler" göstergesiyle süreçlerin "ağacı"nı gösteren "pstree" gibi yararlı bir komutun çıktısında daha açık bir şekilde görülebilir. İşte pstree çıktısından küçük bir pasaj:

Init-+ |-NetworkManager---2*[(NetworkManager)] |-NetworkManagerD |-acpid |-atd |-auditd-+-python | `-(denetim) |-avahi-daemon---avahi-daemon |-bonobo-activati---(bonobo-activati) |-crond |-cupsd---cups-polld |-2* |-dbus-lansmanı |-dhcdbd---dhclient

Sisteminizdeki cinler hakkında daha fazla bilgi

Tanıtım bilgileriyle tamamlandı. Şimdi sistem cinleri hakkında ayrı ayrı konuşalım ve hangilerini denemenin güvenli olduğunu görelim. Bu notun konfigürasyonda Red Hat Enterprise Linux Beta 2 kullanan bir sistemle ilgili olduğunu tekrar belirtmek isterim. iş istasyonu. Sisteminizin özelliklerine bağlı olarak, burada ele alınmayanlar da dahil olmak üzere daha fazla veya daha az arka plan programı görebilirsiniz.

Her arka plan programı açıklaması, daha fazla bilgi alabileceğiniz sitelere bağlantılar içerir, ancak arka plan programlarını öğrenmeye başlamak için en iyi yer, ilgili kılavuz sayfalarına bakmaktır. O'Reilly, alfabetik sıraya göre listelenmiş mükemmel bir Linux komutları listesine sahiptir ve Wikipedia'da (wikipedia.org) bu cinlerin çoğuyla ilgili bölümler de vardır.Ayrıca, README dosyalarına göz atmayı unutmayın.

Bu, Gelişmiş Yapılandırma ve Güç Arayüzü (ACPI) hizmetidir. ACPI, sistem başlatma, kapatma ve hazırda bekletme dahil olmak üzere öncelikle tak ve çalıştır aygıt algılama ve güç yönetimi olmak üzere sistem yönetimi eylemlerini tanımlayan açık bir endüstri standardıdır.

Hata ayıklama amacıyla veya donanım sorunlarını çözmek için yapmıyorsanız, muhtemelen bu hizmeti devre dışı bırakmamalısınız.

Daha fazla bilgi: http://www.acpi.info

Bugünlerde pek çok kişinin yaptığı gibi bir dizüstü bilgisayar kullanıyorsanız, bir sorun, cron arka plan programına biraz iş atadığınızda, görevlerin planlandığı anda bilgisayarınızın açık olacağından her zaman emin olamamanızdır. Anacron (adı "anakronik cron"dan gelir, "eski cron" gibi bir şey) bu sorunu, işlerin belirli bir süre içinde çalışıp çalışmadığını kontrol ederek çözer. Örneğin, anacron, belirli sayıda gün içinde çalışmadıysa bir görevi çalıştırır.

Anacron'u kullanmaktan ne zaman vazgeçebilirsiniz? Sisteminiz sürekli çalışıyorsa.
Anacron çalışıyorsa, cron'u çalıştırmayı reddedebilir misiniz? Değil; anacron için, iş yeniden başlatma süresi dakika ve saniye olarak değil, yalnızca gün olarak ayarlanabilir.

Ek bilgi:

Bu, bir BIOS sürücüsü aracılığıyla Gelişmiş Güç Yönetimi (APM) arka plan programıdır. APM standardı ve apmd arka plan programı artık ACPI ve acpid ile değiştirilmiştir. Donanımınız ACPI'yi destekliyorsa, apmd çalıştırmanız gerekmez.

Bu, belirli bir zamanda işleri çalıştırmak için bir arka plan programıdır. Kullanmıyorsanız kapatabilirsiniz.

Bu arka plan programı, yapılandırma dosyasında tanımlanan sürücüleri ve dosya sistemlerini otomatik olarak bağlar. Bu arka plan programının kullanılması, çıkarılabilir sürücülerle çalışmayı daha kolay hale getirir.

Daha fazla bilgi: http://freshmeat.net/projects/autofs

Linux denetim sistemi, çekirdek düzeyinde sistem çağrı günlüğü ve kullanıcı alanı günlüğü araçlarından oluşur. Auditd arka plan programı, günlüğe kaydedilen mesajları diske yazar. Auditd yapılandırılabilir, diske hangi bilgilerin kaydedildiğini kontrol etmenize ve yönetmenize izin verir.

Auditd'yi çalışır durumda tutmam gerekir mi? Günlüklerdeki bilgiler, sistem güvenliğiyle ilgili her şeyi yapılandırmada çok yardımcı olabilir. Örneğin, SELinux olay günlüğünde auditd kullanılır. Denetim günlüklerini görüntülemenize izin veren aureport gibi yardımcı programlar da vardır. Aşağıda, aureport yardımcı programı tarafından oluşturulan bir rapor örneği verilmiştir:

Özet raporu
======================

Günlüklerdeki zaman aralığı: 28.11.2006 06:07:04.800 - 02/06/2007 21:10:09.957 Rapor için seçilen zaman: 31.12.1969 19:00:00 - 02/06/2007 21: 10:09.957 Yapılandırmadaki değişiklik sayısı: 285 Hesaplarda, gruplarda veya rollerde yapılan değişiklik sayısı: 32 Oturum açma sayısı: 145 Başarısız oturum açma sayısı: 11 Kullanıcı sayısı: 2 Terminal sayısı: 22 Ana bilgisayar adı sayısı: 11 Sayı yürütülebilir dosya sayısı: 27 Dosya sayısı: 91 AVC reddi sayısı: 688 MAC olayı sayısı: 12 Başarısız sistem çağrısı sayısı: 404 Anormallik olayı sayısı: 0 Anomali olaylarına verilen yanıt sayısı: 0 Kripto olayı sayısı: 0 İşlem sayısı Kimlikler: 14022 Olay sayısı: 70694 Avahi-daemon ve avahi-dnsconfd

Avahi web sitesi bunu şu şekilde tanımlıyor: "Avahi, yerel bir ağ üzerindeki hizmetleri keşfetme yeteneği sağlayan bir sistemdir. Bu, bilgisayarınızı yerel bir ağa bağladıktan sonra anında mevcut yazıcıları keşfedebileceğiniz, hangi paylaşımların mevcut olduğunu görebileceğiniz anlamına gelir. ağ, diğer ağ kullanıcılarıyla sohbet edebileceğinizi öğrenin vb. Avahi, Zeroconf protokolünün bir uygulamasıdır. Zeroconf, kullanıcıların DNS sunucuları gibi özel yapılandırma hizmetleri olmadan IP ağları oluşturmasına olanak tanıyan bir yaklaşımdır.
Avahi-daemon'un en yaygın kullanımı Rhythmbox iledir, böylece başkalarıyla paylaşılan müzik dosyalarını görebilirsiniz. Bilgisayarınızdan müzik veya dosya paylaşmıyorsanız, bu arka plan programını devre dışı bırakabilirsiniz.

Daha fazla bilgi: http://avahi.org, http://zeroconf.org

Bluetooth ve hidd ve pand cinleri

İsimlerin kendileri her şeyi açıklıyor. Bluetooth cihazlarını kullanmak istiyorsanız bu hizmetleri başlatın. Gerçekte başlatılan arka plan programının adı hcid'dir (Host Controller Interface Daemon).

Hidd arka plan programının adı "Bluetooth İnsan Arabirim Aygıtı Arka Plan Programı"ndan gelir. Bluetooth protokolü ile klavye, fare ve hareket topu desteği sağlar. Pand arka plan programı, bilgisayarınızı Bluetooth aracılığıyla bir ethernet ağına bağlamayı destekler.

Daha fazla bilgi: http://www.bluetooth.com.

Bu arka plan programı, Ortak ISDN Uygulama Programlama Arayüzü'nü (Entegre Hizmetler Dijital Ağ Uygulama Programlama Arayüzü) destekler. Donanım ISDN bileşenlerine bağlanıyorsanız çalıştırılmalıdır. Bu hizmet capiinit'i başlatır.

Daha fazla bilgi: http://www.capi.org/pages

Hayır, bunun gece geç saatlerde emlak yatırımı şovlarıyla ilgisi yok. Conman hizmeti (ve komut arka plan programı) konsol yönetimini destekler. Çoklu konsol cihazları ve kullanıcıların eşzamanlı çalışması için destek, yerel seri cihazlar ve uzak terminal sunucuları için destek (telnet protokolünü kullanarak) sağlar. Birden fazla sunucuyu yönetiyorsanız, conman kullanmanız gerekebilir.

Daha fazla bilgi: http://home.gna.org/conman/
işlemci hızı

Bu arka plan programı hızı değiştirir İşlemci enerji tüketimini azaltmak için. CPU boştaysa hızı düşürebilir, böylece enerji maliyetlerini düşürebilir ve performansı artırmak için güç tüketimini artırmanız gerekir. için çalışıyorsan dizüstü bilgisayar, cpuspeed'i çalıştırmak mantıklıdır.

Daha fazla bilgi: http://carlthompson.net/Software/CPUSpeed
crond

Bu şeytan için otomatik başlatma görevler. Bu, tüm Linux ve Unix sistemlerinde gereklidir. Bu hizmeti durdurmayın veya devre dışı bırakmayın.

Daha fazla bilgi: http://www.unixgeeks.org/security/newbie/unix/cron-1.html , http://www.linuxhelp.net/guides/cron/

CUPS ve cup-config-daemon

"Ortak UNIX Yazdırma Çözümü" arka plan programıdır. Adından da anlaşılacağı gibi, bu, çeşitli dosya formatları ile çalışmanıza izin veren bir baskı sistemidir ve çeşitli tipler yazıcılar. Yazdırmak istiyorsanız, bu arka plan programının sisteminizde çalışmasını sağlayın.

Daha fazla bilgi: http://www.cups.org, http://www.easysw.com/cups/index.php

Bu arka plan programının adı, "DHcp İstemcisi D-Bus Arka Plan Programı"nın kısaltmasıdır. Ücretsiz DeskTop wiki aşağıdaki tanımı sağlar:

D-Bus, uygulamaların birbirleriyle iletişim kurması (veya etkileşim kurması) için basit bir yol olan bir mesaj veri yolu sistemidir. D-Bus, süreçler arası iletişime ek olarak, bir sürecin yaşam döngüsünü koordine etmeye yardımcı olur; Bir uygulamanın veya arka plan programının "tek bir örneğini" çalıştırma yeteneğinin basit ve sağlam bir kod uygulamasını sağlar ve uygun hizmetlere ihtiyaç duyulduğunda uygulamaların ve arka plan programlarının talep üzerine başlatılmasına olanak tanır.

Bu arka plan programını çalıştırmanız gerekiyor mu? Sisteminiz ağa bağlıysa (başka ne?), özellikle ağlar arasında geçiş yapıyorsanız (örneğin, kablolu bir ağdan kablosuz bir ağa geçiş yapıyorsanız), NetworkManager'ı çalıştırmalısınız (biraz sonra NetworkManager'a bakacağız) .

dhcdbd arka plan programı, ISC'nin DHCP istemcisi olan dhclient için bir D-Bus arabirimi sağlar. Bu, NetworkManager'ın dhclient'e erişmesini ve yönetmesini sağlar.

Daha fazla bilgi: http://www.freedesktop.org/wiki/Software/dbus

Bu arka plan programı, fareyi aşağıdaki gibi konsol (metin tabanlı) uygulamalarda kullanma yeteneği verir. dosya yöneticisi Geceyarısı Komutanı. Konsolu sık kullanıyorsanız bu yararlı olabilir; aksi halde, yani her zaman X Pencere Sistemi üzerinden çalışıyorsanız, gpmd'ye asla ihtiyacınız olmayabilir.

Hayır, 2001: A Space Odyssey'deki şeytani bilgisayar değil. Bu bağlamda HAL, "Donanım Soyutlama Katmanı" - "donanım soyutlama katmanı" anlamına gelir. HAL arka plan programı (çekirdeği ve aygıtların kendilerini kullanarak) donanım aygıtları hakkında bilgi toplar ve bunu uygulamalara tutarlı bir şekilde sağlar.

Bu hizmeti devre dışı bırakmayın. Birçok uygulama bunu kullanır.

Daha fazla bilgi: "Masaüstü ve donanım yapılandırması", David Zeuthen

Bu arka plan programı, mürekkep püskürtmeli ve mürekkep püskürtmeli cihazlarda yazdırma, tarama ve faks gönderme için kullanılan HP Linux Görüntüleme ve Yazdırma (HPLIP) sistemi için destek sağlar. lazer cihazları HP'den. HPLIP, CUPS ile etkileşime girerek ikincisinin HP'den aygıtlara erişmesine olanak tanır.

Ek bilgi:

Java'da ilişkisel bir veritabanı arka plan programıdır. Adını, artık bakımı yapılmayan Hipersonik SQL projesinden almıştır. hsqldb, OpenOffice.org gibi açık kaynaklı projelerde ve ayrıca tamamen RAM'de çalışabildiği için demo programlarında yaygın olarak kullanılmaktadır. Hızlı çalıştığı için. Bu hizmeti başlatmanız gerekiyor mu? Sadece onu kullanan bazı programları çalıştırırsanız. Ama genel olarak çok kullanışlı araç ve aşina değilseniz, bir göz atmaya değer.

Daha fazla bilgi: http://hsqldb.org , http://dba.openoffice.org

Apache web sunucusu. Tüm web sitelerinin neredeyse %60'ı tarafından kullanılır. Bir web sitesini korumak istiyorsanız, Apache'yi çalıştırırsınız. Daha söylenecek bir şey var mı?

Daha fazla bilgi: http://httpd.apache.org

ip6tables ve iptables

Bunlar güvenlik duvarları veya güvenlik duvarlarıdır. Wikipedia'ya göre, "Güvenlik duvarı veya güvenlik duvarı (jar. güvenlik duvarı veya İngiliz güvenlik duvarından gelen güvenlik duvarı), OSI modelinin çeşitli seviyelerinde içinden geçen ağ paketlerini belirtilen kurallara uygun olarak kontrol eden ve filtreleyen bir donanım ve/veya yazılım setidir. ana görev güvenlik duvarı korumadır bilgisayar ağları veya yetkisiz erişimden bağımsız düğümler."

Iptables, IPv4 paket filtreleme kurallarını bir çekirdek tablosu biçiminde belirterek çalışır. Gelen ve giden paketler bu kurallara göre kontrol edilir ve kurallara uymayanlar bloke edilir. Ip6tables, IPv6 paketleri için aynı şeyi yapar.

İki hizmetten hangisi başlatılmalıdır? Her ikisi de. Her zaman. Web tehlikeli bir şeydir!

Daha fazla bilgi: http://www.netfilter.org , http://www.ipv6.org

IrDA (Kızılötesi Veri Derneği), cihazlar arasında kızılötesi aracılığıyla kablosuz iletişim için bir endüstri standardıdır. Çoğu dizüstü bilgisayar, IrDA standardına uygun bir kızılötesi verici ile donatılmıştır. Bu hizmeti, yalnızca diğer cihazlarla kızılötesi aracılığıyla iletişimi organize edecekseniz başlatmanız gerekir.

Ek bilgi:

dengesizlik

Bu arka plan programı, performansı artırmak için çok işlemcili SMP (simetrik işlemci) mimarilerinde CPU'lar arasında donanım kesintilerinin dağıtımıyla ilgilenir.

Tek işlemcili sistemlerde, bu arka plan programının başlatılması gerekmez; etkisi yalnızca çok işlemcili sistemleri etkiler.

Daha fazla bilgi: http://www.irqbalance.org

Bu çok faydalı bir şeytandır. Önyükleme zamanında çalışır ve sisteme hangi donanım aygıtlarının eklendiğini veya sistemden kaldırıldığını kontrol eder. Sık sık aygıt eklemeyi veya çıkarmayı planlamıyor olsanız bile, kudzu'yu önyükleme sırasında çalıştırmak mantıklıdır. Çünkü er ya da geç kendinizi yine de bir cihaz eklediğiniz ve sistemin onu algılamasını beklediğiniz bir durumda bulacaksınız. Ayrıca kudzu önyükleme aşamasında çalıştığı için sistem performansını olumsuz etkilemez.

Daha fazla bilgi: http://fedora.redhat.com/projects/additional-projects/kudzu

Bu arka plan programı adını Lan Bilgi Sunucusundan alır. Lisa, MS-Windows'taki "Ağ Komşularım" hizmeti tarafından sağlanana benzer işlevsellik sağlar, yani CIFS (Ortak İnternet Dosya Sistemleri) sunucuları dahil olmak üzere yerel ağınızdaki sunuculara erişim sağlar. lisa, TCP/IP protokolleri üzerinden çalışır, yapılandırma dosyasında belirttiğiniz aralıktaki IP adreslerine ICMP istekleri gönderir ve hangi bilgisayarların yanıt vereceğini bekler.

Daha fazla bilgi: http://docs.kde.org/stable/en/kdenetwork/lisa , http://docs.kde.org/userguide/networking-with-windows.html .

lm_sensörleri

Bu arka plan programı, anakart üzerindeki sıcaklıkları ve voltajları izler. İzleme sisteminin çalışması için ekipmanda uygun sensörlerin olması gerekir. Bu arka plan programını çalıştırmak yalnızca donanım desteği sağlanmışsa anlamlıdır. Muhtemelen normal iş istasyonlarında çalıştırmamalısınız. Kritik işlevleri yerine getiren üst düzey sunucularda daha çok ihtiyaç duyulur.

Daha fazla bilgi: http://www.lm-sensors.org , http://freshmeat.net/projects/lm_sensors

mcstrans

SELinux Bağlam Çeviri Sistemi Daemon. Bu arka plan programı, güvenlik bağlam bilgilerini insan tarafından okunabilir biçime dönüştürür. Bu arka plan programını durdurabilirsiniz ancak bu durumda ls -Z komutunun verdiği SELinux bilgisinin değişeceğini göreceksiniz. Örneğin, arka plan programı çalışırken şunları görürsünüz:

Ls -Z -rw-r--r-- jsmith jsmith user_u:object_r:user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u:object_r:user_home_t merhaba -r--r--r-- jsmith jsmith user_u:object_r :user_home_t merhaba.c

Ve arka plan programı durdurulursa, aşağıdakileri göreceksiniz:

Ls -Z -rw-r--r-- jsmith jsmith user_u:object_r:user_home_t:s0 bookmarks.html drwxr-xr-x jsmith jsmith user_u:object_r:user_home_t:s0 Masaüstü -r-xr-xr-x jsmith jsmith user_u :object_r:user_home_t:s0 merhaba -r--r--r-- jsmith jsmith user_u:object_r:user_home_t:s0 merhaba.c

Arka plan programı durdurulursa, güvenlik bağlamı değerinin "s0" görüntülendiğini unutmayın. içinde mctrans bu durum bağlamı sıfırlayın. Diğer güvenlik bağlam değerleri, alfasayısal değerlerden adlarına dönüştürülür.

Daha fazla bilgi: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com

mdmonitor ve mdmpd

Bu iki arka plan programı, RAID dizileri olan depolama sistemlerinde kullanılır (yedek dizi ucuz/bağımsız diskler). Mdmonitor, bir RAID izleme ve yönetim yazılımı hizmeti olan mdadm'yi (çok yollu aygıt izleme ve yönetimi) başlatır, durdurur ve yeniden başlatır. Bu hizmeti yalnızca sisteminizde RAID aygıtlarınız varsa başlatmanız gerekir.

Ek bilgi: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

mesaj yolu

Bu, sistem mesajı veri yolu arka plan programı D-BUS'tur. Yazdırma kuyruğundaki değişiklikler veya eklenen veya kaldırılan aygıtlar gibi sistem olaylarını ve olayları yayınlar (bunun kudzu'nun yaptığı ile aynı olmadığını unutmayın, çünkü bu tür olaylar yalnızca yükleme sırasında değil, sistem çalışması sırasında herhangi bir zamanda gerçekleşebilir) .

Daha fazla bilgi: http://www.freedesktop.org/software/dbus

netplugd ve ifplugd

Bu arka plan programları, bir ağ kablosu bağlandığında Ethernet aygıtlarını yapılandırır ve kablo bağlantısı kesildiğinde bu aygıtları devre dışı bırakır. Ne zaman ihtiyacın var? Örneğin, dizüstü bilgisayarlarda, ağ bağlantıları yalnızca ağ kablosu bağlandığında geri yüklenir.

netplugd'nin kullanımdan kaldırıldığını ve şimdi ifplugd ile değiştirildiğini unutmayın.

Daha fazla bilgi: http://0pointer.de/lennart/projects/ifplugd

NetworkManager ve NetworkManagerDispatcher

NetworkManager arka plan programı, ağ bağlantıları arasında geçişi otomatikleştirir. Bu arka plan programı, kablosuz WiFi ve Ethernet bağlantıları arasında geçiş yapan dizüstü bilgisayar kullanıcıları için kullanışlıdır. NetworkManagerDispatcher arka plan programı, NetworkManager ağ durumunu değiştirdiğinde gerekli işlemleri (örneğin, belirli paket yönlendirme yönergelerini ayarlamak için komut dosyaları) gerçekleştirmek için komut dosyalarını otomatik olarak çalıştırır.

Daha fazla bilgi: http://www.gnome.org/projects/NetworkManager

Bu, Etki Alanı Adı Sunucusu olarak görev yapan bir arka plan programıdır. Yalnızca bilgisayarınız ağınızın DNS sunucusuysa çalıştırmalısınız.

Daha fazla bilgi: http://www.dns.net/dnsrd

nfsd arka plan programı, erişim sağlamak için kullanılan nfs ağ iletişim protokolünü korur. ağ kaynakları TCP/IP ağlarında. Diğer kullanıcılara nfs protokolünü kullanarak dosya sistemlerinize erişim izni veriyorsanız, çalıştırmanız gerekir.

Ek bilgi:

Bu, ad hizmeti için önbelleğe alma arka plan programıdır. Çalışan programlar için bir grup ve parola tablosu tutar ve ardından NIS veya LDAP gibi normalde çok yavaş olan hizmetler için bir sonraki istekte hatırlanan sonucu döndürür. Bu hizmetleri çalıştırıyorsanız, nscd'yi de çalıştırmalısınız.

Bu, Ağ Zaman Protokolünü destekleyen bir arka plan programıdır. Sistem zamanını ayarlar ve zaman referanslarını koruyan İnternet sunucuları tarafından ayarlanan zamanla senkronize eder. Sisteminiz internete bağlıysa (değil mi?), o zaman bu arka plan programı bilgisayarınızdaki sistem saatinin doğru ayarlanmasını sağlayacaktır.

Daha fazla bilgi: http://www.ntp.org

Oddjobd arka plan programı, sistem veriyolunda com.redhat.oddjob hizmetini çalıştırır. Oddjobd tarafından sağlanan her fırsat şu şekilde sağlanır: ayrı yöntem D otobüsü. Oddjobd, ayrıcalıklı olmayan uygulamalar için ayrıcalıklı işlem desteği sağlar.

Bu arka plan programını yalnızca, Conga gibi gerektiren uygulamaları çalıştırıyorsanız çalıştırmalısınız.

Daha fazla bilgi: http://people.redhat.com/nalin/oddjob/oddjob.html.

Bu arka plan programı sanal özel ağları (sanal özel ağlar, VPN'ler) destekler. Bu arka plan programı için başlangıç ​​komut dosyası diyor ki:

OpenVPN, tek bir UDP bağlantı noktası üzerinden bir IP ağı üzerinden güvenli bir tünel sağlamak için OpenSSL kitaplığının şifreleme, kimlik doğrulama ve sertifika özelliklerini kullanan güvenli ve oldukça esnek bir tünel oluşturma uygulamasıdır.

Sisteminiz bir VPN ana bilgisayarıysa, muhtemelen OpenVPN çalıştırmalısınız.

Daha fazla bilgi: http://openvpn.net

pcscd (PC/SC Smart Card Daemon), pcsc-lite (akıllı kart erişim yazılımı) ve (java tabanlı) MuscleCard geliştirme ortamı için bir arka plan programıdır. Akıllı kart okuyucuları ve akıllı kartların kendileri ile iletişim sağlar.

(Akıllı kart, ya bir bellek modülünün yerleşik olduğu ya da bir bellek modülüne sahip bir mikroişlemcinin bulunduğu küçük bir karttır. Ve Muscle, Linux Ortamında Akıllı Kartların Kullanımı Hareketi (akıllı kartların kullanımı için hareket) anlamına gelir. bir Linux ortamı).

Daha fazla bilgi: http://www.smartcardalliance.org , http://pcsclite.alioth.debian.org , http://www.linuxnet.com/musclecard/index.html

Portmapper arka plan programı, uzaktan yordam çağrısı (RPC) bağlantılarını yönetir. RPC program numaralarını TCP/IP (veya UDP/IP) protokol port numaralarına dönüştürür. Portmapper, en yaygın olarak NFS ve NIS hizmetleri tarafından kullanılır.

Bu nedenle, sisteminiz NIS veya NFS'ye bağlıysa portmap arka plan programını devre dışı bırakmayın.

Daha fazla bilgi: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

Posta transfer (taşıma) aracısıdır. Sisteminiz bir e-posta geçişi değilse, bu hizmeti başlatmanıza gerek yoktur.

Daha fazla bilgi: http://www.postfix.org

Bu arka plan programı (yönlendirici bulma arka plan programı) yerel alt ağdaki yolları bulur. Yönlendirme tablolarını varsayılan yollarla doldurmak için önyükleme zamanında çalıştırılır.

Daha fazla bilgi: http://www.informit.com/articles/article.asp?p=23951&rl=1

geri yükleme koşulu

Bu, SELinux'tan bir arka plan programıdır. Restorecond, dosyaların oluşturulmasını takip eder (/etc/selinux/restorecond.conf içinde listelenen dosyalar için) ve dosyaların belirlenen politikaya (politika) göre doğru dosya içeriğine sahip olmasını sağlar ve varsayılan SELinux dosya içeriğini belirler.

Bu hizmeti devre dışı bırakmayın. SELinux için gereklidir.

Daha fazla bilgi: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com/

Bu arka plan programı aracılığıyla hangi işlemlerin gerçekleştirileceğini periyodik olarak kontrol eder. ağ Arayüzü Red Hat (Red Hat Network web arayüzü) ve bunları çalıştırır. Bu işlemler, yazılımın yüklenmesini, kaldırılmasını veya güncellenmesini, sistemin yeniden başlatılmasını, yapılandırma dosyalarının yüklenmesini vb. içerir.

Daha fazla bilgi: https://www.redhat.com/rhn/

rpcgssd, rpcidmapd ve rpcsvcgssd

Rpcgssd ve rpcsvcgssd arka plan programları, RPC üzerinden çalışırken güvenlik sağlamak için kullanılır. Rpcidmapd, kullanıcı adlarını UID ve GID numaralarına dönüştürür.

NFS veya NIS kullanıyorsanız, bu arka plan programlarının çalışıyor olması gerekir.

Ek bilgi:

readahead_early ve readahead_later

Readahead arka plan programı, sistem başlangıcında kullanılan programların kullanılmadan önce belleğe yüklenmesini sağlayarak önyükleme süresini azaltır.

saslauthd

Bu, SASL kimlik doğrulama sunucusu arka plan programıdır. SASL (Basit Kimlik Doğrulama ve Güvenlik Katmanı), uzak bağlantılara dayalı protokollere kimlik doğrulama yetenekleri ekler.

Daha fazla bilgi: http://asg.web.cmu.edu/sasl

posta göndermek

Bu bir SMTP (Basit Posta Aktarım Protokolü) sunucusudur. Sendmail, postaları bir sistemden diğerine iletir, yani bir posta taşıma aracısıdır (Mail Transport Agent). Bunları kullanıyorsanız e-posta programları Thunderbird veya Evolution gibi sendmail'i çalıştırmanız gerekmez.

Daha fazla bilgi: http://www.sendmail.org

sorun giderme

Bu, SELinux sorun çözme arka plan programıdır. Setroubleshooter, SELinux'a yapılan en yeni eklemelerden biridir. Setroubleshooter, SELInux AVC (Erişim Vektör Önbelleği) arızaları hakkında gerçek zamanlı kullanıcı geri bildirimi sağlar. Ayrıca, bu geri bildirim uygun bir formatta sağlanmaktadır.

Daha fazla bilgi: https://hosted.fedoraproject.org/projects/setroubleshoot

Bu arka plan programı, SCSI-3 sabit sürücüler gibi birçok sürücü türünde bulunan SMART (Kendi Kendini İzleme, Analiz ve Raporlama Teknolojisi) sensörlerini izler. Daemon, bu tür cihazların normal çalışmasını izler ve kendi kendine testler gerçekleştirir. Donanımınız SMART teknolojisini destekliyorsa bu hizmeti çalıştırmanız gerekir.

Ek bilgi:

spamassasin

Bu arka plan programı, postaları spam olup olmadığını kontrol etmek için Apache SpamAssassin programını kullanır. Genellikle bir posta dağıtım aracısı (MDA) sunucusuyla birlikte çalıştırılır. Postanıza erişmek için Thunderbird veya Evolution gibi istemci programları kullanıyorsanız, spamassassin çalıştırmanız gerekmez.

Daha fazla bilgi: http://spamassassin.apache.org

Bu, açık ssh protokolünün arka plan programıdır. Ssh, güvenli olmayan rsh ve rlogin programlarının yerini alır ve güvenli olmayan ağlardaki ana bilgisayarlar arasında şifreli iletişim sağlar. üzerinden diğer sistemlere bağlantı kullanıyorsanız, interneti aç, ssh kullanmalı ve bu arka plan programını çalıştırmalısınız.

Daha fazla bilgi: http://www.ssh.com , http://www.openssh.com

syslog, Linux için standart günlük kaydı sistemidir. Kapatmayın.

Daha fazla bilgi: http://www.syslog.org

Bu arka plan programı Samba paketinin bir parçasıdır. Windows etki alanı kullanıcılarının Unix kullanıcıları olarak Unix sunucularına bağlanmasına izin verir. Karışık bir Windows ve Linux/Unix bilgisayar ağıyla uğraşıyorsanız bu arka plan programını çalıştırmalısınız.

Daha fazla bilgi: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html , http://www.samba.org

Bu bir yazı tipi sunucusudur. Bu arka plan programı, grafik uygulamalarının sabit sürücüden yazı tiplerini yüklemek zorunda olduklarından daha hızlı çalışmasını sağlamak için yazı tiplerini belleğe yükler. Sisteminizdeki uygulamaların performansını artırmak için bu hizmet çalışıyor olmalıdır.

Daha fazla bilgi: http://linuxreviews.org/howtos/xfree/xfs

Bu hizmet, bir NIS istemcisini bir NIS etki alanıyla ilişkilendirir. Adındaki "yp", "sarı sayfalardan" gelir, çünkü NIS ​​dizinleri "sarı sayfalar" telefon dizinleri gibidir. Bu hizmeti yalnızca, sisteminiz kullanıcı bütçelerine ve sistem adlarına erişim sağlamak için NIS (Ağ Bilgi Hizmeti) kullanıyorsa başlatmanız gerekir.

Daha fazla bilgi: http://www.linux-nis.org

yum-updatesd

yum-updatesd, yazılım güncellemelerini izler ve bu güncellemelerin bildirimlerini e-posta, d-bus veya sistem mesajları yoluyla gönderir ve ayrıca gerçekleştirebilir. otomatik güncellemeÜZERİNDE. D-bus mesajları, kullanıcıya bir güncellemenin mevcut olduğunu bildiren ve güncellemenin yüklenmesine izin veren "kukla" (paket güncelleyici) yardımcı programı tarafından alınır.

Daha fazla bilgi: http://linux.duke.edu/projects/yum, http://www.redhat.com/magazine/024oct06/features/fc62

Sayesinde hayvanat bahçesi http://www.centrlan.ru/node/17929 sitesinde verilen bilgiler için

Kaynak belirtilmedi

Acemi Linux kullanıcılarının her biri, er ya da geç, sistemlerinin işleyişini kurma ve düzenleme konusunda bazı sorunlarla karşılaşır. Ve yeni başlayanların her biri, daha deneyimli kullanıcılardan neredeyse kesinlikle tavsiye aldı: "Günlüklere bakın." Tavsiye iyidir, ancak yeni başlayanların hala bilmesi gerekir: günlükler nedir ve onları nerede arayabilirim! Bu yüzden bu yazıda size neyi ve nerede izleyeceğinizi anlatmaya çalışacağım.

Programcı argosunda "günlükler", hem işletim sisteminin kendisi hem de bağımsız olarak birçok program tarafından tutulan iş protokolleri olarak adlandırılır. "Günlük" kelimesi genellikle bu anlamda "protokol" kelimesinin eş anlamlısı olarak kullanılır. Protokolü analiz etme ihtiyacının ortaya çıktığı iki ana durum vardır: sistemdeki bir şey beklediğimiz gibi çalışmadığında (sorunun çözümü) ve sistemin bir saldırgan tarafından saldırıya uğradığına dair bir şüphe olduğunda ve bunu yapmamız gerektiğinde. tam olarak ne olduğunu, nasıl yapıldığını ve işgalin sonuçlarını ortadan kaldırmak için ne yapılması gerektiğini öğrenin.

Bir davetsiz misafiri tespit etmek için günlük dosyalarını kullanmanın en ünlü örneklerinden biri, ünlü bilgisayar korsanı Kevin Mitnick'in bilgisayar güvenliği uzmanı Tsuomo Shimomura tarafından yakalanmasının hikayesidir. İşte nasıl olduğunu anlatan makaleden bir paragraf.

"Noel Günü, Shimomura tatil için Nevada'da kayak yapmaya gittiğinde, biri (kimin kim olduğunu zaten biliyoruz) Solana Beach, California'daki süper güvenli ev bilgisayarına girdi ve yüzlerce gizli dosyayı - dosyalarını kopyalamaya başladı. Shimomura'nın çalıştığı San Diego'daki Süper Bilgi İşlem Merkezi, sistem "günlük" (günlük) dosyalarındaki değişiklikleri fark etti ve neler olduğunu hızla anladı.Bütün bunlar, Shimomura'nın bilgisayarına otomatik olarak kopyalayan bir program yüklemesi nedeniyle mümkün oldu. San Diego'daki bir yedek bilgisayara "kayıt" kayıtları. Çalınan malların envanterini almak için eve koşan Shimomura adlı öğrenci."

Burada tüm hikayeyi anlatmayacağım, sadece sistem operasyonu protokollerinin analizinin, yürütülen görevi kötüye kullanma soruşturmasının başarısının temelini oluşturduğunu belirtmemiz önemlidir. Bu tür araştırmaların nasıl yapıldığına dair daha ayrıntılı bir açıklamayı makalede bulabilirsiniz. Ancak loglamanın sonuçlarını kullanabilmek için protokollerin nasıl oluşturulduğunu, nerede depolandıklarını ve bunlardan nelerin çıkarılabileceğini anlamak gerekir. Bu makale, tüm bu soruların değerlendirilmesine ayrılmıştır.

Protokol için mesajlar nasıl oluşturulur?

C dilinde programlar oluştururken, programcıların gerekirse özel işlevlere bir çağrı ekleme fırsatına sahip oldukları gerçeğiyle başlamalıyız. openlog, setlogmask, syslog ve yakın günlüğü, C standart kitaplığında bulunur.Bu işlevler, program yürütme sırasında belirli olaylar hakkında özel bir sistem arka plan programına mesaj göndermek için kullanılır. sistem günlüğü, sistem protokolüne liderlik ediyor. İşlev günlüğü açşeytanla bağlantı kurar sistem günlüğü, işlev sistem günlüğü protokole yazmak için özel bir mesaj üretir ve fonksiyon yakın günlüğü açık bir bağlantıyı kapatır.

İşlev tarafından oluşturulan mesajlar sistem günlüğü, boşluklarla ayrılmış birden çok alandan oluşur. Her mesaj bir alanla başlar PRI, kodlanmış biçimde mesajın kategorisi (tesis) ve önem düzeyi (önem düzeyi) veya mesajın önceliği (önceliği) hakkında bilgi içerir.

Kategori (tesis), verilen mesajın hangi sınıfa ait olduğu bilgisidir. Kategori 0'dan 23'e kadar bir sayı olarak kodlanmıştır. Aşağıdaki kategoriler mevcuttur (dosyada tanımlanmıştır). /usr/include/sys/syslog.h):

Tablo 1.

Sayısal değersembolşifre çözme
0 çekirdek Çekirdek mesajları
1 kullanıcı Kullanıcı programlarından çeşitli mesajlar için tasarlanmıştır. (kullanıcı programlarından mesajlar)
2 posta Posta sisteminden gelen mesajlar.
3 arka plan programı FTP veya LPR'den farklı olarak, onlar için özel olarak ayrılmış kategorileri olmayan sistem arka plan programlarından gelen mesajlar.
4 yetki Oturum açma ve su (güvenlik/izinler) gibi kullanıcı yetkilendirmesiyle ilgili her şey
5 sistem günlüğü Kayıt sistemi, kendisinden gelen mesajları günlüğe kaydedebilir.
6 lpr Yazdırma sisteminden gelen mesajlar.
7 Haberler Haber sunucusundan mesajlar. (NetNews, USENET)
8 uucp UNIX'ten UNIX'e Kopyalama Protokolünden iletiler. Bu, UNIX tarihinin bir parçasıdır ve büyük olasılıkla buna asla ihtiyacınız olmayacak (belli bir oranda posta iletisi hala UUCP aracılığıyla iletilse de).
9 cron Sistem zamanlayıcıdan gelen mesajlar.
10 yetki sahibi Auth ile aynıdır, ancak bu kategorideki mesajlar yalnızca bazı kullanıcıların okuyabileceği bir dosyaya yazılır (belki de bu kategori vurgulanmıştır, çünkü bu kategoriye ait mesajlar yetkisiz kişiler tarafından görülmemesi gereken kullanıcıların genel şifrelerini içerebilir ve bu nedenle günlük dosyalar uygun izinlere sahip olmalıdır).
11 ftp Bu kategori ile FTP sunucunuzu eylemlerini kaydedecek şekilde yapılandırabilirsiniz.
12'den 15'e - Sistem kullanımı için ayrılmıştır.
16'dan 23'eyerel0 - yerel7 Sistem yöneticisi tarafından kullanılmak üzere ayrılmış kategoriler. local7 kategorisi genellikle sistem önyüklemesi sırasında oluşturulan iletiler için kullanılır.

Kategori yetki eski bir eş anlamlısı var güvenlik, tavsiye edilmez. Ayrıca özel bir kategori var. işaret(dijital eşdeğeri yoktur), arka plan programı tarafından oluşturulan bireysel mesajlara atanır sistem günlüğü. Bu kategori, günlüğe belirli bir zaman aralığında (varsayılan olarak her 20 dakikada bir) özel işaretler koymak için kullanılır; bu, örneğin, bilgisayarınız donduğunda 20 dakikalık doğrulukla bulmanızı sağlar.

Kategorinin arka plan programına mesaj gönderen programın adıyla hiçbir ilgisi olmadığını unutmayın. sistem günlüğü. Dedikleri gibi, herhangi bir tesadüf tamamen tesadüftür. Ayrıca, bazı programlar farklı kategorilerde mesajlar üretebilir. Örneğin, bir şeytan telnet başarısız oturum açma girişimleri durumunda kategori mesajları oluşturur yetki sahibi ve diğer durumlarda gönderilerini şu şekilde sınıflandırır: arka plan programı.

Alan değerinin oluşturulduğu ikinci parametre PRI, mesajın seviyesi veya önceliğidir (öncelik), yani mesajın önem derecesi hakkında bilgi. Varsayılan olarak 8 önem düzeyi belirlenir (bunlar ayrıca dosyada da tanımlanmıştır) /usr/include/sys/syslog.h), 0'dan 7'ye kadar sayılarla kodlanmıştır:

Tablo 2.

Sayısal değersembol şifre çözme
0 ortaya çıkmak(PANİK'in eski adı) Acil Durum. Sistem çalışmaz.
1 uyarmak Endişe! Acil müdahale gerekli.
2 eleştiri Kritik hata (kritik durum).
3 hata(eski adı HATA) Hata mesajı.
4 uyarı(WARN'ın eski adı)Uyarı.
5 farkına varmak Bazı normal ama önemli olaylar hakkında bilgi.
6 bilgi Duyuru
7 hata ayıklama Hata ayıklama sırasında oluşturulan mesajlar.

Alan PRI mesaj şu şekilde oluşturulur: kategorinin sayısal değeri 8 ile çarpılır ve önceliğin sayısal değerine eklenir, ortaya çıkan sayı köşeli parantez içine alınır ve alana yazılır.

Alanı takip etmek PRI Aşağıdaki alanlar mesaja dahildir:

  • ZAMAN DAMGAMI- mesaj oluşturma süresi,
  • HOSTNAME- ondalık gösterimde ana bilgisayar adı veya IP adresi,
  • MSG- rastgele mesaj metni - US-ASCII kodunda (0x20 - 0x7e) bazı metin (bilgi) dizeleri.

Saat (yerel!) şu biçimde yazılır: 13 Şubat 21:12:06. Gün numarası tek basamaklıysa, önünde fazladan bir boşluk bulunur (0 değil!). Düzenlerken dikkate alınması gereken tarihte bir yıl ve bir bölgenin olmamasına dikkat edin. Uzun süreli depolama protokol dosyaları. Mesajdaki zamanın doğru olması için senkronize edilmesi gerekir (örneğin, NTP protokolü kullanılarak).

Ana bilgisayar adı, farklı ana bilgisayarlardan gelen mesajları karıştırmamak için mesaja dahil edilmiştir, çünkü aşağıda gösterileceği gibi, ağdaki özel bilgisayarlardan birinde günlük kaydı yapılabilir. Ana bilgisayar adı, etki alanını belirtmeden bilgisayarın basit ağ adıdır. Bilgisayarın farklı IP adreslerine sahip birden fazla arabirimi varsa, bunlardan herhangi biri ana bilgisayar adı veya adresi olarak kullanılabilir.

Mesaj metni ( MSG) genellikle bir etiket içerir ( ETİKET) mesajı yayınlayan program veya işlemi ve mesajın gövdesini işaret ederek ( İÇERİK). Etiket Latin harfleri ve sayıları içerebilir. Tipik olarak, etiket basit bir program adıdır ve bazen bunu köşeli parantez içine alınmış bir işlem kimliği takip eder. Mesajın gövdesi etiketten özel karakterlerle ayrılır - Linux'ta bu genellikle iki nokta üst üste ve boşluktur.

Mesajları syslogd ile işleme

Oluşturulan tüm mesajlar ayrı programlar işlevi kullanmak sistem günlüğü, soket üzerinden gönderildi /dev/günlük sistem arka plan programı sistem günlüğü, bu mesajların işlenmesinden sorumludur. Söylemeliyim ki, aslında, sistemde iki günlük cinleri başlatıldı - sistem günlüğü ve klogd. Her iki arka plan programı da pakete dahildir sistem günlüğü, en son sürümünü web sitesinde bulabilirsiniz.

İblis klogd sistem çekirdeğinde meydana gelen olayları günlüğe kaydetmekten sorumludur. Ayrı bir arka plan programı ihtiyacı klogdçünkü çekirdek standart işlevi kullanamaz sistem günlüğü. Gerçek şu ki, standart kütüphaneler (fonksiyonun bulunduğu kütüphane dahil) sistem günlüğü) yalnızca normal uygulamalar tarafından kullanılması amaçlanmıştır. Çekirdeğin de benzer işlevlere ihtiyacı olduğu için, uygulamalar tarafından kullanılamayan kendi kitaplıklarını içerir. Bu nedenle, çekirdek kendi mesaj oluşturma mekanizmasını kullanır. İblis klogd bu mesajların işlenmesini organize etmek için tasarlanmıştır. Prensip olarak, bu tür işlemleri tamamen bağımsız ve bağımsız olarak gerçekleştirebilir. sistem günlüğü, örneğin bu mesajları bir dosyaya yazarak, ancak çoğu durumda varsayılan ayar klogd, çekirdekten gelen tüm mesajların aynı arka plan programına iletildiği sistem günlüğü.

şeytanlardan emin olmak için sistem günlüğü ve klogd sisteminizde çalışıyor, komutu çalıştırın ps-balta | grep günlüğü. Bu komut bana şu sonucu verdi:

$ ps -ax | grep günlüğü 569? S 0:00 syslogd -m 0 574 ? S 0:00 klogd -x 1013 ? S 0:00 giriş -- kos 1191 ? S 0:00 kalarmd --login İlk iki satır size sadece loglama cinlerinin sistemde çalıştığını söyler.

Mesajları arka plan programı tarafından işleme sistem günlüğü mesajların görünümünü sürekli olarak izlemesi ve gelen her girişi dosyadaki kurallarla karşılaştırması gerçeğinden oluşur. /etc/syslog.conf. Her kural dosyaya bir satır olarak yazılır /etc/syslog.conf, iki alandan oluşur. Sol alan ("seçici"), mesajların seçildiği bir veya daha fazla şablonu belirtir. Şablonlar noktalı virgülle ayrılır (aşağıdaki örnek dosyaya bakın) /etc/syslog.conf). Sağdaki alan ("eylem"), seçilen mesajların işlenme sırasını belirler. Alanlar bir veya daha fazla boşluk veya sekme ile ayrılır.

"Seçici" alanındaki her bir kalıp, "kategori.düzey" (yani, "tesis.öncelik") biçimindedir. "Kategori" alanının değerleri şunlar olabilir:

  • Tablo 1'de listelenen kategorilerin geleneksel adlarından biri,
  • bu tür birkaç isim (bu durumda virgülle ayrılırlar)
  • veya * sembolü ("tüm kategoriler" anlamına gelir).

"Seviye" alanının değerleri şunlar olabilir:

  • tablo 2'de listelenen düzeyin koşullu adlarından biri,
  • * sembolü (seviyeden bağımsız olarak bu kategorideki tüm mesajları kaydedin),
  • veya kelime Yok(mesajları bu kategoriye kaydetmeyin).

"Seviye" alanında belirli bir değerin belirtilmesi "bu seviye ve üzeri tüm değerler" olarak yorumlanır. Eğer sadece bir seviyedeki mesajları kaydetmeniz gerekiyorsa, ayarlanacak değerin önüne eşittir ("=") işareti koymanız gerekir. Belirtilen seviye dışındaki tüm seviyelerin mesajlarının kaydedilmesi gerekiyorsa, seviye adının önüne bir ünlem işareti ("!") konulur. Bu iki işaretin aynı anda konulması "belirtilen seviye ve üzeri mesajları kaydetmeyin" şeklinde yorumlanır.

"Seçici" alanındaki büyük ve küçük harfler ayırt edilmez. Sayıları da kullanabilirsiniz (bkz. /usr/include/syslog.h). Tablo 1'de listelenen kategorilere ek olarak, belirtebilirsiniz işaret(normal zaman damgaları) ve güvenlik(eskimiş eş anlamlısı yetki). Tablo 2'de listelenen öncelik değerlerine ek olarak, kullanabilirsiniz. uyarmak(eş anlamlısı uyarı), hata(eş anlamlısı hata), panik(eş anlamlısı ortaya çıkmak).

Alınan mesajın kategorisi ve seviyesi, bir satırın "seçici" alan desenlerinden biriyle eşleştiğinde, sistem günlüğü kaydı bu satırın "eylem" alanında belirtilen eyleme uygun olarak işler.

"Eylem" alanı şunları içerebilir:

  • normal bir dosyanın adı (günlük dosyası) ve dosyanın tam yolu "/" kökünden başlayarak belirtilmelidir ve belirtilen dosya yoksa, sistem günlüğü onu yaratır
  • adlandırılmış kanalın adı (adlandırılmış kanal) - FIFO; bu durumda, adın önüne dikey bir çubuk ("|") gelir ve kanalın kendisi başlamadan önce oluşturulmalıdır. sistem günlüğü takım mkfifo,
  • bir terminali veya konsolu işaret ederek (bir aygıt olarak: /dev/tty1),
  • uzak bir ana bilgisayarı işaret ederek (öncesinde @ simgesi bulunur),
  • veya bu kurala göre terminallerine mesaj gönderilecek kullanıcıların listesi (virgülle ayrılmış). Kullanıcı listesi yerine yıldız işareti (*) koyabilirsiniz; bu, mesajların şu anda çalışan tüm kullanıcılara gönderildiği anlamına gelir. şu an sistemde.

Çoğu zaman, "eylem" alanı günlük dosyasının adını içerir. Ayrıca, dosya adından önce bir eksi işareti ("-") koyabilirsiniz; bu, sistemin dosyayı önbellek arabelleğinde saklayabileceği ve her mesaj diske yazıldıktan sonra temizlemeyeceği anlamına gelir. Bu da tabii ki özellikle loga çok sayıda büyük mesaj yazılıyorsa işi hızlandırıyor ancak beklenmedik bir sistem çökmesi durumunda yani tam da bu tür mesajlara özellikle ihtiyaç duyulduğunda bazı mesajların kaybolmasına neden olabiliyor. Ayrıca, /dev/lp0 - "eylem" alanında bir yazıcıyı aygıt olarak belirtebilirsiniz. Özellikle önemli sistemler söz konusu olduğunda, bu tür "eylem" türevlerini uygulamak uygundur. Yazdırılan protokoller bilgisayar korsanları tarafından silinemez veya değiştirilemez, bu nedenle bu eski bir nokta vuruşlu yazıcı için iyi bir kullanımdır.

Dosyadaki kuralların olduğu satırlara ek olarak /etc/syslog.conf# ile başlayan boş satırlar ve yorum satırları içerebilir. Dosya yapısı hakkında daha fazla bilgi /etc/syslog.conf Bu dosyadaki birkaç kural girişi örneği için syslog.conf kılavuz sayfasını okuyabilirsiniz. Dosyada "category.level" çiftlerini belirtirken şunu unutmayın: sistem günlüğü.conf Tablo 1 ve 2'de verilen sayısal değerleri kullanamazsınız, sadece koşullu adlarına izin verilir.

Bir mesaj iki veya daha fazla satırın kalıplarıyla eşleşirse, bu kuralların her birine göre işlenir (yani mesajın işlenmesi ilk başarıda durmaz). Bu, tek bir mesaj üzerinde isteğe bağlı sayıda eylemin gerçekleştirilebileceği anlamına gelir. Bu nedenle, bir günlük dosyasına bir mesaj yazabilir ve bunu kullanıcı(lar)a veya uzak bir ana bilgisayara gönderebilirsiniz.

Ayrıca, "selektör" alanında birkaç "category.level" çifti (noktalı virgülle ayrılmış) listeleniyorsa, sonraki çiftler öncekilerin etkisini iptal edebilir. Aşağıdaki dosya listesinde böyle bir iptal örneğini görebilirsiniz. /etc/syslog.conf: /var/log/messages dosyasına bilgideki veya üstündeki tüm mesajları günlüğe kaydeder, ancak posta, authpriv ve cron mesajlarını atlar (günlüğe kaydetmez).

Liste 1. Dosya /etc/syslog.conf Red Hat Linux 7.1 dağıtımına dayalı olarak oluşturulmuş bir sistemden (Bu dosyada yer alan yorumları az önce Rusça'ya çevirdim ve altını çizdim) kalın harflerle kural çizgileri).
# Çekirdekten gelen tüm mesajları konsola yazdırın. #kern.* /dev/console# Kimlik doğrulama mesajlarından ve cron arka plan programı mesajlarından gelen gizli # bilgileri içeren posta sistemi mesajları hariç, seviye bilgisi veya daha yüksek tüm mesajları günlüğe kaydedin. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Gizli # kimlik doğrulama bilgisi içeren mesajları, seviyeleri ne olursa olsun ayrı bir dosyaya yazın. authpriv.* /var/log/secure# Mail sisteminin tüm mesajları ayrıca ayrı olarak kaydedilir. mail.* /var/log/maillog# cron arka plan programının eylemlerini günlüğe kaydedin. cron.* /var/log/cron# Acil durum mesajları, sistemin tüm kullanıcıları tarafından # anında alınmalıdır *.ortaya çıkan*# Krit seviyesi ve üzeri haber servislerinden gelen mesajlar ayrı bir dosyaya yazılır. uucp,news.crit /var/log/spooler# Önyükleme aşamasında verilen mesajları boot.log dosyasına kopyalayın local7.* /var/log/boot.log
Gördüğünüz gibi, çoğu mesaj dizinde bulunan çeşitli günlük dosyalarına yazılır. /var/günlük veya alt dizinleri, Red Hat Linux'taki ana sistem günlük dosyası dosyadır /var/log/mesajlar. Yalnızca posta, authpriv ve cron kategorilerindeki (ayrı dosyaların tahsis edildiği) mesajlar buna girmez. Bu dosyaya bir göz atalım ve örneğini kullanarak günlük dosyalarında nelerin kaydedildiğini düşünelim.

Günlük dosyası /var/log/mesajlar

Bu dosyanın her satırının içeriğini burada anlatmak elbette mümkün değil. Okuyucunun protokolde hangi bilgilerin bulunabileceği hakkında fikir edinmesi için çok kısa yorumlarla ayrı satırlar-mesajlar vereceğiz.

Günlük dosyasındaki her satır, boşluklarla ayrılmış, aşağıdaki mesaj alanlarından oluşan tek bir mesaj girişi içerir:

  • standart metin biçiminde tarih (alan ZAMAN DAMGAMI mesajdan sistem günlüğü),
  • ana bilgisayar adı (alan HOSTNAME mesajdan sistem günlüğü)
  • mesaj metni (alanlar ETİKET ve İÇERİK mesajdan sistem günlüğü)

İlk olarak, bilgisayarınız 7/24 çalışmıyorsa ve geceleri kapalıysa, bu dosyanın bilgisayarın açılmasıyla başlayıp kapanmasıyla biten birkaç "çalışma döngüsünün" kayıtlarını içerebileceğini belirtmekte fayda var. Böyle bir döngü, kayıt cinlerinin başlatılmasıyla ilgili bir mesajla başlar (bu anlaşılabilir, başlatılmadan önce hiçbir mesaj kaydedilmemiştir):

17 Eylül 08:32:56 kos3 syslogd 1.4-0: yeniden başlatma. 17 Eylül 08:32:56 kos3 syslog: syslogd başarılı oldu 17 Eylül 08:32:56 kos3 kernel: klogd 1.4-0, günlük kaynağı = /proc/kmsg başladı. 17 Eylül 08:32:56 kos3 çekirdeği: /boot/System.map-2.4.2-2 inceleniyor 17 Eylül 08:32:56 kos3 syslog: klogd başlatıldı

  • - Hangi çekirdek sürümü kullanılıyor: 17 Eylül 08:32:56 kos3 çekirdeği: Linux sürüm 2.4.2-2 ( [e-posta korumalı]) (gcc sürüm 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 Paz 8 Nisan 20:41:30 EDT 2001
  • - Çekirdeğin hangi parametrelerle başlatıldığı: 17 Eylül 08:32:56 kos3 çekirdek: Çekirdek komut satırı: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - İşlemci türü ve RAM miktarı hakkında bilgi: 17 Eylül 08:32:56 kos3 çekirdeği: 1594.849 MHz işlemci algılandı. 17 Eylül 08:32:56 kos3 çekirdek: Bellek: 125652k/130560k kullanılabilir (1365k çekirdek kodu, 4200k ayrılmış, 92k veri, 236k başlangıç, 0k highmem) 17 Eylül 08:32:56 kos3 çekirdek: CPU: L1 I önbellek: 12K , L1 D önbellek: 8K 17 Eylül 08:32:56 kos3 çekirdeği: CPU: L2 önbellek: 256K 17 Eylül 08:32:56 kos3 çekirdeği: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz kademeli 02
  • - Disk belleği hakkında bilgiler (disk geometrisi, disk bölümü yapısı ve kullanılan kesmeler hakkında bilgiler dahil): 17 Eylül 08:32:56 kos3 çekirdeği: hda: MAXTOR 6L020J1, ATA DISK sürücüsü 17 Eylül 08:32:56 kos3 çekirdeği: hdc: SAMSUNG CD-ROM SC-148C, ATAPI CD/DVD-ROM sürücüsü 17 Eylül 08:32:56 kos3 kernel: ide0 0x1f0-0x1f7,0x3f6 irq 14 Eylül 17 08:32:56 kos3 kernel: ide1 0x170-0x177'de ,0x376 irq 15 17 Eylül 08:32:56 kos3 çekirdek: hda: 40132503 sektörler (20548 MB) w/1819KiB Önbellek, CHS=2498/255/63, UDMA(100) 17 Eylül 08:32:56 kos3 çekirdek: Bölüm denetimi: 17 Eylül 08:32:56 kos3 çekirdek: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17 Eylül 08:32:56 kos3 çekirdeği: Disket sürücü(ler): fd0 1,44 milyon
  • - Çevre birimleri hakkında bilgi: 17 Eylül 08:32:56 kos3 çekirdeği: usb-uhci.c: G/Ç 0x1820'de USB UHCI, IRQ 11 17 Eylül 08:32:56 kos3 çekirdeği: usb-uhci.c: 2 bağlantı noktası algılandı 17 Eylül 08:32:56 kos3 çekirdeği: 0x03f8'de ttyS00 (irq = 4) bir 16550A'dır 17 Eylül 08:32:56 kos3 çekirdeği: 0x02f8'de ttyS01 (irq = 3) bir 16550A'dır 17 Eylül 08:32:56 kos3 çekirdek: eth0: Intel(R) 8255x tabanlı Ethernet Bağdaştırıcısı 17 Eylül 08:32:56 kos3 çekirdek: Intel(R) PRO/100 Hızlı Ethernet Bağdaştırıcısı - Yüklenebilir sürücü, sürüm 1.5.6 17 Eylül 08:32:56 kos3 çekirdeği : PCI: 02:08.0 aygıtı için IRQ 11 bulundu
  • - Bireysel hizmetleri ve hizmetleri başlatma hakkında bilgi: 17 Eylül 08:32:56 kos3 çekirdeği: NET4: NET4.0 için Linux TCP/IP 1.0 17 Eylül 08:32:56 kos3 çekirdeği: IP Protokolleri: ICMP, UDP, TCP, IGMP 17 Eylül 08:32:56 kos3 çekirdeği: NET4: Linux NET4.0 için Unix etki alanı yuvaları 1.0/SMP. 17 Eylül 08:32:56 kos3 çekirdek: parport0: 0x378'de (0x778) PC stili 17 Eylül 08:32:56 kos3 çekirdek: parport0: irq 7 algılandı 17 Eylül 08:32:42 kos3 rc.sysinit: Kullanıcı açılıyor ve yerel dosya sistemleri için grup kotaları: başarılı 17 Eylül 08:32:43 kos3 rc.sysinit: Takas alanını etkinleştirme: başarılı 17 Eylül 08:32:44 kos3 init: Çalışma düzeyine girme: 3 Eylül 17 08:32:45 kos3 kudzu: Güncelleme /etc/fstab 17 Eylül 08:32:55 kos3 kudzu: başarılı 17 Eylül 08:32:55 kos3 ağı: Ağ seçeneklerini ayarla: başarılı 17 Eylül 08:32:55 kos3 ağı: arayüzü getir lo: başarılı 17 Eylül 08 : 32:56 kos3 ağı: eth0 arayüzü etkinleştirildi: başarılı 17 Eylül 08:32:56 kos3 keytable: Klavye düzeni yükleniyor: 17 Eylül 08:32:56 kos3 keytable: Sistem yazı tipi yükleniyor: 17 Eylül 08:32:56 kos3 rastgele: Rastgele sayı üreteci başlatılıyor: başarılı 17 Eylül 08:32:41 kos3 rc.sysinit: Çekirdek parametrelerini yapılandırma: başarılı 17 Eylül 08:32:41 kos3 rc.sysinit: Varsayılan yazı tipini ayarlama (cyr-sun16): başarılı Eylül 17 08:32:41 kos3 rc.sysinit: Takas bölümlerinin etkinleştirilmesi: başarılı 17 Eylül 08:32:41 kos3 rc.sysinit: Ana bilgisayar adının ayarlanması kos3: başarılı 17 Eylül 08:33:03 kos3 xinetd: xinetd başlatıldı 17 Eylül 08: 33:05 kos3 gpm: başlangıç ​​gpm başarılı oldu 17 Eylül 08:33:05 kos3 crond: başlangıç ​​crond başarılı oldu 17 Eylül 08:33:06 kos3 xfs: 7100 bağlantı noktasını dinleme 17 Eylül 08:33:06 kos3 xfs: xfs başlatma başarılı
  • - bağlantı bilgileri dosya sistemleri: 17 Eylül 08:32:56 kos3 çekirdeği: VFS: Bağlanmış kök (ext2 dosya sistemi) salt okunur. 17 Eylül 08:32:56 kos3 çekirdeği: Takas ekleme: 265032k takas alanı (öncelik -1) 17 Eylül 08:32:56 kos3 çekirdeği: MSDOS FS: 866 kod sayfasını kullanma 17 Eylül 08:32:56 kos3 çekirdeği: MSDOS FS : IO karakter kümesi koi8-r 17 Eylül 08:32:41 kos3 rc.sysinit: USB dosya sistemi monte ediliyor: başarılı 17 Eylül 08:32:41 kos3 rc.sysinit: Kök dosya sistemi kontrol ediliyor 17 Eylül 08:32:41 kos3 rc.sysinit : Kök dosya sistemini okuma-yazma modunda yeniden monte etme: başarılı 17 Eylül 08:32:41 kos3 rc.sysinit: Proc dosya sistemini bağlama: başarılı 17 Eylül 08:32:41 kos3 fsck: /: clean, 30407/160000 dosyalar, 95270/319410 bloklar 17 Eylül 08:32:42 kos3 fsck: /HOME: clean, 6573/432864 dosyalar, 689090/863722 bloklar 17 Eylül 08:32:42 kos3 fsck: /usr: clean, 55105/329952 dosyalar, 286888/659602 bloklar 17 08:32:42 kos3 rc.sysinit: Dosya sistemlerini kontrol etme başarılı oldu
  • - Bazı hata mesajları: 17 Eylül 08:32:42 kos3 mount: SMB bağlantısı başarısız 17 Eylül 08:32:42 kos3 mount: Paket gönderimi başarısız 10.104.129.245(137) ERRNO=Ağa ulaşılamıyor 17 Eylül 08:32:42 kos3 mount: mount: /dev/sda4: unknown device 17 Eylül 08:32:59 kos3 mount: 192.168.36.20:139'a bağlanırken hata (Ana bilgisayara giden yol yok) 17 Eylül 08:32:59 kos3 mount: mount: / dev /sda4: bilinmeyen aygıt
  • - Kullanıcı günlüğü mesajları: 17 Eylül 08:33:14 kos3 login(pam_unix): LOGIN(uid=0) tarafından kos kullanıcısı için oturum açıldı 17 Eylül 08:33:14 kos3 -- kos: tty1 BY kos tarafından LOGIN 17 Eylül 08 :41:39 kos3 su(pam_unix): kimlik doğrulama hatası; logname=kos kullanıcı kimliği=500 euid=0 tty=ruser=rhost=kullanıcı=kök
  • - Ve son olarak, bilgisayar kapatıldığında yazılan mesajlar, örneğin: 17 Eylül 10:30:07 kos3 rc: Keytable durduruluyor: başarılı 17 Eylül 10:30:07 kos3 Yazı Sunucusu: 17 Eylül 10:30:08 kos3 sonlandırılıyor xfs: xfs'yi durdur 17 Eylül 10:30:08 kos3 gpm: durdurma gpm başarılı oldu 17 Eylül 10:30:08 kos3 xinetd: Çıkılıyor... 17 Eylül 10:30:10 kos3 rpc.statd: Yakalanan sinyal 15, un- kayıt ve çıkış. 17 Eylül 10:30:11 kos3 çekirdeği: Çekirdek günlüğü (proc) durduruldu. 17 Eylül 10:30:11 kos3 kernel: Kernel log arka plan programı sonlandırılıyor. 17 Eylül 10:30:12 kos3 syslog: stop klogd başarılı oldu 17 Eylül 10:30:12 kos3 sinyal 15'ten çıkıyor

    Dosyada belirtilen diğer protokol dosyalarında yaklaşık olarak aynı yapının girişleri vardır. /etc/syslog.conf.

    logger ve tailf komutları

    Önceki açıklamadan, sistem günlükleri için tüm mesajların verilmesinin, program oluşturma aşamasında programcı tarafından belirlenmesi gerektiği sonucuna varabiliriz. Bu tamamen doğru değil. Kullanıcı ayrıca arka plan programına mesaj gönderme yeteneğine de sahiptir. sistem günlüğü. Bunu yapmak için Linux'un bir komutu var ağaç kesicisi, komut satırından (sh, bash vb.) mesaj göndermeyi sağlar. util-linux paketinin bir parçasıdır. Doğal olarak, bu komut, öncelikle, kullanıcı çeşitli türlerde kabuk komut dosyaları oluşturduğunda, günlüğe kaydetme yetenekleri sağlamayı amaçlar. Ancak, örneğin günlük kaydı sisteminin yeteneklerini tanımak için doğrudan komut satırından da çalıştırılabilir. Komut çalıştırma formatı: kaydedici [-isd] [-f dosyası] [-p PRI] [-t ETİKET] [-u soketi] Komut satırı seçenekleri şu anlama gelir:

    • -Bence- mesaja işlem numarasını ekleyin
    • -s- stderr'e kopyalanan mesaj
    • -D- mesaj gönderirken datagram modunu kullanın (normal akış yerine)
    • -f dosya adı- mesajı belirtilen dosyaya kaydedin (varsayılan /var/log/mesajlar)
    • -p tesis.seviye- mesaj kategorisini ve önceliğini ayarlayın (varsayılan: user.notice)
    • -T ETİKET - ETİKET alanını ayarla
    • -u soketi- syslogd'u çağırmak yerine belirtilen sokete bir mesaj gönderin
    • MSG- Mesaj metni

    Programı kullanarak birden fazla mesaj gönderin ağaç kesicisi ve dosyadaki sonuca hayran kalın /var/log/mesajlar(elbette, varsayılan değeri değiştirmediyseniz).

    Bu arada, bir dosyaya yazılan mesajları görmenin çok ilginç bir yolu var. /var/log/mesajlar takım ağaç kesicisi. Bu yöntem, kullanıma dayalıdır. özel program kuyruk. Bir terminal penceresi açın, süper kullanıcı haklarını alın (komutla su) ve komutu bu pencerede çalıştırın
    tailf /var/log/mesajlar
    Bundan sonra başka bir terminale geçin ve oradaki komutu çalıştırın. kaydedici özel_metin. Mesajınız hemen programın çalıştığı pencerede görüntülenecektir. kuyruk. Yani bu program yardımıyla sistem yöneticisi yeni mesajların protokoldeki kaydını gerçek zamanlı olarak izleyebilir. doğru, sistem yöneticisi sistemin davranışını bu şekilde izlemek için zamanın olması muhtemel değildir (acil durumlar hariç). Bu nedenle protokollerin analizi için özel programlar geliştirilmiştir. Ama onlar hakkında biraz daha düşük, ama şimdilik uzak bir bilgisayarın denetiminin nasıl organize edileceği sorusuna geçelim (Shimomura saldırganını nasıl yakaladığınızı hatırlıyor musunuz?).

    Ağ günlüğü

    Belirtildiği gibi, sistem mesajları günlüğe kaydetme arka plan programı tarafından gönderilebilir. sistem günlüğü uzak bir ana bilgisayara. Ama birinin onu oraya götürmesi gerekiyor. Bunun aynı şeytan olduğu ortaya çıktı sistem günlüğü bu uzak ana bilgisayarda çalışıyor. Daha kesin, sistem günlüğü herhangi bir bilgisayarda, yalnızca /dev/log soketinde değil (böylece yerel kaynaklardan gelen mesajları kabul eder) değil, aynı zamanda mesajların yerel ağdaki diğer bilgisayarlardan alınmasını (ve ardından yazılmasını) sağlayan 514/UDP bağlantı noktasında da dinleyebilir. yerel bir dosyaya). Bu, bir sistem yöneticisi için çok uygun olabilecek (ağdaki tüm olaylar tek bir yerde izlenir) bir "kayıt sunucusu" oluşturmayı mümkün kılar ve ayrıca, bilgisayar korsanlarından birine izinsiz giriş raporları olduğundan ağ güvenliğini artırır. ağ ana bilgisayarları, bu bilgisayar korsanı tarafından protokolden hemen kaldırılamaz.

    Ancak, böyle bir "ağ günlüğü" düzenlemek için bazı ek çabalar gösterilmelidir.

    İlk olarak, 514/UDP bağlantı noktası ağ üzerinden mesaj almak ve göndermek için kullanıldığından, her iki bilgisayarda da (istemci ve sunucu) mevcut olmalıdır. Bunun için dosyada /etc/hizmetler her iki bilgisayarda da hat olmalıdır
    sistem günlüğü 514/udp
    Böyle bir hat ise /etc/hizmetler eksik, sistem günlüğü UDP bağlantı noktası açamadığı için mesajları alamaz veya ağa gönderemez. Böyle bir durum ortaya çıkarsa, sistem günlüğü yerel günlüğe bile herhangi bir mesaj yazmayı hemen durdurur. Ancak, komutta gösterildiği gibi ps, bellekte kalır ve hatta mesajları bazı arabelleklerde saklar, çünkü " sistem günlüğü 514/udp" dosyaya geri yükle /etc/hizmetler istemcide, daha sonra en azından "eksik" mesajların bazıları günlükte görünüyor (yeniden başlattıktan sonra) sistem günlüğü).

    İkincisi, arka plan programını başlatırken sistem günlüğü seçenek sunucuda belirtilmelidir -r, uzaktan günlük kaydı özelliği sağlar (varsayılan olarak arka plan programı sistem günlüğü yalnızca yerel soketten bir mesaj bekler). Bu seçeneğin nasıl ve nerede ayarlanacağı aşağıda, arka plan programının başlatılmasıyla ilgili bölümde tartışılacaktır. sistem günlüğü.

    Ve üçüncüsü, dosyalardaki ayarlar buna göre düzeltilmelidir. /etc/syslog.conf her iki bilgisayarda. Örneğin, tüm mesajları kayıt sunucusuna yönlendirmek istiyorsanız, istemci bilgisayarda dosyaya yazmanız gerekir. /etc/syslog.confşöyle bir satır:
    *.*@hostname
    Eğer arka plan programının başlangıcı sırasında sistem günlüğü sunucu kullanılamayacak (örneğin, şu anda çevrimdışı) veya adıyla bulmak mümkün olmayacak (DNS hizmeti düzgün çalışmadı) sistem günlüğü sunucuyu bulmak için 10 deneme daha yapar ve ancak bundan sonra sunucuyu bulmak mümkün olmazsa, denemeyi bırakır ve uygun bir mesaj gönderir.

    Ağınızda aynı günlük kaydı sunucusu tarafından hizmet verilen birden fazla etki alanınız varsa, sunucudaki günlük kaydında tam istemci adlarını (etki alanı dahil) görmek sizi şaşırtmasın. Nitekim, başlangıçta sistem günlüğü seçenekler kullanılabilir -s domain_list veya -l ana bilgisayar listesi protokoldeki tam ana bilgisayar adlarının kısa adlarıyla değiştirilmesini sağlayan (etki alanı belirtmeden).

    Başlatma seçeneklerini ve dosyayı ayarladıktan sonra unutmayın /etc/syslog.conf arka plan programını yeniden başlatın çünkü aksine cron, sistem günlüğü yapılandırma dosyalarını otomatik olarak yeniden okumaz.

    syslogd arka plan programı başlatma seçenekleri

    Bir önceki alt bölümde arka plan programı başlatma parametrelerinin ayarlanması konusuna değindiğimizden beri sistem günlüğü bu konuya daha detaylı bakalım. Daha önce de belirtildiği gibi, her iki günlüğe kaydetme arka plan programı, sistem başlatma aşamasında ve daha spesifik olarak bir komut dosyası aracılığıyla başlatılır. /etc/rc.d/init.d/syslog(bunun için ve diğer hizmetlerin başlangıç ​​komut dosyaları için /etc/rc.d/rc?.d/ dizinlerinde sembolik bağlantılar oluşturulur). Ancak, başlatma parametrelerini ayarlamak için bu komut dosyasını değiştirmeye gerek yoktur, çünkü Red Hat dağıtımındaki 7.2 sürümünden beri, her iki arka plan programı için başlatma seçenekleri ayrı bir yapılandırma dosyasından okunur. /etc/sysconfig/syslog. Daemon için olası parametrelerin kısa bir listesi sistem günlüğü.

    Başlatma parametreleri sistem günlüğü:

    • -bir soket- Daemon'un dinleyeceği ek bir soket belirtir sistem günlüğü. 19'a kadar soket belirtebilirsiniz (daha fazlası mümkündür, ancak bunun için paketi yeniden derlemeniz gerekir). Bu seçenek, başka bir arka plan programı (ftp veya http gibi) kısıtlı bir ortamda çalışırken (chroot yapar) kullanılır.
    • -D- Hata ayıklama modu. Aynı zamanda, arka plan programı arka plana gitmez ve tüm mesajları mevcut terminale gönderir.
    • -f yapılandırma-dosya adı Varsayılan dosyanın yerine kullanılacak alternatif bir yapılandırma dosyasının adını belirtir. /etc/syslog.conf.
    • -H Varsayılan olarak sistem günlüğü ağ üzerinden alınan mesajları başka bir bilgisayara aktarmak yasaktır. Bu, halka etrafında sonsuz mesaj transferini önlemek için yapılır. -h seçeneği, normal davranışı geçersiz kılmanıza ve uzak ana bilgisayarlardan alınan mesajların ağ üzerinde iletilmesini sağlamanıza (ve olası döngülere kendiniz dikkat etmenize) olanak tanır.
    • -l ana bilgisayar listesi- Adları tam alan adıyla yazılmaması gereken ana bilgisayarların listesini belirtir (FQDN - Tam Qwalified Etki Alanı Adı); listedeki isimler iki nokta üst üste ile ayrılır.
    • -m dakika Bu seçenek olmadan başlatıldı sistem günlüğü düzenli olarak (her 20 dakikada bir) kategori mesajlarını kaydeder işaret, yani yalnızca zaman damgaları. seçeneği ile -m işaretler arasındaki aralığı değiştirebilir veya aralığı sıfıra ayarlamanız gereken bu tür mesajların verilmesini tamamen iptal edebilirsiniz: -m0.
    • -n Arka plana gitmeyin; seçenek, syslogd'un bir süreç tarafından başlatıldığı ve kontrol edildiği durumlarda gereklidir. içinde.
    • -p soketi Alternatif bir UNIX soketi belirtir (varsayılan dinleme yerine /dev/günlük). Lütfen dikkat: seçenek -a ek soketleri belirtir ve -P- alternatif!
    • -r Uzak ana bilgisayarlardan mesaj almaya izin ver. Bundan önceki bölümde bahsetmiştik, bu yüzden ayrıntıları atlıyorum.
    • -s etki alanı listesi Adlarının ana bilgisayar adıyla birlikte günlüğe kaydedilmesi gerekmeyen etki alanlarının bir listesini belirtir (yani, bu etki alanları için tam etki alanı adı (FQDN) yerine yalnızca ana bilgisayar adları günlüğe kaydedilir). Listedeki adlar şu şekilde ayrılır: iki nokta üst üste Syslogd sunucusunun bulunduğu etki alanının adı bu listede gerekli değildir (adı varsayılan olarak kaldırılmıştır).
    • -v Sürümü göster ve bitir.
    • -x Adresinden bir ana bilgisayar adını belirlemeyi reddet, DNS sunucusuyla aynı ana bilgisayar üzerinde çalışırken kilitlenmeyi önler.

    Daemon'u başlattıktan sonra sistem günlüğü durum dosyası oluşturuldu /var/lock/subsys/syslog sıfır uzunluk ve işlem kimliğine sahip bir dosya /var/run/syslogd.pid.

    komutu ile
    kill -SIGNAL `cat /var/run/syslogd.pid`
    şeytana gönderebilirsin sistem günlüğü aşağıdaki sinyallerden biri:

    • SIGHUP - arka plan programı yeniden başlatma (yeniden başlatma); tüm açık dosyalar kapatılır, arka plan programı yeniden başlatılır ve yapılandırma dosyasını yeniden okur.
    • SIGTERM - kapatma.
    • SIGINT, SIGQUIT - hata ayıklama modu etkinleştirilirse (seçenek -d), sinyaller yok sayılır, aksi takdirde - çıkış.
    • SIGUSR1 - hata ayıklama modunu etkinleştir/devre dışı bırak (yalnızca arka plan programı -d anahtarıyla başlatılmışsa çalışır).

    İblis klogd en az olduğu kadar çok başlatma seçeneğine sahip sistem günlüğü ancak, okuyucuyu ilgili kılavuz sayfasına yönlendirerek onları burada vermeyeceğiz (kullanıcı klogd, dağıtımın geliştiricileri tarafından üretildiği gibi durumda bırakmak daha iyidir).

    dmesg dosyası ve dmesg komutu

    Daha önce de belirtildiği gibi, dosyada belirtilen günlük dosyaları /etc/syslog.conf genellikle dizinde bulunur /var/günlük ve alt dizinleri. Ancak, bu dizine bakarsak, orada birkaç dosya bulacağız. /etc/syslog.conf bahsedilmedi. Amaçlarına bakalım. Dosyayla başlayalım mesaj.

    Öncelikle Linux'un aynı isimde bir komutu olduğunu belirtmek gerekir. Bu komutun çıktısını (parametresiz çalıştırıldığında) dosyanın içeriği ile karşılaştırırsak /var/log/dmesg, özdeş olmasalar da çok benzer olduklarını göreceksiniz (komutun çıktısını bir dosyaya yönlendirin) dmesg2 ve dosyaları karşılaştırın mesaj ve dmesg2). Daha doğrusu dosya /var/log/dmesg komuttan aldığımız çıktının başlangıcı ile bire bir örtüşüyor mesaj. Aşağıdaki gibi, çekirdek, içine çekirdek günlüğü arka plan programından gelen mesajların yazıldığı bir halka arabelleğine sahiptir. İndirme işlemi sırasında bu ara belleğe yazılan ve dosyanın içeriğini oluşturan mesajlar /var/log/dmesg. Görünüşe göre, bu dosya sistem önyüklemesinin sonunda oluşuyor.

    Yukarıdaki dosya listesine tekrar bakarsanız /etc/syslog.conf, kategorideki tüm gönderilerin olduğunu göreceksiniz. çekirdek konsola da verilir. Ama orada çabucak ekrandan geçiyorlar ve onları okumak ve anlamak için neredeyse hiç zamanınız yok. Ama bir dosyaya kaydedilirler /var/log/dmesg ve böylece yavaş düşünme için kullanılabilir (indirme işlemi başarıyla tamamlandıysa). Önyükleme işlemi tamamlandıktan sonra çekirdekten halka arabelleğine mesaj yazmaya devam edilir. Komut yürütüldüğünde mesaj, arabelleğin geçerli durumu döndürülür. Bu nedenle, bu komutun çıktısı, dosyadan daha fazla mesaj içeriyor. /var/log/dmesg: Bu komutun çıktısında, boot işlemi tamamlandıktan sonra kernelin verdiği mesajları da görebilirsiniz.

    gelen tüm mesajlar /var/log/dmesg dosyada bulacaksın /var/log/mesajlar, sadece orada diğer programlardan gelen mesajlarla değişiyorlar. Tek bir önemli fark var: dosyada mesaj mesajın zamanı ve kaynağı (ana bilgisayar adı ve mesaj kategorisi) belirtilmemiştir. Buradaki ana bilgisayar her zaman "yerel"dir ve geri sayımın başlangıcı, bilgisayarın son yeniden başlatılmasıyla belirlenir.

    lastlog, wtmp ve utmp dosyaları

    dosya hariç mesaj katalogda /var/log/ içinde bahsedilmeyen iki dosya daha var /etc/syslog.conf, ancak doğrudan günlüğe kaydetme ile ilgilidir - bunlar dosyalardır son kayıt ve wtmp. Ama dosyaya baktığımız gibi onlara da bak. /var/log/mesajlar mantıklı değil - hiçbir şey anlamayacaksın. Gerçek şu ki, bu dosyalardaki bilgiler özel bir formatta kaydediliyor ve özel yazılım araçları kullanılarak görüntülenmesi gerekiyor. Ama önce bu dosyaların amacı hakkında birkaç söz söylememiz gerekiyor.

    Dosya son kayıt kullanıcının sisteme son girişine ilişkin bilgileri saklar. Kullanıcı adı ve şifre girdiğinizde ekranda şöyle bir mesaj çıktığını fark ettiniz mi bilmiyorum:

    Localhost oturum açma: kos Parola: Son oturum açma: 9 Ekim Çarşamba 19:25:53 tty1'de Bu üç satır yardımcı program tarafından oluşturulur giriş yapmak kullanıcının oturum açma haklarına sahip olduğunu belirledikten sonra dosyaya erişen /var/log/lastlog, kullanıcının önceki başarılı oturum açma işlemiyle ilgili bilgileri oradan çıkarır, ekranda görüntüler ve ardından dosyadaki girişi günceller son kayıt. Ana dizininizde boş bir .hushlogin dosyası oluşturarak bu mesajı engelleyebilirsiniz. Ancak, bunu yapmanız önerilmez, aksine, sizin adınıza başka birinin giriş yaptığı durumları kaçırmamak için bu mesajın içeriğine özellikle dikkat etmeye değer.

    dosyadan farklı olarak /var/log/lastlog, zaman girişlerini içeren geçen dosyada her kullanıcının oturum açma /var/log/wtmp hatırlanır Tümü Bu dosya oluşturulduğundan beri kullanıcı oturum açma ve oturum kapatma işlemleri. Dosyadaki gibi son kayıt, kayıtları /var/log/wtmp yalnızca kullanılarak görüntülenebilecekleri şekilde özel bir biçimde yapılmıştır. özel ekipler. Ancak, bu komutlardan bahsetmeden önce, kullanıcı günlüğü ile ilgili girdileri içeren başka bir dosya olduğunu varsayalım - bu dosyadır. /var/run/utmp. Bu dosya, o anda sistemde hangi kullanıcının oturum açtığı hakkında bilgi içerir.

    Artık sistemde çalışan veya daha önce çalışmış olan kullanıcılar hakkındaki bilgileri nasıl görüntüleyeceğiniz hakkında konuşabilirsiniz. Bunun için ana komut komuttur geçen. Tüm kayıtları bir dosyadan çıkarır /var/log/wtmp, ve kullanıcı adı, kullanıcının çalıştığı terminalin bir göstergesi, kullanıcının sisteme girdiği ve sistemden ayrıldığı saatin yanı sıra kullanıcının sistemdeki oturumunun süresi. Kullanıcının işi sadece sistemin kapanması nedeniyle kesintiye uğradıysa, kullanıcının çıkış zamanı yerine "aşağı" kelimesi gelir (sistem durma zamanını bu satırlardan belirlemek kolaydır). Yeniden başlatma zamanı, "reboot" kelimesiyle başlayan ayrı satırlarda görüntülenir.

    Takım son bir takım gibi geçen, ancak başarısız kullanıcı oturum açma girişimleriyle ilgili bilgileri görüntüler. Ancak, bu komutun yalnızca dosya varsa çalışacağına dikkat edilmelidir. /var/log/btmp. Ancak burada tartışılan programların hiçbiri günlük dosyaları oluşturmaz, bu nedenle bunlardan biri silinirse kayıt tutma sona erer.

    Takım son kayıt bir dosyanın içeriğini biçimlendirir ve çıktılar /var/log/lastlog. Kullanıcı adı, kullanıcının oturum açtığı terminalin adı ve son oturum açma zamanı görüntülenecektir. Varsayılan olarak (komut parametresiz girildiğinde) dosyanın öğeleri /var/log/lastlog kullanıcı kimlik numaraları sırasına göre çıkarılacaktır. -u oturum açma-adı seçeneğini belirtirseniz, yalnızca belirtilen kullanıcının son oturum açma zamanı ile ilgili bilgiler görüntülenecektir. -t gün seçeneğini belirterek sadece son günlerin kayıtlarını alırsınız. Kullanıcı henüz oturum açmadıysa, terminal adı ve son oturum açma zamanı yerine "**Hiç oturum açmadı**" dizesi gösterilecektir.

    Komutu yürütürken son kayıt yavaş bir bilgisayarda, bazı durumlarda komutun "askıda" olduğu görünebilir. Bunun nedeni, sistemde yalnızca iki kullanıcı (kök ve kullanıcı) kayıtlı olsa bile, dosyada /var/log/lastlog Sistemde çalışabilecek mümkün olan maksimum sayıda kullanıcı için alan tahsis edilir. Bu nedenle dosyada /var/log/lastlog giriş yapan kullanıcıların kimlik numaraları arasında büyük boşluklar olabilir. Bu tür aralıkları görüntülerken, program ekranda bilgi göstermez ve "asılı" bir izlenim vardır.

    Şu anda sistemde kimlerin çalıştığı hakkında bilgileri görüntülemek için komutları kullanın. w, kim ve kullanıcılar. Takım kullanıcılar yalnızca sistemde hangi kullanıcının çalıştığını bilmek istediğinizde, ancak hangi terminalden bağlandığı ve ne yaptığıyla ilgilenmediğinizde kullanılır. Kimin hangi terminalden giriş yaptığını bilmek istiyorsanız, komutu kullanın. kim. Bu komut bir dosyadan bilgi yazdırır. /var/run/utmp. Bir dosyadan veri çıkarmaya zorlayabilirsiniz /var/log/wtmp(veya mantıklı olduğu başka bir dosya), bu dosyanın adını Komut satırı. Ancak çıktıda yine de yalnızca kullanıcı adını, kullanıcının oturum açtığı terminalin bir göstergesini, oturum açma saatini ve oturum açma durumunda uzak bilgisayar, bu bilgisayarın adı.

    Komut tarafından önemli ölçüde daha fazla bilgi görüntülenir w. Çıktısında, geçerli saati, sistemin ne kadar süredir çalıştığını, sistemde şu anda kaç kullanıcının oturum açtığını ve son dakika, 5 ve 15 dakikadaki ortalama sistem yükünü göreceksiniz. Daha sonra her kullanıcı için çıktı verir:

  • Kullanıcı adı,
  • terminal adı,
  • uzak ana bilgisayar adı
  • girişten bu yana geçen süre
  • bu terminalin kullanılmadığı süre (boş zaman),
  • bu terminalden başlatılan tüm işlemler tarafından harcanan toplam süre (sütun JCPU),
  • Kullanıcı tarafından başlatılan işlemlerin sonuncusunun çalıştığı süre (PCPU grafiği),
  • kullanıcı tarafından şu anda hangi programın yürütüldüğü hakkında bilgi (tüm parametrelerle bir komut başlatmak için bir komut satırı şeklinde).

    Daha önce de belirtildiği gibi, komut w bir dosyada saklanan bilgileri yazdırır utmp. Bu arada, liderlik adam sıradan kullanıcıların dosyaya yazma erişiminin reddedilmesi gerektiğini belirtir utmp, çünkü birçok sistem programları(açıklanamayan bir nedenden dolayı) bütünlüğüne bağlıdır. kafa karıştırma riskiyle karşı karşıyasın sistem dosyaları istatistikler ve herhangi bir kullanıcının utmp dosyasına yazmasına izin verirseniz sistem dosyalarında değişiklik yapın.

    Diğer programların günlük dosyaları

    Daha önce bahsettiğimiz bu dosyalara ek olarak, ayrı programlar tarafından oluşturulan başka protokol dosyaları da vardır. En tipik örnekler daemon protokolleridir. samba, ftpd veya httpd ayrı dosyalarda tutulur. Bu programlardan bazıları, protokollerini dizinin alt dizinlerinde oluşturur. /var/log/, diğerleri protokolleri başka yerlere kaydeder. Ve bu dosyaların yapısı, sistem tarafından oluşturulan dosyaların yapısından önemli ölçüde farklı olabilir. sistem günlüğü. Örneğin sunucu protokolünden birkaç satır vereceğim. Apaçi bilgisayarımda çalışıyor: 192.168.36.21 - - "GET /ve/papers/new/log/ HTTP/1.1" 200 1774 "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0 . 0) Gecko/20020530" 192.168.36.21 - - "GET /icons/back.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0 ) Gecko/20020530" 192.168.36.21 - - "GET /icons/folder.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko / 20020530" 192.168.36.21 - - "GET /icons/text.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530 " 192.168.36.21 - - "GET /ve/papers/new/log/protok_lovim.htm HTTP/1.1" 200 46597 "http://linux/ve/papers/new/log/" "Mozilla/5.0 (X11; U ; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /bugtraq.css HTTP/1.1" 404 279 "http://linux/ve/papers/new/log/protok_lovim .htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/bug1.gif HTTP/1.1" 404 280 " http ://linux/ve/papers/new/lo g/protok_lovim.htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" Gördüğünüz gibi, bu günlük dosyasının yapısı sistem günlüklerinde gördüklerimizden önemli ölçüde farklıdır.

    Samba sunucusu, ana sunucu çalışma protokolüne ek olarak bir alt dizinde oluşturur. /var/log/samba farklı durumlar için bir dizi günlük dosyası, özellikle bu sunucu tarafından sağlanan kaynakları kullanmasına izin verilen kullanıcıların her biri için ayrı dosyalar. Böyle bir dosyadan aşağıdaki iki giriş alınır:

    smbd/service.c:make_connection(550) linux (192.168.36.10) hizmete genel kullanıcı olarak kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.168.36.10) bağlanır. 36.10) kamuya kapalı bağlantı Yukarıdaki örnekler, biraz İngilizce okuyabilirseniz ve kayıtların yapısını biraz anlarsanız, günlük dosyalarından birçok yararlı bilgi çıkarabileceğinizi gösterir. Sadece "atık kaya" tortularının tamamından - önemsiz olmayan bir görev olan devasa ardışık günlük dosyalarından - çıkarılması gerekir. Bu nedenle protokol analizi için özel yazılım araçları geliştirilmiştir.

    Protokolleri işlemek için araçlar

    Protokol analizi için birçok farklı program ve betik geliştirilmiştir. kendimi sınırlayacağım kısa açıklama böyle iki anlam: günlük izle ve kol saati.

    günlük izle standart Red Hat Linux dağıtımında bulunan bir Perl betiğidir. Bu makalenin hazırlandığı sırada, bu programın 4.1 sürümü geliştiricinin web sitesinde yayınlandı (ve o Kirk Bauer).

    Bu programın arkasındaki temel fikir, günlük dosyasının, günlükten belirtilen kriterleri karşılayan tüm satırları (yani mesajları) çıkaran bir filtreden geçirilmesidir. Sonuçlar, belirtilen kullanıcıya e-posta ile gönderilir (varsayılan olarak kök). Filtreler herhangi bir programlama dilinde yazılabilir, ancak paket yazarı Perl'i tercih eder. Filtreler, stdin'den veri okuyacak ve sonucu stdout'a çıkaracak şekilde yazılmalıdır.

    Ana kullanım günlük izle ana komut dosyasına bir bağlantı eklemekten oluşur ( /etc/log.d/scripts/logwatch.pl) günlük yürütmeye neden olan /etc/cron.daily dizinine günlük izle varsayılan ayarlarla. Komut dosyasının logrotate'den önce çalışması için bağlantıya "00" ile başlayan bir ad verilir (örneğin, 00-logwatch).

    Ancak betiği komut satırından da çalıştırabilirsiniz. Tabii ki, bilgi çıktı parametresini değiştirmediyseniz, çalışmasının sonucu içinde aranmalıdır. posta kutusu süper kullanıcı Bu sonuçları ekranda görmek istiyorsanız komut satırında parametreyi belirtmelisiniz. --Yazdır- stdout'a bir rapor yazdırın.

    Komut dosyasını çalıştırmak için genel biçim:

    /etc/log.d/scripts/logwatch.pl [--detay seviye ] [--log dosyası günlük grubu ] [--hizmet hizmet adı ] [--baskı] [-mailto adres ] [--kayıt etmek Dosya adı ] [--arşivler] [--aralık tarih aralığı ]

    Varsayılan seçenekler /etc/log.d/logwatch.conf dosyasında depolanır, yorumlar komut satırı seçeneklerinin anlamını anlamayı mümkün kılar:

    • LogDir - dosya adlarının dikkate alındığı dizin;
    • MailTo - raporun kime gönderileceği;
    • Yazdır - raporu postayla göndermek yerine stdout'a yazdırın;
    • Kaydet - raporu postayla göndermek yerine belirtilen dosyaya kaydedin;
    • Arşivler - yalnızca işlemekle kalmayın güncel sürümler günlükler, aynı zamanda logrotate tarafından oluşturulan eski kopyalar;
    • Aralık - belirtilen zaman aralığını işle: Tümü, Bugün, Dün (dünün takvim günü);
    • Ayrıntı - rapor ayrıntı düzeyi: 0'dan 10'a veya Düşük, Orta, Yüksek;
    • Hizmet - /etc/log.d/scripts/services/ dizinindeki tümü veya filtre adı (birden çok filtre belirtilebilir);
    • LogFile - Günlük grubunun tümü veya adı (birden çok grup belirtilebilir).

    Senaryo hakkında daha fazla bilgi günlük izle içinde bulacaksınız.

    Makale, günlük dosyalarını işlemek için Mandrake Linux dağıtımında bulunan başka bir komut dosyasını açıklar. Bu komut dosyası denir kol saati("Basit İZLEYİCİ") ve ayrıca Perl'de yazılmıştır.

    İş yönetimi kol saati varsayılan olarak tek bir yapılandırma dosyasıyla yapılır $HOME/.swatchrc. Bu dosya, metin örneklerini (düzenli ifadeler biçiminde) içerir. kol saati günlük dosyalarına bakacaktır. Bu tür her kalıbı bir eylem takip eder. kol saati desenle eşleşen metni bulursa almalıdır.

    Örneğin, çok uzun bir dosya adı istendiğinde web sunucunuza her arabellek taşması saldırısı girişiminde bulunulduğunda uyarılmak istiyorsunuz. Ve biliyorsunuz ki bu gibi durumlarda günlük dosyasında /var/apache/error.log"Dosya adı çok uzun" kelimelerini içeren bir mesaj belirir. Bu durumda dosyanızda .swatchrc aşağıdaki ifadeyi ekleyin:

    Watchfor /Dosya adı çok uzun/posta [e-posta korumalı], konu=BufferOverflow_attempt

    Burada programın daha ayrıntılı bir açıklamasını vermeyeceğim. kol saati. Hevesli bir makale buna adanmıştır ve programın kendisi web sitesinde bulunabilir. sadece belirtmek istiyorum ve kol saati, ve günlük izle belirli bir karakter dizisi (imza) için protokolü aramaya indirgenen oldukça ilkel bir protokol dosyası işleme algoritması uygular. Bu arada, ilk olarak, böyle bir dizinin varlığı genellikle henüz bir saldırganın izinsiz girişini göstermez ve ikinci olarak, yetkin bir saldırgan, etkinliğinin izlerini silmekle ilgilenebilir. Söz konusu ürünlerin bir diğer bariz dezavantajı, yalnızca bir programa göre piyasaya sürüldüklerinden "gecikmeli modda" çalışmalarıdır. Ve davetsiz misafirlere karşı mücadele, sisteme girme girişimlerine derhal yanıt vererek "gerçek zamanlı olarak" yapılmalıdır. Bu nedenle ticari ürünler, sürekli çalışan ve "akıllı" protokol analiz algoritmalarını uygulayan izleme sistemleri sunar. Bu algoritmalar, mesaj akışının istatistiksel analizine ve sistemin normal davranışından istatistiksel olarak önemli sapmalarının belirlenmesine dayanır.

    Bu bölümün sonunda, SecurityLab.ru web sitesinin (http://www.securitylab.ru/tools/?ID=22111) protokolleri işlemek için çeşitli yazılım araçlarının web sitelerine bağlantıların bir listesini içerdiğini belirtmek isterim. Bu araçların kısa bir açıklaması. Farklı programları deneyebilir ve size uygun olanı seçebilirsiniz.

    Günlük Dosyası Döndürme

    Tabii sistem yoğun kullanılıyorsa log dosyalarının hızla büyüdüğünü anlıyorsunuz. Bu da disk alanı israfına neden olur. Ayrıca protokollerin "evcilleştirilmesi" sorunu vardır. Red Hat Linux bu sorunu bir komut dosyasıyla çözer. logrotate, dizinde bulunan /etc/cron.daily, ve bu nedenle arka plan programı tarafından çalıştırılır cron günlük. Bu komut dosyası, yalnızca sistem günlüklerini işlemenize izin vermez sistem günlüğü ama aynı zamanda diğer programlar.

    Senaryo logrotate günlük dosyalarının büyümesini izler ve belirtilen boyutu (veya belirtilen zaman aralığından sonra) aşmaları durumunda bu dosyaların sözde rotasyonunu sağlar. Döndürme, sıralı kopyalamadan başka bir şey değildir önceki sürümler dosyaları şu şekilde arşivleyin:

  • mesajlar.2 -> mesajlar.3
  • mesajlar.1 -> mesajlar.2
  • mesajlar.0 -> mesajlar.1
  • mesajlar -> mesajlar.0
    ve sonraki mesajları kaydetmek için yeni bir mesaj dosyası oluşturmak.

    Komut dosyası tarafından işlenecek dosyaların listesi logrotate ve bu işlemenin parametreleri, birkaç tane olabilen konfigürasyon dosyaları tarafından belirlenir. Yapılandırma dosyalarının adları, komut dosyası başlatma komut satırında belirtilir (aşağıdaki başlatma seçeneklerine bakın). Red Hat Linux'ta, varsayılan olarak, yapılandırma dosyaları olarak logrotate dosya kullanıldı /etc/logrotate.conf, bu şöyle görünebilir:

    Haftalık döndürme 4 sıkıştırma oluşturma dahil /etc/logrotate.d /var/log/wtmp /var/log/lastlog (aylık oluşturma 0664 root utmp döndürme 1 )

    Bu dosya, bir komut dosyası için herhangi bir yapılandırma dosyası gibidir. logrotate birkaç bölümden oluşmaktadır. İlk bölüm, tüm günlükler için varsayılan seçenekleri ayarlayan genel seçenekleri (her satırda bir tane) tanımlar. Aşağıdaki bölümler, bir dizi günlük dosyası için yerel seçenekleri tanımlar. Bu dosyaların adları bölümün ilk satırında listelenir ve ardından yerel parametreler, yalnızca belirtilen dosyalar işlenirken geçerli olan küme parantezleri içinde ayarlanır (ayrıca her satıra bir parametre). Günlük dosya adları, boşluk veya diğer özel karakterler içeriyorsa, kabuk kurallarına göre alıntılanabilir. Bir boşlukla ayrılmış birden çok dosya adı veya dosya adı deseni belirtebilirsiniz (şablonlar ayrıca kabuk kurallarına da uyar). Her bölümün işlenmesi tek bir eylem olarak ele alınır. "#" ile başlayan satırlar yorumdur. Yerel ayarlar, genel ayarlara göre önceliklidir.

    Verilen örnek yapılandırma dosyasında, önce global parametreler açıklanır ve ardından ayrı bir bölümde /var/log/wtmp ve /var/log/lastlog dosyalarının işlenmesine yönelik parametreler açıklanır. Ayrıca global parametreler arasında dizine bir link verilir. /etc/logrotate.d, her paketin günlükleri için yerel ayarları yazdığı.

    Genel ayarlar bölümünde, ilk olarak dosya döndürme kriterlerini belirleyen aşağıdaki parametrelerden biri ayarlanır:

  • günlük- Serideki versiyonların değişimi günlük olarak gerçekleşir,
  • haftalık- sürüm değişiklikleri haftalık,
  • aylık- sürüm değişiklikleri aylık,
  • boyut bayt - günlük boyutu belirtilen bayt sayısını aşarsa sürüm değişikliği gerçekleşir; "k" - kilobayt - ve "M" - megabayt son eklerini kullanabilirsiniz)

  • ve parametre Dahil etmek, ardından başka bir (ek) yapılandırma dosyasının adı veya hatta bir dizin adı gelir. İkinci durumda, belirtilen dizindeki tüm dosyalar, alt dizinler, özel dosyalar ve hariç tutma listesinden son ekleri olan dosyalar hariç, komut dosyası için yapılandırma dosyaları olarak kabul edilir. logrotate(direktif Dahil etmek bir dosya grubu için işleme parametrelerini belirten bir bölüm içinde kullanılamaz).

    Parametre döndürmek numara hem global hem de yerel parametreler arasında bulunabilir ve kaç tane eski sürümün saklanması gerektiğini belirler; sayı 0 ise, protokolün arşivlenmiş sürümleri oluşturulmaz.

    parametre ayarlanmışsa kompres, daha sonra eski sürümler gzip ile sıkıştırılır ve belirtilmişse sıkıştırma yok- sıkıştırmazlar. Parametre cmd'yi sıkıştır hangi sıkıştırma programının kullanılacağını belirlemenizi sağlar (varsayılan gzip'tir) ve sıkıştırmayı aç cmd açma programını belirtir (varsayılan ungzip'tir). sıkıştırma seçenekleri sıkıştırma programının parametrelerini ayarlar; varsayılan "-9", yani gzip için maksimum sıkıştırma. parametreyi kullanma sıkıştırılmış metin için son eki değiştirebilirsiniz sıkıştırılmış dosyalar ve parametre uzantı sonek döndürme sırasında dosya adlarına eklenecek bir sonek belirtir (sıkıştırma son ekinden önce).

    Konfigürasyon dosyalarında bulunan anahtar kelimeler arasında sonradan döndürmek ve önceden döndürmek, yapılandırma dosyalarına kabuk komut dosyalarını dahil etmek için açma parantezleri görevi görür. Konfigürasyon dosyasının tüm satırları satırdan sonradan döndürmekçizgiye kadar son yazı günlük dosyası sürümünü değiştirme işleminden sonra kabuk komutları olarak yürütülür. Buna göre, hattan tüm satırlar önceden döndürmekçizgiye kadar son yazı günlük dosyaları döndürülmeden önce yürütülür. Bu komut dosyalarını kullanarak, döndürme sırasında günlük dosyalarını işlemek için çeşitli prosedürler düzenleyebilirsiniz.

    Yapılandırma dosyasının diğer parametrelerini kullanarak, günlük dosyalarına erişim haklarını geçersiz kılabilirsiniz (bu parametre ayarlanmazsa, eski günlük dosyasının öznitelikleri kullanılır); kayıt sisteminin işleyişi hakkında kime hata mesajlarının gönderileceğini belirtin; belirtilen kullanıcıya günlüğün bir arşiv kopyasını gönderin; sürüm değişiklikleri sırasında protokollerin taşınacağı dizini ayarlayın (dizin aynı fiziksel cihaz/var/log olarak) veya dizin için bir dışlama sonekleri listesi ayarlayın Dahil etmek. Detaylı Açıklama bu özellikleri ve seçenekleri (ve ayrıca belirtilmeyenleri) komutla bulacaksınız manlogrotate.

    Daha önce de belirtildiği gibi, ek yapılandırma dosyaları logrotate komut dosyası başlatma komut satırında belirtilebilir. İsteğe bağlı sayıda yapılandırma dosyası veya dizin adı belirtebilirsiniz. Bu listedeki dosya ve dizin adları basit boşluklarla ayrılır. Aşağıdaki yapılandırma dosyasında belirtilen seçenekler, önceki dosyada belirtilen seçeneklerin anlamlarını geçersiz kıldığından, listedeki adların sırası önemlidir. Yapılandırma dizinindeki dosyaların sırası tanımlı değil.

    Başlatma komut satırında aşağıdaki seçenekleri de belirtebilirsiniz:

    • -D- hata ayıklama modu, gerçek bir değişiklik yapılmaz,
    • -F- olsa bile değişiklik yapın logrotate ihtiyacı görmez - işlenen günlükler listesindeki değişiklikler için kullanılır,
    • adam günlük izle
    • Mick Bauer, "Paranoid Penguen: renk örneği: Uyanık ama Tembel için Otomatik Günlük İzleme"
    • RFC 3164. C. Lonvick, BSD Syslog Protokolü, Ağustos 2001.
    • RFC 3195. D. New, M. Rose, syslog için Güvenilir Teslimat, Kasım 2001.
    • Başına. S. Lapshansky, "Şeytan sistemi izliyor"
    • Denis Kolisnichenko,

    Sistem günlüğü protokolü ve destek yazılımı, sistem günlüğündeki (günlükler, sistem konsolu) olaylar hakkındaki bilgilerin kaydedilmesini ve bunların ağ üzerinden günlük sunucusuna iletilmesini, mesajların kaynağına ve önemine göre sıralanmasını ve işlenmesini sağlar. Makale, syslog protokolünü, Solaris ve Linux'taki uygulamasını (syslogd), Cisco IOS'u ve yardımcı araçları açıklar: logrotate, logwatch.

    Sistemin bileşenleri, bir mesaj üreteci (aygıt veya süreç), bir değişim protokolü, bir mesaj toplayıcı (toplayıcı, sistem günlüğü sunucusu), bir röle (röle, bir veya daha fazla üreticiden mesajları alır ve bunları bir veya daha fazla toplayıcıya aktarır veya aktarır). aşağıdaki röleler). Jeneratör (veya iletirken röle) alıcının röle mi yoksa toplayıcı mı olduğunu bilmez, bir mesajı birkaç alıcıya iletebilir, mesajın kendisini işleyebilir (örneğin, bir dosyaya yazma).

    Sistem günlüğü protokolü, mesaj sahteciliğine karşı herhangi bir koruma içermez. Bundan daha kötü, UDP protokolünün kullanılması, saldırganların herhangi bir ana bilgisayar adına mesaj göndermesine izin verir. LAN, sahte yerel adreslere sahip paketleri almaya karşı korumalı (IOS ACL, ipchains) olmalıdır (ancak bu, sahte mesajların LAN'ın içinden gönderilmesini engellemez) ve 514/udp numaralı bağlantı noktasında dışarıdan paketler almasına karşı korumalıdır (IOS ACL, ipchains). Yanlış mesajlarla disk taşması vakaları bilinmektedir.

    Sistem günlüğü protokolü ve UDP, garantili teslimat (ağ tıkanıklığı nedeniyle mesajlar kaybolabilir veya engellenebilir, bozuk mesajlar uyarı yapılmadan silinebilir), doğru teslimat sırası (bir işlem sonlandırma mesajı bir işlem başlatma mesajından önce gelebilir), öncelikli teslimat sağlamaz.

    Mesajlar açık metin olarak iletildiği için gizliliği sağlanmamaktadır.

    Mesaj oluşturucuyu ayarlarken yanlış bir toplayıcı veya aktarma adresi belirtirseniz, hata mesajı olmaz - mesajlar silinir (veya başka birinin günlüğüne yazılır;).

    Yanlış yapılandırılmış röleler tarafından mesaj iletim döngüsünü engellemenin hiçbir yolu yoktur.

    RFC 3195, TCP üzerinden (syslog-conn, 601) doğru sırada garantili teslimat sağlayan yeni bir protokol önerir. Uygulama bana bilinmiyor. Standart sistem günlüğü biçimindeki iletileri saran XML, SMTP tarzı komutlar ve dönüş kodlarının ve MIME (BEEP) başlıklarının korkunç bir karışımı. İki mod kullanılır - RAW (mevcut UDP protokolüne benzer) ve COOKED (mesajlar alanlara göre yapılandırılmıştır). BEEP, kimlik doğrulama, bütünlük ve gizlilik (SASL, TLS) sağlamanıza olanak tanır.

    Syslog-sign RFC projesi, önceki mesajların bir bloğunun dijital imzasını içeren özel mesajlar üreterek, standart syslog protokolünü ve formatını koruyarak ve UDP kullanarak kimlik doğrulama, mesaj sıralama, mesaj bütünlüğü ve eksik mesajların tespitini sağlamayı önerir. SHA1, OpenPGP DSA tarafından kullanılır.

    514/UDP portu mesajları almak için kullanılır. İleti aktarımı için kaynak bağlantı noktası 514'ün kullanılması da önerilir. Mesaj bir metin dizisidir ve 1024 bayttan uzun olamaz, aksi takdirde kesilebilir ve hatta atılabilir. 514 numaralı bağlantı noktasına gönderilen hatalı biçimlendirilmiş bir mesaj bile bir sistem günlüğü mesajı olarak ele alınmalıdır. Ancak, röle mesajı daha fazla gönderirse, ona standart başlıkları (muhtemelen 1024 bayta kısaltarak) eklemesi gerekir - KULLANICI, BİLDİRİM, yerel saati ve mesaj kaynağının basit adı.

    Mesaj, mesajın kaynağı (tesis) ve mesajın önem düzeyi (Önem düzeyi) hakkındaki bilgileri kodlayan bir PRI alanıyla başlar. Bunu zaman (TIMESTAMP), bir boşluk, ondalık gösterimde (HOSTNAME) ana bilgisayar adı veya IP adresi, bir boşluk, US-ASCII'de (0x20 - 0x7e) özel bir mesaj metni (MSG) takip eder.

    Ana bilgisayar adı (basit, FQDN değil!), mesaj oluşturucu tarafından bilindiği şekilde yazılır. Aygıtın farklı IP adreslerine sahip birden fazla arabirimi varsa, bunlardan herhangi biri ana bilgisayar adı veya adresi olarak kullanılabilir.

    İleti gövdesi (MSG) genellikle iletiyi yayınlayan programı veya işlemi ve iletinin gövdesini (İÇERİK) belirten bir etiket (TAG) içerir. Etiket Latin harfleri ve sayıları içerebilir. İleti gövdesinin başlangıcı, genellikle iki nokta üst üste veya açık köşeli parantez olmak üzere ilk özel karakterle belirlenir. Örneğin, Cisco IOS etiket olarak bir mesaj sıra numarası ve iki nokta üst üste kullanırken, Unix basit bir program adı kullanır (mesaj gövdesi köşeli parantez içinde bir işlem numarası ve iki nokta üst üste ile başlar).

    sistem günlüğü 514/UDP numaralı bağlantı noktasından ve yerel kaynaklardan (soket /dev/log) iletileri alır, ileti kaynağına ve önem düzeyine göre yönlendirir. Mesajları günlüğe, konsola, terminale, başka bir sunucuya göndermenize izin verir. Ek bir kaynak MARK türü tanıtıldı (normal işaretler, bilgi)

    Her günlük satırı, boşluklarla ayrılmış alanlardan oluşan tek bir mesaj girişi içerir:

    • standart metin biçiminde tarih (syslog mesajından TIMESTAMP alanı)
    • ana bilgisayar adı (fqdn veya steno, sistem günlüğü mesajından HOSTNAME alanı)
    • mesaj metni (syslog mesajındaki ETİKET ve İÇERİK alanları)

    Başlatma parametreleri:

    • -a ek dinleme soketi (cinleri chroot etmek için kullanışlıdır; birden fazla olabilir)
    • -D(hata ayıklama modu)
    • -F yapılandırma-dosya-adı (varsayılan, /etc/syslog.conf)
    • -H(döngüden kaçınmak için uzak ana bilgisayarlardan alınan iletilerin uzak ana bilgisayara yazılmak üzere iletilmediği olağan davranışını değiştirin)
    • -l ana bilgisayar listesi (adları FQDN olarak yazılmaması gereken ana bilgisayarların listesi; iki nokta üst üste ile ayrılmış)
    • -m dakika (düzenli geçici girişler için aralık; varsayılan 20'dir; 0 ise, hiç yapmayın)
    • -n
    • -P dinleme soketi (varsayılan: /dev/günlük)
    • -r(uzak ana bilgisayarlardan mesaj almaya izin verin; güvenlik duvarı aralık olmalıdır; 514/udp için sistem günlüğü /etc/services içinde tanımlanmalıdır)
    • -s alan listesi (ana bilgisayar adlarını belirtilen etki alanı adlarından kırp; iki nokta üst üste ile ayır; varsayılan, sistem günlüğü sunucusu etki alanıyla eşleşen etki alanını kırpıyor)
    • -v
    • -x(adresinden bir ana bilgisayar adını belirlemeyi yasaklar, bir DNS sunucusuyla aynı ana bilgisayar üzerinde çalışırken kilitlenmeyi önler)

    Kullanılan dosyalar:

    • /etc/syslog.conf- yapılandırma dosyası (başlangıçta parametreye göre değiştirildi) -F)
    • /dev/günlük- yerel mesajların okunduğu soket (başlangıçta parametre ile değiştirilir) -P)
    • /var/run/syslogd.pid- süreç kimliği

    Sinyallere tepki:

    • SIGHUP - yeniden başlat (tüm dosyaları kapatır, yapılandırma dosyasını yeniden okur)
    • SIGTERM - kapatma
    • SIGINT, SIGQUIT - hata ayıklama devre dışıysa çık
    • SIGUSR1 - hata ayıklamayı etkinleştir/devre dışı bırak (yalnızca -d anahtarını kullanırken)

    Kök olarak çalışır. Dosya izinlerini değiştirmez. Dosya oluşturmaya zorlanırsa 644 izinle oluşturur.Log'a erişimi kısıtlamak gerekirse ilgili dosyanın manuel olarak oluşturulması (veya erişim haklarının değiştirilmesi) gerekir. Özel problemler yaratır logrotate.

    Bir dizi ileti yönlendirme kuralını temsil eder. Her kural bir seçiciden ve sekmelerle (eski sistemlerde Solaris 5) veya boşluklarla (Linux) ayrılan bir eylemden oluşur. Günlüğe kaydedilecek bir mesaj (klogd'den, yerel veya uzak bir programdan) alındığında, syslogd, mesajın seçici tarafından belirtilen kalıpla eşleşip eşleşmediğini görmek için her kuralı kontrol eder. Eşleşirse, kuralda belirtilen işlem gerçekleştirilir. Bir mesaj için m. isteğe bağlı sayıda eylem gerçekleştirilmiştir (yani mesaj işleme ilk başarıda durmaz).

    Seçici, bir nokta ile ayrılmış iki bölümden oluşur: mesajın kaynağı ve önem düzeyi. Büyük ve küçük harfler ayırt edilmez. Sayıları da kullanabilirsiniz (bkz. /usr/include/syslog.h). Syslog.3'te tanımlanan kaynaklara ek olarak, belirtebilirsiniz işaret(normal zaman damgaları), güvenlik(eskimiş eş anlamlısı yetki). syslog.h'de tanımlanan önem düzeylerine ek olarak şunları kullanabilirsiniz: uyarmak(eş anlamlısı uyarı), hata(eş anlamlısı hata), panik(eş anlamlısı ortaya çıkmak). Seçicide belirtilen seviyeye eşit veya daha yüksek olan ve seçicide belirtilene eşit bir kaynağa sahip mesajlar uygun kabul edilir. Noktadan önceki yıldız işareti herhangi bir kaynağa, noktadan sonra herhangi bir düzeye karşılık gelir. Kelime Yok noktadan sonra - bu kaynak için seviye yok. Tek bir seçicide (virgülle ayrılmış) birden çok kaynak belirtebilirsiniz. Aynı satırda birden fazla seçici belirtilebilir. Anlamsal net değil: pozitif seçiciler kullanırsanız, mantıksal VEYA, eğer negatifse ( Yok ve bir ünlem işareti), ardından mantıksal VE.

    Yeni syslogd'da (linux), düzeyin önüne eşittir işareti koyabilirsiniz - yalnızca belirtilen düzeye sahip (ancak en yüksek olmayan) iletiler seçiciyle eşleşir; ünlem işareti - eşit veya daha yüksek bir düzeye sahip iletilerle eşleşmez; ünlem işareti ve eşittir - düzeyi belirtilen düzeye eşit olan iletilerle eşleşmez.

    Bir eylem olarak şunları belirtebilirsiniz:

    • normal dosya adı (kökten tam yol), adın önündeki eksi yazma senkronizasyonunu devre dışı bırakır
    • adlandırılmış kanallar - fifo (adın önüne dikey bir çubuk yerleştirilir), kanalın kendisi mkfifo komutuyla syslogd'u başlatmadan önce oluşturuldu
    • terminal veya konsol
    • @hostname (uzaktan günlük kaydı için iletileri iletin)
    • mesajın terminallerine gönderileceği kullanıcıların listesi (virgülle ayrılmış)
    • tüm terminallere mesaj göndermek için yıldız işareti (duvar)

    Yapılandırma dosyasını ayrıştırırken sistem günlüğü adresi karşılaştırır günlük barındırma(DNS ile değil, /etc/hosts içinde tanımlanır) bilgisayarınızın adresiyle birlikte ve eşleşirse değişkeni tanımlar LOGHOST. Syslog.conf daha sonra m4(1) makro işlemcisinden geçirilir. Temel olarak bu, aynı yapılandırma dosyasının istemci ve sunucu (sistem günlüğü açısından) ana bilgisayarlarda kullanılabilmesi için kullanılır.

    Prosedürü başlatın ve durdurun: /etc/init.d/syslog(/etc/rc?.d dizinlerinden ona bağlantılar). İşlem numarası şurada saklanır: /etc/syslog.pid.

    klogd, çekirdek mesajlarını okur (ya /proc/kmsg yoluyla ya da sistem çağrıları yoluyla), seviyeyi belirler, komut adreslerini program adlarına dönüştürür ve mesajı syslogd'a iletir.

    Başlatma parametreleri:

    • -c seviyesi(bu seviyedeki ve daha az ciddi mesajlar syslog'a gönderilir ve daha ciddi olanlar konsola gönderilir; varsayılan 7'dir; 0 belirtilemez)
    • -D(hata ayıklama modu)
    • -F Dosya adı (syslog yerine belirtilen dosyaya giriş yapın)
    • -Bence(zaten çalışan bir klogd'deki modül sembollerini yeniden yükle, bir modül her yüklendiğinde veya boşaltıldığında kullanılmalıdır; umarım şu anki insmod, rmmod ve modprobe sürümleri bunu kendileri yapar)
    • -BENCE(zaten çalışan klogd'da çekirdek ve modül sembollerini yeniden yükleyin)
    • -k Dosya adı (belirtilen dosyayı yerine çekirdek sembol tablosu olarak kullanın /boot/System.map)
    • -n(arka plana girmeyin; init'ten çalıştırmanız gerekir)
    • (tek seferlik mod - çekirdek arabelleğinde biriken tüm mesajları günlüğe kaydedin ve çıkın)
    • -P(her ihtimale karşı, adres çevirisi sırasında modül sembol tablosunu yeniden yükleyin - çekirdek bunu yapamayabilir)
    • -s(yalnızca sistem çağrılarını kullanın ve orijinal mesajları almak için /proc/kmsg'ye erişmeyin)
    • -v(versiyonu göster ve çık)
    • -x(adresleri adlara dönüştürmeyin)
    • -2 (çekirdek çökme mesajları - Hata! - iki kez gönderilir: adresten ada dönüştürmeden önce - ksymoops için - ve sonra)

    Çekirdek ileti düzeyleri (köşeli parantez içindeki sayılarla belirlenir ve sistem günlüğü önem düzeyine dönüştürülür, dosyaya çıktıktan sonra değişmez):

    • KERN_EMERG - 0 (sistem kullanılamaz)
    • KERN_ALERT - 1 (hemen önlem alınmalı)
    • KERN_CRIT - 2 (kritik koşullar)
    • KERN_ERR - 3 (hata koşulları)
    • KERN_WARNING - 4 (uyarı koşulları)
    • KERN_NOTICE - 5 (normal ancak önemli durum)
    • KERN_INFO - 6 (bilgi amaçlı)
    • KERN_DEBUG - 7 (hata ayıklama düzeyindeki mesajlar)

    Sinyallere tepki:

    • SIGINT, SIGKILL, SIGTERM ve SIGHUP - kapatma
    • SIGTSTP - günlüğe kaydetmeyi durdur
    • SIGCONT - özgeçmiş, muhtemelen başka bir tane seçerek
    • mesaj kaynağı (/proc/kmsg veya sistem çağrıları)
    • SIGUSR1 - modül sembollerini yeniden yükle
    • SIGUSR2 - çekirdek ve modül sembollerini yeniden yükle

    İşlem numarası şurada saklanır: /var/run/klogd.pid.

    Günlük başlatma: günlüğü aç- sonraki tüm mesajlara eklenen standart öneki belirtir (genellikle program adı, köşeli parantez içindeki işlem numarası ve iki nokta); kaynak ve seçenekler. yakın günlüğü- günlüğe kaydetmeyi sonlandır. sistem günlüğü- günlüğe kaydetme (printf'deki gibi kaynak, önem düzeyi ve satır biçimini gösterir).

    logrotate(sürüm 3.2-1/3.3.2-1/3.5.9) - büyüyen günlüklere karşı mücadele: döndürme (sürüm oluşturma), sıkıştırma, silme ve postalama. Günlük olarak cron tarafından çalıştır /etc/cron.daily/logrotate) ve belirtilen boyutu aşan veya belirtilen zaman aralığındaki günlükleri işlemenize olanak tanır. Yalnızca sistem günlüğü günlüklerini değil, diğer programları da işlemenize olanak tanır. parametreler:

    • [-D](hata ayıklama modu, gerçek değişiklik yok)
    • [-F](logrotate gerekli görmese bile değişiklik yapın - işlenen günlüklerin listesini değiştirirken kullanılır)
    • [-s durum-dosya-adı ] (günlüklerin mevcut durumu, çalıştırmalar arasında bu dosyada saklanır, varsayılan /var/lib/logrotate.status)
    • yapılandırma-dosya-adları (boşlukla ayrılmış adlar; sıra önemlidir; bir dizin adı belirtilmişse, içindeki her dosya bir yapılandırma dosyası olarak kabul edilir; RH dosyayı kullanır /etc/logrotate.conf ve dizin /etc/logrotate.d)

    Yapılandırma dosyası, tüm günlükler için varsayılan seçenekleri ayarlayan genel seçenekleri (her satırda bir tane) tanımlar. İşlenecek her bir günlük dizisi için, yerel seçenekler, her satırda bir tane olacak şekilde küme parantezleri içinde yerel seçenekler tarafından takip edilen temel dosya adı belirtilerek belirtilir. Bir dosya adı, boşluklar ve diğer özel karakterler içeriyorsa, kabuk kurallarına göre alıntılanabilir. Bir boşlukla ayrılmış birden çok dosya adı veya dosya adı deseni belirtebilirsiniz (şablonlar ayrıca kabuk kurallarına da uyar). Her bölümün işlenmesi tek bir eylem olarak ele alınır. "#" ile başlayan satırlar yorumdur. Aşağıdaki yapılandırma dosyasında belirtilen seçenekler, önceki dosyada belirtilen seçeneklerin anlamını geçersiz kılar. Yerel ayarlar, genel ayarlara göre önceliklidir. Yapılandırma dizinindeki dosyaların sırası tanımlı değil.

    parametreler:

    • kompres | sıkıştırma yok(eski sürümler gzip ile sıkıştırılır veya sıkıştırılmaz)
    • cmd'yi sıkıştır(sıkıştırma programını belirtir, varsayılan gzip'tir)
    • sıkıştırmayı aç cmd(açıcıyı ayarlar, varsayılan ungzip'tir)
    • sıkıştırılmış metin(sıkıştırılmış dosyalar için son eki ayarlar)
    • sıkıştırma seçenekleri(sıkıştırma programının parametrelerini ayarlar; varsayılan "-9"dur, yani gzip için maksimum sıkıştırma)
    • kopyalamak | nocopytruncate(genellikle eski sürüm yeniden adlandırılır ve günlüğün yeni bir sürümü oluşturulur; bu seçenekle, logrotate günlüğü yeni bir dosyaya kopyalar ve ardından eskisini keser; günlüğü oluşturan program nasıl kapatılacağını bilmiyorsa kullanılır Kopyalama ve kesme arasındaki aralıkta yapılan girişler kaybolur; Günlük programı ekleme modunu kullanmak yerine yalnızca dahili bir işaretçi kullanarak dosyaya yazarsa yardımcı olur mu?)
    • oluşturmak[ izinler sahip grup] | nocreate(derginin eski sürümünü yeniden adlandırdıktan hemen sonra ve aramadan önce sonradan döndürmek belirtilen niteliklerle yeni bir günlük oluşturulur - izinler chmod.2'de olduğu gibi sekizli olarak belirtilir; nitelikler belirtilmemişse, eski günlükten alınırlar)
    • günlük(serideki versiyon değişikliği günlük olarak gerçekleşir)
    • gecikme sıkıştırması | düğüm sıkıştırması(bazı programlar günlüğü hemen kapatmaz, bu durumda sıkıştırma bir sonraki döngüye ertelenmelidir)
    • hatalar e-posta (hataların kime bildirileceği)
    • uzantı sonek (sıkıştırma son ekinden önce döndürme sırasında dosya adlarına eklenen son eki belirtir)
    • eğer boş | notifempty(dosya boş olsa bile sürümleri değiştirin; varsayılan)
    • Dahil etmek Dosya adı | dizin adı (belirtilen dizindeki bir dosyanın veya tüm dosyaların metinsel olarak değiştirilmesi; alt dizinler, özel dosyalar ve dışlama listesindeki son ekleri olan dosyalar dahil edilmez; bir bölüm içinde kullanılamaz)
    • posta adres | isimsiz(sürüm değişikliği eski günlüğün silinmesini gerektirdiğinde, belirtilen adrese gönderin)
    • ilk posta(günlüğün silinmiş sürümünü değil, ilkini gönderin)
    • posta sonu(silinecek günlük sürümünü gönder; varsayılan)
    • eksik | nomissingok(günlük eksikse hata mesajları göndermeyin)
    • aylık(sürüm aylık olarak değişir)
    • eskidir dizin | noolddir(versiyon değişikliği sırasında, günlük belirtilen dizine taşınır; aynı fiziksel cihazda olmalıdır)
    • sonradan döndürmek son yazı sürüm değişikliği işleminden sonra kabuk komutları olarak yürütülür)
    • önceden döndürmek(satıra kadar tüm diğer satırlar son yazı sürüm değiştirme işleminden önce yürütülür)
    • döndürmek numara (kaç tane eski sürüm tutulmalı; 0 ise, hiçbiri)
    • boyut bayt (günlük boyutu belirtilen sayıyı aşarsa sürüm değişikliği gerçekleşir; "k" - kilobayt - ve "M" - megabayt soneklerini kullanabilirsiniz)
    • paylaşılan komut dosyaları | nosharedscripts(komutları yürütün önceden döndürmek ve sonradan döndürmek bölümünde açıklanan tüm dosyalar için yalnızca bir kez)
    • tabu metni [+ ] sonek listesi (için dışlama son eklerinin bir listesini ayarlama Dahil etmek; artı işareti belirtilirse, ekleme, aksi takdirde değiştirme; varsayılan: .rpmorig, .rpmsave, .rpmnew, ",v", .swp ve "~")
    • haftalık(sürüm haftalık olarak değişir)

    RH tarafından teslim edilir /etc/logrotate.conf/var/log/wtmp ve /var/log/lastlog için genel seçenekleri ve seçenekleri açıklar ve dizine atıfta bulunur /etc/logrotate.d, her paketin günlükleri için yerel ayarları yazdığı.

    logwatch, çok sayıda, büyük ve çeşitli günlüklerden (yalnızca syslog değil) faydalı bilgiler çıkarmak için programlar (filtreler olarak adlandırılır) yazmak için bir çerçevedir. "Paket", Red Hat Linux için tasarlanmış birkaç filtreyle birlikte gelir (bazı eski sürümler, çünkü xinetd yerine inetd'den bahsedilir), ancak bunları belirli bir duruma kendiniz uyarlamanız gerekecektir. Son değişiklik yazar tarafından Eylül 2000'de yapıldı, bu nedenle daha fazla gelişme beklenemez.

    Filtreler herhangi bir programlama dilinde yazılabilir, ancak paket yazarı Perl'i tercih eder. Filtreler, stdin'den veri okuyacak ve sonucu stdout'a çıkaracak şekilde yazılmalıdır. Filtreyi çağırmadan önce aşağıdaki ortam değişkenleri ayarlanır: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Ana program ayrıca perl ile yazılmıştır: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch, /usr/sbin/logwatch ve /etc/cron.daily/00-logwatch bunun sembolik bağlantılarıdır).

    dizin /etc/log.d/conf/logfiles/ bakımı yapılan hizmetlerin kayıtlarını depolayan günlük grubu yapılandırma dosyalarını içerir. Her grup ayrı bir dosyada açıklanmıştır grup ismi.conf, şunları belirtir:

    • LogFile = günlüğü veya adlandırma düzenini içeren dosyanın adı; birden çok ad veya desen belirtilebilir; isimler olabilir LogDir'e göre
    • Arşiv = günlüğün arşivlenmiş sürümünün logrotate tarafından oluşturulan dosyanın adı veya bir adlandırma modeli; birden çok ad veya desen belirtilebilir; isimler olabilir LogDir'e göre
    • filtre adları ( sadece bir kez, farklı gösterilse de!) itibaren /etc/log.d/scripts/shared/ olarak
      *filtre adı = parametreler örneğin, standart sistem günlüğü biçimindeyse günlüğü tarihe göre filtrelemek için şu satırı kullanın:
      *UygulaStdDate=

    dizin /etc/log.d/conf/services/ günlük girişlerini logwatch'ın işleyecekleri hizmetler için yapılandırma dosyalarını içerir. Her hizmet ayrı bir dosyada açıklanmıştır hizmet adı.conf, şunları belirtir:

    • LogFile = günlük grubu adı
    • filtre adları /etc/log.d/scripts/shared/ olarak
      *filtre adı = parametreler , hizmet filtresinden önce başlatıldı
    • $ortam-değişken-adı = anlam

    dizin /etc/log.d/scripts/logfiles/ günlük gruplarını işlemek için filtreler içerir: bir günlük grubunu işlerken dizindeki tüm dosyalar /etc/log.d/scripts/logfiles/ grup ismi filtreler olarak kullanılır.

    dizin /etc/log.d/scripts/services/ belirli hizmetlerin kayıtlarını işlemek için filtreler içerir.

    dizin /etc/log.d/scripts/shared/ günlük grubu yapılandırma dosyalarında kullanılan genel filtreleri içerir:

    • applicationstddate - syslog biçiminde yazılmışsa günlüğü gerekli tarihe göre filtreler (burada ve tarihe göre özel filtrelerde, çağrı tarihinden önce LANG= ekleyin, aksi takdirde Mar hiçbir şekilde Mar ile çakışmaz;)
    • expandrepeat - "tekrarlanan son mesaj" satırlarını, önceki satırdaki mesaj metniyle karşılık gelen satır sayısına dönüştürür
    • onlycontains - yalnızca belirtilen dizeyi içeren günlük satırlarını bırakır ("$*" etrafına tırnak işaretleri koydum)
    • onlyservice - belirtilen hizmetle ilgili satırları syslog biçimindeki günlükten seçer (servis adı bir parametre olarak iletilir)
    • kaldır - yalnızca belirtilen satırı içermeyen sistem günlüğü günlük satırlarını bırakır ( "$*" etrafına tırnak işaretleri koydum ve kaldır1, kaldır2, vb. çünkü bir satırda egrep için birkaç alt kalıbı nasıl belirteceğimi anlamadım; bu arada, parametreler kabukta değiştirilir, bu nedenle özel karakterler de kullanılamaz)
    • removeheaders - standart alanları (tarih, saat, ana bilgisayar adı, hizmet etiketi ve işlem numarası) kaldırın
    • removeservice - belirtilen hizmetle ilgili olmayan satırları sistem günlüğünden kaldırır (servis adı parametre olarak iletilir)

    Varsayılan parametreler /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf ile sembolik bir bağlantısı vardır) dosyasında saklanır, içindeki yorumlar anlamı anlamayı mümkün kılar parametrelerin:

    • LogDir - dosya adlarının dikkate alındığı dizin
    • MailTo - raporun kime gönderileceği
    • Yazdır - raporu postayla göndermek yerine stdout'a yazdırın
    • Kaydet - raporu postayla göndermek yerine, belirtilen dosyaya kaydeder
    • Arşivler - logrotate tarafından oluşturulan günlüklerin sürümlerini kullanın
    • Aralık - dikkate alınan zaman aralığı: Tümü, Bugün, Dün (dünün takvim günü)
    • Ayrıntı - rapor ayrıntı düzeyi: 0'dan 10'a veya Düşük, Orta, Yüksek
    • Hizmet - /etc/log.d/scripts/services/ dizinindeki tümü veya filtre adı (birden çok filtre belirtilebilir)
    • LogFile - Tümü veya günlük grubu adı (birden çok grup belirtilebilir)

    Başlatma parametreleri:

    • --detay seviye (rapor ayrıntı düzeyi: yüksek, orta veya düşük)
    • --log dosyası günlük grubu (yalnızca bu grubun günlüklerini işleyin; grup, yapılandırma dosyasında sembolik bir adla belirtilir; birden çok grup belirtilebilir)
    • --hizmet hizmet adı (yalnızca bu hizmetle ilgili günlük girişlerini işleyin; hizmet, yapılandırma dosyasında sembolik bir adla belirtilir; birden çok hizmet belirtilebilir; ad Herşey tüm hizmetler için kayıt işlemeye neden olur)
    • --Yazdır(stdout'a bildir)
    • --mailto adres (raporu belirtilen adrese gönderin)
    • --kayıt etmek Dosya adı (belirtilen dosyaya rapor yaz)
    • --arşivler(günlüklerin yalnızca güncel sürümlerini değil, aynı zamanda logrotate tarafından oluşturulan eski kopyaları da işleyin)
    • --Aralık tarih aralığı (yalnızca günlüklerdeki verilen zaman aralığına ait girişleri işleyin: Dün, Bugün, Herşey)

    Ana kullanım 00-logwatch dosyasını (logrotate'den önce çalıştırmak için "00" ile başlar) /etc/cron.daily dizinine eklemektir, bu da logwatch'ın varsayılan seçeneklerle günlük çalışmasına neden olur.

    Ne yazık ki, tüm filtreler, günlüklerin hizmetin çalıştığı aynı ana bilgisayarda yazılmasını sağlamak için tasarlanmıştır.

    Tüm günlükler bir bilgisayarda tutulur (paranoyaksanız, aynı anda iki sunucuya günlük yazabilirsiniz).

    Resmi bir kaynak adı ile gerçek bir cihaz veya program arasındaki yazışma:

    • local0-Cisco
    • local3 - ftp (özel bir kaynak adı var ama Solaris 2.5 bilmiyor)
    • local4 - muhasebe için ayrılmıştır
    • local5 - POP3/IMAP
    • local6-tac_plus>

    Sunucunun 514/udp portu için açık bir ekranı olmalıdır (paketlerin kaynak adreslerini sınırlayabilirsiniz, ancak bu sadece kazalara karşı yardımcı olacaktır). Syslogd'u başlatmak (/etc/rc.d/init.d/syslog veya /etc/sysconfig/syslog içindeki seçenekler) "-r -m 0" anahtarlarıyla (ve aynı bilgisayarda çalışıyorsa "-x" ile) olmalıdır Dns sunucusu). "-2 -c 1" anahtarları ile klogd'yi başlatmak. syslog.conf'u kurma:

    • *.crit - terminallere CRIT önem seviyesi ve üzeri mesajların çıktısını alın ve ayrı bir dosyaya yazın (chmod 600), mesajlarınızı yedek sunucuya gönderin; sendmail, mesajları almayı kritik olarak değerlendirir
    • kern - tüm seviyelerdeki mesajlar için bir kern dosyası oluşturun (chmod 600)
    • mail - tüm seviyelerdeki mesajlar için bir posta dosyası oluşturun (senkronizasyon yok)
    • auth, authpriv - tüm seviyelerdeki mesajlar için güvenli bir dosya oluşturun (chmod 600)
    • haberler - haber dizinindeki her önem düzeyi için ayrı bir dosya oluşturun (senkronizasyon olmadan hata ayıklayın)
    • cron - tüm seviyelerdeki mesajlar için bir cron dosyası oluşturun (RH 6.2 ve Solaris 2.5'teki cron, sistem günlüğünün nasıl kullanılacağını bilmiyor)
    • local0 - cisco dizinindeki her bir önem düzeyi için ayrı bir dosya oluşturun (senkronizasyon olmadan hata ve altı)
    • local3 - ftp dizinindeki her bir önem düzeyi için ayrı bir dosya oluşturun (eşitleme olmadan bilgi ve hata ayıklama)
    • local5 - tüm seviyelerdeki mesajlar için imap.log dosyası oluşturun
    • local6 - tüm seviyelerdeki mesajlar için tac_plus.log dosyası oluşturun
    • local7 - boot.log dosyası (sistemi başlatırken ve syslogd ve klogd'yi başlatırken veya durdururken mesajlar)
    • Yukarıda tanımlanan dosyalardan birinde yer almayan INFO seviyesi ve üzerindeki tüm mesajlar, mesaj dosyasına yazın (chmod 600)

    İstemci bilgisayarlarda, syslog'u, tüm mesajların syslog sunucusuna iletilmesi, hata mesajlarının /var/log/syslog'da çoğaltılması, kritik durum mesajlarının konsolda, kullanıcı terminallerinde kopyalanması için yapılandırırız. Linux bilgisayarlarda, önyükleme mesajlarını yerel bir dosyaya da (local7, boot.log) boşaltın. Yedek sistem günlüğü sunucusu, ağdan kritik düzeydeki mesajları almalı ve bunları bir dosyaya yazmalıdır (ekran deliği, "-r" çalıştırma anahtarı).

    logrotate: sonsuza kadar saklayın, sürümleri mümkün olduğunca nadiren değiştirin (squid hariç aylık), ayrı dizinlere atın (squid hariç) ve sıkıştırın (ftpd, linuxconf, sendfax hariç gecikmeli modda), hataları ve silinen dosyaları şuraya gönderin Ben. Syslog için parametreleri eşleştirin.

    Dosya adından önce bir çizgi karakteri (|) ile gelmek, fifo (ilk giren - ilk çıkar, ilk giren ilk çıkar) veya adlandırılmış boru mesaj alıcısı olarak Syslogd'u başlatmadan (veya yeniden başlatmadan) önce, mkfifo komutu kullanılarak bir fifo oluşturulmalıdır. Bazen hata ayıklama için fifo kullanılır.

    Terminal ve konsol

    /dev/console gibi terminaller.

    uzak makine

    İletileri başka bir ana bilgisayara iletmek için, ana bilgisayar adının önüne bir at işareti (@) koyun. Mesajların alıcı ana bilgisayardan iletilmediğine dikkat edin. (bu atamanın dosyadaki istemci ve sunucu üzerinde çalışması için /etc/hizmetler satır yazılmalıdır sistem günlüğü 514/udp ve UTP bağlantı noktası 514'ü açın

    kullanıcı listesi

    Mesaj alan kullanıcıların virgülle ayrılmış listesi (kullanıcı oturum açmışsa). Bu genellikle kök kullanıcıyı içerir.

    Tüm kayıtlı kullanıcılar

    Duvar komutunu kullanarak tüm kayıtlı kullanıcıları bilgilendirmek için yıldız karakterini (*) kullanın.

    Basit bir örnek sistem günlüğü.conf:

    # Tüm çekirdek mesajlarını konsola yazdırın. #kern.* /dev/console # E-postalar hariç tüm bilgi düzeyi veya daha yüksek günlükler ve # kimlik doğrulama mesajlarını ve cron arka plan programı mesajlarını kaydetmeyin! *.info;mail.none;authpriv.none;cron.none /var/log/messages # Gizli # kimlik doğrulama bilgisi içeren mesajları, seviyeleri ne olursa olsun ayrı bir dosyaya kaydedin. authpriv.* /var/log/secure # Posta sisteminden gelen tüm mesajlar ayrıca ayrı bir dosyaya yazılır. mail.* -/var/log/maillog # Zamanlayıcı mesajlarını /var/log/cron cron.* dosyasına günlüğe kaydet* /var/log/cron # Acil durum mesajları # tüm sistem kullanıcıları tarafından hemen alınmalıdır *.emerg * # Mesajları kaydet kritik seviye ve üstü haberleri ayrı bir dosyada. uucp,news.crit /var/log/spooler # Önyükleme mesajlarını boot.log local7'de saklayın.* /var/log/boot.log

    Birçok yapılandırma dosyasında olduğu gibi sözdizimi şöyledir:

    • # ile başlayan satırlar ve boş satırlar yok sayılır.
    • * sembolü, tüm kategorileri veya tüm öncelikleri belirtmek için kullanılabilir.
    • Yok özel anahtar sözcüğü, bu eylem için bu kategori için günlüğe kaydetmenin yapılmaması gerektiğini belirtir.
    • Dosya adından önce bir tire (bu örnekte -/var/log/maillog gibi), günlüğün her yazmadan sonra senkronize edilmemesi gerektiğini belirtir. Bir sistem çökmesi durumunda bilgileri kaybedebilirsiniz, ancak senkronizasyonu devre dışı bırakmak performansı artıracaktır.

    Yapılandırma dosyasının sözdiziminde, önceliği önceliğe koyabilirsiniz. işaret! eylemin uygulanmaması gerektiğini göstermek, bu seviyeden ve yukarısından. Benzer şekilde, öncelik ön eki olabilir işaret = kuralın yalnızca o düzey için geçerli olduğunu belirtmek için veya != kuralın bunun dışındaki tüm seviyeler için geçerli olduğunu göstermek için. Aşağıda birkaç örnek verilmiştir (man syslog.conf daha birçok örnek bulabilirsiniz):

    # Tüm çekirdek mesajlarını /var/log/kernel'e gönderin. # Tüm kritik ve daha yüksek seviyeli mesajları uzak sysloger makinesine ve konsola gönderin # Tüm bilgi, uyarı ve uyarı seviyesindeki mesajları /var/log/kernel-info'ya gönderin # kern.* /var/log/kernel kern.crit @sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # Bilgi düzeyi dışındaki tüm posta sistemi mesajlarını /var/log/mail'e gönderin. mail.*;mail.!=info /var/log/mail

    syslogd'un işini olabildiğince açık bir şekilde şema üzerinde göstermeye çalıştım:

    syslogd arka plan programının başlatılması

    Günlüğe kaydetme arka plan programının başlatılması, bir komut dosyası aracılığıyla sistem başlatma aşamasında başlatılır. /etc/rc.d/init.d/syslog, ancak başlatma seçeneklerini ayarlamak için bu komut dosyasını değiştirmeye gerek yoktur - sürüm 7.2'den itibaren başlatma seçenekleri ayrı bir yapılandırma dosyasından okunur /etc/sysconfig/syslog (/etc/default/syslogdebian'da).

    İşte bazı olası syslogd arka plan programı başlatma parametreleri:

    • -a /klasör/soket- ek bir dinleme soketi belirtme (önceden bir soket oluşturmayı unutmayın)
    • -D- hata ayıklama modu. Bu durumda, arka plan programı arka plana gitmez ve tüm mesajları mevcut terminale gönderir;
    • -F yapılandırma-dosya-adı. Varsayılan /etc/syslog.conf yerine kullanılacak alternatif bir yapılandırma dosyasının adını belirtir;
    • -l ana bilgisayar listesi- adları tam alan adıyla yazılmaması gereken ana bilgisayarların bir listesini ayarlamak (FQDN - Tam Qwalified Etki Alanı Adı);
    • -m dakika- bu seçenek olmadan çalışan sysklogd, her 20 dakikada bir kategori işareti (zaman damgaları) mesajlarını günlüğe kaydeder. -m seçeneğiyle, işaretler arasındaki aralığı değiştirebilir veya bu tür mesajların verilmesini tamamen durdurabilirsiniz;
    • -p soketi- alternatif bir UNIX soketi ayarlama (varsayılan dinleme /dev/log yerine);
    • -r- uzak ana bilgisayarlardan mesaj alma izni;
    • -x- DNS sunucusu ile aynı ana bilgisayar üzerinde çalışırken donmayı önlemek için ana bilgisayar adının adresine göre belirlenmesinin yasaklanması.
    • -v- versiyonu göster ve işi bitir

    Syslogd arka plan programını başlattıktan sonra bir durum dosyası oluşturulur /var/lock/subsys/syslog sıfır uzunluk ve işlem kimliğine sahip bir dosya /var/run/syslogd.pid.

    komutu ile
    kill -SIGNAL `cat /var/run/syslogd.pid`

    gönderilebilir syslogd arka plan programı aşağıdaki sinyallerden biri: SIGHUP- arka plan programının yeniden başlatılması; SIGTERM- iş bitimi; SIGUSR1- hata ayıklama modunu etkinleştirin/devre dışı bırakın.

    Aslında, sistemde iki günlüğe kaydetme arka plan programı başlatıldı - sistem günlüğü ve klogd. Her iki arka plan programı da pakete dahildir sistem günlüğü.

    klogd arka plan programı meydana gelen olayların günlüğe kaydedilmesinden sorumludur. sistem çekirdeği. Ayrı bir klogd arka plan programı ihtiyacı, çekirdeğin standart syslog işlevini kullanamamasıdır. Bunun nedeni, standart C kitaplıklarının (syslog işlevini içeren kitaplık dahil) yalnızca ortak uygulamalar. Çekirdeğin de günlüğe kaydetme işlevlerine ihtiyacı olduğundan, uygulamalar tarafından kullanılamayan kendi kitaplıklarını içerir. Bu nedenle, çekirdek kendi mesaj oluşturma mekanizmasını kullanır.

    klogd arka plan programı bu mesajların işlenmesini organize etmek için tasarlanmıştır. Prensipte, bu işlemleri, bu mesajları bir dosyaya yazmak gibi, tamamen kendi başına ve syslogd'dan bağımsız olarak yapabilir, ancak çoğu durumda, çekirdekten gelen tüm mesajların aynı syslogd'a iletildiği varsayılan klogd ayarı kullanılır. şeytan.

    Otomatik döndürme (doldurulan dosyaları güncelleme) ve günlükleri arşivleme

    Zamanla, özellikle bir hizmet yoğun bir şekilde çalışırken günlük dosyası büyüme eğilimindedir. Buna göre logların boyutunu kontrol edebilmek gerekir. Bu kullanılarak yapılır komutları logrotate genellikle gerçekleştirilen cron arka plan programı. Aşağıdaki makalelerde cron'un çalışmasından bahsedeceğim. ana hedef komutları logrotate günlükleri periyodik olarak yedeklemek ve yeni temiz günlükler oluşturmaktır. Birkaç nesil günlük kaydedilir ve son nesil günlüğün süresi dolduğunda arşivlenebilir (sıkıştırılabilir). Sonuç, örneğin arşivlemeden sorumlu kişiye posta yoluyla gönderilebilir.

    Günlüklerin döndürülme ve arşivlenme sırasını belirlemek için şunu kullanın: yapılandırma dosyası /etc/logrotate.conf . Farklı günlükler için, örneğin günlük, haftalık veya aylık gibi farklı dönemler ayarlayabilir, ayrıca biriken nesillerin sayısını ayarlayabilir ve ayrıca arşivlerin kopyalarının arşiv yöneticisine gönderilip gönderilmeyeceğini ve gerekirse Öyleyse ne zaman. Aşağıda gösterilmiştir örnek /etc/logrotate.conf dosyası:

    # ilk varsayılan parametreleri ayarla (genel seçenekler) # günlük dosyalarını haftalık olarak güncelle # günlük arşivini son 4 hafta boyunca sakla döndür 4 # döndürmeden (güncelleme) sonra yeni (boş) dosya oluştur # kayıtlı dosyaların sıkıştırılmasını istiyorsan yorumunu kaldır #sıkıştır # belirtilen dizinden döndürme ayarlarını etkinleştir /etc/logrotate.d içerir # wtmp veya btmp'yi saklama -- günlük verileri döndürme ayarları şu şekildedir: /var/log/wtmp (eksik aylık oluşturma 0664 kök utmp döndürme 1 ) / var/log/btmp (eksik aylık oluşturma 0664 kök utmp döndürme 1 ) # belirli sistem günlükleri aşağıda yapılandırılabilir

    Global seçenekler en başa yerleştirilir dosya logrotate.conf. Başka bir yerde daha spesifik bir şey belirtilmedikçe, varsayılan olarak kullanılırlar. Örnekte, günlükler döndürülür haftalık ve yedekler tutulur dört haftalar. Bir dergi döndürülür döndürülmez, eski günlük yerine otomatik olarak yenisi oluşturulur. logrotate.conf dosyası diğer dosyalardan özellikleri içerebilir. Böylece dizindeki tüm dosyaları içerir. /etc/logrotate.d.

    Bu örnek ayrıca aşağıdakiler için özel kurallar içerir: /var/log/wtmp ve /var/log/btmp(sisteme girmek için başarılı ve başarısız girişimler hakkında bilgi depolama), rotasyonu aylık olarak gerçekleşir. Dosyalar eksikse hata mesajı verilmez. Yeni bir dosya oluşturulur ve yalnızca bir yedek tutulur.

    Bu örnekte, yedekleme son nesle ulaştığında, onunla ne yapılacağı tanımlanmadığı için silinir.

    Günlük yedeklemeleri günlükler belirli bir boyuta ulaştığında da oluşturulabilir ve bir yedekleme işleminden önce veya sonra çalıştırılmak üzere komut setlerinden komut dosyaları oluşturulabilir. Örnek:

    /var/log/messages (5 postayı döndür [e-posta korumalı] boyut 100k postrotate /usr/bin/killall -HUP syslogd endscript )

    Bu örnekte döndürme /var/log/mesajlar 100 KB boyutuna ulaştığında üretilir. Beş yedek toplanır ve en eskisinin süresi dolduğunda destek olmak adresine posta ile gönderilir. [e-posta korumalı] Postrotate komut sözcüğü, döndürme tamamlandıktan sonra bir HUP sinyali göndererek syslogd arka plan programını yeniden başlatan bir komut dosyası içerir. Komut dosyasını sonlandırmak için ve ayrıca önceden döndürülmüş bir komut dosyası varsa, uç komut dosyası komut sözcüğü gereklidir. Daha fazla bilgi için logrotate için man sayfalarına bakın.

    parametreler, yapılandırma dosyasında ayarlayın logrotate.conf:

    • kompres| sıkıştırma yok(eski sürümler gzip ile sıkıştırılır veya sıkıştırılmaz)
    • cmd'yi sıkıştır(sıkıştırma programını belirtir, varsayılan gzip'tir)
    • sıkıştırmayı aç cmd(açıcıyı ayarlar, varsayılan ungzip'tir)
    • sıkıştırılmış metin(sıkıştırılmış dosyalar için son eki ayarlar)
    • sıkıştırma seçenekleri(sıkıştırma programının parametrelerini ayarlar; varsayılan "-9"dur, yani gzip için maksimum sıkıştırma)
    • kopyalamak| nocopytruncate(genellikle eski sürüm yeniden adlandırılır ve günlüğün yeni bir sürümü oluşturulur; bu seçenekle, logrotate günlüğü yeni bir dosyaya kopyalar ve ardından eskisini keser; günlüğü oluşturan program nasıl kapatılacağını bilmiyorsa kullanılır it; kopyalama ve kesme arasındaki aralıkta yapılan girişler kaybolur; günlük programı ekleme modunu kullanmak yerine dosyaya yalnızca dahili bir işaretçi kullanarak yazarsa yardımcı olur mu?)
    • oluşturmak[izin sahibi-grubu] | nocreate(Günlüğün eski sürümünü yeniden adlandırdıktan hemen sonra ve postrotate çağrılmadan önce, belirtilen özniteliklerle yeni bir günlük oluşturulur - izinler chmod.2'de olduğu gibi sekizli olarak ayarlanır; öznitelikler belirtilmemişse, eski dergi)
    • günlük(serideki versiyon değişikliği günlük olarak gerçekleşir)
    • gecikme sıkıştırması| düğüm sıkıştırması(bazı programlar günlüğü hemen kapatmaz, bu durumda sıkıştırma bir sonraki döngüye ertelenmelidir)
    • hatalare-posta(hataların kime bildirileceği)
    • uzantısonek(sıkıştırma son ekinden önce döndürme sırasında dosya adlarına eklenen son eki belirtir)
    • eğer boş| notifempty(dosya boş olsa bile sürümleri değiştirin; varsayılan)
    • Dahil etmekDosya adı| dizin-adı (belirtilen dizindeki bir dosyayı veya tüm dosyaları metin olarak değiştirin; alt dizinler, özel dosyalar ve dışlama listesindeki son ekleri olan dosyalar dahil edilmez; bir bölüm içinde kullanılamaz)
    • postaadres| isimsiz(sürüm değişikliği eski günlüğün silinmesini gerektirdiğinde, belirtilen adrese gönderin)
    • ilk posta(günlüğün silinmiş sürümünü değil, ilkini gönderin)
    • posta sonu(silinecek günlük sürümünü gönder; varsayılan)
    • eksik| nomissingok(günlük eksikse hata mesajları göndermeyin)
    • aylık(sürüm aylık olarak değişir)
    • eskidirdizin| noolddir(versiyon değişikliği sırasında, günlük belirtilen dizine taşınır; aynı fiziksel cihazda olmalıdır)
    • sonradan döndürmek(son kod satırına kadar olan tüm diğer satırlar, sürüm değiştirme işleminden sonra kabuk komutları olarak yürütülür)
    • önceden döndürmek(son kod satırına kadar olan tüm diğer satırlar, sürüm değiştirme işleminden önce yürütülür)
    • döndürmeknumara(kaç tane eski sürüm tutulmalı; 0 ise, hiçbiri)
    • boyutbayt(günlük boyutu belirtilen sayıyı aşarsa sürüm değişikliği gerçekleşir; "k" - kilobayt - ve "M" - megabayt soneklerini kullanabilirsiniz)
    • paylaşılan komut dosyaları| nosharedscripts(bölümde açıklanan tüm dosyalar için önceden döndür ve döndür komutlarını yalnızca bir kez yürütün)
    • tabu metni[+] sonek listesi(içermek için hariç tutma son eklerinin bir listesini ayarlama; artı işareti belirtilirse, ekleme, aksi takdirde değiştirme; varsayılan: .rpmorig, .rpmsave, .rpmnew, ",v", .swp ve "~")
    • haftalık(sürüm haftalık olarak değişir)

    Dergileri incelemek ve izlemek

    Günlük girişleri genellikle bir zaman damgası, açıklanan işlemin üzerinde çalıştığı ana bilgisayarın adı ve işlemin adını içerir. Günlükleri görüntüle Bir sayfalama programı kullanabilirsiniz, örneğin, az komutunu kullanarak belirli girdileri (örneğin, belirli bir arka plan programından gelen çekirdek mesajları) arayabilirsiniz. grep:

    # daha az /var/log/messages # grep "ppp" /var/log/messages | tail 17 Aralık 16:34:25 proxy pppd: Bağlantı sonlandırıldı. 17 Aralık 16:34:25 proxy pppd: Çıkış. 17 Aralık 16:35:57 proxy pppd: LCP, eş tarafından sonlandırıldı (^P]kV^@

    Bilgisayar sürekli çalışmayabilir ve geceleri diyelim ki kapanabilir. Bu nedenle, /var/log/messages içindeki girişler, bilgisayarın başlatılmasından kapanmasına kadar döngüsel olarak saklanır, bu mesajlardan görülebilir:

    17 Aralık 08:32:56 syslog-server syslogd 1.4-0: yeniden başlatma. 17 Aralık 08:32:56 syslog-server syslog: syslogd başladı başarılı oldu 17 Aralık 08:32:56 syslog-server kernel: klogd 1.4-0, günlük kaynağı = /proc/kmsg başladı. 17 Aralık 08:32:56 syslog-server syslog: klogd'yi başlatma başarılı

    17 Aralık 08:32:56 syslog-server kernel: Kernel komut satırı: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2 17 Aralık 08:32:56 syslog-server kernel: Bellek: 125652k/130560k mevcut (1365k çekirdek kodu, 4200k ayrılmış, 92k veri, 236k başlangıç, 0k highmem) 17 Aralık 08:32:56 syslog-sunucu çekirdeği: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz stepping 02

    Ayrıca, bu dosyada disk belleği hakkında bilgiler (disk geometrisi, bölüm yapısı ve kullanılan kesintiler hakkında bilgiler dahil), çevresel aygıtlar hakkında bilgiler, bireysel servislerin ve servislerin başlatılması hakkında, dosya sistemlerinin bağlanması ve kullanıcı oturum açma mesajları hakkında bilgiler bulabilirsiniz. yanı sıra hata mesajları.

    Bazen gerekli olabilir sistem günlüğü izleme güncel olayları aramak için Örneğin, nadiren meydana gelen bir olayı olduğu anda yakalamaya çalışabilirsiniz. Bu durumda, komutu kullanabilirsiniz. kuyruk seçeneği ile -F sistem günlüğünün içeriğini izlemek için. Örnek:

    # tail -f /var/log/mesajlar | grep syslog-server 17 Aralık 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17 Aralık 16:46:09 syslog-server pppd: Script /etc/ppp/ip-up tamamlandı (pid 12552), durum = 0x0 17 Aralık 16:46:49 syslog-sunucusu pptpd: CTRL: İstemci 85.175.197.65 kontrol bağlantısı 17 Aralık 16:46:49 syslog-sunucusu pptpd: CTRL: Çağrı başlatılıyor (pppd başlatılıyor, GRE açılışı) 17 Aralık 16:46:49 syslog-server pppd: Eklenti /usr/lib/pptpd/pptpd-logwtmp.so yüklendi.

    /etc/syslog.conf içinde belirtilen günlük dosyalarına ek olarak, syslogd başlatılmadan önce sistemin önyükleme süreci hakkında bilgi depolayan bir dosya gibi başka dosyalar da vardır. sırasıyla bir kullanıcının sisteme son girişi, tüm başarılı kullanıcı oturum açma işlemleri ve tüm başarısız kullanıcı oturum açma işlemleri hakkında bilgileri depolar. /var/log/ dizini, web sunucusu veya proxy sunucusu gibi arka plan programları için günlük dosyaları da içerebilir. Bu dosyaların biçimi, syslogd günlüklerine benzer.

    Son olarak bu protokolün çok güvenli olmadığını vurgulamak isterim çünkü. syslog, mesaj sahteciliğine karşı herhangi bir koruma içermez. Daha da kötüsü, UDP protokolünün kullanılması, saldırganların herhangi bir ana bilgisayar adına mesaj göndermesine izin verir. LAN'ınız, yanıltıcı yerel adreslere sahip paketleri almaya karşı korumalı olmalıdır (bu, yanıltıcı iletilerin LAN içinden gönderilmesini engellemese de) ve 514/udp numaralı bağlantı noktasında dışarıdan paketler almasına karşı korumalı olmalıdır. Yanlış mesajlarla disk taşması vakaları bilinmektedir.

    Sistem günlüğü protokolü ve UDP, garantili teslimat (ağ tıkanıklığı nedeniyle mesajlar kaybolabilir veya engellenebilir, bozuk mesajlar uyarı yapılmadan silinebilir), doğru teslimat sırası (bir işlem sonlandırma mesajı bir işlem başlatma mesajından önce gelebilir), öncelikli teslimat sağlamaz.

    Mesajlar açık metin olarak iletildiği için gizliliği sağlanmamaktadır.

    Mesaj oluşturucuyu ayarlarken yanlış bir toplayıcı veya aktarma adresi belirtirseniz, hata mesajı olmaz - mesajlar silinir (veya başka birinin günlüğüne yazılır).

    Sistem günlüğü protokolünü geliştirmek için birkaç proje önerilmiştir. Örneğin, RFC 3195, mesajların doğru sırada teslim edilmesini sağlayan TCP tabanlı bir günlük sistemi (syslog-conn) önerir. Syslog-sign projesi, standart syslog protokolünü ve formatını korurken ve UDP kullanarak önceki mesajların bir bloğunun dijital imzasını içeren özel mesajlar üreterek kimlik doğrulama, mesaj sıralama, mesaj bütünlüğü ve eksik mesajların tespitini sağlamayı teklif eder.

    Biraz özetleyelim:

    Linux, yerel sistem ve uzak sistemlerin olaylarını günlüğe kaydetmekten sorumlu tek bir arka plan programına sahiptir. Tüm olaylar, /dev/log soketinden, UDP bağlantı noktasından - 514'ten ve ayrıca çekirdekten mesajlar gönderen "yardımcı" klogd arka plan programından toplanır. Toplanan tüm mesajlar /etc/syslog.conf dosyasındaki kurallar aracılığıyla syslogd arka plan programı tarafından filtrelenir ve kurallara göre uygun hedeflere dağıtılır. Günlük dosyaları periyodik olarak "kesilir". Frekans, logrotate.conf dosyası ve sistem zamanlayıcı - cron tarafından çalıştırılan logrotate komutu tarafından belirlenir.

    Hepsi bugün için. Umarım her şeyi olabildiğince açık bir şekilde anlatmışımdır. Zamanla, makaleyi tamamlayacağım!

    Saygılarımla, Mc.Sim!

    SERGEY SUPRUNOV

    FreeBSD ipuçları: syslog kullanma

    - İzin verin yoldaşlar, tüm hareketleri yazdım!

    "Ofis yazıyor," dedi Ostap.

    I. Ilf, E. Petrov "12 sandalye".

    Herhangi bir sistemin ve özellikle sunucunun çalışmasının loglanması, yönetimin en önemli bileşenlerinden biridir. Sistemde bazı problemler olduğunda ilk baktığımız log dosyalarındadır. Oradan, şu veya bu programın beklendiği gibi çalıştığına güveniyoruz. Web uygulamaları geliştirirken, günlük dosyası hata ayıklama bilgisinin en önemli kaynağı haline gelir. Sistem bilgilerinin günlüğe kaydedilmesinden sorumlu olan syslog arka plan programının özellikleri hakkında tartışılacaktır.

    sistem günlüğü nedir

    Syslog, çeşitli işletim sistemi bileşenlerinden ve kullanıcı süreçlerinden günlük bilgilerini toplayan ve kaydeden merkezi bir hizmettir. Üçüncü taraf programlar, çoğu syslogd arka plan programı ile çalışacak şekilde yapılandırılabilse de, genellikle kendi günlük dosyalarıyla çalışabilir. Syslog kullanmanın avantajları, tek bir yapılandırma dosyası kullanarak gerekli bilgileri toplama sürecini yönetme becerisini içerir; bu, elde edilen günlük dosyalarının tekdüzeliğini sağlar ve sonuç olarak bunların yönetimini kolaylaştırır.

    Sistem günlüğü hizmeti, sistem başlangıcında otomatik olarak başlatılan syslogd arka plan programı tarafından sağlanır. Sürekli bellekte kalır, diğer işlemlerden gelen mesajları bekler ve ayarlarına göre işler.

    Her mesaj bir seviye ve bir kaynak (tesis) ile karakterize edilir. Seviye, mesajın sistem çalışması açısından önemini tanımlar. syslog.h dosyası aşağıdaki seviyeleri (öncelikleri) tanımlar:

    Tablo 1. Mesaj seviyeleri

    Seviye

    Açıklama

    ortaya çıkmak, panik

    "Panik" durumu

    uyarmak

    Acil müdahale gerektiren durum

    eleştiri

    Kritik durum

    hata, hata

    Diğer çalışma hataları

    uyarı, uyarı

    uyarılar

    farkına varmak

    Hata olmayan ancak not edilmesi gereken mesajlar

    bilgi

    Bilgi mesajları (normal çalışma)

    hata ayıklama

    Hata Ayıklama Bilgileri

    Tablo 1, mesaj düzeylerini azalan sırada listeler. Bu siparişe daha sonra yapılandırma dosyasının sözdizimi tartışılırken ihtiyaç duyulacaktır.

    Aynı satıra yazılan mesaj düzeyindeki gösterimler (örneğin, ortaya çıkan ve panik) eşanlamlıdır ve her ikisi de kullanılabilir. Ancak panik, hata ve uyar (tabloda ikinci sırada listelenmiştir) artık geçerli değildir ve yapılandırma dosyasını düzenlerken bunlardan kaçınılmalıdır. Bunun yerine sırasıyla ortaya çıkan, err ve uyarı kullanın.

    Olası mesaj kaynakları Tablo 2'de listelenmiştir:

    Tablo 2. Mesaj kaynakları

    Bir kaynak

    Açıklama

    çekirdek

    Çekirdek mesajları

    auth, authpriv

    güvenlik

    Güvenlik mesajları (ör. güvenlik duvarından)

    konsol

    Konsola gelen mesajlar (/dev/console )

    sistem günlüğü

    Yerel sistem günlüğü mesajları

    cron

    cron alt sistemi mesajları

    Zaman hizmeti mesajları

    Mesajlar FTP sunucuları

    Alt Sistem Mesajlarını Yazdır

    posta

    Posta mesajları

    Haberler

    Haber Servis Mesajları

    uucp

    Mesajlar UUCP

    arka plan programı

    Sistemde çalışan diğer daemon'lardan gelen mesajlar

    kullanıcı

    Kullanıcı işlem mesajları

    local0-local7

    Çeşitli kullanıcı ihtiyaçları için kullanılabilir (bazen sistem tarafından kullanılır)

    Bir uygulamayı syslog hizmetiyle çalışacak şekilde yapılandırırken, hangi özelliği kullandığını belirtin. Bazı programlar, kaynağı kendiniz belirlemenize izin verir. Örneğin, clamd arka plan programı (clamav antivirüsünün ana işlemi) varsayılan olarak local6'yı kullanır, ancak farklı bir kaynak belirtmenize izin verir (yapılandırma dosyasındaki LogFacility parametresi). Bazı durumlarda, kaynak olarak LOG_MAIL belirterek, mesajlarını posta servislerininkilerle birleştirmek faydalı olabilir.

    Daemon başlatma seçenekleri

    Başlangıç ​​seçeneklerinin tam listesi için syslogd kılavuz sayfasına bakın. Burada sadece bazılarını ele alacağız.

    Syslog, gelen mesajları günlük dosyalarına yazabilir (genellikle /var/log dizininde bulunur), bunları konsola veya bağlı kullanıcı terminaline gönderebilir, uzak bir ana bilgisayara iletebilir veya işlenmek üzere harici bir yardımcı programa iletebilir. .

    Ağ iletişimi için syslog, 514 numaralı bağlantı noktalarını (UDP ve TCP) kullanır. Hiçbir ek seçenek olmadan başlatılan syslogd, gelen iletileri bu bağlantı noktalarını dinler. -s anahtarı, gelen mesajları devre dışı bırakır, ancak syslogd'nin uzak ana bilgisayarlara mesaj gönderebilmesi için, 514 numaralı bağlantı noktalarındaki soketler hala giden bağlantılar için oluşturulur. Anahtarın (-ss) iki katına çıkarılması, giden bağlantıları da devre dışı bırakır.

    Varsayılan olarak, syslogd -s seçeneğiyle başlatılır (bkz. /etc/defaults/rc.conf, syslogd_flags seçeneği), bu nedenle gelen bağlantılar reddedilir. Birden çok makineye hizmet vermek için sunucunuzun syslog hizmetini kullanmak istiyorsanız, /etc/rc.conf dosyasına aşağıdaki satırı ekleyin:

    syslogd_flags= ””

    /etc/defaults/rc.conf içinde ayarlanan değeri geçersiz kılar ve syslogd gelen bağlantılara hizmet verebilir. Doğal olarak, bu durumda, yabancı ana bilgisayarların günlüklerinize herhangi bir şey yazma olasılığını ortadan kaldırarak gerekli güvenlik düzeyini sağlamak gerekir. -a anahtarı, gelen bağlantılarda kısıtlamalar belirlemenizi sağlar (bkz. man syslogd). Ayrıca, uygun şekilde yapılandırılmış bir güvenlik duvarı önemli bir rol oynar.

    Bir başka kullanışlı anahtar, -l, varsayılan /var/run/log'a ek olarak syslogd'nin dinlediği ek soket dosyalarını belirtmenize izin verir. Örneğin, syslog'un bir chroot ortamında çalışan programlara hizmet verebilmesi için bu anahtar gereklidir. Özellikle, BIND 9'dan beri bu şekilde çalışmaktadır. FreeBSD 5.3'te, syslogd aşağıdaki seçeneklerle başlatılır:

    # ps -balmumu | grep sistem günlüğü

    321?? Ss 0:01.67 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s

    Yapılandırma Dosyası Sözdizimi

    Günlük kaydı, /etc/syslog.conf dosyasında yapılandırılır. Sadece root kullanıcısının düzenleyebileceğini söylemeye gerek yok. Bu dosya iki tür dize içerir - bunlara koşullu olarak "filtreler" ve "kurallar" diyelim.

    Filtre dizisi, mesajları aşağıdaki kurallara tabi olacak programı veya ana bilgisayarı tanımlar. "!prog" (veya "#!prog") gibi bir filtre, aşağıdaki satırların belirtilen prog programı tarafından oluşturulan günlüklere atıfta bulunduğunu gösterir. Bu girdinin eş anlamlısı "!+prog"dur. "!-prog" satırı ise aşağıdaki kuralların prog programından gelenler dışındaki tüm mesajlar için geçerli olacağını söylüyor. “+” veya “-” işareti tüm liste için geçerliyken, virgülle ayrılmış birkaç program listelenmesine izin verilir.

    Filtre dizesi "+ana bilgisayar adı" olarak ayarlanırsa, belirtilen ana bilgisayar, sonraki kurallar tarafından işlenecek iletilerin kaynağı olarak kullanılacaktır. Programlarda olduğu gibi, "-" sembolü, kuralların belirtilen ana bilgisayardan gelenler dışındaki tüm mesajlara uygulanacağını belirtir. Virgülle ayrılmış bir ana bilgisayar listesi belirtebilirsiniz.

    Bir program veya ana bilgisayar olarak belirtilen "*" karakteri, önceden ayarlanmış filtreyi geçersiz kılar. Yani böyle bir satırdan sonra belirtilen kurallar tüm mesajlara uygulanacaktır. Ana bilgisayar veya program adı filtreleri birbirinden bağımsızdır ve aynı anda etkin olabilir. Örneğin:

    # Burada bulunan kurallar tüm mesajlar için geçerlidir

    ev sahibim

    # Kurallar, my.host'tan gelen tüm mesajlar için geçerlidir

    ağaç kesicisi

    # Kurallar, my.host ile günlükçüden gelen mesajlar için geçerlidir (ana bilgisayar filtresi hala etkindir)

    # Kurallar, my.host ile su'dan gelen mesajlar için geçerlidir

    # Kurallar, herhangi bir ana bilgisayardan gelen mesajlar için geçerlidir (ana bilgisayar filtresi kaldırıldı, program filtresi hala yürürlükte)

    # Kurallar tüm mesajlar için geçerlidir (program filtresi de iptal edilmiştir)

    Kural satırları şöyle görünür:

    tesis.CMPdüzey hedef

    Burada tesis mesajın kaynağıdır ("*" herhangi bir kaynağı belirtir), seviye bu kurala göre işlenecek mesajların seviyesidir. Düzey yerine belirtilen hizmet sözcüğü "none", iletilerin bu kaynaktan tamamen hariç tutulması talimatını verir.

    CMP bir karşılaştırma işlemidir (">", "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Hedef, mesajın nereye kaydedilmesi gerektiğini belirtir. Bu bir günlük dosyası ("/" ile başlayan tam yol belirtilir), uzak sunucu adresi ("@" sembolü ile başlar), kullanıcı adı (mesajlar bu kullanıcının bağlı olduğu terminale gönderilir) olabilir. Ayrıca mesaj, işlem için "|" ardışık düzen sembolünün kullanıldığı harici bir programa aktarılabilir.

    Bazı kural örnekleri

    Tüm çekirdek mesajları kern.log dosyasına gönderilecektir.

    kern.* /var/log/kern.log

    Tüm hata mesajları ile birlikte ortaya çıkan, uyarı ve kritik seviye mesajları all-err.log'a yerleştirilecektir. Günlük dosyası adından önceki kısa çizgiye dikkat edin. Varsayılan olarak, mesajlar bellekte arabelleğe alınır ve arabellek dolduğunda diske yazılır. Bu, dosya sistemi üzerindeki yükü azaltır, ancak makinenin çökmesi durumunda bazı bilgilerin kaybolmasına neden olabilir. Dosya adından önceki kısa çizgi, syslogd arka plan programının iletileri hemen diske yazmasına neden olur.

    *.err - /var/log/all-err.log

    Kullanıcı işlemlerinden hata ayıklama mesajları, vasya kullanıcısının şu anda bağlı olduğu terminalde görüntülenecektir.

    kullanıcı.debug

    Haber ve e-posta hizmetlerinden gelen tüm mesajlar, syslog.host.ru makinesinin 514. bağlantı noktasına iletilecektir.

    mail.*,haberler.* @syslog.host.ru

    Aşağıdaki uyarının tüm yazdırma hizmeti mesajları belirtilen dosyaya yerleştirilecektir. Daha önce belirtildiği gibi, varsayılan değer büyüktür veya eşittir ve ! ters çevrilir ve "daha az" ile değiştirilir. Belirli bir düzeyi hariç tutmak istiyorsanız, "!=" yapısını kullanmalısınız.

    lpr.!uyarı /var/log/printers.log

    Tesis seviyesi0 ve seviye3 ile hata ayıklama seviyesinin (ve sadece onun) mesajları bağlı tüm terminallerde görüntülenecektir.

    level0,level3.=hata ayıklama *

    Kritikten büyük (yani, ortaya çıkan ve uyarı) ve bildirimden küçük veya eşit (bildirim, bilgi ve hata ayıklama) zaman hizmeti mesajları, ntpuser ve kök kullanıcılarının terminallerine gönderilir.

    ntp.>kritik,<=notice ntpuser,root

    Mail servislerinden gelenler dışındaki tüm uyarı seviyesindeki mesajlar warn.log dosyasına yazılacaktır.

    *.=uyarı,mail.none /var/log/warn.log

    Bu durumda, kritik veya daha yüksek tüm mesajlar kök kullanıcıya e-posta ile gönderilecektir.

    *.kritik | mail -s "kritik mesaj" kökü

    Gördüğünüz gibi, yapılandırma dosyası formatı, aynı satırda birden fazla seviyenin, kaynağın ve hedefin listelenmesine izin verir, bu da yapılandırmayı daha esnek hale getirir. Düzenlemeden sonra değişikliklerin geçerli olması için, syslogd işlemine bir HUP sinyali göndermeniz gerekir:

    # kill –HUP `cat /var/run/syslog.pid`

    Belirli bir mesaj, yapılandırma dosyasındaki birkaç satırın eyleminin altına düşerse, her birine göre işleneceği belirtilmelidir. Örnek:

    mail.* /var/log/maillog

    *.=err /var/log/error.log

    Bu durumda, mail.err mesajları hem maillog'da hem de error.log'da sona erecektir.

    Yapılandırma dosyası derleme stratejisi

    Yapılandırma dosyasının incelemesini bitirirken, onu derleme stratejileri hakkında birkaç söz söyleyeceğim. Çok popüler olan “eğer çalışırsa” ek olarak, şartlı olarak “kaynağa göre” ve “hedefe göre” diyeceğimiz iki ana ayırt edilebilir.

    • Bir dizi GNU/Linux dağıtımında görülebilen ilk strateji, her mesaj kaynağı için farklı bir kural (veya farklı seviyelerdeki mesajlar farklı şekilde ele alınacaksa, kural grubu) yazmaktır. Avantajı, belirli servislerin mesajlarının nerede yazıldığını belirlemenin basitliğidir.
    • "Hedefe göre" stratejisi, mümkünse, mesajın her "alıcısı" için bir dosya gibi yalnızca bir satır oluşturmaktır. Bu yaklaşımı özellikle FreeBSD takip etmektedir. Sonuç olarak, belirli bir günlük dosyasına hangi bilgilerin yazıldığını belirlemek kolaydır, ancak örneğin, yapılandırma dosyası boyunca çekirdek mesajları için hedeflerin toplanması gerekir.

    kaydedici yardımcı programı

    Sistem, syslog hizmetine doğrudan komut satırından mesaj göndermenize izin veren bir günlükçü yardımcı programı içerir. Yapılandırma kurallarını test ederken ve çalışmalarını günlüğe kaydetmek için komut dosyaları geliştirirken kullanmak uygundur. Örnekler:

    user$ logger -p user.err “Kullanıcı programında hata!”

    user$ logger -h syslog.host.ru “Test edin”

    İlk örnek, yapılandırma dosyasına göre işlenecek olan err düzeyindeki tesis kullanıcısından bir mesaj gönderecektir. İkinci komut uzak ana bilgisayara bir mesaj gönderecek, varsayılan kaynak ve seviye user.notice olarak ayarlanacaktır.

    Dönme Mekanizmalarını Kullanma

    Yukarıda tartışılan günlüğe kaydetme mekanizması, günlük dosyalarının herhangi bir yönetimini sağlamaz. Mesajlar, yapılandırma dosyasında açıklanan kurallara göre basitçe bunlara yerleştirilir. Bu, günlük dosyalarının sürekli büyüyeceği ve hiçbir şey yapılmazsa, er ya da geç ilgili bölümün tüm kullanılabilir alanını dolduracakları anlamına gelir. Bunu önlemek için bir döndürme mekanizması kullanılır.

    Örneğin, debug.log dosyasının boyutu 100 MB'ı geçer geçmez, debug.log.0 olarak yeniden adlandırılır ve debug.log.0.bz2 olarak paketlenir. Bunun yerine, yeni bir debug.log oluşturulur. Ayrıca, yeni dosyanın boyutu da 100 MB'ye ulaştığında, debug.log.0.bz2, debug.log.1.bz2 olarak yeniden adlandırılır ve yukarıda açıklanan prosedür tekrarlanır. Sistem, en eskilerini silerek yalnızca belirli sayıda arşiv dosyasını saklar. İşte rotasyon budur.

    haber günlüğü yardımcı programı

    Bir FreeBSD sisteminde rotasyon, varsayılan olarak her saatin başında cron arka plan programı tarafından çalıştırılan newsyslog yardımcı programı tarafından gerçekleştirilir. /etc/crontab dosyasını düzenleyerek döndürme süresini değiştirebilirsiniz.

    Yukarıdaki örnekte belirtilen döndürme parametreleri (dosya boyutu, paketleme) ve diğer birçok parametre /etc/newsyslog.conf yapılandırma dosyasında ayarlanır. Döndürülmesi gereken her dosya için toplam dokuz alana sahip bir dize içerir: dosya adı, sahip ve grup, izinler, arşiv dosyası adındaki en büyük sayı, maksimum dosya boyutu, döndürme süresi, ek bayraklar ve dosya yolu Döndürüldükten sonra sinyalin gönderilmesi gereken uygulamanın PID dosyası ve gönderilecek sinyalin numarası. (Örneğin, işlem günlük dosyasını her zaman açık tutuyorsa, bir işleme sinyal göndermek gerekli olabilir; bu yapılmazsa, kullanılan dosya tanımlayıcı yeni oluşturulan dosyayla eşleşmeyecektir.) Bazı alanlar atlanabilir. . İşte tam ve "tipik" iki örnek:

    /var/log/pflog root:tekerlek 600 3 100 * JB /var/run/pflog.pid 1

    Bu kurala göre, boyutu 100 MB'yi (5. alan) geçer geçmez, zamana bakılmaksızın (6. alandaki "*" sembolü) pflog dosyasının üzerine yazılmalıdır. Arşiv dosyaları, pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2, vb.) gibi adlara sahip olacaktır ve X üçten fazla olamaz (4. alandaki parametre 3). J bayrağı, arşiv dosyasının bzip2 yardımcı programı kullanılarak sıkıştırılması gerektiğini belirtir. B bayrağı sayesinde arşivlenen ve yeni oluşturulan dosyalara dosya ikili olarak algılandığından rotasyon servis mesajları eklenmeyecektir. Yeni oluşturulan dosya, kök kullanıcıya ve tekerlek grubuna ait olacaktır (bu sahip varsayılan olarak ayarlandığından bu alan atlanabilir). İzinler rw------- (sayısal değer 600) olarak ayarlanacaktır, yani sadece dosya sahibi bu dosyayı okuyup yazabilecektir. Son olarak, günlük dosyasını yeniden açmak için PID'si /var/run/pflog.pid içinde depolanan işleme 1 (HUP) sinyali gönderilecektir.

    /var/log/maillog 640 7 * @T00J

    Bu kural, maillog dosyası için döndürme seçeneklerini belirler: boyutundan bağımsız olarak (5. alandaki yıldız işareti), dosyanın üzerine her gece 00:00'da yazılır (man newsyslog.conf dosyasında, saati belirtme biçimi şurada açıklanmıştır: yeterli ayrıntı). Arşiv paketlenmelidir, son 8 arşiv (0'dan 7'ye kadar numaralandırılmış) kaydedilecektir, yeni oluşturulan dosyanın sahibi kök kullanıcı olacaktır (varsayılan, bu nedenle sahip alanı atlanmıştır) ve rw-r--- -- izinler.

    Paketlenmiş günlük dosyalarını görüntülemek için zcat ve bzcat yardımcı programlarını (sırasıyla gzip ve bzip2 için) kullanabilirsiniz. Midnight Commander uygun yardımcı programları otomatik olarak çağırır.

    newsyslog.conf dosyasını düzenledikten sonra, herhangi bir yere sinyal gönderilmesine gerek yoktur - bir daha newsyslog çağrıldığında yapılandırma yeniden okunacaktır.

    Newsyslog yardımcı programının syslogd arka plan programına bağlı olmadığını unutmayın. Yani, ihtiyacı olan herhangi bir dosyayı döndürmek için kullanılabilir. Uygulamanın kendi başına tuttuğu günlükler (örneğin, istiridye veya squid günlükleri) için döndürme etkinleştirilirse, özellikle sahip ve erişim haklarını belirtirken dikkatli olun. Bunları yanlış belirtmek, rotasyondan sonra ayrıcalıksız bir kullanıcı olarak çalışan bir uygulamanın yeni oluşturulan dosyaya yazamamasına neden olabilir.

    Özetliyor

    Syslog sistemi, sistemde meydana gelen çeşitli olayları günlüğe kaydetmek için çok güçlü ve verimli bir araçtır. Varsayılan ayarlar oldukça dengelidir ve çoğu sistem için iyi çalışır. Bununla birlikte, sistem günlüğünün nasıl çalıştığını anlamak, günlük bilgilerini tam olarak ihtiyaçlarınıza göre yapılandırarak günlüğe kaydetme kalitesini önemli ölçüde artırmanıza olanak tanır.