https://gist.github.com/968351
מדובר בסקריפט פייתון שיודע להתיישב על הקצה של /var/log/auth.log של אובונטו, ולפרסס אותו ברמת עומק סבירה, שמאפשרת לבחור על אילו ארועים בדיוק לבצע פעולות, למשל כגון התרעה במייל על התחברות של משתמש מכתובת IP חשודה וכ"ו.
על מנת לוודא שה-parsing עובד באופן סביר והסקריפט אינו נתקל בבעיות, ביצעתי פרסוס של קרוב ל30,000 שורות ארועים מה auth.log, ותיקנתי את המקרים בהם הבנת השורה ע"י הסקריפט נכשלת.
הסקריפט קורא את ההגדרות מקובץ בשם /etc/authwatcher.json, שדוגמה שלו מצורפת בקישור לקוד המקור.
על מנת להריץ את הסקריפט במצב שיקרא את הלוג כולו, הוסיפו לו את הפרמטר parseall:
$ /usr/local/bin/authwatcher.py parseall
מבחינתי, הדבר המעניין בפיסת הקוד הקטנה הזו היא השימוש בRegular Expressions מורכבים שמכילים Named groups, המאפשרים לפרסס באופן קריא ופשוט שורות לוג מורכבות יחסית.
הגיסט מכיל גם כן קובץ Upstart שיודע להריץ את הסקריפט במערכת ברקע ולאתחל אותו מחדש בעת הצורך.
לאחר שהנחתם את קובץ הקינפוג של הUpstart בתיקיה המיודעת, ניתן להתחיל את השרות באמצעות
$ sudo initctl start auth_watcher
במידה ורוצים לבדוק את מצב הסקריפט, עושים את זה ככה:
$ sudo initctl status auth_watcher
מקווה שתמצאו את הסקריפט הנ"ל שימושי כאלמנט אבטחה נוסף למערכותיכם.