LPI Logo RED

LPI Logo RED

Reguliere expressies

Voor zowel Linux Essentials als het LPIC-1 examen is het belangrijk om kennis van reguliere expressies te hebben. Op zich hoeven reguliere expressies niet ingewikkeld te zijn om nuttige resultaten op te leveren. Hoe leuker we het maken des te leuker is het om de stijle leercurve van reguliere expressies onder de knie te krijgen. Een site als https://regexcrossword.com helpt om het leren interessant te maken. Maar er gaat natuurlijk niets boven voorbeelden die in de praktijk zinvol zijn.

Wat is nu aantrekkelijker dan onderzoeken vanuit welk land er het vaakst wordt geprobeerd om in te loggen op een systeem dat met het internet verbonden is? Op een CentOS systeem is deze informatie te halen uit de logfile /var/log/secure.

Een reguliere expressie die ongeveer het juiste oplevert is'Failed password.*[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'waarbij er naar het zinsdeel 'Failed password' naar regels wordt gezocht die relevant zijn. De rest selecteert het IP-adres. Het IP-adres wordt via het xargs commando doorgegeven aan het geoiplookup commando die het bijbehorende land opzoekt. Daarna is het een kwestie van sorteren en tellen.

Het uiteindelijke commando is dan:  sudo cat /var/log/secure | egrep -o 'Failed password.*[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | xargs -L 1 geoiplookup | sort | uniq -c | sort -n -r | head -n 5

Translate this page automatically: