Базовый FTP-сервер Ubuntu

33

Я хотел бы настроить базовый FTP-сервер на моем сервере Ubuntu. Я играл с VSFTPD, но у меня проблемы с получением сервера, позволяющего мне создавать каталоги и копировать файлы. Я настроил систему на разрешение локальных пользователей, но, похоже, это не значит, что я получаю доступ к созданию каталогов. Это может быть тот случай, когда мне нужно лучше понять настройки сервера Ubuntu, чтобы правильно настроить этот FTP-сервер. Конечная цель состоит в том, чтобы иметь возможность перемещать файлы из моей локальной папки dev в мою папку www для развертывания. Каталоги также должны быть в состоянии перемещаться. Любая помощь будет принята с благодарностью.

JPrescottSanders
источник
Вы упомянули о перемещении файлов и папок из локальной папки dev в папку www. Все это вы делаете на одной или разных машинах?
Марко Чеппи
Также вы полностью проданы с VSFTPD? Или вас заинтересуют другие типы программного обеспечения FTP, такие как pureftp?
Марко Чеппи
Local dev - это отдельная машина. Я знаком с перемещением файлов на веб-серверы через FTP, возможно, есть лучший способ.
JPrescottSanders
Я не продаюсь на VSFTPD, это было первое, что я нашел во время поиска в Google, если у вас есть более простое решение, я весь слух.
JPrescottSanders

Ответы:

42

Я собираюсь порекомендовать PureFTPD, потому что, по моему мнению, он был самым простым и простым в использовании. Сначала вам нужно установить его: sudo apt-get install pure-ftpdпосле установки он запустится сам. По умолчанию он использует аутентификацию PAM - это означает, что он использует учетные записи, которые уже существуют в системе для своей аутентификации. Все, что вам нужно сделать, это создать учетную запись пользователя с домашним каталогом в качестве вашего пути к www и установить пароль для этой учетной записи. После этого вы сможете соединиться с этой комбинацией пользователь / пароль для загрузки / выгрузки файлов.

Что-то вроде этого:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Это создаст ftpmanпользователя и поместит его в группу www-данных, которую использует Apache, и проведет вас через оставшуюся часть сценария установки. После того, как это определено, убедитесь, что в chmodпапке WWW, если вы получаете ошибки о том, что она уже существует в комбинации пользователя / группы, которую вы создали.

И, наконец, если вы хотите заблокировать доступ SSH для этой учетной записи, запустите: sudo chsh -s /bin/false ftpmanчто изменит то, что оболочка пользователя на false. (Замените ftpman вашим пользователем ftp)

Марко Чеппи
источник
5
Насколько мне известно, PureFTP проще всего настроить.
Натан Осман
1
У вас есть привычка давать полное объяснение всегда, как учитель. Потрясающе!!!
user3215
1
Я пробовал это, но я не могу связаться с вновь созданным пользователем. Существующие пользователи работают нормально
wim
1
Это все работает нормально, за исключением того, что когда я запускаю, chshкажется, что пользователи также не могут войти через FTP. Установка обратно /bin/bashпозволяет снова работать.
ДанХ
1
Спасибо, и я могу подтвердить, что я провел целый день с vsftpd и 5 минут с pureftpd во время установки. Для простой и безопасной настройки используйте pureftpd. Я запутался, почему мейнстрим рекламирует vsftpd!
RyBolt
10

По моему мнению, SFTP - лучший путь. Эй, в названии есть слово «безопасный», должно быть, лучше :)

SFTP использует ssh для передачи файлов (в отличие от FTPS, в основном это FTP + TLS). Это означает, что если вы можете подключиться к целевой машине по протоколу ssh, вы почти всегда можете использовать SFTP для нее, так как она использует одни и те же механизмы аутентификации, поэтому вам вообще не нужно устанавливать и настраивать разные серверные демоны (т.е. не использовать pureftpd или vsftpd). Пока ваши права доступа установлены правильно /var/www- что, вероятно, является вопросом sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- вы должны иметь возможность использовать SFTP немедленно.

Большинство клиентских программ в настоящее время довольно успешно работают с SFTP, и вы также можете использовать scpоболочку на сервере dev для копирования содержимого ( scp -Rскопировать целые папки и очень удобно). Вы даже можете сделать еще один шаг и автоматизировать вход в систему с открытыми ключами, то есть больше не нужно вводить пароли :)

Бен Уильямс
источник
3
подсказка подсказка ... если у вас есть клиенты Windows, они могут использовать WinSCP winscp.net/rus/index.php для доступа к серверу sftp .
LassePoulsen
Согласно вашему комментарию, OP должен, конечно, использовать vsftpd, потому что vs означает очень безопасный . :-)
qbi
PureFTPD использует ту же аутентификацию, что и SFTP - на мой взгляд, она более безопасна, потому что, если данные вашей учетной записи будут пропущены, никто не получит SSH-доступ к вашей машине. В худшем случае они имеют доступ к файлам.
Марко Чеппи
Если ваше приложение поддерживает только FTP, и вы туннелируете его по SSH, какая разница? :)
эндолит
5

Я настоятельно рекомендую использовать vsftpd. Это один из самых безопасных FTP-демонов в Linux. У многих других были недостатки в прошлом, и кажется, что FTP трудно реализовать безопасным способом.

vsftpd запускается сразу после установки. Ubuntu позволяет локальным пользователям войти в систему. Запустите ваш FTP-клиент и войдите в систему как обычный пользователь, используя системный пароль (в моем примере используется lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Сейчас я использую какой-то файловый менеджер (Nautilus, Shell и т. Д.), Чтобы создать новый каталог fooи вернуться к своему FTP-клиенту:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Каталог есть, и я могу cdего использовать и использовать. То же самое, если у вас есть специальные пользователи. Там вы также можете создавать каталоги, и они сразу доступны. Здесь важно искать права доступа.

QBi
источник
3

Я скромно рекомендую FTP-сервер, который я написал сам с нуля: JetFTP . Он чрезвычайно прост в установке и использовании.


Установка:

  • Добавьте мой PPA к вашим источникам программного обеспечения и обновите:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Запустите следующую команду:

    sudo apt-get install jetftp
    
  • Это оно!

Использовать JetFTP просто - просто подключитесь к порту, 8021используя имя пользователя и пароль на компьютере, на котором запущен JetFTP.

Натан Осман
источник
2

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

Стюарт
источник
Четкая проблема - лучший ответ :-)
Саджад Бахмани
0

Существует три различных способа настройки FTP-сервера:

(1) Анонимный FTP:

Люди могут получить доступ к серверу только с анонимной учетной записью и без пароля. Конечно, администратор сервера установит лимит на загрузку, чтобы пользователи не могли размещать нелегальные файлы, такие как пиратская музыка / фильмы / игры.

(2) FTP с анонимным доступом и пользователями с парольной учетной записью:

Этот метод позволяет как анонимным, так и парольным пользователям войти на сервер. Они будут иметь доступ только к указанному каталогу, за исключением пользователя root, который может просматривать / изменять / удалять все файлы и / или папки.

(3) FTP с поддержкой mysql для аутентификации виртуальных пользователей:

Этот метод разрешает доступ к серверу только для некоторых групп пользователей, которые не имеют учетной записи оболочки аутентификации виртуальных пользователей в системе. Он использует внешний сервер MySQL, который хранит информацию о пользователях.

Первый вариант: анонимный FTP

Прежде чем приступить к созданию анонимного ftp-сервера, вы должны добавить в свою систему пользователя с именем ftp, а также домашний каталог. Этот шаг действительно прост, просто следуйте этим командам:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Это позволяет только этой учетной записи писать в эту папку. Вы можете использовать больше переменных, чтобы указать, что будет делать ftp-сервер. Вот некоторые примеры:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Второй вариант: '' 'Анонимные и парольные пользователи аккаунта' ''

Чтобы иметь возможность размещать на одном сервере и анонимных пользователей, и пользователей с парольными учетными записями, следуйте этому небольшому руководству:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Третий вариант: '' 'Виртуальные пользователи с Mysql' ''

Чтобы создать сервер с поддержкой MySQL, выполните следующие действия:

Загрузите и установите диспетчер пользователей для PureFTPd, который вы можете найти здесь http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Распакуйте его и загрузите все его содержимое в каталог www вашего веб-сервера, а затем напишите в браузере эту ссылку http: //localhost/ftp/install.php Выполните все шаги, которые просит установщик Скопируйте и сохраните rge pureftpd-mysql .conf в каталог менеджера пользователей pureftpd

Выполнено. Доступ к панели администрирования осуществляется по этой ссылке http: // localhost / ftp

Дополнительные параметры для добавления перед запуском процесса на сервере

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

И посмотрите это для некоторых приложений FTP-сервера:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html

Саджад Бахмани
источник
4
Когда вы копируете и вставляете ответ откуда-то еще, вы всегда должны указывать источник .
Дори
0

Установка VSFTPD по умолчанию не позволяет создавать / изменять изменения по умолчанию. Вам нужно отредактировать /etc/vsftpd.confи раскомментировать следующую строку ...

write_enable=YES

И, во-вторых, вам нужно настроить соответствующие разрешения файловой системы для соответствующих файлов и папок.

Саймон Ист
источник