Jakie są bezpieczne alternatywy dla FTP? [Zamknięte]

22

Ta historia Hackera dotyczy wad FTP. Jedynym powodem, dla którego mogę skonfigurować FTP, jest to, że jest to łatwe.

Wiem już o tym i używam go scp, ale czasami chcę udostępnić pliki komuś, nie dając mu sshdostępu do mojego serwera. Chcę, aby mogły przesyłać i pobierać pliki, ale nic więcej, i chcę ograniczyć je do jednego katalogu. Chcę też, aby ich połączenie było szyfrowane jak ssh.

Jakie są alternatywy dla FTP, które spełniają te kryteria?

Nathan Long
źródło
2
Możesz używać scp bez ssh, patrz: serverfault.com/questions/354615/allow-sftp-but-disallow-ssh
Stone
1
Nie zamierzam zawracać sobie głowy czytaniem tego artykułu, ale warto pamiętać, że FTP został zaprojektowany do użytku w zamkniętej sieci (laboratorium na górze do / z serwerów w piwnicy), więc bezpieczeństwo nigdy nie było brane pod uwagę. To zadziwiające, że wciąż jest używany w sieciach publicznych.
John Gardeniers,
1
Niektórzy mogą twierdzić, że ftp nie został w ogóle zaprojektowany, ale ewoluował dzięki Dobrym Pomysłom wyobrażonym przez Różnych Ludzi, tworząc oprogramowanie do przesyłania plików na długo przed zamknięciem stało się zauważalną własnością sieci, kiedy kontrola dostępu miała miejsce przy zamkniętych drzwiach i gniewnych spojrzeniach.
Eroen

Odpowiedzi:

7

Proftpd ma wbudowany serwer sftp, który pozwala całkowicie oddzielić użytkowników od sshd do celów przesyłania plików. Możesz go skonfigurować tak, aby używał całkowicie osobnego pliku passwd, aby jeszcze bardziej go odizolować (trudno zalogować się do systemu za pomocą ssh i przełamać chroota, jeśli tak naprawdę nie masz użytkownika w / etc / passwd .. .)

proftpd pozwala także dość łatwo chrootować i izolować użytkownika sftp do zestawu katalogów.

Robimy coś takiego:

LoadModule mod_sftp.c

<VirtualHost 10.1.1.217>

    ServerName  "ftp.example.com"

    # from http://www.proftpd.org/docs/howto/NAT.html
    MasqueradeAddress   1.2.3.4
    PassivePorts 27001 27050

    UseSendfile off

    ExtendedLog         /var/log/proftpd/access.log WRITE,READ default
    ExtendedLog         /var/log/proftpd/auth.log AUTH auth

    AuthUserFile /etc/proftpd/AuthUsersFile
    AuthOrder           mod_auth_file.c 

    <IfModule mod_sftp.c>
        Port 10022
    SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
        SFTPEngine On
        SFTPLog /var/log/proftpd/sftp.log
        SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
        SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
        MaxLoginAttempts 6
    </IfModule>
</VirtualHost>
Travis Campbell
źródło
1
Aby pomóc nowicjuszowi, jeśli OP potrzebuje pomocy w skonfigurowaniu tego, mam tutaj całkowicie podstawowy samouczek: csrdu.org/nauman/2011/02/13/…
recluze
3

Użyłbym WebDav z https włączony serwer! Uwierzytelnianie jest następnie oparte na standardowym schemacie autoryzacji HTTP. Przewodnik skonfigurować apache z WebDAV można znaleźć tutaj to jest tylko neccessary umieścić tego zasobu za https, a tu znalazłem opis jak to zrobić miłą że .

joecks
źródło
Biorąc pod uwagę używany tutaj język, mógłbyś przynajmniej połączyć się z angielską wersją artykułu.
John Gardeniers
haha przepraszam, nie zdałem sobie sprawy z tego błędu. Dzięki za poprawienie!
przyłącza się
1

Nie podałeś jako „darmowy” jako wymogu, więc wyrzucę pakiet Mass Transit przez grouplogic. Jest to prawdopodobnie nieco przesada dla większości ludzi i poza ich przedziałem cenowym, ale zestaw funkcji jest naprawdę fantastyczny. Zdobądź drugi serwer Mass Transit i zapal automatyzację, a niektóre pliki są przenoszone bardzo szybko.

SpacemanSpiff
źródło
0

Możesz skonfigurować, sftpktóry używa sshw trybie podobnym do ftp.

Możesz utworzyć niektórych użytkowników (jednego lub więcej, zależy to od tego, czy każdy użytkownik ma dostęp do swoich plików), dać im shell / bin / false i chrootkażdego użytkownika do katalogu, w którym te pliki mają być umieszczony.

Luis
źródło
0

Możesz użyć pure-ftpd z włączonym szyfrowaniem TLS. Konfiguracja jest bardzo prosta, aby włączyć opcję odkomentowania szyfrowania TLS w pliku konfiguracyjnym (tylko jedna linia :)), skonfiguruj klientów, aby łączyli się przez ftps i tyle. (Musisz pamiętać, że nie wszyscy klienci ftp obsługują ftps).

B14D3
źródło
-1

Możesz włączyć pobieranie i pobieranie za pomocą rsync przez ssh bez zezwolenia na logowanie, ustawiając rsync jako powłokę logowania dla użytkownika. Umożliwia to wszystkie zalety ssh, w tym logowanie certyfikatów, szyfrowanie i standardowe operacje na uprawnieniach systemu plików, jednocześnie nie włączając kont powłoki (ponieważ konto nie będzie miało powłoki, ale rsync =)).

Eroen
źródło
A w jaki sposób byłoby to bezpieczniejsze? Nadal jasny tekst ...
EEAA
To zależy od konfiguracji. Powszechnym sposobem (jedynym sposobem, w jaki kiedykolwiek to widziałem) jest używanie ssh i ustawianie rsync jako powłoki logowania lub (dla dostępu roota) specyficznych dla polecenia certyfikatów ssh.
Eroen
1
Rsync, podczas uruchamiania usługi (zgodnie z zaleceniem w odpowiedzi) nie ma szyfrowania. Tak oczywiście nie jest w przypadku rsync + ssh. Możesz edytować swoją odpowiedź, aby wyjaśnić swoje znaczenie.
EEAA
Zmiany miały miejsce (na wypadek, gdyby ktoś uznał powyższe komentarze za źle dopasowane).
Eroen
Chociaż nie został o to poproszony, warto również wspomnieć, że chociaż istnieje wiele łatwych w użyciu interfejsów dla protokołów FTP i podobnych do FTP, osobiście nie znam żadnego z nich dla rsync. Jeśli zamierzeni użytkownicy są nietechniczni, może to stanowić problem.
John Gardeniers,