FTP-сервер в Ubuntu

12

Я ищу приложение FTP-сервера для моего автономного сервера, который является публичной виртуальной машиной с публичным IP-адресом. , Я сузил его до 3, по крайней мере из того, что я прочитал, являются самыми искусными.

  • vsftpd
  • proftpd
  • pure-ftp

Я исследовал все 3, но моя главная проблема в том, что мне нужна одна учетная запись, которая может загружать, но не видеть содержимое папки / каталогов после входа в систему.

Мы использовали filezillaсервер на сервере Windows, но нам пришлось перейти на Ubuntu. Я не устанавливал ни одно из этих приложений раньше, и мне было интересно, если какое-либо из них поддерживает это в Ubuntu. Если они это сделают, как бы я настроить это?

ErocM
источник

Ответы:

7

Я использую vsftpd на внутреннем сервере , так что я могу ответить только за этот ...

vsftpd имеет в основном два параметра для управления списком каталогов в его /etc/vsftpd.conf

dirlist_enable
    If set to NO, all directory list commands will give permission denied.

    Default: YES

dirmessage_enable
    If enabled, users of the FTP server can be shown messages when they 
    first enter a new directory. By default, a directory is scanned for
    the file .message, but that may be overridden with the configuration 
    setting message_file.

    Default: NO (but the sample config file enables it) 

download_enable
    If set to NO, all download requests will give permission denied.

    Default: YES 

Так что в вашем случае вы должны обязательно добавить:

dirlist_enable=NO

как минимум, и в зависимости от вашего варианта использования, также отключите загрузки и dirmessages. (и именно поэтому я добавил download_enableпараметр, который на самом деле не контролирует списки каталогов)

Источник: man vsftpd.conf

Сказав все это на общедоступном сервере, я бы больше не позволял стандарту ftpработать, но использовал бы что-то вроде sftp.

Fabby
источник
Ты сделаю это!
ErocM
Если вам обязательно нужно FTP для работы на внешнем сервере, vsftpdэто ваш лучший выбор (и именно поэтому я использую , что один на внутреннем сервере: вы никогда не знаете , когда использование регистра изменения.) ;-) Это помогает сделать man vsftpd.confпока вы настраиваем его впервые ...
Fabby
6

Если вы настроили OpenSSH на этом компьютере, у вас есть встроенный sftp для всех учетных записей пользователей. Большинство современных ftp-клиентов имеют встроенную поддержку sftp. Это также намного более безопасно, чем обычный ftp, и накладные расходы на использование шифрования минимальны. Фактически, в моей локальной сети sftp работает быстрее, чем ftp. Попробуй, он работает на том же порту, что и ssh, и даже работает, используя ssh-key login.

Сделайте это, вы также сэкономите ресурсы для запуска другого процесса.

jholt0130
источник
2
+1 единственная причина использовать FTP когда-либо по старым причинам, т.е. вы ожидаете клиентов, которые не могут обрабатывать SFTP.
pzkpfw
1

ProFTPDимеет приятные функции и на самом деле отличный выбор. Он имеет встроенную поддержку FTP через SSH, что замечательно, если вам нужно шифрование.

Все документы можно найти здесь

Он также имеет хорошие функции для анализа журналов и сообщений с помощью The Webalizerи ftpweblogсценариев

АлиРеза Мосаджал
источник
0

Раньше у меня был VsFTPd на моем сервере, но мне приходилось переходить на ProFTPd, потому что у нашего дизайнера на окнах были частые прерывания при загрузке и все (он использовал notepad ++ и его встроенный FTP-клиент). Сейчас я не слышу жалоб. Что касается списка, вы можете найти более подробную информацию здесь .

Толга Озсес
источник
0

ProFTPD:

apt-get install proftpd

затем выберите: proftpd (режим сервера)

nano /etc/proftpd/proftpd.conf
--> ipv6 should be off
--> default root (should be inlined)(no #)
--> Require Valid Shell off (should be inlined) (no #)

nano /etc/proftpd/modules.conf
--> LoadModule mod_tls_memcache.c should be outlined (with #)
service proftpd restart

Теперь вам нужно добавить некоторых пользователей adduserи установить их homedir по умолчанию для выбранного вами ftp-пути (var / ftp) и их default-loginshell /bin/falseв /etc/passwdодном примере:

beeberst:x:1164:33::/var/www/beeberst:/bin/false
jsterr
источник