UFW и firewalld
Для получения событий с межсетевого экрана uncomplicated firewall
(UFW) или firewalld
его необходимо подключить как отдельный источник.
Характеристики источника в Платформе Радар:
Характеристика | Значение |
---|---|
Название | Uncomplicated-Firewall-UFW |
Тип | Firewall |
Вендор | Linux |
Порт | 2673 |
Протокол | TCP |
Примечание: источник ОС семейства Unix также передает события от служб
firewalld
иUFW
.При необходимости вы можете подключить службы как отдельный источник. Для этого в файлах конфигурации указывайте порт
2673
.Если вы хотите передавать события вместе с источником ОС семейства Unix, то в файлах конфигурации указывайте порт
2671
.
Настройка источника включает в себя следующие процессы:
- Настройка службы firewalld.
- Настройка службы UFW.
- Настройка лог-коллектора.
- Включение источника на платформе.
Настройка 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-адрес лог-коллектора;<номер порта>
- номер порта для подключения источника событий:2673
- если вы хотите подключить службу как отдельный источник событий;2671
- если вы хотите чтобы данные передавались вместе с источником ОС семейства Unix.
Перезапустите службу 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-адрес лог-коллектора;<номер порта>
- номер порта для подключения источника событий:2673
- если вы хотите подключить службу как отдельный источник событий;2671
- если вы хотите чтобы данные передавались вместе с источником ОС семейства Unix.
- В параметре
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-адрес лог-коллектора;<номер порта>
- номер порта для подключения источника событий:2673
- если вы хотите подключить службу как отдельный источник событий;2671
- если вы хотите чтобы данные передавались вместе с источником ОС семейства Unix.
Перезапустите службу журналирования:
# 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(2671) log_fifo_size(1000)); };
destination d_ufw_net { tcp("<ip лог-коллектора, на котором подключен ufw как источник>" port(<номер порта>) log_fifo_size(1000)); };
Где, укажите следующие параметры:
- В параметре
destination d_net
укажите:<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора, на котором подключена ОС семейства Unix как источник;2671
- номер порта для подключения ОС семейства Unix как источник событий.
- В параметре
destination d_ufw_net
укажите:<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора, на котором подключен UFW как источник;<номер порта>
- номер порта для подключения источника событий:2673
- если вы хотите подключить службу как отдельный источник событий;2671
- если вы хотите чтобы данные передавались вместе с источником ОС семейства Unix.
В блоке 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
Настройка лог-коллектора
Ниже приведена конфигурация лог-коллектора которая используется и для источника UFW:
tcp_input: &tcp_input
id: "tcp_input"
host: "<IP-адрес лог-коллектора>"
port: 2673
format: "json"
tcp_output: &tcp_output
id: "tcp_output"
target_host: "<IP-адрес Платформы>"
port: 2673
collectors:
tcp_receiver:
- <<: *tcp_input
senders:
port: 48001
tcp:
- <<: *tcp_output
route_1: &route_1
collector_id:
- "tcp_input"
sender_id:
- "tcp_output"
routers:
- <<: *route_1
Где:
<IP-адрес лог-коллектора>
- IP-адрес лог-коллектора;2673
- номер порта для подключения службыfirewalld
илиUFW
как источник событий;<IP-адрес Платформы>
- IP-адрес по которому выполняется доступ в веб-интерфейс Платформы Радар.
Включение источника на платформе
Перейдите в веб-интерфейс платформы и выполните следующие действия:
- Перейдите в раздел Администрирование → Источники → Управление источниками.
- Включите источник Uncomplicated-Firewall-UFW.
- Нажмите кнопку Синхронизировать.
- Перейдите в раздел События и проверьте наличие потока событий от данного источника.