Syslog és un estàndard de facto per a l'enviament de missatges de registre en una xarxa informàtica IP. Per syslog es coneix tant al protocol de xarxa com a l'aplicació o biblioteca que envia els missatges de registre.

Un missatge de registre sol tenir informació sobre la seguretat del sistema, encara que pot contenir qualsevol informació. Juntament amb cada missatge s'inclou la data i hora de l'enviament.

És útil registrar, per exemple:

  • Un intent d'accés amb contrasenya equivocada
  • Un accés correcte al sistema
  • Anomalies: variacions en el funcionament normal del sistema
  • Alertes quan ocorre alguna condició especial
  • Informació sobre les activitats del sistema operatiu
  • Errors del maquinari o el programari

També és possible registrar el funcionament normal dels programes; per exemple, guardar cada accés que es fa a un servidor web, encara que açò sol estar separat de la resta d'alertes.

Protocol

modifica

El protocol syslog és molt senzill: existeix un ordinador servidor executant el servidor de syslog, conegut com a syslogd (dimoni de syslog). El client envia un menut missatge de text (de menys de 1024 bytes).

Els missatges de syslog se solen enviar per mitjà de UDP, pel port 514, en format de text pla. Algunes implementacions del servidor, com syslog-ng, permeten usar TCP en comptes d'UDP, i també ofereixen Stunnel perquè les dades viatgen xifrades mitjançant SSL/TLS.

Encara que syslog té alguns problemes de seguretat, la seua senzillesa ha fet que molts dispositius ho implementen, tant per a enviar com per a rebre. Això fa possible integrar missatges de diversos tipus de sistemes en un sol repositori central.

Estructura del missatge

modifica

El missatge enviat es compon de tres camps:

  • Prioritat
  • Capçalera
  • Text

Entre tots no han de sumar més de 1024 *bytes, però no hi ha longitud mínima.

Prioritat

modifica

La prioritat és un nombre de 8 bits que indica tant el recurs (tipus d'aparell que ha generat el missatge) com la severitat (importància del missatge), nombres de 5 i 3 bits respectivament. Els codis de recurs i severitat els decideix lliurement l'aplicació, però se sol seguir una convenció perquè clients i servidors s'entenguen.

Codis de recurs

modifica

Aquests són els codis observats en diversos sistemes. Font: [1].

0 Missatges del kernel
1 Missatges del nivell de usuari
2 Sistema de correu
3 Dimonis de sistema
4 Seguretat/Autorització
5 Missatges generats internament per syslogd
6 Subsistema de impressió
7 Subsistema de notícies sobre la xarxa
8 Subsistema UUCP
9 Dimoni de rellotge
10 Seguretat/Autorització
11 Dimoni de FTP
12 Subsistema de NTP
13 Inspecció del registre
14 Alerta sobre el registre
15 Dimoni de rellotge
16 Ús local 0
17 Ús local 1
18 Ús local 2
19 Ús local 3
20 Ús local 4
21 Ús local 5
22 Ús local 6
23 Ús local 7

Codis de severitat

modifica

Els 3 bits menys significatius del camp prioritat donen 8 possibles graus. Font: [2].

0 Emergència: el sistema està inutilizable
1 Alerta: s'ha d'actuar immediatament
2 Crític: condicions crítiques
3 Error: condicions d'error
4 Perill: condicions de perill
5 Avís: normal, però condicions notables
6 Informació: missatges informatius
7 Depuració: missatges de baix nivell

Càlcul de la prioritat

modifica

Per a conèixer la prioritat final d'un missatge, s'aplica la següent fórmula:

Prioritat = Recurs * 8 + Severitat

Per exemple, un missatge de kernel (Recurs=0) amb Severitat=0 (emergència), tindria Prioritat igual a 0*8+0 = 0. Un de FTP (11) de tipus informació (6) tindria 11*8+6=94. Com es pot veure, valors més baixos indiquen major prioritat.

Capçalera

modifica

El segon camp d'un missatge syslog, la capçalera, indica tant el temps com el nom de l'ordinador que emet el missatge. Açò s'escriu en codificació ASCII (7 bits), per tant és text llegible.

El primer camp, temps, s'escriu en format Mmm dd hh:mm:ss, on Mmm són les inicials del nom del mes en anglès, dd, és el dia del mes, i la resta és l'hora. No s'indica l'any.

Just després ve el nom d'ordinador (hostname), o l'adreça IP si no es coneix el nom. No pot contenir espais, ja que aquest camp acaba quan es troba el següent espai.

El que queda de paquet syslog a l'omplir la prioritat i la capçalera és el mateix text del missatge. Aquest inclourà informació sobre el procés que ha generat l'avís, normalment al principi (en els primers 32 caràcters) i acabat per un caràcter no alfanumèric (com un espai, ":" o "["). Després, ve el contingut real del missatge, sense cap caràcter especial per a marcar el final.

Història

modifica

syslog va ser desenvolupat per Eric Allman com a part del projecte Sendmail, inicialment (anys 1980) només per a aquest projecte. No obstant això, es comprovà que era molt útil, i altres aplicacions començaren també a usar syslog. Avui dia (2005), syslog està present per defecte en quasi tots els sistemes Unix i GNU/Linux, i també es troben diverses implementacions de syslog per a uns altres sistemes operatius, com Microsoft Windows.

És ara, després de tants anys, quan syslog està en procés de convertir-se en estàndard, per a -entre altres coses- poder millorar la seguretat de les seues implementacions. IETF va assignar un grup de treball, i en 2001, es va documentar el seu funcionament en el RFC 3164 [3]. L'estandardització del contingut del missatge i de les diferents capes d'abstracció estan planificades per a 2006.

Implementacions

modifica

Enllaços externs

modifica
  • [4], on s'estudia (però no es defineix) com han implementat syslog diversos fabricants. Agost de 2001. (anglès)
  • Procés d'estandardització de syslog (anglès).
  • [5] (anglès): enviament fiable per a syslog