Архив автора: admin

Развертывание сервера Graylog с помощью Ansible на Ubuntu/Debian/CentOS

Добро пожаловать в это руководство по развертыванию сервера Graylog на системе Ubuntu/Debian/CentOS Linux с помощью Ansible.




Graylog – это бесплатный инструмент для агрегации и управления логами с открытым исходным кодом.




Он используется для сбора, анализа, визуализации журналов и отправки оповещений.




Сервер Graylog состоит из 4 компонентов, а именно:




  • Graylog Server – сервер, который передает журналы для визуализации на веб-интерфейсе.
  • MongoDB – это сервер базы данных, используемый для хранения данных и конфигураций.
  • ElasticSearch – это инструмент анализа журналов для Graylog Server.
  • Java – обеспечивает среду выполнения для ElasticSearch.




Все эти инструменты работают вместе для достижения главной цели – агрегации и управления журналами.




Использование Ansible для развертывания сервера Graylog Server позволяет легко автоматизировать рекурсивную задачу.




Ansible, как и другие инструменты оркестрации, должен быть установлен на управляющем узле, чтобы иметь возможность управлять подключенными хостами.




Эта установка с помощью ansible в настоящее время работает в следующих системах:




  • CentOS / RHEL: CentOS 7/8, RHEL 7/8
  •  Debian: Debian 10 / Debian 9
  • Ubuntu: Ubuntu 20.04 / Ubuntu 18.04




Шаг 1. Установка и настройка Ansible




Ansible может быть установлен на управляющей ноде несколькими методами.




Самый простой способ установить его на любой дистрибутив Linux – это использование PIP.




Прежде чем приступить к этому методу, необходимо установить Python и PIP.




##На Ubuntu
sudo apt update
sudo apt install python3 python3-pip -y

##На CentOS
sudo yum install python3 python3-pip -y




Теперь используйте установленный PIP для установки Ansible.




sudo pip3 install ansible




На macOS вы можете использовать brew для установки Ansible




brew install ansible




Проверьте правильность установки.




$ ansible --version
ansible [core 2.12.4]
  config file = None
  configured module search path = ['/home/ubuntu/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  ansible collection location = /home/ubuntu/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0]
  jinja version = 2.10.1
  libyaml = True




Ansible также может быть установлен из репозиториев пакетов по умолчанию:




##На Ubuntu / Debian
sudo apt install ansible

##На CentOS
sudo yum install epel-release
sudo yum install ansible




Создайте файл инвентари хостов nsible




Этот файл состоит из хостов, управляемых Ansible.




$ sudo vim /etc/ansible/hosts
[graylog]
192.168.205.9 ansible_ssh_user=username




Замените “username” в приведенной ниже команде на имя пользователя главного хоста.




Сгенерируйте и скопируйте SSH-ключи управляемого хоста на управляющую ноду.




ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.205.9




Это позволит вам управлять добавленными хостами без пароля.




Проверьте, работает ли это:




$ ansible -m ping all
192.168.205.9 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}




Шаг 2. Установите роль Graylog Ansible




Роль Graylog Ansible позволяет установить и настроить Graylog.




Ее можно установить с помощью команды:




$ ansible-galaxy install graylog2.graylog
Starting galaxy role install process
- downloading role 'graylog', owned by graylog2
- downloading role from https://github.com/Graylog2/graylog-ansible-role/archive/3.3.7.tar.gz
- extracting graylog2.graylog to /Users/jkmutai/.ansible/roles/graylog2.graylog
- graylog2.graylog (3.3.7) was installed successfully
- adding dependency: lean_delivery.java (7.1.0)
- adding dependency: elastic.elasticsearch (main)
- downloading role 'java', owned by lean_delivery
- downloading role from https://github.com/lean-delivery/ansible-role-java/archive/7.1.0.tar.gz
- extracting lean_delivery.java to /Users/jkmutai/.ansible/roles/lean_delivery.java
- lean_delivery.java (7.1.0) was installed successfully
- extracting elastic.elasticsearch to /Users/jkmutai/.ansible/roles/elastic.elasticsearch
- elastic.elasticsearch (main) was installed successfully




Из приведенного выше результата вы заметите, что следующие зависимости были установлены.




  • Java
  • Elasticsearch




Проверьте, были ли установлены зависимости роли , используя команду:




ansible-galaxy install -r ~/.ansible/roles/graylog2.graylog/requirements.yml




Не забудьте заменить ~/.ansible/roles/graylog2.graylog/ на правильный путь к вашей роли Graylog Ansible.




Шаг 3. Развертывание сервера Graylog с помощью Ansible Roles




Создайте playbook YAML для установки сервера Graylog в одном экземпляре.




vim graylog-playbook.yaml




Файл будет содержать следующие строки:




- hosts: "graylog"
  remote_user: "username"
  become: True
  vars:
    #Elasticsearch vars
    es_major_version: "7.x"
    es_version: "7.10.2"
    es_enable_xpack: False
    es_instance_name: "graylog"
    es_heap_size: "1g"
    es_config:
      node.name: "graylog"
      cluster.name: "graylog"
      http.port: 9200
      transport.tcp.port: 9300
      network.host: "127.0.0.1"
      discovery.seed_hosts: "localhost:9300"
      cluster.initial_master_nodes: "graylog"
    oss_version: True
    es_action_auto_create_index: False

    #Graylog vars
    graylog_version: 4.2
    graylog_install_java: True
    graylog_password_secret: "ncc4jque0VvGImadZ7jzX26NrESt30dY4U4nNfZWAXubcvUGDKnMjbC4eEAU0KcfWX6CDk4ME80CrYPP9ErpvyFPXc2H2xKf" # Insert your own here. Generate with: pwgen -s 96 1
    graylog_root_password_sha2: "434e27fac24a15cbf8b160b7b28c143a67d9e6939cbb388874e066e16cb32d75" # Insert your own root_password_sha2 here.
    graylog_http_bind_address: "{{ ansible_default_ipv4.address }}:9000"
    graylog_http_publish_uri: "http://{{ ansible_default_ipv4.address }}:9000/"
    graylog_http_external_uri: "http://{{ ansible_default_ipv4.address }}:9000/"

  roles:
    - role: "graylog2.graylog"
      tags:
        - "graylog"




Не забудьте заменить сгенерированный командой graylog_password_secret:




$ pwgen -N 1 -s 96
ncc4jque0VvGImadZ7jzX26NrESt30dY4U4nNfZWAXubcvUGDKnMjbC4eEAU0KcfWX6CDk4ME80CrYPP9ErpvyFPXc2H2xKf




Также замените graylog_root_password_sha2, созданный с помощью команды:




$ echo -n "Enter Password: " && head -1 </dev/stdin | tr -d 'n' | sha256sum | cut -d" " -f1
Enter Password: Str0ngPassw0rd
434e27fac24a15cbf8b160b7b28c143a67d9e6939cbb388874e066e16cb32d75




Теперь разверните сервер Graylog.




ansible-playbook graylog-playbook.yaml

## With custom inventory file ###
ansible-playbook graylog-playbook.yaml -i myinventory




Проверьте, запущен ли Elasticsearch:




$ curl -X GET localhost:9200
{
  "name" : "graylog",
  "cluster_name" : "graylog",
  "cluster_uuid" : "O6qVFbgjQvmTDZ3j-cAVSg",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
    "build_date" : "2021-01-13T00:42:12.435326Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}




Развертывание кластера Graylog с помощью Ansible (необязательно для HA)




Также можно развернуть кластер Graylog с большим количеством экземпляров Elasticsearch и Graylog.




Приведенный ниже пример включает 3 экземпляра Elasticsearch и 3 экземпляра Graylog.




Начните с развертывания кластера Elasticsearch:




- hosts: "elasticsearch"
  vars:
    es_major_version: "7.x"
    es_version: "7.10.2"
    es_enable_xpack: False
    es_instance_name: "graylog"
    es_heap_size: "1g"
    es_config:
      node.name: "{{ ansible_hostname }}"
      cluster.name: "graylog"
      http.port: 9200
      transport.port: 9300
      network.host: "0.0.0.0"
      discovery.seed_hosts: "elasticsearch01:9300, elasticsearch02:9300, elasticsearch03:9300"
      cluster.initial_master_nodes: "elasticsearch01, elasticsearch02, elasticsearch03"
    oss_version: True
    es_action_auto_create_index: False

  roles:
    - role: "elastic.elasticsearch"




Затем перейдите к развертыванию экземпляров MongoDB:




- hosts: "graylog"
  vars:
    mongodb_version: "4.4"
    bind_ip: "0.0.0.0"
    repl_set_name: "rs0"
    authorization: "disabled"
  roles:
    - community.mongodb.mongodb_repository
    - community.mongodb.mongodb_mongod
  tasks:
    - name: "Start MongoDB"
      service:
        name: "mongod"
        state: "started"
        enabled: "yes"

- hosts: "graylog01"
  tasks:
    - name: "Install PyMongo"
      apt:
        update_cache: yes
        name: "python3-pymongo"
        state: "latest"
    - name: Configure replicaset
      community.mongodb.mongodb_replicaset:
        login_host: "localhost"
        replica_set: "rs0"
        members:
        - graylog01
        - graylog02
        - graylog03




Наконец, разверните экземпляр Graylog:




- hosts: "graylog"
  vars:
    graylog_is_master: "{{ True if ansible_hostname == 'graylog01' else False }}"
    graylog_version: 4.2
    graylog_install_java: False
    graylog_install_elasticsearch: False
    graylog_install_mongodb: False
    graylog_password_secret: "" # Insert your own here. Generate with: pwgen -s 96 1
    graylog_root_password_sha2: "" # Insert your own root_password_sha2 here.
    graylog_http_bind_address: "{{ ansible_default_ipv4.address }}:9000"
    graylog_http_publish_uri: "http://{{ ansible_default_ipv4.address }}:9000/"
    graylog_http_external_uri: "http://{{ ansible_default_ipv4.address }}:9000/"
    graylog_elasticsearch_hosts: "http://elasticsearch01:9200,http://elasticsearch02:9200,http://elasticsearch03:9200"
    graylog_mongodb_uri: "mongodb://graylog01:27017,graylog02:27017,graylog03:27017/graylog"

  roles:
    - role: "graylog2.graylog"




Таким образом, у вас будет кластер Graylog с 3 экземплярами Elasticsearch и 3 экземплярами Graylog.




Шаг 4. Получите доступ к веб-интерфейсу Graylog




Теперь разрешите порт 9000 на брандмауэре:




##На Firewalld
sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

##На UFW
sudo ufw allow 9000/tcp




Войдите в систему, используя стандартного пользователя admin и пароль, заданный с помощью graylog_root_password_sha2.




После успешной аутентификации вы должны получить доступ.



2022-06-13T23:11:29
Software

Apache HTTP Server 2.4.54 содержит 19 изменений и исправляет 8 уязвимостей.

Apache Software Foundation и Apache HTTP Server Project недавно объявили о выпуске новой версии Apache HTTP Server 2.4.54, так как эта версия Apache является последней версией GA. из ветки Apache HTTPD следующего поколения 2.4.x и представляет пятнадцать лет инноваций проекта и рекомендуется по сравнению со всеми предыдущими версиями. Этот выпуск Apache представляет собой выпуск, посвященный безопасности, функциям и исправлениям ошибок.

Новая версия, котораяe представляет 19 изменений и исправляет 8 уязвимостей, из которых некоторые из них разрешали доступ к данным, также могли привести, среди прочего, к отказу в обслуживании.





Читать

Apache HTTP Server 2.4.54 содержит 19 изменений и исправляет 8 уязвимостей.

Apache Software Foundation и Apache HTTP Server Project недавно объявили о выпуске новой версии Apache HTTP Server 2.4.54, так как эта версия Apache является последней версией GA. из ветки Apache HTTPD следующего поколения 2.4.x и представляет пятнадцать лет инноваций проекта и рекомендуется по сравнению со всеми предыдущими версиями. Этот выпуск Apache представляет собой выпуск, посвященный безопасности, функциям и исправлениям ошибок.

Новая версия, котораяe представляет 19 изменений и исправляет 8 уязвимостей, из которых некоторые из них разрешали доступ к данным, также могли привести, среди прочего, к отказу в обслуживании.





Читать

Вышла новая версия Cinnamon 5.4.

Через 6 месяцев разработки анонсирован выпуск новой версии популярной среды рабочего стола, Корица 5.4, в рамках которого сообщество разработчиков дистрибутива Linux Mint разрабатывает форк GNOME Shell.

Для тех, кто не знаком с этой средой рабочего стола «Cinnamon», могу сказать, что это основан на компонентах GNOME, но эти компоненты поставляются как периодически синхронизируемый форк без внешних зависимостей для GNOME.



Читать

Вышла новая версия Cinnamon 5.4.

Через 6 месяцев разработки анонсирован выпуск новой версии популярной среды рабочего стола, Корица 5.4, в рамках которого сообщество разработчиков дистрибутива Linux Mint разрабатывает форк GNOME Shell.

Для тех, кто не знаком с этой средой рабочего стола «Cinnamon», могу сказать, что это основан на компонентах GNOME, но эти компоненты поставляются как периодически синхронизируемый форк без внешних зависимостей для GNOME.



Читать

Они разработали метод идентификации и отслеживания телефонов с помощью сигналов Bluetooth. 

Группа исследователей из Калифорнийского университета в Сан-Диего разработал метод идентификации мобильных устройств через знаки ипередается по воздуху через Bluetooth с низким энергопотреблением (BLE) и используется пассивными приемниками Bluetooth для обнаружения появления новых устройств в радиусе действия.

В зависимости от реализации сигналы маяка отправляются со скоростью примерно 500 раз в минуту и, по замыслу создателей стандарта, полностью анонимны и не могут использоваться для привязки пользователя.



Читать