Syslogd לינוקס פיקוד יוניקס

Sysklogd מספקת שני כלי עזר למערכת המספקים תמיכה בכניסה למערכת ושליפת הודעות ליבה. תמיכה של האינטרנט הן שקעים תחום יוניקס מאפשר חבילת השירות הזה כדי לתמוך בכניסה המקומית והן מרחוק.

רישום המערכת מסופק על ידי גירסה של syslogd (8) שמקורם במלאי BSD. תמיכה ברישום הקרנל מסופק על ידי כלי klogd (8) אשר מאפשר רישום הקרנל להתבצע באופן עצמאי או כלקוח של syslogd.

Syslogd מספק סוג של רישום, כי תוכניות מודרניות רבות להשתמש. כל הודעה שנרשמה מכילה לפחות שעה ושדה hostname, בדרך כלל שדה שם תוכנית, אבל זה תלוי עד כמה אמין תוכנית הרישום.

בעוד מקורות syslogd כבר שונה במידה ניכרת כמה הערות הן בסדר. קודם כל יש ניסיון שיטתי להבטיח syslogd בעקבות ברירת המחדל, התנהגות BSD סטנדרטי. הרעיון השני חשוב לציין כי גרסה זו של syslogd אינטראקציה שקוף עם הגירסה של syslog למצוא בספריות סטנדרטיות. אם בינארי המקושר לספריות משותפות סטנדרטיות נכשל בתפקוד תקין, אנו רוצים דוגמה להתנהגות חריגה.

קובץ הקונפיגורציה הראשי / etc / syslog.conf או קובץ חלופי, שניתן עם אפשרות -f , נקרא בעת האתחול. כל השורות המתחילות בסימן האש ("#" ") וקווים ריקים מתעלמות. אם מתרחשת שגיאה במהלך ניתוח הקו כולו הוא התעלם.

תַקצִיר

s-log [[s- log ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

אפשרויות

- שקע

באמצעות ארגומנט זה ניתן לציין שקעים נוספים מאותו syslogd שיש להאזין לו. זה נחוץ אם אתה הולך לתת daemon לרוץ בתוך chroot () הסביבה. אתה יכול להשתמש עד 19 שקעים נוספים. אם הסביבה שלך זקוקה אפילו יותר, עליך להגדיל את הסיומת MAXFUNIX בתוך קובץ המקור syslogd.c. דוגמה daemon chroot () daemon מתואר על ידי אנשים מ OpenBSD ב http://www.psionic.com/papers/dns.html.

ד

הפעלת מצב איתור באגים. שימוש זה daemon לא להמשיך מזלג (2) כדי להגדיר את עצמה ברקע, אבל מול זה להישאר בחזית ולכתוב מידע debug הרבה על הנוכחי tty. לקבלת מידע נוסף, עיין בסעיף 'ציתות'.

- קובץ config

ציין קובץ תצורה חלופי במקום /etc/syslog.conf , שהוא ברירת המחדל.

-h

כברירת מחדל, syslogd לא יעביר הודעות שהוא מקבל ממארחים מרוחקים. ציון בורר זה בשורת הפקודה יגרום לדמון יומן להעביר את כל ההודעות המרוחקות שהוא מקבל להעברת המארחים שהוגדרו.

-l hostlist

ציין שם מארח שיש לרשום רק עם שם המארח הפשוט שלו ולא fqdn. ניתן להגדיר מארחים מרובים באמצעות הפרדת המעי הגס (':' ').

- מרווח

ה- syslogd מתעד חותמת חותמת באופן סדיר. מרווח ברירת המחדל בין שני קווי מארק הוא 20 דקות. זה יכול להשתנות עם אפשרות זו. הגדרת המרווח לאפס מכבה אותו לחלוטין.

-n

הימנע רקע אוטומטי. זה נחוץ במיוחד אם syslogd הוא התחיל ו נשלט על ידי init (8).

שקע

ניתן לציין שקע דומיין חלופי של Unix במקום / dev / log .

-r

אפשרות זו תאפשר למתקן לקבל הודעה מהרשת באמצעות שקע תחום אינטרנט עם שירות syslog (ראה) 5 (. ברירת המחדל היא לא לקבל הודעות מהרשת.

אפשרות זו מוצגת בגירסה 1.3 של חבילת sysklogd. לידיעתך, התנהגות ברירת המחדל היא ההפך מדרך הפעולה של גרסאות ישנות יותר, לכן ייתכן שיהיה עליך להפעיל אותה.

-דומיין

ציין שם תחום שיש להפשיטו לפני הרישום. ניתן להגדיר דומיינים מרובים באמצעות הפרדת המעי הגס (':' '). לידיעתך, לא ניתן לציין תת-דומיינים אלא רק דומיינים שלמים. לדוגמה, אם -s North.de צוין הרישום המארח פותר satu.infodrom.north.de שום תחום יהיה לחתוך, תצטרך לציין שני תחומים כמו: -s North.de:infodrom.north.de .

-v

הדפס גרסה ויציאה.

-איקס

השבת חיפושים בעת קבלת הודעות מרוחקות. זה ימנע נמנעים כאשר שרת השמות פועל על אותה מכונה שמפעילה את הדמון syslog.

אותות

Syslogd מגיב למערכת של אותות. אתה יכול בקלות לשלוח אות syslogd באמצעות הבאות:

להרוג -SIGNAL `חתול / var / הפעלה / syslogd.pid`

נאנח

זה מאפשר syslogd לבצע אתחול מחדש. כל הקבצים הפתוחים סגורים, קובץ התצורה (ברירת המחדל הוא /etc/syslog.conf ) יופעל מחדש, והמתקן syslog (3) יתחיל שוב.

סיגטרם

Syslogd ימות.

סיגינט , זיגוויט

אם מאתר באגים מופעל, המערכת מתעלמת מהם, אחרת syslogd ימות.

SIGUSR1

הפעלה / כיבוי של באגים. ניתן להשתמש באפשרות זו רק אם syslogd מופעל עם אפשרות debug.

SIGCHLD

חכה לילדים אם היו נולדים, בגלל הודעות קיר.

קובץ תצורה הבדלים תחביר

Syslogd משתמש בתחביר שונה במקצת עבור קובץ התצורה שלו מאשר מקורות BSD המקוריים. במקור כל ההודעות של עדיפות מסוימת ומעלה הועברו לקובץ יומן.

לדוגמה, השורה הבאה גרמה לכל הפלט מהדמונים להשתמש במתקני daemon (באגים היא העדיפות הנמוכה ביותר, כך שכל גבוה יותר יתאים גם) להיכנס / usr / adm / daemons :

# לדוגמא syslog.conf daemon.debug / usr / adm / daemons

על פי התוכנית החדשה, התנהגות זו נשארת זהה. ההבדל הוא תוספת של ארבעה מפרטים חדשים, כוכבית ( * ) תווים כלליים, סימן המשוואה ( = ), סימן הקריאה ( ! ) והסימן מינוס ( - ).

* * מציין שכל ההודעות עבור המתקן שצוין יופנו ליעד. שים לב שהתנהגות זו מנוונת עם ציון רמת העדיפות של ניקוי באגים. משתמשים ציינו כי סימון הכוכבית הוא אינטואיטיבי יותר.

התו הכללי = משמש להגבלת הכניסה למחלקת העדיפות שצוינה. כך, למשל, ניתוב הודעות באגים בלבד למקור רישום מסוים.

לדוגמה, השורה הבאה ב- syslog.conf תנחה הודעות debug מכל המקורות לקובץ USR / adm / debug .

# לדוגמא syslog.conf *. = Debug / usr / adm / debug

את ! משמש כדי לא לכלול רישום של סדרי העדיפויות שצוינו. זה משפיע על כל (!) האפשרויות של קביעת סדרי עדיפויות.

לדוגמה, השורות הבאות ירשמו את כל ההודעות של הדואר המתקן, למעט אלה עם פרטי עדיפות לקובץ / usr / adm / mail . וכל ההודעות מ- news.info (כולל) ל news.crit (למעט) יירשמו לקובץ / usr / adm / news .

# לדוגמא דואר syslog.conf. * דואר.! = Info / usr / adm / mail news.info; חדשות. Crit / usr / adm / news

אתה יכול להשתמש בו באופן אינטואיטיבי כמפרט חריג. הפרשנות שהוזכרו לעיל היא פשוט הפוכה. עושה את זה אתה יכול להשתמש

mail.none

אוֹ

דוֹאַר.!*

אוֹ

דואר.! deb

כדי לדלג על כל הודעה שמגיע עם מתקן הדואר. יש הרבה מקום לשחק בו. Youנות

- ניתן להשתמש רק כדי להקליד שם קובץ אם אתה רוצה להשמיט syncing את הקובץ לאחר כל לכתוב את זה.

זה עלול לקחת קצת אקלום עבור אותם אנשים המשמשים את התנהגות BSD טהור, אבל בודקים ציינו כי תחביר זה הוא קצת יותר גמישה מאשר התנהגות BSD. שים לב ששינויים אלה אינם אמורים להשפיע על קובצי syslog.conf סטנדרטיים (5). עליך לשנות באופן ספציפי את קבצי התצורה כדי לקבל את ההתנהגות המשופרת.

תמיכה עבור רישום מרחוק

שינויים אלה מספקים תמיכה ברשת למתקן syslogd. תמיכה ברשת פירושה כי ניתן להעביר הודעות מצומת אחת המפעילה syslogd לצומת אחר שבו פועל syslogd שבו הם למעשה יירשמו לקובץ דיסק.

כדי לאפשר זאת עליך לציין את האפשרות -r בשורת הפקודה. התנהגות ברירת המחדל היא ש- syslogd לא יקשיב לרשת.

האסטרטגיה היא להקשיב syslogd על שקע תחום יוניקס עבור הודעות יומן שנוצר באופן מקומי. אופן פעולה זה יאפשר ל- syslogd לפעול באופן אינטראקטיבי עם syslog שנמצא בספריית C הסטנדרטית. במקביל syslogd מקשיב על יציאת syslog סטנדרטי עבור הודעות המועברים מן המארחים האחרים. כדי לקבל את העבודה בצורה נכונה את השירותים (5) קבצים (בדרך כלל נמצא / וכו ' ) חייב להיות הערך הבא:

514 / udp

אם ערך זה חסר syslogd לא יכול לקבל הודעות מרוחקות או לשלוח אותם, כי צומת UDP לא ניתן לפתוח. במקום זאת, syslogd ימות מיד, נושבת החוצה הודעת שגיאה.

כדי להעביר הודעות למארח אחר, החלף את שורת הקבצים הרגילה בקובץ syslog.conf עם שם המארח שאליו יש לשלוח את ההודעות עם @.

לדוגמה, כדי להעביר את כל ההודעות למארח מרוחק באמצעות הערך syslog.conf הבא:

# קובץ תצורה syslogd לדוגמה # הודעות למארח מרוחק קדימה. *.* @שם מארח

כדי להעביר את כל הודעות הקרנל למארח מרוחק, קובץ ההגדרות יהיה כדלקמן:

# דוגמה קובץ תצורה כדי להעביר את כל הקרנל # הודעות למארח מרוחק. kern. * @hostname

אם לא ניתן לפתור את שם המארח המרוחק בעת האתחול, מכיוון ששרת השרת אינו נגיש (ייתכן שהוא מופעל לאחר syslogd) אינך צריך לדאוג. Syslogd ינסה שוב לפתור את השם עשר פעמים ואז להתלונן. אפשרות נוספת להימנע מכך היא לשים את שם המארח ב / etc / hosts .

עם syslogd רגיל אתה תקבל syslog- לולאות אם תשלח הודעות שהתקבלו מארח מרוחק לאותו מארח (או יותר מסובך המארח השלישי ששולח אותו בחזרה הראשונה, וכן הלאה). בתחום שלי (Infodrom Oldenburg) אנחנו בטעות יש אחד הדיסקים שלנו מלא עם אותה הודעה אחת. :-(

כדי למנוע זאת בזמנים נוספים, אף הודעה שהתקבלה ממארח ​​מרוחק נשלחת לארח מרוחק אחר (או אותו) מרוחק יותר. אם יש תרחישים שבהם זה לא הגיוני, בבקשה תן לי (ג 'ואי) שורה.

אם המארח המרוחק נמצא באותו תחום כמו המארח, syslogd פועל, רק שם המארח הפשוט יירשם במקום fqdn כולו.

ברשת מקומית אתה יכול לספק שרת יומן מרכזי כדי לקבל את כל המידע החשוב שמר על מכונה אחת. אם הרשת מורכבת מתחומים שונים, אינך צריך להתלונן על רישום שמות מלאים, במקום שמות מארחים פשוטים. ייתכן שתרצה להשתמש בתכונה 'תחום הרצועה' - של שרת זה. אתה יכול להגיד את syslogd לפשוט כמה תחומים אחרים מאשר שרת אחד ממוקם ורק להיכנס לארח פשוט.

באמצעות האפשרות -l יש גם אפשרות להגדיר מארח יחיד כמכונות מקומיות. זה גם, תוצאות רישום רק שמות המארח שלהם פשוט לא fqdns.

שקע ה- UDP המשמש להעברת הודעות למארחים מרוחקים או לקבלת הודעות מהם נפתח רק כאשר הוא נחוץ. ב משחרר לפני 1.3-23 זה נפתח בכל פעם אבל לא נפתח לקריאה או העברה בהתאמה.

פלט צינורות בשם (FIFOs)

גרסה זו של syslogd יש תמיכה עבור הפלט בכניסה צינורות בשם (pipos). ניתן להשתמש בשם pipo או בשם pipe כמיקום ליעדי יומן על-ידי הוספת סימן פיפי (`| '') לשם הקובץ. זה שימושי עבור באגים. שים לב כי pheno חייב להיות שנוצר עם הפקודה mkfifo לפני syslogd הוא התחיל.

קובץ ההגדרות הבא מפנה הודעות באגים מהקרנל ל- fiveo:

# תצורת הדגימה כדי לנתב באגים של הליבה # הודעות רק ל / usr / adm / debug שהוא צינור בשם #. kern. 49 debug | / usr / adm / debug

חששות התקנה

יש כנראה שיקול חשוב אחד בעת התקנת גירסה זו של syslogd. גירסה זו של syslogd תלויה בעיצוב המתאים של הודעות על ידי הפונקציה syslog. התפקוד של הפונקציה syslog בספריות המשותפות השתנה איפשהו באזור libc.so.4. [2-4]. השינוי הספציפי היה לבטל את ההודעה לפני העברתה לשקע / dev / log . תפקוד תקין של גירסה זו של syslogd תלוי סיום null של ההודעה.

בעיה זו תתבטא בדרך כלל אם הקבצים הבינאריים המקושרים מבחינה סטטיסטית נמצאים בשימוש במערכת. קבצים בינאריים המשתמשים בגרסאות ישנות של הפונקציה syslog יגרום לרישום של שורות ריקות ואחריהן ההודעה עם התו הראשון בהודעה שתוסר. קישור מחדש של הקבצים הבינאריים הללו לגירסאות חדשות יותר של הספריות המשותפות יתקן בעיה זו.

הן את syslogd (8) ואת klogd (8) ניתן להפעיל מ init (8) או התחיל כחלק rc. * רצף. אם זה התחיל מ init את האפשרות -n חייב להיות מוגדר, אחרת, תקבל טונות של syslog daemons התחיל. הסיבה לכך היא כי init (8) תלוי מזהה התהליך.

איומים ביטחוניים

יש פוטנציאל עבור daemon syslogd לשמש צינור עבור התקף מניעת שירות. תודה לך ג 'ון מוריסון (jmorriso@rflab.ee.ubc.ca) על התראה לי פוטנציאל זה. תוכנית נוכלים (mer) יכול בקלות להציף את daemon syslogd עם הודעות syslog וכתוצאה מכך קבצי יומן לצרוך את כל החלל שנותר על מערכת הקבצים . הפעלת כניסה על שקעים תחום inet יהיה כמובן לחשוף את המערכת לסיכונים מחוץ תוכניות או אנשים על המחשב המקומי.

קיימות מספר שיטות להגנה על מכונה:

  1. הפעל חומת אש של ליבה כדי להגביל את המארחים או הרשתות שיש להם גישה לשקע 514 / UDP.
  2. רישום יכול להיות מופנה אל מערכת קבצים בודדים או שאינם שורש אשר, אם מלא, לא יפגע במכונה.
  3. מערכת הקבצים ext2 ניתן להשתמש אשר ניתן להגדיר להגביל אחוז מסוים של מערכת הקבצים לשימוש על ידי השורש בלבד. שים לב כי זה יחייב syslogd להיות לרוץ כתהליך שאינו שורש. כמו כן, זה ימנע שימוש של רישום מרחוק מאז syslogd לא יוכלו לאגד את שקע 514 / UDP.
  4. השבתת שקעי תחום INet תגביל את הסיכון למכונה המקומית.
  5. השתמש בשלב 4 ואם הבעיה נמשכת ואינה משנית לתוכנית / daemon סוררים, אורך 3.5 מטר (כ- 1 מטר) של מוט פראייר * ויש לך צ'אט עם המשתמש המדובר. מוט מוצץ מוט. - 3/4, 7/8 או 1in. מוט פלדה קשיח, זכר משורבב על כל קצה. שימוש עיקרי בתעשיית הנפט במערב דקוטה המערבית ובמקומות אחרים כדי לשאוב שמן 'למצוץ' מבארות נפט. השימושים המשניים נועדו לבניית מגרשי הבקר ולהתמודדות עם הסרבן מדי פעם או לוחמני.

באגים

כאשר debugging מופעלת באמצעות האפשרות -d אז syslogd יהיה מאוד verbose על ידי כתיבת הרבה ממה שהיא עושה על stdout. בכל פעם שקובץ התצורה חוזר וקורא מחדש, תראה טבלה, המתאימה למבנה הנתונים הפנימי. טבלה זו מורכבת מארבעה תחומים:

מספר

שדה זה מכיל מספר סידורי שמתחיל באפס. מספר זה מייצג את המיקום במבנה הנתונים הפנימי (כלומר המערך). אם מספר אחד נותר בחוץ, ייתכן שקיימת שגיאה בשורה המתאימה ב- /etc/syslog.conf .

תַבְנִית

שדה זה הוא מסובך ומייצג את המבנה הפנימי בדיוק. כל עמודה עומדת במתקן (ראה syslog (3)). כפי שאתם יכולים לראות, ישנם עדיין כמה מתקנים נותרו חופשיים לשימוש קודם, רק השמאלי ביותר משמשים. כל שדה בעמודה מייצג את סדרי העדיפויות (עיין syslog (3)).

פעולה

שדה זה מתאר את הפעולה הספציפית שמתרחשת בכל פעם שמתקבלת הודעה התואמת את התבנית. עיין ב syslog.conf (5) manpage עבור כל הפעולות האפשריות.

ארגומנטים

שדה זה מציג ארגומנטים נוספים לפעולות בשדה האחרון. עבור רישום קבצים זה שם הקובץ עבור logfile; עבור רישום משתמשים זוהי רשימה של משתמשים; עבור רישום מרחוק זה שם המארח של המחשב כדי להתחבר; עבור קונסולת רישום זה קונסולה בשימוש; עבור tty-logging זה tty שצוין; לקיר אין ארגומנטים נוספים.

ראה גם

לוגר (1), syslog (2), (5)

משתפי פעולה

Syslogd נלקח ממקורות BSD, גרג ווטשטיין (greg@wind.enjellic.com) ביצע את היציאה ללינוקס , מרטין שולץ (joey@linux.de) תיקן כמה באגים והוסיף מספר תכונות חדשות. Klogd נכתב במקור על ידי סטיב לורד (lord@cray.com), גרג Wettstein עשה שיפורים משמעותיים.

ד"ר גרג ווטשטיין
פיתוח מערכות Enjellic

אונקולוגיה
מרכז רוג 'ר מאריס לסרטן
פארגו, נ
greg@wind.enjellic.com

סטיבן טווידי
המחלקה למדעי המחשב
אוניברסיטת אדינבורו, סקוטלנד
sct@dcs.ed.ac.uk

ג'וחה וירטאנן
jiivee@hut.fi

שיין אלדרטון
shane@ion.apana.org.au

מרטין שולץ
אינפודרום אולדנבורג
joey@linux.de

חשוב: השתמש בפקודת הגבר ( % man ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.

מאמרים קשורים