Automatyzacja Procesu Backupu w Proxmox: Praktyczny Skrypt i Konfiguracja Crontab

W dzisiejszych czasach, gdy dane stają się coraz bardziej wartościowe, odpowiednie zarządzanie backupami jest kluczowe dla bezpieczeństwa systemu informatycznego. W tym artykule przedstawiam skuteczny sposób na automatyzację backupu kluczowych plików konfiguracyjnych w systemach opartych na Proxmox za pomocą prostego skryptu bash oraz konfiguracji Crontab.

Skrypt Bash do Backupu Katalogu /etc

Plik /etc zawiera krytyczne pliki konfiguracyjne systemu, które są niezbędne do prawidłowego funkcjonowania systemu operacyjnego i różnych aplikacji. Utrata lub uszkodzenie tych plików może prowadzić do poważnych problemów. Poniżej prezentuję skuteczny skrypt backup-etc.sh, który pozwala na zautomatyzowane tworzenie kopii zapasowych tego katalogu:

Ten skrypt wykonuje następujące operacje:

  1. Generuje aktualną datę i czas, które są dodawane do nazwy tworzonego archiwum, aby łatwo można było identyfikować poszczególne kopie.
  2. Używa programu tar z kompresją zstd do stworzenia zarchiwizowanej i skompresowanej kopii katalogu /etc.
  3. Usuwa archiwa starsze niż 100 dni z lokalizacji /var/lib/vz/dump/, dzięki czemu zapewniona jest optymalizacja przestrzeni dyskowej.

Dodanie Skryptu do Crontab

Aby automatyzować proces tworzenia backupu, skrypt należy dodać do crontaba. Poniżej znajduje się przykładowa konfiguracja, która uruchamia skrypt codziennie o 2:40 nad ranem:

Przekierowanie wyjścia do /dev/null zapewnia, że operacje są wykonywane cicho bez generowania dodatkowego outputu na standardowe wyjście.

Pobranie Skryptu z Serwisu soban.pl

Skrypt backup-etc.sh jest dostępny do pobrania również z serwisu soban.pl. Możesz go pobrać za pomocą poniższego polecenia wget i od razu zapisać jako plik /root/backup-etc.sh:

Dzięki temu prostemu poleceniu, skrypt zostanie pobrany z serwera i nadany odpowiednie uprawnienia wykonywalności.

Korzyści i Modyfikacje

Skrypt backup-etc.sh jest elastyczny i można go łatwo modyfikować do potrzeb różnych systemów. Jest on domyślnie umieszczony w folderze /var/lib/vz/dump/, który jest standardowym miejscem przechowywania backupów w środowiskach Proxmox. Dzięki temu zarządzanie kopiami zapasowymi jest uproszczone i można je łatwo zintegrować z istniejącymi rozwiązaniami backupowymi.

Trzymając backupy przez 100 dni, zapewniamy równowagę między dostępnością a zarządzaniem przestrzenią dyskową. Stare kopie są automatycznie usuwane, co minimalizuje ryzyko przepełnienia dysku i zmniejsza koszty przechowywania danych.

Podsumowanie

Automatyzacja backupu za pomocą skryptu bash i Crontab to efektywna metoda na zabezpieczenie krytycznych danych systemowych. Skrypt backup-etc.sh zapewnia prostotę, elastyczność i efektywność, co czyni go doskonałym rozwiązaniem dla administratorów systemów Proxmox. Zachęcam do adaptacji i modyfikacji tego skryptu zgodnie z własnymi potrzebami, aby zapewnić jeszcze lepsze zabezpieczenie swojego środowiska IT.

Aktualizowanie Apache Cassandra z wersji 3.1.15 i nowszych do 4.1.x w systemie Ubuntu 20.04.5 LTS: kompleksowy przewodnik

Aktualizacja Apache Cassandra do nowszej wersji to znaczące zadanie, które administratorzy baz danych podejmują, aby ich systemy korzystały z nowych funkcji, ulepszonych środków bezpieczeństwa i poprawionej wydajności. Ten przewodnik dostarcza szczegółowych instrukcji dotyczących aktualizacji Apache Cassandra z wersji 3.1.15 i wyższych do najnowszej wersji 4.1.x, specjalnie na Ubuntu 20.04.5 LTS, ze szczególnym naciskiem na operacje czyszczenia przed aktualizacją, aby efektywnie zarządzać przestrzenią dyskową.

Przygotowanie przed aktualizacją

Kopia zapasowa katalogu konfiguracyjnego:

Przed rozpoczęciem aktualizacji kluczowe jest wykonanie kopii zapasowej katalogu konfiguracyjnego Cassandry. To zabezpieczenie umożliwia szybkie przywrócenie konfiguracji, jeśli podczas procesu aktualizacji pojawią się jakiekolwiek problemy. Wykorzystaj poniższe polecenie, aby stworzyć kopię zapasową, włączając do nazwy folderu bieżącą datę dla łatwej identyfikacji:

Operacje czyszczenia przed aktualizacją

Przygotowanie jest kluczem do płynnej aktualizacji. Zacznij od poleceń konserwacyjnych, aby zagwarantować integralność danych i zoptymalizować wykorzystanie przestrzeni, co jest szczególnie ważne dla systemów z ograniczoną przestrzenią dyskową.

Oczyszczanie danych:

Wykonaj nodetool scrub, aby oczyścić i zreorganizować dane na dysku. Biorąc pod uwagę, że ta operacja może być czasochłonna, zwłaszcza dla baz danych z dużą ilością danych lub ograniczoną przestrzenią dyskową, jest to kluczowy krok dla zdrowego procesu aktualizacji.

Usuwanie snapshota:

Aby dalej zarządzać przestrzenią dyskową, użyj nodetool clearsnapshot do usunięcia istniejących snapshota, zwalniając miejsce na proces aktualizacji. Aby usunąć wszystkie migawki na węźle, po prostu użyj tej metody, jeśli kończy Ci się miejsce:

Czyszczenie danych:

Wykonaj nodetool cleanup, aby usunąć zbędne dane. W scenariuszach, gdzie przestrzeń dyskowa jest na wagę złota, zaleca się wykonanie operacji oczyszczania bez tworzenia migawki, aby oszczędzić miejsce:

Opróżnianie i zatrzymywanie Cassandry

Opróżnienie węzła:

Przed zatrzymaniem usługi Cassandra, upewnij się, że wszystkie dane w pamięci są zapisane na dysku za pomocą nodetool drain.

Zatrzymaj usługę Cassandry:

Zatrzymaj działające usługi Cassandry, aby bezpiecznie przystąpić do aktualizacji:

Aktualizacja Cassandry

Aktualizacja listy źródeł:

Edytuj źródła repozytorium, aby wskazywały na nową wersję Cassandry, dostosowując plik cassandra.sources.list:

Aktualizacja pakietów:

Przy zaktualizowanych źródłach repozytorium, odśwież listę pakietów i zaktualizuj pakiety. Podczas wykonywania polecenia apt upgrade, możesz kontynuować naciskając Enter, ponieważ domyślna opcja to 'N’ (Nie):

Modyfikacja konfiguracji:

Dostosuj konfigurację Cassandry dla wersji 4.1.x, komentując lub usuwając przestarzałe opcje:

Aktualizacja biblioteki JAMM:

Upewnij się, że biblioteka Java Agent Memory Manager (JAMM) jest zaktualizowana, aby poprawić wydajność:

Zapasowa kopia i aktualizacja pliku opcji JVM:

Jest dobrą praktyką tworzenie kopii zapasowych plików konfiguracyjnych przed dokonaniem zmian. Ten krok zmienia nazwę istniejącego pliku jvm-server.options na jvm-server.options.orig jako kopię zapasową. Następnie kopiuje plik jvm.options do jvm-server.options, stosując standardowe opcje JVM dla serwerów Cassandry.

Optymalizacja i weryfikacja

Optymalizacja wykorzystania pamięci:

Po aktualizacji warto ocenić i zoptymalizować wykorzystanie pamięci i przestrzeni wymiany, aby zapewnić efektywne działanie Cassandry:

Uruchom ponownie usługę Cassandry:

Weryfikacja aktualizacji:

Potwierdź sukces aktualizacji, sprawdzając topologię i stan klastra, upewniając się, że wszystkie węzły są funkcjonalne:

Przestrzegając tego szczegółowego przewodnika, administratorzy baz danych mogą skutecznie aktualizować Apache Cassandra do wersji 4.1.x, wykorzystując najnowsze postępy i optymalizacje, które platforma ma do zaoferowania, jednocześnie zapewniając integralność danych i wydajność systemu dzięki starannym przygotowaniom przed aktualizacją.

Optymalizacja i weryfikacja

Po pomyślnej aktualizacji Apache Cassandra do wersji 4.1.x i upewnieniu się, że klaster jest w pełni operacyjny, kluczowe jest przeprowadzenie konserwacji po aktualizacji, aby zoptymalizować wydajność i bezpieczeństwo systemu bazy danych. Ta sekcja przedstawia niezbędne kroki i rozważania, aby utrzymać zdrowe i efektywne środowisko Cassandry.

Monitorowanie wydajności i dzienników

Bezpośrednio po aktualizacji ściśle monitoruj wydajność systemu, w tym użycie procesora, pamięci i I/O dysków, aby zidentyfikować wszelkie nieoczekiwane zachowania lub wąskie gardła. Dodatkowo, przejrzyj dzienniki systemowe Cassandry pod kątem ostrzeżeń lub błędów, które mogą wskazywać na potencjalne problemy wymagające uwagi.

Regulacja i optymalizacja

Na podstawie wglądu w monitorowanie wydajności, możesz potrzebować dostosować ustawienia konfiguracyjne Cassandry dla optymalnej wydajności. Rozważ regulację parametrów związanych z opcjami JVM, kompaktacją i wydajnością odczytu/zapisu, mając na uwadze specyficzne obciążenie i wzorce danych Twojej aplikacji.

Uruchom nodetool upgradesstables

Aby upewnić się, że wszystkie SSTables są zaktualizowane do najnowszego formatu, wykonaj nodetool upgradesstables na każdym węźle w klastrze. Ta operacja przepisze SSTables, które nie są jeszcze w bieżącym formacie, co jest niezbędne do pełnego wykorzystania ulepszeń i funkcji w Cassandra 4.1.x (Sprawdź przestrzeń i w razie potrzeby usuń wszystkie migawki, jak pokazano powyżej.):

Ten proces może być obciążający dla zasobów i powinien być zaplanowany poza godzinami szczytu, aby zminimalizować wpływ na ruch na żywo.

Wdrożenie ulepszeń bezpieczeństwa

Cassandra 4.1.x zawiera kilka ulepszeń bezpieczeństwa. Przejrzyj najnowsze funkcje bezpieczeństwa i najlepsze praktyki, takie jak włączenie szyfrowania klient-serwer, szyfrowanie węzeł-węzeł oraz zaawansowane mechanizmy uwierzytelniania, aby poprawić poziom bezpieczeństwa klastra Cassandry.

Przegląd i aktualizacja strategii tworzenia kopii zapasowych

Z nową wersją na miejscu, ponownie ocen swoje strategie tworzenia kopii zapasowych, aby upewnić się, że są nadal skuteczne i spełniają Twoje cele odzyskiwania. Zweryfikuj, czy Twoje procedury tworzenia kopii zapasowych i przywracania są zgodne z Cassandra 4.1.x oraz rozważ wykorzystanie nowych narzędzi lub funkcji, które mogły zostać wprowadzone w tej wersji dla bardziej efektywnego zarządzania danymi.

Uproszczona instalacja Proxmox VE 8 na Debianie 12 Bookworm

Proxmox VE to zaawansowana platforma do zarządzania serwerami open source, która integruje hypervisor KVM oraz kontenery LXC. Prezentujemy uproszczony proces instalacji Proxmox VE 8 na Debianie 12 Bookworm, oparty na oficjalnym przewodniku instalacji Proxmox VE – Proxmox VE Installation Guide.


Wymagania wstępne:

  • Świeża instalacja Debiana 12 Bookworm.
  • Użytkownik z uprawnieniami sudo.
  • Dostęp do Internetu.

Skrypty instalacyjne

Podzieliliśmy proces instalacji na dwa skrypty. Pierwszy skrypt przygotowuje system i instaluje jądro Proxmox VE. Drugi skrypt kontynuuje proces po restarcie systemu, instalując pozostałe pakiety Proxmox VE.

Pamiętaj, że wszystkie komendy należy wykonać z poziomu użytkownika root, więc:

Pierwsza część: Przygotowanie systemu i instalacja jądra

Rozpocznij od pobrania pierwszego skryptu, który przygotuje Twój system i zainstaluje jądro Proxmox VE:

Uruchom skrypt następującym poleceniem:

Oto zawartość skryptu:

Po uruchomieniu pierwszego skryptu system zostanie ponownie uruchomiony. Na tym etapie mogą pojawić się różne dialogi systemowe, które są częścią standardowych kroków konfiguracji pakietów. Dla tej uproszczonej instalacji można zaakceptować domyślne opcje, naciskając Enter.

Zrzuty ekranu podczas instalacji

The selection of GRUB installation configuration.

Konfiguracja GRUB – dostępna jest nowa wersja pliku konfiguracyjnego bootloadera GRUB. Zaleca się zachowanie aktualnie zainstalowanej wersji lokalnej, chyba że jesteś świadomy zmian. Tak jak w przypadku poprzednich dialogów, naciśnięcie Enter wybierze domyślną akcję.

The selection of postfix installation configuration.

Konfiguracja Postfix – ten dialog pojawia się podczas instalacji pakietu postfix, który jest agentem transportu poczty. Domyślna opcja „Internet Site” jest odpowiednia dla większości przypadków. Naciśnięcie Enter akceptuje tę konfigurację.

Setting the system mail name.

System Mail Name – tutaj określasz FQDN (Fully Qualified Domain Name) dla poczty systemowej. Domyślna wartość jest zazwyczaj odpowiednia, chyba że masz określoną nazwę domeny dla swojego serwera. Ponownie, naciśnięcie Enter kontynuuje z domyślną konfiguracją.

Możliwe problemy napotkane pod koniec instalacji pierwszego skryptu, takie jak:

Jednak druga część skryptu, wykonana po restarcie, rozwiązuje te problemy. Po pomyślnym restarcie maszyny zaloguj się do systemu i kontynuuj z drugim skryptem.

Druga część: Zakończenie instalacji Proxmox VE

Po restarcie systemu kontynuuj pobieranie drugiego skryptu:

Wykonaj drugą część instalacji za pomocą polecenia:

Oto zawartość drugiego skryptu:

Po zakończeniu działania drugiego skryptu, uzyskasz dostęp do interfejsu webowego Proxmox VE za pomocą adresu URL wyświetlonego na końcu skryptu. Zaloguj się używając nazwy użytkownika ‘root’ oraz swojego hasła root.

Podczas ładowania strony, możesz napotkać błąd zaufania certyfikatu – jest to normalne na tym etapie i bezpiecznie możesz zaakceptować, że jest to niebezpieczne i kontynuować dostęp do strony zarządzania Proxmox. Jeśli nie znasz hasła root, możesz je zresetować, wykonując ‘passwd‘ jako root. Powodzenia!

iftop jako dobre narzędzie do monitorowania ruchu sieciowego

iftop to narzędzie wiersza poleceń służące do monitorowania przepustowości sieci w czasie rzeczywistym. Wyświetla na bieżąco aktualizowaną listę połączeń sieciowych wraz z ilością przesłanych danych między nimi. Połączenia prezentowane są w formie tabeli i mogą być sortowane według wykorzystania pasma.

iftop oferuje różne opcje filtrowania, które pozwalają ograniczyć wyświetlane dane do konkretnych hostów, sieci lub portów. Obsługuje IPv6 oraz umożliwia wyświetlanie adresów IP źródłowych i docelowych, numerów portów oraz używanych protokołów.

Narzędzie to jest szczególnie przydatne do monitorowania ruchu w czasie rzeczywistym i identyfikowania usług lub hostów zużywających najwięcej przepustowości. Może również pomóc w wykrywaniu problemów wydajnościowych sieci oraz w diagnozowaniu usterek.

Podsumowując, iftop to lekkie, a jednocześnie bardzo skuteczne narzędzie stanowiące wartościowe uzupełnienie zestawu narzędzi każdego administratora systemów i sieci.

Jednym z najbardziej przydatnych narzędzi do monitorowania sieci, z których korzystam, jest iftop. Staje się szczególnie pomocne, gdy łącze sieciowe jest wysycone. W praktyce może również pomóc wykryć nietypowe wzorce ruchu, w tym ataki typu DoS. W poniższym przykładzie prześlę duży plik na maszynę zdalną z ograniczeniem przepustowości i będę obserwował ruch przy użyciu iftop.

Najpierw instalujemy iftop na maszynie lokalnej (w tym przypadku Kali Linux):

Instalacja iftop w Kali Linux

Dystrybucja nie ma większego znaczenia — iftop jest dostępny w większości repozytoriów Linuksa, w tym w Debianie.

Następnie instalujemy iftop na maszynie zdalnej (Debian Linux):

Instalacja iftop w Debian Linux

Aby rozpocząć monitorowanie ruchu sieciowego, uruchamiamy iftop z parametrami -PpNn:

iftop w trakcie monitorowania ruchu

Ponieważ jestem połączony z maszyną zdalną przez SSH, widzę swoją aktywną sesję SSH na liście połączeń.

Teraz wracamy na maszynę lokalną i tworzymy duży plik:

Po utworzeniu pliku 1GB przesyłamy go na maszynę zdalną z ograniczeniem przepustowości:

Transfer pliku przez scp z ograniczeniem prędkości

Opcja -l 800 ogranicza transfer do 800 Kbit/s. Aby przeliczyć to na KB/s, dzielimy przez 8 — otrzymujemy około 100 KB/s.

Ruch wychodzący widoczny w iftop
Ruch przychodzący widoczny w iftop

W ten sposób możemy obserwować zarówno ruch wychodzący, jak i przychodzący w czasie rzeczywistym. Choć iftop jest prostym narzędziem, zapewnia bardzo dobrą widoczność bieżącej aktywności sieciowej.

W przypadku prób brute-force widoczna będzie duża liczba krótkotrwałych połączeń. Natomiast atak DoS ma na celu wysycenie pasma, co objawia się znacznym ruchem przychodzącym. Jeśli wzrost ruchu jest uzasadniony, można rozważyć ograniczenie prędkości połączeń — pomocne będzie np. iptables.

skanowanie ssl i szyfrów nmap

Nmap – skanowanie SSL/TLS i szyfrów na Debianie 11

W tym przykładzie pracujemy na systemie Debian 11 (Bullseye). Najpierw sprawdźmy wersję systemu:

Nmap to jedno z najpotężniejszych narzędzi do skanowania sieci w systemach Linux. Umożliwia skanowanie otwartych portów, wykrywanie uruchomionych usług, identyfikację wersji oprogramowania oraz analizę obsługiwanych protokołów SSL/TLS i pakietów szyfrów.

Instalacja na Debianie 11 jest bardzo prosta:

Po instalacji możemy przeskanować zdalny serwer HTTPS. Przykład:

Opcja -sV włącza wykrywanie wersji usług, natomiast --script ssl-enum-ciphers sprawdza obsługiwane wersje TLS oraz dostępne szyfry. Dzięki temu możemy zweryfikować:

  • które wersje TLS są aktywne (TLS 1.0, 1.1, 1.2, 1.3),
  • czy serwer obsługuje słabe szyfry, np. 3DES,
  • czy występują potencjalne podatności kryptograficzne.

Nmap działa wolniej niż narzędzia takie jak sslscan, ale dostarcza bardzo szczegółowych informacji, co jest szczególnie przydatne podczas testowania infrastruktury wewnętrznej.

TLS 1.0:

Skan TLS 1.0 przy użyciu Nmap

TLS 1.1:

Skan TLS 1.1 przy użyciu Nmap

TLS 1.2:

Obsługiwane szyfry TLS 1.2 wykryte przez Nmap

Najważniejsze podczas analizy konfiguracji SSL/TLS jest sprawdzenie, czy serwer nie używa przestarzałych lub podatnych szyfrów.

Jeżeli w wynikach zobaczysz komunikat:
„64-bit block cipher 3DES vulnerable to SWEET32 attack”
oznacza to, że serwer obsługuje szyfr 3DES, który jest podatny na atak SWEET32. W środowisku produkcyjnym takie szyfry powinny zostać wyłączone.

Podczas testowania publicznych stron internetowych można również skorzystać z narzędzia online:
https://www.ssllabs.com/ssltest/

Jednak w przypadku serwerów wewnętrznych, środowisk testowych lub infrastruktury prywatnej, użycie Nmap bezpośrednio z systemu Debian jest często najlepszym rozwiązaniem. Regularne skanowanie SSL/TLS pozwala utrzymać wysoki poziom bezpieczeństwa i eliminuje przestarzałe protokoły oraz słabe mechanizmy szyfrowania.