Mikrotik Syslog-ng
Zbieranie logów jest bardzo ważna sprawą, czy to też pod kątem prawnym jeżeli nasz router pracuje jako publiczny Hotspot, czy dla naszego własnego użytku. Nie zalecam przechowywania logów tylko na urządzeniu. Najlepszym rozwiązaniem jest przygotowania serwera tylko do gromadzenia logów. Daje to nam większą kontrole nad plikami, oraz pozwoli zautomatyzować prace, przy większej ilości routerów. Na potrzeby tego poradnika wykorzystam VPS’a z zainstalowanym systemem Debian i usługa syslog-ng. Mikrotik Syslog-ng jest dość proste w konfiguracji, dlatego przygotowanie zdalnego gromadzenia logów nie powinno wam zająć dużo czasu.
Konfiguracja Mikrotika
Przechodzimy do konfiguracji Mikrotika, wykorzystam model RBmAPL-2nd, czyli mAP Lite. Z menu bocznego wybieramy System->Logging
W nowym oknie zmieniamy zakładkę na Action i niebieskim plusem dodajemy nowy wpis.
Uzupełniamy:
- Name: dowolna nazwa
- Type: zmieniamy na remote
- Remote Address: adres IP serwera na którego będziemy wysyłać logi
- pozostałe wartości pozostawiamy bez zmian
Teraz przechodzimy na zakładkę Rules i tworzymy nowe reguły. Dla ułatwienia pracy, możemy kopiować wcześniej utworzoną regułę zmieniając jej tylko toipics
No nowym oknie ustawiamy:
- Topics: wybieramy z jakiej usługi chcemy otrzymywać logi
- Action: wybieramy nasz chwilę wcześniej stworzony wpis z zakładki Actions
Konfigurację routera mamy zakończoną. Teraz przechodzimy na VPS z Debianem.
Konfiguracja syslog-ng Debian
Na potrzeby poradnika oraz dla własnej ciekawości zakupiłem VPS w Aruba Cloud. Kosztowało mnie to jedyne 4 zł miesięcznie dlatego musiałem to sprawdzić. Dostałem od nich jeden publiczny adres, i to własnie ten adres musiałem wpisać w polu remote address. Za pomocą Putty logujemy się na serwer. Domyślnie serwer jest czysty dlatego ręcznie musimy doinstalować usługę syslog-ng. Robimy to wpisując:
apt-get install syslog-ng
Zostaniemy zapytani czy zainstalować pakiet. Potwierdzamy to Y
Teraz dowolnym edytorem musimy dodać Mikrotika do konfiguracji sysloga. Przyzwyczaiłem się do vima, dlatego też z niego skorzystam, ale możesz użyć np. nano, bądź edytować przez mc.
W konsoli wpsiujemy:
vim /etc/syslog-ng/syslog-ng.conf
Wciskamy literkę i i modyfikujemy plik o następujące wartości:
source s_net { udp (); }; filter f_mikrotik { host( "Adres_IP" ); }; log { source ( s_net ); filter( f_mikrotik ); destination ( df_mikrotik ); }; destination df_mikrotik { file("/var/log/mikrotik/mikrotik.${YEAR}.${MONTH}.${DAY}.log" template-escape(no)); };
Wciśkamy klawisz esc następnie klawisz : i wpisujemy wq i enter.
Możemy wkleić to wszystko obok siebie, bądź zachować schemat i dodać w grupach.
W konfiguracji wpisaliśmy destination /var/log/mikrotik, czyli miejsce gdzie logi mają się odkładać. Teraz musimy utworzyć odpowiedni katalog. W konsoli wpisujemy
mkdir /var/log/mikroitk
Do pełni szczęścia restartujemy usługę syslog-ng
/etc/init.d/syslog-ng restart
Po chwili powinien utworzyć się plik z dzisiejszą datą.
Podsumowanie
Wbrew pozorom logi mogą zajmować sporo miejsca na dysku, dlatego jeżeli zarządzamy większą ilością routerów warto pomyśleć jak automatycznym kompresowanie logów i przesyłaniem na inny serwer.
„z usługom” 😀
Cześć Grzegorz,
robiłem wszystko wg Twoich wskazówek, ale po restarcie syslog-ng wywala mi błąd
„Restarting syslog-ng (via systemctl): syslog-ng.serviceJob for syslog.ng service failed because the control process exited with error code.
See „systemctl status syslog.ng.service” and „jorunalctl -xe” for details.
failed”
Dodam, że jestem początkujący w linuxie i sprawdzenie tych poleceń wyżej nic mi nie mówi.
Możesz podpowiedzieć, gdzie szukać rozwiązania problemu?
Cześć, jak zrobisz jorunalctl -xe, to będziesz miał informacje co jest źle. Najprawdopodobniej coś nie tak w configu, może brakuje jakiegoś () albo {}
Podziękował bardzo !
brakowało dwóch rzeczy ” zamykającego adres ip oraz f przy destination.
A teraz wracam do nauki linuxa ;-). Po prostu zależało mi na przetestowaniu usługi.
Mam pytanie, jak zbierać logi z Firewall z zakładki Connections?
Dodaj dwie reguły dla ruchu TCP i UDP
/ip firewall filter chain=forward action=log connection-state=new protocol=tcp in-interface=LAN
log=no log-prefix=””
/ip firewall filter chain=forward action=log connection-state=new protocol=udp in-interface=LAN
log=no log-prefix=””
Dziękuję.