Ubuntu, Pop-os w Active Directory

You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂

Na podstawie https://ubuntu.com/server/docs/service-sssd-ad.

Opis uwierzytelnienia użytkowników w komputerze z Linux w domenie Active Directory.

Przed rozpoczęciem pracy aby ułatwić sobie późniejszą konfigurację i użytkowanie, upewniamy się, że w naszym systemie nie ma użytkownika o nazwie takiej jak użytkownik domenowy, którego będziemy używać .

Instalujemy potrzebne oprogramowanie.

$ sudo apt install sssd-ad sssd-tools realmd adcli

Sprawdzamy /etc/hostname oraz /etc/hosts.

$ cat /etc/hostname
moj-komputer
$ cat cat /etc/hostname
127.0.0.1	localhost
::1		localhost
127.0.1.1	moj-komputer.domena.example.local	moj-komputer

Sprawdzamy czy domena jest wykrywana przez DNS.

$ sudo realm -v discover domena.example.local

Jeżeli mamy problemy z dostępem do domeny to musimy sprawdzić konfigurację DNS. W Ubuntu i Pop-os używany jest lokalny serwer DNS, który domyślnie nie rozwiązuje domen *.local. Konfiguracja DNS.

Dołączamy do domeny

$ sudo realm join -v domena.example.local

Narzędzie realm zajęło się już stworzeniem konfiguracji sssd, dodaniem modułów pam i nss oraz uruchomieniem niezbędnych usług.

Teraz musimy sprawdzić konfigurację /etc/sssd/sssd.conf:

[sssd]
domains = domena.example.local
config_file_version = 2
services = nss, pam

[domain/domena.example.local]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = DOMENA.EXAMPLE.LOCAL
realmd_tags = manages-system joined-with-adcli 
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = domena.example.local
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad

Plik musi mieć uprawnienia 0600 i własność root:root

Włączamy i uruchamiamy ponownie serwis sssd

$ sudo systemctl enable sssd
$ sudo systemctl restart sssd

Automatyczne tworzenie katalogu domowego dla użytkowników domenowych

$ sudo pam-auth-update --enable mkhomedir

Dodanie obsługi Kerberos

$ sudo apt install krb5-user

Konfiguracja pliku /etc/krb5-user.conf

[libdefaults]
default_realm = DOMENA.EXAMPLE.LOCAL
rdns = no
dns_lookup_kdc = true
dns_lookup_realm = true

[realms]
DOMENA.EXAMPLE.LOCAL = {
kdc = kontroler_domeny.domena.example.local
admin_server = kontroler_domeny.domena.example.local
}

Testowanie biletu Kerberos

$ kinit user@domena.example.local
$ klist

Aby zalogować się pierwszy raz do pulpitu za pomocą użytkownika Active Directory wybieramy na ekranie logowania „Nie wymienione” i wpisujemy użytkownika domenowego w formacie user@domena.example.local.

Pop-os, Ubuntu. Dns

Domyślnie Pop-os i Ubuntu używa do rozwiązywania nazw lokalnego DNS. Czasem może to powodować problemy np. nie są rozwiązywane domeny .local.

Możemy ustawić system aby bezpośrednio korzystał z wpisanego w konfiguracji sieci DNS’a zmieniając dowiązanie symboliczne pliku /etc/resolv.conf.

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Security Onion – Elasticsearch parsowanie logów z syslog

You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂

W Security Onion 2 Elasticsearch otrzymuje nieprzeanalizowane logi z Logstash lub Filebeat . Elasticsearch analizuje i przechowuje te logi. Parsery są przechowywane w /opt/so/conf/elasticsearch/ingest/. Własne parsery można umieścić w /opt/so/saltstack/local/salt/elasticsearch/files/ingest/. Jeżeli twój parser będzie posiadał nazwę identyczną ze standardową to zostanie nadpisany.

Do parsowania logów używamy różnych procesorów. Jednym z nich jest Grok. Pisząc lub edytując własny parser z użyciem Grok możemy skorzystać z debugera w Kibana > Dev Tools > Grok Debugger

„Sample Data” – to fragment logów który parsujemy
„Grok Pattern” – wzorzec
„Custom Patterns” – wzorce niestandardowe używane w Grok pattern.

W Grok pattern możemy użyć też standardowych wzorców.

Na podstawie wzorca zmodyfikowałem plik /opt/so/conf/elasticsearch/ingest/syslog zapisując go w /opt/so/saltstack/local/salt/elasticsearch/files/ingest/syslog, aby prawidłowo parsował mój log „<132>Aug 17 16:11:31:000 2022 switch MODULE_UTILS_SSH/5/:SSH: User admin login successfully from x.x.x.x”

{
  "description" : "syslog pipeline",
  "processors" : [
    {
      "dissect": {
        "field": "message",
        "pattern" : "%{message}",
        "on_failure": [ { "drop" : { } } ]
      },
      "remove": {
        "field": [ "type", "agent" ],
        "ignore_failure": true
      }
    }, {
      "grok": {
        "field": "message",
          "patterns": [
            "^<%{INT:syslog.priority:int}>%{TIMESTAMP_ISO8601:syslog.timestamp} +%{IPORHOST:syslog.host} +%{PROG:syslog.program}(?:\\[%{POSINT:syslog.pid:int}\\])?: %{GREEDYDATA:real_message}$",

            "^<%{INT:syslog.priority}>%{DATA:syslog.timestamp} %{WORD:source.application}(\\[%{DATA:pid}\\])?: %{GREEDYDATA:real_message}$",

            "^%{SYSLOGTIMESTAMP:syslog.timestamp} %{SYSLOGHOST:syslog.host} %{SYSLOGPROG:syslog.program}: CEF:0\\|%{DATA:vendor}\\|%{DATA:product}\\|%{GREEDYDATA:message2}$",

            "^<%{INT:syslog.priority:int}>%{DATE_MY:syslog.timestamp} +%{IPORHOST:syslog.host} %{GREEDYDATA:real_message}$"

          ],

          "pattern_definitions" : {
            "DATE_MY" : "%{MONTH} %{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}:%{INT} %{YEAR}"
          },
          "ignore_failure": true
      }
    },
    {
      "convert" : {
        "if": "ctx?.syslog?.priority != null",
        "field" : "syslog.priority",
        "type": "integer"
      }
    },
    {
...

Patterns są przetwarzane od góry do doły aż zostanie znaleziony pasujący wzorzec.

Aby zmiany zostały uwzględnione przeładowałem Elasticsearch:

$ sudo so-elasticsearch-restart

Proxmox – ZFS użycie pamięci

ZFS domyślnie wykorzystuje 50% pamięci hosta na Adaptive Replacement Cache (ARC). Przydzielanie wystarczającej ilości pamięci dla ARC ma kluczowe znaczenie dla wydajności IO, więc należy ją zmniejszać ostrożnie. Ogólną zasadą jest przydzielenie co najmniej 2 GiB + 1 GiB na 1 TiB przestrzeni dyskowej. Na przykład, jeśli masz pulę z 8 TiB dostępnej przestrzeni dyskowej, powinieneś użyć 10 GiB pamięci dla ARC

Możesz zmienić limit wykorzystania ARC dla bieżącego rozruchu (ponowne uruchomienie resetuje tę zmianę ponownie), wpisując bezpośrednio do parametru modułu zfs_arc_max:

# echo "$[10 * 1024*1024*1024]" >/sys/module/zfs/parameters/zfs_arc_max

Aby na stałe zmienić ilość pamięci ARC wpisujemy do /etc/modprobe.d/zfs.conf

options zfs zfs_arc_max=10737418240

W przypadku, gdy ustawiana wartość zfs_arc_max jest mniejsza lub równa zfs_arc_min (co domyślnie wynosi 1/32 pamięci systemowej), zfs_arc_max zostanie zignorowane, chyba że ustawisz również zfs_arc_min na co najwyżej zfs_arc_max – 1.

# echo "$[10 * 1024*1024*1024 - 1]" >/sys/module/zfs/parameters/zfs_arc_min

lub zapisując na stałe do /etc/modprobe.d/zfs.conf

options zfs zfs_arc_max=10737418239

Jeśli głównym systemem plików Proxmoxa jest ZFS, musisz aktualizować initramfs i rebootować Proxmoxa za każdym razem, gdy zmienisz te wartości:

# update-initramfs -u
# reboot

Notatka na podstawie: https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_limit_memory_usage

Home Assistant – Mikrotik zmiana danych integracji

Aby zmienić adres ip, użytkownika lub hasło do integracji z mikrotikiem logujemy się do HA i za pomocą edytora plików np. Studio Code Server, który możemy sobie doinstalować w dodatkach, otwieramy plik .storage/core.config_entries. Wyszukujemy w nim odpowiednią sekcję, szukając jakiś danych powiązanych z naszym Mikrotikiem np. ip, port, nazwę użytkownika do integracji z mikrotik. Zmieniamy wpisy, które nas interesują, zapisujemy i uruchamiamy ponownie HA.

Wazuh – Indeksowanie i przeglądanie wszystkich logów

W Wazuh domyślnie można przeglądać tylko logi z rozpoznanych alertów. Możemy jednak tak ustawić aby Wazuh indeksował i umożliwił przeglądanie wszystkich wysyłanych do niego logów.

w pliku konfiguracji /var/ossec/etc/ossec.conf ustawiamy

# nano /var/ossec/etc/ossec.conf

<logall_json>yes</logall_json>

# systemctl restart wazuh-manager 

Zmieniamy konfigurację Filebeat aby czytał i wysyłał alerty i archiwa

# nano /etc/filebeat/filebeat.yml

filebeat.modules:
 - module: wazuh
  alerts:
   enabled: true
  archives:
   enabled: true

# systemctl restart filebeat

Logujemy się do dashboard Wazuh i dodajemy wzór indeksu.

Menu -> Management -> Stack Management -> Index Patterns -> Create index pattern

  1. W polu „Index pattern name” wpisujemy wazuh-archives-* i naciskamy „Next”
  2. W polu „timestamp” wybieramy „timestamp” ale nie „@timestamp”
  3. Wybieramy „Create index pattern”

Teraz w „Security events” po prawej stronie u góry możemy wybierać wzór indexu „Index pattern”

Bacula – SD Calls Client

W niektórych konfiguracjach sieciowych, gdzie klient bacula-fd jest w podsieci z której nie ma dostępu do repozytorium bacula-sd możemy odwrócić połączenie i to bacula-sd nawiązuje połączenie z clientem bacula-fd. Dzieki takiej konfiguracji ewentualny zainfekowany klient nie będzie miał dostępu do repozytorium bacula-sd.

W konfiguracji bacula-dir.conf w sekcji Client dodajemy SDCallsClient = yes

Client {
  Name = SerwerPlikow
  Address = X.X.X.X
  FDPort = 9102

  AutoPrune = no               
  . . . 
  SDCallsClient = yes
}

Debian – własny certyfikat CA w systemie

Dodanie certyfikatu

  1. Skopiuj swój certyfikat CA do katalogu /usr/local/share/ca-certificates/
    Plik certyfikatu musi mieć rozszerzenie crt
  2. Aktualizacja CA store: $ update-ca-certificates

Usunięcie

  1. Usunąć plik z CA $ rm /usr/local/share/ca-certificates/myCA.crt
  2. Aktualizacja CA store: $ update-ca-certificates –fresh

ESXi – Usuwanie snapshotów z CLI

Logujemy się do ESXi przez ssh.

Wyświetlamy listę wirtualnych maszyn aby uzyskać Vmid interesującej nas maszyny.

# vim-cmd vmsvc/getallvms

Vmid Name File Guest OS Version Annotation
1 vm2 [datastore1] vm1/vm1.vmx windows7 vmx-02
3 vm3 [iscsi1] testvm/vm2.vmx Linux vmx-04

Sprawdzanie snapshotów dla maszyny o wybranym Vmid

# vim-cmd vmsvc/snapshot.get [Vmid]
Get Snapshot:
|-ROOT
--Snapshot Name : Snapshot1
--Snapshot Desciption :
--Snapshot Created On : 04/27/2022 10:22:01
--Snapshot State : powered on

Usunięcie wszystkich snapshotów dla maszyny o wybranym Vmid

# vim-cmd vmsvc/snapshot.removeall [Vmid]