Syslogd Linux і Unix каманднага

Sysklogd прадастаўляе дзве сістэмныя ўтыліты, якія забяспечваюць падтрымку пратакалявання сістэмы і адлову паведамленняў ядра. Падтрымка як Інтэрнэт і Unix сокеты дазваляе гэтую ўтыліту пакет для падтрымкі як лакальнага і аддаленага пратакалявання.

Уваход у сістэму ажыццяўляецца з дапамогай версіі SyslogD (8) , атрыманых з крыніц акцый BSD. Падтрымка для рэгістрацыі ядра забяспечваецца Klogd (8) ўтыліта , якая дазваляе вядзенне часопіса ядра , якія будуць праводзіцца альбо ў аўтаномным модзе ці як кліент Syslogd.

Syslogd забяспечвае свайго роду рэгістрацыі, што многія сучасныя праграмы выкарыстоўваюць. Кожныя ўваход паведамленні ўтрымоўваюць, па меншай меры, час і поле імя хаста, як правіла, гэта поле імя праграмы, таксама, але гэта залежыць ад таго, як выпрабаванай праграмы пратакалявання.

У той час як SyslogD крыніцы былі моцна змененыя пару нот ў парадку. Перш за ўсё, была сістэматычная спроба забяспечыць, каб Syslogd варта яго значэнне па змаўчанні, стандартныя паводзіны BSD. Другое важнае паняцце, каб адзначыць, што гэтая версія SyslogD ўзаемадзейнічае празрыста з версіяй Syslog знойдзенай у стандартных бібліятэках. Калі бінарнае звязаны са стандартнымі падзялянымі бібліятэкамі не можа правільна функцыянаваць, мы хацелі б прыклад анамальнага паводзінаў.

Асноўны канфігурацыйны файл /etc/syslog.conf або альтэрнатыўны файл, задаецца з дапамогай опцыі -f, чытаецца пры запуску. Любыя радкі, якія пачынаюцца з дыез ( `` # «») і пустыя радкі ігнаруюцца. Пры памылкі падчас разбору ўсёй лініі ігнаруецца.

канспект

Syslogd [-a сокет] [-d] [-f файл канфігурацыі] [-h] [-l Список_адресов] [-m інтэрвал] [-n] [-p сокет] [-r] [-s domainlist] [- v] [-x]

опцыі

-a сокет

Выкарыстоўваючы гэты аргумент , вы можаце паказаць дадатковыя разеткі ад Syslogd павінен слухаць. Гэта неабходна, калі вы збіраецеся дазволіць некаторага дэману працаваць у асяроддзі каранёвай (). Вы можаце выкарыстоўваць да 19 дадатковых разетак. Калі ў вашай асяроддзі неабходна яшчэ больш, вы павінны павялічыць сімвал MAXFUNIX ў межах зыходнага файла syslogd.c. Прыклад для каранёвага () дэмана апісваецца людзьмі з OpenBSD на http://www.psionic.com/papers/dns.html.

-d

Уключае рэжым адладкі. Выкарыстоўваючы гэты дэман не будзе працягвацца відэльцам (2) , каб усталяваць сябе ў фонавым рэжыме, але насупраць , што знаходжанне на пярэднім плане і пісаць шмат адладкавай інфармацыі аб бягучым тэрмінале. Глядзіце раздзел DEBUGGING для атрымання дадатковай інфармацыі.

-f файл канфігурацыі

Пакажыце альтэрнатыўны канфігурацыйны файл замест /etc/syslog.conf, які па змаўчанні.

-h

Па змаўчанні SyslogD не будзе перасылаць паведамленні, якія ён атрымлівае ад аддаленых хастоў. Вызначэнне гэтага ключа ў камандным радку выкліча часопіса дэман накіраваць любыя выдаленыя паведамленні, якія ён атрымлівае для пераадрасацыі хастоў, якія былі вызначаныя.

-l Список_адресов

Пакажыце імя хаста, якое павінна быць аўтарызаваны толькі з простым імем хаста, а не FQDN. Множныя хасты могуць быць паказаныя з дапамогай двукроп'я ( ``: «») сепаратар.

-m інтэрвал

Syslogd рэгіструе пазнакі пазнакі рэгулярна. Па змаўчанні інтэрвал паміж двума - MARK - лініі складае 20 хвілін. Гэта можа быць зменена з дапамогай гэтай опцыі. Ўстаноўка інтэрвалу да нуля выключае яго цалкам.

-n

Пазбягайце аўтаматычнай фонавы. Гэта неабходна , асабліва калі Syslogd запускаецца і кантралюецца ініцыялізацыі (8).

-p сокет

Вы можаце паказаць замест / распрацоўніка / часопіс альтэрнатыўнага дамена сокета Unix.

-r

Гэтая опцыя дазволіць сродак для прыёму паведамленні ад сеткі, выкарыстоўваючы сокет дамена інтэрнэту з сістэмным часопісам службай (см (5)). Па змаўчанні, каб не атрымліваць ніякіх паведамленняў ад сеткі.

Гэтая опцыя ўведзена ў версіі 1.3 пакета Sysklogd. Звярніце ўвагу, што па змаўчанні з'яўляецца супрацьлегласцю таго, як больш старыя версіі паводзяць сябе, так што вы, магчыма, прыйдзецца ўключыць гэтую опцыю.

-s domainlist

Пакажыце даменнае імя, якое павінна быць адагнаны перад уваходам. Некалькі дамены могуць быць паказаныя з дапамогай двукроп'я ( ``: «») сепаратара. Звярніце ўвагу, што ніякіх паддаменаў не можа быць вызначаны, але толькі цэлыя дамены. Напрыклад , калі -s north.de паказаны і лесанарыхтоўчай хост вырашае satu.infodrom.north.de дамен не будзе скарочаны, Вам трэба будзе падаць два дамена , як: -s north.de:infodrom.north.de.

-v

Версія для друку і выхаду.

-x

Адключыць пошук імёнаў пры атрыманні аддаленых паведамленняў. Гэта дазваляе пазбегнуць тупікоў, калі сервер імёнаў працуе на той жа машыне, якая запускае дэман сістэмнага часопіса.

сігналы

Syslogd рэагуе на набор сігналаў. Вы можаце лёгка паслаць сігнал SyslogD , выкарыстоўваючы наступнае:

забіць -СИГНАЛ `кошкі / уаг / запуску / syslogd.pid`

SIGHUP

Гэта дазваляе Syslogd выканаць паўторную ініцыялізацыю. Усе адкрытыя файлы зачыняюцца, канфігурацыйны файл ( па змаўчанні /etc/syslog.conf) будзе перачытваць і сістэмны часопіс (3) аб'ект запускаецца зноў.

SIGTERM

Syslogd памрэ.

SIGINT, SIGQUIT

Калі адладка ўключаная яны ігнаруюцца, інакш Syslogd памрэ.

SIGUSR1

Перамыкач адладкі вкл / выкл. Гэтая опцыя можа быць выкарыстана толькі ў тым выпадку Syslogd запускаецца з опцыяй -d адладкі.

SIGCHLD

Пачакайце Чайлдс, калі некаторыя з іх былі народжаныя з-за wall'ing паведамленняў.

Сінтаксіс Адрозненні файла канфігурацыі

Syslogd выкарыстоўвае трохі іншы сінтаксіс канфігурацыйнага файла , чым першакрыніц BSD. Першапачаткова ўсе паведамленні пэўнага прыярытэту і вышэй, былі накіраваныя ў лог-файл.

Напрыклад, наступны радок выклікаецца ALL выхад з дэманаў з дапамогай дэмана аб'ектаў (адладкі самы нізкі прыярытэт, таму кожны вышэй будзе таксама адпавядаць) , каб перайсці ў / USR / ADM / дэманы:

# Прыклад syslog.conf daemon.debug / USR / ADM / дэманы

Па новай схеме гэтыя паводзіны застаецца тым жа самым. Розніца заключаецца ў даданні чатырох новых спецификаторы, зорачка (*) падстаноўных знак раўнанне (=), клічнік, а знак мінус (!) (-).

* Паказвае , што ўсе паведамленні для названага аб'екта павінны быць накіраваны да месца прызначэння. Звярніце ўвагу, што такія паводзіны з'яўляецца зводу з указаннем ўзроўню прыярытэту адладкі. Карыстальнікі адзначылі, што зорачка абазначэння больш інтуітыўным.

= Падстаноўных выкарыстоўваюцца для абмежавання пратакалявання да згаданага класу прыярытэту. Гэта дазваляе, напрыклад, маршрутызацыі толькі адладкавыя паведамленні для канкрэтнага крыніцы рэгістрацыі.

Напрыклад, наступны радок у syslog.conf накіруе адладкавыя паведамленняў з усіх крыніц у ЕГР адм файл / / / адладкі.

# Прыклад syslog.conf *. = Адладжваць / USR / ADM / адладкі

! выкарыстоўваецца для выключэння журналявання названых прыярытэтаў. Гэта ўплывае на ўсе (!) Магчымасць вызначэння прыярытэтаў.

Напрыклад, наступныя радкі будуць рэгістраваць ўсе паведамленні аб аб'екце пошце , акрамя тых , з прыярытэтнай інфармацыяй у / USR / ADM / паштовы файл. І ўсе паведамленні ад news.info (уключна) да news.crit ( за выключэннем) будзе запісвацца ў ЕГР файл навін / / ADM /.

# Прыклад syslog.conf пошта. *;.! Пошта = інфармацыя / USR / ADM / пошта news.info;.! Навіны Крыт / USR / ADM / Навіны

Вы можаце выкарыстоўваць яго інтуітыўна ў якасці спецификатора выключэнні. Вышэй інтэрпрэтацыя проста перавярнулі. Робячы што вы можаце выкарыстоўваць

mail.none

або

пошта.! *

або

пошта.! адладжваць

каб прапусціць кожнае паведамленне, якое прыходзіць з поштай аб'ектам. Існуе шмат месца, каб гуляць з ім. :-)

- можа быць выкарыстана толькі ў якасці прэфікса імя файла , калі вы хочаце , каб прапусціць сінхранізацыі файла пасля кожнай запісы ў яго.

Гэта можа заняць некаторую акліматызацыю для тых людзей, якія звыкліся да чыстага паводзінам BSD, але выпрабавальнікі паказалі, што гэты сінтаксіс больш гнуткі, чым паводзіны BSD. Звярніце ўвагу , што гэтыя змены не павінны ўплываць на стандартны syslog.conf (5) файлаў. Вы павінны спецыяльна змяняць канфігурацыйныя файлы для атрымання палепшанага паводзін.

Падтрымка аддаленага журналявання

Гэтыя мадыфікацыі забяспечваюць падтрымку сеткі да Syslogd аб'екту. Падтрымка сеткі азначае, што паведамленні могуць быць перададзены ад аднаго вузла пад кіраваннем SyslogD на іншы вузел працуе SyslogD, дзе яны будуць фактычна які ўвайшоў у файл на дыску.

Для таго, каб уключыць гэта трэба паказаць параметр -r у камандным радку. Паводзіны па змаўчанні з'яўляецца тое , што Syslogd не будзе слухаць сетку.

Стратэгія заключаецца ў тым, каб мець Syslogd праслухоўвае сокет дамена UNIX для лакальна згенераваных паведамленняў часопіса. Такія паводзіны дазволіць Syslogd Інтэру-працаваць з Syslog, знойдзенай у стандартнай бібліятэцы C. У тым жа час SyslogD праслухоўвае стандартны сістэмны часопіс порта для паведамленняў, перададзеных з іншых хастоў. Для таго, каб мець гэтую працу правільна паслуг (5) файлы (звычайна знаходзіцца ў / і г.д.) , павінны мець наступную запіс:

сістэмны часопіс 514 / UDP

Калі гэты параметр не хапае SyslogD ні можа атрымліваць выдаленыя паведамленні і ня пасылаць іх, так як порт UDP не можа адкрыць. Замест гэтага Syslogd памрэ адразу, выдзіманне паведамленне пра памылку.

Каб выклікаць паведамлення , якія будуць накіраваны на іншы хост замяніць звычайную радок файла ў файл syslog.conf з імем хаста , да якога паведамлення павінен быць адпраўлены папярэднічаецца з @.

Напрыклад, каб перасылаць ўсе паведамленні на выдалены хост , выкарыстоўваючы наступную syslog.conf запіс:

# Прыклад файла канфігурацыі Syslogd на # паведамленняў на выдалены хост наперад ўсіх. *. * @ Имя_узел

Каб пераадрасаваць ўсе паведамленні ядра на выдалены хост канфігурацыйны файл будзе выглядаць наступным чынам :

# Прыклад канфігурацыйнага файла для перасылкі усіх ядра # паведамленняў на выдалены хост. Керн. * @ Имя_узел

Калі аддалены хост не можа быць вырашана пры запуску, так як імя-сервер можа быць не даступны (ён можа быць запушчаны пасля таго, як SyslogD) вам не прыйдзецца турбавацца. Syslogd будзе спрабаваць вырашыць імя ў дзесяць разоў , а потым скардзяцца. Яшчэ адна магчымасць пазбегнуць гэтага , каб змясціць імя хаста ў / і г.д. / хастоў.

З нармальным Syslogd s вы атрымаеце сістэмны часопіс лупы , калі вы адпраўляеце паведамленні , якія былі атрыманы з выдаленым хаста на адным хост (або больш складаны для трэцяга вузла , які пасылае яго назад у першым, і гэтак далей). У маёй вобласці (Infodrom Ольденбург) мы выпадкова атрымалі адзін і нашыя дыскі запоўненыя пры дапамозе аднаго паведамленні. :-(

Каб пазбегнуць гэтага ў далейшым раз ніякіх паведамленняў, якія былі атрыманы з выдаленага хаста ня адсылаюцца на іншую (ці ж) аддаленага хаста больш. Калі ёсць сцэнары, дзе гэта не мае сэнсу, калі ласка, напішыце мне (Joey) лініі.

Калі аддалены хост знаходзіцца ў тым жа дамене, што і гаспадар, Syslogd працуе на, толькі простае імя хаста будзе запісаны замест цэлага FQDN.

У лакальнай сеткі вы можаце прадаставіць цэнтральны сервер часопіса, каб мець ўсю важную інфармацыю захаваную на адной машыне. Калі сетка складаецца з некалькіх даменаў, вам не прыйдзецца скардзіцца на ўваход поўных імёнаў замест простых імёнаў хастоў. Вы можаце выкарыстоўваць функцыю стрып-дамена -s гэтага сервера. Вы можаце сказаць SyslogD здзіраць , акрамя аднаго сервера знаходзіцца ў некалькіх даменах і толькі ўвайсці простыя імёны хастоў.

З дапамогай опцыі -l ёсць таксама магчымасць вызначаць асобныя хасты як лакальныя машыны. Гэта таксама прыводзіць да рэгістрацыі толькі іх простыя і ня хастоў у FQDNs.

UDP сокет выкарыстоўваецца для перасылкі паведамленняў на выдаленыя хасты або атрымліваць паведамленні ад іх адкрыты толькі тады, калі гэта неабходна. У версіях да 1.3-23 ён быў адкрыты кожны раз, але не адкрыты для чытання або перасылкі адпаведна.

Выхад на найменныя каналы (FIFOs)

Гэтая версія SyslogD падтрымлівае ўваход выхад найменныя каналы (FIFO). ФИФО або найменны канал можа быць выкарыстаны ў якасці месца прызначэння для паведамленняў часопіса, папярэднічаючы зычны сімвал ( `` | «») да імя файла. Гэта зручна для адладкі. Звярніце ўвагу, што ФИФО павінны быць створаны з дапамогай mkfifo каманды да пачатку Syslogd.

Наступныя канфігурацыі паведамлення файла маршруты адладжваць ад ядра да FIFO:

# Прыклад канфігурацыі для маршрутызацыі ядра паведамленняў адладкі # ТОЛЬКО в / USR / ADM / адладкі, які з'яўляецца # Найменныя каналам. Керн = адладжваць |. / USR / ADM / адладкі

Занепакоенасць па ўстаноўцы

Існуе, верагодна, адзін важны фактар ​​пры ўсталёўцы гэтай версіі SyslogD. Гэтая версія SyslogD залежыць ад правільнага фарматавання паведамленняў з дапамогай функцыі сістэмнага часопіса. Функцыянаванне сістэмнага часопіса функцыі ў агульных бібліятэках змянілася недзе ў галіне libc.so.4. [2-4] .N. Канкрэтнае змяненне было абнуліць-спыніць паведамленне перад перадачай яго ў / DEV / часопісе разетку. Правільнае функцыянаванне гэтай версіі SyslogD залежыць ад нуля-спынення паведамленні.

Гэтая праблема звычайна выяўляецца, калі старыя статычна звязаныя бінарныя файлы, якія выкарыстоўваюцца ў сістэме. Бінарныя з выкарыстаннем старых версій функцыі сістэмнага часопіса выклічуць пустыя радкі будуць нарыхтаваныя з наступным паведамленнем з першым сімвалам ў паведамленні выдалена. Перекомпоновке гэтых двайковых файлаў на больш новыя версіі падзяляем бібліятэк будзе выправіць гэтую праблему.

Абодва Syslogd (8) і Klogd (8) могуць альбо быць запушчаныя з ініцыялізацыі (8) або пачалі як частка гс. * Паслядоўнасць. Калі ён пачынаецца з ініцыялізацыяй параметр -n павінен быць усталяваны, у адваротным выпадку, вы атрымаеце тоны сістэмнага часопіса дэманаў пачаліся. Гэта адбываецца таму , ініцыялізацыі (8) залежыць ад ідэнтыфікатара працэсу.

пагрозы бяспекі

Існуе патэнцыял для Syslogd дэман будзе выкарыстоўвацца ў якасці канала для атакі адмовы ў абслугоўванні. Выяўляецца Джона Морысана (jmorriso@rflab.ee.ubc.ca) для абвесткі мяне да гэтага патэнцыялу. Ізгоі праграма (MER) можа вельмі лёгка затапіць SyslogD дэман з сістэмнымі паведамленнямі , атрыманых у логу - файлах , спажывальных ўсе пакінутая прастора на файлавай сістэме . Ўключэнне пратакалявання праз сокеты дамена інэт, вядома, падвяргаць сістэму рызыках за межамі праграм або асобных асоб на лакальнай машыне.

Ёсць цэлы шэраг метадаў абароны машыны:

  1. Рэалізацыя ядра міжсеткавага экрана, каб абмежаваць, якія хасты або сеткі маюць доступ да гнязда 514 / UDP.
  2. Пратакаляванне можа быць накіраваны ў ізаляванай ці не каранёвай файлавай сістэмы, якія, калі запоўненыя, не пашкодзіць машыну.
  3. Файлавая сістэма ext2 можа быць выкарыстаны, які можа быць сканфігураваны, каб абмежаваць пэўны працэнт ад файлавай сістэмы да выкарыстання толькі корань. Заўважым , што гэта запатрабуе SyslogD будзе працаваць у якасці внекорневые працэсу. Таксама зьвярніце ўвагу , што гэта дазволіць прадухіліць выкарыстанне аддаленага журналявання , так як Syslogd будзе не звязвацца з сокетам 514 / UDP.
  4. Адключэнне сокеты інэт будзе абмяжоўваць рызыка для лакальнай машыны.
  5. Выкарыстоўвайце крок 4 і калі праблема не ўхіленая і ня другасны ў адносінах да ізгояў праграмы / дэману атрымаць 3,5 футаў (прыбл. 1 метр) даўжынёй стрыжня прысоскі * і пагаварыць з карыстальнікам ў пытанні. Помпавыя штангі ОПР. --- 3/4, 7/8 або 1 цаля. загартаванай сталёвы стрыжань з вонкавай разьбой на кожным канцы. Першаснае выкарыстанне ў нафтавай прамысловасці ў Заходняй Паўночнай Дакоце і ў іншых месцах, каб напампаваць «смактаць» нафту з нафтавых свідравін. Другасныя віды выкарыстання для будаўніцтва буйной рагатай жывёлы карміць шмат і для барацьбы са выпадковым непакорлівым або які ваяваў чалавекам.

адладка

Калі адладка ўключаная з дапамогай опцыі -d , то Syslogd будзе вельмі шматслоўным, напісаўшы шмат таго , што ён робіць на стандартны вывад. Кожны раз, калі файл канфігурацыі перачытваць і зноўку аналізавацца вы ўбачыце таблічны, што адпавядае ўнутранай структуры дадзеных. Гэтая Таблічная складаецца з чатырох палёў:

нумар

Гэта поле ўтрымлівае парадкавы нумар, пачынаючы з нуля. Гэты лік ўяўляе становішча ва ўнутранай структуры дадзеных (г.зн. масіва). Калі адзін нумар застаецца па-за , то там можа быць памылка ў адпаведнай радку /etc/syslog.conf.

шаблон

Гэта поле з'яўляецца складаным і ўяўляе сабой ўнутраную структуру дакладна. Кожны слупок абазначае аб'ект (гл сістэмнага часопіса (3)). Як вы можаце бачыць, ёсць яшчэ некаторыя аб'екты застаюцца свабоднымі для былых выкарыстання, толькі левага большасць з іх выкарыстоўваецца. Кожнае поле ў Стоўбцах ўяўляе прыярытэты (гл сістэмны часопіс (3)).

дзеянне

Гэта поле апісвае пэўнае дзеянне, якое адбываецца кожны раз, калі паведамленне атрымана, што адпавядае шаблону. Звярніцеся да syslog.conf (5) для ўсіх старонкі кіраўніцтва магчымых дзеянняў.

аргументы

Гэта поле паказвае дадатковыя аргументы да дзеянняў у апошнім полі. Для файлаў нометрии гэтае імя файла для лог-файл; для карыстальніка нометрии гэта спіс карыстальнікаў; для аддаленага журналявання гэтае імя машыны, каб увайсці ў; для кансолі нометрии гэта выкарыстоўваная кансоль; для TTY-каротажа гэта паказана тэрмінал; сцяна не мае дадатковых аргументаў.

Глядзіце таксама

рэгістратар (1), сістэмны часопіс (2), (5)

сааўтары

Syslogd бярэцца з крыніц BSD, Грег Веттштайн (greg@wind.enjellic.com) выканаў порт для Linux , Марцін Шульцэ (joey@linux.de) выпраўленыя некаторыя памылкі і дададзеныя некалькі новых функцый. Klogd была першапачаткова напісана Steve Lord (lord@cray.com), Грег Веттштайн зрабіў значныя паляпшэнні.

Доктар Грег Веттштайн
Развіццё Enjellic сістэмы

Oncology Research Division Computing Facility
Роджэр Марыс анкалагічны цэнтр
Fargo, ND
greg@wind.enjellic.com

Стывен Твіді
Факультэт камп'ютэрных навук
Эдынбургскі універсітэт, Шатландыя
sct@dcs.ed.ac.uk

Юха Виртанен
jiivee@hut.fi

Шэйн Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Ольденбург
joey@linux.de

Важна: Выкарыстоўвайце каманду чалавека (%) чалавек , каб паглядзець , як каманда выкарыстоўваецца на вашым канкрэтным кампутары.

Артыкулы па Тэме