Samba i bind9 dns problem

Problem z uruchomieniem named, w logach widzimy wpisy brak rekordu NS dla strefy

zone nazwa.strefy.pl/NONE: has no NS records
samba_dlz: Failed to configure zone 'nazwa.strefy.pl'
loading configuration: bad zone
exiting (due to fatal error)

Musimy dodać rekordy NS do strefy
samba-tool dns add [ip_lub_host_dc] [strefa] @ NS [dns_host_domain.] -U administrator

# samba-tool dns add dc1 nazwa.strefy.pl @ NS dc1.domena.pl. -U administrator

dodajemy tyle rekordów NS ile mamy serwerów DNS w domenie.

U mnie ten problem się objawił gdy zdegradowałem(usunąłem) poprzedni PDC z domeny, w głównej strefie domeny rekordy NS się zaktualizowały ale w strefach wyszukiwania wstecznego oraz strefach wyszukiwania do przodu, ręcznie utworzonych nie . Rekordy NS ze starym PDC się usunęły a brakowało wpisów NS wskazujące na nowe DC.

Należy również sprawdzić czy rekordy SOA mają prawidłowo wpisany serwer podstawowy. Można to już zrobić po uruchomieniu binda, w narzędziach administracyjnych przystawka DNS w Windows.

Proxmox klaster – zmiana adresów ip lub nazwy hosta

Procedura zmiany adresów ip lub nazwy hosta w nodach klastra Proxmox.

Przed zmianą adresów musimy zapewnić aby nody widziały się używając nowych ip.
Na zmienianym nodzie przygotowujemy konfigurację interfejsów z nowym adresem i sprawdzamy czy jest komunikacja między pozostałymi nodami a tym nowym ip.

Ja dodałem nowy interfejs VLAN do którego przypisałem adres 192.168.8.3:

# ip a
. . . . . . .
vmbr0.255@vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.3/24 scope global vmbr0.255
. . . . . . .

Wyłączamy lub przenosimy wszystkie vm z noda którego zmieniamy.

W shell na zmienianym nodzie, sprawdzamy status klastra.

# pvecm status
. . . . . . 
Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2  
Flags:            Quorate Qdevice 

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
0x00000001          1    A,V,NMW 192.168.1.1
0x00000002          1    A,V,NMW 192.168.1.2
0x00000003          1    A,V,NMW 192.168.1.3

Następnie w pliku /etc/pve/corosync.conf zmieniamy ip lub nazwę hosta naszego noda oraz config_version. Musimy to zrobić bardzo ostrożnie gdyż każdy zapis zostanie od razu rozpropagowany na pozostałe nody klastra. Teraz na pozostałych nodach sprawdzamy czy naniesione zmiany są widoczne w pliku /etc/pve/corosync.conf.

Na każdym nodzie restartujemy corosynca.

# systemctl restart corosync

Ponownie sprawdzamy status klastra

# pvecm status
. . . . . . 
Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2  
Flags:            Quorate Qdevice 

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
0x00000001          1    A,V,NMW 192.168.1.1
0x00000002          1    A,V,NMW 192.168.1.2
0x00000003          1    A,V,NMW 192.168.8.3

Powinniśmy nadal obserwować quorum, a nasz nod będzie miał zmieniony ip.

Pozostało nam zaktualizować adres ip lub nazwę hosta w pliku /etc/hosts.

Jeżeli chcemy zmienić ip lub nazwę hosta następnemu nodowi postępujemy dokładnie tak samo.

Proxmox VE (PVE), Proxmox BS (PBS) – konfiguracja powiadomień email

Ustawiamy serwery Proxmox, aby wysyłały maile z powiadomieniami.

  1. Ustawiamy w www GUI adres email z którego będzie wysyłana poczta:
    PVE: Datacenter > Options > Email from address
    PBS: Configuration > Others > Email from addresss
  2. W opcjach użytkownika ustawiamy adres email na który mają być wysyłane powiadomienia.
  3. Do /etc/hosts jeżeli brak, to dodajemy wpisz z adresem ip naszego noda, nie wystarczy localhost.
  4. Konfigurujemy Postfixa jako root. Musimy to zrobić na każdym nodzie klastra PVE.

(Zmieniamy lub dodajemy opcje do konfiguracji postfixa)
# nano /etc/postfix/main.cf

relayhost = [adres.serwera.poczty]:465
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

(dla konfiguracji ssl/tls(port465) dodajemy dodatkowo wpisy)
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt

(Dodajemy dane potrzebne do uwierzytelnienia na serwerze poczty)
# nano /etc/postfix/sasl_passwd

[adres.serwera.poczty]:465    NAZWA_UZYTKOWNIKA:HASLO

(Zmieniamy uprawnienia)
# chmod 600 /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd

(Instalujemy bibliotekę)
# apt-get install libsasl2-modules

(Restart Postfixa)
# systemctl restart postfix.service

(Test)
# echo "Subject: Testa"| sendmail -f adres@email.zrodlowy -v adresat@maila

W razie niepowodzenia wysyłki czytamy logi Postfixa i modyfikujemy konfigurację
PVE: NazwaNoda > System > Syslog
PBS: Administration > Services > Postfix (podwójne kliknięcie)s

Proxmox – Usunięcie klastra – usunięcie ostatniego noda z klastra

Poinformowanie naszego ostatniego noda, że ma pracować bez kworum
# pvecm expected 1

Zatrzymanie klastra
# systemctl stop pve-cluster

Uruchomienie noda w trybie lokalnym 
# pmxcfs -l

Usunięcie wszystkich plków konfiguracyjnych klastra
# rm -f /etc/pve/cluster.conf /etc/pve/corosync.conf 
# rm -f /etc/cluster/cluster.conf /etc/corosync/corosync.conf 
# rm /var/lib/pve-cluster/.pmxcfs.lockfile

Zatrzymanie klastra
# systemctl stop pve-cluster

VMWare Player/Worstation. Kernel Module Updater failed

Skrypcik pobiera kompiluje i instaluje moduły jądra do VMWare Player/Worstation

VMWARE_VER=workstation-16.2.4
FOLDER=/tmp/patch-vmware
rm -fdr $FOLDER
mkdir -p $FOLDER
cd $FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $FOLDER/vmware-host-modules
git checkout $VMWARE_VER
git fetch
make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1 

Kernelstub

Kernelstub to narzędzie do automatycznego zarządzania partycją systemową EFI (ESP) systemu operacyjnego.

Ustaw domyślne jądro rozruchowe

Aby zobaczyć, które wersje jądra są zainstalowane i określić dokładne numery wersji, uruchom:

# dpkg --list | grep linux-image*

ii  linux-image-5.18.10-76051810-generic
ii  linux-image-5.19.0-76051900-generic

Teraz zmieniamy domyślną wersję jądra używaną podczas uruchamiania systemu, możesz to zrobić wybierając wersje jądra z zainstalowanych w systemie, podając jako parametry odpowiednie vmlinuz i initrd znajdujące się w katalogu /boot:

# kernelstub -v -k /boot/vmlinuz-5.18.10-76051810-generic -i /boot/initrd.img-5.18.10-76051810-generic

Zimbra – ukrywanie niechcianych nagłówków w mailach

Tworzymy plik

$ su zimbra
$ touch /opt/zimbra/conf/custom_header_checks

Dodajemy go do konfiguracji Zimbry

$ zmprov mcf zimbraMtaHeaderChecks 'pcre:/opt/zimbra/conf/postfix_header_checks  pcre:/opt/zimbra/conf/custom_header_checks'
$ zmprov mcf zimbraMtaBlockedExtensionWarnRecipient FALSE

Sprawdzamy czy nowy plik z regułami testowania nagłówka został pobrany przez Zimbra:

$ postconf | grep header_checks
header_checks = pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/custom_header_checks
...

Dodajemy nagłówki które chcemy ignorować do pliku custom_header_checks

$ nano /opt/zimbra/conf/custom_header_checks

/^Received: from localhost/     IGNORE
/^Received:.*with ESMTPSA/      IGNORE
/^User-Agent:/     IGNORE

Restartujemy MTA

$ zmmtactl restart

Na podstawie: https://wiki.zimbra.com/wiki/How_to_disable_various_headers

Security Onion – Zarządzanie regułami NIDS

Uzyskiwanie listy kategorii reguł zainstalowanych w naszym systemie:

$ cut -d\" -f2 /opt/so/rules/nids/all.rules | grep -v "^$" | grep -v "^#" | awk '{print $1, $2}'|sort |uniq -c |sort -nr

Wyłączanie reguł

Wyłączenie konkretnej kategorii używając wyrażeń regularnych

 $ sudo so-rule disabled add 're:GPL TELNET'

Wyłączenie reguły według wybranego SID reguły

$ sudo so-rule disabled add 222222

Sprawdzenie listy wyłączonych reguł

$ sudo so-rule disabled list

Aby mieć pewność, możemy sprawdzić czy reguła została zakomentowana w /opt/so/rules/nids/all.rules

$ grep 222222 /opt/so/rules/nids/all.rules

Wsystkie te wyjątki zapisywane są do pliku /opt/so/saltstack/local/pillar/minions/<managername>_<role>.sls do sekcji idstools

Progowanie i wyciszanie reguł

Możemy wyciszyć i ustawiać progi wywołania alertów dodając do pliku /opt/so/saltstack/local/pillar/global.sls lub /opt/so/saltstack/local/pillar/minions/<MINION_ID>.sls sekcję thresholding

Progowanie:

thresholding:
  sids:
    8675309:
      - threshold:
          gen_id: 1
          type: threshold
          track: <by_src | by_dst>
          count: 10
          seconds: 10

Wyciszenie:

thresholding:
  sids:
    8675309:
      - suppress:
          gen_id: 1
          track: <by_src | by_dst | by_either>
          ip: <ip | subnet>

Po zmianie w plikach .sls musimy ponownie uruchomić Suriacata.

$ sudo sudo so-suricata-restart <--force>

Na podstawie https://docs.securityonion.net/en/2.3/managing-alerts.html

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