UFW и firewalld
Для получения событий с межсетевого экрана uncomplicated firewall
(UFW) или firewalld
его необходимо подключить как отдельный источник.
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Uncomplicated-Firewall-UFW |
Номер (Порт) | 2673 |
Вендор | Linux |
Тип | Firewall |
Профиль сбора | tcp_input |
Настройка источника включает в себя следующие процессы:
Настройка firewalld
По умолчанию firewalld
используется в следующих ОС:
- RHEL 7 и более новые версии;
- CentOS 7 и более новые версии;
- Fedora 18 и более новые версии;
- SUSE 15 и более новые версии;
- openSUSE 15 и более новые версии.
Настройка для rsyslog
Запустите сервис:
# service firewalld start
Выберите тип передачи данных:
# firewall-cmd --set-log-denied=all | unicast | broadcast | multicast
Где:
unicast
– процесс отправки пакета от одного хоста к другому хосту;multicast
– процесс отправки пакета от одного хоста к некоторой ограниченной группе хостов;broadcast
– процесс отправки пакета от одного хоста ко всем хостам в сети.
Перезапустите службу:
# service firewalld restart
Чтобы журналирование пакетов было в отдельном файле, создайте файл /etc/rsyslog.d/10-fw_log.conf
и укажите следующее содержимое:
:msg,contains,"_DROP" /var/log/firewalld.log
:msg,contains,"_REJECT" /var/log/firewalld.log
& stop
Для отправки событий firewalld
на агент сбора лог-коллектора, создайте файл /etc/rsyslog.d/11-fw_lc.conf
и укажите следующее содержимое:
module(load="imfile" PollingInterval="5")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/firewalld.log"
Tag="firewalld"
ruleset="sendlc")
template(
name = "logtemplate"
type = "string"
string = "<%PRI%> %msg%\n"
)
ruleset(name="sendlc")
{
action(type = "omfwd"
Template = "logtemplate"
Target="<IP-адрес агент сбора лог-коллектора>"
Port="<порт>"
Protocol="tcp"
ResendLastMSGOnReconnect="on"
action.resumeRetryCount="100"
queue.type="linkedList"
queue.size="10000")
stop
}
Где:
<IP-адрес агента сбора лог-коллектора>
- IP-адрес агента сбора лог-коллектора;<порт>
- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
Перезапустите службу rsyslog
:
service rsyslog start
Откройте соответствующий порт:
# firewall-cmd --permanent --add-port=<номер порта>/tcp
Настройка для syslog-ng
Настроите перенаправление событий службы в файл /var/log/firewalld
.
В директории /etc/syslog-ng/conf.d
добавьте файл firewalld_messages.conf
со следующими параметрами:
destination d_firewalld_net {
tcp (
"<IP-адрес агента сбора лог-коллектора>"
port (<номер порта>)
persist-name(d_firewalld_for_siem)
);
};
destination d_firewalld_file {
file(
"/var/log/firewalld.log"
);
};
filter f_firewalld {
message("^.*_REJECT:.*$")
};
log {
source(s_sys);
filter(f_firewalld);
destination(d_firewalld_file);
};
log {
source(s_sys);
filter(f_firewalld);
destination(d_firewalld_net);
};
Где, укажите следующие параметры:
- В параметре
destination d_firewalld_net
укажите:<IP-адрес агента сбора лог-коллектора>
- IP-адрес агента сбора лог-коллектора;<номер порта>
- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
- В параметре
destination d_firewalld_file
укажите следующий путь к файлу:/var/log/firewalld.log
.
Для включения отправки журналов службой firewalld
выполните команду:
# firewall-cmd --set-log-denied=all
Для завершения настройки необходимо перезапустить службу firewalld
и syslog-ng
.
Настройка UFW
Настройка rsyslog
Проверьте статус службы UFW
:
# ufw status
Если не служба не запущена, то включите ее
# ufw enable
Включите журналирование событий:
# ufw logging low | medium | high | full
Где:
low
— регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам;medium
— все то, что при значении low, а также все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости;high
— работает также как и medium. Плюс все пакеты с ограничением скорости;full
— также как иhigh
, но без ограничения скорости.
Примечание: рекомендуется использовать уровень логирования
medium
.
Перезапустите службу:
# ufw reload
В конфигурационный файл /etc/rsyslog.conf
добавьте строку, указав IP-адрес агента сбора лог-коллектора:
*:msg,contains,"[UFW " @@<IP-адрес агента сбора лог-коллектора>:<номер порта>
Где:
<IP-адрес агента сбора лог-коллектора
- IP-адрес агента сбора лог-коллектора;<номер порта>
- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
Перезапустите службу журналирования:
# systemctl restart rsyslog
Откройте соответствующий порт:
# ufw allow <номер порта>
Настройка syslog-ng
Перед настройкой службы syslog-ng
задайте фильтр f_ufw
в файле:
/etc/syslog-ng/conf.d/20-ufw.conf
Примечание: в ОС Astra Linux фильтр создан по умолчанию.
Содержимое файла:
filter f_ufw {
message("^.*UFW.*$")
};
destination d_ufw {
file("/var/log/ufw.log");
};
log {
source(s_src);
filter(f_ufw);
destination(d_ufw);
};
Для настройки службы syslog-ng
добавьте в конфигурационный файл службы /usr/local/etc/syslog-ng.conf
следующие параметры:
В блоке Destinations
укажите пути для отправки сообщений в агент сбора лог-коллектора:
# Send the messages to an other host
#
destination d_net { tcp("<ip агента сбора лог-коллектора>" port(<номер порта>) log_fifo_size(1000)); };
destination d_ufw_net { tcp("<ip агента сбора лог-коллектора, на котором подключен ufw как источник>" port(<номер порта>) log_fifo_size(1000)); };
Где, укажите следующие параметры:
- В параметре
destination d_net
укажите:<IP-адрес агента сбора лог-коллектора>
- IP-адрес агента сбора лог-коллектора, на котором подключена ОС семейства Unix как источник;<номер порта>
- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
- В параметре
destination d_ufw_net
укажите:<IP-адрес агента сбора лог-коллектора>
- IP-адрес агента сбора лог-коллектора, на котором подключен UFW как источник;<номер порта>
- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
В блоке Log path
настройте фильтр для журналов от UFW:
log { source(s_src);
if {
filter(f_ufw);
destination(d_ufw_net);
} else {
destination(d_net);
};
};
Проверьте настройки UFW, выполнив следующие команды:
# sudo ufw enable
# sudo ufw logging on
# sudo ufw logging low | medium | high | full
Перезапустите службу syslog-ng
:
# sudo service syslod-ng restart
Включение источника на платформе
Перейдите в веб-интерфейс платформы и включите источник Uncomplicated-Firewall-UFW.