J'aimerais configurer Ubuntu pour recevoir les journaux d'un routeur DD-WRT. L'écran de configuration du routeur contient la section suivante:
et son documentation de journalisation se lit comme suit:
Si vous souhaitez envoyer des journaux à un système distant, entrez l'adresse IP de cette machine qui exécute également un utilitaire syslog (une connexion réseau ouverte est nécessaire pour accepter les journaux envoyés par le routeur).
Je n'ai jamais (sciemment) utilisé syslog auparavant. Que dois-je faire dans Ubuntu pour lui permettre de recevoir ces journaux?
L'hôte recevant les journaux devra exécuter un démon syslog configuré pour écouter les journaux distants. Il y a un certain nombre d'implémentations de syslog dans Ubuntu, mais rsyslog
est généralement recommandé et doit être installé par défaut. D'après la documentation dans le lien que vous avez posté, je ne peux pas dire si DD-WRT envoie des journaux via TCP ou UDP. Il peut donc s'avérer nécessaire d'essayer de trouver avec précision les paramètres corrects, si vous souhaitez réduire le nombre de ports accessibles au réseau sur votre hôte.
Cela est possible de deux manières: la première est plus simple, mais peut nécessiter une réintégration lors de la mise à niveau du système. La seconde est légèrement plus compliquée et peut entraîner des résultats confus si la configuration de syslog subit des modifications importantes dans le cadre d'une mise à jour. Je choisirais le second, mais votre préférence peut varier.
La première consiste à éditer /etc/rsyslogd.conf
et à supprimer le #
initial des lignes suivantes:
# $ ModLoad imudp # $ UDPServerRun 514
ou
# $ ModLoad imtcp # $ InputTCPServerRun 514
La seconde consiste à créer un nouveau fichier, éventuellement nommé local-enable-tcp.conf
dans /etc/rsyslog.d/
, avec le contenu suivant:
# enable TCP réception syslog $ ModLoad imtcp $ InputTCPServerRun 514
Si vous souhaitez utiliser l'approche de fichier séparé et que vous avez besoin d'UDP, modifiez le contenu pour qu'il corresponde à la strophe UDP ci-dessus. Le nom de fichier spécifique n’est pas important, mais il est recommandé de le démarrer avec "local-" car cet espace de noms est réservé à la configuration de l’administrateur local et doit se terminer par ".conf", car seuls les fichiers se terminant ainsi sont automatiquement inclus dans le fichier. configuration de rsyslog.
Si vous préférez utiliser une autre implémentation de syslog, vérifiez la configuration et la documentation correspondant: il est probable que le démon syslog ne soit pas configuré pour écouter le réseau par défaut, mais un exemple de configuration permettant d'activer ce cas courant doit être clairement documenté.
Une autre option est d'utiliser syslog-ng, facile à utiliser et prêt à l'emploi!
Sudo apt-get install syslog-ng
Après l’installer, nous avons un fichier de configuration dans /etc/syslog-ng/syslog-ng.conf Donc, éditez ce .conf avec nos paramètres, mais avant cela, faites une sauvegarde du fichier de configuration par défaut, peut être utile plus tard si vous voulez régler certains paramètres
Sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak
Maintenant, créez un nouveau fichier de configuration et modifiez-le!
Sudo touch /etc/syslog-ng/syslog-ng.conf
Sudo nano /etc/syslog-ng/syslog-ng.conf
Donc, il suffit de coller cette configuration de base pour travailler aussi:
# Listening to incoming UDP Syslog connections
source mysource { udp(); };
#Add the syslog targets:
destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message
#filter filter { ( Host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:
log { source(mysource); filter(myfilter); destination(dest); };
Facile comme vous pouvez le voir. Prends soin!