10. Встановлення та конфігурація серверу аналізу журналів подій
Для централізованого сховища журналів подій можна встановити новий або використати вже існуючий сервер аналізу журналів подій (з увімкненою службою Rsyslog Server). Встановлення та налаштування серверу аналізу журналів подій виконується Адміністратором локальних компонентів (системним адміністратором).
- 10.1. Встановлення серверу аналізу журналів подій
- 10.2. Налаштування серверу аналізу журналів подій
- 10.3 Початкова конфігурація сервера аналізу журналів подій
- 10.4 Налаштування підключення до шлюзу безпечного обміну
10.1. Встановлення серверу аналізу журналів подій
Перед початком встановлення віртуальна машина (або фізичний сервер) повинні бути попередньо налаштовані згідно розділів 5.1 та 5.2.
Для встановлення серверу аналізу журналів подій необхідно виконати наступні дії:
1. Закрити доступ до сторонніх репозиторіїв за допомогою наступної команди:
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
2. Додати у операційну систему репозиторій з пакетами системи «Трембіта»:
echo 'deb https://project-repo.trembita.gov.ua:8081/repository/trembita-monitoring_archive/ graylog main' | sudo tee -a /etc/apt/sources.list
Перевірити результат виконання команд можна за допомогою текстового редактора nano, відкривши файл на редагування за допомогою наступної команди:
sudo nano /etc/apt/sources.list
3. Додати GPG ключ репозиторію за допомогою наступної команди:
sudo wget -O - https://project-repo.trembita.gov.ua:8081//public-keys/public.key.txt | sudo apt-key add -
Якщо команду виконано успішно, буде виведено повідомлення «ОК».
4. Встановити програмне забезпечення серверу аналізу журналів подій з репозиторію за допомогою послідовного виконання наступних команд:
sudo apt update
sudo apt install openjdk-8-jre-headless uuid-runtime pwgen
sudo apt install mongodb-org
5. Перезапустити сервіси mongodb та активувати їх автозапуск при запуску ОС за допомогою послідовного виконання наступних команд:
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl restart mongod.service
6. Перевірити, що база даних коректно почала роботу за допомогою наступної команди:
sudo systemctl --type=service --state=active | grep mongod
7. Встановити пакет elasticsearch за допомогою наступної команди:
sudo apt-get install elasticsearch
8. Змінити конфігурацію сервісу elasticsearch за допомогою наступної команди:
sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null <<EOT
cluster.name: graylog
action.auto_create_index: false
EOT
9. Запустити сервіс elasticsearch та налаштувати його автоматичний запуск під час завантаження ОС за допомогою послідовного виконання наступних команд:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service
10. Перевірити, що запуск сервісу відбувся успішно за допомогою наступної команди:
sudo systemctl --type=service --state=active | grep elasticsearch
11. Встановити сервер Graylog за допомогою наступної команди:
sudo apt-get install graylog-server
10.2. Налаштування серверу аналізу журналів подій
Налаштування серверу аналізу журналів подій знаходяться у файлі конфігурації /etc/graylog/server/server.conf. Необхідно задати значення наступних параметрів:
1. Параметр root_password_sha2 - пароль адміністратора веб-інтерфейсу Graylog. Для задачі цього параметру необхідно виконати наступні дії:
- Виконати команду:
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
- Після появи повідомлення «Enter password» необхідно ввести пароль та натиснути на клавішу «Enter». Після цього буде відображено строку, що міститиме буквенно-циферну комбінацію, наприклад:
- Відкрити на редагування файл конфігурації /etc/graylog/server/server.conf за допомогою наступної команди:
sudo nano /etc/graylog/server/server.conf
- Розкоментувати (видалити символ «#») рядок з параметром root_password_sha2 та скопіювати отриману комбінацію як значення цього параметру:
- Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», далі буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім «Enter» для збереження.
2. Параметр password_secret. Для задачі цього параметру необхідно виконати наступні дії:
- Виконати команду
pwgen -N 1 -s 96
- Буде відображено відображено строку, що міститиме буквенно-циферну комбінацію, наприклад:
- Відкрити на редагування файл конфігурації /etc/graylog/server/server.conf за допомогою наступної команди:
sudo nano /etc/graylog/server/server.conf
- Розкоментувати (видалити символ «#») рядок з параметром password_secret та скопіювати отриману комбінацію як значення цього параметру:
- Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім «Enter» для збереження.
3. Параметр http_bind_address. Для задачі цього параметру необхідно виконати наступні дії:
- Відкрити на редагування файл конфігурації /etc/graylog/server/server.conf за допомогою наступної команди:
sudo nano /etc/graylog/server/server.conf
- Розкоментувати (видалити символ «#») рядок з параметром http_bind_address та задати значення цього параметру наступним чином:
http_bind_address = 0.0.0.0:9000
- Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім «Enter» для збереження.
4. Параметр root_timezone. Для задачі цього параметру необхідно виконати наступні дії:
- Відкрити на редагування файл конфігурації /etc/graylog/server/server.conf за допомогою наступної команди:
sudo nano /etc/graylog/server/server.conf
- Розкоментувати (видалити символ «#») рядок з параметром root_timezone та задати значення цього параметру наступним чином:
root_timezone = Europe/Kiev
13. Перезапустити сервіс та перевірити, чи коректно він функціонує за допомогою послідовного виконання наступних команд:
sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl restart graylog-server.service
sudo systemctl --type=service --state=active | grep graylog
10.3 Початкова конфігурація сервера аналізу журналів подій
Початкова конфігурація сервера аналізу журналів подій виконується Адміністратором локальних компонентів (системним адміністратором).
Для початкової конфігурації необхідно перейти до вебінтерфейсу серверу аналізу журналів за посиланням: http://<IP-GRAYLOG-Server>:9000,
де <IP-GRAYLOG-Server> ‑ це IP – адреса серверу аналізу журналів подій,
використовуючи логін «admin» та пароль, який було створено в пункті 10.2
Після успішної авторизації, необхідно перейти до вкладки System -> Inputs:
Та створити новий Input, задавши його тип як «Syslog UDP» та натиснути на кнопку «Launch new input»:
Після цього необхідно відредагувати поля «Title» та «Port» наступним чином:
Та натиснути на кнопку «Save».
10.4 Налаштування підключення до шлюзу безпечного обміну
Параметри підключення до серверу аналізу журналів подій налаштовуються на шлюзі безпечного обміну. Для налаштування необхідно:
1. Увійти до командної консолі ШБО.
2. Відкрити на редагування файл /etc/rsyslog.d/40-uxp.conf за допомогою наступної команди:
sudo nano /etc/rsyslog.d/40-uxp.conf
3. Вказати IP-адресу сервера аналізу журналів подій у відповідній строчці даного файлу:
local0.info /var/log/uxp/audit.log;RSYSLOG_FileFormat
local0.info <@IP_GRAYLOG_Server>:1514
# discard further processing of local0.* to avoid doubling
& ~
де <@IP_GRAYLOG_Server> - це IP-адреса сервера аналізу журналів подій, яка призначена йому статично,
1514 – це порт, який використовується для прийому журналів, вказується через двокрапку після IP-адреси.
4. Замінити файл 45-uxpservices.conf на новий (порожній) за допомогою послідовного виконання наступних команд:
sudo rm /etc/rsyslog.d/45-uxpservices.conf
sudo nano /etc/rsyslog.d/45-uxpservices.conf
5. Додати наступні рядки до новоствореного файлу:
if ($programname == 'uxp-jetty' or $syslogtag == 'uxp-jetty' ) then {
action(type="omfile" file="/var/log/uxp/jetty/jetty.log" flushOnTXEnd="off")
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
stop
}
if ( $programname == 'uxp-signerconsole' or $syslogtag == 'uxp-signerconsole' ) then {
/var/log/uxp/signer-console.log;RSYSLOG_FileFormat
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
& stop
}
if ( $programname == 'uxp-signer' or $syslogtag == 'uxp-signer' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
/var/log/uxp/signer.log;RSYSLOG_FileFormat
& stop
}
if ( $programname == 'uxp-confclient' or $syslogtag == 'uxp-confclient' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
/var/log/uxp/configuration_client.log;RSYSLOG_FileFormat
& stop
}
if ( $programname == 'uxp-proxy' or $syslogtag == 'uxp-proxy' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
/var/log/uxp/proxy.log;RSYSLOG_FileFormat
& stop
}
if ( $programname == 'uxp-proxymonitor' or $syslogtag == 'uxp-proxymonitor' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
/var/log/uxp/proxymonitoragent.log;RSYSLOG_FileFormat
& stop
}
if ( $programname == 'uxp-audit' or $syslogtag == 'uxp-audit' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514")
/var/log/uxp/audit.log;RSYSLOG_FileFormat
& stop
}
if ( $programname == 'ua-integrity' or $syslogtag == 'ua-integrity' ) then {
action(type="omfwd" Target="<IP_GRAYLOG_Server>" Port="1514" Protocol="udp")
/var/log/uaic/KZZ_integrity.log;RSYSLOG_FileFormat
& stop
}
де <IP_GRAYLOG_Server> ‑ локальна IP-адресу серверу аналізу журналів подій:
Примітка:
Швидко замінити <IP_GRAYLOG_Server> на локальну IP-адресу серверу аналізу журналів подій можна виконавши наступні дії:
- Відкрити на редагування файл 45-uxpservices.conf за допомогою наступної команди.
sudo nano /etc/rsyslog.d/45-uxpservices.conf
- Натиснути комбінацію клавіш «Ctrl+\» - це забезпечить пошук та подальшу заміну тексту.
- Скопіювати (або ввести) наступний текст у поле пошуку редактора nano:
< IP_GRAYLOG_Server >
- Натиснути клавішу "Enter" та ввести локальну IP-адресу сервера аналізу журналів подій у поле «Replace with:»:
- Натиснути клавішу "Enter" та клавішу "A" (латинська розкладка) - це дозволить замінити всі знайдені рядки.
6. Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім «Enter» для збереження.
7. Перезавантажити службу rsyslog на шлюзі безпечного обміну шляхом виконання наступної команди:
sudo service rsyslog restart
8. Перевірити стан Rsyslog шляхом виконання наступної команди:
sudo rsyslogd -N 1
Сервер аналізу журналів подій централізовано протоколює події, які реєструються на шлюзі безпечного обміну та передаються за протоколом SYSLOG. Для перегляду логів необхідно перейти за посиланням http://<IP_GRAYLOG_Server>:9000/search.