Przejdź do głównej zawartości

Nie marnuj zasobów swojego serwera: blokuj niechciane boty za pomocą Nginx

· 3 min aby przeczytać
Customer Care Engineer

blokowanie-niechcianych-botów-za-pomocą-nginx

Boty wyszukiwarek (crawlers) to specjalne programy, które indeksują strony w Internecie. Są one potrzebne wyszukiwarkom do znajdowania, indeksowania i wyświetlania stron w wynikach wyszukiwania. Jednak nie wszystkie boty są pożyteczne!

Niektóre niechciane boty mogą:

  • Zbierać dane bez twojej zgody.
  • Nadmiernie obciążać serwer, powodując spowolnienia.
  • Szukać luk w zabezpieczeniach twojej witryny.

Jeśli chcesz ochronić swoją witrynę przed takimi botami, czas skonfigurować Nginx! Pokażemy ci, jak szybko i skutecznie je zablokować, wykorzystując odpowiednie ustawienia.


Po co konfigurować Nginx, jeśli istnieje plik robots.txt?

Plik robots.txt to narzędzie umożliwiające kontrolowanie zachowania botów wyszukiwarek. Pozwala określić, które strony nie powinny być przez nie indeksowane. Korzystanie z tego pliku jest bardzo proste, wystarczy w katalogu głównym witryny utworzyć plik typu:

User-agent: BadBot  

Disallow: /  

Jest jednak istotny problem: zawartość pliku robots.txt ma jedynie charakter zalecenia, a nie obowiązującej reguły. Rzetelne boty respektują ten plik, ale wiele z nich po prostu go ignoruje.

Konfiguracja z Nginx, w przeciwieństwie do robots.txt, pozwala fizycznie zablokować dostęp niechcianym botom, co gwarantuje rezultaty w 100% przypadków. 


Jak Nginx blokuje niechciane boty: użycie odpowiedzi 444

W przeciwieństwie do pliku robots.txt, który jedynie sugeruje botom, jak się zachowywać, Nginx umożliwia fizyczne blokowanie ich dostępu. Jednym ze sposobów na osiągnięcie tego celu jest wykorzystanie specjalnej odpowiedzi serwera o kodzie 444.

Kod odpowiedzi 444 — to wewnętrzny mechanizm Nginx, który zamyka połączenie z klientem bez wysyłania żadnej odpowiedzi. Jest to skuteczna metoda ignorowania niechcianych zapytań i minimalizowania obciążenia serwera.


Konfiguracja blokady

Krok 1: Jak rozpoznać niechciane boty?

Niechciane boty można zidentyfikować na podstawie ich User-Agent, czyli parametru przesyłanego przez każdego klienta odwiedzającego stronę. Dla przykładu, niektóre z nich wyglądają tak:

    AhrefsBot     SemrushBot     MJ12bot

Aby znaleźć podejrzane User-Agent w logach dostępowych Nginx (jeśli twoja witryna korzysta z PHP-FPM), możesz użyć komendy:

sudo grep -i bot /var/log/nginx/access.log

W przypadku logów Apache (jeśli witryna używa modułu Apache lub FastCGI jako interpretera PHP), użyj:

  • Dla Ubuntu/Debian:
sudo grep -i bot /var/log/apache2/access.log
  • Dla CentOS/AlmaLinux/RockyLinux:
sudo grep -i bot /var/log/httpd/access.log

Jeśli korzystasz z panelu sterowania, takiego jak FASTPANEL, każda witryna będzie miała swój własny oddzielny plik logów. Można je analizować osobno lub wszystkie naraz za pomocą polecenia typu:

  • Jeśli witryna korzysta z modułu Apache lub FastCGI jako obsługi PHP:
sudo cat /var/www/*/data/logs/*-backend.access.log |  grep -i bot | tail -500
  • Jeśli twoja strona korzysta z PHP-FPM:
sudo cat /var/www/*/data/logs/*-frontend.access.log |  grep -i bot | tail -500

Powyższe polecenia wyświetlą 500 ostatnich zapytań do wszystkich twoich stron, gdzie parametr User-Agent zawiera słowo bot. Przykładowy wpis z logów może wyglądać tak:

IP - [03/Nov/2022:10:25:52 +0300] "GET link HTTP/1.0" 301 811 "-" "Mozilla/5.0 (compatible; DotBot/1.2; +https://opensiteexplorer.org/dotbot; [email protected])"

lub

IP - [24/Oct/2022:17:32:37 +0300] "GET link HTTP/1.0" 404 469 "-" "Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)"

User-Agent bota znajduje się pomiędzy fragmentami “compatible;” i “/numer.wersji“ w nawiasach. Tak więc w powyższych przykładach User-agent to „BLEXBot” i „DotBot”.

Przeanalizuj uzyskane informacje i zapisz User-agent najbardziej aktywnych botów w celu dalszych ustawień blokowania. 

Krok 2: Tworzenie pliku blokady botów

  1. Połącz się z serwerem przez SSH.
  2. Przed przystąpieniem do pracy upewnij się, że w bieżącej konfiguracji Nginx nie ma żadnych błędów:
nginx -t

Jeśli wszystko jest w porządku, otrzymasz odpowiedź:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jeśli w danych wyjściowych występują błędy, zapoznaj się z ich zawartością i popraw je w pliku, na który wskazują.

  1. Utwórz osobny plik z listą botów do zablokowania:
sudo nano /etc/nginx/conf.d/block_bots.conf

Dodaj następujący kod do pliku:


    map $http_user_agent $block_bot {

        default 0;

        ~*AhrefsBot 1;

        ~*SemrushBot 1;

        ~*MJ12bot 1;

    }



    server {

        if ($block_bot) {

            return 444;

        }
    }

Tutaj tworzymy mapę, która określa, który bot powinien zostać zablokowany.

Analogicznie, wymień User-agent botów, które chcesz zablokować. Każdy bot powinien być wymieniony w nowym wierszu, a na końcu wiersza należy podać znak; jako separator.

Po zakończeniu tworzenia listy naciśnij skrót „Ctrl + O”, aby zapisać plik, a następnie „Ctrl + X”, aby wyjść z edytora nano. 

Krok 3: Zastosowanie zmian

Po wprowadzeniu zmian w konfiguracji należy sprawdzić poprawność konfiguracji Nginx, aby upewnić się, że nie zawiera błędów składniowych:

sudo nginx -t

Jeśli wszystko jest w porządku, otrzymasz odpowiedź:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jeśli w danych wyjściowych występują błędy, zapoznaj się z ich zawartością i popraw je w pliku, na który wskazują.

Następnie załaduj ponownie konfigurację Nginx, aby zastosować wprowadzone zmiany:

sudo systemctl reload nginx

Jeśli w przyszłości będziesz chciał dodać nowych botów do pliku block_bots.conf,musisz każdorazowo powtórzyć powyższy krok. 


Podsumowanie

Teraz wiesz, jak łatwo zablokować niechciane boty na swoim serwerze za pomocą Nginx!  Monitoruj logi i w razie potrzeby dodawaj nowe boty do pliku block_bots.conf.

Pamiętaj, aby blokować tylko szkodliwe boty, aby nie zaszkodzić indeksowaniu swojej witryny w użytecznych wyszukiwarkach, takich jak Google czy Bing.

Jak skonfigurować logrotate, aby automatycznie archiwizować logi i oszczędzać miejsce na serwerze

· 2 min aby przeczytać
Customer Care Engineer

Zarządzanie logami jest kluczowym aspektem administracji serwerem. Logi, które nie są regularnie rotowane, mogą szybko zapełnić dysk, spowalniając działanie serwera i powodując nieprzewidywalne błędy. W tym artykule wyjaśnimy, jak skonfigurować i używać logrotate do automatycznego czyszczenia i rotacji logów na serwerze.


Czym jest logrotate i dlaczego warto go używać?

Logrotate to narzędzie przeznaczone do automatycznego zarządzania logami. Pomaga w:

  • Czyszczeniu starych logów — automatycznie usuwa lub archiwizuje przestarzałe logi.
  • Oszczędzaniu miejsca na dysku — kompresuje i usuwa niepotrzebne logi.

Rotacja logów pozwala uniknąć sytuacji, w której logi gromadzą się, prowadząc do przepełnienia dysku, co może spowodować awarie systemu i utratę danych. Logrotate automatycznie archiwizuje stare logi i zwalnia miejsce na nowe dane.


Jak działa logrotate?

Kiedy logrotate jest aktywowany, automatycznie wykonuje następujące kroki:

  1. Rotacja logów — jest to proces, w którym stare logi są przemianowywane i zapisywane, a w ich miejsce tworzone są nowe pliki.
  2. Kompresja — stare logi mogą zostać skompresowane do formatu .gz, aby zaoszczędzić miejsce.
  3. Usuwanie — przestarzałe logi mogą zostać usunięte, jeśli nie są już potrzebne.

Przykład: plik dziennika o nazwie access.log może zostać przemianowany na access.log.1, następnie skompresowany do access.log.1.gz, a po upływie określonego czasu przechowywania, usunięty.


Jak skonfigurować logrotate?

1. Instalacja logrotate

Logrotate jest zwykle domyślnie instalowany na większości systemów Linux. Aby sprawdzić czy faktycznie już go masz, wpisz:

sudo logrotate --version

Jeśli logrotate nie jest zainstalowany, użyj menedżera pakietów.

  • Dla Debiana/Ubuntu użyj:
sudo apt update && sudo apt install logrotate
  • Dla CentOS/RockyLinux/AlmaLinux:
sudo yum install logrotate

2. Konfiguracja logrotate

Konfiguracja logrotate jest zwykle przechowywana w /etc/logrotate.conf. Plik ten określa ogólne parametry dla wszystkich logów na serwerze. Aby skonfigurować rotację poszczególnych logów, można utworzyć oddzielne pliki konfiguracyjne dla różnych serwisów w folderze /etc/logrotate.d/.

Przykład standardowej konfiguracji dla Nginx:

/var/log/nginx/*.log {
daily          # Logs are rotated daily
missingok      # Do not display an error if the log is missing
rotate 7       # Keep 7 archived files
compress       # Compress old logs
delaycompress  # Delay compression until the next rotation
notifempty     # Do not rotate empty files
create 0640 www-data adm  # Create new logs with specific permissions
}

3. Ważne parametry konfiguracyjne

  • daily/weekly/monthly — jak często log będzie rotowany (codziennie, co tydzień lub co miesiąc).
  • rotate [N] — liczba archiwów logów, które mają być przechowywane.
  • compress — kompresja archiwów logów (zwykle w formacie .gz).
  • missingok — brak logów nie powoduje pokazania błędu.
  • notifempty — nie rotuj pustych plików.
  • create — stwórz nowe logi z uprawnieniami.

4. Uruchamianie logrotate

Logrotate jest zwykle uruchamiany automatycznie za pomocą cron. Można jednak uruchomić go ręcznie, jeśli trzeba sprawdzić konfigurację lub wykonać rotację teraz:

sudo logrotate -f /etc/logrotate.conf

5. Sprawdzanie, czy logrotate działa

Aby upewnić się, że logrotate działa poprawnie, sprawdź ostatnie wpisy w logu:

sudo journalctl -u logrotate -n 10

Logi zajmują dużo miejsca na serwerze. Jak to naprawić?

· 2 min aby przeczytać
Customer Care Engineer
informacja

Większość logów jest przechowywana w katalogu /var/log, ale mogą również występować w innych miejscach. Zasady opisane poniżej dotyczą wszystkich plików *.log bez względu na ich lokalizację. 

Logi to pliki, które przechowują informacje o zdarzeniach na serwerze: aktywności aplikacji i systemu operacyjnego, różnych błędach, żądaniach użytkowników do stron itp. W miarę upływu czasu logi mogą zajmować dużo miejsca, szczególnie przy dużym ruchu na stronie lub błędach oprogramowania. 

Ważną cechą logów jest to, że w zdecydowanej większości przypadków ich usunięcie może prowadzić do nieprawidłowego działania programu, który je zapisuje, czy to serwera WWW, czy samego systemu operacyjnego. 

Dodatkowo, pliki te często zawierają istotne informacje diagnostyczne, które mogą pomóc w wykrywaniu awarii oprogramowania serwera i zapobiec poważniejszym problemom. Dlatego należy obchodzić się z nimi ostrożnie i świadomie.


Jak znaleźć logi, które można wyczyścić

Użyj ncdu do znalezienia największych logów na serwerze. Jeśli jakiś log wydaje się niepokojąco duży, sprawdź jego ostatnie wpisy:

sudo tail /path/to/log

Jeśli nie ma żadnych anomalii, sprawdź jego początek, aby upewnić się, że log stał się tak duży po prostu z upływem czasu (zwróć uwagę na datę utworzenia pierwszych wpisów):

sudo head /path/to/log

Następnie można przejść do czyszczenia.

informacja

Jeśli nie masz pewności, dlaczego plik dziennika jest tak duży, zapisz jego kopię i skontaktuj się z działem wsparcia technicznego dostawcy hostingu w celu uzyskania wyjaśnień.


Jak bezpiecznie wyczyścić logi

Użyj polecenia truncate, aby wyczyścić zawartość pliku bez jego usuwania:

sudo truncate -s 0 /var/log/nginx/error.log

Osobno należy zwrócić uwagę na pliki, które są logami pomimo braku rozszerzenia *.log:

  • /var/log/btmp
  • /var/log/syslog
  • /var/log/messeges
  • /var/log/secure
  • /var/log/maillog

Wszystkie te pliki można również bezpiecznie wyczyścić za pomocą polecenia truncate.

Wyjątkiem jest specjalny log, który znajduje się w katalogu /var/log/journal. O pracy z nim dowiesz się więcej z tego artykułu.   


Jak zapobiec zwiększaniu się rozmiaru logów

Analizując logi, mogłeś zauważyć, że niektóre z nich mają nazwy w formacie:

  • syslog.1
  • yoursite.access.log.1

Pojawiają się one, gdy stosowany jest proces rotacji logów, na przykład za pomocą programu logrotate. Podczas rotacji stare pliki mogą zostać usunięte lub skompresowane, co pozwala zaoszczędzić miejsce na dysku.

Więcej informacji na temat konfiguracji tego mechanizmu znajdziesz tutaj.

Jak znaleźć i usunąć pliki zajmujące dużo miejsca na serwerze

· 2 min aby przeczytać
Customer Care Engineer

Brakuje miejsca na serwerze? Może to prowadzić do awarii stron internetowych i baz danych. Aby zwolnić przestrzeń, należy znaleźć i usunąć pliki zajmujące najwięcej miejsca. W tym artykule wyjaśnimy, jak zrobić to szybko za pomocą narzędzia ncdu oraz jak bezpiecznie czyścić logi.


Krok 1: Instalacja i uruchomienie ncdu

ncdu — wygodne narzędzie do analizy wykorzystania przestrzeni na dysku. Wyświetla wszystkie foldery i pliki posortowane według rozmiaru w czytelnym interfejsie tekstowym.

Aby korzystać z tego programu, należy połączyć się z serwerem przez SSH.  

Instalacja

  • Debian/Ubuntu:
sudo apt update && sudo apt install ncdu
  • CentOS/AlmaLinux/RockyLinux:
sudo yum install ncdu

Uruchomienie analizy dysku

  • Aby przeskanować katalog główny /, uruchom polecenie:
sudo ncdu -x /

Opcja -x w ncdu ogranicza skanowanie do pojedynczego systemu plików, pomijając zamontowane wirtualne katalogi (np./proc, /dev, /sys) oraz inne woluminy podłączone przez oddzielne punkty montowania (na przykład dyski sieciowe lub zewnętrzne).

  • Aby przeskanować konkretny katalog:
sudo ncdu /path/to/directory

Przykładowo, aby przeskanować tylko katalog z logami, uruchom polecenie:

sudo ncdu /var/log

Krok 2: Analiza i usuwanie niepotrzebnych plików

Po uruchomieniu ncdu zobaczysz listę plików i folderów posortowanych według rozmiaru. Nawigacja jest prosta:

  • Strzałki ↑/↓ — poruszanie się po liście.
  • Klawisz Enter — wejście do katalogu.
  • Klawisz D — usunięcie wybranego pliku lub folderu.

Ncdu inctruction 1

ważne

Zachowaj ostrożność przy usuwaniu plików systemowych. Usuwaj tylko te pliki, których przeznaczenie znasz.

Kiedy usuwasz pliki w Linuksie, są one usuwane bezpowrotnie! Można je przywrócić wyłącznie z kopii zapasowej, o ile taka istnieje.

Bezpieczniej będzie sporządzić listę plików i katalogów zajmujących dużo miejsca (zaznaczyć je w ncdu i skopiować do notatnika na lokalnym komputerze), a następnie przeanalizować każdy z osobna i usunąć je z wiersza poleceń.

Aby usunąć plik, uruchom polecenie:

sudo rm -f /path/to/file

A żeby usunąć katalog:

sudo rm -rf /path/to/directory

Oto lista głównych katalogów, które zwykle zajmują dużo miejsca:

  1. /var/www/ - katalog z twoimi stronami

Najwięcej miejsca często zajmują katalogi upload i cache, które zawierają pliki przesłane przez użytkowników oraz pliki pamięci podręcznej stron internetowych. Na przykład:

/var/www/user/data/www/yoursite.com/upload/

Pliki w tych katalogach można bezpiecznie usuwać. Jako administrator swojej strony najlepiej wiesz, które pliki w katalogu upload są istotne, a które można usunąć bez obaw. Sam katalog lepiej zostawić, aby uniknąć zbędnych błędów. 

  1. /var/lib/mysql/

Katalog z bazami danych twoich stron. 

ważne

Nie usuwaj niczego z tego katalogu!

Jeśli zajmuje za dużo miejsca, skontaktuj się z dostawcą usług hostingowych w celu dokładniejszej analizy. 

  1. /var/log/

Katalog z logami działania oprogramowania na twoim serwerze. Ponieważ logi bywają specyficzne, szczegółowe informacje znajdziesz w dedykowanym artykule.


Krok 3: Finalizacja i weryfikacja

Po usunięciu niepotrzebnych plików sprawdź, ile miejsca udało się zwolnić, za pomocą polecenia:

df -h

Jak zmienić hasło MariaDB dla użytkowników root i zwykłych

· 3 min aby przeczytać
Customer Care Engineer

Zapomniałeś hasła root MariaDB? Bez niego nie będziesz mógł zarządzać użytkownikami, bazami danych ani wykonywać kluczowych konfiguracji. W tym artykule dowiesz się, jak szybko zresetować hasło użytkownika root w MariaDB, a także jak zresetować hasło dla zwykłych użytkowników. 

W przypadku MySQL zapoznaj się z naszym oddzielnym przewodnikiem.

informacja

Root to główny administrator bazy danych. Posiada pełny dostęp do wszystkich baz, tabel, użytkowników i ustawień. Utrata tego hasła może uniemożliwić zarządzanie bazą danych, w tym wprowadzanie kluczowych zmian i wykonywanie ważnych poleceń. 

Wszystkie operacje będą wykonywane w wierszu poleceń za pośrednictwem SSH. Więcej informacji na temat łączenia się z serwerem za pomocą tego protokołu można znaleźć w tym artykule.

Zanim przejdziesz do resetowania hasła, sprawdź plik: /root/.my.cnf Często znajduje się w nim aktualne hasło root do MariaDB

Połączenie można sprawdzić za pomocą polecenia:

mysql -u root -p 

Następnie należy podać hasło z pliku .my.cnf

Jeśli to hasło nie działa, skorzystaj z instrukcji poniżej. 


Resetowanie hasła

informacja

W dalszej części większość poleceń będzie używać mysql, a nie mariadb, do komunikacji z serwerem MariaDB. Dzieje się tak, ponieważ w niektórych systemach operacyjnych, takich jak dystrybucje oparte na RHEL (RockyLinux, AlmaLinux itp.), polecenie mariadb może być niedostępne. Zamiast niego używa się mysql aby zachować kompatybilność z MySQL.

Korzystanie z polecenia mysql gwarantuje uniwersalność instrukcji, niezależnie od używanej dystrybucji lub implementacji serwera bazy danych.

Krok 1: Zatrzymaj MariaDB

Aby zresetować hasło, najpierw należy zatrzymać serwer MariaDB. Wpisz odpowiednią komendę:

systemctl stop mariadb

Krok 2: Uruchom serwer w trybie bezpiecznym

  • Dla Debian i Ubuntu:

Upewnij się, że katalog używany przez MariaDB istnieje i ma konkretnego właściciela:

mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/

Uruchom serwer MariaDB bez sprawdzania uprawnień:

mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Jeśli serwer MariaDB uruchomi się poprawnie, zobaczysz podobny komunikat:

2024-11-28T23:50:19.298141Z mysqld_safe Starting mariadb daemon with databases from /var/lib/mysql

Aby wrócić do wiersza poleceń, użyj kombinacji klawiszy „Ctrl + c”. 

  • Dla CentOS/RockyLinux/AlmaLinux:

Uruchom serwer MariaDB bez sprawdzania uprawnień:

mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &

Aby wrócić do wiersza poleceń, użyj kombinacji klawiszy „Ctrl + c”. 

Krok 3: Połącz się z MariaDB

  • Dla Debian i Ubuntu:
mysql --socket=/var/run/mysqld/mysqld.sock
  • Dla CentOS/RockyLinux/AlmaLinux:
mysql --socket=/var/lib/mysql/mysql.sock

Krok 4: Zresetuj hasło

Wykonaj kolejno następujące polecenia:

FLUSH PRIVILEGES;

Dla użytkownika lokalnego:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword';

Następnie:

FLUSH PRIVILEGES;

Zastąp NewPassword swoim nowym hasłem.

informacja

'user'@'localhost' — użytkownik lokalny, który łączy się przez socket lub localhost. 'user'@'%' — użytkownik sieciowy, który może łączyć się z dowolnego adresu IP.

Hasła dla tych użytkowników mogą być takie same lub różne. Jeśli użytkownik sieciowy nie istnieje, polecenie dla @'%’ wywoła błąd.

Następnie wyjdź z MariaDB za pomocą polecenia exit lub skrótu „Ctrl + d”. 

Krok 5: Uruchom ponownie MariaDB

Zatrzymaj serwer MariaDB:

  • Dla Debian i Ubuntu:
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p

Następnie podaj wcześniej ustawione hasło roota. 

  • Dla CentOS/RockyLinux/AlmaLinux:
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p

Następnie podaj wcześniej ustawione hasło roota. 

Uruchom MariaDB w normalnym trybie:

systemctl start mariadb

Jak zresetować hasło dla zwykłych użytkowników

Jeśli zapomniałeś hasła użytkownika innego niż root, postępuj według poniższych instrukcji:

  1. Połącz się z serwerem MariaDB jako root:
mysql -u root -p

Wprowadź swoje hasło root MariaDB.

  1. Wykonaj polecenie, aby zmienić hasło:

Dla użytkownika lokalnego:

ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewUserPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'username'@'%' IDENTIFIED BY 'NewUserPassword';

Następnie:

FLUSH PRIVILEGES;

Zastąp username nazwą użytkownika, a NewUserPassword nowym hasłem.

Następnie wyjdź z MariaDB za pomocą polecenia exit lub skrótu „Ctrl + D”. 

W razie potrzeby można wyświetlić listę wszystkich użytkowników za pomocą następującego zapytania:

SELECT User, Host FROM mysql.user;

Jak połączyć się z MariaDB lokalnie bez podawania hasła

Aby uniknąć ręcznego wpisywania hasła przy każdym połączeniu z MariaDB, możesz dodać je do pliku /root/.my.cnf

Otwórz plik w edytorze tekstowym:

nano /root/.my.cnf

I dodaj następujące linie:

[client]

user = root
password = YourRootPassword

Zamiast YourRootPassword należy podać prawidłowe hasło użytkownika root.

Następnie zapisz plik za pomocą skrótu klawiaturowego „Ctrl + O” i zamknij edytor tekstu za pomocą „Ctrl + X”. 

Ze względów bezpieczeństwa ustaw bardziej restrykcyjne uprawnienia dostępu do pliku .my.cnf:

chmod 600 /root/.my.cnf

Po tym wystarczy użyć następującego polecenia, aby się połączyć:

mysql -u root

Jak zmienić hasło MySQL dla użytkowników root i zwykłych

· 3 min aby przeczytać
Customer Care Engineer

Zapomniałeś hasła root MySQL? Nie martw się — zdarza się to nawet najbardziej doświadczonym administratorom. W tym artykule podpowiemy, jak zresetować hasło root MySQL dla różnych wersji: MySQL 5.7 oraz MySQL 8.0+. Dodatkowo wyjaśnimy, jak zmienić hasło dla zwykłego użytkownika bazy danych.

W przypadku MariaDB zapoznaj się z naszym oddzielnym przewodnikiem.

informacja

Root to główny administrator bazy danych. Posiada pełny dostęp do wszystkich baz, tabel, użytkowników i ustawień. Utrata tego hasła może uniemożliwić zarządzanie bazą danych, w tym wprowadzanie kluczowych zmian i wykonywanie ważnych poleceń. 

Wszystkie operacje będą wykonywane w wierszu poleceń za pośrednictwem SSH. Więcej informacji na temat łączenia się z serwerem za pomocą tego protokołu można znaleźć w tym artykule

Zanim przejdziesz do resetowania hasła, sprawdź plik: /root/.my.cnf Często znajduje się w nim aktualne hasło root do MySQL

Połączenie można sprawdzić za pomocą polecenia:

mysql -u root -p 

Następnie należy podać hasło z pliku .my.cnf

Jeśli to hasło nie działa, skorzystaj z instrukcji poniżej. 


Resetowanie hasła

Krok 1: Zatrzymaj MySQL

Aby zresetować hasło, najpierw zatrzymaj serwer MySQL. Wpisz odpowiednią komendę:

  • Dla Debian i Ubuntu:
systemctl stop mysql
  • Dla CentOS/RockyLinux/AlmaLinux:
systemctl stop mysqld

Krok 2: Uruchom serwer w trybie bezpiecznym

  • Dla Debian i Ubuntu:

Upewnij się, że katalog używany przez MySQL istnieje i ma konkretnego właściciela:

mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/

Następnie uruchom MySQL bez sprawdzania uprawnień:

mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Jeśli MySQL uruchomi się poprawnie, zobaczysz podobny komunikat:

2024-11-28T23:50:19.298141Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Aby wrócić do wiersza poleceń, użyj kombinacji klawiszy „Ctrl + C”.

  • Dla CentOS/RockyLinux/AlmaLinux:
sudo -u mysql mysqld --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Krok 3: Połącz się z MySQL

 mysql --socket=/var/run/mysqld/mysqld.sock

Krok 4: Zresetuj hasło

W MySQL 5.7 wykonaj kolejno następujące polecenia:

FLUSH PRIVILEGES;

Dla użytkownika lokalnego:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword';

Następnie:

FLUSH PRIVILEGES;

Zastąp NewPassword swoim nowym hasłem.

informacja

'user'@'localhost' — użytkownik lokalny, który łączy się przez socket lub localhost. 'user'@'%' — użytkownik sieciowy, który może łączyć się z dowolnego adresu IP.

Hasła dla tych użytkowników mogą być takie same lub różne. Jeśli użytkownik sieciowy nie istnieje, polecenie dla @'%’ wywoła błąd.

Następnie wyjdź z MySQL za pomocą polecenia exit lub skrótu „Ctrl + D”. 

  • W MySQL 8.0+ uruchom kolejno następujące polecenia:
FLUSH PRIVILEGES;

Dla użytkownika lokalnego:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

Następnie:

FLUSH PRIVILEGES;

Zastąp NewPassword swoim nowym hasłem.

Następnie wyjdź z MySQL za pomocą polecenia exit lub skrótu „Ctrl + D”. 

Krok 5: Uruchom ponownie MySQL

Zatrzymaj MySQL:

mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p

Następnie podaj wcześniej ustawione hasło roota. 

Uruchom MySQL w normalnym trybie:

  • Dla Debian i Ubuntu:
systemctl start mysql
  • Dla CentOS/RockyLinux/AlmaLinux:
systemctl start mysqld

Jak zresetować hasło dla zwykłych użytkowników

Jeśli zapomniałeś hasła użytkownika innego niż root, postępuj według poniższych instrukcji:

  1. Połącz się z serwerem MySQL jako root:
mysql -u root -p

Wprowadź swoje hasło root MySQL.

  1. Wykonaj polecenie, aby zmienić hasło:
  • MySQL 5.7:

Dla użytkownika lokalnego:

ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewUserPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'username'@'%' IDENTIFIED BY 'NewUserPassword';

Następnie:

FLUSH PRIVILEGES;

Zastąp username nazwą użytkownika, a NewUserPassword nowym hasłem.

Następnie wyjdź z MySQL za pomocą polecenia exit lub skrótu „Ctrl + D”. 

  • MySQL 8.0+:

Dla użytkownika lokalnego:

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

Dla użytkownika sieciowego (jeśli taki istnieje):

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

Zastąp username nazwą użytkownika, a NewUserPassword nowym hasłem.

Następnie wyjdź z MySQL za pomocą polecenia exit lub skrótu „Ctrl + D”. 

W razie potrzeby można wyświetlić listę wszystkich użytkowników za pomocą następującego zapytania:

SELECT User, Host FROM mysql.user;

Jak połączyć się z MySQL lokalnie bez podawania hasła

Aby nie wprowadzać hasła za każdym razem ręcznie podczas łączenia się z MySQL z wiersza poleceń na swoim serwerze, możesz dodać je do pliku /root/.my.cnf

Otwórz plik w edytorze tekstowym:

nano /root/.my.cnf

I dodaj następujące linie:

[client]

user = root
password = YourRootPassword

Zamiast YourRootPassword należy podać prawidłowe hasło użytkownika root.

Następnie zapisz plik za pomocą skrótu klawiaturowego „Ctrl + O” i zamknij edytor tekstu za pomocą „Ctrl + X”. 

Ze względów bezpieczeństwa ustaw bardziej restrykcyjne uprawnienia dostępu do pliku .my.cnf:

chmod 600 /root/.my.cnf

Po tym wystarczy użyć następującego polecenia, aby się połączyć:

mysql -u root

Praca z archiwami TAR w wierszu poleceń systemu Linux

· 2 min aby przeczytać
Customer Care Engineer

Format tar jest bardzo popularny w środowisku Linux i de facto stanowi standard dla archiwizacji danych. Sam w sobie nie kompresuje plików, ale doskonale współpracuje z narzędziami do kompresji, takimi jak gzip czy bzip2. Z tego względu większość archiwów utworzonych za pomocą tego formatu, które znajdziemy w internecie, będzie miała postać nazwa_archiwum.tar.gz.

Jeśli pracujesz również z archiwami ZIP lub RAR, zapoznaj się z naszymi poradnikami dotyczącymi obsługi tych plików w wierszu poleceń systemu Linux.

Przygotowanie do pracy

Zazwyczaj narzędzie tar jest instalowane domyślnie. Aby się upewnić, czy jest dostępne, wykonaj poniższą komendę instalacji tego archiwizatora:

Dla Debian i Ubuntu:

sudo apt update && sudo apt install tar

Dla CentOS oraz Rocky/Alma Linux:

sudo yum makecache && sudo yum install tar

Tworzenie archiwum tar

Bez kompresji:

tar -cvf archive.tar /file/path

Gdzie:

  • -c — tworzy nowe archiwum
  • -v — wyświetla szczegóły w terminalu (przydatne, jeśli chcesz zobaczyć, co się dzieje)
  • -f — określa nazwę pliku archiwum

Z dodatkową kompresją (na przykład gzip):

tar -czvf archive.tar.gz /file/path
  • -z — dodaje kompresję z pomocą gzip.

W większości przypadków warto skorzystać z komendy z dodatkową kompresją, ponieważ pozwala to zaoszczędzić miejsce na dysku oraz skraca czas przesyłania plików na serwer lub z serwera.

Rozpakowywanie archiwum tar

Dla gzip:

tar -xzvf archive.tar.gz

Dla bzip2:

tar -xjvf archive.tar.bz2

Dla archiwum bez kompresji:

tar -xvf archive.tar

Inne przydatne opcje

  • -t — przeglądanie zawartości archiwum bez jego rozpakowywania:
tar -tvf archive.tar

Po uruchomieniu wyświetla w konsoli listę plików zawartych w archiwum, bez jego rozpakowywania.

  • -u — aktualizuje pliki wewnątrz archiwum:
tar -uf archive.tar /path/to/new_files

Przy aktualizacji pliku w archiwum należy pamiętać o kilku szczegółach:

  • Jeśli pliku nowy_plik.txt nie ma jeszcze w archiwum, zostanie on dodany.
  • Jeśli w archiwum jest już plik o tej samej nazwie, ale jego zawartość na dysku została zmieniona, plik ten zostanie zastąpiony nową wersją.

Polecenie to można również wykorzystać dla wielu plików jednocześnie, na przykład:

tar -uf archive.tar /path/to/new_files/*.txt

Komenda ta zaktualizuje wszystkie pliki z rozszerzeniem .txt, które są już w archiwum, i doda nowe, jeśli jeszcze nie zostały uwzględnione.

Praca z archiwami RAR w wierszu poleceń systemu Linux

· 2 min aby przeczytać
Customer Care Engineer

Format RAR jest ceniony za wysoki poziom kompresji, wsparcie dla odzyskiwania danych oraz solidną ochronę przed modyfikacjami, co sprawiło, że stał się bardzo popularny w systemie Windows. Choć nie jest aż tak często stosowany przez użytkowników i administratorów systemu Linux, czasami może zajść potrzeba pracy z tym formatem na serwerze. Poniżej przedstawiamy podstawowe komendy i opcje umożliwiające sprawną pracę z archiwami RAR w wierszu poleceń.

Jeśli pracujesz również z archiwami ZIP lub TAR, zapoznaj się z naszymi poradnikami dotyczącymi obsługi tych plików w wierszu poleceń systemu Linux.

Przygotowanie do pracy

Przed rozpoczęciem upewnij się, że masz zainstalowane odpowiednie pakiety do obsługi archiwów rar.

Dla Debian i Ubuntu:

sudo apt update && sudo apt install rar unrar

Dla CentOS oraz Rocky/Alma Linux:

# Dodaj dodatkowe repozytorium EPEL, ponieważ rar nie jest dostępny w tych systemowych
sudo yum install epel-release
sudo yum makecache && sudo yum install rar unrar

Tworzenie archiwum RAR

Aby utworzyć archiwum, użyj polecenia:

rar a archive.rar /directory/path/

Na przykład:

rar a backup.rar /var/www/html/

Rozpakowywanie archiwum rar

Aby rozpakować archiwum w bieżącym katalogu, użyj komendy:

unrar x archive.rar

Jeśli chcesz rozpakować archiwum do innego katalogu, podaj jego ścieżkę na końcu polecenia. Na przykład:

unrar x backup.rar /home/user/backup/

Inne przydatne opcje

  • -l — wyświetla listę plików wewnątrz archiwum bez jego rozpakowywania:
unrar l archive.rar
  • -u — aktualizuje pliki wewnątrz archiwum:
rar u archive.rar /path/to/new_files

Przy aktualizacji pliku w archiwum należy pamiętać o następujących szczegółach:

  • Jeśli pliku nowy_plik.txt nie ma jeszcze w archiwum, zostanie on dodany.
  • Jeśli w archiwum jest już plik o tej samej nazwie, ale jego zawartość na dysku została zmieniona, plik ten zostanie zastąpiony nową wersją.

Polecenie to można również wykorzystać dla wielu plików jednocześnie, na przykład:

rar u archive.rar *.txt

Komenda ta zaktualizuje wszystkie pliki z rozszerzeniem .txt, które są już w archiwum, i doda nowe, jeśli jeszcze nie zostały uwzględnione.

  • -p — ustawia hasło dla archiwum:
rar a -p archive.rar /file/path

Praca z archiwami ZIP w wierszu poleceń systemu Linux

· 1 min aby przeczytać
Customer Care Engineer

ZIP to jeden z najczęściej używanych formatów do kompresji plików. Na komputerach osobistych można z łatwością zarządzać takimi archiwami za pomocą intuicyjnego interfejsu graficznego, jednak na serwerach opcja ta zazwyczaj nie jest dostępna. Dlatego warto poznać podstawowe polecenia, które umożliwiają wykonywanie typowych operacji w wierszu poleceń.

Jeśli pracujesz również z archiwami RAR lub TAR, zapoznaj się z naszymi poradnikami dotyczącymi obsługi tych plików w wierszu poleceń systemu Linux.

Przygotowanie do pracy

Przed rozpoczęciem należy upewnić się, że masz zainstalowane pakiety do pracy z archiwami zip.

Dla Debian i Ubuntu:

sudo apt update && sudo apt install zip unzip

Dla CentOS oraz Rocky/Alma Linux:

sudo yum makecache && sudo yum install zip unzip

Tworzenie archiwum ZIP

Aby utworzyć archiwum, użyj polecenia:

zip -r archive_name.zip /directory/path/

Opcja -r służy do rekurencyjnego dodawania wszystkich plików i podkatalogów do archiwum.

Rozpakowywanie archiwum ZIP

unzip archive.zip

Domyślnie zawartość zostanie rozpakowana do bieżącego katalogu. Jeśli chcesz rozpakować archiwum w inne miejsce, skorzystaj z opcji -d.

Na przykład:

unzip backup.zip -d /home/user/backup/

Inne przydatne opcje

  • -l — wyświetla listę plików wewnątrz archiwum bez jego rozpakowywania:
unzip -l archive.zip
  • -u — aktualizuje plik wewnątrz archiwum:
zip -u archive.zip new_file.txt

Przy aktualizacji pliku w archiwum należy pamiętać o kilku szczegółach:

  • Jeśli pliku nowy_plik.txt nie ma jeszcze w archiwum, zostanie on dodany.
  • Jeśli w archiwum jest już plik o tej samej nazwie, ale jego zawartość na dysku została zmieniona, plik ten zostanie zastąpiony nową wersją.

Polecenie to można również wykorzystać dla wielu plików jednocześnie, na przykład:

zip -u archive.zip *.txt

Komenda ta zaktualizuje wszystkie pliki z rozszerzeniem .txt, które są już w archiwum, i doda nowe, jeśli jeszcze nie zostały uwzględnione.

  • -e — ustawia hasło dla archiwum:
zip -e archive.zip /file/path

Jak korzystać z serwera

· 3 min aby przeczytać
Customer Care Engineer

Jak korzystać z serwera FTP?

Podczas pracy z serwerami FTP i SFTP ważne jest, aby zrozumieć, jak prawidłowo łączyć się i chronić swoje dane. W tym przewodniku przyjrzymy się instrukcjom krok po kroku, jak skonfigurować połączenia z serwerami FTP i SFTP, a także dowiemy się, jak używać kluczy SSH w celu zwiększenia bezpieczeństwa połączenia.

Korzystanie ze specjalnego klienta FTP jest najlepszym sposobem na uproszczenie życia podczas pracy z FTP. Przyjazny dla użytkownika interfejs pozwoli na wysyłanie i odbieranie danych z komputera na serwer. Najpopularniejszymi klientami FTP są:

  • WinSCP dla Windows

  • Transmit

  • Cyberduck

  • Filezilla

Rozważmy połączenie z serwerem za pomocą Filezilla w systemie Windows.

  1. Otwórz menedżera witryn (File – Site manager). Kliknij przycisk „New site”.

27-08-ftp-sftp-1.png

  1. Wprowadź nazwę połączenia i dane logowania.

  2. Wybierz tryb szyfrowania „Use explicit FTP over TLS if available”.

  3. Kliknij „Connect”.

  4. Teraz możesz pracować z serwerem FTP i przesłać na niego pierwsze dane.

Jak korzystać z serwera SFTP?

  1. Otwórz menedżera witryn (File – Site manager). Kliknij przycisk „New site".**

27-08-ftp-sftp-1.png

  1. Wprowadź nazwę połączenia i dane dostępu.

  2. Wybierz protokół SFTP na karcie Ogólne.

  3. Kliknij „Connect”.

  4. Teraz możesz pracować z serwerem SFTP i przesłać na niego pierwsze dane.

Zalecamy, aby do pracy zawsze wybierać protokół SFTP. Wszystkie funkcje FTP są tutaj dostępne, a SSH chroni dane.

Jak używać kluczy SSH z SFTP?

Klucz SSH to bezpieczny sposób łączenia się z serwerem. Łączenie się przez SSH za pomocą klucza eliminuje możliwość złamania hasła.

Klucze SSH umożliwiają uwierzytelnianie bez hasła. Klucze to zestaw setek różnych znaków, w tym wielkich i małych liter alfabetu łacińskiego oraz znaków specjalnych. Całkowita długość wynosi często od 1024 do 4096 bitów. Uwierzytelnianie wymaga dwóch kluczy SSH, jednego publicznego i jednego prywatnego.

  • Klucze publiczne są dostępne dla każdego. Służą do szyfrowania danych podczas uzyskiwania dostępu do serwera. Mówiąc najprościej, jest to zestaw znaków, których używamy do szyfrowania informacji.

  • Klucz prywatny jest kluczem do zamka. Odszyfrowuje on dane. Musisz być z nim o wiele bardziej ostrożny: przechowuj go bezpiecznie i nie udostępniaj osobom trzecim.

W menu Edytuj przejdź do Ustawień. W sekcji Connection › SFTP można dodać istniejący klucz prywatny SSH. W Menedżerze witryn wybierz Interaktywny typ logowania, aby połączyć się z witryną SFTP.

27-08-ftp-sftp-2.png

Jak wygenerować klucze SSH?

Klucze publiczne i prywatne można tworzyć za pomocą PuTTYgen. PuTTY przechowuje klucze we własnym formacie w plikach .ppk. Aby utworzyć nową parę kluczy, wybierz typ klucza do wygenerowania z dołu ekranu. Najpopularniejszym typem jest RSA z 2048 bitami.

27-08-ftp-sftp-3.png

Następnie kliknij Generate i zacznij poruszać myszą w oknie. Putty wykorzystuje ruchy myszy do uzyskania losowości. Po zakończeniu klucz publiczny powinien pojawić się w oknie. Zapisz klucz jako plik .ppk.

27-08-ftp-sftp-4.png

Instalowanie klucza publicznego

Dostęp do konta jest przyznawany poprzez dodanie klucza publicznego do pliku ~/.ssh/authorized_keys na serwerze.

Aby dodać klucz publiczny, zaloguj się do serwera, edytuj plik authorized_keys, a następnie wytnij i wklej klucz publiczny do pliku authorized_keys. Zapisz plik. Dodaj plik klucza prywatnego (.ppk) do PuTTY. Następnie sprawdź, czy logowanie działa.

Zaleca się okresową regenerację i zmianę wszystkich kluczy SSH.

Wnioski

Korzystając z klientów FTP i postępując zgodnie z naszymi instrukcjami, można łatwo zarządzać plikami na serwerze. Nie zapominaj o znaczeniu kluczy SSH dla ochrony swoich danych, regularnie je aktualizuj i przestrzegaj zasad bezpieczeństwa, aby zminimalizować ryzyko podczas pracy ze zdalnymi serwerami.