Jak założyć własny serwer ftp dostępny nie tylko w mojej sieci

Dzięki zaraz to wykonam. :slight_smile:

Hej,

Nie wiem, czy to nie literówka użytkownika bart86 - generalnie FTP’y działają na porcie 21, więc przede wszystkim ten port przekierowujemy.

Pozdrawiam,

Dimatheus

pomyłka na co dzień korzystam z ssh na porcie 22 a ftp działa na porcie 21 moja pomyłka

Mam wybrać przekierowanie do pojedynczego portu czy do wielu portów?

post-215894-0-71455200-1407701567_thumb.

A bez zmian w routerze działa?

Hej,

Tak, wystarczy aktywować przekierowanie dla jednego portu. Jeśli zaś chodzi o sam screen, to pole trzeba zaznaczyć, by w ogóle przekierowania działały. Później oczywiście zapisanie ustawień i ponowne uruchomienie routera.

Pozdrawiam,

Dimatheus

Dla serwera ftp nie jest tak prosto z przekierowaniem. Po pierwsze trzeba odróżnić dwa tryby pracy w protokole ftp: tryb aktywny i tryb pasywny.

 

W trybie aktywnym klient wykonuje połączenie na port 21 serwera (nazywamy to połączeniem sterującym) natomiast do przesyłania danych to _serwer_ wykona połączenie do klienta. To drugie połączenie (osobne dla każdego przesyłanego pliku/listingu katalogu) będzie na całkiem inny port, najczęściej na porty większe niż 1024. I teraz jeśli klient jest za NATem to już widzisz jaki występuje problem. Router klienta będzie musiał umieć przeforwardować takie połączenie, a to się w praktyce rzadko zdarza.

 

W trybie pasywnym natomiast pierwsze połączenie sterujące na port 21 jest tak samo, natomiast drugie połączenie do przesyłania danych wykonuje ponownie klient. Wykonuje je ponownie na adres IP i port zwrócony przez serwer w tym pierwszym połączeniu (serwer może zwrócić adres ip całkiem inny). Router przy serwerze oczywiście musi umieć przekierować także to drugie połączenie – można na serwerze FTP ustawić zakres portów dla połączeń pasywnych i ten cały zakres forwardować na routerze lub też jeśli w sieci lokalnej nie ma innych serwerów to cały ruch przekierować na ten jeden serwer (strefa DMZ).

 

Dodatkowy problem jest taki że serwer ftp (stojący za natem) powinien zwrócić prawidłowy adres IP w pierwszym połączeniu kontrolnym (zewnętrzny – adres routera) a nie swój z sieci lokalnej. Jeśli masz zmienne IP na routerze to nie będzie tak łatwo to zrobić. Co prawda część programów klienckich potrafi to obejść jak naprzykład wspomniany wcześniej FileZilla co nie zmienia jednak faktu że to jest źle skonfigurowany serwer.

 

Dodatkowo przy konfiguracji serwera możesz dodać obsługę TLS aby danych nie przesyłać czystym tekstem ale po rodzaju pytań jakie zadałeś w tym wątku sugeruje najpierw poczytanie jak funkcjonuje ftp a dopiero później stawianie serwera.

 

A jeśli jednak bardzo chcesz to możesz na początek wykorzystać SFTP. To jest rozszerzenie SSH pozwalające na transfer plików. Masz tylko jeden port (domyslnie 22), od razu ruch jest szyfrowany, dla wszystkich transferów jest tylko jedno połączenie co sprawia że wysyłanie/odbieranie/ a szczególnie chodzenie po katalogach na zdalnym serwerze jest szybsze. No i wystarczy z routera przekierować tylko port 22. SFTP jest obsługiwane przez demona SSH:

$ cat /etc/ssh/sshd_config | grep sftp

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

Jeśli na Linuksie korzystasz z SSH, to masz już serwer FTP, a nazywa się on SFTP.