Strona główna
» LINUX
»
Jak skonfigurować serwer TFTP na serwerze Ubuntu z tftpd-hpa
Jak skonfigurować serwer TFTP na serwerze Ubuntu z tftpd-hpa
Zainstaluj serwer tftpd-hpa i klienta tftp-hpa w Ubuntu . Ta konfiguracja udostępnia pliki /srv/tftpi przechowuje je w oddzielnym katalogu. Sprawdź listę pakietów serwera i klienta Ubuntu .
Bezpieczeństwo: TFTP nie wymaga logowania ani szyfrowania. Ogranicz dostęp do zaufanej sieci LAN; dostępni klienci mogą odczytywać dostępne pliki i przesyłać je tam, gdzie pozwalają na to uprawnienia. Nie przesyłaj poufnych informacji. Specyfikacja TFTP opisuje ograniczenia bezpieczeństwa.
Skonfiguruj serwer TFTP
1. Zainstaluj serwer i klienta
Odśwież metadane APT, a następnie zainstaluj oba pakiety:
--secureOgranicza demona do skonfigurowanego katalogu głównego, --createzezwala na przesyłanie plików i --umask 027ogranicza nowe pliki do trybu 0640. Instrukcja obsługi tftpd w systemie Ubuntu opisuje te opcje. Zapisz za pomocą Ctrl+O, naciśnij Enter, a następnie Ctrl+X.
Ponieważ --securepowoduje, że /srv/tftpklient widzialny jest katalog główny, nazwy plików są do niego względne: należy używać hello.txt, a nie /srv/tftp/hello.txt. Klienci TFTP nie przeglądają katalogów, dlatego należy przechowywać listę opublikowanych nazw plików i ich ścieżek.
Ogranicz pliki i ustaw maskę przesyłania.
3. Utwórz katalog główny i katalog do przesłania
Pozostaw główny katalog jako własność roota i przyznaj dostęp tylko do zapisu w folderze przesyłania:
Demon może odczytać katalog główny, ale tylko tftpkonto może zapisywać w /srv/tftp/upload. Unikaj ustawiania całego drzewa jako dostępnego dla wszystkich użytkowników za pomocą uprawnień takich jak 777.
Pliki w publicznym katalogu głównym powinny być traktowane jako możliwe do odczytu przez każdego uprawnionego klienta. Ogranicz to drzewo do obrazów rozruchowych, oprogramowania układowego lub innych materiałów przeznaczonych dla danej sieci. W przypadku transferów prywatnych wybierz protokół z uwierzytelnianiem i szyfrowaniem.
Zapisywalny jest tylko podkatalog upload.
4. Dodaj plik do udostępnienia
Utwórz znany plik w katalogu głównym. Domyślne sprawdzanie odczytu protokołu TFTP wymaga, aby udostępniane pliki były publicznie czytelne, dlatego ustaw tryb 0644:
echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Utwórz znany plik na potrzeby testu pobierania.
5. Włącz i uruchom ponownie usługę
Włącz urządzenie podczas rozruchu, uruchom je ponownie, aby zastosować ustawienia i sprawdź jego stan:
Jeśli uruchomienie się nie powiedzie, sprawdź dziennik serwisowy za pomocą sudo journalctl -u tftpd-hpa -b --no-pager.
Po zmianie ustawień należy ponownie uruchomić usługę.
6. Ogranicz dostęp do zapory sieciowej
Jeśli UFW jest włączone, zezwól na początkowe żądanie tylko z podsieci klienta. Zastąp przykładową sieć zakresem zaufanej sieci LAN:
sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status
Zapoznaj się z podręcznikiem UFW w Ubuntu , aby zapoznać się z regułami sieci źródłowej. Protokół TFTP rozpoczyna się na porcie UDP 69, a następnie używa portu UDP wybranego przez serwer do przesyłania danych plików, zgodnie z opisem w specyfikacji protokołu . Ścisła zapora sieciowa, router lub urządzenie NAT może zezwolić na żądanie, ale zablokować transfer. Jeśli klient przekroczy limit czasu, użyj śledzenia połączeń z obsługą TFTP lub odpowiedniej polityki zapory sieciowej; nie otwieraj wszystkich portów UDP ani nie udostępniaj TFTP do internetu. To polecenie dodaje regułę; nie włącza UFW. Jeśli administrujesz serwerem przez SSH i zamierzasz włączyć nieaktywną zaporę sieciową, najpierw zezwól na SSH, aby zachować zdalny dostęp.
Zezwól na początkowe żądania z zaufanej podsieci.
Testowanie pobierania i przesyłania
7. Pobierz z klienta Ubuntu
Na serwerze uruchom ip -brief addressi zanotuj jego osiągalny adres LAN. Na kliencie Ubuntu zainstaluj klienta, jeśli to konieczne. Zastąp 192.0.2.10poniższy adres prawdziwym adresem serwera:
Plik jest zapisywany w bieżącym katalogu klienta. Dokumenty i instrukcje obsługi klienta tftp Ubuntu . Tryb binarny jest zalecany w przypadku oprogramowania sprzętowego, obrazów rozruchowych i plików, których bajty muszą pozostać niezmienione. Nazwy plików w systemie Linux rozróżniają wielkość liter, dlatego należy dokładnie wpisać każdą nazwę zdalną.binaryget
Zażądaj znanego pliku w trybie binarnym.
8. Prześlij do folderu z ograniczeniami
Na kliencie utwórz plik testowy, a następnie prześlij go do ścieżki w katalogu przesyłania na serwerze:
Użyj rzeczywistego adresu serwera. Ścieżka zdalna jest względna do /srv/tftp; zweryfikuj przesłanie na serwerze za pomocą sudo ls -l /srv/tftp/upload/. Klienci TFTP używają znanych nazw plików zamiast przeglądać listę katalogów.
Przesłane pliki pozostają w podkatalogu z możliwością zapisu.
Rozwiązywanie typowych błędów
Nie znaleziono pliku: Sprawdź nazwę względną pliku /srv/tftpi potwierdź, że on istnieje.
Naruszenie dostępu: Udostępnij udostępniane pliki publicznie do odczytu; w przypadku przesyłania sprawdź tftpwłasność miejsca docelowego i upewnij się, --createże jest ustawiona.
Limit czasu: sprawdź, czy klient używa dostępnego adresu serwera, usługa jest aktywna i zapora zezwala na wynegocjowany przepływ danych UDP.
Aby wyizolować problem z siecią, najpierw przetestuj połączenie z poziomu klienta w tej samej sieci LAN. Jeśli to zadziała, ale klient z routingiem przekroczy limit czasu, sprawdź router lub zaporę sieciową pod kątem obsługi negocjowanego portu danych przez protokół TFTP.
W przypadku usługi tylko do odczytu usuń ją --createz programu TFTP_OPTIONSi uruchom ponownie tftpd-hpa.