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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:файловые_сервера:ftp_server [2017/11/17 19:37]
[Защита FTP]
wiki:руководство_по_ubuntu_server:файловые_сервера:ftp_server [2017/11/23 23:04] (текущий)
Строка 11: Строка 11:
  
 FTP работает на основе модели клиент/​сервер. Серверный компонент называется сервисом FTP. Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды,​ переданные FTP клиентом. FTP работает на основе модели клиент/​сервер. Серверный компонент называется сервисом FTP. Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды,​ переданные FTP клиентом.
 +
 +====vsftpd - установка FTP сервера====
 +
 +**vsftpd** - это сервис FTP, доступный в Ubuntu. Его легко устанавливать,​ настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:​
 +<​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 серверу может быть организован двумя способами:​
Строка 19: Строка 34:
 В **анонимном режиме** удаленный клиент может получить доступ к FTP серверу,​ используя учетную запись пользователя по умолчанию с именем "​anonymous"​ или "​ftp"​ и передав адрес email в качестве пароля. В **авторизованном режиме** пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно,​ смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя,​ указанного при входе. Как правило,​ сервис FTP скрывает корневой каталог FTP сервера,​ подменяя его на домашний каталог FTP. Это скрывает корень файловой системы от удаленных сессий. В **анонимном режиме** удаленный клиент может получить доступ к FTP серверу,​ используя учетную запись пользователя по умолчанию с именем "​anonymous"​ или "​ftp"​ и передав адрес email в качестве пароля. В **авторизованном режиме** пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно,​ смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя,​ указанного при входе. Как правило,​ сервис FTP скрывает корневой каталог FTP сервера,​ подменяя его на домашний каталог FTP. Это скрывает корень файловой системы от удаленных сессий.
  
-====vsftpd - установка FTP сервера====+====Настройка анонимного доступа по FTP====
  
-**vsftpd** - это сервис FTP, доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую ​команду:​ +<note important>​Прежде чем ​вносить ​какиеибо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката ​изменений без переустановки пакета 
-<​code>​sudo apt-get install vsftpd</​code>​ +<​code>​sudo cp /etc/vsftpd.conf ​/​etc/​vsftpd.conf.orig</​code>​</​note>​
- +
-Конфигурационный файл ​содержит много параметров ​настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство ​по команде ​<​code>​man 5 vsftpd.conf</​code> ​для уточнения деталей по каждому параметру. +
-====Настройка анонимного доступа по FTP====+
  
 Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку,​ измените в /​etc/​vsftpd.conf следующее:​ Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку,​ измените в /​etc/​vsftpd.conf следующее:​
-<​code>​anonymous_enable=Yes</​code>​+<​code>​anonymous_enable=YES</​code>​
 В процессе установки создается пользователь **//ftp//** с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP. В процессе установки создается пользователь **//ftp//** с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP.
  
Строка 44: Строка 56:
 <note important>​Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.</​note>​ <note important>​Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.</​note>​
 ====Настройка авторизованного доступа по FTP==== ====Настройка авторизованного доступа по FTP====
 +
 +<note important>​Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета
 +<​code>​sudo cp /​etc/​vsftpd.conf /​etc/​vsftpd.conf.orig</​code></​note>​
  
 Для аутентификации локальных пользователей надо раскоментировать строчку Для аутентификации локальных пользователей надо раскоментировать строчку
Строка 54: Строка 69:
 ====Защита FTP==== ====Защита FTP====
  
 +===Ограничение пользователей===
 В /​etc/​vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например,​ данная опция позволяет поместить локального пользователя в chroot() "​заточение",​ выше которого (по дереву каталогов) он не сможет подняться. В /​etc/​vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например,​ данная опция позволяет поместить локального пользователя в chroot() "​заточение",​ выше которого (по дереву каталогов) он не сможет подняться.
 <​code>​chroot_local_user=YES</​code>​ <​code>​chroot_local_user=YES</​code>​
 Вы также можете определить список пользователей,​ имеющих доступ только в домашний каталог:​ Вы также можете определить список пользователей,​ имеющих доступ только в домашний каталог:​
-<​code>​ +<​code>​chroot_list_enable=YES 
-chroot_list_enable=YES +chroot_list_file=/​etc/​vsftpd.chroot_list</​code>​
-chroot_list_file=/​etc/​vsftpd.chroot_list +
-</​code>​+
 После снятия комментариев с этих опций, создайте /​etc/​vsftpd.chroot_list,​ содержащий список пользователей по одному на строку. Затем перезапустите vsftpd: После снятия комментариев с этих опций, создайте /​etc/​vsftpd.chroot_list,​ содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
 <​code>​sudo service vsftpd restart</​code>​ <​code>​sudo service vsftpd restart</​code>​
  
 <note important>​Если вы сняли комментарии со всех трёх строчек,​ то пользователи из списка не будут ограничены своими домашними каталогами,​ в отличии от пользователей не вошедших в список</​note>​ <note important>​Если вы сняли комментарии со всех трёх строчек,​ то пользователи из списка не будут ограничены своими домашними каталогами,​ в отличии от пользователей не вошедших в список</​note>​
 +
 +Аналогично файл /​etc/​ftpusers содержит список пользователей,​ которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей,​ просто добавьте их в этот список.
  
 Если при попытке подключения вы видите ошибку ((Эта ошибка появляется на версиях vsftpd 2.3.5 и выше с Ubuntu 12.04)): Если при попытке подключения вы видите ошибку ((Эта ошибка появляется на версиях vsftpd 2.3.5 и выше с Ubuntu 12.04)):
Строка 77: Строка 93:
 <​code>​local_root=/​home</​code>​ <​code>​local_root=/​home</​code>​
  
-Аналогично ​файл /​etc/​ftpusers содержит список пользователей,​ которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей,​ просто добавьте их в этот список. +===Шифрование===
 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 для дополнительной информации.
  
Строка 91: Строка 106:
  
 Теперь перегрузите 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:
Строка 119: Строка 134:
 ====Ссылки==== ====Ссылки====
  
-  -- Обратитесь к сайту ​[[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Список изменений на оф.сайте проекта]]
  
 ---- ----