Сервер FTP Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Последняя версия Следующая версия справа и слева
wiki:руководство_по_ubuntu_server:файловые_сервера:ftp_server [2012/11/29 01:36]
[Настройка авторизованного доступа по FTP]
wiki:руководство_по_ubuntu_server:файловые_сервера:ftp_server [2017/11/23 22:31]
[vsftpd - установка FTP сервера] добавлена информация по добавлению в автозапуск и файерволл
Строка 22: Строка 22:
  
 **vsftpd** - это сервис FTP, доступный в Ubuntu. Его легко устанавливать,​ настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:​ **vsftpd** - это сервис FTP, доступный в Ubuntu. Его легко устанавливать,​ настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:​
-<​code>​sudo apt-get install vsftpd</​code>​+<​code>​sudo apt install vsftpd</​code>​
  
 +Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется [[wiki:​systemd|Systemd]],​ поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:​
 +<​code>​sudo systemctl start vsftpd
 +sudo systemctl enable vsftpd</​code>​
 +
 +В Ubuntu Server может использоваться файервол [[wiki:​руководство_по_ubuntu_server:​безопасность:​firewall|ufw]]. Тогда вам потребуется разрешить порты 20 и 21
 +<​code>​sudo ufw allow 20/tcp
 +sudo ufw allow 21/​tcp</​code>​
 +
 +Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде <​code>​man 5 vsftpd.conf</​code>​ для уточнения деталей по каждому параметру.
 ====Настройка анонимного доступа по FTP==== ====Настройка анонимного доступа по FTP====
  
Строка 36: Строка 45:
 </​code>​ </​code>​
 После изменений перезапустите vsftpd: После изменений перезапустите vsftpd:
-<​code>​sudo ​restart ​vsftpd</​code>​+<​code>​sudo ​service ​vsftpd ​restart</​code>​
 Под конец скопируйте все файлы и каталоги,​ которые вы хотите сделать доступными для анонимного FTP в /​srv/​files/​ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию). Под конец скопируйте все файлы и каталоги,​ которые вы хотите сделать доступными для анонимного FTP в /​srv/​files/​ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).
  
 +По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:
 +<​code>​anon_upload_enable=YES</​code>​
 +<note important>​Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.</​note>​
 ====Настройка авторизованного доступа по FTP==== ====Настройка авторизованного доступа по FTP====
  
-Для аутентификацию локальных пользователей надо раскоментировать строчку+Для аутентификации локальных пользователей надо раскоментировать строчку
 <​code>​local_enable=YES</​code>​ <​code>​local_enable=YES</​code>​
 По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /​etc/​vsftpd.conf:​ По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /​etc/​vsftpd.conf:​
 <​code>​write_enable=YES</​code>​ <​code>​write_enable=YES</​code>​
-после чего перзагрузите vsftpd: +после чего перезагрузите vsftpd: 
-<​code>​sudo ​restart ​vsftpd</​code>​+<​code>​sudo ​service ​vsftpd ​restart</​code>​
 Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги,​ где они смогут скачивать,​ загружать [файлы],​ создавать каталоги и т.д. Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги,​ где они смогут скачивать,​ загружать [файлы],​ создавать каталоги и т.д.
- 
-Аналогично,​ по умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd: 
-<​code>​anon_upload_enable=YES</​code>​ 
-<note important>​Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.</​note>​ 
- 
-Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде <​code>​man 5 vsftpd.conf</​code>​ для уточнения деталей по каждому параметру. 
- 
 ====Защита FTP==== ====Защита FTP====
  
-В /​etc/​vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например,​ пользователи могут быть ​ограничены своими домашними ​каталогами, ​если раскомментировать:+===Ограничение пользователей=== 
 +В /​etc/​vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, ​данная опция позволяет поместить локального ​пользователя в chroot() "заточение", выше которого (по дереву ​каталогов) он не сможет подняться.
 <​code>​chroot_local_user=YES</​code>​ <​code>​chroot_local_user=YES</​code>​
 Вы также можете определить список пользователей,​ имеющих доступ только в домашний каталог:​ Вы также можете определить список пользователей,​ имеющих доступ только в домашний каталог:​
Строка 65: Строка 71:
 </​code>​ </​code>​
 После снятия комментариев с этих опций, создайте /​etc/​vsftpd.chroot_list,​ содержащий список пользователей по одному на строку. Затем перезапустите vsftpd: После снятия комментариев с этих опций, создайте /​etc/​vsftpd.chroot_list,​ содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
-<​code>​sudo ​restart ​vsftpd</​code>​+<​code>​sudo ​service ​vsftpd ​restart</​code>​ 
 + 
 +<note important>​Если вы сняли комментарии со всех трёх строчек,​ то пользователи из списка не будут ограничены своими домашними каталогами,​ в отличии от пользователей не вошедших в список</​note>​ 
 Аналогично файл /​etc/​ftpusers содержит список пользователей,​ которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей,​ просто добавьте их в этот список. Аналогично файл /​etc/​ftpusers содержит список пользователей,​ которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей,​ просто добавьте их в этот список.
  
 +Если при попытке подключения вы видите ошибку ((Эта ошибка появляется на версиях vsftpd 2.3.5 и выше с Ubuntu 12.04)):
 +<​code>​Ответ:​ 500 OOPS: vsftpd: refusing to run with writable root inside chroot()</​code>​
 +то это значит,​ что локальный пользователь имеет доступ на запись в домашний каталог,​ чего быть не должно. Способов решения этой ошибки несколько:​
 +
 +  * Запретить запись в домашний каталог локальному пользователю (подходит не всем и не всегда)
 +<​code>​sudo chmod a-w /​home/​user/</​code>​
 +  * Отменить проверку записи в домашний каталог прописав в конфиге ((Данная опция не прописана в man странице проекта,​ но упоминается в change-log версии 3.0.0 на оф.сайте проекта))
 +<​code>​allow_writeable_chroot=YES</​code>​
 +  * Прописать /home каталогом,​ куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог
 +<​code>​local_root=/​home</​code>​
 +
 +===Шифрование===
 FTP может быть зашифрованным при использовании **FTPS**. В отличие от **SFTP**, **FTPS** - это FTP поверх SSL. **SFTP** - это сессия,​ подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем,​ таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации. FTP может быть зашифрованным при использовании **FTPS**. В отличие от **SFTP**, **FTPS** - это FTP поверх SSL. **SFTP** - это сессия,​ подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем,​ таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.
  
Строка 80: Строка 101:
  
 Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS: Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
-<​code>​sudo restart vsftpd</​code>​+<​code>​sudo ​service ​restart vsftpd</​code>​
  
 Чтобы позволить пользователям с оболочкой /​usr/​sbin/​nologin получить доступ к FTP, но не предоставлять shell доступ,​ отредактируйте /​etc/​shells,​ добавив к оболочке nologin: Чтобы позволить пользователям с оболочкой /​usr/​sbin/​nologin получить доступ к FTP, но не предоставлять shell доступ,​ отредактируйте /​etc/​shells,​ добавив к оболочке nologin:
Строка 108: Строка 129:
 ====Ссылки==== ====Ссылки====
  
-  -- Обратитесь к сайту ​[[http://vsftpd.beasts.org/​vsftpd_conf.html|vsftpd]] для дополнительной информации. +  -- [[https://security.appspot.com/vsftpd/​vsftpd_conf.html| ​man страница конфига]] 
-  -- Подробности по опциям ​/etc/vsftpd.conf доступны в man руководстве [[http://manpages.ubuntu.com/​manpages/​precise/​en/​man5/vsftpd.conf.5.html|vsftpd.conf]].+  -- [[http://www.opennet.ru/​base/​net/​vsftpd_overview.txt.html| Русскоязычный перевод ​man страницы конфига]] 
 +  -- [[https://security.appspot.com/vsftpd/Changelog.txtСписок изменений на оф.сайте проекта]]
  
 ---- ----