Sprawdzanie czy nasza Samba jest odporna na Zerologon CVE-2020-1472

Jeżeli nasza Samba pracuje jako kontroler domeny możemy sprawdzić czy jest odporna na ten atak.

Rozwiązaniem problemu jest ustawienie w pliku smb.conf

server schannel = yes

Od wersji 4.8 domyślnym zachowaniem Samby było wymuszanie bezpiecznego kanału dla wszystkich klientów, co jest wystarczającą poprawką przeciwko znanym exploitom ataku CVE-2020-1472. We wszystkich wersjach możemy sprawdzić to ustawienie za pomocą testparm.

$ testparm -v -s|grep schannel
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC

    client schannel = Yes
    server schannel = Yes

Jeśli rolą serwera jest kontroler domeny, upewnij się, że parametr „server schannel” jest ustawiony na „yes”, aby mieć pewność, że bezpieczny kanał jest zawsze ustanawiany.

Zwiększenie maksymalnej ilości tasków w systemd

Zmiana limitu zadań w warstwie systemu

Gdy mamy problem z ilością tasków w warstwie systemu. W logach można często zobaczyć podobny komunikat:

cgroup: fork rejected by pids controller in /system.slice/sshd.service 

Możemy sprawdzić maksymalną dostępną ilość wątków dla systemd

$ systemctl show --property DefaultTasksMax
DefaultTasksMax=4915

Aby sprawdzić ile wykorzystano dla konkretnego demona wpisujemy np:

$ systemctl status sshd | grep -i tasks: 
 Tasks: 1 (limit: 4915) # tutaj 1 to używane a limit 4915

Domyślnie DefaultTaskMax jest ustawione na 15% limitu jądra

$ cat /proc/sys/kernel/pid_max

Możemy zmienić tę ilość zmieniając DefaultTasksMax w pliku

$ mcedit /etc/systemd/system.conf
DefaultTasksMax=8192

Następnie restartujemy system lub przeładowujemy konfigurację.

$ systemctl daemon-reload

Przeładowanie konfiguracji nie spowoduje zerwania połączeń.

Możemy też zwiększyć limit dla konkretnego serwisu kontrolowanego przez systemd. Poniższy przykład pokazuje, jak zwiększyć limit sshd do 8192. Utwórz nowy plik przesłaniający za pomocą:

$ systemctl edit sshd.service
[Service]
TasksMax=8192

Gdy teraz sprawdzimy ilość tasków dla serwisu

$ systemctl status shd.service
Tasks: 1 (limit: 8192)

Domyślny TasksMax limit dla użytkownika

Domyślny limit dla użytkowników powinien być dość wysoki, ponieważ sesje użytkowników wymagają więcej zasobów.
Skąd wiadomo, jakich wartości użyć? Różni się to w zależności od obciążeń zasobów systemowych i innych konfiguracji zasobów. Gdy wartość TasksMax jest zbyt niska, zobaczysz w logach komunikaty o błędach np:

 cgroup: fork rejected by pids controller in /user.slice/user-0.slice/session-1.scope 

Aby sprawdzić ilość tasków dla wszystkich użytkowników

$ systemctl status user.slice | grep -i Tasks:

lub dla konkretnego użytkownika

$ systemctl status user-0.slice | grep -i Tasks:

Można ustawić własne maksymalne ustawienia dla użytkowników, tworząc nowy plik, na przykład /etc/systemd/system/user-.slice.d/user-taskmask.conf. Poniższy przykład ustawia wartość domyślną 16284:

$ mkdir /etc/systemd/system/user-.slice.d
$ mcedit /etc/systemd/system/user-.slice.d/user-taskmask.conf

[Slice]
TasksMax=16284

$ systemctl daemon-reload # przeładowanie systemd

# sprawdzenie nowej wartości
$ systemctl show --property TasksMax user-.slice
TasksMax=16284

Edytor 'vi’ podstawowe komendy

Vi pracuje w trybach tryb komend i edycji. Po uruchomieniu komendą 'vi’ edytor znajduje się w trybie komend.

$ vi [nazwa_pliku]

Zmiana trybu pracy

a # wejście w tryb edycji (wstaw tekst przed kursorem)
i # wejście w tryb edycji (wstaw tekst za kursorem)
Esc # wyjście z trybu edycji

Podstawowe komendy

:q # wyjście
:wq # zapis i wyjście
:q!
:w [nazwa_pliku] # zapis pliku pod wpisaną nazwą

yy # kopiowanie linii do bufora
p # wklejanie linii z bufora
dd # usuwanie linii
u # cofnięcie zmian (undo)