Proxmox – Przenoszenie maszyny wirtualnej na inny serwer

Aby przenieś VM na inny serwer Proxmox musimy zrobić kopie VM.

  1. W panelu zarządzania wskazujemy maszynę do przeniesienia i wybieramy Backup, następnie przycisk Backup now. Domyślnie backup wykona się na zasobie dyskowym local.
  2. Za pomocą scp lub ftp przenosimy backup z katalogu /var/lib/vz/dump serwera źródłowego na docelowy.
  3. Na serwerze docelowym wskazujemy Backup który powinien być na zasobie dyskowym local
  4. Wybieramy plik kopi zapasowej który tam przegraliśmy, następnie przycisk Restore.

Fortigate – Zmiana adresu ip w konsoli

Konfiguracja IP statycznego

config system interface
  edit port1
    set mode static
    set ip 192.168.0.100 255.255.255.0
  next
end

Konfiguracja bramy domyślnej

config router static
  edit 1
    set device port1
    set gateway <class_ip>
  next
end

Konfiguracja IP – DHCP

config system interface
  edit port1
    set mode dhcp
  next
end

Tutel przez ssh

Aby ustawić tunel ssh do zdalnego portu lokalnego na Linuxie lub Windowsie w konsoli zestawiamy połączenie ssh poleceniem:

# ssh -L <port>:<host>:<hostport> -N -f <user@host_lub_ip> [-i <sciezka_do_klucza_prywatnego>]

Np. zostanie zestawione połączenie z adresem X.X.X.X i powiązany port 5901 z portem 5600 na naszej maszynie z której zestawiamy tunel

$ ssh -L 5600:localhost:5901 -N -f user@X.X.X.X -i e:\keys\user.pem

W Windowsie uprawnienia do klucza prywatnego powinien posiadać tylko właściciel, można to ustawić za pomocą gui lub terminala

$ icacls .\user.pem /inheritance:r
$ icacls .\user.pem /grant:r "%username%":"(R)"

Linux – Zadania pracujące w tle

Jeżeli na terminalu mamy uruchomione jakieś zadanie np.: edytor vi i chcemy jednocześnie sprawdzić coś, nie zamykając edytora w którym nie zakończyliśmy pracy, możemy otworzyć nowy terminal lub przenieś vi w tło.

Ctrl + z
[1]+  Stopped                 vi

Uruchamiamy dowolne inne zadanie a następnie powracamy do edytora poleceniem:

$ fg

Możemy również uruchomić zadanie, które będzie pracowało w tle, dodając na końcu znak '&’.

$  vi /etc/resolv.conf &
[2] 2982789

Teraz 2 nasze zadania pracują w tle. Wyświetlamy ich listę:

$ jobs
[1]-  Stopped                 vi
[2]+  Stopped                 vi /etc/resolv.conf

Aby przywrócić konkretne zadanie na pierwszy plan wpisujemy fg i idetyfikator podany w wynikach polecenia jobs.

 $ fg 2

Systemctl – polecenia

Pokaż serwisy

$ systemctl --type=service
$ systemctl --type=service --state=active
$ systemctl --type=service --state=running

Wyświetli wszystkie zainstalowane pliki jednostek. Również te nie aktywne.

$ systemctl list-unit-files

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)

Proxmox. Dwuwęzłowy klaster wysokodostępny

Aby uruchomić wysokodostępny klaster na Proxmox potrzebujemy przynamniej trzech węzłów (trzech głosów) w klastrze aby można było osiągnąć kworum. Zawsze optymalna jest nieparzysta ilość węzłów w klastrze. Aby to osiągnąć posiadając tylko dwa węzły (nody) zainstalujemy na jakimś innym urządzeniu w sieci np. Raspberry Pi z Linuxem „corosync-qdevice”, który będzie miał trzeci głos w kworum.

Na obydwu nodach instalujemy qdevice

$ apt install corosync-qdevice

Na naszym fejkowym nodzie:

$ apt install corosync-qnetd
$ apt install corosync-qdevice

Teraz jeszcze dodamy to urządzenie jako trzecie do kworum. Idziemy do naszego autentycznego węzła i uruchamiamy polecenie:

$ pvecm qdevice setup x.x.x.x -f 

x.x.x.x to adres ip naszego fejkowego noda. System poprosi nas o akceptację certyfikatu i hasło root do tego urządzenia.

Teraz gdy uruchomimy:

$ pvecm status

zobaczymy 3 głosy (Total votes) i 3 węzły w klastrze.


Gdy będziemy chcieli dołączyć następny prawdziwy węzeł do klastra, urządzenie Qdevice będzie nam już nie potrzebne i możemy je szybko usunąć.

$ pvecm qdevice remove