Кто-то хочет бесплатно развратить мой лог, так что быстрее включайте охрану!

Java задняя часть
Кто-то хочет бесплатно развратить мой лог, так что быстрее включайте охрану!

Адрес фактического центра электронной коммерции SpringBoot (40k+star):GitHub.com/macro-positive/…

Резюме

существует"Вы все равно ходите на сервер собирать логи, разве не восхитительно настроить систему сбора логов! 》В этой статье мы представили построение системы сбора логов ELK.Поскольку наша Kibana не имеет какого-либо механизма защиты безопасности, если она развернута в общедоступной сети, любой может просматривать ваши логи. Выставлять логи в сеть нехорошо, сегодня я научу вас, как настроить аутентификацию при входе в Kibana, чтобы защитить ее.

Принцип реализации

Поскольку информация журнала Kibana хранится в Elasticsearch, просто включите Elasticsearch.X-PACKВы можете установить пароль для предустановленной учетной записи. После настройки Elasticsearch пользователями, ролями и разрешениями можно управлять в Kibana.Все версии компонентов ELK, используемые в этой статье,7.6.2.

Elasticsearch установить пароль

  • Измените файл конфигурации Elasticsearch и включите его.X-PACKфункции безопасности в файле конфигурации в каталоге установкиconfigниже папки, например.elasticsearch-7.6.2\config\elasticsearch.yml;
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
  • Запустите службу Elasticsearch, запустите команду вbinкаталог, напримерelasticsearch-7.6.2\bin\elasticsearch.bat;

  • существуетbinИспользуйте следующую команду в каталогеelasticsearch-setup-passwords interactiveИзмените пароль предустановленной учетной записи. В течение периода вам необходимо установить несколько паролей для учетных записей. Я установил их как123456;

  • За этот период было создано несколько учетных записей. Давайте сначала разберемся, что делают эти учетные записи;
elastic:超级管理员账号
kibana:Kibana访问专用账号
logstash_system:Logstash访问专用账号
beats_system:FileBeat访问专用账号
apm_system:APM系统专用账号
remote_monitoring_user:远程监控账号
  • Далее нам нужно добавить учетную запись, которая может получить доступ к Elasticsearch, в файл конфигурации Kibana, который находится в каталоге установки.configниже папки, например.kibana-7.6.2\config\kibana.yml;
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
  • Запустите службу Kibana, запустите команду вbinкаталог, напримерkibana-7.6.2\bin\kibana.bat;

  • Когда Kibana запускается, нам нужно войти в систему и аутентифицироваться при посещении, используя учетную запись суперадминистратора.elastic:123456Вы можете войти и посетить адрес:http://localhost:5601

  • После успешного входа в нашManagementКонфигурацию, связанную с безопасностью, можно найти в параметрах, где мы можем установить пользователей, роли и разрешения.

Безопасный доступ SpringBoot

Поскольку Elasticsearch включенX-PACKФункция безопасности в , когда наше приложение SpringBoot обращается к Elasticsearch, нам также необходимо установить имя пользователя и пароль!

  • Мы можем настроить учетную запись суперадминистратора прямо в SpringBoot, но это не очень хороший способ, давайте создадим роль и учетную запись сами!

  • Сначала создайте определенную роль для доступа к приложению в Kibana.app_user;

  • Создайте пользователя и настройте роль, пароль учетной записиapp:123456;

  • Измените файл конфигурации приложения SpringBoot.application.yml, настройте пароль учетной записи, и вы сможете получить к ней доступ в обычном режиме!
spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200
      username: app
      password: 123456

Безопасный доступ к Logstash

Поскольку Elasticsearch включенX-PACKФункция безопасности в Logstash, которая выводит журналы в Elasticsearch, также требует установки имени пользователя и пароля!

  • Сначала измените исходный файл конфигурации Logstash.logstash.conf,существуетoutputУстановите имя пользователя и пароль для доступа к Elasticsearch под узлом и используйте тот, который мы создали напрямую.app:123456Счет;
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
    type => "debug"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4561
    codec => json_lines
    type => "error"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4562
    codec => json_lines
    type => "business"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4563
    codec => json_lines
    type => "record"
  }
}
filter{
  if [type] == "record" {
    mutate {
      remove_field => "port"
      remove_field => "host"
      remove_field => "@version"
    }
    json {
      source => "message"
      remove_field => ["message"]
    }
  }
}
output {
  elasticsearch {
    hosts => ["localhost:9200"]
    action => "index"
    codec => json
    index => "mall-tiny-%{type}-%{+YYYY.MM.dd}"
    template_name => "mall-tiny"
    user => app
    password => "123456"
  }
}
  • Используйте указанный файл конфигурации для запуска службы Logstash.Команда запуска находится вbinкаталог, напримерlogstash-7.6.2\bin\logstash.bat;
logstash -f logstash.conf
  • Далее вы можете просмотреть журналы, выводимые приложением в Kibana!

Адрес исходного кода проекта

GitHub.com/macro-positive/…

Эта статьяGitHubGitHub.com/macro-positive/…Он был записан, приветствую всех на Star!