15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
30.10.2024
4 +1

Protokół SFTP: Kompletny przewodnik po bezpiecznym przesyłaniu plików na Twoim VPS

Przesyłanie plików na serwer i z serwera to jedno z najbardziej rutynowych zadań w hostingu i administracji systemami — a jednocześnie jedno z najczęściej zaniedbywanych pod względem bezpieczeństwa. Starsze protokoły, takie jak FTP, przesyłają dane uwierzytelniające i dane w postaci zwykłego tekstu, pozostawiając serwer całkowicie narażonym na przechwycenie. SFTP (SSH File Transfer Protocol) całkowicie eliminuje to ryzyko, kierując każdy bajt danych przez szyfrowany tunel SSH.

Ten przewodnik obejmuje wszystko, co musisz wiedzieć o SFTP: jak działa od środka, jak skonfigurować go na Linux VPS, jak połączyć się za pomocą narzędzi wiersza poleceń i klientów GUI oraz dlaczego powinien być Twoją domyślną metodą dla wszystkich operacji przesyłania plików.

Czym jest SFTP i czym różni się od FTP?

SFTP to skrót od SSH File Transfer Protocol. Pomimo podobnej nazwy, nie jest to proste rozszerzenie tradycyjnego protokołu FTP — jest to całkowicie oddzielny protokół zbudowany od podstaw do działania przez SSH (Secure Shell). To rozróżnienie ma ogromne znaczenie w praktyce.

FunkcjaFTPSFTP
SzyfrowanieBrak (zwykły tekst)Pełne szyfrowanie SSH
Wymagane porty20 + 21 (+ zakres pasywny)22 (pojedynczy port)
UwierzytelnianieTylko nazwa użytkownika/hasłoHasło, klucz SSH, 2FA
Zgodność z zaporą sieciowąZłożonaProsta
Integralność danychNiegwarantowanaWeryfikowana kryptograficznie

Tradycyjny FTP wysyła nazwę użytkownika, hasło i wszystkie dane plików w postaci zwykłego tekstu. Każdy, kto przechwytuje pakiety w tym samym segmencie sieci, może natychmiast odczytać Twoje dane uwierzytelniające. SFTP szyfruje całą sesję — uwierzytelnianie, polecenia i dane plików — przy użyciu tej samej sprawdzonej kryptografii, która zabezpiecza połączenia SSH na całym świecie.

Jak działa SFTP: Przegląd techniczny

Gdy inicjujesz sesję SFTP, następuje poniższa sekwencja:

  1. Nawiązywane jest połączenie TCP z portem 22 na zdalnym serwerze.
  2. Przeprowadzane jest uzgadnianie SSH: serwer przedstawia swój klucz hosta, a klient weryfikuje go względem znanych hostów, aby zapobiec atakom typu man-in-the-middle.
  3. Wykonywane jest uwierzytelnianie — za pomocą hasła lub pary kluczy publiczny/prywatny.
  4. Podsystem SFTP jest wywoływany w ramach uwierzytelnionej sesji SSH.
  5. Operacje na plikach (przesyłanie, pobieranie, zmiana nazwy, usuwanie, listowanie katalogów) są wykonywane przez szyfrowany kanał.

Cała sesja, od uwierzytelnienia do ostatniego bajtu przesłanych danych, jest chroniona przez szyfrowanie symetryczne wynegocjowane podczas uzgadniania SSH. Żadne dane uwierzytelniające ani zawartość plików nigdy nie są przesyłane w postaci zwykłego tekstu.

Krok 1: Instalacja i konfiguracja serwera OpenSSH

Większość nowoczesnych dystrybucji Linux — w tym Ubuntu i Debian — jest dostarczana z OpenSSH albo preinstalowanym, albo łatwo dostępnym w repozytoriach pakietów. Jeśli uruchamiasz nową instancję VPS Hosting, sprawdź, czy serwer OpenSSH jest zainstalowany i uruchomiony.

Instalacja OpenSSH na Ubuntu/Debian

sudo apt update && sudo apt install openssh-server -y

Weryfikacja, czy usługa działa

sudo systemctl status ssh

W wyniku powinieneś zobaczyć active (running). Jeśli usługa nie działa, uruchom ją i włącz:

sudo systemctl start ssh
sudo systemctl enable ssh

Sprawdzenie, czy SFTP jest włączone

OpenSSH obsługuje SFTP poprzez wbudowany podsystem. Potwierdź, że jest skonfigurowany w /etc/ssh/sshd_config:

grep -i sftp /etc/ssh/sshd_config

Powinieneś zobaczyć linię podobną do:

Subsystem sftp /usr/lib/openssh/sftp-server

Jeśli ta linia jest nieobecna lub zakomentowana, dodaj ją i uruchom ponownie demona SSH:

sudo systemctl restart ssh

Krok 2: Tworzenie dedykowanego użytkownika SFTP (najlepsza praktyka)

Zamiast używać konta root lub ogólnego konta administratora do przesyłania plików, utwórz dedykowanego użytkownika SFTP z ograniczonym dostępem. Ogranicza to zasięg potencjalnych szkód w przypadku naruszenia danych uwierzytelniających.

Tworzenie użytkownika i ustawianie katalogu domowego

sudo adduser sftpuser
sudo mkdir -p /var/sftp/uploads
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
sudo chown sftpuser:sftpuser /var/sftp/uploads

Konfiguracja więzienia Chroot w sshd_config

Otwórz /etc/ssh/sshd_config i dodaj następujący blok na końcu pliku:

Match User sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes
    ChrootDirectory /var/sftp
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

Ta konfiguracja zamyka użytkownika w /var/sftp, uniemożliwiając mu nawigację do innych części systemu plików. Uruchom ponownie SSH, aby zastosować zmiany:

sudo systemctl restart ssh

Krok 3: Konfiguracja uwierzytelniania kluczem SSH dla SFTP

Uwierzytelnianie hasłem jest wygodne, ale mniej bezpieczne niż uwierzytelnianie kluczem. W środowiskach produkcyjnych pary kluczy SSH są zdecydowanie zalecane.

Generowanie pary kluczy SSH na lokalnym komputerze

Na Linux lub macOS:

ssh-keygen -t ed25519 -C "sftp-key-$(date +%Y%m%d)"

Na Windows (PowerShell lub Windows Terminal):

ssh-keygen -t ed25519

Generuje to dwa pliki: klucz prywatny (zachowaj go w tajemnicy, nigdy go nie udostępniaj) i klucz publiczny (kończący się na .pub).

Kopiowanie klucza publicznego na serwer

ssh-copy-id -i ~/.ssh/id_ed25519.pub sftpuser@your-server-ip

Alternatywnie, ręcznie dołącz klucz publiczny do ~/.ssh/authorized_keys na serwerze.

Wyłączenie uwierzytelniania hasłem (opcjonalne, ale zalecane)

Po potwierdzeniu działania uwierzytelniania kluczem, wyłącz logowanie hasłem dla użytkownika SFTP w sshd_config, zmieniając PasswordAuthentication yes na PasswordAuthentication no w bloku Match User.

Krok 4: Łączenie się z SFTP z wiersza poleceń

Klient SFTP wiersza poleceń jest dostępny natywnie na Linux i macOS oraz jest dołączony do OpenSSH w Windows 10/11.

Podstawowa składnia połączenia

sftp username@hostname_or_ip

Przykład:

sftp sftpuser@203.0.113.45

Łączenie się przez niestandardowy port

Jeśli demon SSH nasłuchuje na porcie innym niż 22 (powszechny środek wzmacniania bezpieczeństwa):

sftp -P 2222 sftpuser@203.0.113.45

Łączenie się z kluczem SSH

sftp -i ~/.ssh/id_ed25519 sftpuser@203.0.113.45

Krok 5: Podstawowe polecenia SFTP

Po połączeniu działasz w interaktywnej powłoce SFTP. Poniższe polecenia obejmują zdecydowaną większość codziennych zadań zarządzania plikami.

Nawigacja

# List files on the remote server
ls
ls -la

# Change remote directory
cd /var/sftp/uploads

# Show current remote directory
pwd

# List files on your local machine
lls

# Change local directory
lcd ~/Downloads

# Show current local directory
lpwd

Przesyłanie plików

# Upload a single file
put localfile.txt

# Upload a file to a specific remote path
put localfile.txt /var/sftp/uploads/localfile.txt

# Upload an entire directory recursively
put -r /local/directory /var/sftp/uploads/

Pobieranie plików

# Download a single file to the current local directory
get remotefile.txt

# Download a file to a specific local path
get remotefile.txt ~/Downloads/remotefile.txt

# Download an entire directory recursively
get -r /var/sftp/uploads/ ~/local-backup/

Zarządzanie plikami i katalogami

# Create a remote directory
mkdir new-folder

# Remove a remote file
rm old-file.txt

# Remove a remote directory
rmdir empty-folder

# Rename or move a file
rename old-name.txt new-name.txt

Zakończenie sesji

exit
# or
bye
# or press Ctrl+D

Krok 6: Łączenie się za pomocą klientów GUI

SFTP z wiersza poleceń jest potężny, ale klienci graficzni są często bardziej praktyczni do zarządzania dużą liczbą plików lub dla członków zespołu, którzy są mniej zaznajomieni z terminalem.

FileZilla (Windows, macOS, Linux)

FileZilla jest jednym z najszerzej stosowanych bezpłatnych klientów SFTP.

  1. Otwórz FileZilla i przejdź do Plik → Menedżer witryn.
  2. Kliknij Nowa witryna i nadaj jej opisową nazwę.
  3. Ustaw Protokół na SFTP – SSH File Transfer Protocol.
  4. Wprowadź swój Host (adres IP lub domenę) i Port (domyślnie: 22).
  5. Ustaw Typ logowania na Key file dla uwierzytelniania kluczem SSH lub Normal dla uwierzytelniania hasłem.
  6. Wprowadź swoją Nazwę użytkownika i wskaż plik klucza prywatnego, jeśli używasz uwierzytelniania kluczem.
  7. Kliknij Połącz.

Możesz teraz przeciągać i upuszczać pliki między lokalnym komputerem (lewy panel) a zdalnym serwerem (prawy panel).

WinSCP (Windows)

WinSCP to popularna alternatywa tylko dla Windows z interfejsem dwupanelowym i silną integracją z formatami kluczy PuTTY.

  1. Otwórz WinSCP i utwórz Nową sesję.
  2. Ustaw Protokół pliku na SFTP.
  3. Wprowadź Nazwę hosta, Numer portu, Nazwę użytkownika i Hasło (lub skonfiguruj klucz SSH w Zaawansowane → SSH → Uwierzytelnianie).
  4. Kliknij Zaloguj.

Cyberduck (macOS, Windows)

Cyberduck to przejrzysty, nowoczesny klient obsługujący SFTP obok S3, FTP i innych protokołów. Połącz się, klikając Otwórz połączenie, wybierając SFTP (SSH File Transfer Protocol) i wprowadzając dane uwierzytelniające serwera.

Automatyzacja transferów SFTP za pomocą skryptów

W przypadku powtarzających się zadań, takich jak tworzenie kopii zapasowych, zbieranie logów lub potoki wdrożeniowe, możesz zautomatyzować transfery SFTP za pomocą skryptów powłoki w połączeniu z uwierzytelnianiem kluczem SSH (bez monitu o hasło).

Przykład: Automatyczny skrypt kopii zapasowej

#!/bin/bash

# Configuration
REMOTE_USER="sftpuser"
REMOTE_HOST="203.0.113.45"
REMOTE_DIR="/var/sftp/uploads/backups"
LOCAL_BACKUP_DIR="/var/backups/myapp"
SSH_KEY="/root/.ssh/id_ed25519"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_${DATE}.tar.gz"

# Create the backup archive
tar -czf "/tmp/${BACKUP_FILE}" "${LOCAL_BACKUP_DIR}"

# Upload via SFTP
sftp -i "${SSH_KEY}" "${REMOTE_USER}@${REMOTE_HOST}" <<EOF
cd ${REMOTE_DIR}
put /tmp/${BACKUP_FILE}
bye
EOF

# Clean up local temp file
rm "/tmp/${BACKUP_FILE}"

echo "Backup ${BACKUP_FILE} uploaded successfully."

Zaplanuj to za pomocą zadania cron do uruchamiania co noc:

crontab -e
# Add:
0 2 * * * /usr/local/bin/backup-sftp.sh >> /var/log/sftp-backup.log 2>&1

Wzmacnianie bezpieczeństwa SFTP w środowisku produkcyjnym

Uruchomienie SFTP na serwerze produkcyjnym wymaga czegoś więcej niż tylko domyślnej konfiguracji. Zastosuj te środki wzmacniające bezpieczeństwo, aby znacznie zmniejszyć powierzchnię ataku.

1. Zmiana domyślnego portu SSH

Zmiana portu 22 na niestandardowy (np. 2222 lub 22222) drastycznie zmniejsza liczbę automatycznych prób ataków brute-force:

# In /etc/ssh/sshd_config
Port 2222

2. Ograniczenie dostępu SFTP według adresu IP

Jeśli Twój zespół łączy się ze znanych adresów IP, ogranicz dostęp SSH/SFTP za pomocą UFW lub /etc/hosts.allow:

sudo ufw allow from 203.0.113.10 to any port 22
sudo ufw deny 22

3. Wdrożenie Fail2Ban

Fail2Ban monitoruje logi uwierzytelniania i automatycznie blokuje adresy IP po konfigurowalnej liczbie nieudanych prób logowania:

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

4. Wyłączenie logowania root przez SSH

# In /etc/ssh/sshd_config
PermitRootLogin no

5. Używanie silnych algorytmów kluczy SSH

Preferuj klucze ed25519 lub ecdsa zamiast starszego algorytmu rsa. Podczas generowania kluczy zawsze używaj co najmniej 4096 bitów dla RSA:

ssh-keygen -t ed25519
# or
ssh-keygen -t rsa -b 4096

6. Ustawianie odpowiednich uprawnień do plików

Upewnij się, że pliki konfiguracyjne SSH mają prawidłowe uprawnienia, aby zapobiec nieautoryzowanym modyfikacjom:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519

Kluczowe zalety SFTP nad alternatywnymi protokołami

Bezpieczeństwo

SFTP szyfruje zarówno kanał sterowania, jak i kanał danych przy użyciu SSH. Nie ma scenariusza, w którym dane uwierzytelniające lub zawartość plików byłyby przesyłane w postaci zwykłego tekstu. Sprawia to, że jest kategorycznie bezpieczniejszy niż FTP i prostszy w zabezpieczeniu niż FTPS (FTP przez SSL/TLS), który wymaga zarządzania certyfikatami i wielu portów.

Przyjazność dla zapory sieciowej i NAT

FTP w trybie pasywnym wymaga otwarcia zakresu portów danych w zaporze sieciowej, co stanowi znaczne obciążenie administracyjne i szerszą powierzchnię ataku. SFTP używa jednego portu (domyślnie 22), co sprawia, że reguły zapory sieciowej są proste i przewidywalne.

Ujednolicone uwierzytelnianie z SSH

Ponieważ SFTP działa przez SSH, dziedziczy pełny ekosystem uwierzytelniania: uwierzytelnianie hasłem, uwierzytelnianie kluczem publicznym, uwierzytelnianie oparte na certyfikatach i uwierzytelnianie dwuskładnikowe. Jeśli już zarządzasz dostępem SSH do swojego serwera, SFTP nie wymaga żadnej dodatkowej infrastruktury uwierzytelniania.

Integralność danych

Warstwa transportowa SSH zawiera kody uwierzytelniania wiadomości (MAC), które weryfikują integralność każdego pakietu. Oznacza to, że nie tylko Twoje dane są szyfrowane podczas przesyłania, ale wszelkie manipulacje lub uszkodzenia są wykrywane, a transfer jest przerywany.

Obsługa wznawiania

W przeciwieństwie do podstawowego FTP, SFTP obsługuje wznawianie przerwanych transferów, co jest kluczowe podczas przesyłania dużych plików przez zawodne połączenia.

SFTP w kontekście Twojego stosu hostingowego

SFTP to nie tylko samodzielne narzędzie — integruje się naturalnie z szerszym przepływem pracy hostingowej i wdrożeniowej. Oto najczęstsze przypadki użycia:

Zarządzanie WordPress i CMS: Przesyłaj motywy, wtyczki i pliki multimedialne bezpośrednio na serwer bez polegania na panelu sterowania hostingu. Jest to szczególnie przydatne podczas pracy z VPS z cPanel lub innymi środowiskami panelu sterowania, gdzie potrzebujesz bezpośredniego dostępu do systemu plików.

Wdrażanie aplikacji: Przesyłaj skompilowane zasoby, pliki konfiguracyjne lub całe katalogi aplikacji na serwer jako część potoku wdrożeniowego.

Kopie zapasowe bazy danych i konfiguracji: Automatyzuj transfer zrzutów bazy danych i kopii zapasowych konfiguracji do zdalnej lokalizacji przechowywania, używając opisanego powyżej podejścia skryptowego.

Zbieranie logów: Pobieraj logi serwera na lokalny komputer do analizy bez przyznawania szerokiego dostępu SSH analitykom.

Publikowanie stron statycznych: Wdrażaj statyczne strony internetowe generowane przez narzędzia takie jak Hugo, Jekyll lub Next.js bezpośrednio do katalogu głównego serwera WWW.

Jeśli zarządzasz wieloma projektami lub potrzebujesz izolowanych środowisk dla różnych klientów, plan VPS Hosting zapewnia dostęp root i elastyczność do skonfigurowania SFTP dokładnie tak, jak wymaga tego Twój przepływ pracy — w tym więzienia chroot, uprawnienia dla poszczególnych użytkowników i niestandardowe konfiguracje portów.

Dla zespołów zarządzających dużą liczbą domen i stron internetowych, połączenie dostępu SFTP z Shared Web Hosting lub dedykowanym środowiskiem zapewnia, że transfery plików pozostają szybkie, szyfrowane i audytowalne.

Rozwiązywanie typowych problemów z SFTP

„Odmowa połączenia” na porcie 22

  • Sprawdź, czy usługa SSH działa: sudo systemctl status ssh
  • Sprawdź, czy port 22 jest otwarty w zaporze sieciowej: sudo ufw status
  • Potwierdź, że łączysz się z prawidłowym adresem IP

„Odmowa dostępu” podczas przesyłania pliku

  • Sprawdź, czy katalog docelowy istnieje i jest zapisywalny przez użytkownika SFTP
  • Zweryfikuj własność katalogu chroot: katalog główny chroot musi być własnością root z uprawnieniami 755
  • Przejrzyj /var/log/auth.log w poszukiwaniu szczegółowych komunikatów o błędach

„Weryfikacja klucza hosta nie powiodła się”

  • Klucz hosta serwera zmienił się (możliwe po reinstalacji lub zmianie przypisania IP)
  • Usuń stary klucz: ssh-keygen -R hostname_or_ip
  • Połącz się ponownie i zaakceptuj nowy klucz hosta

Wolne prędkości transferu

  • Przetestuj niezależnie przepustowość sieci, aby wykluczyć problem z łącznością
  • Rozważ włączenie kompresji SSH dla transferów z dużą ilością tekstu: sftp -C username@hostname
  • W przypadku bardzo dużych plików rsync przez SSH może być bardziej wydajny niż SFTP

„Przerwany potok” lub rozłączenia podczas transferu

  • Zwiększ ustawienia keepalive SSH w ~/.ssh/config:
  Host *
      ServerAliveInterval 60
      ServerAliveCountMax 3

Porównanie SFTP, FTPS i SCP

SFTPFTPSSCP
Podstawa protokołuSSHSSL/TLS przez FTPSSH
Porty1 (port 22)2+ (21 + porty danych)1 (port 22)
Wznawianie transferówTakZależy od klientaNie
Listowanie katalogówTakTakNie
Sesja interaktywnaTakTakNie
Przyjazność dla zapory sieciowejDoskonałaUmiarkowanaDoskonała
Wymagany certyfikatNieTakNie

SCP (Secure Copy Protocol) jest szybszy przy prostym kopiowaniu plików, ale brakuje mu interaktywnych możliwości sesji SFTP. Nie może listować katalogów, wznawiać transferów ani zarządzać zdalnymi plikami. Używaj SCP do szybkich jednorazowych kopii; używaj SFTP do interaktywnego zarządzania plikami i automatyzacji.

FTPS dodaje szyfrowanie TLS do tradycyjnego protokołu FTP. Wymaga zarządzania certyfikatami SSL (rozważ połączenie z Certyfikatami SSL dla swojej domeny) i jest bardziej złożony w konfiguracji przez zapory sieciowe. SFTP jest ogólnie preferowany w nowych wdrożeniach, chyba że masz konkretne wymaganie dotyczące zgodności z FTPS.

Często zadawane pytania

Czy SFTP to to samo co FTPS?

Nie. SFTP (SSH File Transfer Protocol) to całkowicie oddzielny protokół działający przez SSH. FTPS to FTP z nałożonym szyfrowaniem TLS/SSL. Są ze sobą niekompatybilne.

Czy SFTP wymaga oddzielnego portu od SSH?

Nie. SFTP działa przez to samo połączenie SSH na porcie 22. Nie trzeba otwierać żadnych dodatkowych portów.

Czy mogę używać SFTP z uwierzytelnianiem dwuskładnikowym?

Tak. Ponieważ SFTP używa SSH do uwierzytelniania, każda metoda 2FA obsługiwana przez SSH (taka jak TOTP przez Google Authenticator lub Duo) może być również stosowana do sesji SFTP.

Czy SFTP nadaje się do przesyłania dużych plików?

Tak. SFTP obsługuje przesyłanie dużych plików i może wznawiać przerwane transfery, co czyni go niezawodnym przy dużych przesyłaniach i pobieraniach.

Czy mogę ograniczyć użytkownika SFTP do określonego katalogu?

Tak. Konfiguracja więzienia chroot opisana w Kroku 2 tego przewodnika ogranicza użytkownika do wyznaczonego katalogu, uniemożliwiając dostęp do reszty systemu plików.

Podsumowanie

SFTP jest złotym standardem bezpiecznych transferów plików w środowiskach serwerów Linux. Łącząc prostotę zarządzania plikami w stylu FTP z solidnym kryptograficznym bezpieczeństwem SSH, eliminuje najpoważniejsze luki protokołów zwykłego tekstu, pozostając jednocześnie prostym w konfiguracji i użytkowaniu.

Kluczowe wnioski z tego przewodnika:

  • Zainstaluj OpenSSH na swoim serwerze — obsługa SFTP jest dołączona automatycznie
  • Utwórz dedykowanego użytkownika SFTP z więzieniem chroot dla środowisk produkcyjnych
  • Używaj uwierzytelniania kluczem SSH zamiast haseł wszędzie tam, gdzie to możliwe
  • Stosuj środki wzmacniające bezpieczeństwo: zmień domyślny port, wdróż Fail2Ban, wyłącz logowanie root
  • Automatyzuj powtarzające się transfery za pomocą skryptów powłoki i zadań cron
  • Wybierz odpowiedniego klienta — CLI do skryptowania i automatyzacji, FileZilla lub WinSCP do użytku interaktywnego

Niezależnie od tego, czy zarządzasz instalacją WordPress, wdrażasz aplikację internetową, czy automatyzujesz kopie zapasowe serwera, SFTP zapewnia bezpieczeństwo, niezawodność i elastyczność, których wymaga Twój przepływ pracy. Połącz go z wydajnym środowiskiem VPS Hosting z pamięcią masową SSD, ochroną DDoS i pełnym dostępem root, a uzyskasz konfigurację transferu plików, która jest zarówno szybka, jak i naprawdę bezpieczna.

Dla zespołów z bardziej złożonymi potrzebami infrastrukturalnymi — w tym aplikacji o dużym ruchu lub obciążeń wymagających dużych zasobów — zapoznaj się z Serwerami Dedykowanymi dla maksymalnej wydajności i izolacji lub przejrzyj dostępne Panele Sterowania VPS, aby znaleźć interfejs zarządzania najlepiej dopasowany do przepływu pracy Twojego zespołu.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij