Настройка журналов auditd. Мониторинг событий на сервере Linux.

В этой статье рассказывается о настройках “auditd” на сервере Linux. Первая часть статьи посвящена базовым (стартовым) настройкам аудита. Во второй части статьи речь пойдет об организации дополнительного мониторинга сервера. Например, web-сервера, находящегося в “открытом” интернет пространстве.

Патерны logstash для syslog и *beat в elasticsearch. Двойная конфигурация приема логов windows/linux.

На этой странице показаны настройки logstash и патерны для парсинга логов, которые использованы в этом проекте. Конфигурация обновляется, если вы заметили ошибки в парсере, пожалуйста, напишите в комментариях. Для передачи логов linux систем, используется syslog, конечно, для настройки парсинга syslog в elasticseach нужно некоторое время, но такая конфигурация кажется мне более правильной. Использование syslog позволяет…

Пример мониторинга атак на web-серверы. Статистика по странам.

На карте отмечено географическое расположение серверов и число попыток эксплуатаций уязвимостей на серверах testsoft за месяц (февраль 2021). Статистика представлена по серверам на площадках: Aws, Google, Digital Ocean, Yandex Cloud, Aruba, Ovh, Fozzy, Azure, Oracle

Multiple logstash input. Syslog and beats log receive

Simple example to receive log files from syslog and beats in elasticsearch using logstash vi /etc/logstash/conf.d/multisample.conf input { beats { port => 5044 tags => “beats” ssl => false } udp { port => 5055 tags => “syslog” type => “syslog” } } filter { if [type] == “syslog” { grok { match => {…

Arcsight flexConnector for Fail2Ban

#fail2ban 2020-12-01 05:01:08,966 fail2ban.filter [893]: INFO [sshd] Found 1.1.1.1 – 2020-12-01 05:01:08 regex=(fail2ban)\\s+(.*) token.count=2 token[0].name=type token[0].type=String token[1].name=body token[1].type=String event.deviceVendor=__stringConstant(“fail2ban”) event.deviceProduct=__stringConstant(“fail2ban”) event.sourceUserPrivileges=__stringConstant(“fail2ban”) event.deviceProcessName=__stringConstant(“fail2ban”) event.flexString2=body event.flexString2Label=__stringConstant(“raw”) event.name=type event.message=body submessage.messageid.token=type submessage.token=body submessage.count=1 submessage[0].messageid=fail2ban submessage[0].pattern.count=1 #2020-12-01 06:23:17,883 fail2ban.filter [893]: INFO [sshd] Found 1.1.1.1 – 2020-12-01 06:23:17 submessage[0].pattern[0].regex=(\\d+\\-\\d+\\-\\d+\\s+\\d+\\:\\d+\\:\\d+\\,\\d+)\\s+([^\\s]+)\\s+\\[(\\d+)\\]\\:\\s+(\\w+)\\s+\\[([^]]+)\\]\\s+((Found|Ban|Unban)?\\s+(\\d+.\\d+.\\d+.\\d+)?.*) submessage[0].pattern[0].mappings=$1|$2|$3|$4|$5|$6|$7|$8 submessage[0].pattern[0].fields=event.deviceCustomString1,event.name,event.deviceCustomString4,event.deviceSeverity,event.targetProcessName,event.message,event.deviceAction,event.attackerAddress submessage[0].pattern[0].extramappings=event.name\=__concatenate($2,” “,$5)|event.deviceSeverity=__toLowerCase($4)|event.deviceCustomString1Label=__stringConstant(“time_local”)|event.deviceCustomString4Label=__stringConstant(“pid”) #$1 – event.deviceCustomString1 – time_local #$2 – event.name…

Arcsight flexConnector for openVPN

regex=(openvpn)\\[.*\\]:\\s(.*) token.count=2 token[0].name=type token[0].type=String token[1].name=body token[1].type=String event.deviceVendor=__stringConstant(“openvpn”) event.deviceProduct=__stringConstant(“openvpn”) event.sourceUserPrivileges=__stringConstant(“openvpn”) event.deviceProcessName=__stringConstant(“openvpn”) event.flexString2=body event.name=type event.message=body submessage.messageid.token=type submessage.token=body submessage.count=1 submessage[0].messageid=openvpn submessage[0].pattern.count=3 submessage[0].pattern[0].regex=([^\\/]+)\\/(\\d+.\\d+.\\d+.\\d+):(\\d+)\\s+(.*) submessage[0].pattern[0].mappings=$1|$2|$3|$4 submessage[0].pattern[0].fields=event.targetUserName,event.attackerAddress,event.attackerPort,event.message submessage[0].pattern[1].regex=(\\d+.\\d+.\\d+.\\d+):(\\d+)\\s+(.*) submessage[0].pattern[1].mappings=$1|$2|$3 submessage[0].pattern[1].fields=event.attackerAddress,event.attackerPort,event.message submessage[1].pattern.count=1 submessage[1].pattern[0].regex=(.*) submessage[1].pattern[0].fields=event.message submessage[1].pattern[0].extramappings=event.reason=__stringConstant(“unparsed”)

Arcsight flexConnector for WordPress

##################### # ### TESTSOFT.NET ### # ############################ ### ArcSight Parser For WordPress Stock Logformat v1.0 ### #wordpress(testsoft.net)[3673]: Authentication attempt for unknown user admin from 1.1.1.1 regex=(wordpress)(.*) token.count=2 token[0].name=type token[0].type=String token[1].name=body token[1].type=String event.deviceVendor=__stringConstant(“wordpress”) event.deviceProduct=__stringConstant(“applog”) event.sourceUserPrivileges=__stringConstant(“wordpress”) event.deviceProcessName=__stringConstant(“wordpress”) event.flexString2=body event.flexString2Label=__stringConstant(“raw”) event.name=type event.message=body submessage.messageid.token=type submessage.token=body submessage.count=1 submessage[0].messageid=wordpress submessage[0].pattern.count=4 #(testsoft.net)[3673]: Authentication failure for testsoft from 1.1.1.1 submessage[0].pattern[0].regex=\\(([^)]+)\\)\\[([^]]+)\\]\\:\\s+(.*failure\\s+for\\s+([^\\s+]+)\\s+from\\s+(\\d+.\\d+.\\d+.\\d+).*) submessage[0].pattern[0].mappings=$1|$2|$3|$4|$5 submessage[0].pattern[0].fields=event.name,event.deviceCustomString4,event.message,event.targetUserName,event.attackerAddress submessage[0].pattern[0].extramappings=event.deviceCustomString4Label=__stringConstant(“pid”)|event.deviceSeverity=__stringConstant(“warning”)…