En el tema anterior vimos la lógica para el envío de archivos log, dependiendo de su tipo y criticidad. en este punto trataremos de como configurar un cliente y como se debe optimizar para el envío de solo la información necesaria.
# /etc/rsyslog.conf Configuration file for rsyslog. # # For more information see # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html ################# #### MODULES #### ################# $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) #$ModLoad immark # provides --MARK-- message capability # provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514 # provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514 ########################### #### GLOBAL DIRECTIVES #### ########################### # # Use traditional timestamp format. # To enable high precision timestamps, comment out the following line. # $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # # Set the default permissions for all log files. # $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 # # Include all config files in /etc/rsyslog.d/ # $IncludeConfig /etc/rsyslog.d/*.conf ############### #### RULES #### ############### # # First some standard log files. Log by facility. # auth,authpriv.info @@syslog.dominio.com auth,authpriv.* /var/log/auth.log *.notice;auth,authpriv.none @@syslog.dominio.com *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* @@syslog.dominio.com user.* -/var/log/user.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # # Logging for INN news system. # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice # # Some "catch-all" log files. # *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none @@192.168.200.249 # mismo servidor pero por ip # # Emergencies are sent to everybody logged in. # *.emerg * # # I like to have messages displayed on the console, but only on a virtual # console I usually leave idle. # #daemon,mail.*;\ # news.=crit;news.=err;news.=notice;\ # *.=debug;*.=info;\ # *.=notice;*.=warn /dev/tty8 # The named pipe /dev/xconsole is for the `xconsole' utility. To use it, # you must invoke `xconsole' with the `-file' option: # # $ xconsole -file /dev/xconsole [...] # # NOTE: adjust the list below, or you'll go crazy if you have a reasonably # busy site.. # daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole
viendo la anterior información debemos desglosar para comprende su funcionamiento:
En este caso hay 2 funciones, una el envió de archivos locales y la otra el envío hacia nuestro servidor syslog. en este caso lo enviaremos por TCP por comodidad y flexibilidad.
>auth,authpriv.info @@syslog.dominio.com | autenticación
todo lo que se relacione con autenticación, inicio de sesión y comandos sudo es configurado con estas líneas. en este caso si queremos que envíe todo ponemos * después del punto, sin embargo a los fines de no sobrecargar de información que se considere innecesaria se coloca al final el adjetivo info, para indicar que todo los niveles desde info en adelante serán los que se van a enviar al archivo syslog
>*.notice;auth,authpriv.none @@syslog.dominio.com | General
todos los archivos, sean daeon, kernel y otros serán enviados con esta sentencia, igualmente se coloca al final el adjetivo info, para indicar que todo los niveles desde info en adelante serán los que se van a enviar al archivo syslog. en este caso hay un punto y coma, lo cual significa que se obviaran ciertos parámetros, en cuyo caso es la autenticación que ha sido colocada aparte.
>user.* @@ssyslog.dominio.com | procesos
En este caso se indicará las aplicaciones de usuario. si no se quiere mucha información se puede configurar en notice, poniendo los mas relevantes, pero en líneas generales, este es el archivo que menos conflictos dá, a menos que se tenga un apache o un LDAP muy concurrido en cuyo caso se puede colocar la sentencia ya recomendada
Teniendo estas sencillas configuraciones ya se puede controlar el envío de información y depurar hacia nuestro servidor syslog.
Espero les sirva de ejemplo.
Nota adicional:
Archivo para PFSense
*.notice;user.err;auth,authpriv.none @192.168.200.249 auth,authpriv.info @192.168.200.249 local0.err @@192.168.200.249 local3.err @@192.168.200.249 local7.err @@192.168.200.249 !ntp,ntpd,ntpdate #*.* %/var/log/ntpd.log #!ppp #*.* %/var/log/ppp.log #!pptps #*.* %/var/log/pptps.log #!poes #*.* %/var/log/poes.log #!l2tps #*.* %/var/log/l2tps.log #!racoon #*.* %/var/log/ipsec.log #!openvpn #*.* %/var/log/openvpn.log #!apinger #*.* %/var/log/apinger.log #!relayd #*.* %/var/log/relayd.log #!hostapd #*.* %/var/log/wireless.log #!ntpd,racoon,openvpn,pptps,poes,l2tps,relayd,hostapd local0.* %/var/log/filter.log local3.* %/var/log/vpn.log local4.* %/var/log/portalauth.log local7.* %/var/log/dhcpd.log *.notice;kern.debug;lpr.info;mail.crit; %/var/log/system.log news.err;local0.none;local3.none;local4.none; %/var/log/system.log local7.none %/var/log/system.log security.* %/var/log/system.log auth.info;authpriv.info;daemon.info %/var/log/system.log auth.info;authpriv.info |exec /usr/local/sbin/sshlockout_pf 15 *.emerg *
Para evitar mensajes syslog en consola
Ejecutamos:
dmesg -n 1
y para hacer permanentes los cambios
editamos
nano /etc/rc.local
tambien en algunas versiones de syslog podemos agregar la línea
KLOGD_OPTIONS="-2 -c 1"