Jak zautomatyzować kompresję obrazów za pomocą Bash i ImageMagick

Jak poradziłem sobie z ponad 1 TB zdjęć?

Przy dużych projektach IT, takich jak katalogowanie zdjęć czy archiwizacja danych, zarządzanie przestrzenią dyskową staje się kluczowe. Stanąłem przed wyzwaniem zoptymalizowania ponad 1 TB obrazów, które były rozproszone w licznych katalogach i podkatalogach. Rozwiązaniem okazał się prosty skrypt Bash wykorzystujący narzędzie ImageMagick

  1. Instalacja ImageMagick

Aby rozpocząć, potrzebujesz narzędzia ImageMagick, które jest łatwe do zainstalowania i oferuje zaawansowane funkcje przetwarzania obrazów.

sudo apt-get install imagemagick

Czytaj dalej „Jak zautomatyzować kompresję obrazów za pomocą Bash i ImageMagick”

Jak zainstalować Certbot i zautomatyzować odnowienie certyfikatów Let’s Encrypt przy użyciu hooks

Certyfikaty SSL/TLS są niezbędnym elementem dzisiejszego internetu, zapewniając bezpieczeństwo i prywatność danych przesyłanych między użytkownikami a serwerami. Dzięki Let’s Encrypt oraz narzędziu Certbot, możliwe jest bezpłatne generowanie certyfikatów SSL. W tym wpisie opiszę, jak zainstalować Certbot, wygenerować certyfikat Let’s Encrypt oraz zautomatyzować proces odnowienia za pomocą hooks.

Co to jest Certbot?

Certbot to otwarto źródłowe narzędzie do automatyzacji procesu uzyskiwania i odnawiania certyfikatów SSL od Let’s Encrypt. Certbot sprawia, że wdrożenie certyfikatu na serwerze WWW jest szybkie i proste, a dodatkowo pozwala na automatyczne odnawianie certyfikatów.

Czytaj dalej „Jak zainstalować Certbot i zautomatyzować odnowienie certyfikatów Let’s Encrypt przy użyciu hooks”

Jak streamować kamerę IP na żywo z FFMPEG – Kompletny poradnik do transmisji HLS

FFMPEG to potężne narzędzie umożliwiające przetwarzanie multimediów, w tym transmisje strumieniowe na żywo. W tym wpisie pokaże jak skonfigurować FFMPEG do strumieniowania wideo na żywo z kamery IP i stworzyć transmisję na żywo w formacie HLS (HTTP Live Streaming), który jest szeroko wspierany przez przeglądarki internetowe i odtwarzacze multimedialne.

Przykładowa konfiguracja kamery IP

Zanim przejdziemy do FFMPEG, warto poznać szczegóły techniczne kamery, z której będziemy pobierać obraz. Poniżej przykładowa specyfikacja kamery IP:

  • Rozdzielczość: 4MP (2688×1520)
  • Obiektyw: f = 2.8 ~ 12 mm
  • Kąt widzenia:
    • Poziomy: 33° ~ 105°
    • Pionowy: 18° ~ 54°
    • Przekątny: 38° ~ 125°
  • Zasięg IR: 30m (idealny do monitoringu nocnego)
  • Funkcje dodatkowe: WDR Pro, kompresja H.264
Czytaj dalej „Jak streamować kamerę IP na żywo z FFMPEG – Kompletny poradnik do transmisji HLS”

Programowanie Arduino z CLI


Jako codzienny użytkownik VisualStudio i wtyczki PlatformIO do programowania mikrokontrolerów, niedawno stanąłem przed wyjątkowym wyzwaniem. Musiałem zmodyfikować program Arduino zdalnie, mając do dyspozycji jedynie terminal.

Cały proces instalacji kompilacji i wgrywania poniżej.

Instalacja oprogramowania na serwerze Ubuntu

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

Dodaj folder bin do zmiennej środowiskowej PATH

export PATH=$PATH:$HOME/bin

Inicjalizacja i aktualizacja indeksów

arduino-cli core update-index

Instalacja rdzenia arduino dla UNO

arduino-cli core install arduino:avr
Czytaj dalej „Programowanie Arduino z CLI”

SSH Serwer nie akceptuje klucza ssh-rsa PubkeyAcceptedAlgorithms

Po przekopiowaniu klucza prywatnego wciąż nie mogłem zalogować się do serwera bez hasła, przegląd logów:

 tail -f /var/log/auth.log

wynik:

Apr 18 05:32:45 wyse3040 sshd[5843]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

Komunikat błędu, wskazuje na problem z autoryzacją kluczem publicznym podczas próby połączenia za pomocą SSH. Klucz typu ssh-rsa nie jest akceptowany, ponieważ nie znajduje się na liście akceptowanych algorytmów kluczy publicznych (PubkeyAcceptedAlgorithms) w konfiguracji serwera SSH.

Czytaj dalej „SSH Serwer nie akceptuje klucza ssh-rsa PubkeyAcceptedAlgorithms”

Prosody XMPP Serwer

Prosody to serwer XMPP, który łączy w sobie lekkość i prostotę z potężnymi możliwościami. Wspiera wszystko, co potrzebne do sprawnego komunikowania się – od podstawowych czatów, przez grupowe dyskusje, aż po zaawansowane funkcje bezpieczeństwa. Dodatkowo, dzięki modułowej budowie, możesz łatwo dostosować serwer do swoich potrzeb.

Instalacja Prosody:

apt install prosody

Dodatkowe moduły powiadomienia itd:

apt -y install prosody-modules

Edycja pliku konfiguracyjnego:

vim /etc/prosody/prosody.cfg.lua

Podstawowe parametry do zmiany:

VirtualHost "twoja_domena.com"
ssl = {
  key = "/etc/prosody/certs/twoj_cert.com.key";
  certificate = "/etc/prosody/certs/twoj_cert.com.crt";
}
Czytaj dalej „Prosody XMPP Serwer”

Postfix

Konfiguracja Postfix dla serwera ovh w celu monitorowania bezpieczeństwa serwera.

Zainstaluj:

sudo apt-get install postfix

Po zainstalowaniu Postfixa, musisz go skonfigurować, aby mógł komunikować się z Twoim zewnętrznym serwerem SMTP. Edytuj główny plik konfiguracyjny:

sudo vim /etc/postfix/main.cf

Konfiguracja dla serwera ovh:

relayhost = [smtp.ovh.net]:587
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
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Następnie utwórz plik sasl_passwd w katalogu /etc/postfix/ i dodaj dane uwierzytelniające do serwera SMTP:

sudo vim /etc/postfix/sasl_passwd

Wprowadź następujące dane:

[smtp.ovh.net]:587 twoja@skrzynka.pl:HASŁO

Zabezpiecz plik:

sudo chmod 600 /etc/postfix/sasl_passwd

Przetwórz do formatu db:

sudo postmap /etc/postfix/sasl_passwd

Po zakończeniu konfiguracji, zrestartuj usługę Postfix, aby zastosować zmiany:

sudo systemctl restart postfix

Wysyłanie Testowego E-maila
Możesz użyć narzędzia mail lub sendmail do wysłania testowego e-maila

sudo apt-get install mailutils

Wyślij testowy e-mail:

echo "Treść wiadomości" | mail -s "Wiadomość z serwera Armbian" tomasz@krawaczynski.pl

uwaga Uwaga!
Jeśli masz włączone zabezpieczenia takie jak dwuskładnikowe uwierzytelnianie, możesz potrzebować wygenerować specjalne hasło do aplikacji.
Regularnie sprawdzaj logi Postfixa (/var/log/mail.log), aby upewnić się, że e-maile są poprawnie wysłane.

Wyłączenie PING (ICMP Echo Request) w UFW

Standardowe ustawienia UFW nie obejmują blokady ICMP, aby zablokować PING musisz ręcznie edytować plik konfiguracyjny.

Edytuj plik:

sudo vim /etc/ufw/before.rules

Przed sekcją *filter (na początku pliku) dodaj następujące reguły, aby zablokować ping:

*raw
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p icmp -j DROP
COMMIT

Przeładuj ustawienia:

sudo ufw reload

uwaga Uwaga!

Zablokowanie ping może pomóc w ukryciu urządzenia w sieci, ale nie jest to kompleksowe rozwiązanie bezpieczeństwa. Wciąż ważne jest stosowanie innych metod zabezpieczających.

SSH: no matching host key type found

Błąd, który otrzymałeś wskazuje, że klient SSH na Twoim sprzęcie nie może negocjować typu klucza hosta z serwerem. Problem prawdopodobnie leży w niekompatybilności wersji klienta.
Problem zauważyłem łącząc się moim MacBookiem do Armbian 23.11 postawionym na Orange Pi One.

Zestawienie SSH wymagało dodania ssh-ed25519

ssh -oHostKeyAlgorithms=ssh-ed25519 root@orangepi.krawaczynski.pl -p 22

Po przekopiowaniu klucza prywatnego aby łącząc się bez hasła, dalej Armbian wymagał hasła.

Weryfikacja logów:

root@orangepione:~/.ssh# tail -f /var/log/auth.log

Zaobserwowałem:

2023-12-21T19:25:46.034972+01:00 orangepione sshd[1986]: userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

Algorytm podpisu wymagał aktualizacji w ssh_config

Edytuj -> /etc/ssh/sshd_config

Zmodyfikuj następującą linie:

PubkeyAcceptedAlgorithms +ssh-rsa

To powoduje, że serwer SSH będzie akceptował klucze RSA.


Na koniec wykonaj:

sudo systemctl restart ssh


Jak Efektywnie Korzystać z systemd-journalctl w Ubuntu

server log icon Logi systemowe są niezwykle ważnym aspektem zarządzania systemem operacyjnym. Pozwalają one śledzić działania systemu, diagnozować problemy i monitorować jego wydajność. W systemie Ubuntu, narzędzie systemd-journalctl umożliwia łatwe przeglądanie i analizowanie logów systemowych.

Dzienniki są zapisywane w różnych plikach w katalogu /var/log/. Najważniejsze z nich to syslog, auth.log, kern.log i wiele innych. Zanim zaczniesz korzystać z journalctl, warto zrozumieć, co oznaczają różne rodzaje logów.

Czytaj dalej „Jak Efektywnie Korzystać z systemd-journalctl w Ubuntu”