PDA

Επιστροφή στο Forum : Mikrotik syslog σε Linux



deniSun
20-01-18, 21:52
Ο παρακάτω οδηγός αφορά την αποστολή των logs σε έναν syslog server και από εκεί με email στον προσωπικό μας λογαριασμό.

Χρησιμοποιώ ubuntu linux με ΙΡ: 5.36 και name: "Milady"
και το ΜΤ με ΙΡ: 5.33 και name:"porthos".

Ξεκινάω από το ΜΤ:
Send logs to external log server (rsyslog)

*** Send Logs to rsyslog server
System > Logging > Actions
Name: remote
Type: remote
Remote Address: 192.168.5.36
Remote Port: 514
System > Logging > Rules > (+ add new with the same name)
Topics: info
Action: remote

Στο ubuntu κάνουμε τα εξής:
Βρίσκουμε πώς στέλνει το ΜΤ και κάθε άλλη συσκευή τα data:

at rsyslog/conf add lines:
: /var/log/rsyslog.log
& ~
Κάνουμε τις ανάλογες ρυθμίσεις στον rsyslog:

pico /etc/rsyslog.conf
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# at the end of file
:HOSTNAME, isequal, "porthos" /var/log/rsyslog.log
& ~
touch /var/log/rsyslog.log
chmod 640 /var/log/rsyslog.log
chown syslog:adm /var/log/rsyslog.log
service rsyslog restart
netstat -tlnup | grep 514
tail -f /var/log/rsyslog.log

Στήνουμε έναν mail server κάνοντας χρήση των ρυθμίσεων της cosmote [ή όπου αλλού έχουμε λογαριασμό]:

apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
Internet Site
System mail name: Milady
pico /etc/postfix/main.cf
relayhost = mailgate.cosmotemail.gr:25
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_auth_enable = yes
smtp_cname_overrides_servername = no
smtp_sasl_security_options = noanonymous
smtp_generic_maps = hash:/etc/postfix/generic
pico /etc/postfix/sasl_passwd
mailgate.cosmotemail.gr:25 USERNAME:PASSWORD
chmod 400 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
postmap -q smtp.provider.com:25 /etc/postfix/sasl_passwd
pico /etc/postfix/generic
root@Milady xxx@cosmotemail.gr
postmap /etc/postfix/generic
pico /etc/postfix/master.cf
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
/etc/init.d/postfix restart
echo "Test mail from postfix" | mail -s "Test Postfix" xxx@cosmotemail.gr

*** Forward root mail

pico /etc/aliases
root: xxx@cosmotemail.gr
newaliases

*** Send log file via email (for previous day)

pico /usr/local/bin/logview.sh
#!/bin/bash
mailTemp="/var/log/mailTemp"
logfile="/var/log/rsyslog.log"
search=$(date --date='yesterday' "+%F")
grep -r "$search" "$logfile" > "$mailTemp"
if [[ -s $mailTemp ]] ; then
cat "$mailTemp" | mail -s "Milady Logs (Mikrotik, Modem, VoIP)" xxx@cosmotemail.gr
else
echo "No Activity" | mail -s "Milady Logs (Mikrotik, Modem, VoIP)" xxx@cosmotemail.gr
fi ;
chmod 755 /usr/local/bin/logview.sh
./usr/local/bin/logview.sh
crontab -e
00 01 * * * /usr/local/bin/logview.sh >/dev/null 2>&1

Κάθε βράδυ στις 1:00 θα στέλνονται τα Logs τις προηγούμενης ημέρας.
190625

xhaos
26-01-18, 14:27
πολύ καλό (αν και ίσως υπερβολή), το είχα κοιτάξει και εγώ αλλά είχα κολλήσει στο οτι ο syslog δεν αναγνώριζε το format των μηνυμάτων.

kiriakk
27-01-18, 21:23
εγώ είχα κολλήσει στο να βρω έναν καλό log analyzer που να είναι δωρεάν,
αλλοιώς ψάχνεις ψύλους στα άχυρα (εκτός αν κάνεις log μόνο τις λάθος προσπάθειες log in :p )

casperino99
28-01-18, 15:18
Αν θέλουμε να παραλείψουμε την αποστολή σε sys server και απλα να στείλουμε το log στο mail μας, το χεις κάνει με κάποιο script?

Εχω βρει το παρακάτω αλλα δεν στέλνει τίποτα απλα βαζοντας το mail μου. Τι λάθος κάνω;


/system script add name="LogDump" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff

#read log
:local logcontent
:foreach int in=[/log find ] do={
:set logcontent ("$logcontent\r\n" .[/log get $int time]. " - " .[/log get $int message])
}
#send email
/tool e-mail send to="log@xxxx.xxx" subject=([/system identity get name] . " Log " . [/system clock get date]) body=$logcontent
#delete old log
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=65000

casperino99
01-02-18, 16:10
Αν θέλουμε να παραλείψουμε την αποστολή σε sys server και απλα να στείλουμε το log στο mail μας, το χεις κάνει με κάποιο script?

Εχω βρει το παρακάτω αλλα δεν στέλνει τίποτα απλα βαζοντας το mail μου. Τι λάθος κάνω;


/system script add name="LogDump" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff

#read log
:local logcontent
:foreach int in=[/log find ] do={
:set logcontent ("$logcontent\r\n" .[/log get $int time]. " - " .[/log get $int message])
}
#send email
/tool e-mail send to="log@xxxx.xxx" subject=([/system identity get name] . " Log " . [/system clock get date]) body=$logcontent
#delete old log
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=65000

Να απαντησω στον εαυτό μου. Ειχα πρόβλημα με το gmail. Επρεπε απο το gmail να ενεργοποιησω να επιτρεπονται οι λιγότερο ασφαλείς εφαρμογες αλλιώς δεν...

deniSun
01-02-18, 16:48
Να απαντησω στον εαυτό μου. Ειχα πρόβλημα με το gmail. Επρεπε απο το gmail να ενεργοποιησω να επιτρεπονται οι λιγότερο ασφαλείς εφαρμογες αλλιώς δεν...

Και με ενεργοποιημένο το two-step-verification θέλει κάποιες κινήσεις παραπάνω.

puntomania
17-03-18, 01:56
ο syslog server έχει κάποιο γραφικό περιβάλλον που τα βλέπουμε κτλ... ποιον τρέχεις... δώσμου περισσότερες πληροφορίες για το κομμάτι του λινουξ...

deniSun
20-03-18, 09:34
ο syslog server έχει κάποιο γραφικό περιβάλλον που τα βλέπουμε κτλ... ποιον τρέχεις... δώσμου περισσότερες πληροφορίες για το κομμάτι του λινουξ...

Όχι δεν έχει γραφικό.
Αυτό που κάνω εγώ είναι να τα στέλνω σε καθημερινή βάση στο email μου.

@ ADSLgr.com All rights reserved.