การเข้าสู่ระบบใน Linux ไฟล์การกำหนดค่า syslogd daemon การบันทึกเครือข่าย
รายการ UNIX/LINUX daemons ทั่วไปในระบบปฏิบัติการ Windows เรียกว่าบริการที่สามารถใช้ในการแก้ไข UNIX/LINUX ต่างๆ ชื่อดีมอน UNIX/LINUX มักจะลงท้ายด้วยตัวอักษร งเป็นคำย่อของภาษาอังกฤษ ภูต คุณสามารถตรวจสอบว่ากระบวนการ/daemon ทำงานอยู่หรือไม่โดยใช้คำสั่ง top หรือ ps aux
ด้านล่างนี้เป็นรายชื่อปีศาจที่พบบ่อยที่สุดและพวกมัน คำอธิบายสั้น. รายการ UNIX/LINUX daemons ด้านล่างยังไม่สมบูรณ์/ครบถ้วน และระบบ UNIX/LINUX ของคุณอาจมีหนึ่งรายการ ทั้งหมดหรือหลายรายการแสดงหรือขาดไป ขึ้นอยู่กับเวอร์ชัน/ประเภท/การแก้ไข/การกำหนดค่าของระบบ UNIX/LINUX ของคุณและการติดตั้ง มันมีซอฟต์แวร์อยู่ด้วย
กระบวนการ/ดีมอน | คำอธิบายกระบวนการ/ดีมอน |
ตรวจสอบ | auditd เป็นองค์ประกอบการตรวจสอบสำหรับระบบ Linux เก็บรักษาบันทึกการตรวจสอบบนดิสก์ ซึ่งสามารถดูได้โดยใช้คำสั่ง ausearch และ aureport คำสั่ง auditctl อนุญาตให้คุณกำหนดคอนฟิกกฎการตรวจสอบ นอกจากนี้ เมื่อเริ่มต้นระบบ กฎที่อยู่ในไฟล์ /etc/audit.rules จะถูกโหลด พารามิเตอร์บางตัวของ daemon เองสามารถกำหนดค่าได้ในไฟล์ auditd.conf |
กรด | acpid (ACPI event daemon) - daemon สำหรับตอบสนองต่อเหตุการณ์ ACPI เช่นตอบสนองต่อการกดปุ่มเปิดปิดหรือปิดฝาแล็ปท็อป การจัดการพลังงานและการโต้ตอบระหว่าง Linux และ BIOS ผ่าน ACPI (การกำหนดค่าขั้นสูงและอินเทอร์เฟซพลังงาน) และ APM โหมด "สลีป" ของ ACPI: S1 - ทุกอย่างอยู่ในโหมดสลีป, CPU ในโหมดกิจกรรมขั้นต่ำ; S3 - "Suspend to RAM" - ทุกอย่างเข้าสู่โหมดสลีป CPU จะปิด S4 - "Suspend to Disk" ดัมพ์สถานะจะถูกบันทึกลงในดิสก์ ระบบถูกปิด หลังจากเปิดระบบจะถูกกู้คืนจากตำแหน่งก่อนหน้า S5 - ปิดซอฟต์แวร์ http://acpid.sourceforge.net/ |
ที่ | ดำเนินการคิวงานที่ (1) |
อัตโนมัติ | รูปแบบตารางอัตโนมัติ แผนที่เมาต์อัตโนมัติอาจเป็นไฟล์หรือตาราง NIS ที่อ้างอิงโดยตารางเมาต์อัตโนมัติหลัก (ดู auto.master(5)) ตารางอธิบายสถานที่ ระบบไฟล์ซึ่งจะถูกเมานต์ที่จุดเมานต์ฐานโดยอัตโนมัติ (ตั้งค่าในไฟล์ auto.master) เอกสารนี้อธิบายรูปแบบตารางดวงอาทิตย์ สำหรับรูปแบบอื่น (เช่น เฮเซียด) เอกสารนี้ไม่สามารถใช้ได้ แก้ไขตารางได้ทันที - การเปลี่ยนแปลงเหล่านี้จะถูกนำมาพิจารณาในการดำเนินการครั้งต่อไปด้วยตารางนี้ อย่างไรก็ตาม สิ่งนี้ใช้ไม่ได้กับตารางหลัก auto.master! |
ไบโอด | ทำงานร่วมกับ nfsd ระยะไกลเพื่อแก้ไขคำขอไคลเอ็นต์ NFS |
ผู้รับรอง | Certmonger daemon จะตรวจสอบและตรวจสอบใบรับรองการหมดอายุ และสามารถเลือกต่ออายุใบรับรองโดยใช้ CA ได้ สามารถจัดการกระบวนการลงทะเบียนทั้งหมดตั้งแต่การสร้างคีย์ไปจนถึงการลงทะเบียนและการต่ออายุ |
cgconfig | สคริปต์นี้รันยูทิลิตี้ cgconfigparser ซึ่งแยกวิเคราะห์และกำหนดค่าระบบไฟล์กลุ่มควบคุม (cgroup) สำหรับการวิเคราะห์ จะใช้ไฟล์คอนฟิกูเรชัน /etc/cgconfig.conf และพารามิเตอร์ที่กำหนดไว้ในไฟล์ |
ซีเกร็ด | Daemon จัดการกฎ cgroup :) |
ความถี่ซีพียู | สคริปต์โหลดโมดูลเคอร์เนลเพื่อควบคุมความถี่ของโปรเซสเซอร์ |
ความเร็วซีพียู | เปลี่ยนความถี่ CPU เพื่อประหยัดพลังงาน แล็ปท็อปและเดสก์ท็อปพีซีสมัยใหม่จำนวนมากรองรับเทคโนโลยีนี้ ผู้ใช้สามารถใช้งานได้กับโปรเซสเซอร์ Pentium-M, Centrino, AMD PowerNow, Transmetta, Intel SpeedStep, Athlon-64, Athlon-X2, Intel Core 2 ผู้ใช้แล็ปท็อปควรเปิดใช้งาน daemon ทิ้งไว้ ปิดใช้งาน daemon นี้หากคุณต้องการให้ CPU ใช้ค่าความถี่คงที่ |
ครอนด์ | |
ถ้วยd | เซิร์ฟเวอร์การพิมพ์ เช่นเดียวกับการเข้าถึงเครื่องพิมพ์ระยะไกล การเข้าถึงเครื่องพิมพ์ในพื้นที่ การเข้าถึงจากภายนอกสู่เครื่องพิมพ์ในพื้นที่ |
ดีบัส | ระบบสื่อสารระหว่างกระบวนการ ( อะนาล็อกที่กว้างขึ้นของ CORBA และ DCOP) |
dbus-เดมอน | Daemon สำหรับการทำงานกับบัสข้อมูล |
ดีเอชซีพีดี | Daemon สำหรับการกำหนดคอนฟิกูเรชัน TCP/IP แบบไดนามิกสำหรับไคลเอ็นต์ |
DNSMAQ | ดีมอนที่แคชชื่อ DNS และจัดเตรียมเซิร์ฟเวอร์ DHCP |
Earlysyslog | การรัน syslog daemon จัดให้มีการบันทึก |
ต้นxdm | การเริ่มต้น X Server |
เสียง | Sound daemon พร้อมรองรับการเข้าถึงการ์ดเสียงจากระยะไกล |
เอสดี | เซิร์ฟเวอร์เสียงสำหรับตัวจัดการหน้าต่างการตรัสรู้และสภาพแวดล้อม GNOME ESD จะผสมสตรีมเสียงของโปรแกรมที่ทำงานพร้อมกันหลายโปรแกรม และส่งออกสตรีมผลลัพธ์ไปยังการ์ดเสียง เป็นของแพ็คเกจ esound |
ครอบครัว | แฟม ( การตรวจสอบการเปลี่ยนแปลงไฟล์) - มอนิเตอร์การเปลี่ยนแปลงไฟล์ FAM daemon ถูกใช้โดยสภาพแวดล้อมเดสก์ท็อป เช่น GNOME, Xfce และ KDE เพื่อติดตามและแสดงการเปลี่ยนแปลงที่เกิดขึ้นกับระบบไฟล์ รวมอยู่ในแพ็คเกจครอบครัว มีคำอธิบายใน wiki.archlinux.org |
การควบคุมพัดลม | การควบคุมความเร็วการหมุนของตัวทำความเย็น CPU ส่วนหนึ่งของ lm_sensors |
fbset | สคริปต์ที่จำเป็นสำหรับ framebuffer ในการทำงาน กำหนดค่าการดำเนินการ รวมถึงการโหลดโมดูลเคอร์เนล |
งานเทศกาล | ปีศาจที่ทำให้โปรแกรมอ่านข้อความทำงานได้ |
นิ้ว | จัดเตรียมอินเทอร์เฟซเครือข่ายสำหรับโปรโตคอลนิ้ว เพื่อใช้กับคำสั่งนิ้ว |
บูตครั้งแรก | บริการนี้เฉพาะกับ Fedora เท่านั้น มันจะทำงานเพียงครั้งเดียวหลังการติดตั้งหลังจากการตั้งค่าการติดตั้ง (การตั้งรหัสผ่านรูท การเพิ่มผู้ใช้ ฯลฯ) สามารถปิดการใช้งานได้หลังการติดตั้งระบบ |
ftpd | บริการถ่ายโอนไฟล์ผ่านโปรโตคอล FTP |
ฟังก์ชั่น | หนึ่งในสคริปต์การเริ่มต้นระบบ Arch Linux อธิบายฟังก์ชันที่แทนที่ค่าที่ใช้เมื่อโหลดเข้าสู่ runlevel 3 สคริปต์จะใช้เฉพาะในกรณีที่ผู้ใช้ใช้ runlevel 5 ซึ่งเป็นส่วนหนึ่งของ initscripts |
จีพีเอ็ม | เซิร์ฟเวอร์เมาส์สำหรับคอนโซลและ xterm บรรจุอยู่ในแพ็คเกจชื่อเดียวกัน |
จีพีเอส | อินเทอร์เฟซสำหรับการสื่อสารกับอุปกรณ์ GPS ผู้ใช้ส่วนใหญ่สามารถปิดได้ |
ฮัลเดมอน, ฮัล | HAL ย่อมาจาก Hardware Abstraction Layer บริการสำคัญในการรวบรวมข้อมูลเกี่ยวกับอุปกรณ์จาก แหล่งที่มาที่แตกต่างกัน. ขอแนะนำให้เปิดใช้งานทิ้งไว้ |
หยุด | ปิดเครื่องและรีบูตสคริปต์ |
หยุด.ท้องถิ่น | สคริปต์ที่ต้องดำเนินการคำสั่งก่อนที่จะเริ่มการปิดระบบหรือรีบูต |
มีสุขภาพที่ดี | ตั้งค่าช่วงอุณหภูมิการทำงานของเมนบอร์ด/โปรเซสเซอร์และความเร็วการทำความเย็น มันเป็นหนึ่งในองค์ประกอบ lm_sensors |
ไฮม์ดัล-kdc | ศูนย์กระจายสินค้าที่สำคัญ รวมอยู่ในแพ็คเกจไฮม์ดัล |
httpd | อาปาเช่ เว็บเซิร์ฟเวอร์ ดีมอน |
ในนั้น | โปรแกรม Unix ที่สร้างกระบวนการอื่นๆ ทั้งหมด ตามค่าดีฟอลต์ init daemon มี 7 ระดับการดำเนินการ ซึ่งแต่ละระดับจะรันชุดบริการระบบที่กำหนดไว้ล่วงหน้า ระดับการวิ่ง: รายละเอียดเพิ่มเติมเกี่ยวกับระดับการทำงาน: น้อยกว่า /etc/inittab |
inetd | ตรวจสอบคำขอเครือข่าย หากคำขอถูกต้อง ให้เริ่มกระบวนการเบื้องหลังเพื่อให้บริการตามคำขอ บางระบบใช้เวอร์ชันขยาย - xinetd |
ไอพีเทเบิล | ไฟร์วอลล์มาตรฐานใน Linux แนะนำเป็นพิเศษสำหรับ การเชื่อมต่อโดยตรงไปยังอินเทอร์เน็ต (ผ่านสายเคเบิล, DSL, T1) ไม่แนะนำหากคุณใช้ไฟร์วอลล์ฮาร์ดแวร์เพิ่มเติม (Netgear, Linksys, D-Link ฯลฯ) |
ip6tables | บริการ iptables ทำงานโดยใช้โปรโตคอล IPv6 หากคุณปิดใช้งานการสนับสนุน IPv6 ควรปิดใช้งานบริการนี้ มิฉะนั้น แนะนำให้เปิดใช้งานทิ้งไว้ |
ไอรดา | จำเป็นต้องใช้ IrDA เพื่อรองรับอุปกรณ์ที่ทำงานผ่านอินฟราเรด ( แล็ปท็อป, พีดีเอ, โทรศัพท์มือถือ, เครื่องคิดเลข (หมายเหตุผู้แปล: เครื่องคิดเลข? o_O) ฯลฯ ผู้ใช้ส่วนใหญ่สามารถปิดได้ |
ไม่ถูกต้อง | ปีศาจสำหรับอินฟราเรด มาพร้อมกับ lirc-utils |
irqbalance, irq_balancer | ในระบบมัลติโปรเซสเซอร์ มันถูกใช้เพื่อกระจายการขัดจังหวะระหว่างโปรเซสเซอร์ ผู้ใช้ที่ไม่มีคอมพิวเตอร์/แล็ปท็อปแบบมัลติโปรเซสเซอร์สามารถปิดการใช้งาน daemon/บริการนี้ได้ การเปิดใช้งานบริการนี้บนคอมพิวเตอร์ที่มีโปรเซสเซอร์ตัวเดียวจะไม่มีผลใดๆ บนคอมพิวเตอร์เครื่องใหม่ที่มีโปรเซสเซอร์มากกว่าหนึ่งตัว (Intel Core 2 Duo, AMD X2) จะต้องเปิดใช้งานบริการนี้ |
อิฟมาน | ดีมอนมีหน้าที่รับผิดชอบในการติดตั้งอุปกรณ์ในระบบโดยอัตโนมัติ (ซีดี ไดรฟ์ USB ฯลฯ) |
jackd, แจ็ค-เสียง-การเชื่อมต่อ-ชุด | เซิร์ฟเวอร์เสียง |
เจ็กเซค | ให้การสนับสนุนสำหรับการเปิดและรันแอปพลิเคชันใน java - JAR จะใช้งานได้หากคุณติดตั้ง Java จาก Sun นี่เป็นทางเลือกและสามารถปิดใช้งานได้ |
จอยสติ๊ก | สคริปต์ที่โหลดโมดูลเคอร์เนลเพื่อให้จอยสติ๊กทำงานได้ |
แคดมายด์ | Daemon สำหรับกำหนดบัญชีที่มีสิทธิ์เข้าถึงฐานข้อมูล Kerberos และระดับการเข้าถึง มันเป็นหนึ่งในองค์ประกอบของแพ็คเกจไฮม์ดัล |
kdump | kdump - แสดงข้อมูลการติดตามเคอร์เนล คำสั่งแสดงไฟล์การติดตามเคอร์เนลที่สร้างด้วย ktrace(1) ในรูปแบบที่มนุษย์สามารถอ่านได้ โดยดีฟอลต์ ไฟล์ ktrace.out ในไดเร็กทอรีปัจจุบันจะถูกแสดง |
เคบีดี | การตั้งค่าแป้นพิมพ์ในเทอร์มินัลเสมือน |
เคดีเอ็ม | เคดีเอ็ม ( ตัวจัดการการแสดงผล KDE) เป็นหนึ่งในโปรแกรมในแพ็คเกจ kdebase ( รวมอยู่ใน KDE) ซึ่งให้ความสามารถในการเข้าสู่ระบบผ่านอินเทอร์เฟซแบบกราฟิก |
kpasswd | Daemon สำหรับการเปลี่ยนรหัสผ่านใน Kerberos มันเป็นหนึ่งในองค์ประกอบของแพ็คเกจไฮม์ดัล |
ksysguardd | KDE daemon สำหรับการตรวจสอบระบบ |
libvirtd | Daemon สำหรับจัดการเครื่องและเครือข่ายของแขก QEMU |
libvirt-แขก | สคริปต์ที่ทำให้ระบบปฏิบัติการของแขกเข้าสู่โหมดสลีปเมื่อปิดเครื่องและปลุกระบบใหม่เมื่อโหลด |
lircd | LIRC daemon ถอดรหัสสัญญาณที่มาจากพอร์ตอินฟราเรด มาพร้อมกับ lirc-utils |
licmd | LIRC daemon แปลสัญญาณเมาส์ มาพร้อมกับ lirc-utils |
lvm2-จอภาพ | Daemon สำหรับการมอนิเตอร์ LVM (การจัดการโลจิคัลวอลุ่ม) แนะนำหากคุณใช้ LVM ไม่เช่นนั้นให้ปิดการใช้งานไว้ |
แอลพีดี | “ Line Printer Daemon” - โปรโตคอลถูกใช้เพื่อจัดการสปูลการพิมพ์ |
บ้า | daemon ตรวจสอบอุปกรณ์ MD (ซอฟต์แวร์ RAID ใน Linux) |
mdmonitor และ mdmpd | daemons สองตัวนี้ใช้ในระบบจัดเก็บข้อมูลที่มีอาร์เรย์ RAID (อาร์เรย์สำรองของดิสก์ราคาถูก/อิสระ) Mdmonitor เริ่มต้น หยุด และรีสตาร์ท mdadm (การตรวจสอบและการจัดการอุปกรณ์แบบหลายเส้นทาง) บริการซอฟต์แวร์การตรวจสอบและการจัดการ RAID คุณจะต้องเรียกใช้บริการนี้หากระบบของคุณมีอุปกรณ์ RAID เท่านั้น |
บัสข้อความ | บริการสื่อสารระหว่างกระบวนการสำหรับ Linux องค์ประกอบที่สำคัญเพราะมันเชื่อมต่อกับ D-BUS ขอแนะนำเป็นอย่างยิ่งให้เปิดใช้งานทิ้งไว้ |
microcode_ctl, ไมโครโค้ด.ctl | บริการที่ช่วยให้คุณสามารถอัปเดตเฟิร์มแวร์ของโปรเซสเซอร์ Intel (Pentium Pro, PII, Celeron, PIII, Xeon, Pentium 4 เป็นต้น) การอัปเดตจะถูกบันทึกทุกครั้งที่คุณดาวน์โหลด ควรเปิดใช้งานถ้าคุณมีโปรเซสเซอร์ Intel เท่านั้น |
เอ็มซีล็อก, เอ็มซีล็อกด์ | ในการตรวจสอบปัญหาฮาร์ดแวร์ใน Linux เวอร์ชัน 64 บิต จะสะดวกในการใช้แพ็คเกจ mcelog ซึ่งจะวิเคราะห์สถานะ MCE (Machine Check Exception) ใน CPU ของ AMD และ Intel ซึ่งสามารถระบุปัญหาเกี่ยวกับหน่วยความจำและแคช CPU ข้อผิดพลาดในการแลกเปลี่ยนข้อมูลระหว่าง CPU และชิปเซ็ตเมนบอร์ด |
เอ็มพีดี | เครื่องเล่นเพลง Daemon - เครื่องเล่นเพลงมีสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ที่เล่นเพลงจากไดเร็กทอรีที่ระบุ |
หลายเส้นทาง | ใช้เพื่อตรวจสอบอุปกรณ์ Multi-Path นั่นคือไดรฟ์ที่สามารถเข้าถึงได้โดยตัวควบคุมหรือวิธีการมากกว่าหนึ่งตัว |
mysqld, mysql | ดีมอนฐานข้อมูล MySQL |
nfsd | กระบวนการร้องขอตัวดำเนินการ NFS สำหรับระบบไคลเอ็นต์ ในอดีต แต่ละ nfsd daemon รองรับหนึ่งคำขอในแต่ละครั้ง ดังนั้นจึงมีการเรียกใช้สำเนาหลายชุด |
เน็ตคอนโซล | ช่วยให้คุณสามารถส่งออกคอนโซลไปยังเครื่องอื่นผ่านเครือข่าย อาจถูกปิดใช้งานโดยค่าเริ่มต้น |
netfs | ในระหว่างการบู๊ต ระบบจะเมาต์ระบบไฟล์ที่มีอยู่ผ่านเครือข่ายโดยอัตโนมัติ ( NFS, แซมบ้า และอื่นๆ). ผู้ใช้เดสก์ท็อปและ/หรือแล็ปท็อปส่วนใหญ่สามารถปิดได้ |
เครือข่าย | Daemon รับผิดชอบในการสร้างและกำหนดค่าอินเทอร์เฟซเครือข่ายท้องถิ่น (LAN) |
เครือข่ายระยะไกล | เช่นเดียวกับรุ่นก่อนหน้า แต่เพิ่มอินเทอร์เฟซไร้สายเพิ่มเติม |
nfs, nfslock | บริการนี้จัดเตรียมระบบไฟล์เครือข่ายมาตรฐานสำหรับระบบปฏิบัติการ Unix/Linux และ BSD หากคุณต้องการเปิดการเข้าถึงผ่าน NFS ให้เปิดใช้งานไว้ ไม่เช่นนั้นคุณสามารถปิดได้ |
nginx | nginx เป็นเว็บเซิร์ฟเวอร์และเมลพร็อกซีเซิร์ฟเวอร์ที่ทำงานบนระบบปฏิบัติการแบบ Unix |
นาโนเมตร | มีการใช้แซมบ้า ดูแซมบ้าด้านล่าง |
nscd | ดีมอนเซิร์ฟเวอร์ที่แคชชื่อและรหัสผ่านที่ใช้โดยบริการต่างๆ เช่น NIS, NIS+, LDAP, hesiod สามารถปิดได้ |
nslcd | daemon เซอร์วิสชื่อ LDAP โลคัล |
เอ็นทีพีดี | NTP daemon ที่จัดการการซิงโครไนซ์เวลาผ่านเครือข่าย xntpd ติดตั้งเวอร์ชัน 3 ของมาตรฐาน NTP |
ntpdate | |
อ๊อดจ็อบด์ | Oddjobd daemon ให้บริการ com.redhat.oddjob บนบัสข้อความทั้งระบบ สิ่งอำนวยความสะดวกแต่ละแห่งที่ Oddjobd จัดเตรียมไว้ให้เป็นวิธี D-Bus ที่แยกจากกัน |
openntpd | เซิร์ฟเวอร์และไคลเอนต์สำหรับการซิงโครไนซ์เวลา |
เปิด VPN | มอบวิธีการที่ปลอดภัยสำหรับการสร้าง VPN สำหรับ ข้อมูลเพิ่มเติมดู OpenVPN อาจถูกปิดใช้งานหากไม่ได้ใช้โดย NetworkManager |
พีซีเซีย | ให้การสนับสนุนการ์ดเอ็กซ์แพนชันมาตรฐาน pcmcia โดยทั่วไปจะใช้เฉพาะในแล็ปท็อปเท่านั้น |
ชิ้นซีดี | ให้การสนับสนุนเครื่องอ่านการ์ดและสมาร์ทการ์ด หากคุณไม่มีเครื่องอ่านการ์ดหรือสมาร์ทการ์ด คุณสามารถปิดบริการนี้ได้ มักมีอยู่ในแล็ปท็อป |
สำรองพอร์ต | ป้องกันการเข้าถึงพอร์ตจริงสำหรับบริการ RPC ต่างๆ และให้ความสำคัญกับแอปพลิเคชันที่สงวนไว้ ข้อมูลรายละเอียดเพิ่มเติมสามารถพบได้ในหน้าคน portreserve ขอแนะนำให้เปิดใช้งานทิ้งไว้ |
ไฟดับ | สคริปต์นี้จะทำงานเมื่อตรวจพบข้อความจาก UPS |
โพสต์ฟิกซ์ | โปรแกรมจัดการเมล Postfix |
pppd | ภูตโปรโตคอลแบบจุดต่อจุด |
พีพีพี | สคริปต์สำหรับการทำงานกับ pppd daemon |
psacct | จัดการกระบวนการเคอร์เนล Linux มีส่วนร่วมในการติดตาม |
ล้างเมล็ด | สคริปต์สำหรับ การลบอัตโนมัติเมล็ดเก่า ( กำหนดค่าใน /etc/zypp.conf) |
โควต้า_nld | โควต้า netlink ข้อความ daemon |
ดิบ | สคริปต์โหลดโมดูลอุปกรณ์ดิบ |
rdisc | daemon การค้นพบเกตเวย์เครือข่าย rdisc ทำหน้าที่เป็นไคลเอนต์ ICMP Gateway Discovery Protocol rdisc ถูกเรียกตอนบูตเพื่อรับตารางเส้นทางของเครือข่ายพร้อมเกตเวย์เริ่มต้น |
กำหนดวันที่ | จำเป็นต้องมีบริการเพื่อซิงโครไนซ์คอมพิวเตอร์กับเซิร์ฟเวอร์เวลาเมื่อทำการบูท ระบบปฏิบัติการ. สามารถปิดการใช้งานได้ |
เรียกคืน | ใช้เพื่อกู้คืนบริบทและตรวจสอบนโยบาย SELinux ที่เกี่ยวข้องกับไฟล์ ไม่จำเป็นต้องใช้บริการ แต่แนะนำเมื่อใช้ SELinux |
ส่งของ | rngd - ตรวจสอบและป้อนข้อมูลแบบสุ่มจากอุปกรณ์ฮาร์ดแวร์ไปยังอุปกรณ์สุ่มเคอร์เนล แท้จริงแล้วมันสามารถแปลได้ว่าเป็นปีศาจที่ตรวจสอบและรับข้อมูลสุ่มจากอุปกรณ์ฮาร์ดแวร์สำหรับเคอร์เนลของอุปกรณ์สุ่ม - มันฉลาดแค่ไหน :) ดีมอนตัวสร้างตัวเลขสุ่ม ในภาษารัสเซีย ปีศาจแห่งการสร้างตัวเลขสุ่ม |
rpcbind | Daemon สำหรับจัดการ RPC ที่ใช้งานโดยบริการอื่น ๆ (เช่น NFS หรือ NIS) ทำงานคล้ายกับพอร์ตแมป สามารถปิดการใช้งานได้หากไม่มีบริการอื่นที่ต้องพึ่งพา |
rpcgssd, rpcidmapd, rpcsvcgssd | ใช้ NFS v4 (ระบบไฟล์เครือข่าย) ปิดใช้งานหากคุณไม่ต้องการ NFS v4 http://ru.wikipedia.org/wiki/Network_File_System |
rsyslog | rsyslog ทำหน้าที่รวบรวมและประมวลผลบันทึกของระบบได้อย่างสะดวก และวางตำแหน่งตัวเองเป็นโมดูล syslogd แบบขยายสำหรับ ระบบยูนิกซ์และ Linux ซึ่งมุ่งเน้นไปที่ความปลอดภัยและความน่าเชื่อถือ และยังมีระบบมัลติเธรดขั้นสูงอีกด้วย Rsyslog นำเสนอคุณสมบัติที่หลากหลาย ซึ่งสามารถพบได้โดยคลิกที่ลิงค์ - คุณสมบัติ RSyslog http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml |
rsync | ซิงค์ ( การซิงโครไนซ์ระยะไกล) เป็นโปรแกรมสำหรับระบบปฏิบัติการที่มีลักษณะคล้าย UNIX ซึ่งจะซิงโครไนซ์ไดเร็กทอรีและไฟล์ในหลาย ๆ ที่ในขณะที่ลดการรับส่งข้อมูล โดยใช้การเข้ารหัสข้อมูลหากจำเป็น rsync ถูกสร้างขึ้นเพื่อทดแทน rcp และ scp อ่านเพิ่มเติม... |
ซาสเลาธ์ | ดีมอนเซิร์ฟเวอร์การรับรองความถูกต้อง SASL SASL ( การรับรองความถูกต้องและเลเยอร์ความปลอดภัยอย่างง่าย) ให้ความสามารถในการรับรองความถูกต้องในโปรโตคอลตามการเชื่อมต่อระยะไกล |
แซมบ้า, smbd | ภูตเซิร์ฟเวอร์แซมบ้า |
ส่งอีเมล์ | ให้การสนับสนุนบริการ IMAP หรือ POP3 ในเครื่อง โดยปล่อยให้เปิดใช้งานอยู่ บริการนี้อาจมีประโยชน์ในการแจ้งเกี่ยวกับกิจกรรมของดีมอน/บริการต่างๆ ซึ่งสามารถให้บริการผ่าน cron หรือส่งอีเมลจากสคริปต์ PHP |
เซ็นเซอร์ | daemon จาก lm_sensors รวบรวมข้อมูลจากเซ็นเซอร์ต่างๆ |
เซ็นเซอร์ | สคริปต์ที่โหลดโมดูลเคอร์เนลที่จำเป็นเพื่อทำงานกับ lm_sensors หากจำเป็น |
ผนังชายฝั่ง | สคริปต์สำหรับจัดการไฟร์วอลล์ชอร์วอลล์ |
บาง | ผู้จัดการเข้าสู่ระบบสำหรับ X's |
สมาร์ท | SMART daemon ตรวจสอบดิสก์ ใช้เพื่อทำนายความล้มเหลวและติดตามปัญหาของไดรฟ์หรือฮาร์ดไดรฟ์ โดยทั่วไป ผู้ใช้ไม่ต้องการ daemon นี้ แต่ยังคงแนะนำ (โดยเฉพาะสำหรับเซิร์ฟเวอร์) ให้เปิดใช้งานไว้ |
เล็ก | ต้องใช้ SAMBA daemon เพื่อเปิดส่วนร่วม การเข้าถึงเครือข่ายไปยังไฟล์บน Linux สำหรับ ผู้ใช้วินโดวส์. ต้องเปิดใช้งานหากคุณมีเครื่อง Windows บนเครือข่ายของคุณที่ต้องได้รับสิทธิ์ในการเข้าถึงไฟล์ |
หลอมละลาย | ดีมอนที่ส่งข้อมูลทุกเดือนเพื่อรวบรวมสถิติเพื่อช่วยนักพัฒนา สถิติมีให้สำหรับทุกคน ผู้ใช้ที่ต้องการช่วยเหลือนักพัฒนาจะต้องเปิดใช้งานบริการนี้ |
snmpd, snmptrapd | ให้การสนับสนุน SNMP ( โปรโตคอลการจัดการเครือข่ายอย่างง่าย) ซึ่งสามารถใช้เพื่อจัดการและกำหนดค่าอุปกรณ์ เช่น ฮับเครือข่าย เซิร์ฟเวอร์ เครื่องพิมพ์ ฯลฯ และอื่น ๆ สามารถปิดใช้งานได้ แต่อาจจำเป็นต้องเรียกใช้ HP Print Services ( เอชลิป). |
ปลาหมึก | ภูตพร็อกซีปลาหมึก |
sshd | รับฟังคำขอเชลล์ที่ปลอดภัยจากไคลเอนต์ SSH อนุญาตให้ผู้ใช้รายอื่นเข้าสู่ระบบผ่านเครือข่ายจากคอมพิวเตอร์เครื่องอื่นและเรียกใช้แอปพลิเคชันบนคอมพิวเตอร์ของคุณ ซึ่งโดยทั่วไปใช้สำหรับการดูแลระบบระยะไกล นี่อาจเป็นความเสี่ยงด้านความปลอดภัย บนเวิร์กสเตชันที่ไม่ต้องการการเข้าถึงระยะไกล แนะนำให้ปิดเครื่อง |
sssd | SSSD ( บริการรักษาความปลอดภัยระบบ Daemon) อนุญาตให้เข้าถึงกลไกการตรวจสอบสิทธิ์ระยะไกล สิ่งนี้ทำให้เส้นแบ่งระหว่างเครือข่ายและการรับรองความถูกต้องภายในเครื่องไม่ชัดเจน และช่วยให้สามารถใช้กลไกที่แตกต่างกันได้ ข้อมูลเกี่ยวกับผู้ใช้จะถูกส่งโดยฐานข้อมูลที่เรียกว่าโดเมน และสามารถเป็นแหล่งข้อมูลสำหรับการรับรองความถูกต้องระยะไกลได้ อนุญาตให้ใช้กลไกได้หลายกลไก ทำให้เซิร์ฟเวอร์หลายเครื่องใช้เนมสเปซที่แตกต่างกันได้ ข้อมูลที่ได้รับจะมอบให้กับแอปพลิเคชันภายนอกโดยใช้อินเทอร์เฟซ NSS และ PAM มาตรฐาน SSSD ทำงานเป็นชุดบริการที่ไม่ขึ้นกับแอปพลิเคชันที่เรียกใช้ ดังนั้นแอปพลิเคชันจึงไม่จำเป็นต้องเริ่มต้นการเชื่อมต่อของตนเองไปยังโดเมนระยะไกล และไม่จำเป็นต้องทราบว่า daemon/บริการใดที่ใช้งานอยู่ การแคชข้อมูลกลุ่มและข้อมูลประจำตัวในเครื่องอนุญาตโดยไม่คำนึงถึงแหล่งข้อมูล ( LDAP, NIS, IPA, DB, แซมบ้า ฯลฯ) ทำงานแบบออฟไลน์ต่อไป ซึ่งโดยรวมแล้วช่วยปรับปรุงประสิทธิภาพการทำงาน SSSD อาจอนุญาตให้มีผู้ให้บริการหลายรายที่เป็นประเภทเดียวกัน ( ตัวอย่างเช่น LDAP). |
svnserve | เดมอนเซิร์ฟเวอร์ svn |
ระบบ | แพ็คเกจ Sysstat ประกอบด้วยยูทิลิตี้สำหรับตรวจสอบประสิทธิภาพของระบบและทรัพยากรที่ใช้ |
คนแลกเปลี่ยน | คัดลอกกระบวนการในเครื่องลงในพื้นที่สว็อปเพื่อแก้ไขเพจหน่วยความจำกายภาพสำหรับเคอร์เนล เรียกอีกอย่างว่ากำหนดการ |
syslogd | กระบวนการของระบบสำหรับบันทึกข้อความระบบต่างๆ |
ซิงค์ | ประสานเป็นระยะด้วย หน่วยความจำระบบที่จัดตั้งขึ้น ไฟล์ระบบ. |
syslog-ng | ภูตเก็บบันทึกของระบบ |
udev-โพสต์ | ตัวจัดการอุปกรณ์ระบบที่ใช้โดย udev ตามค่าเริ่มต้น udev รองรับกฎ พฤติกรรม และการอนุญาตสำหรับอุปกรณ์จำนวนมาก การใช้บริการนี้ทำให้คุณสามารถจัดการกฎได้อย่างปลอดภัย ขอแนะนำให้เปิดใช้งานทิ้งไว้ |
มือสอง | เพิ่มหน่วยความจำเพจเพื่อใช้โดยกระบวนการอื่น มีชื่อเรียกอีกอย่างว่า "เพจขโมยภูต" |
vsftpd | vsftpd ( FTP Daemon ที่ปลอดภัยมาก - FTP Daemon ที่ปลอดภัยมาก) - เซิร์ฟเวอร์ FTP รองรับ IPv6 และ SSL vsftpd ถูกใช้เป็นค่าเริ่มต้นบนระบบปฏิบัติการที่คล้ายกับ UNIX หลายระบบ และยังให้บริการพื้นที่เก็บข้อมูลอย่างเป็นทางการ ftp.openbsd.org, ftp.freebsd.org, ftp.debian.org, ftp.redhat.com และใช้กับ FTP เคอร์เนล Linux อย่างเป็นทางการ เซิร์ฟเวอร์ |
เว็บมิน | บริการจัดการระบบผ่านเบราว์เซอร์ ( เว็บอินเตอร์เฟส). |
วินวินด์ | บริการที่ช่วยให้คุณแยกแยะความแตกต่างบนเครือข่าย ชื่อคอมพิวเตอร์ภายใต้ การควบคุมหน้าต่าง. สามารถใช้ควบคุมได้ บัญชี Windows พร้อมบัญชี Linux โดยทั่วไป ผู้ใช้ส่วนใหญ่ไม่ต้องการ daemon นี้และสามารถปิดใช้งานได้ |
wpa_supplicant | จำเป็นต้องมีบริการในการทำงานด้วย การ์ดไร้สายซึ่งใช้เชื่อมต่อกับจุดเข้าใช้งาน ( เซิร์ฟเวอร์ VPN หรือ Radius) ต้องมีการเข้ารหัส WPA ผู้ใช้ส่วนใหญ่สามารถปล่อยให้ปิดใช้งานได้ |
xfsd | ให้บริการแบบอักษร X11 สำหรับไคลเอนต์ระยะไกล |
แยม | บริการอัพเดตแพ็คเกจ RPM ที่ติดตั้งบนระบบ ใช้เป็นหลักใน Fedora Core |
ใช่ | บริการนี้ใช้สำหรับการรับรองความถูกต้อง NIS ผ่านเครือข่าย หากไม่ได้ใช้การรับรองความถูกต้องของ NIS คุณสามารถปิดใช้งานได้ |
ซวีบิด | บริการที่ให้การเข้าถึงจากอุปกรณ์ V4L หรือ V4L2 ไปยังหลายแอปพลิเคชัน ตัวอย่างเช่น การ์ดสำหรับจับภาพ Hauppage สามารถใช้บริการนี้ได้ ในกรณีอื่นสามารถปิดได้ |
หากรายการเดมอน/บริการ UNIX/Linux ข้างต้นไม่ทำงานบนระบบของคุณ จากนั้นจึงขอความช่วยเหลือเกี่ยวกับบริการดังกล่าว ใช้ man name_daemonและหากไม่มีข้อมูลเกี่ยวกับบริการที่ทำงานอยู่ที่นั่น เขียนในความคิดเห็นและเราจะรวบรวมข้อมูลเกี่ยวกับบริการดังกล่าวและเพิ่มลงในรายการ UNIX/Linux daemons/บริการที่ให้ไว้ที่นี่
หากไม่มีคำอธิบายของบริการใน man name_daemon help ดังนั้น ภูต/บริการอาจเป็นไวรัสในกรณีนี้ให้ค้นหาไฟล์ปฏิบัติการ โดยที่ name_daemon และส่งไปวิเคราะห์ที่ห้องปฏิบัติการไวรัส ซึ่งสามารถทำได้โดยไม่ต้องติดตั้งโปรแกรมป้องกันไวรัสผ่านเว็บอินเตอร์เฟส เช่น http://vms.drweb.com/online/ http://www. esetnod32.ru/.support/scanner/ หรือ https://www.virustotal.com/
กำลังโหลด daemons/บริการ UNIX/LINUX โดยอัตโนมัติ
ด้านล่างนี้คือ คำแนะนำโดยละเอียดสำหรับจัดการการเริ่มต้น daemons/บริการในการแก้ไข/เวอร์ชันทั่วไปของระบบปฏิบัติการที่คล้าย UNIX เช่น CentOS Linux, Debian Linux และระบบปฏิบัติการประเภท BSD. ในการดัดแปลง/เวอร์ชันอื่นๆ ของระบบปฏิบัติการที่คล้าย UNIX การจัดการการโหลดอัตโนมัติของ daemons/บริการมีขั้นตอนที่คล้ายกัน แม้ว่าอาจจะมีความแตกต่างเล็กน้อยหรือรุนแรงถึงขั้นรุนแรงก็ตาม!
การโหลด Daemons/บริการอัตโนมัติบน CentOS Linux
CentOS ได้กำหนดระดับการโหลดตามหลักการ System V และมีการทาสี ในไฟล์ /etc/inittab, อ่านน้อยลง /etc/inittab
ไดเร็กทอรีสำหรับแต่ละระดับการโหลดได้รับการตั้งชื่อและอยู่ในไดเร็กทอรี /etc/rc.d
ในแต่ละไดเร็กทอรีที่สอดคล้องกับระดับโหลดเฉพาะจะมีสคริปต์หรือลิงก์ไปยังไดเร็กทอรีเหล่านั้น พร้อมด้วยคำแนะนำในการเริ่ม daemon/โปรแกรม/บริการ และสคริปต์เองพร้อมคำแนะนำในการเริ่ม daemon/โปรแกรม/บริการจะอยู่ใน ไดเร็กทอรี /etc /rc.d/init.d
ตัวอย่างของสคริปต์ที่ควบคุมการเรียกใช้ daemon/program/service สามารถดูได้โดยการรันน้อยกว่า /etc/rc.d/init.d/mysqld หรือน้อยกว่า /etc/rc.d/init.d/sshd โดยทั่วไป สคริปต์ที่ควบคุมการเปิดตัว daemon/program/service จะปรากฏใน /etc/rc.d/init.d/ และเชื่อมโยงกับไดเร็กทอรี runlevel หลังจากติดตั้งซอฟต์แวร์ และ สถานะของพวกเขาคือปิด/เปิดสำหรับการวิ่งแต่ละระดับ ควบคุมโดยยูทิลิตี้ chkconfig.
คุณสามารถดูว่า daemons ใดที่จะรันในระดับการรันที่แตกต่างกันด้วยคำสั่ง chkconfig --list คุณสามารถเปิดใช้งาน daemon เพื่อให้ทำงานโดยอัตโนมัติในระดับการทำงานใดก็ได้โดยใช้คำสั่ง chkconfig --level 345 mysqld on และปิด chkconfig --level 345 mysqld off ตามลำดับ chkconfig –del service_ name เพื่อลบบริการ chkconfig service_name on |off เพื่อเปิดหรือปิดบริการในทุกระดับ
ส่วนการเพิ่มสคริปต์ในการเริ่มต้นนั้น สำหรับ ดาวน์โหลดอัตโนมัติสคริปต์ให้บริการโดย /etc/rc.localใน /etc/rc.local ก็เพียงพอแล้วที่จะเพิ่มพาธแบบเต็มไปยังสคริปต์ เช่น: /root/scripts/script.sh หรือ /bin/sh /root/scripts/script.sh หากหลังจากติดตั้งซอฟต์แวร์แล้วไม่มีสคริปต์ควบคุมการเริ่มต้นระบบใน /etc/rc.d/init.d/ โปรแกรมที่ต้องการดังนั้นจึงง่ายกว่าที่จะเพิ่มบรรทัดการเริ่มต้น/เรียกใช้ไปที่ /etc/rc.local
มียูทิลิตี้ชื่อ ntsysv เพื่อจัดการระดับการทำงาน man ntsysv
การโหลด Daemons/บริการอัตโนมัติบน Debian Linux
ไดเร็กทอรีสำหรับแต่ละระดับการบูตใน Debian Linux ก็ได้รับการตั้งชื่อเช่นกัน rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.dแต่, ตั้งอยู่ไม่อยู่ในไดเร็กทอรี /etc/rc.d อีกต่อไป แต่ ในรูทของไดเร็กทอรี /etc
มีสคริปต์พร้อมคำแนะนำในการเริ่ม daemon/program/service หรือมีลิงก์สัญลักษณ์อยู่ในไดเร็กทอรี /etc/rc?.d ป้ายอยู่ที่ไหน? สอดคล้องกับระดับโหลดและ สคริปต์พร้อมคำแนะนำในการเริ่มต้น daemon/program/service จะอยู่ในไดเร็กทอรี /etc/init.d. ตัวอย่างของการข้ามซึ่งคุณสามารถเขียนเองได้นั้นสามารถพบได้ในไฟล์น้อยกว่า /etc/init.d/skeleton
ด้านล่างนี้เราจะให้คำอธิบายเกี่ยวกับข้อมูลบริการที่ใช้ในเทมเพลตสคริปต์ /etc/init.d/skeleton:
- จัดเตรียมให้:อธิบายอ็อบเจ็กต์ที่สคริปต์นี้จัดเตรียมไว้ให้ (arg1, agr2, ...) ในลักษณะที่เมื่อสคริปต์ถูกรันโดยอาร์กิวเมนต์ start ออบเจ็กต์เหล่านี้จะถือว่ามีอยู่ และดังนั้นสคริปต์อื่นๆ ใน init ที่จำเป็นต้องมีการมีอยู่ของสิ่งเหล่านี้ วัตถุจะสามารถเริ่มต้นได้ในระยะหลังมากขึ้น โดยทั่วไป คุณสามารถใช้ชื่อของสคริปต์เป็นออบเจ็กต์ได้ แต่คุณยังสามารถใช้ชื่อของบริการที่จะแทนที่ได้อีกด้วย วัตถุเสมือนไม่ได้ระบุไว้ที่นี่ สิ่งเหล่านี้ถูกกำหนดไว้ภายนอกสคริปต์ init.d
- จำเป็น-เริ่มต้น:ระบุอ็อบเจ็กต์ที่ต้องมีเพื่อรันสคริปต์ หากจำเป็น คุณสามารถใช้ออบเจ็กต์เสมือนตามที่อธิบายไว้ด้านล่าง หากไม่ได้ระบุอ็อบเจ็กต์ สคริปต์จะสามารถเปิดใช้งานได้ทันทีหลังจากเริ่มต้น โดยไม่ต้องเชื่อมต่อระบบไฟล์ในเครื่อง เริ่มบันทึกระบบ ฯลฯ
- จำเป็น-หยุด:ระบุอ็อบเจ็กต์ที่ใช้โดยบริการ ซึ่งจัดทำโดยสคริปต์ ออบเจ็กต์ที่สคริปต์นี้จัดเตรียมไว้ให้เสร็จสิ้นก่อนที่ออบเจ็กต์ที่แสดงไว้ที่นี่จะเสร็จสมบูรณ์เพื่อหลีกเลี่ยงข้อขัดแย้ง โดยทั่วไปแล้ว ออบเจ็กต์เดียวกันจะถูกระบุที่นี่เช่นเดียวกับใน Required-Start
- ควรเริ่มต้น:ระบุอ็อบเจ็กต์ที่ ถ้ามี ควรเริ่มทำงานก่อนเซอร์วิสที่สคริปต์นี้จัดเตรียมไว้ ซึ่งช่วยให้มีการขึ้นต่อกันที่อ่อนแอซึ่งไม่ทำให้บริการล้มเหลวหากไม่มีออบเจ็กต์ คุณสามารถใช้ออบเจ็กต์เสมือนได้ตามต้องการ ตามที่อธิบายไว้ด้านล่าง
- ควรหยุด:ระบุอ็อบเจ็กต์ที่ ถ้ามี ควรหยุดหลังจากนั้น ของบริการนี้. โดยทั่วไปแล้ว ออบเจ็กต์เดียวกันจะถูกระบุที่นี่เช่นเดียวกับในควรจะเริ่มต้น
- เริ่มต้น-เริ่มต้น:ตั้งค่าระดับการรันที่ควรเริ่ม (หยุด) สคริปต์ตามค่าเริ่มต้น ตัวอย่างเช่น หากบริการควรเริ่มต้นที่ระดับ 3, 4 และ 5 เท่านั้น ให้ระบุ "Default-Start: 3 4 5" และ "Default-Stop: 0 1 2 6"
- คำอธิบายสั้น:ระบุคำอธิบายสั้นๆ ของการดำเนินการกับสคริปต์ จำกัดเพียงหนึ่งบรรทัด
- คำอธิบาย:ระบุคำอธิบายโดยละเอียดเพิ่มเติมของการดำเนินการของสคริปต์ อาจมีหลายบรรทัด ซึ่งในกรณีนี้แต่ละบรรทัดของคำอธิบายจะต้องขึ้นต้นด้วยอักขระ # ตามด้วยอักขระแท็บ หรืออักขระเว้นวรรคอย่างน้อย 2 ตัว คำอธิบายจะสิ้นสุดก่อนบรรทัดที่ไม่ตรงกับเงื่อนไขนี้
- X-เริ่ม-ก่อน, X-หยุด-หลัง:ระบุการขึ้นต่อกันแบบผกผันที่มีความหมายเหมือนกับที่ระบุไว้ในควรเริ่มต้นและควรหยุดในแพ็คเกจที่ระบุที่นี่
คำสำคัญระบุ จำเป็น และควร- มีความสำคัญสำหรับการติดตามการขึ้นต่อกัน ส่วนที่เหลือไม่ได้ใช้ โปรแกรมจะใช้ Runlevels เป็นค่าเริ่มต้นเพื่อจัดระเบียบสคริปต์ ( ตัวอย่างเช่น แทรก) เพื่อติดตามไดเร็กทอรีใด rc?.dอัปเดตเมื่อมีการเพิ่มบริการครั้งแรกและควรสะท้อนถึงวัตถุประสงค์ของบริการ นี่คือวัตถุ "เสมือน" บางส่วน:
- $local_fs- เชื่อมต่อระบบไฟล์ในเครื่องทั้งหมดแล้ว สคริปต์ทั้งหมดที่เขียนถึง /var/ ควรขึ้นอยู่กับสิ่งนี้ เว้นแต่สคริปต์เหล่านั้นจะขึ้นอยู่กับ $remote_fs อยู่แล้ว
- $เครือข่าย- เครือข่ายระดับต่ำเช่น การ์ดเครือข่ายอาจหมายถึง PCMCIA ทำงานอยู่
- ชื่อ $- Daemon ที่สามารถให้การแก้ปัญหาชื่อโดเมนจะถือว่ากำลังทำงานอยู่ ตัวอย่างเช่น DNS, NIS+ หรือ LDAP
- $พอร์ตแมป- Daemons ให้บริการการแมปพอร์ต SunRPC/ONCRPC ตามที่ระบุไว้ใน 1833 (ถ้ามี)
- $remote_fs- เชื่อมต่อระบบไฟล์ทั้งหมดแล้ว สคริปต์ที่ต้องรันในระหว่างการปิดระบบก่อนที่สัญญาณการฆ่าจะถูกส่งไปยังกระบวนการทั้งหมดจะต้องขึ้นอยู่กับ $remote_fs
- $syslog- บันทึกของระบบกำลังทำงานอยู่
- $เวลา- ตั้งเวลาระบบที่ถูกต้อง เช่น ntp หรือ rdate หรือ RTC
- $ทั้งหมด- รันสคริปต์ล่าสุดเท่าที่เป็นไปได้
การโหลดอัตโนมัติของ Daemon ใน Debian Linux ถูกควบคุมโดยใช้ยูทิลิตี้ update-rc.d ซึ่งมีรายละเอียดใน man update-rc.d ยูทิลิตี update-rc.d ไม่ได้สร้างหรือลบสิ่งอื่นใดนอกจาก symlink ใน /etc/rc?.dไปยังสิ่งที่เรียกว่าสคริปต์เริ่มต้นที่ควบคุมการเริ่มต้นและการหยุดของ daemon/program/service ซึ่งอยู่ในไดเร็กทอรี /etc/init.d
หากสคริปต์สำหรับการเริ่มต้น daemon/บริการโดยอัตโนมัติถูกสร้างขึ้นด้วยตนเองโดยใช้เทมเพลต /etc/init.d/skeletonจากนั้นคุณต้องวางไว้ในไดเร็กทอรี /etc/init.d ก่อน จากนั้นจึงสร้างลิงก์สัญลักษณ์ไปยังสคริปต์นี้ในไดเร็กทอรี /etc/rc?.d โดยที่ - หมายเลขระดับรัน ( ระดับโหลดของระบบ). ลิงก์สัญลักษณ์ควรมีลักษณะดังนี้: Sหมายเลข script_nameโดยที่ No. คือหมายเลขลำดับการเปิดใช้ หากคุณต้องการทิ้งลิงก์สัญลักษณ์ไว้แต่ไม่ได้รันสคริปต์ชั่วคราว ลิงก์สัญลักษณ์ควรถูกแก้ไขเป็นสถานะนี้ KNo. script_name
ก่อนที่จะสามารถประมวลผลระดับการดำเนินการใดๆ ได้ สคริปต์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษร " จะถูกดำเนินการก่อน เค" (สคริปต์เหล่านี้หยุดบริการ) จากนั้นสคริปต์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษร " จะถูกดำเนินการ ส" (สคริปต์เหล่านี้เริ่มให้บริการ). ตัวเลขสองหลักหลังตัวอักษร "S" หรือ "K" ระบุลำดับที่สคริปต์จะถูกดำเนินการ. สคริปต์ที่มีตัวเลขต่ำกว่าจะถูกเรียกใช้งานก่อน เช่น: S01script_name จะเริ่มทำงานก่อน และ S09script_name จะถูกเรียกใช้งานครั้งที่เก้า
หากต้องการสร้างลิงก์สัญลักษณ์ให้ใช้โปรแกรม ln -s file1 file2 ที่ไหนสำคัญ -สพูดถึงการสร้างลิงค์สัญลักษณ์ ไฟล์1ชี้ไปที่ไฟล์ที่มีอยู่และ ไฟล์2ชื่อของลิงก์ใหม่ แต่แทนที่จะสร้างลิงก์สัญลักษณ์ด้วยตนเอง คุณสามารถใช้ยูทิลิตี update-rc.d ซึ่งออกแบบมาโดยเฉพาะสำหรับการสร้างลิงก์สัญลักษณ์ใน /etc/rc?.d ไปยังสคริปต์จาก /etc/init ง.
ไวยากรณ์ update-rc.d เป็นเช่นนี้: เพิ่มด้วยพารามิเตอร์เริ่มต้น update-rc.d
ตรงไปตรงมา update-rc.d เป็นยูทิลิตี้ที่ค่อนข้างทึบ ยูทิลิตี้ chkconfig สะดวกกว่าซึ่งไม่สามารถใช้งานได้ตามค่าเริ่มต้นบน Debian Linux ในการติดตั้ง เราจำเป็นต้องเพิ่มพื้นที่เก็บข้อมูลเพิ่มเติม ขอแนะนำให้ใช้เฉพาะพื้นที่เก็บข้อมูลแพ็คเกจ Debian Linux อย่างเป็นทางการเท่านั้น ต่อท้ายรายการ vi /etc/apt/sources.list ตัวอย่าง Sources.list ใน Debian GNU/Linux 6.0.5 _Squeeze_ - เป็นทางการ i386:
# # deb cdrom:/ บีบ deb หลัก cdrom:/ บีบ deb หลัก http://security.debian.org/ บีบ/อัปเดตหลัก deb-src http://security.debian.org/ บีบ/อัปเดตหลัก # บีบอัปเดต ซึ่งก่อนหน้านี้เรียกว่า "ระเหย" # ไม่ได้เลือกมิเรอร์เครือข่ายระหว่างการติดตั้ง รายการต่อไปนี้ # จัดทำไว้เป็นตัวอย่าง แต่คุณควรแก้ไขตามความเหมาะสม # สำหรับคุณกระจกเงาของทางเลือก # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates main deb http://backports.debian.org/ debian-backports squeeze-backports deb หลัก http://ftp.debian.org/debian/ บีบ main #deb http://repo.yandex.ru/debian บีบ contrib หลัก #deb http://mirror.yandex.ru/ เดเบียนบีบการมีส่วนร่วมหลัก #deb http://mirror.yandex.ru/debian-multimedia/ บีบการมีส่วนร่วมหลัก
จากนั้นอัปเดตรายการแพ็คเกจด้วย apt-get update และติดตั้ง chkconfig apt-get install chkconfig และอีกทางเลือกหนึ่งคือคุณสามารถติดตั้ง sysv-rc-conf apt-get install sysv-rc-conf เพิ่มเติมได้ วิธีใช้ยูทิลิตี้ chkconfig ดังที่ได้กล่าวไว้ข้างต้น โปรดดูเพิ่มเติมที่ man sysv-rc-conf และ man chkconfig
เมื่อเพิ่มพื้นที่เก็บข้อมูล Debian Linux โปรดคำนึงถึงนโยบายซอฟต์แวร์ที่ใช้กับแต่ละพื้นที่ เช่น ส่วนหลัก ส่วนร่วม และส่วนที่ไม่ฟรี:
- หลัก: - แพ็คเกจในพื้นที่นี้เป็นส่วนหนึ่งของการแจกจ่าย Debian Linux ที่สมบูรณ์ และไม่มีแพ็คเกจใดในพื้นที่หลักที่ต้องการซอฟต์แวร์จากภายนอกพื้นที่นี้เพื่อให้ทำงานได้อย่างสมบูรณ์ ทุกคนสามารถใช้ แบ่งปัน ปรับเปลี่ยน และแจกจ่ายแพ็คเกจจากพื้นที่หลักได้อย่างอิสระ
- มีส่วนร่วม: - แพ็คเกจจากพื้นที่นี้สามารถแจกจ่ายได้อย่างอิสระ แต่การขึ้นต่อกันบางส่วนอาจไม่ฟรี
- ไม่ฟรี: - มีแพ็คเกจที่ไม่สามารถแจกจ่ายได้ฟรีตาม DSFG และแพ็คเกจจากพื้นที่อาจมีข้อผิดพลาดที่ไม่ได้นำมาพิจารณาเมื่อพัฒนาและอัปเดต Debian Linux
หากต้องการรันสคริปต์และโปรแกรมอื่น ๆ อัตโนมัติใน Debian Linux คุณสามารถใช้ /etc/rc.local แบบเก่าที่ดีได้
ผู้ดูแลระบบและผู้ใช้ Linux ทั่วไปมักต้องดูไฟล์บันทึกเพื่อแก้ไขปัญหา นี่เป็นสิ่งแรกที่ผู้ดูแลระบบควรทำเมื่อเกิดข้อผิดพลาดในระบบ
ระบบปฏิบัติการ Linux และแอปพลิเคชันที่ทำงานอยู่จะสร้างข้อความประเภทต่างๆ ที่บันทึกไว้ในไฟล์บันทึกต่างๆ Linux ใช้ซอฟต์แวร์ ไฟล์ และไดเร็กทอรีพิเศษในการจัดเก็บไฟล์บันทึก การรู้ว่าไฟล์ใดมีบันทึกของโปรแกรมใดจะช่วยให้คุณประหยัดเวลาและแก้ไขปัญหาได้เร็วขึ้น
ในบทความนี้ เราจะดูส่วนหลักของระบบการบันทึก Linux ไฟล์บันทึก รวมถึงยูทิลิตี้ที่คุณสามารถดูบันทึก Linux ได้
ไฟล์ส่วนใหญ่ บันทึกของ Linuxอยู่ในโฟลเดอร์ /var/log/ คุณสามารถแสดงรายการไฟล์บันทึกสำหรับระบบของคุณโดยใช้คำสั่ง ls:
Rw-r--r-- 1 รูตรูต 52198 10 พฤษภาคม 11:03 ทางเลือกอื่น.log
drwxr-x --- 2 รูทรูท 4096 14 พ.ย. 15:07 apache2
drwxr-xr-x 2 รูท รูท 4096 25 เม.ย. 12:31 น.
drwx------ 2 รูทรูท 4096 5 พฤษภาคม 10:15 น. การตรวจสอบ
-rw-r ---r-- 1 รูทรูท 33100 10 พฤษภาคม 10:33 boot.log
ด้านล่างนี้เราจะดูไฟล์บันทึก Linux 20 ไฟล์ที่อยู่ในไดเร็กทอรี /var/log/ บันทึกเหล่านี้บางส่วนพบได้เฉพาะในบางรุ่นเท่านั้น เช่น dpkg.log พบเฉพาะบนระบบที่ใช้ Debian เท่านั้น
/var/log/messages- มีบันทึกระบบ Linux ทั่วโลก รวมถึงบันทึกเมื่อเริ่มต้นระบบ ข้อความหลายประเภทถูกบันทึกไว้ในบันทึกนี้: เมล, cron, บริการต่างๆ, เคอร์เนล, การรับรองความถูกต้อง และอื่นๆ
/var/log/dmesg- มีข้อความที่ได้รับจากเคอร์เนล บันทึกข้อความจำนวนมากในระหว่างขั้นตอนการบู๊ต โดยจะแสดงข้อมูลเกี่ยวกับอุปกรณ์ฮาร์ดแวร์ที่เตรียมใช้งานในระหว่างขั้นตอนการบู๊ต คุณสามารถพูดได้ว่านี่คือบันทึกอื่นของระบบ Linux จำนวนข้อความในบันทึกมีจำนวนจำกัด และเมื่อไฟล์เต็ม แต่ละข้อความใหม่ ข้อความเก่าจะถูกเขียนทับ คุณยังสามารถดูข้อความจากบันทึกนี้โดยใช้คำสั่ง dmseg
/var/log/auth.log- มีข้อมูลเกี่ยวกับการอนุญาตผู้ใช้ในระบบรวมถึงการเข้าสู่ระบบของผู้ใช้และกลไกการตรวจสอบสิทธิ์ที่ใช้
/var/log/boot.log- มีข้อมูลที่บันทึกไว้เมื่อระบบบูท
/var/log/daemon.log- รวมข้อความจากภูตพื้นหลังต่างๆ
/var/log/kern.log- ยังมีข้อความจากเคอร์เนล ซึ่งมีประโยชน์ในการแก้ไขปัญหาข้อผิดพลาดในโมดูลแบบกำหนดเองที่สร้างไว้ในเคอร์เนล
/var/log/lastlog- แสดงข้อมูลเกี่ยวกับเซสชันล่าสุดของผู้ใช้ทั้งหมด นี่เป็นไฟล์ที่ไม่ใช่ข้อความ และคุณต้องใช้คำสั่ง Lastlog เพื่อดูไฟล์
/var/log/maillog /var/log/mail.log- บันทึกของเซิร์ฟเวอร์อีเมลที่ทำงานบนระบบ
/var/log/user.log- ข้อมูลจากบันทึกทั้งหมดในระดับผู้ใช้
/var/log/Xorg.x.log- บันทึกข้อความเซิร์ฟเวอร์ X
/var/log/alternatives.log- ข้อมูลเกี่ยวกับการทำงานของโปรแกรมอัพเดตทางเลือก สิ่งเหล่านี้คือลิงก์สัญลักษณ์ไปยังคำสั่งหรือไลบรารีเริ่มต้น
/var/log/btmp- บันทึก ไฟล์ลินุกซ์มีข้อมูลเกี่ยวกับการพยายามเข้าสู่ระบบที่ล้มเหลว หากต้องการดูไฟล์ จะสะดวกในการใช้คำสั่ง Last -f /var/log/btmp
/var/log/cups- ข้อความทั้งหมดที่เกี่ยวข้องกับการพิมพ์และเครื่องพิมพ์
/var/log/anaconda.log- ข้อความทั้งหมดที่บันทึกระหว่างการติดตั้งจะถูกบันทึกไว้ในไฟล์นี้
/var/log/yum.log- บันทึกข้อมูลทั้งหมดเกี่ยวกับการติดตั้งแพ็คเกจโดยใช้ Yum
/var/log/cron- เมื่อใดก็ตามที่ Cron daemon เริ่มรันโปรแกรม มันจะเขียนรายงานและข้อความจากโปรแกรมเองในไฟล์นี้
/var/log/secure- มีข้อมูลที่เกี่ยวข้องกับการรับรองความถูกต้องและการอนุญาต ตัวอย่างเช่น SSHd บันทึกทุกอย่างที่นี่ รวมถึงการพยายามเข้าสู่ระบบที่ล้มเหลว
/var/log/wtmp หรือ /var/log/utmp -บันทึกระบบ Linux , มีบันทึกการเข้าสู่ระบบของผู้ใช้ การใช้คำสั่ง wtmp ช่วยให้คุณทราบว่าใครเข้าสู่ระบบและเมื่อใด
/var/log/faillog- บันทึก ระบบลินุกซ์มีการพยายามเข้าสู่ระบบที่ล้มเหลว ใช้คำสั่ง Faillog เพื่อแสดงเนื้อหาของไฟล์นี้
/var/log/mysqld.log- ไฟล์บันทึก Linux จากเซิร์ฟเวอร์ฐานข้อมูล MySQL
/var/log/httpd/ หรือ /var/log/apache2- ไฟล์บันทึกของเว็บเซิร์ฟเวอร์ linux11 Apache บันทึกการเข้าถึงจะอยู่ในไฟล์ access_log และบันทึกข้อผิดพลาดจะอยู่ใน error_log
/var/log/lighttpd/ - บันทึกลินุกซ์เว็บเซิร์ฟเวอร์ lighttpd
/var/log/conman/- ไฟล์บันทึกไคลเอ็นต์ ConMan
/var/log/เมล/- ไดเร็กทอรีนี้มีบันทึกเซิร์ฟเวอร์เมลเพิ่มเติม
/var/log/พรีลิงก์/- โปรแกรมพรีลิงค์ลิงค์ไลบรารี่และ ไฟล์ปฏิบัติการเพื่อเร่งกระบวนการดาวน์โหลดให้เร็วขึ้น /var/log/prelink/prelink.log มีข้อมูลเกี่ยวกับไฟล์ .so ที่ได้รับการแก้ไขโดยโปรแกรม
/var/log/ตรวจสอบ/- มีข้อมูลที่สร้างโดย auditd daemon
/var/log/setroubleshoot/ - SE Linux ใช้ setroubleshootd daemon (SE Trouble Shoot Daemon) เพื่อรายงานปัญหาด้านความปลอดภัย บันทึกนี้มีข้อความจากโปรแกรมนี้
/var/log/แซมบ้า/- มีข้อมูลและบันทึกจากไฟล์เซิร์ฟเวอร์ Samba ที่ใช้ในการเชื่อมต่อ โฟลเดอร์ที่ใช้ร่วมกันหน้าต่าง
/var/log/sa/- มีไฟล์ .cap ที่รวบรวมโดยแพ็คเกจ Sysstat
/var/log/sssd/- ใช้โดยเดมอนความปลอดภัยของระบบที่จัดการ การเข้าถึงระยะไกลไปยังไดเร็กทอรีและกลไกการตรวจสอบสิทธิ์
การดูบันทึกใน Linux
หากต้องการดูบันทึกบน Linux จะสะดวกในการใช้ยูทิลิตีบรรทัดคำสั่งต่างๆ สตริงลินุกซ์. มันอาจจะเป็นใครก็ได้ โปรแกรมแก้ไขข้อความ, หรือ ยูทิลิตี้พิเศษ. เป็นไปได้มากว่าคุณจะต้องมีสิทธิ์ superuser เพื่อดูบันทึกใน Linux ต่อไปนี้เป็นคำสั่งที่ใช้บ่อยที่สุดเพื่อวัตถุประสงค์เหล่านี้:
- ซเกรป
- ซมอร์
ฉันจะไม่ลงรายละเอียดเกี่ยวกับคำสั่งแต่ละคำสั่งเหล่านี้เนื่องจากส่วนใหญ่ได้มีการพูดคุยโดยละเอียดในเว็บไซต์ของเราแล้ว แต่ฉันจะยกตัวอย่างบางส่วน การดูบันทึกของ Linux นั้นง่ายมาก:
เราดูที่บันทึก /var/log/messages พร้อมความสามารถในการเลื่อน:
น้อยกว่า /var/log/messages
ดูบันทึก Linux แบบเรียลไทม์:
tail -f /var/log/messages
เปิดไฟล์บันทึก dmesg:
cat /var/log/dmesg.cat
บรรทัดแรกของ dmesg:
หัว /var/log/dmesg
เราส่งออกข้อผิดพลาดจาก /var/log/messages เท่านั้น:
grep -i ข้อผิดพลาด /var/log/messages
นอกจากนี้ คุณสามารถดูบันทึกบน Linux ได้โดยใช้ยูทิลิตี้กราฟิก โปรแกรมระบบสามารถใช้โปรแกรมดูบันทึกได้ รับชมได้สะดวกและบันทึกการตรวจสอบระบบบนแล็ปท็อปหรือ คอมพิวเตอร์ส่วนบุคคลกับลินุกซ์
คุณสามารถติดตั้งโปรแกรมบนระบบใดก็ได้ที่ติดตั้งเซิร์ฟเวอร์ X นอกจากนี้ สามารถใช้ตัวแก้ไขการทดสอบกราฟิกเพื่อดูบันทึกได้
ข้อสรุป
ในไดเร็กทอรี /var/log คุณจะพบข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับการทำงานของ Linux จากบทความของวันนี้คุณได้เรียนรู้มากพอที่จะรู้ว่าจะต้องดูที่ไหนและควรมองหาอะไร ขณะนี้การดูบันทึกใน Linux จะไม่ทำให้คุณเกิดปัญหา หากคุณมีคำถามใด ๆ ถามในความคิดเห็น!
ผู้ใช้ Linux มือใหม่แต่ละคนประสบปัญหาในการตั้งค่าและจัดระเบียบการทำงานของระบบไม่ช้าก็เร็ว และผู้ใช้ใหม่แต่ละคนเกือบจะได้ยินคำแนะนำจากผู้ใช้ที่มีประสบการณ์มากกว่าแล้ว: “ดูบันทึก” คำแนะนำนั้นดี แต่ผู้เริ่มต้นยังจำเป็นต้องรู้: บันทึกคืออะไรและจะหาได้จากที่ไหน! ดังนั้นในบทความนี้ฉันจะพยายามบอกคุณว่าจะดูอะไรและที่ไหนในการเขียนโปรแกรมสแลง “logs” คือโปรโตคอลการทำงานที่ได้รับการดูแลทั้งโดยระบบปฏิบัติการเองและเป็นอิสระจากหลายโปรแกรม คำว่า “วารสาร” มักใช้เป็นคำพ้องความหมายกับคำว่า “โปรโตคอล” ในความหมายนี้ มีสองสถานการณ์หลักที่จำเป็นต้องวิเคราะห์โปรโตคอลเกิดขึ้น: เมื่อบางสิ่งในระบบไม่ทำงานตามที่เราคาดหวัง (การแก้ปัญหา) และเมื่อมีข้อสงสัยว่าระบบถูกแฮ็กโดยผู้โจมตีบางรายและเราจำเป็นต้อง ค้นหาว่าเกิดอะไรขึ้นกันแน่ ทำอย่างไร และต้องทำอะไรเพื่อกำจัดผลที่ตามมาจากการบุกรุก
หนึ่งในกรณีที่มีชื่อเสียงที่สุดของการใช้ไฟล์บันทึกเพื่อตรวจจับการบุกรุกของผู้โจมตีคือเรื่องราวของการจับกุมแฮ็กเกอร์ชื่อดังอย่าง Kevin Mitnick โดยผู้เชี่ยวชาญด้านความปลอดภัยคอมพิวเตอร์ Tsuomo Shimomura นี่คือหนึ่งย่อหน้าจากบทความที่อธิบายว่าสิ่งนี้เกิดขึ้นได้อย่างไร
“ในวันคริสต์มาส เมื่อชิโมมูระไปเล่นสกีที่เนวาดาในช่วงวันหยุด มีคน (เรารู้อยู่แล้วว่าใคร) บุกเข้ามาอย่างปลอดภัยสุด ๆ ของเขา คอมพิวเตอร์ที่บ้านในโซลานาบีช แคลิฟอร์เนีย และเริ่มคัดลอกไฟล์ของเขา ซึ่งเป็นไฟล์ลับหลายร้อยไฟล์ นักศึกษาระดับบัณฑิตศึกษาคนหนึ่งที่ Supercomputing Center ในซานดิเอโก ซึ่งชิโมมูระทำงานอยู่ สังเกตเห็นการเปลี่ยนแปลงในไฟล์ "บันทึก" ของระบบ และตระหนักได้อย่างรวดเร็วว่าเกิดอะไรขึ้น ทั้งหมดนี้เป็นไปได้ด้วยความจริงที่ว่า Shimomura ติดตั้งโปรแกรมบนคอมพิวเตอร์ของเขาซึ่งจะคัดลอกรายการ "บันทึกประจำวัน" ไปยังคอมพิวเตอร์สำรองในซานดิเอโกโดยอัตโนมัติ นักเรียนชื่อชิโมมูระ รีบกลับบ้านไปเอาของที่ถูกขโมยไป"
ฉันจะไม่เล่าเรื่องทั้งหมดที่นี่ สิ่งสำคัญสำหรับเราที่จะต้องทราบเพียงว่าการวิเคราะห์โปรโตคอลการทำงานของระบบทำหน้าที่เป็นพื้นฐานสำหรับความสำเร็จของการสอบสวนเรื่องการประพฤติมิชอบ คุณสามารถดูคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการดำเนินการสืบสวนดังกล่าวได้ในบทความ แต่เพื่อที่จะสามารถใช้ประโยชน์จากผลลัพธ์ของการบันทึกได้ คุณต้องเข้าใจว่าโปรโตคอลถูกสร้างขึ้นอย่างไร จัดเก็บที่ไหน และอะไรสามารถดึงออกมาจากโปรโตคอลได้ บทความนี้มีไว้เพื่อการพิจารณาประเด็นเหล่านี้ทั้งหมด
วิธีสร้างข้อความสำหรับโปรโตคอล
เราต้องเริ่มต้นด้วยความจริงที่ว่าเมื่อสร้างโปรแกรมในภาษา C โปรแกรมเมอร์มีโอกาสแทรกการเรียกไปยังฟังก์ชันพิเศษหากจำเป็น openlog, setlogmask, syslogและ ปิดเทอมรวมอยู่ในไลบรารีมาตรฐานของภาษา C ฟังก์ชั่นเหล่านี้ใช้เพื่อส่งข้อความเกี่ยวกับเหตุการณ์บางอย่างระหว่างการทำงานของโปรแกรมไปยัง daemon ระบบพิเศษ syslogdดำเนินการโปรโตคอลระบบ การทำงาน โอเพ่นล็อกสร้างความสัมพันธ์กับปีศาจ syslogd, การทำงาน บันทึกระบบสร้างข้อความเฉพาะที่จะบันทึกในโปรโตคอลและฟังก์ชัน ปิดเทอมปิดการเชื่อมต่อแบบเปิด
ข้อความที่สร้างโดยฟังก์ชัน บันทึกระบบประกอบด้วยหลายช่องคั่นด้วยช่องว่าง แต่ละข้อความเริ่มต้นด้วยช่อง ปรีดีซึ่งในรูปแบบที่เข้ารหัสประกอบด้วยข้อมูลเกี่ยวกับหมวดหมู่ของข้อความ (สิ่งอำนวยความสะดวก) และระดับความรุนแรง (ระดับความรุนแรง) หรือลำดับความสำคัญ (ลำดับความสำคัญ) ของข้อความ
หมวดหมู่ (สิ่งอำนวยความสะดวก) คือข้อมูลเกี่ยวกับคลาสของข้อความนี้ หมวดหมู่นี้ถูกเข้ารหัสด้วยตัวเลขตั้งแต่ 0 ถึง 23 มีหมวดหมู่ต่อไปนี้อยู่ (กำหนดไว้ในไฟล์ /usr/include/sys/syslog.h):
ตารางที่ 1.
ค่าตัวเลข | เครื่องหมาย | การถอดรหัส |
0 | เคิร์น | ข้อความเคอร์เนล |
1 | ผู้ใช้ | ออกแบบมาสำหรับข้อความต่างๆ จากโปรแกรมผู้ใช้ (ข้อความจากโปรแกรมผู้ใช้) |
2 | จดหมาย | ข้อความจาก ระบบไปรษณีย์. |
3 | ภูต | ข้อความจาก daemons ระบบเหล่านั้นที่ไม่มีหมวดหมู่เฉพาะสำหรับพวกเขา ซึ่งต่างจาก FTP หรือ LPR |
4 | รับรองความถูกต้อง | ทุกอย่างที่เกี่ยวข้องกับการอนุญาตผู้ใช้ เช่น การเข้าสู่ระบบและ su (สิทธิ์ความปลอดภัย/การเข้าถึง) |
5 | บันทึกระบบ | ระบบบันทึกสามารถบันทึกข้อความจากตัวมันเองได้ |
6 | แอลพีอาร์ | ข้อความจากระบบการพิมพ์ |
7 | ข่าว | ข้อความจากเซิร์ฟเวอร์ข่าว (เน็ตนิวส์, USENET) |
8 | uucp | ข้อความโปรโตคอลการคัดลอก UNIX เป็น UNIX มันเป็นส่วนหนึ่งของประวัติ UNIX และคุณอาจจะไม่ต้องการมันเลย (แม้ว่าบางเมลจะยังคงส่งผ่าน UUCP ก็ตาม) |
9 | ครอน | ข้อความจากตัวกำหนดเวลาระบบ |
10 | ถูกต้อง | เช่นเดียวกับการตรวจสอบสิทธิ์ แต่ข้อความในหมวดหมู่นี้เขียนลงในไฟล์ที่ผู้ใช้บางรายเท่านั้นที่สามารถอ่านได้ (บางทีหมวดหมู่นี้อาจถูกเลือกเนื่องจากข้อความที่อยู่ในหมวดหมู่นี้อาจมีรหัสผ่านผู้ใช้ที่ชัดเจนซึ่งคนแปลกหน้าไม่ควรเห็น ดังนั้นไฟล์บันทึกจึงต้องมี สิทธิ์การเข้าถึงที่เหมาะสม) |
11 | ftp | เมื่อใช้หมวดหมู่นี้ คุณสามารถกำหนดค่าเซิร์ฟเวอร์ FTP ของคุณเพื่อให้บันทึกกิจกรรมได้ |
จาก 12 ถึง 15 | - | สงวนไว้สำหรับการใช้งานระบบ |
จาก 16 ถึง 23 | ท้องถิ่น0 - ท้องถิ่น7 | หมวดหมู่ที่สงวนไว้สำหรับใช้งานโดยผู้ดูแลระบบ โดยทั่วไปหมวดหมู่ local7 จะใช้สำหรับข้อความที่สร้างขึ้นในระหว่างขั้นตอนการบูตระบบ |
หมวดหมู่ รับรองความถูกต้องมีชื่อพ้องที่ล้าสมัย ความปลอดภัยซึ่งไม่แนะนำ นอกจากนี้ยังมีหมวดพิเศษ เครื่องหมาย(ซึ่งไม่มีค่าเทียบเท่าทางดิจิทัล) ซึ่งถูกกำหนดให้กับแต่ละข้อความที่สร้างโดยปีศาจเอง syslogd. หมวดหมู่นี้ใช้เพื่อวางเครื่องหมายพิเศษในโปรโตคอลตามช่วงเวลาที่กำหนด (โดยค่าเริ่มต้นทุกๆ 20 นาที) ซึ่งช่วยให้สามารถค้นหาด้วยความแม่นยำ 20 นาทีเมื่อคอมพิวเตอร์ของคุณค้าง
โปรดทราบว่าหมวดหมู่โดยทั่วไปไม่เกี่ยวข้องกับชื่อของโปรแกรมที่ส่งข้อความไปยัง daemon syslogd. อย่างที่เขาว่ากัน ทุกความบังเอิญล้วนเป็นโอกาสล้วนๆ นอกจากนี้บางโปรแกรมอาจสร้างข้อความประเภทต่างๆ เช่น ปีศาจ เทลเน็ตในกรณีที่พยายามบันทึกไม่สำเร็จ จะสร้างข้อความหมวดหมู่ ถูกต้องและในกรณีอื่นๆ จะจัดหมวดหมู่ข้อความของพวกเขา ภูต.
พารามิเตอร์ตัวที่สองตามค่าของฟิลด์ที่ถูกสร้างขึ้น ปรีดีคือระดับหรือลำดับความสำคัญของข้อความ (priority) นั่นคือข้อมูลเกี่ยวกับระดับความสำคัญของข้อความ ตามค่าเริ่มต้น จะมีการระบุระดับความสำคัญ 8 ระดับ (จะกำหนดไว้ในไฟล์ด้วย /usr/include/sys/syslog.h) ซึ่งเขียนด้วยตัวเลขตั้งแต่ 0 ถึง 7:
ตารางที่ 2.
ค่าตัวเลข | เครื่องหมาย | การถอดรหัส |
0 | โผล่ออกมา(ชื่อเก่า แพนิค) | ภาวะฉุกเฉิน. ระบบไม่ทำงาน |
1 | เตือน | ความวิตกกังวล! จำเป็นต้องมีการแทรกแซงทันที |
2 | คริติคอล | ข้อผิดพลาดร้ายแรง(สภาวะวิกฤติ) |
3 | ผิดพลาด(ชื่อเก่าผิดพลาด) | ข้อความผิดพลาด. |
4 | คำเตือน(ชื่อเก่า คำเตือน) | คำเตือน. |
5 | สังเกต | ข้อมูลเกี่ยวกับเหตุการณ์ปกติแต่สำคัญบางอย่าง |
6 | ข้อมูล | ประกาศ. |
7 | แก้ปัญหา | ข้อความที่สร้างขึ้นระหว่างการแก้ไขข้อบกพร่อง |
สนาม ปรีดีข้อความถูกสร้างขึ้นดังนี้: ค่าตัวเลขของหมวดหมู่จะถูกคูณด้วย 8 และเพิ่มเข้ากับค่าตัวเลขของลำดับความสำคัญหมายเลขผลลัพธ์จะอยู่ในวงเล็บมุมและเขียนในฟิลด์
ตามสนาม ปรีดีข้อความประกอบด้วยฟิลด์ต่อไปนี้:
- การประทับเวลา- เวลาในการสร้างข้อความ
- ชื่อโฮสต์- ชื่อโฮสต์หรือที่อยู่ IP ในรูปแบบทศนิยม
- ผงชูรส- ข้อความข้อความที่กำหนดเอง - สตริงข้อความ (ข้อมูล) บางส่วนในรหัส US-ASCII (0x20 - 0x7e)
เวลา (ท้องถิ่น!) เขียนในรูปแบบ: 13 ก.พ. 21:12:06 น. หากหมายเลขวันเป็นตัวเลขหลักเดียว ระบบจะเว้นวรรคเพิ่มเติม (ไม่ใช่ 0!) ไว้ข้างหน้า โปรดทราบว่าไม่มีปีและโซนในวันที่ซึ่งจะต้องนำมาพิจารณาเมื่อจัดระเบียบไฟล์บันทึกในระยะยาว เพื่อให้เวลาในข้อความถูกต้อง จะต้องซิงโครไนซ์ (เช่น การใช้โปรโตคอล NTP)
ชื่อโฮสต์จะรวมอยู่ในข้อความเพื่อหลีกเลี่ยงความสับสนระหว่างข้อความจากโฮสต์ที่แตกต่างกัน เนื่องจากดังที่เห็นด้านล่าง การบันทึกอาจเกิดขึ้นบนคอมพิวเตอร์เครื่องใดเครื่องหนึ่งบนเครือข่ายโดยเฉพาะ ชื่อโฮสต์คือชื่อเครือข่ายแบบธรรมดาของคอมพิวเตอร์ โดยไม่ต้องระบุโดเมน หากคอมพิวเตอร์มีอินเทอร์เฟซหลายตัวที่มีที่อยู่ IP ต่างกัน ก็สามารถใช้เป็นชื่อโฮสต์หรือที่อยู่ได้
ข้อความ ( ผงชูรส) มักจะมีป้ายกำกับ ( แท็ก) ระบุโปรแกรมหรือกระบวนการที่ออกข้อความ และเนื้อความของข้อความ ( เนื้อหา). ฉลากอาจมีตัวอักษรละตินและตัวเลข โดยทั่วไปแล้ว ป้ายกำกับจะเป็นชื่อโปรแกรมแบบธรรมดา ซึ่งบางครั้งเสริมด้วยตัวระบุกระบวนการที่อยู่ในวงเล็บเหลี่ยม เนื้อความของข้อความถูกแยกออกจากป้ายกำกับด้วยอักขระพิเศษ - ใน Linux โดยปกติจะเป็นเครื่องหมายทวิภาคและช่องว่าง
การประมวลผลข้อความโดย syslogd daemon
ข้อความทั้งหมดที่สร้างโดยแต่ละโปรแกรมที่ใช้ฟังก์ชัน บันทึกระบบ, ส่งผ่านซ็อกเก็ต /dev/logดีมอนของระบบ syslogdซึ่งมีหน้าที่รับผิดชอบในการประมวลผลข้อความเหล่านี้ ต้องบอกว่าในความเป็นจริงแล้ว มีการเปิดตัว daemons การบันทึกสองตัวในระบบ - syslogdและ ล็อกด์. ภูตทั้งสองรวมอยู่ในแพ็คเกจ sysklogdเวอร์ชันล่าสุดที่คุณสามารถหาได้บนเว็บไซต์
ภูต ล็อกด์มีหน้าที่รับผิดชอบในการบันทึกเหตุการณ์ที่เกิดขึ้นในเคอร์เนลของระบบ ความจำเป็นในการแยกภูต ล็อกด์เนื่องจากเคอร์เนลไม่สามารถใช้ฟังก์ชันมาตรฐานได้ บันทึกระบบ. ความจริงก็คือว่า ห้องสมุดมาตรฐาน(รวมถึงห้องสมุดที่ฟังก์ชั่นนั้นตั้งอยู่ด้วย บันทึกระบบ) มีไว้สำหรับใช้งานโดยแอปพลิเคชันทั่วไปเท่านั้น เนื่องจากเคอร์เนลยังต้องการฟังก์ชันที่คล้ายกัน จึงมีไลบรารีของตัวเองที่ไม่สามารถใช้งานได้กับแอปพลิเคชันต่างๆ ดังนั้นเคอร์เนลจึงใช้กลไกการสร้างข้อความของตัวเอง ภูต ล็อกด์ได้รับการออกแบบมาเพื่อจัดระเบียบการประมวลผลข้อความเหล่านี้ โดยหลักการแล้ว เขาสามารถดำเนินการประมวลผลดังกล่าวได้โดยสมบูรณ์โดยอิสระและเป็นอิสระจาก syslogdตัวอย่างเช่น โดยการบันทึกข้อความเหล่านี้ลงในไฟล์ แต่โดยส่วนใหญ่แล้ว จะใช้การตั้งค่าเริ่มต้น ล็อกด์ซึ่งข้อความทั้งหมดจากเคอร์เนลจะถูกส่งต่อไปยัง daemon เดียวกัน syslogd.
เพื่อให้แน่ใจว่าปีศาจ syslogdและ ล็อกด์ทำงานบนระบบของคุณ ให้รันคำสั่ง PS -ขวาน | บันทึก grep. คำสั่งนี้ให้ผลลัพธ์ต่อไปนี้แก่ฉัน:
$ PS -ขวาน | บันทึก grep 569? S 0:00 syslogd -m 0 574 ? ส 0:00 klogd -x 1013 ? ส 0:00 เข้าสู่ระบบ -- คอส 1191 ? S 0:00 kalarmd --login สองบรรทัดแรกระบุว่า daemons การบันทึกกำลังทำงานอยู่ในระบบกำลังประมวลผลข้อความโดย daemon syslogdคือจะตรวจสอบลักษณะที่ปรากฏของข้อความอย่างต่อเนื่องและเปรียบเทียบแต่ละรายการที่เข้ามากับกฎที่อยู่ในไฟล์ /etc/syslog.conf. แต่ละกฎถูกเขียนเป็นบรรทัดไฟล์ /etc/syslog.confประกอบด้วยสองช่อง ฟิลด์ด้านซ้าย ("ตัวเลือก") ระบุเทมเพลตหนึ่งรายการขึ้นไปที่ใช้เลือกข้อความ รูปแบบจะคั่นด้วยเครื่องหมายอัฒภาค (ดูไฟล์ตัวอย่างด้านล่าง /etc/syslog.conf). ช่องด้านขวา (“การกระทำ”) จะกำหนดลำดับในการประมวลผลข้อความที่เลือก ช่องต่างๆ จะถูกคั่นด้วยช่องว่างหรืออักขระแท็บตั้งแต่หนึ่งช่องขึ้นไป
แต่ละรูปแบบในช่อง "ตัวเลือก" จะอยู่ในรูปแบบ "category.level" (นั่นคือ "facility.priority") ค่าของฟิลด์ "หมวดหมู่" อาจเป็น:
- หนึ่งในชื่อทั่วไปของหมวดหมู่ที่ระบุไว้ในตารางที่ 1
- ชื่อดังกล่าวหลายชื่อ (ในกรณีนี้จะคั่นด้วยเครื่องหมายจุลภาค)
- หรือสัญลักษณ์ * (หมายถึง "ทุกหมวดหมู่")
ค่าของฟิลด์ "ระดับ" อาจเป็น:
- หนึ่งในชื่อระดับที่ระบุไว้ในตารางที่ 2
- สัญลักษณ์ * (บันทึกข้อความทั้งหมดในหมวดนี้โดยไม่คำนึงถึงระดับ)
- หรือคำพูด ไม่มี(ห้ามบันทึกข้อความในหมวดนี้)
การระบุค่าเฉพาะในช่อง "ระดับ" จะถูกตีความว่าเป็น "ค่าทั้งหมด ระดับนี้และสูงกว่า" หากคุณต้องการบันทึกข้อความเพียงระดับเดียวคุณต้องใส่เครื่องหมายเท่ากับ ("=") หน้าค่าที่ระบุ หากคุณต้องการบันทึกข้อความทุกระดับยกเว้นระดับที่ระบุ วางไว้หน้าชื่อระดับ เครื่องหมายอัศเจรีย์("!") การติดป้ายทั้งสองนี้พร้อมกัน ถือเป็น “ห้ามบันทึกข้อความตามระดับที่กำหนดหรือสูงกว่า”
ไม่มีความแตกต่างระหว่างอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในช่อง "ตัวเลือก" คุณยังสามารถใช้ตัวเลขได้ (ดู /usr/include/syslog.h) นอกเหนือจากหมวดหมู่ที่ระบุไว้ในตารางที่ 1 แล้ว คุณยังสามารถระบุได้ เครื่องหมาย(การประทับเวลาปกติ) และ ความปลอดภัย(คำพ้องความหมายล้าสมัยสำหรับ รับรองความถูกต้อง). นอกจากค่าลำดับความสำคัญที่แสดงในตารางที่ 2 แล้วคุณยังสามารถใช้ เตือน(คำพ้องความหมายสำหรับ คำเตือน), ข้อผิดพลาด(คำพ้องความหมายสำหรับ ผิดพลาด), ตื่นตกใจ(คำพ้องความหมายสำหรับ โผล่ออกมา).
เมื่อพบการจับคู่ระหว่างหมวดหมู่และระดับของข้อความที่ได้รับและรูปแบบใดรูปแบบหนึ่งในช่อง "ตัวเลือก" ของสตริงบางรายการ syslogdประมวลผลบันทึกตามการดำเนินการที่ระบุในฟิลด์ "การดำเนินการ" ของบรรทัดนี้
ช่อง "การกระทำ" สามารถประกอบด้วยได้
- ต้องระบุชื่อของไฟล์ปกติ (ไฟล์บันทึก) และเส้นทางแบบเต็มไปยังไฟล์โดยเริ่มจากรูท "/" และหากไม่มีไฟล์ที่ระบุ syslogdสร้างมันขึ้นมา
- ชื่อของไปป์ที่มีชื่อ - FIFO; ในกรณีนี้ แถบแนวตั้ง ("|") จะถูกวางไว้หน้าชื่อ และต้องสร้างช่องเองก่อนที่จะเริ่ม syslogdทีม เอ็มเคฟิโฟ,
- ชี้ไปที่เทอร์มินัลหรือคอนโซล (เช่นเดียวกับในอุปกรณ์: /dev/tty1)
- การบ่งชี้โฮสต์ระยะไกล (นำหน้าด้วยสัญลักษณ์ @)
- หรือรายชื่อผู้ใช้ (คั่นด้วยเครื่องหมายจุลภาค) ซึ่งเทอร์มินัลจะส่งข้อความตามกฎนี้ แทนที่จะใส่รายชื่อผู้ใช้ คุณสามารถใส่เครื่องหมายดอกจัน (*) ซึ่งหมายความว่าข้อความจะถูกส่งไปยังผู้ใช้ทุกคนที่ทำงาน ช่วงเวลานี้ในระบบ
บ่อยครั้งที่ฟิลด์ "การกระทำ" ยังคงมีชื่อของไฟล์บันทึก ยิ่งกว่านั้น คุณสามารถใส่เครื่องหมายลบ ("-") ไว้หน้าชื่อไฟล์ได้ ซึ่งหมายความว่าระบบสามารถจัดเก็บไฟล์ไว้ในแคชบัฟเฟอร์ แทนที่จะล้างข้อมูลหลังจากเขียนแต่ละข้อความลงดิสก์ แน่นอนว่าสิ่งนี้จะทำให้งานเร็วขึ้น โดยเฉพาะอย่างยิ่งหากมีการเขียนข้อความขนาดใหญ่จำนวนมากไปยังโปรโตคอล แต่อาจทำให้ข้อความบางส่วนสูญหายได้ในกรณีที่ระบบล่มโดยไม่คาดคิด นั่นคือเมื่อข้อความดังกล่าวมีความจำเป็นอย่างยิ่ง . คุณยังสามารถระบุเครื่องพิมพ์ - /dev/lp0 - เป็นอุปกรณ์ในฟิลด์ "การกระทำ" ขอแนะนำให้ใช้ตัวเลือก "การดำเนินการ" นี้ในกรณีที่เกี่ยวข้องกับระบบที่สำคัญเป็นพิเศษ โปรโตคอลที่พิมพ์ออกมาไม่สามารถลบหรือแก้ไขโดยแฮกเกอร์ได้ ดังนั้นจึงเหมาะสำหรับเครื่องพิมพ์ดอทเมทริกซ์รุ่นเก่า
นอกจากบรรทัดที่มีกฎเกณฑ์ในไฟล์แล้ว /etc/syslog.confอาจมี เส้นว่างและบรรทัดแสดงความคิดเห็นที่ขึ้นต้นด้วยสัญลักษณ์ # ข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างไฟล์ /etc/syslog.confคุณสามารถอ่านหน้าคู่มือ syslog.conf เพื่อดูตัวอย่างรายการกฎบางส่วนในไฟล์นี้ โปรดทราบว่าเมื่อระบุคู่ “category.level” ในไฟล์ syslog.confไม่สามารถใช้งานได้ ค่าตัวเลขตามที่กำหนดในตารางที่ 1 และ 2 อนุญาตให้ใช้เฉพาะชื่อทั่วไปเท่านั้น
หากข้อความตรงกับรูปแบบของสตริงตั้งแต่สองสตริงขึ้นไป ข้อความนั้นจะถูกประมวลผลตามกฎแต่ละข้อเหล่านั้น (นั่นคือ การประมวลผลข้อความไม่ได้หยุดเมื่อสำเร็จครั้งแรก) ซึ่งหมายความว่าสามารถดำเนินการจำนวนเท่าใดก็ได้สำหรับข้อความเดียว ดังนั้น คุณจึงสามารถเขียนข้อความลงในไฟล์บันทึกและส่งไปยังผู้ใช้หรือโฮสต์ระยะไกลได้
นอกจากนี้ หากช่อง "ตัวเลือก" แสดงรายการ (คั่นด้วยเครื่องหมายอัฒภาค) หลายคู่ "category.level" คู่ที่ตามมาก็สามารถแทนที่คู่ก่อนหน้าได้ คุณสามารถดูตัวอย่างการยกเลิกดังกล่าวได้ในรายการไฟล์ด้านล่าง /etc/syslog.conf: ข้อความทั้งหมดที่มีระดับเท่ากับหรือสูงกว่าข้อมูลจะถูกเขียนลงในไฟล์ /var/log/messages แต่ข้อความจากหมวดหมู่เมล, authpriv และ cron จะถูกข้ามไป (ไม่ได้เขียน)
รายการ 1. ไฟล์ /etc/syslog.confจากระบบที่สร้างขึ้นบนการกระจาย Red Hat Linux 7.1 (ฉันแปลเฉพาะความคิดเห็นที่มีอยู่ในไฟล์นี้เป็นภาษารัสเซียและเน้นกฎด้วยตัวหนา) |
# พิมพ์ข้อความทั้งหมดจากเคอร์เนลไปยังคอนโซล #kern.* /dev/console# บันทึกข้อความทั้งหมดในระดับข้อมูลหรือสูงกว่า # ยกเว้นข้อความระบบเมลที่มี # ข้อมูลที่ละเอียดอ่อนจากข้อความการตรวจสอบสิทธิ์และข้อความ cron daemon *.info;mail.none;authpriv.none;cron.none /var/log/messages# เขียนข้อความที่มีข้อมูลการรับรองความถูกต้อง # ที่ละเอียดอ่อนไปยังไฟล์แยกต่างหาก โดยไม่คำนึงถึงระดับของพวกเขา authpriv.* /var/log/secure# ข้อความทั้งหมดจากระบบเมลควรถูกบันทึกแยกกัน เมล.* /var/log/maillog# บันทึกการกระทำของ cron daemon cron.* /var/log/cron# ข้อความฉุกเฉินควรได้รับทันที # โดยผู้ใช้ระบบทุกคน *.ฉุกเฉิน*# เขียนข้อความจากบริการข่าวในระดับคริติคอลและสูงกว่าไปยังไฟล์แยกต่างหาก uucp,news.crit /var/log/spooler# ข้อความที่ออกระหว่างขั้นตอนการบู๊ตจะถูกคัดลอกไปยังไฟล์ boot.log local7.* /var/log/boot.log |
ไฟล์บันทึก /var/log/messages
แน่นอนว่าเป็นไปไม่ได้ที่จะพูดถึงเนื้อหาแต่ละบรรทัดของไฟล์นี้ที่นี่ เพื่อให้ผู้อ่านทราบว่าข้อมูลใดบ้างที่สามารถพบได้ในโปรโตคอล เราจะนำเสนอบรรทัดข้อความแต่ละบรรทัดพร้อมความคิดเห็นสั้น ๆ
แต่ละบรรทัดในไฟล์บันทึกประกอบด้วยบันทึกข้อความเดียว ซึ่งประกอบด้วยช่องข้อความต่อไปนี้ โดยคั่นด้วยช่องว่าง:
- วันที่ในรูปแบบข้อความมาตรฐาน (field การประทับเวลาจากข้อความ บันทึกระบบ),
- ชื่อโฮสต์ (field ชื่อโฮสต์จากข้อความ บันทึกระบบ)
- ข้อความ (ช่อง แท็กและ เนื้อหาจากข้อความ บันทึกระบบ)
ประการแรก เป็นที่น่าสังเกตว่าหากคอมพิวเตอร์ของคุณไม่ได้ทำงานตลอด 24 ชั่วโมงทุกวัน แต่ถูกปิดในเวลากลางคืน จากนั้นในไฟล์นี้ คุณจะพบบันทึกของ "รอบการทำงาน" ต่างๆ เริ่มต้นด้วยการบูตคอมพิวเตอร์และสิ้นสุดด้วยการปิดเครื่อง วงจรดังกล่าวเริ่มต้นด้วยข้อความเกี่ยวกับการเปิดตัว Daemon การบันทึก (เป็นสิ่งที่เข้าใจได้ ข้อความไม่ได้ถูกบันทึกก่อนที่จะเปิดตัว):
17 ก.ย. 08:32:56 kos3 syslogd 1.4-0: รีสตาร์ท 17 กันยายน 08:32:56 kos3 syslog: การเริ่มต้น syslogd สำเร็จ 17 กันยายน 08:32:56 เคอร์เนล kos3: klogd 1.4-0 แหล่งที่มาของบันทึก = /proc/kmsg เริ่มต้นแล้ว 17 ก.ย. 08:32:56 เคอร์เนล kos3: กำลังตรวจสอบ /boot/System.map-2.4.2-2 17 ก.ย. 08:32:56 kos3 syslog: การเริ่มต้น klogd สำเร็จ
รายการในไฟล์โปรโตคอลอื่นที่กล่าวถึงในไฟล์มีโครงสร้างที่เหมือนกันโดยประมาณ /etc/syslog.conf.
คำสั่ง logger และ tailf
จากคำอธิบายก่อนหน้านี้ เราสามารถสรุปได้ว่าการออกข้อความทั้งหมดสำหรับบันทึกระบบควรถูกระบุโดยโปรแกรมเมอร์ในขั้นตอนของการสร้างโปรแกรม สิ่งนี้ไม่เป็นความจริงทั้งหมด ผู้ใช้ยังมีโอกาสส่งข้อความถึงปีศาจอีกด้วย syslogd. มีคำสั่งสำหรับสิ่งนี้ใน Linux คนตัดไม้ซึ่งอนุญาตให้ส่งข้อความจากบรรทัดคำสั่ง (sh, bash ฯลฯ ) มันเป็นส่วนหนึ่งของแพ็คเกจ util-linux โดยปกติแล้ว คำสั่งนี้มีวัตถุประสงค์หลักเพื่อให้ความสามารถในการบันทึกเมื่อผู้ใช้สร้างเชลล์สคริปต์ประเภทต่างๆ แต่สามารถเปิดใช้งานได้โดยตรงจากบรรทัดคำสั่ง เช่น เพื่อทำความคุ้นเคยกับความสามารถของระบบบันทึก รูปแบบการเปิดตัวคำสั่ง: คนตัดไม้ [-isd] [-f ไฟล์] [-p PRI] [-t TAG] [-u ซ็อกเก็ต]ตัวเลือกบรรทัดคำสั่งมีความหมายดังต่อไปนี้:
- -ฉัน- รวมหมายเลขกระบวนการในข้อความ
- -ส- ทำซ้ำข้อความถึง stderr
- -d- ใช้โหมดดาตาแกรมเมื่อส่งข้อความ (แทนการสตรีมตามปกติ)
- -f ชื่อไฟล์- บันทึกข้อความไปที่ ไฟล์ที่ระบุ(ค่าเริ่มต้นคือ /var/log/messages)
- -p สิ่งอำนวยความสะดวกระดับ- กำหนดหมวดหมู่และลำดับความสำคัญของข้อความ (ค่าเริ่มต้น: user.notice)
- -t แท็ก - ตั้งค่าฟิลด์ TAG
- -คุณเสียบปลั๊ก- ส่งข้อความไปยังซ็อกเก็ตที่ระบุแทนที่จะเรียก syslogd
- ผงชูรส- ข้อความ
ส่งข้อความหลายข้อความโดยใช้โปรแกรม คนตัดไม้และชื่นชมผลลัพธ์ในไฟล์ /var/log/messages(เว้นแต่คุณจะเปลี่ยนค่าเริ่มต้นแน่นอน)
มีวิธีที่น่าสนใจมากในการดูข้อความที่เขียนลงในไฟล์ /var/log/messagesทีม คนตัดไม้. วิธีการนี้จะขึ้นอยู่กับการใช้งาน โปรแกรมพิเศษ หาง. เปิดหน้าต่างเทอร์มินัล รับสิทธิ์ superuser (ด้วยคำสั่ง ซู) และรันคำสั่งในหน้าต่างนี้
tailf /var/log/messages.txt
หลังจากนั้นให้สลับไปที่เทอร์มินัลอื่นแล้วรันคำสั่งที่นั่น คนตัดไม้ free_text. ข้อความของคุณจะปรากฏขึ้นทันทีในหน้าต่างที่โปรแกรมกำลังทำงานอยู่ หาง. นั่นคือด้วยความช่วยเหลือของโปรแกรมนี้ผู้ดูแลระบบสามารถตรวจสอบการบันทึกข้อความใหม่ในโปรโตคอลแบบเรียลไทม์ จริง, ผู้ดูแลระบบแทบไม่มีเวลาที่จะติดตามพฤติกรรมของระบบในลักษณะนี้ (ยกเว้นบางที สถานการณ์ฉุกเฉิน). ดังนั้นจึงมีการพัฒนาโปรแกรมพิเศษเพื่อวิเคราะห์โปรโตคอล แต่เพิ่มเติมเกี่ยวกับพวกเขาด้านล่าง แต่สำหรับตอนนี้เรามาดูคำถามว่าจะจัดระเบียบการเฝ้าระวังคอมพิวเตอร์ระยะไกลได้อย่างไร (จำได้ไหมว่าคุณจับผู้โจมตี Shimomura ได้อย่างไร)
การบันทึกเครือข่าย
ตามที่ระบุไว้ daemon สามารถส่งข้อความระบบการบันทึกได้ syslogdไปยังโฮสต์ระยะไกล แต่มีคนต้องยอมรับเขาที่นั่น ปรากฎว่าปีศาจตัวเดียวกันกำลังทำเช่นนี้ syslogdที่ทำงานบนโฮสต์ระยะไกลนี้ อย่างแม่นยำมากขึ้น, syslogdบนคอมพิวเตอร์เครื่องใดก็ได้สามารถฟังได้ไม่เพียง แต่จากซ็อกเก็ต /dev/log (ซึ่งรับข้อความจากแหล่งในเครื่อง) แต่ยังรวมถึงพอร์ต 514/UDP ซึ่งช่วยให้มั่นใจว่าได้รับข้อความจากคอมพิวเตอร์เครื่องอื่นในเครือข่ายท้องถิ่น (และการบันทึกในภายหลังใน ไฟล์ในเครื่อง). สิ่งนี้ทำให้สามารถสร้าง "เซิร์ฟเวอร์การบันทึก" ซึ่งสะดวกมากสำหรับผู้ดูแลระบบ (เหตุการณ์ทั้งหมดบนเครือข่ายได้รับการตรวจสอบในที่เดียว) และยังเพิ่มความปลอดภัยของเครือข่ายด้วย เนื่องจากข้อความเกี่ยวกับการเจาะระบบของแฮ็กเกอร์ โฮสต์เครือข่ายไม่สามารถรายงานการลบออกจากโปรโตคอลได้ทันทีโดยแฮกเกอร์รายนี้
อย่างไรก็ตาม เพื่อจัดระเบียบ "การบันทึกเครือข่าย" ดังกล่าว จะต้องพยายามเพิ่มเติมบางประการ
ประการแรก เนื่องจากพอร์ต 514/UDP ใช้ในการส่งและรับข้อความผ่านเครือข่าย จึงต้องมีให้บริการบนคอมพิวเตอร์ทั้งสองเครื่อง (ไคลเอ็นต์และเซิร์ฟเวอร์) เมื่อต้องการทำสิ่งนี้ในไฟล์ /etc/servicesต้องมีบรรทัดบนคอมพิวเตอร์ทั้งสองเครื่อง
ซิสล็อก 514/udp
ถ้าเข้าแถวแบบนี้. /etc/servicesไม่มา, syslogdไม่สามารถรับข้อความหรือส่งไปยังเครือข่ายได้เนื่องจากไม่สามารถเปิดพอร์ต UDP ได้ หากเกิดสถานการณ์เช่นนี้ syslogdหยุดเขียนข้อความใดๆ ทันที แม้แต่ในบันทึกในเครื่องก็ตาม ขณะเดียวกันก็อย่างที่ทีมแสดงให้เห็น ปลมันยังคงอยู่ในหน่วยความจำและยังเก็บข้อความไว้ในบัฟเฟอร์บางส่วนเพราะหากบรรทัด " ซิสล็อก 514/udp"คืนค่าเป็นไฟล์ /etc/servicesบนไคลเอนต์แล้วโดย อย่างน้อยข้อความ "หายไป" บางข้อความยังคงปรากฏในบันทึก (หลังจากรีสตาร์ทแล้ว syslogd).
ประการที่สองเมื่อเริ่มต้นภูต syslogdต้องระบุตัวเลือกบนเซิร์ฟเวอร์ -รซึ่งมีความสามารถในการบันทึกระยะไกล (default daemon syslogdรอข้อความจากซ็อกเก็ตในเครื่องเท่านั้น) วิธีและสถานที่ในการตั้งค่าตัวเลือกนี้จะกล่าวถึงด้านล่าง ในหัวข้อการเริ่มต้น daemon syslogd.
และประการที่สาม การตั้งค่าในไฟล์จะต้องได้รับการแก้ไขตามนั้น /etc/syslog.confบนคอมพิวเตอร์ทั้งสองเครื่อง ตัวอย่างเช่น หากคุณต้องการเปลี่ยนเส้นทางข้อความทั้งหมดไปยังเซิร์ฟเวอร์การบันทึก คุณจะต้องเขียนไฟล์ลงในคอมพิวเตอร์ไคลเอนต์ /etc/syslog.confบรรทัดเช่นนี้:
*.* @ชื่อโฮสต์
หากในช่วงเริ่มต้นของปีศาจ syslogdเซิร์ฟเวอร์จะไม่พร้อมใช้งาน (เช่น ขณะนี้ถูกตัดการเชื่อมต่อจากเครือข่าย) หรือไม่สามารถพบได้ตามชื่อ (บริการ DNS ทำงานไม่ถูกต้อง) syslogdพยายามค้นหาเซิร์ฟเวอร์อีก 10 ครั้ง และหากไม่พบเซิร์ฟเวอร์หลังจากนั้น ก็จะหยุดพยายามและส่งข้อความที่เกี่ยวข้อง
หากคุณมีหลายโดเมนบนเครือข่ายของคุณที่ให้บริการโดยเซิร์ฟเวอร์บันทึกข้อมูลเดียว ไม่ต้องแปลกใจที่บันทึกบนเซิร์ฟเวอร์จะมีชื่อเต็มของไคลเอ็นต์ (รวมถึงโดเมนด้วย) จริงอยู่เมื่อเริ่มต้น syslogdสามารถใช้ตัวเลือกได้ -s โดเมน_ลิสต์หรือ -l โฮสต์_รายการซึ่งจัดให้มีการแทนที่ชื่อโฮสต์แบบเต็มในโปรโตคอลด้วยชื่อย่อ (โดยไม่ต้องระบุโดเมน)
อย่าลืมหลังจากปรับตัวเลือกการเรียกใช้และไฟล์แล้ว /etc/syslog.confรีสตาร์ท daemon เพราะไม่เหมือน ครอน, sysklogdไม่อ่านไฟล์การกำหนดค่าซ้ำโดยอัตโนมัติ
ตัวเลือกการเริ่มต้น syslogd daemon
เนื่องจากเราได้กล่าวถึงปัญหาของการตั้งค่าพารามิเตอร์การเรียกใช้ daemon ในส่วนย่อยก่อนหน้า syslogdเรามาดูรายละเอียดปัญหานี้กันดีกว่า ดังที่ได้กล่าวไปแล้ว การบันทึกทั้งสอง daemons จะถูกเปิดใช้งานในขั้นตอนการเริ่มต้นระบบ และโดยเฉพาะอย่างยิ่งผ่านสคริปต์ /etc/rc.d/init.d/syslog(ซึ่งสำหรับสคริปต์เริ่มต้นสำหรับบริการอื่น ๆ ลิงก์สัญลักษณ์จะถูกสร้างขึ้นในไดเร็กทอรี /etc/rc.d/rc?.d/) อย่างไรก็ตาม เพื่อตั้งค่าพารามิเตอร์การเรียกใช้งาน ไม่จำเป็นต้องปรับสคริปต์นี้ เนื่องจากตั้งแต่เวอร์ชัน 7.2 ในการแจกจ่าย Red Hat ตัวเลือกการเรียกใช้สำหรับ daemons ทั้งสองจะถูกอ่านจากไฟล์การกำหนดค่าแยกต่างหาก /etc/sysconfig/syslog.php. ต่อไปนี้เป็นรายการสั้นๆ ของพารามิเตอร์ที่เป็นไปได้สำหรับ daemon syslogd.เรียกใช้พารามิเตอร์ syslogd:
- -ปลั๊กไฟ- ระบุซ็อกเก็ตเพิ่มเติมที่ daemon จะรับฟัง syslogd. คุณสามารถระบุซ็อกเก็ตได้สูงสุด 19 ซ็อกเก็ต (เป็นไปได้มากกว่านี้ แต่คุณต้องคอมไพล์แพ็คเกจใหม่) ตัวเลือกนี้ใช้ในกรณีที่ daemon อื่น (เช่น ftp หรือ http) ทำงานในสภาพแวดล้อมที่จำกัด (การ chrooting)
- -d- โหมดแก้ไขข้อบกพร่อง ในกรณีนี้ปีศาจจะไม่เข้าไป โหมดพื้นหลังและส่งข้อความทั้งหมดไปยังเทอร์มินัลปัจจุบัน
- -f ชื่อไฟล์ configระบุชื่อของไฟล์คอนฟิกูเรชันอื่นที่จะใช้แทนไฟล์ดีฟอลต์ /etc/syslog.conf.
- -ชมค่าเริ่มต้นใน sysklogdห้ามถ่ายโอนข้อความที่ได้รับผ่านเครือข่ายไปยังคอมพิวเตอร์เครื่องอื่น การทำเช่นนี้เพื่อป้องกันการถ่ายโอนข้อความรอบวงแหวนอย่างไม่มีที่สิ้นสุด ตัวเลือก -h ช่วยให้คุณเปลี่ยนพฤติกรรมปกติและตรวจสอบให้แน่ใจว่าข้อความที่ได้รับจากโฮสต์ระยะไกลถูกส่งต่อไปผ่านเครือข่าย (และดูแลการวนซ้ำที่เป็นไปได้ด้วยตัวคุณเอง)
- -l รายชื่อโฮสต์- ระบุรายชื่อโฮสต์ที่ไม่ควรเขียนชื่อด้วยชื่อโดเมนแบบเต็ม (FQDN - ชื่อโดเมนแบบเต็ม) ชื่อในรายการจะถูกคั่นด้วยเครื่องหมายทวิภาค
- -นาทีเปิดตัวโดยไม่มีตัวเลือกนี้ sysklogdเป็นประจำ (ทุกๆ 20 นาที) บันทึกข้อความหมวดหมู่ในโปรโตคอล เครื่องหมายนั่นคือเพียงการประทับเวลา การใช้ตัวเลือก -มคุณสามารถเปลี่ยนช่วงเวลาระหว่างเครื่องหมายหรือยกเลิกการส่งข้อความดังกล่าวโดยสมบูรณ์ซึ่งคุณต้องตั้งค่าช่วงเวลาเป็นศูนย์: -ม. 0.
- -nอย่าจางหายไปในพื้นหลัง อ็อพชันนี้จำเป็นในกรณีที่ syslogd เริ่มต้นและควบคุมโดยกระบวนการ ในนั้น.
- -p ซ็อกเก็ตระบุซ็อกเก็ต UNIX สำรอง (แทนที่จะเป็นซ็อกเก็ตที่กำลังฟังอยู่ /dev/log). โปรดทราบ: ตัวเลือก -กระบุซ็อกเก็ตเพิ่มเติมและ -พี- ทางเลือก!
- -รอนุญาตให้รับข้อความจากโฮสต์ระยะไกล เราได้พูดถึงเรื่องนี้ไปแล้วในหัวข้อที่แล้ว ดังนั้นผมขอละรายละเอียดไว้
- -s รายชื่อโดเมนระบุรายการโดเมนที่ไม่จำเป็นต้องบันทึกชื่อพร้อมกับชื่อโฮสต์ (นั่นคือ สำหรับโดเมนเหล่านี้ เฉพาะชื่อโฮสต์เท่านั้นที่จะถูกบันทึกแทนชื่อโดเมนแบบเต็ม (FQDN) ชื่อในรายการคือ คั่นด้วยเครื่องหมายโคลอน ชื่อของโดเมนที่เซิร์ฟเวอร์ syslogd ตั้งอยู่ ไม่จำเป็นต้องรวมอยู่ในรายการนี้ (ชื่อจะถูกลบออกตามค่าเริ่มต้น)
- -vแสดงเวอร์ชันและจบงาน
- -xห้ามตั้งชื่อโฮสต์ตามที่อยู่ ป้องกันการหยุดชะงักเมื่อทำงานบนโฮสต์เดียวกันกับเซิร์ฟเวอร์ DNS
หลังจากสตาร์ทเดมอนแล้ว syslogdไฟล์สถานะจะถูกสร้างขึ้น /var/lock/subsys/syslog.phpความยาวเป็นศูนย์ และไฟล์ที่มีหมายเลขประจำตัวกระบวนการ /var/run/syslogd.pid.
โดยใช้คำสั่ง
ฆ่า -SIGNAL `cat /var/run/syslogd.pid`
คุณสามารถส่งไปยังปีศาจได้ syslogdสัญญาณอย่างใดอย่างหนึ่งต่อไปนี้:
- SIGHUP - รีสตาร์ท daemon (การเริ่มต้นใหม่); ไฟล์ที่เปิดอยู่ทั้งหมดจะถูกปิด daemon จะเริ่มทำงานอีกครั้ง โดยอ่านไฟล์การกำหนดค่าอีกครั้ง
- SIGTERM - ปิดระบบ
- SIGINT, SIGQUIT - หากเปิดใช้งานโหมดการดีบัก (ตัวเลือก -d) สัญญาณจะถูกละเว้น มิฉะนั้นจะปิดเครื่อง
- SIGUSR1 - เปิด/ปิดโหมดการดีบัก (ใช้งานได้เฉพาะเมื่อ daemon เริ่มต้นด้วยสวิตช์ -d)
ภูต ล็อกด์มีตัวเลือกการเปิดตัวไม่น้อยไปกว่า syslogdอย่างไรก็ตาม เราจะไม่นำเสนอสิ่งเหล่านี้ที่นี่ โดยอ้างอิงผู้อ่านไปยังหน้า man ที่เกี่ยวข้อง (ผู้ใช้ไม่ควรกังวลกับการตั้งค่า ล็อกด์จะดีกว่าถ้าปล่อยให้อยู่ในสถานะที่ผู้พัฒนาการจัดจำหน่ายสร้างขึ้น)
ไฟล์ dmesg และคำสั่ง dmesg
ดังที่ได้กล่าวไปแล้วไฟล์บันทึกที่กล่าวถึงในไฟล์ /etc/syslog.confมักจะอยู่ในไดเร็กทอรี /var/logและไดเร็กทอรีย่อยของมัน แต่ถ้าเราดูในไดเร็กทอรีนี้ เราจะพบไฟล์หลายไฟล์ในนั้น /etc/syslog.confไม่ได้ถูกกล่าวถึง มาดูจุดประสงค์ของพวกเขากันดีกว่า เริ่มต้นด้วยไฟล์ ดีเอ็มเอสจี.ก่อนอื่นเราต้องพูดถึงว่า Linux มีคำสั่งชื่อเดียวกัน หากคุณเปรียบเทียบเอาต์พุตของคำสั่งนี้ (เมื่อรันโดยไม่มีพารามิเตอร์) กับเนื้อหาของไฟล์ /var/log/dmesgคุณจะพบว่ามันคล้ายกันมากแม้ว่าจะไม่เหมือนกันก็ตาม (กำหนดเอาต์พุตของคำสั่งไปยังไฟล์โดยตรง dmesg2และเปรียบเทียบไฟล์ ดีเอ็มเอสจีและ dmesg2). แม่นยำยิ่งขึ้นคือไฟล์ /var/log/dmesgหนึ่งต่อหนึ่งเกิดขึ้นพร้อมกับจุดเริ่มต้นของเอาต์พุตที่เราได้รับจากคำสั่ง ดีเอ็มเอสจี. ดังต่อไปนี้จาก เคอร์เนลมีบัฟเฟอร์วงแหวนซึ่งมีการเขียนข้อความจากดีมอนการบันทึกเคอร์เนล ข้อความเหล่านั้นที่เขียนลงในบัฟเฟอร์นี้ในระหว่างกระบวนการดาวน์โหลดประกอบด้วยเนื้อหาของไฟล์ /var/log/dmesg. เห็นได้ชัดว่าไฟล์นี้ถูกสร้างขึ้นหลังจากที่ระบบบูท
หากดูรายการไฟล์ที่ให้ไว้อีกครั้ง /etc/syslog.confจะเห็นว่าข้อความทั้งหมดในหมวดหมู่ เคิร์นจะออกไปยังคอนโซลด้วย แต่ที่นั่นพวกมันวิ่งผ่านหน้าจออย่างรวดเร็วและคุณแทบจะไม่มีเวลาอ่านและทำความเข้าใจพวกมัน แต่จะถูกบันทึกไว้ในไฟล์ /var/log/dmesgและพร้อมสำหรับการไตร่ตรองแบบสบายๆ (หากกระบวนการดาวน์โหลดเสร็จสมบูรณ์) หลังจากกระบวนการบู๊ตเสร็จสิ้น การเขียนข้อความจากเคอร์เนลไปยังบัฟเฟอร์วงแหวนจะดำเนินต่อไป เมื่อดำเนินการตามคำสั่งแล้ว ดีเอ็มเอสจีสถานะปัจจุบันของบัฟเฟอร์จะปรากฏขึ้น ดังนั้นเอาต์พุตของคำสั่งนี้จึงมีข้อความมากกว่าไฟล์ /var/log/dmesg: ในผลลัพธ์ของคำสั่งนี้ คุณยังเห็นข้อความที่เคอร์เนลออกหลังจากกระบวนการบู๊ตเสร็จสิ้น
ข้อความทั้งหมดจาก /var/log/dmesgคุณจะพบในไฟล์ /var/log/messagesมีเพียงที่นั่นสลับกับข้อความจากโปรแกรมอื่น มีความแตกต่างที่สำคัญเพียงอย่างเดียว: ในไฟล์ ดีเอ็มเอสจีไม่ได้ระบุเวลาและแหล่งที่มาของข้อความ (ชื่อโฮสต์และหมวดหมู่ข้อความ) โฮสต์ที่นี่จะเป็น "ท้องถิ่น" เสมอ และการนับเวลาเริ่มต้นจะถูกกำหนดโดยการรีบูตคอมพิวเตอร์ครั้งล่าสุด
ไฟล์ Lastlog, Wtmp และ utmp
นอกจากไฟล์ ดีเอ็มเอสจีในแค็ตตาล็อก /var/log/มีอีกสองไฟล์ที่ไม่ได้กล่าวถึงใน /etc/syslog.confแต่เกี่ยวข้องโดยตรงกับการบันทึก - นี่คือไฟล์ บันทึกสุดท้ายและ wtmp. แต่มองเข้าไปในนั้นแบบเดียวกับที่เราดูไฟล์ /var/log/messagesไม่สมเหตุสมผล - คุณจะไม่เข้าใจอะไรเลย ความจริงก็คือข้อมูลในไฟล์เหล่านี้ถูกบันทึกในรูปแบบพิเศษและจะต้องดูโดยใช้แบบพิเศษ ซอฟต์แวร์. แต่ก่อนอื่น เราต้องพูดสักสองสามคำเกี่ยวกับวัตถุประสงค์ของไฟล์เหล่านี้
ไฟล์ บันทึกสุดท้ายเก็บข้อมูลเกี่ยวกับการเข้าสู่ระบบครั้งล่าสุดของผู้ใช้ ฉันไม่รู้ว่าคุณสังเกตเห็นหรือไม่ว่าเมื่อคุณป้อนชื่อผู้ใช้และรหัสผ่าน ข้อความที่คล้ายกับข้อความต่อไปนี้จะปรากฏขึ้นบนหน้าจอ:
การเข้าสู่ระบบ Localhost: kos รหัสผ่าน: การเข้าสู่ระบบครั้งล่าสุด: วันพุธที่ 9 ต.ค. 19:25:53 บน tty1 สามบรรทัดนี้สร้างขึ้นโดยยูทิลิตี้ เข้าสู่ระบบซึ่งหลังจากพิจารณาว่าผู้ใช้มีสิทธิ์ในการเข้าสู่ระบบแล้ว ก็จะเข้าถึงไฟล์ได้ /var/log/lastlogดึงข้อมูลเกี่ยวกับการเข้าสู่ระบบสำเร็จก่อนหน้านี้ของผู้ใช้จากที่นั่น แสดงบนหน้าจอ จากนั้นอัปเดตบันทึกในไฟล์ บันทึกสุดท้าย. คุณสามารถระงับข้อความนี้ได้โดยสร้างไฟล์ .hushlogin ว่างๆ ในโฮมไดเร็กตอรี่ของคุณ อย่างไรก็ตาม ไม่แนะนำให้ทำเช่นนี้ ในทางกลับกัน คุณควรให้ความสนใจเป็นพิเศษกับเนื้อหาของข้อความนี้ เพื่อไม่ให้พลาดกรณีที่บุคคลอื่นเข้าสู่ระบบด้วยชื่อของคุณ
ต่างจากไฟล์ /var/log/lastlogซึ่งมีบันทึกเวลา ล่าสุดเข้าสู่ระบบสำหรับผู้ใช้แต่ละรายในไฟล์ /var/log/wtmpจะถูกจดจำ ทั้งหมดการเข้าสู่ระบบและออกจากระบบของผู้ใช้ตั้งแต่การสร้างไฟล์นี้ เช่นเดียวกับในไฟล์ บันทึกสุดท้าย, รายการเข้า /var/log/wtmpจัดทำในรูปแบบพิเศษดังนั้นจึงสามารถดูได้โดยใช้คำสั่งพิเศษเท่านั้น แต่ก่อนที่เราจะพูดถึงคำสั่งเหล่านี้ สมมติว่ามีไฟล์อื่นที่มีบันทึกการบันทึกของผู้ใช้ - นี่คือไฟล์ /var/run/utmp. ไฟล์นี้มีข้อมูลเกี่ยวกับผู้ใช้ที่ทำงานอยู่ในระบบในปัจจุบัน
ตอนนี้คุณสามารถพูดคุยเกี่ยวกับวิธีดูข้อมูลเกี่ยวกับผู้ใช้ที่ทำงานหรือเคยทำงานในระบบได้แล้ว คำสั่งหลักสำหรับสิ่งนี้คือคำสั่ง ล่าสุด. จะแสดงบันทึกทั้งหมดจากไฟล์ /var/log/wtmpโดยระบุชื่อผู้ใช้ การบ่งชี้เทอร์มินัลที่ผู้ใช้ทำงาน เวลาที่ผู้ใช้เข้าสู่ระบบและเวลาที่ออกจากระบบ รวมถึงระยะเวลาเซสชันของผู้ใช้ในระบบ หากงานของผู้ใช้ถูกขัดจังหวะเพียงเพราะระบบถูกปิดเอง แทนที่จะเป็นเวลาออกของผู้ใช้จะมีคำว่า "ลง" (จากบรรทัดเหล่านี้ ง่ายต่อการกำหนดเวลาที่ระบบหยุด) เวลารีบูตจะแสดงเป็นบรรทัดแยกกันโดยขึ้นต้นด้วยคำว่า "รีบูต"
ทีม สุดท้ายขเหมือนเป็นทีม ล่าสุดแต่แสดงข้อมูลเกี่ยวกับความพยายามในการเข้าสู่ระบบของผู้ใช้ที่ล้มเหลว อย่างไรก็ตาม ควรสังเกตว่าคำสั่งนี้จะใช้ได้เฉพาะเมื่อมีไฟล์อยู่เท่านั้น /var/log/btmp. อย่างไรก็ตาม ไม่มีโปรแกรมใดที่กล่าวถึงในที่นี้สร้างไฟล์บันทึก ดังนั้นหากโปรแกรมใดโปรแกรมหนึ่งถูกลบ การบันทึกจะสิ้นสุดลง
ทีม บันทึกสุดท้ายรูปแบบและแสดงเนื้อหาของไฟล์ /var/log/lastlog. ชื่อผู้ใช้ ชื่อเทอร์มินัลที่ผู้ใช้เข้าสู่ระบบ และเวลาเข้าสู่ระบบล่าสุดจะปรากฏขึ้น ตามค่าเริ่มต้น (เมื่อป้อนคำสั่งโดยไม่มีพารามิเตอร์) องค์ประกอบไฟล์ /var/log/lastlogจะแสดงตามลำดับหมายเลข ID ผู้ใช้ หากคุณระบุอ็อพชัน -u ชื่อล็อกอิน เฉพาะเวลาล็อกอินล่าสุดของผู้ใช้ที่ระบุเท่านั้นที่จะถูกแสดง โดยการระบุพารามิเตอร์ -t days คุณจะได้รับเฉพาะบันทึกสำหรับวันสุดท้ายของวันเท่านั้น หากผู้ใช้ไม่ได้เข้าสู่ระบบเลย สตริง “**ไม่เคยเข้าสู่ระบบ**” จะถูกระบุแทนชื่อเทอร์มินัลและเวลาเข้าสู่ระบบครั้งล่าสุด
เมื่อดำเนินการตามคำสั่ง บันทึกสุดท้ายในคอมพิวเตอร์ที่ช้า ในบางกรณีอาจดูเหมือนว่าคำสั่งค้าง สิ่งนี้เกิดขึ้นเนื่องจากความจริงที่ว่าแม้ว่าจะมีผู้ใช้เพียงสองคนเท่านั้นที่ลงทะเบียนในระบบ (รูทและผู้ใช้) ในไฟล์ /var/log/lastlogยังมีพื้นที่สำหรับผู้ใช้มากที่สุดเท่าที่จะเป็นไปได้ในการทำงานบนระบบ ดังนั้นในไฟล์ /var/log/lastlogอาจมีช่องว่างขนาดใหญ่ระหว่างหมายเลข ID ของผู้ใช้ที่ทำงานในระบบ เพราะเมื่อดูช่วงเวลาดังกล่าว โปรแกรมจะไม่แสดงข้อมูลบนหน้าจอ และเกิดอาการ "ค้าง"
หากต้องการแสดงข้อมูลเกี่ยวกับบุคคลที่กำลังทำงานอยู่ในระบบ ให้ใช้คำสั่ง ว, WHOและ ผู้ใช้. ทีม ผู้ใช้ใช้เมื่อคุณต้องการทราบว่าผู้ใช้คนใดกำลังทำงานอยู่ในระบบ แต่ไม่สนใจว่าผู้ใช้เชื่อมต่อจากเทอร์มินัลใดและกำลังทำอะไรอยู่ หากคุณต้องการทราบว่าใครเข้าสู่ระบบจากเทอร์มินัลใด ให้ใช้คำสั่ง WHO. คำสั่งนี้จะพิมพ์ข้อมูลจากไฟล์ /var/run/utmp. คุณสามารถบังคับให้ส่งออกข้อมูลจากไฟล์ได้ /var/log/wtmp(หรือไฟล์อื่นใดที่เหมาะสม) หากคุณระบุชื่อของไฟล์นี้ บรรทัดคำสั่ง. แต่ในผลลัพธ์ คุณจะยังคงเห็นเฉพาะชื่อผู้ใช้ การบ่งชี้เทอร์มินัลที่ผู้ใช้เข้าสู่ระบบ เวลาเข้าสู่ระบบ และในกรณีที่เข้าสู่ระบบด้วย คอมพิวเตอร์ระยะไกลชื่อของคอมพิวเตอร์เครื่องนี้
คำสั่งแสดงข้อมูลออกมามากขึ้นอย่างมาก ว. ในผลลัพธ์ คุณจะเห็นเวลาปัจจุบัน ระยะเวลาที่ระบบทำงาน จำนวนผู้ใช้ที่ทำงานอยู่ในระบบ และโหลดระบบโดยเฉลี่ยสำหรับนาทีสุดท้าย 5 และ 15 นาที จากนั้นสำหรับผู้ใช้แต่ละคนจะพิมพ์:
ตามที่ได้กล่าวไปแล้วทางทีมงาน วแสดงข้อมูลที่เก็บไว้ในไฟล์ utmp. โดยวิธีการคู่มือ ผู้ชายระบุว่า ผู้ใช้ทั่วไปจะต้องถูกปฏิเสธการเข้าถึงการเขียนไฟล์ utmpเนื่องจากโปรแกรมระบบจำนวนมาก (ด้วยเหตุผลบางอย่างที่อธิบายไม่ได้) ขึ้นอยู่กับความสมบูรณ์ของมัน คุณมีความเสี่ยงที่จะเกิดความสับสนในไฟล์สถิติของระบบและทำการเปลี่ยนแปลงไฟล์ระบบ หากคุณอนุญาตให้ผู้ใช้เขียนลงในไฟล์ utmp
ไฟล์บันทึกของโปรแกรมอื่น
นอกจากไฟล์ที่เราได้พูดถึงไปแล้ว ยังมีไฟล์โปรโตคอลอื่น ๆ ที่สร้างโดยโปรแกรมที่แยกจากกัน ตัวอย่างทั่วไปที่สุดคือโปรโตคอลของเดมอน แซมบ้า, ftpdหรือ httpdซึ่งดำเนินการใน แยกไฟล์. โปรแกรมเหล่านี้บางโปรแกรมสร้างโปรโตคอลในไดเร็กทอรีย่อยของไดเร็กทอรี /var/log/ส่วนโปรโตคอลอื่น ๆ จัดเก็บไว้ที่อื่น และโครงสร้างของไฟล์เหล่านี้อาจแตกต่างอย่างมากจากโครงสร้างของไฟล์ที่สร้างโดยระบบ บันทึกระบบ. ตัวอย่างเช่น ฉันจะให้สองสามบรรทัดจากโปรโตคอลเซิร์ฟเวอร์ อาปาเช่ทำงานบนคอมพิวเตอร์ของฉัน: 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) ตุ๊กแก / 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) ตุ๊กแก/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/log/protok_lovim.htm" "Mozilla/5.0 (X11; ยู; ลินุกซ์ i686; ru-RU; rv:1.0.0) ตุ๊กแก/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" อย่างที่คุณเห็น โครงสร้างของไฟล์โปรโตคอลนี้แตกต่างอย่างมากจากที่เราเห็นในโปรโตคอลระบบเซิร์ฟเวอร์ Samba นอกเหนือจากโปรโตคอลการทำงานของเซิร์ฟเวอร์หลักแล้ว ยังสร้างในไดเร็กทอรีย่อยอีกด้วย /var/log/sambaชุดบันทึกไฟล์ทั้งหมดสำหรับกรณีต่างๆ โดยเฉพาะไฟล์แยกสำหรับผู้ใช้แต่ละรายที่ได้รับอนุญาตให้ใช้ทรัพยากรที่เซิร์ฟเวอร์นี้มอบให้ สองรายการต่อไปนี้นำมาจากไฟล์ดังกล่าว:
Smbd/service.c:make_connection(550) linux (192.168.36.10) เชื่อมต่อกับบริการสาธารณะในฐานะผู้ใช้ kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.168.10) 36.10) การเชื่อมต่อแบบปิดไปยังบริการสาธารณะ ตัวอย่างข้างต้นแสดงให้เห็นว่าหากคุณสามารถอ่านภาษาอังกฤษได้เพียงเล็กน้อยและมีความเข้าใจเกี่ยวกับโครงสร้างของบันทึก คุณสามารถดึงข้อมูลจำนวนมากจากไฟล์บันทึกได้ ข้อมูลที่เป็นประโยชน์. จะต้องแยกออกจากแหล่งสะสมทั้งหมดของ "หินเสีย" เท่านั้น - ไฟล์โปรโตคอลแบบเรียงลำดับขนาดใหญ่ซึ่งเป็นงานที่ไม่สำคัญ ดังนั้นจึงมีการพัฒนาเครื่องมือซอฟต์แวร์พิเศษสำหรับการวิเคราะห์โปรโตคอล
เครื่องมือสำหรับการประมวลผลโปรโตคอล
มีการพัฒนาโปรแกรมและสคริปต์ที่แตกต่างกันมากมายสำหรับการวิเคราะห์โปรโตคอล ฉันจะจำกัดตัวเอง คำอธิบายสั้น ๆสองวิธีดังกล่าว: ล็อกวอทช์และ ตัวอย่าง.
ล็อกวอทช์เป็นสคริปต์ Perl ที่รวมอยู่ในการกระจาย Red Hat Linux มาตรฐาน ในระหว่างการจัดทำบทความนี้ มีการโพสต์เวอร์ชัน 4.1 ของโปรแกรมนี้บนเว็บไซต์ของผู้พัฒนา (และเขาคือ Kirk Bauer)
แนวคิดหลักเบื้องหลังโปรแกรมนี้ก็คือ ไฟล์บันทึกจะถูกส่งผ่านตัวกรอง ซึ่งเลือกจากบันทึกทุกบรรทัด (นั่นคือ ข้อความ) ที่ตรงตามเกณฑ์ที่กำหนด ผลลัพธ์จะถูกส่งโดย อีเมลไปยังผู้ใช้ที่ระบุ (โดยค่าเริ่มต้น - รูท) ตัวกรองสามารถเขียนในภาษาการเขียนโปรแกรมใดก็ได้ แต่ผู้เขียนแพ็คเกจชอบ Perl มากกว่า ควรเขียนตัวกรองเพื่ออ่านข้อมูลจาก stdin และส่งออกผลลัพธ์ไปยัง stdout
การใช้งานขั้นพื้นฐาน ล็อกวอทช์ประกอบด้วยการใส่ลิงค์ไปยังสคริปต์หลัก ( /etc/log.d/scripts/logwatch.pl) ไปยังไดเร็กทอรี /etc/cron.daily ซึ่งทำให้มีการดำเนินการรายวัน ล็อกวอทช์ด้วยการตั้งค่าเริ่มต้น ลิงก์จะมีชื่อที่ขึ้นต้นด้วย "00" (เช่น 00-logwatch) เพื่อให้สคริปต์ทำงานก่อนล็อกโรเตต
แต่คุณยังสามารถเรียกใช้สคริปต์จากบรรทัดคำสั่งได้ แน่นอนหากคุณไม่ได้เปลี่ยนพารามิเตอร์เอาต์พุตข้อมูลคุณควรค้นหาผลลัพธ์ของการดำเนินการในกล่องจดหมายของผู้ใช้ขั้นสูง หากคุณต้องการดูผลลัพธ์เหล่านี้บนหน้าจอ คุณต้องตั้งค่าพารามิเตอร์บนบรรทัดคำสั่ง --พิมพ์- ออกรายงานไปยัง stdout
รูปแบบการเรียกใช้สคริปต์ทั่วไป:
/etc/log.d/scripts/logwatch.pl [--รายละเอียดระดับ ] [--logfileกลุ่มนิตยสาร ] [--บริการชื่อบริการ ] [--พิมพ์] [--mailtoที่อยู่ ] [--บันทึกชื่อไฟล์ ] [--เอกสารสำคัญ] [--ช่วงช่วงวันที่ ]
พารามิเตอร์เริ่มต้นจะถูกเก็บไว้ในไฟล์ /etc/log.d/logwatch.conf ความคิดเห็นที่จะช่วยให้คุณเข้าใจความหมายของพารามิเตอร์บรรทัดคำสั่ง:
- LogDir - ไดเร็กทอรีที่เกี่ยวข้องกับชื่อไฟล์ที่พิจารณา
- MailTo - ใครจะส่งรายงานให้
- พิมพ์ - แทนที่จะส่งรายงานทางไปรษณีย์ ให้ส่งออกไปที่ stdout
- บันทึก - แทนที่จะส่งรายงานทางไปรษณีย์ ให้บันทึกในไฟล์ที่ระบุ
- หอจดหมายเหตุ - ดำเนินการไม่เพียงเท่านั้น รุ่นปัจจุบันบันทึก แต่ยังรวมถึงสำเนาเก่าที่สร้างโดย logrotate;
- ช่วง - ประมวลผลช่วงเวลาที่ระบุ: ทั้งหมด, วันนี้, เมื่อวาน (วันตามปฏิทินของเมื่อวาน)
- รายละเอียด - ระดับรายละเอียดรายงาน: ตั้งแต่ 0 ถึง 10 หรือต่ำ, ปานกลาง, สูง;
- บริการ - ทั้งหมดหรือชื่อตัวกรองจาก /etc/log.d/scripts/services/ (สามารถระบุตัวกรองได้หลายตัวกรอง)
- LogFile - ทั้งหมดหรือชื่อของกลุ่มบันทึก (สามารถระบุได้หลายกลุ่ม)
ข้อมูลเพิ่มเติมเกี่ยวกับสคริปต์ ล็อกวอทช์คุณจะพบใน.
บทความนี้จะอธิบายสคริปต์อื่นสำหรับการประมวลผลไฟล์บันทึก ซึ่งรวมอยู่ในการแจกจ่าย Mandrake Linux สคริปต์นี้มีชื่อว่า ตัวอย่าง(“Simple WATCHer”) และยังเขียนเป็นภาษา Perl อีกด้วย
การจัดการงาน ตัวอย่างดำเนินการโดยใช้ไฟล์การกำหนดค่าเดียวตามค่าเริ่มต้น $HOME/.swatchrc. ไฟล์นี้มีข้อความตัวอย่าง (ในรูปแบบ การแสดงออกปกติ), ที่ ตัวอย่างจะค้นหาในไฟล์บันทึก หลังจากแต่ละตัวอย่างดังกล่าว จะมีการดำเนินการระบุว่า ตัวอย่างต้องดำเนินการหากพบข้อความที่ตรงกับรูปแบบ
ตัวอย่างเช่น คุณต้องการที่จะได้รับการเตือนเมื่อใดก็ตามที่มีการโจมตีบัฟเฟอร์ล้นบนเว็บเซิร์ฟเวอร์ของคุณ เมื่อมีการร้องขอชื่อไฟล์ที่ยาวมาก และคุณรู้ไหมว่าในกรณีเช่นนี้ในไฟล์บันทึก /var/apache/error.logข้อความปรากฏขึ้นพร้อมคำว่า "ชื่อไฟล์ยาวเกินไป" ในกรณีนี้ไปที่ไฟล์ของคุณ .swatchrcต้องแทรกคำสั่งต่อไปนี้:
Watchfor /ชื่อไฟล์ยาวเกินไป/ เมล [ป้องกันอีเมล], หัวเรื่อง=BufferOverflow_attempt
ฉันจะไม่ให้คำอธิบายโดยละเอียดเพิ่มเติมของโปรแกรมที่นี่ ตัวอย่าง. มีบทความที่กระตือรือร้นโดยเฉพาะและตัวโปรแกรมสามารถพบได้บนเว็บไซต์ ฉันแค่อยากจะชี้ให้เห็นและ ตัวอย่าง, และ ล็อกวอทช์ใช้อัลกอริธึมที่ค่อนข้างดั้งเดิมสำหรับการประมวลผลไฟล์โปรโตคอล ซึ่งค้นหาโปรโตคอลสำหรับสตริงอักขระที่กำหนด (ลายเซ็น) ในขณะเดียวกัน ประการแรก การปรากฏตัวของเส้นดังกล่าวมักจะไม่ได้บ่งชี้ถึงการบุกรุกโดยผู้โจมตี และประการที่สอง ผู้โจมตีที่มีความสามารถสามารถดูแลลบร่องรอยของกิจกรรมของเขาได้ ข้อเสียเปรียบที่ชัดเจนอีกประการหนึ่งของผลิตภัณฑ์ที่ได้รับการตรวจสอบก็คือผลิตภัณฑ์ทำงานใน "โหมดเลื่อนออกไป" เนื่องจากผลิตภัณฑ์ทำงานตามกำหนดเวลาเท่านั้น และการต่อสู้กับผู้บุกรุกจะต้องดำเนินการ "แบบเรียลไทม์" โดยตอบสนองต่อความพยายามที่จะเจาะระบบทันที ดังนั้นผลิตภัณฑ์เชิงพาณิชย์จึงเสนอระบบการตรวจสอบที่ทำงานอย่างต่อเนื่องและใช้อัลกอริธึมการวิเคราะห์โปรโตคอล "อัจฉริยะ" อัลกอริธึมเหล่านี้อยู่บนพื้นฐานของการวิเคราะห์ทางสถิติของการไหลของข้อความและการระบุความเบี่ยงเบนที่มีนัยสำคัญทางสถิติของระบบจากพฤติกรรมปกติ
โดยสรุปของส่วนนี้ ฉันทราบว่าเว็บไซต์ SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) จัดทำรายการลิงก์ไปยังไซต์ของเครื่องมือซอฟต์แวร์ต่าง ๆ สำหรับโปรโตคอลการประมวลผลพร้อมบทสรุป คำอธิบายของเครื่องมือเหล่านี้ คุณสามารถทดลองใช้โปรแกรมต่างๆ และเลือกโปรแกรมที่เหมาะกับคุณ
การหมุนไฟล์บันทึก
แน่นอนว่าคุณเข้าใจว่าหากมีการใช้งานระบบอย่างเข้มข้น ไฟล์บันทึกจะเติบโตอย่างรวดเร็ว ซึ่งส่งผลให้เปลืองเนื้อที่ดิสก์ และปัญหาของการ "ฝึกฝน" โปรโตคอลก็เกิดขึ้น ใน Red Hat Linux ปัญหานี้แก้ไขได้ด้วยสคริปต์ เข้าสู่ระบบซึ่งอยู่ในไดเร็กทอรี /etc/cron.dailyและดังนั้นจึงถูกเปิดตัวโดย daemon ครอนรายวัน. สคริปต์นี้ช่วยให้คุณประมวลผลไม่เพียงแต่บันทึกของระบบเท่านั้น บันทึกระบบแต่ยังรวมไปถึงโปรแกรมอื่นๆสคริปต์ เข้าสู่ระบบติดตามการเติบโตของไฟล์บันทึก และจัดให้มีการหมุนไฟล์เหล่านี้หากเกินขนาดที่ระบุ (หรือหลังจากช่วงเวลาที่กำหนด) การหมุนไม่มีอะไรมากไปกว่าการคัดลอกไฟล์เก็บถาวรเวอร์ชันก่อนหน้าตามลำดับโดยประมาณดังนี้:
และสร้างไฟล์ข้อความใหม่เพื่อบันทึกข้อความที่ตามมา
รายการไฟล์ที่จะประมวลผลโดยสคริปต์ เข้าสู่ระบบและพารามิเตอร์ของการประมวลผลนี้จะถูกกำหนดโดยไฟล์การกำหนดค่าซึ่งอาจมีได้หลายไฟล์ ชื่อของไฟล์การกำหนดค่าระบุไว้ในบรรทัดคำสั่งการเรียกใช้สคริปต์ (สำหรับพารามิเตอร์การเรียกใช้ ดูด้านล่าง) บน Red Hat Linux ตามค่าเริ่มต้น ไฟล์คอนฟิกูเรชันสำหรับ เข้าสู่ระบบมีการใช้ไฟล์ /etc/logrotate.confซึ่งอาจมีลักษณะดังนี้:
การบีบอัดการสร้างการหมุนรายสัปดาห์ 4 รวมถึง /etc/logrotate.d /var/log/wtmp /var/log/lastlog (สร้างรายเดือน 0664 root utmp หมุน 1)
ไฟล์นี้เหมือนกับไฟล์กำหนดค่าใดๆ ของสคริปต์ เข้าสู่ระบบประกอบด้วยหลายส่วน ส่วนแรกกำหนดพารามิเตอร์ร่วม (หนึ่งรายการต่อบรรทัด) ที่กำหนดพารามิเตอร์เริ่มต้นสำหรับบันทึกทั้งหมด ส่วนต่อไปนี้จะกำหนดพารามิเตอร์ในเครื่องสำหรับชุดของไฟล์บันทึก ชื่อของไฟล์เหล่านี้แสดงอยู่ในบรรทัดแรกของส่วน จากนั้นระบุพารามิเตอร์ในเครื่องด้วยเครื่องหมายปีกกา ซึ่งใช้ได้เฉพาะเมื่อประมวลผลไฟล์ที่ระบุเท่านั้น (รวมถึงหนึ่งพารามิเตอร์ต่อบรรทัดด้วย) ชื่อไฟล์บันทึกสามารถอ้างอิงตามกฎของเชลล์ได้ หากมีช่องว่างหรืออักขระพิเศษอื่นๆ คุณสามารถระบุชื่อไฟล์ได้หลายชื่อหรือรูปแบบชื่อไฟล์ที่คั่นด้วยช่องว่าง (รูปแบบเป็นไปตามกฎของเชลล์ด้วย) การประมวลผลแต่ละส่วนจะถือเป็นการดำเนินการเดียว บรรทัดที่ขึ้นต้นด้วยสัญลักษณ์ "#" คือความคิดเห็น พารามิเตอร์ท้องถิ่นมีความสำคัญมากกว่าพารามิเตอร์ส่วนกลาง
ไฟล์คอนฟิกูเรชันตัวอย่างจะอธิบายพารามิเตอร์โกลบอลเป็นอันดับแรก จากนั้นในส่วนที่แยกจากกัน จะเป็นพารามิเตอร์สำหรับการประมวลผลไฟล์ /var/log/wtmp และ /var/log/lastlog นอกจากนี้ ในบรรดาพารามิเตอร์ส่วนกลางจะมีลิงก์ไปยังไดเร็กทอรีด้วย /etc/logrotate.dซึ่งแต่ละแพ็คเกจเขียนพารามิเตอร์ในเครื่องสำหรับบันทึก
ในส่วนพารามิเตอร์ร่วม ขั้นแรกให้คุณตั้งค่าพารามิเตอร์ตัวใดตัวหนึ่งต่อไปนี้ซึ่งกำหนดเกณฑ์การหมุนเวียนไฟล์:
และพารามิเตอร์ รวมตามด้วยชื่อของไฟล์การกำหนดค่าอื่น (เพิ่มเติม) หรือแม้แต่ชื่อของไดเร็กทอรี ในกรณีหลัง ไฟล์ทั้งหมดในไดเร็กทอรีที่ระบุ ยกเว้นไดเร็กทอรีย่อย ไฟล์พิเศษ และไฟล์ที่มีส่วนต่อท้ายจากรายการข้อยกเว้น จะถือเป็นไฟล์คอนฟิกูเรชันสำหรับสคริปต์ เข้าสู่ระบบ(คำสั่ง รวมไม่สามารถใช้ภายในส่วนที่ระบุพารามิเตอร์การประมวลผลสำหรับกลุ่มของไฟล์)
พารามิเตอร์ หมุน ตัวเลข สามารถพบได้ในพารามิเตอร์ทั้งโกลบอลและโลคัลและกำหนดจำนวนเวอร์ชันเก่าที่ควรจัดเก็บ หากตัวเลขเป็น 0 แสดงว่าเวอร์ชันที่เก็บถาวรของโปรโตคอลจะไม่ถูกสร้างขึ้น
หากมีการระบุพารามิเตอร์ บีบอัดจากนั้นเวอร์ชันเก่าจะถูกบีบอัดโดยใช้ gzip และหากระบุไว้ ไม่มีการบีบอัด- พวกมันไม่หดตัว พารามิเตอร์ บีบอัดcmdช่วยให้คุณระบุโปรแกรมบีบอัดที่จะใช้ (gzip เป็นค่าเริ่มต้น) และ คลายการบีบอัด cmdระบุโปรแกรมคลายการบีบอัด (ค่าเริ่มต้น - ungzip) ตัวเลือกการบีบอัดตั้งค่าพารามิเตอร์โปรแกรมการบีบอัด ค่าเริ่มต้นคือ "-9" เช่น การบีบอัดสูงสุดสำหรับ gzip การใช้พารามิเตอร์ บีบอัดคุณสามารถเปลี่ยนส่วนต่อท้ายสำหรับไฟล์บีบอัดและ ส่วนขยาย คำต่อท้าย ระบุส่วนต่อท้ายที่เพิ่มให้กับชื่อไฟล์ระหว่างการหมุน (ก่อนส่วนต่อท้ายการบีบอัด)
ท่ามกลาง คำหลักที่พบในไฟล์คอนฟิกูเรชัน เราควรสังเกตคำศัพท์เป็นพิเศษ หลังการหมุนและ หมุนล่วงหน้าซึ่งทำหน้าที่เป็นวงเล็บเปิดเพื่อรวมไว้ในไฟล์คอนฟิกูเรชันเชลล์สคริปต์ ทุกบรรทัดของไฟล์คอนฟิกูเรชันจากบรรทัด หลังการหมุนเข้าแถว บทลงท้ายถูกดำเนินการเป็นคำสั่งเชลล์หลังจากกระบวนการเปลี่ยนเวอร์ชันไฟล์บันทึก ดังนั้นทุกบรรทัดจากบรรทัด หมุนล่วงหน้าเข้าแถว บทลงท้ายจะถูกดำเนินการก่อนที่จะหมุนไฟล์บันทึก เมื่อใช้สคริปต์เหล่านี้ คุณสามารถจัดระเบียบขั้นตอนต่างๆ สำหรับการประมวลผลไฟล์บันทึกระหว่างการหมุนเวียนได้
การใช้พารามิเตอร์อื่นของไฟล์กำหนดค่าคุณสามารถกำหนดสิทธิ์การเข้าถึงไฟล์บันทึกใหม่ได้ (หากไม่ได้ระบุพารามิเตอร์นี้ จะใช้แอตทริบิวต์ของไฟล์บันทึกเก่า) ระบุผู้ที่จะส่งข้อความเกี่ยวกับข้อผิดพลาดในการทำงานของระบบบันทึก ส่งสำเนาบันทึกที่เก็บถาวรไปยังผู้ใช้ที่ระบุ ตั้งค่าไดเร็กทอรีที่จะย้ายบันทึกระหว่างการเปลี่ยนแปลงเวอร์ชัน (ไดเร็กทอรีต้องอยู่ในอุปกรณ์ฟิสิคัลเดียวกันกับ /var/log) หรือตั้งค่ารายการส่วนต่อท้ายการแยกสำหรับไดเร็กทอรี รวม. คำอธิบายโดยละเอียดคุณจะพบคุณสมบัติและพารามิเตอร์เหล่านี้ (รวมถึงที่ไม่ได้กล่าวถึง) ด้วยคำสั่ง ผู้ชายล็อกโรเตท.
ดังที่ได้กล่าวไปแล้วไฟล์การกำหนดค่าเพิ่มเติม เข้าสู่ระบบสามารถระบุได้ในบรรทัดคำสั่งเรียกใช้สคริปต์ คุณสามารถระบุจำนวนไฟล์การกำหนดค่าหรือชื่อไดเร็กทอรีได้ตามต้องการ ชื่อของไฟล์และไดเร็กทอรีในรายการนี้จะถูกคั่นด้วยช่องว่าง ลำดับที่แสดงชื่อมีความสำคัญเนื่องจากตัวเลือกที่แสดงดังต่อไปนี้ ไฟล์การกำหนดค่าซ้อนทับค่าของพารามิเตอร์ที่ระบุใน ไฟล์ก่อนหน้า. ไม่ได้กำหนดลำดับของไฟล์ในไดเร็กทอรีการกำหนดค่า
นอกจากนี้ คุณสามารถระบุพารามิเตอร์ต่อไปนี้บนบรรทัดคำสั่งเริ่มต้นระบบได้:
- -d- โหมดแก้ไขข้อบกพร่อง ไม่มีการเปลี่ยนแปลงจริง
- -ฉ- ทำการเปลี่ยนแปลงแม้ว่า เข้าสู่ระบบไม่เห็นความต้องการ - ใช้เมื่อมีการเปลี่ยนแปลงในรายการบันทึกที่ประมวลผล
- ล็อกวอทช์ของผู้ชาย
- มิก บาวเออร์ "Paranoid Penguin: swatch: การตรวจสอบบันทึกอัตโนมัติสำหรับผู้เฝ้าระวังแต่ขี้เกียจ"
- RFC 3164 C. Lonvick, โปรโตคอล BSD Syslog, สิงหาคม 2544
- RFC 3195. D. New, M. Rose, การจัดส่งที่เชื่อถือได้สำหรับ syslog, พฤศจิกายน 2544
- ต่อ. S. Lapshansky “ปีศาจกำลังเฝ้าดูระบบ”
- เดนิส โคลิสนิเชนโก้
การดำเนินการของ syslogd daemon ถูกควบคุมโดยไฟล์คอนฟิกูเรชัน /etc/syslog.conf นี่เป็นไฟล์ข้อความธรรมดาที่บรรทัดว่างและบรรทัดที่มี # อยู่ในตำแหน่งแรกจะถูกละเว้น รูปแบบไฟล์เป็นดังนี้:
<селектор> <действие>.
ตัวอย่างเช่น,
mail.err /var/log/mail.errors
บรรทัดนี้จะช่วยให้แน่ใจว่าข้อผิดพลาดในการส่งอีเมลทั้งหมดจะถูกบันทึกไว้ในไฟล์ /var/log/mail.errors
สิ่งสำคัญ: ใช้เฉพาะแป้นเป็นตัวคั่นระหว่างตัวเลือกและการทำงาน
ดังที่คุณสังเกตเห็นแล้วว่าตัวเลือกถูกเขียนในรูปแบบผสม ใน ปริทัศน์ดูเหมือนหมายถึงระดับ
นอกจากนี้ในสนาม<селектор>อาจมีตัวเลือกตั้งแต่หนึ่งตัวขึ้นไป คั่นด้วยเครื่องหมายอัฒภาค ตัวเลือกสามารถประกอบด้วยกลุ่มสิ่งอำนวยความสะดวกที่คั่นด้วยเครื่องหมายจุลภาค ตัวเลือกสามารถมีอักขระ * และไม่มี ซึ่งหมายถึง "ทั้งหมด" และ "ไม่มีอะไร" ตามลำดับ
ตัวอย่างตัวเลือก:
หมายถึง ระดับของการกระทำ
หมายถึง 1 หมายถึง 2. ระดับของการกระทำ
หมายถึง 1. ระดับ 1 หมายถึง 2. การกระทำระดับ 2
*.ระดับการกระทำ
*.level;หมายถึงไม่มีการดำเนินการใดๆ
ตารางต่อไปนี้แสดงรายการชื่อคุณลักษณะ syslog หลักและระดับความรุนแรง
เครื่องมือโปรแกรมต่างๆที่ใช้งานครับ
เคอร์เนลของระบบเคอร์เนล
ผู้ใช้ กระบวนการผู้ใช้
เมล ระบบอีเมล์
ภูต ระบบภูต
ระบบรักษาความปลอดภัยและอำนาจรับรองความถูกต้อง
ระบบการพิมพ์ lpr
ข่าวระบบการประชุมทางไกล
cron ภูตครอน
local0-7 ข้อความท้องถิ่นแปดระดับ
ข้อความระบบ syslog ภายใน syslog
ftp ftpd ภูต
*ทั้งหมดที่กล่าวมาหมายถึง
ระดับ ระดับ ค่า
สถานการณ์ฉุกเฉินที่เกิดขึ้น
แจ้งเตือนสถานการณ์เร่งด่วน
รัฐวิพากษ์วิจารณ์
ข้อผิดพลาด เงื่อนไขข้อผิดพลาด
คำเตือน คำเตือน
สังเกตสภาวะที่ผิดปกติ
ข้อความข้อมูลข้อมูล
ดีบัก ข้อมูลการดีบัก
ระดับต่างๆ จะแสดงตามลำดับจากมากไปน้อย ซึ่งหมายความว่าระดับต่างๆ จะระบุความสำคัญขั้นต่ำที่ข้อความต้องมีเพื่อที่จะบันทึกเข้าสู่ระบบ syslog
สนาม<действие>ระบุว่าจะทำอย่างไรกับข้อความที่ได้รับ
คำอธิบายการดำเนินการ
ชื่อไฟล์ เขียนข้อความไปยังไฟล์บนเครื่องท้องถิ่น
@machinename ส่งต่อข้อความไปยัง syslogd daemon บนเครื่องที่ระบุ
@IP_address เหมือนกัน ระบุเฉพาะที่อยู่ IP ของเครื่องเท่านั้น
user1 แสดงข้อความบนหน้าจอของผู้ใช้ที่ระบุ...
ผู้ใช้N
* แสดงข้อความบนหน้าจอของผู้ใช้ทุกคน
*.emerg /dev/console
*.err;auth.notice /dev/console
*.err;auth,mail,user.info /var/log/messages
mail.err /var/log/mail.log
mail.info @192.168.0.1
เมื่อพูดถึงระบบ syslog เราต้องพูดถึงคำสั่ง logger ซึ่งช่วยให้คุณเขียนรายการลงในบันทึกของระบบจากเชลล์สคริปต์
คำสั่งนี้มีประโยชน์สำหรับการตรวจสอบการเปลี่ยนแปลงที่ทำกับไฟล์ /etc/syslog.conf
local5.warning /var/log/local.log
และต้องการตรวจสอบว่าใช้งานได้หรือไม่ให้ป้อนคำสั่ง
# logger -p local5.warning "การทดสอบในเครื่อง"
ดูที่ไฟล์ /var/log/local.log หากไม่มีบรรทัด "Local test" แสดงว่าคุณลืมส่งสัญญาณ HUP ไปยัง syslogd daemon
เซอร์เกย์ ซูปรูนอฟ
เคล็ดลับ FreeBSD: การใช้ syslog
- ขอโทษนะสหาย ฉันจดบันทึกการเคลื่อนไหวทั้งหมดแล้ว!
“สำนักงานเขียน” Ostap กล่าว
I. Ilf, E. Petrov “เก้าอี้ 12 ตัว”
การบันทึกการทำงานของระบบใดๆ และโดยเฉพาะอย่างยิ่งเซิร์ฟเวอร์ เป็นหนึ่งในองค์ประกอบที่สำคัญที่สุดของการดูแลระบบ เป็นไฟล์บันทึกที่เราพิจารณาเป็นอันดับแรกเมื่อเกิดปัญหาในระบบ จากนั้นเราจึงมั่นใจว่าโปรแกรมนี้ทำงานได้ตามที่คาดหวัง เมื่อพัฒนาเว็บแอปพลิเคชัน ไฟล์บันทึกจะกลายเป็นแหล่งข้อมูลการดีบักที่สำคัญที่สุด จะมีการหารือเกี่ยวกับคุณสมบัติของ syslog daemon ซึ่งรับผิดชอบการบันทึกข้อมูลระบบ
syslog.dll คืออะไร
Syslog เป็นบริการแบบรวมศูนย์ที่รวบรวมและบันทึกข้อมูลบันทึกจากส่วนประกอบระบบปฏิบัติการและกระบวนการผู้ใช้ต่างๆ ตามกฎแล้วโปรแกรมของบุคคลที่สามสามารถทำงานกับไฟล์บันทึกได้อย่างอิสระแม้ว่าหลายโปรแกรมจะสามารถกำหนดค่าให้ทำงานกับ syslogd daemon ได้ก็ตาม ประโยชน์ของการใช้ syslog ได้แก่ ความสามารถในการจัดการการรวบรวมข้อมูลที่จำเป็นโดยใช้ไฟล์การกำหนดค่าไฟล์เดียว ซึ่งรับประกันความสอดคล้องในไฟล์บันทึกผลลัพธ์ และทำให้การจัดการง่ายขึ้นในที่สุด
บริการ syslog จัดทำโดย syslogd daemon ซึ่งจะถูกเปิดใช้งานโดยอัตโนมัติเมื่อเริ่มต้นระบบ มันอยู่ในหน่วยความจำอย่างต่อเนื่อง รอข้อความจากกระบวนการอื่นและประมวลผลตามการตั้งค่า
แต่ละข้อความมีลักษณะเฉพาะตามระดับและแหล่งที่มา (สิ่งอำนวยความสะดวก) ระดับจะระบุระดับความสำคัญของข้อความจากมุมมองของการทำงานของระบบ ไฟล์ syslog.h กำหนดระดับต่อไปนี้ (ลำดับความสำคัญ):
ตารางที่ 1. ระดับข้อความ
ระดับ |
คำอธิบาย |
เกิดขึ้น, ตื่นตระหนก |
สภาวะ “ตื่นตระหนก” |
เตือน |
เงื่อนไขที่ต้องได้รับการแทรกแซงทันที |
คริติคอล |
สภาพวิกฤติ |
ผิดพลาด ผิดพลาด |
ข้อผิดพลาดในการดำเนินงานอื่น ๆ |
คำเตือนคำเตือน |
คำเตือน |
สังเกต |
ข้อความที่ไม่ใช่ข้อผิดพลาดแต่คุณควรใส่ใจ |
ข้อมูล |
ข้อความแสดงข้อมูล (การทำงานปกติ) |
แก้ปัญหา |
ข้อมูลการแก้ไขข้อบกพร่อง |
ตารางที่ 1 แสดงรายการระดับข้อความจากมากไปน้อย คำสั่งนี้จำเป็นต้องใช้ในภายหลังเมื่อพูดถึงไวยากรณ์ของไฟล์คอนฟิกูเรชัน
การกำหนดระดับข้อความที่เขียนในบรรทัดเดียวกัน (เช่น ฉุกเฉินและตื่นตระหนก) เป็นคำพ้องความหมาย และสามารถใช้อย่างใดอย่างหนึ่งได้ อย่างไรก็ตาม ความตื่นตระหนก ข้อผิดพลาด และคำเตือน (รายการที่สองในตาราง) เลิกใช้แล้ว และควรหลีกเลี่ยงเมื่อแก้ไขไฟล์การกำหนดค่า ให้ใช้คำว่า emerg, err และ warning แทน
แหล่งที่มาของข้อความที่เป็นไปได้แสดงอยู่ในตารางที่ 2:
ตารางที่ 2. แหล่งที่มาของข้อความ
แหล่งที่มา |
คำอธิบาย |
เคิร์น |
ข้อความเคอร์เนล |
รับรองความถูกต้อง, autpriv |
|
ความปลอดภัย |
ข้อความความปลอดภัย (เช่น จากไฟร์วอลล์) |
คอนโซล |
ข้อความมาที่คอนโซล (/dev/console) |
บันทึกระบบ |
ข้อความ syslog ดั้งเดิม |
ครอน |
ข้อความครอน |
ข้อความบริการเวลา |
|
ข้อความ เซิร์ฟเวอร์ FTP |
|
พิมพ์ข้อความระบบย่อย |
|
จดหมาย |
ข้อความบริการไปรษณีย์ |
ข่าว |
ข้อความบริการข่าว |
uucp |
ข้อความ ยูซีพี |
ภูต |
ข้อความจาก daemons อื่นที่ทำงานอยู่ในระบบ |
ผู้ใช้ |
ข้อความกระบวนการของผู้ใช้ |
local0 – local7 |
ใช้งานได้หลากหลายความต้องการของผู้ใช้งาน (บางทีก็ใช้โดยระบบ) |
เมื่อกำหนดค่าแอปพลิเคชันเพื่อใช้บริการ syslog ให้ตรวจสอบว่าแอปพลิเคชันใดใช้ บางโปรแกรมอนุญาตให้คุณระบุแหล่งที่มาได้ด้วยตัวเอง ตัวอย่างเช่น clamd daemon (กระบวนการหลักของโปรแกรมป้องกันไวรัส clamav) จะใช้ local6 เป็นค่าเริ่มต้น แต่อนุญาตให้คุณระบุแหล่งที่มาอื่น (พารามิเตอร์ LogFacility ในไฟล์กำหนดค่า) ในบางกรณี อาจเป็นประโยชน์ที่จะรวมข้อความเข้ากับข้อความจากบริการอีเมล โดยระบุ LOG_MAIL เป็นแหล่งที่มา
ตัวเลือกการเปิดตัว Daemon
สำหรับรายการตัวเลือกการเริ่มต้นทั้งหมด โปรดดูที่หน้าคู่มือ syslogd ที่นี่เราจะพิจารณาเพียงไม่กี่อย่างเท่านั้น
Syslog สามารถบันทึกข้อความขาเข้าลงในไฟล์บันทึก (ซึ่งโดยปกติจะอยู่ในไดเร็กทอรี /var/log) ส่งไปยังคอนโซลของผู้ใช้หรือเทอร์มินัลที่เชื่อมต่อ ส่งไปยังโฮสต์ระยะไกล หรือส่งไปยังยูทิลิตี้ภายนอกเพื่อประมวลผล ผ่านทางไปป์ไลน์
หากต้องการทำงานผ่านเครือข่าย syslog จะใช้พอร์ต 514 (UDP และ TCP) เมื่อทำงานโดยไม่มีพารามิเตอร์เพิ่มเติม syslogd จะรับฟังพอร์ตเหล่านี้เพื่อรอข้อความขาเข้า สวิตช์ -s ป้องกันไม่ให้ยอมรับข้อความขาเข้า แต่ซ็อกเก็ตบนพอร์ต 514 ยังคงถูกสร้างขึ้นสำหรับการเชื่อมต่อขาออก เพื่อให้ syslogd สามารถส่งข้อความไปยังโฮสต์ระยะไกลได้ การเพิ่มสวิตช์เป็นสองเท่า (-ss) จะปิดใช้งานการเชื่อมต่อขาออกด้วย
ตามค่าเริ่มต้น syslogd จะเริ่มต้นด้วยสวิตช์ -s (ดู /etc/defaults/rc.conf พารามิเตอร์ syslogd_flags) ดังนั้นจึงห้ามการเชื่อมต่อขาเข้า หากคุณต้องการใช้บริการ syslog ของเซิร์ฟเวอร์เพื่อให้บริการหลายเครื่อง ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/rc.conf:
syslogd_flags= ””
สิ่งนี้จะแทนที่ค่าที่ตั้งไว้ใน /etc/defaults/rc.conf และ syslogd จะสามารถให้บริการการเชื่อมต่อขาเข้าได้ โดยปกติแล้ว ในกรณีนี้ มีความจำเป็นต้องรับรองระดับความปลอดภัยที่ต้องการ โดยกำจัดความเป็นไปได้ที่โฮสต์อื่นจะเขียนอะไรลงในบันทึกของคุณ สวิตช์ -a ช่วยให้คุณกำหนดข้อจำกัดในการเชื่อมต่อขาเข้า (ดู man syslogd) ไฟร์วอลล์ที่ได้รับการกำหนดค่าอย่างถูกต้องก็มีบทบาทสำคัญเช่นกัน
สวิตช์ที่มีประโยชน์อีกตัวหนึ่ง -l ช่วยให้คุณสามารถระบุไฟล์ซ็อกเก็ตเพิ่มเติมที่ syslogd daemon ฟัง นอกเหนือจากค่าเริ่มต้น /var/run/log ตัวอย่างเช่น จำเป็นต้องใช้คีย์นี้เพื่อให้ syslog สามารถให้บริการโปรแกรมที่ทำงานในสภาพแวดล้อมแบบ chrooted โดยเฉพาะอย่างยิ่ง นี่คือวิธีการทำงานของการตั้งชื่อ โดยเริ่มจาก BIND 9 ใน FreeBSD 5.3 นั้น syslogd จะเริ่มต้นด้วยคีย์ต่อไปนี้:
#ps-wax | grep syslog.dll
321 ?? เอสเอส 0:01.67 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s |
ไวยากรณ์ไฟล์การกำหนดค่า
การบันทึกได้รับการกำหนดค่าในไฟล์ /etc/syslog.conf ดำเนินไปโดยไม่ได้บอกว่ามีเพียงผู้ใช้รูทเท่านั้นที่สามารถแก้ไขได้ ไฟล์นี้ประกอบด้วยสตริงสองประเภท – เรียกว่า "ตัวกรอง" และ "กฎ"
บรรทัดตัวกรองระบุโปรแกรมหรือโฮสต์ที่จะใช้กฎต่อไปนี้กับข้อความจากโปรแกรมหรือโฮสต์ ตัวกรองในรูปแบบ “!prog” (หรือ “#!prog”) ระบุว่าบรรทัดต่อไปนี้อ้างอิงถึงบันทึกที่สร้างขึ้นโดยโปรแกรม prog ที่ระบุ คำพ้องสำหรับรายการนี้คือ “!+prog” ในทางกลับกัน บรรทัด "!-prog" ระบุว่ากฎที่ตามมาจะมีผลกับข้อความทั้งหมด ยกเว้นข้อความที่มาจากโปรแกรม prog อนุญาตให้แสดงรายการหลายโปรแกรมโดยคั่นด้วยเครื่องหมายจุลภาค ในขณะที่เครื่องหมาย "+" หรือ "-" ใช้กับรายการทั้งหมด
หากระบุสตริงตัวกรองเป็น "+ชื่อโฮสต์" โฮสต์ที่ระบุจะถูกใช้เป็นแหล่งที่มาของข้อความที่ควรได้รับการประมวลผลตามกฎที่ตามมา เช่นเดียวกับโปรแกรม สัญลักษณ์ “-” ระบุว่ากฎจะนำไปใช้กับข้อความทั้งหมด ยกเว้นข้อความที่มาจากโฮสต์ที่ระบุ คุณสามารถระบุรายชื่อโฮสต์โดยคั่นด้วยเครื่องหมายจุลภาค
อักขระ "*" ที่ระบุเป็นโปรแกรมหรือโฮสต์จะแทนที่ตัวกรองที่ตั้งค่าไว้ก่อนหน้านี้ นั่นคือกฎที่ระบุหลังบรรทัดดังกล่าวจะมีผลกับข้อความทั้งหมด ตัวกรองที่มีชื่อโฮสต์หรือโปรแกรมมีความเป็นอิสระจากกันและสามารถทำงานพร้อมกันได้ ตัวอย่างเช่น:
# กฎอยู่ที่นี่ใช้กับทุกข้อความ
My.host
# กฎนี้ใช้กับข้อความทั้งหมดจาก my.host
คนตัดไม้
# กฎถูกนำไปใช้กับข้อความจากคนตัดไม้จาก my.host (ตัวกรองโฮสต์ยังคงมีผลอยู่)
# กฎใช้กับข้อความจาก su ถึง my.host
# กฎใช้กับข้อความจาก su จากโฮสต์ใด ๆ (ตัวกรองโฮสต์ถูกยกเลิก ตัวกรองโปรแกรมยังคงทำงานต่อไป)
# กฎใช้กับทุกข้อความ (ตัวกรองโปรแกรมก็ถูกยกเลิกเช่นกัน)
เส้นกฎมีลักษณะดังนี้:
สิ่งอำนวยความสะดวกปลายทาง CMPlevel
สิ่งอำนวยความสะดวกในที่นี้คือแหล่งที่มาของข้อความ (“*” หมายถึงแหล่งที่มาใดๆ) ระดับคือระดับของข้อความที่จะถูกประมวลผลตามกฎนี้ คำว่าบริการ "ไม่มี" ที่ระบุแทนระดับ จะให้คำแนะนำในการยกเว้นข้อความจากแหล่งนี้โดยสมบูรณ์
CMP – อนุญาตให้ดำเนินการเปรียบเทียบ (สัญลักษณ์ ">", ""<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.
ปลายทางระบุว่าควรบันทึกข้อความนี้ไว้ที่ใด นี่อาจเป็นไฟล์บันทึก (ระบุเส้นทางแบบเต็มโดยเริ่มต้นด้วย “/”) ที่อยู่เซิร์ฟเวอร์ระยะไกล (เริ่มต้นด้วยสัญลักษณ์ “@”) ชื่อผู้ใช้ (ข้อความจะถูกส่งไปยังเทอร์มินัลที่ผู้ใช้อยู่ เชื่อมต่อ) ข้อความยังสามารถถ่ายโอนไปยังโปรแกรมภายนอกเพื่อประมวลผลได้ ซึ่งใช้สัญลักษณ์สายพานลำเลียง “|”
ตัวอย่างกฎเกณฑ์บางส่วน
ข้อความเคอร์เนลทั้งหมดจะถูกส่งไปยังไฟล์ kern.log
kern.* /var/log/kern.log
ข้อความแสดงข้อผิดพลาดทั้งหมด รวมถึงข้อความฉุกเฉิน การแจ้งเตือน และระดับคริติคอล จะถูกวางไว้ใน all-err.log สังเกตยติภังค์ก่อนชื่อไฟล์บันทึก ตามค่าเริ่มต้น ข้อความจะถูกบัฟเฟอร์ในหน่วยความจำและเขียนลงดิสก์เมื่อบัฟเฟอร์เต็ม ซึ่งจะช่วยลดภาระบนระบบไฟล์ แต่อาจทำให้ข้อมูลบางอย่างสูญหายหากเครื่องขัดข้อง ยัติภังค์หน้าชื่อไฟล์ทำให้ syslogd daemon เขียนข้อความลงดิสก์ทันที
*.err -/var/log/all-err.log
ข้อความการดีบักสำหรับกระบวนการของผู้ใช้จะถูกส่งออกไปยังเทอร์มินัลที่ผู้ใช้เชื่อมต่อ vasya อยู่ในปัจจุบัน
user.debug วาสยา
ข้อความทั้งหมดจากบริการข่าวสารและอีเมลจะถูกส่งต่อไปยังพอร์ต 514 ของเครื่อง syslog.host.ru
mail.*,news.* @syslog.host.ru
ข้อความบริการการพิมพ์ทั้งหมดที่มีระดับต่ำกว่าคำเตือนจะถูกวางไว้ในไฟล์ที่ระบุ ตามที่ระบุไว้ก่อนหน้านี้ การเปรียบเทียบเริ่มต้นคือ "มากกว่าหรือเท่ากับ" และ "!" กลับด้านโดยแทนที่ด้วย "น้อยกว่า" หากคุณต้องการยกเว้นระดับใดระดับหนึ่ง คุณควรใช้โครงสร้าง “!=”
lpr.!คำเตือน /var/log/printers.log
ข้อความระดับการแก้ไขข้อบกพร่อง (และเฉพาะสิ่งนี้) ที่มีระดับสิ่งอำนวยความสะดวกระดับ 0 และระดับ 3 จะถูกส่งออกไปยังเทอร์มินัลที่เชื่อมต่อทั้งหมด
ระดับ 0, ระดับ 3. = ดีบัก *
ข้อความบริการเวลาที่สูงกว่าวิกฤต (นั่นคือ เกิดขึ้นและแจ้งเตือน) และน้อยกว่าหรือเท่ากับการแจ้งเตือน (การแจ้งเตือน ข้อมูล และการดีบัก) จะถูกส่งไปยังเทอร์มินัลผู้ใช้ ntpuser และ root
ntp.>คริติคอล,<=notice ntpuser,root
ข้อความระดับคำเตือนทั้งหมด ยกเว้นข้อความที่มาจากบริการเมล จะถูกบันทึกไว้ในไฟล์ warn.log
*.=warning,mail.none /var/log/warn.log
ในกรณีนี้ ข้อความทั้งหมดที่มีระดับมากกว่าหรือเท่ากับคริติคอลจะถูกส่งทางอีเมลไปยังผู้ใช้รูท
*.คริติคอล | เมล - รูต "ข้อความสำคัญ"
อย่างที่คุณเห็น รูปแบบไฟล์การกำหนดค่าช่วยให้สามารถแสดงรายการหลายระดับ แหล่งที่มา และปลายทางในบรรทัดเดียว ทำให้การกำหนดค่ามีความยืดหยุ่นมากขึ้น เพื่อให้การเปลี่ยนแปลงหลังการแก้ไขมีผล คุณต้องส่งสัญญาณ HUP ไปยังกระบวนการ syslogd:
# ฆ่า –HUP `cat /var/run/syslog.pid`
ควรสังเกตว่าหากข้อความอยู่ในไฟล์การกำหนดค่าหลายบรรทัดข้อความนั้นจะถูกประมวลผลตามแต่ละบรรทัด ตัวอย่าง:
เมล.* /var/log/maillog
*.=err /var/log/error.log
ในกรณีนี้ ข้อความ mail.err จะลงเอยทั้งใน maillog และ error.log
กลยุทธ์การสร้างไฟล์คอนฟิกูเรชัน
เมื่อสรุปการตรวจสอบไฟล์การกำหนดค่าแล้ว ฉันจะพูดถึงกลยุทธ์ในการคอมไพล์มันสักสองสามคำ นอกจากสิ่งที่ได้รับความนิยมอย่างมาก “ตราบเท่าที่มันได้ผล” แล้ว เรายังแยกแยะความแตกต่างได้สองอย่างหลักๆ ซึ่งเราจะเรียกคร่าวๆ ว่า “ตามแหล่งที่มา” และ “ตามวัตถุประสงค์”
- กลยุทธ์แรก ซึ่งสามารถเห็นได้ในการกระจาย GNU/Linux จำนวนหนึ่ง คือการเขียนกฎที่แตกต่างกันสำหรับแหล่งที่มาของข้อความแต่ละแหล่ง (หรือกลุ่มของกฎหากข้อความในระดับที่แตกต่างกันควรได้รับการประมวลผลต่างกัน) ข้อได้เปรียบของมันคือความสะดวกในการระบุตำแหน่งที่จะบันทึกข้อความจากบริการเฉพาะ
- กลยุทธ์ "ตามปลายทาง" เกี่ยวข้องกับการสร้างบรรทัดเดียวสำหรับ "ผู้รับ" ของข้อความ เช่น ไฟล์ หากเป็นไปได้ แนวทางนี้ได้รับการปฏิบัติตามโดยเฉพาะอย่างยิ่งโดย FreeBSD ด้วยเหตุนี้ คุณสามารถกำหนดได้อย่างง่ายดายว่าข้อมูลใดถูกเขียนลงในไฟล์บันทึกเฉพาะ แต่ตัวอย่างเช่น ปลายทางสำหรับข้อความเคอร์เนลจะต้องถูกรวบรวมตลอดทั้งไฟล์คอนฟิกูเรชัน
ยูทิลิตี้คนตัดไม้
ระบบมียูทิลิตี้ตัวบันทึกที่ช่วยให้คุณส่งข้อความไปยังบริการ syslog ได้โดยตรงจากบรรทัดคำสั่ง สะดวกในการใช้เมื่อทดสอบกฎการกำหนดค่ารวมถึงในสคริปต์ที่พัฒนาขึ้นเพื่อบันทึกการทำงาน ตัวอย่าง:
user$ logger -p user.err “เกิดข้อผิดพลาดในโปรแกรมผู้ใช้!”
ผู้ใช้ $ คนตัดไม้ -h syslog.host.ru “ทดสอบ”
ตัวอย่างแรกจะส่งข้อความพร้อมข้อผิดพลาดระดับผู้ใช้สิ่งอำนวยความสะดวก ซึ่งจะถูกประมวลผลตามไฟล์การกำหนดค่า คำสั่งที่สองจะส่งข้อความไปยังโฮสต์ระยะไกล แหล่งที่มาและระดับเริ่มต้นจะถูกตั้งค่าเป็น user.notice
การใช้กลไกการหมุน
กลไกการบันทึกที่กล่าวถึงข้างต้นไม่ได้จัดให้มีการจัดการไฟล์บันทึกใดๆ ข้อความจะถูกวางไว้ตามกฎที่อธิบายไว้ในไฟล์กำหนดค่า ซึ่งหมายความว่าไฟล์บันทึกจะเติบโตอย่างต่อเนื่อง และหากไม่ทำอะไรเลย ไฟล์เหล่านั้นจะเต็มพื้นที่ว่างทั้งหมดของพาร์ติชันที่เกี่ยวข้องไม่ช้าก็เร็ว เพื่อหลีกเลี่ยงปัญหานี้ จึงมีการใช้กลไกการหมุน
ตัวอย่างเช่น เมื่อขนาดของไฟล์ debug.log เกิน 100 MB ไฟล์จะถูกเปลี่ยนชื่อเป็น debug.log.0 และบรรจุเป็น debug.log.0.bz2 และสร้าง debug.log ใหม่แทน ถัดไป เมื่อขนาดของไฟล์ใหม่ถึง 100 MB debug.log.0.bz2 จะถูกเปลี่ยนชื่อเป็น debug.log.1.bz2 และทำซ้ำขั้นตอนที่อธิบายไว้ข้างต้น ระบบจะจัดเก็บไฟล์เก็บถาวรจำนวนหนึ่งเท่านั้น โดยจะลบไฟล์ที่เก่าที่สุด นี่คือการหมุน
ยูทิลิตี้ newsyslog
บนระบบ FreeBSD ยูทิลิตี้ newsyslog มีหน้าที่รับผิดชอบในการหมุน ซึ่งตามค่าเริ่มต้นจะถูกเปิดใช้งานเมื่อเริ่มต้นทุกชั่วโมงโดย cron daemon คุณสามารถเปลี่ยนระยะเวลาการหมุนเวียนได้โดยแก้ไขไฟล์ /etc/crontab
พารามิเตอร์การหมุนที่ระบุในตัวอย่างข้างต้น (ขนาดไฟล์ บรรจุภัณฑ์) รวมถึงพารามิเตอร์อื่นๆ จำนวนมาก ได้รับการตั้งค่าในไฟล์คอนฟิกูเรชัน /etc/newsyslog.conf สำหรับแต่ละไฟล์ที่ต้องหมุน จะมีบรรทัดที่ประกอบด้วยเก้าฟิลด์โดยทั่วไป ได้แก่ ชื่อไฟล์ เจ้าของและกลุ่ม สิทธิ์การเข้าถึง หมายเลขสูงสุดในชื่อไฟล์เก็บถาวร ขนาดไฟล์สูงสุด ระยะเวลาการหมุนเวียน แฟล็กเพิ่มเติม และเส้นทางไปยังไฟล์ ไฟล์ PID ของแอปพลิเคชันที่ต้องส่งสัญญาณไปหลังการหมุน และจำนวนสัญญาณที่ควรส่งสัญญาณ (อาจจำเป็นต้องส่งสัญญาณไปยังกระบวนการ เช่น หากกระบวนการเปิดไฟล์บันทึกไว้ตลอดเวลา หากไม่เสร็จสิ้น ตัวอธิบายไฟล์ที่ใช้จะไม่ตรงกับไฟล์ที่สร้างขึ้นใหม่) บางฟิลด์อาจถูกละเว้น . ต่อไปนี้เป็นสองตัวอย่างที่สมบูรณ์และเป็น "ทั่วไป":
/var/log/pflog รูต: ล้อ 600 3 100 * JB /var/run/pflog.pid 1
ตามกฎนี้ควรเขียนทับไฟล์ pflog ทันทีที่มีขนาดเกิน 100 MB (ฟิลด์ที่ 5) โดยไม่คำนึงถึงเวลา (อักขระ “*” ในฟิลด์ที่ 6) ไฟล์ที่เก็บถาวรจะมีชื่อเช่น pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2 ฯลฯ ) และ X ต้องไม่เกินสาม (พารามิเตอร์ 3 ในฟิลด์ที่ 4) ธง J ระบุว่าไฟล์เก็บถาวรควรได้รับการแพ็กเกจโดยใช้ยูทิลิตี bzip2 ด้วยแฟล็ก B ข้อความบริการการหมุนจะไม่ถูกเพิ่มลงในไฟล์ที่เก็บถาวรและไฟล์ที่สร้างขึ้นใหม่ เนื่องจากไฟล์ถูกมองว่าเป็นไบนารี่ ไฟล์ที่สร้างขึ้นใหม่จะเป็นของผู้ใช้รูทและกลุ่มวงล้อ (ฟิลด์นี้สามารถละเว้นได้เนื่องจากนี่คือเจ้าของเริ่มต้น) การอนุญาตจะถูกตั้งค่าเป็น rw------- (ค่าตัวเลข 600) ซึ่งหมายความว่ามีเพียงเจ้าของเท่านั้นที่สามารถอ่านและเขียนลงในไฟล์นี้ได้ สุดท้าย สัญญาณ 1 (HUP) จะถูกส่งไปยังกระบวนการที่มี PID เก็บไว้ใน /var/run/pflog.pid เพื่อเปิดไฟล์บันทึกอีกครั้ง
/var/log/maillog 640 7 * @T00 เจ
กฎนี้ระบุพารามิเตอร์การหมุนสำหรับไฟล์ maillog: ไม่ว่าจะมีขนาดเท่าใด (เครื่องหมายดอกจันในช่องที่ 5) ไฟล์จะถูกเขียนใหม่ทุกคืนเวลา 00:00 น. (ใน man newsyslog.conf รูปแบบเวลาจะอธิบายไว้โดยละเอียดเพียงพอ) ไฟล์เก็บถาวรจะต้องได้รับการบรรจุ ไฟล์เก็บถาวร 8 รายการสุดท้าย (หมายเลข 0 ถึง 7 รวม) จะถูกบันทึก ไฟล์ที่สร้างขึ้นใหม่จะเป็นของผู้ใช้รูท (ค่าเริ่มต้น ดังนั้นฟิลด์เจ้าของจะถูกข้าม) และมีสิทธิ์ rw-r -----.
หากต้องการดูไฟล์บันทึกที่แพ็ก คุณสามารถใช้ยูทิลิตี้ zcat และ bzcat (สำหรับ gzip และ bzip2 ตามลำดับ) Midnight Commander เรียกยูทิลิตี้ที่เหมาะสมโดยอัตโนมัติ
หลังจากแก้ไขไฟล์ newsyslog.conf แล้ว ไม่จำเป็นต้องส่งสัญญาณใดๆ เลย การกำหนดค่าจะถูกอ่านอีกครั้งในครั้งถัดไปที่เรียกใช้ newsyslog
ควรสังเกตว่ายูทิลิตี้ newsyslog ไม่ได้เชื่อมโยงกับ syslogd daemon นั่นคือสามารถใช้เพื่อหมุนไฟล์ใด ๆ ที่ต้องการได้ หากเปิดใช้งานการหมุนเวียนสำหรับบันทึกที่แอปพลิเคชันเก็บรักษาโดยอิสระ (เช่น บันทึกแบบหอยหรือปลาหมึก) ให้ระมัดระวังเป็นพิเศษในการระบุเจ้าของและสิทธิ์การเข้าถึง การระบุไม่ถูกต้องอาจส่งผลให้หลังจากการหมุนเวียน แอปพลิเคชันที่ทำงานในฐานะผู้ใช้ที่ไม่มีสิทธิ์จะไม่สามารถเขียนลงในไฟล์ที่สร้างขึ้นใหม่ได้
สรุป
ระบบ syslog เป็นเครื่องมือที่ทรงพลังและมีประสิทธิภาพสำหรับการบันทึกเหตุการณ์ต่างๆ ที่เกิดขึ้นในระบบ การตั้งค่าเริ่มต้นค่อนข้างสมดุลและทำงานได้ดีกับระบบส่วนใหญ่ อย่างไรก็ตาม การทำความเข้าใจวิธีการทำงานของ syslog จะช่วยให้คุณสามารถปรับปรุงคุณภาพการบันทึกได้อย่างมาก โดยปรับแต่งการบันทึกข้อมูลบันทึกอย่างเคร่งครัดตามความต้องการของคุณ