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

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

7 ответов

Решение

Я собираюсь порекомендовать 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 что изменит что оболочка пользователей на ложь. (Замените ftpman вашим пользователем ftp)

По моему мнению, 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 из оболочки на сервере разработчиков, чтобы скопировать вещи через (scp -R скопирует целые папки, и это очень удобно). Вы даже можете сделать еще один шаг и автоматизировать вход в систему с открытыми ключами, то есть больше не нужно вводить пароли:)

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


Монтаж:

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

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

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

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

Я настоятельно рекомендую использовать 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 в это и использовать его. То же самое, если у вас есть специальные пользователи. Там вы также можете создавать каталоги, и они сразу доступны. Здесь важно искать права доступа.

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

Существует три различных способа настройки 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, выполните следующие действия:

Скачайте и установите User Manager для 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

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

write_enable=YES

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

Другие вопросы по тегам