Bezpieczeństwo SSH na serwerze www Linux

Kiedy zakładamy serwer www na systemie Linux, jednym z kluczowych aspektów jest zabezpieczenie połączeń SSH. SSH (Secure SHell) to protokół, który pozwala na bezpieczne połączenie z serwerem zdalnym, ale niestety jest także celem dla wielu ataków.

Instalacja nowego serwera

Gdy instalujemy nowy serwer, kluczowym jest utworzenie nowego użytkownika z uprawnieniami sudo oraz dezaktywowanie logowania dla użytkownika root. To ogranicza potencjalne zagrożenia.Copy code

adduser nowy_uzytkownik usermod -aG sudo nowy_uzytkownik

Następnie edytuj konfigurację SSH:

vim /etc/ssh/sshd_config

I zmień:

PermitRootLogin no

Aktualizacja oprogramowania

Przenosząc stronę na nowy serwer, warto najpierw zaktualizować system:

apt update && apt upgrade

Migracja danych

Do migracji danych przyda się rsync, który pozwala na efektywne kopiowanie plików:

rsync -avP uzytkownik@stary-serwer:/sciezka/do/danych /sciezka/na/nowym/serwerze/

Instalacja usług serwerowych

  • FTP: VsFTPd to popularny serwer FTP. Jednak warto ograniczyć użytkowników do ich katalogów domowych:

vim /etc/vsftpd.conf

Ustaw:

chroot_local_user=YES

  • www (Apache lub Nginx):
    • Apache: Ogranicz dostęp do katalogu Directory i wyłącz listowanie katalogów.
    • Nginx: W konfiguracji serwera, zaleca się wyłączenie informacji o wersji:

server_tokens off;

  • Bazy danych (MySQL/MariaDB): Upewnij się, że Twoja baza danych nasłuchuje tylko na lokalnym interfejsie, zmieniając bind-address na 127.0.0.1 w /etc/mysql/my.cnf.
  • PHP-FPM: Dla Nginx, ogranicz wykonywanie skryptów tylko do katalogu
    location ~ \.php$.
  • Redis i Memcached: Zaleca się ustawienie hasła i ograniczenie dostępu tylko do lokalnego hosta.

Problemy i rozwiązania:

  • Wersja PHP:
    • Problem: Niewłaściwa wersja PHP. Rozwiązanie: Użyj menedżera wersji PHP, jak phpbrew, aby łatwo przełączać wersje.
    • Problem: Nieaktualne rozszerzenia. Rozwiązanie: Uaktualnij rozszerzenia za pomocą pecl install nazwa_rozszerzenia.
    • Problem: Niewłaściwa konfiguracja. Rozwiązanie: Optymalizuj konfigurację w /etc/php/7.x/fpm/php.ini.
  • Wersja MariaDB:
    • Problem: Niewłaściwa wersja MariaDB.
      Rozwiązanie: Użyj oficjalnych repozytoriów MariaDB do instalacji odpowiedniej wersji.
    • Problem: Problemy z kodowaniem.
      Rozwiązanie: Ustaw character-set-server i collation-server w my.cnf.
    • Problem: Zbyt wiele połączeń.
      Rozwiązanie: Zwiększ wartość max_connections w my.cnf.

Monitorowanie serwera

Aby skrócić czas awarii, serwer powinien być stale monitorowany. Narzędzia takie jak Nagios czy Zabbix mogą pomóc w szybkim wykryciu problemów.

Kopie zapasowe

Zawsze pamiętaj o regularnych kopiach zapasowych za pomocą narzędzi takich jak tar lub mysqldump.

Podsumowanie

Bezpieczeństwo SSH i optymalizacja serwera Linux to klucze do sukcesu w utrzymaniu serwisów internetowych. Gdy napotkasz trudności, skonsultuj się z doświadczonym administratorem.