Freebsd как подключится к ftp. Протоколирование обращений Kftpd(8)

Writing /var/www/wiki.dieg/wikionline/darkfiredatawiki/cache/b/bed11d76eac5a315c581278cd87da6cf.xhtml failed

ftpd сервер

Существует множество очень функциональных ftp-серверов, однако для использования в «личных» целях, как правило, вполне достаточно возможностей входящей в состав FreeBSD программы ftpd сервер . Программа ftpd представляет собой достаточно простой ftp-сервер. В отличие от таких инструментов, как ProFTPD , Pure-FTPd и других, ftpd не имеет развитых средств конфигурирования, работы с правами доступа и т. д. Однако если вы не собираетесь строить публичный ftp-сервер, то его возможностей вам вполне хватит для организации «бытовых» функций, таких как обмен файлами между сервером и вашей рабочей машиной, например, для размещения HTML -страниц на веб-сервере или настройки простейшего резервирования.

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

Как работает ftpd

    Если пользователь имеет пустой пароль, либо его оболочка по умолчанию отсутствует в /etc/shells, либо его имя (или наименование группы, членом которой он является) указано в файле /etc/ftpusers, то соединение разрывается – такому пользователю запрещен доступ по ftp.

    Когда имя пользователя или его группа указаны в файле /etc/ftpchroot, то разрешается ограниченный доступ – пользователь может работать только в пределах своего домашнего каталога.

    В случае, когда в качестве имени указано ftp или anonymous, соединение рассматривается как анонимное.

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

Настройка ftpd

Настройка ftpd для FreeBSD (для Linux больших отличий быть не может):

    Для включение ftpd нужно раскоментировать одну строку в inetd.conf и перезапустить inetd > ee /etc/inetd.conf ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l > /etc/rc.d/inetd restart

    Некоторые настройки сервера, в том числе и касающиеся ограничения доступа, можно выполнить с помощью ключей командной строки. Если вы запускаете ftpd из inetd, добавьте нужные параметры в соответствующей строке файла inetd.conf (по умолчанию там записан только ключ l).

    Для протоколирования даемон ftpd использует сообщения Использование syslog . > ee /etc/syslog.conf ftp.info /var/log/xferlog

    В файле /etc/ftpusers находится список пользователей, которым запрещен доступ по FTP . По умолчанию он включает системные учетные записи, но в него можно добавить и определенных пользователей, которым будет запрещен доступ по FTP .

    Анонимный доступ : Для анонимного FTP доступа на сервер, в системе FreeBSD необходимо создать пользователя ftp. Этот пользователь сможет входить на FTP сервер с именем пользователя ftp или anonymous, с любым паролем (существует соглашение об использовании почтового адреса пользователя в качестве пароля). FTP сервер выполнит chroot при входе пользователя anonymous для ограничения доступа только домашним каталогом пользователя ftp. У этого пользователя должна быть «легальная» оболочка (одна из указанных в /etc/shells). Также у него не может быть пустого пароля.

    Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам. Содержимое файла /etc/ftpwelcome будет выведено пользователям перед приглашением на вход. После успешного входа будет выведено содержимое файла /etc/ftpmotd. Обратите внимание, что путь к этому файлу задается относительно домашнего каталога пользователя, так что анонимным пользователям будет отправляться ~ftp/etc/ftpmotd.

    Ограниченный доступ : Вам может понадобиться ограничить доступ определенных пользователей без полного запрета использования FTP . Это можно сделать через файл /etc/ftpchroot. В нем находится список пользователей и групп, к которым применяется ограничение доступа. В том случае, если имя пользователя присутствует в файле /etc/ftpchroot, то соответствующий процесс запускается в chroot-окружении, ограничивая пользователю доступ только его домашним каталогом (или тем, который указан во втором поле файла ftpchroot). При необходимости организовать такую работу для большого числа пользователей (например, дать всем абонентам доступ для обновления своих домашних веб-страничек), в ftpchroot можно указать общую для них группу, предварив ее имя символом @. Во втором поле дополнительно может быть указан каталог, который следует использовать в качестве корневого для соответствующего пользователя или группы. Вот пример такого файла: vasya petya /var/db/petya @dialup

    Теперь Вася и все пользователи группы dialup смогут работать только в пределах своих домашних каталогов, а для Пети в качестве рабочей будет определена указанная папка /var/db/petya. С помощью разделителя /./ можно указать каталог, отличающийся от корневого, который станет текущим:

    Serg /home/serg/./public_html

    В данном случае для пользователя serg доступ будет ограничен каталогом /home/serg, но в качестве текущего при входе на сервер установится /home/serg/public_html.

Главная > Программы

Настройка ftpd

Этот пост пишу потому, что в интернете не нашел нормальной статьи по настройке встроенного во FreeBSD ftp-сервера: кругом сплошные сслыки на “man ftpd”. Интак, мне необходимо поднять ftp с ограниченным доступом по логину/паролю к отдельным папкам для каждого пользователя. Для этих целей ftpd будет выше крыши.

1. В файл /etc/rc.conf добавляем строчки:

ftpd_enable=”YES”
ftpd_flags=”" # здесь прописываем нужные флаги. Их описание я привёл ниже.

Доступные флаги:
-D: запускать ftpd в режиме демона.
-a <адрес>: в режиме демона принимать соединения только на указанный IP-адрес.
-d: включить режим отладки (подробная информация о работе будет выдаваться серверу syslog как LOG_FTP).
-h: не выводить информацию о системе в сообщениях сервера.
-l: протоколировать все сессии (обычно используется/var/log/xferlog).
-A: разрешить только анонимный доступ.
-M: запретить анонимным пользователям создавать папки.
-m: разрешить анонимным пользователям модифицировать существующие файлы (если для этого достаточно системных прав).
-o, -O: разрешить только запись на сервер всем пользователям (-o) или только анонимному пользователю (-O). В частности, таким образом можно организовать сбор с удаленных серверов файлов резервных копий, чтение которых пользователями не предусмотрено.
-r: перевести сервер в режим "только для чтения". Любая модификация размещенных данных будет запрещена.

2. Создаем учётные записи пользователей (например, с помощью adduser), которым будут разрешен доступ к серверу, после чего убеждаемся в том, что их имена не упоминаются в файле /etc/ftpuser (пользователям, упомянутым в этом файле, доступ к ftp будет запрещён).
Для анонимного доступа к серверу необходимо создать учётную запись с именем “ftp”. Корневым каталогом и будет его домашняя папка.

3. Создаем файл /etc/ftpchroot и заполняем его по такому шаблону:

<имя пользователя> <путь к папке>
<@ имя группы> # это для того, чтобы все пользователи данной группы были ограничены одной папкой (можно не указывать).

test /home/test
@ wheel

4. Устанавливаем нужные права на папку /home/test (то, что мы хотим разрешить/запретить пользователю test).

5. При необходимости редактируем:
/etc/ftphosts – настройка виртуальных хостов
/etc/ftpwelcome – приветственное сообщение
/etc/ftpmotd – приветственное сообщение, выводимое при входе на сервер

6. Определяемся, как мы будем запускать сервер – через inetd, или же как standalone.
В первом случае в файле /etc/inetd.conf раскоментируем строчку

ftp stream tcp nowait root usr/liexec/ftpd ftpd -l

Во втором случае для запуска используем скрипт /etc/rc.d/ftpd:

Если его в системе нет (старые версии FreeBSD), создаём вручную:

#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/ftpd,v 1.1 2006/01/21 18:08:15 yar Exp $
#

# PROVIDE: ftpd
# REQUIRE: LOGIN cleanvar

name=”ftpd”
rcvar=`set_rcvar`
command=”/usr/libexec/${name}”
pidfile=”/var/run/${name}.pid”
start_precmd=ftpd_prestart

ftpd_prestart()
{
rc_flags=”-D ${rc_flags}”
return 0
}

load_rc_config $name
run_rc_command “$1″

Вот и всё :) Заходим на свой сервер и радуемся жизни;)

Материал взят с сайта:

В помощь веб-серверу нужен FTP сервер, я долго смотрел на различные сервера.
Выбор мой остановился на Pure-FTPd, так как понятные и удобный конфигурационный файл, возможность задавать права доступа и директории в MySQL базе, безопасность.
Хотя каждый выбирает что нравится. И так мне нужна возможность изменять по ftp папку /usr/local/www/ и возможность загрузки файлов анонимно в публичную папку.
Обновляем дерево портов и переходим
cd /usr/ports/ftp/pure-ftpd
Далее установим с нужными нам параметрами make install clean
Выбираем необходимые параметры, описание параметров такие:
ANONDELETE - Разрешает анонимным пользователям удалять файлы ANONRENAME - Разрешает анонимным пользователям переименовывать файлы ANONRESUME - Разрешает анонимным пользователям возобновлять загрузку DOCS - Документация EXAMPLES - Примеры LARGEFILE – Возможность загрузки файлов больше двух гигабайт LDAP Support for users in LDAP directories MYSQL - Пользователи в MySQL базе данных PAM - PAM аутентификация PERUSERLIMITS Per-user concurrency limits PGSQL Пользователи в PostgreSQL базе данных PRIVSEP - Разрешает разделять привилегии SENDFILE - Системный вызов sendfile THROTTLING – Разрешает устанавливать ограничение скорости TLS - Поддержка TLS UPLOADSCRIPT поддержка uploadscript демон UTF8 – Поддержка кодировки UTF-8 VIRTUALCHROOT - Позволяет ограничить пользователя своим каталогом

Я не стал выбирать MySQL, так как это удобно когда надо часто менять привилегии, добавлять новых пользователей через удаленный интерфейс работы с MySQL, а мне это не нужно. Будем использовать встроенную в Pure-FTPd базу пользователей и привилегий.
Дожидаемся окончания установки. Файл конфигурации находится по адресу /usr/local/etc/pure-ftpd.conf (создаем свой или на основе pure-ftpd.conf.sample) Редактируем содержимое файла pure-ftpd.conf:
# Please don"t forget to have a look at documentation at http://www.pureftpd.org/documentation.shtml for a complete list of options. # Chroot в домашних деректориях пользователей. ChrootEveryone yes # Если выбрано no в ChrootEveryone, то следующие группы не Chroot, остальные будут. # TrustedGID 100 # Совместимость с кривыми клиентами BrokenClientsCompatibility no # Максимальное количество одновременно подключенных пользователей. MaxClientsNumber 50 # Запускать в фоне. Daemonize yes # Максимальное количество пользователей с одно IP адреса. MaxClientsPerIP 15 # Логировать команды клиентов. Для логирования ответов сервера продублировать строчку. VerboseLog no # Не показывать файлы начинающиеся с точки DisplayDotFiles yes # Только анонимный FTP. Ставим no, так как нужна авторизация. AnonymousOnly no # Запретить анонимный доступ. Мне нужен анонимный доступ, ставлю no. NoAnonymous no # Syslog параметры (auth, authpriv, daemon, ftp, security, user, local*). Для отключения лога ставим "none". Мне логи не нужны, так как SSD. По умолчанию ftp. SyslogFacility none # Показывать состояние куков. Display fortune cookies. # FortunesFile /usr/share/fortune/zippy # Не переводить IP адреса в имена хостов. DontResolve yes # Время простоя после которого разрывается соеденение. MaxIdleTime 15 # Если используется несколько методов аутентификации, то они выполняются в последовательности как указаны в файле конфигурации. Если не верный пароль, то процесс останавливается. # LDAP файл конфигурации. # LDAPConfigFile /etc/pureftpd-ldap.conf # MySQL файл конфигурации. # MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf # Postgres файл конфигурации. # PGSQLConfigFile /etc/pureftpd-pgsql.conf # PureDB база данных пользователей. Её и буду использовать. Указываем адрес к файлу PureDB /usr/local/etc/pureftpd.pdb # Путь к сокету pure-authd. # ExtAuth /var/run/ftpd.sock # Использовать PAM аутентификация. # PAMAuthentication yes # Использовать Unix аутентификация # UnixAuthentication yes # "Предел рекурсии команды ls. Перовое количество файлов, второе количество подкаталогов. LimitRecursion 10000 8 # Можно ли создавать директории анонимным пользователям. AnonymousCanCreateDirs no # Если система загружена больше чем указано, анонимные пользователи не могут скачивать. MaxLoad 4 # Диапазон портов для пассивного соединения. # PassivePortRange 30000 30100 # Принудительный IP адрес в PASV/EPSV/SPSV ответах для NAT. # ForcePassiveIP 192.168.0.1 # Соотношение загруженного к скаченного для анонимных пользователей. # AnonymousRatio 1 10 # Соотношение загруженного к скаченного для всех пользователей. # UserRatio 1 10 # Запрещает скачивать файлы с именем пользователя ftp. Файлы должны одобрены администратором. Мне это не нужно. AntiWarez no # IP Адрес и порт сервера. По умолчанию все IP адреса и 21 порт. # Bind 127.0.0.1,21 # Максимальная скорость для анонимных пользователей (KB/s). # AnonymousBandwidth 8 # Максимальная скорость для всех пользователей включая анонимных (KB/s). # UserBandwidth 8 # Маска для создания файлов. :. Что бы получить umask, нужно из 777 вычесть права доступа которые хотим установить. Umask 237:027 соответствует правам: 540 для файлов и 750 для директории. Umask 237:027 # Минимальный UID с которого пользователь будет пущен MinUID 100 # Разрешает FXP для пользователей. Передача файла с ftp на ftp на прямую. AllowUserFXP no # Разрешает FXP для анонимных пользователей. AllowAnonymousFXP no # Пользователи не могут удалять и изменять файлы начинающиеся с точки. ProhibitDotFilesWrite no # Запретить чтение файлов начинающихся с точки. ProhibitDotFilesRead no # Некогда не перезаписывать загружаемые файлы с таким же именем, создавать файл с именем: file.1, file.2, file.3 и так далее. AutoRename no # Запретить загрузку файлов анонимными пользователями. Мне нужна такая возможность, поэтому no. AnonymousCantUpload no # Только подключенные к этому IP адресу могут быть не анонимны. Мне доступ для администрирование все локальной сети не нужен. Поэтому прописываю IP адрес сетевой карты которая смотрит в локальную сеть. TrustedIP 192.168.0.1 # Добавлять PID в каждую строчку лога. #LogPID yes # Создание дополнительных логов в различных форматах, в зависимости какой нужен: apache, лог статистика, в формате W3C. # AltLog clf:/var/log/pureftpd.log # AltLog stats:/var/log/pureftpd.log # AltLog w3c:/var/log/pureftpd.log # Отключить команду chmod для пользователей #NoChmod yes # Позволять пользователя загружать, но не удалять файлы. #KeepAllFiles yes # Автоматически создавать домашнюю директорию пользователя. #CreateHomeDir yes # Квота для каждого пользователя. Первое количество файлов, второе размер в мегабайтах. #Quota 1000:10 # Путь к PID файлу, по умолчанию /var/run/pure-ftpd.pid #PIDFile /var/run/pure-ftpd.pid # Если pure-ftpd скомпилирован с поддержкой pure-uploadscript, то эта опция будет записывать информацию о загруженных файлах в /var/run/pure-ftpd.upload.pipe файл. #CallUploadScript yes # Если диск заполнен больше чем указанное знамение, анонимные пользователи не могут загружать файлы. MaxDiskUsage 75 # Запретить возможность переименовывания файлов пользователям. #NoRename yes # Если у нас хостинг используем эту опцию. Необходимо при совместной работе, оставлю все же загрузка для анонимных пользователей есть. CustomerProof yes # Работает если pure-ftpd скомпилирован с --with-peruserlimits. Первое максимальное количество сессий на пользователя, второе количество сессий на всех пользователей. # PerUserLimits 3:20 # Если файлы с одинаковыми имена, то файл будет загружаться во временную папку и как только загрузится заменит старый файл. Актуально для веб-сервера когда загружаются больше php скрипты или очень маленькая скорость загрузки. Я особо полезности не вижу. # NoTruncate yes # Доступны следующие значения: # 0: SSL/TLS отключено (по умолчанию). # 1: Использовать шифрованные и обычные подключения. # 2: Использовать только SSL/TLS, включая анонимных пользователей # Используйте только если: pure-ftpd скомпилирован с поддержкой SSL/TLS (--with-tls), существует валидный сертификат, зашли совместимые клиенты. # TLS 1 # Список шифрования которое будет принимать SSL/TLS подключения # TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 # По умолчанию используется обе версии протокола. Использовать только IP четвертой версии или шестой версии. IPV4Only yes # IPV6Only yes # Работает если pure-ftpd скомпилирован с опцией --with-rfc2640. Определяет кодировку для клиентов которые не используют UTF-8 # FileSystemCharset big5 # ClientCharset big5
Теперь создадим пользователя для доступа к папке веб-сервера.
Создадим пользователя ftp во FreeBSD, его домашняя директория будет директорией анонимного ftp. У меня уже была группа ftp во FreeBSD, поэтому создадим только пользователя и его директорию.
pw useradd ftp -g ftp -d /usr/local/ftp mkdir /usr/local/ftp
Все пользователь ftp равняется пользователю anonymous в Pure-FTPd.

Создадим пользователя web во Pure-FTPd который будет ходить с правами пользователя www с указанным паролем. После добавления всех пользователей выполнить команду pure-pw mkdb что бы создать файл pureftpd.pdb
pure-pw useradd web -u www -d /usr/local/www # Password: # Enter it again: pure-pw mkdb
Добавим Pure-FTPd в загрузку (/etc/rc.conf)
pureftpd_enable="YES"
Запустим Pure-FTPd
/usr/local/etc/rc.d/pure-ftpd start
Проверим наш FTP сервер на предмет правильности выставления привилегий, возможность работы анонимным пользователями, смотрим лог файл на предмет ошибок.
Если что-то не работает разбираемся возможно где-то не так выставлены права доступа к папками, я с этим немного столкнулся.

Протокол передачи файлов (FTP) - это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование .

FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP . Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

vsftpd - установка FTP сервера

vsftpd - это сервис FTP , доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:

Sudo apt install vsftpd

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd , поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:

Sudo systemctl start vsftpd sudo systemctl enable vsftpd

В Ubuntu Server может использоваться файервол ufw . Тогда вам потребуется разрешить порты 20 и 21

Sudo ufw allow 20/tcp sudo ufw allow 21/tcp

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

Man 5 vsftpd.conf

для уточнения деталей по каждому параметру.

Доступ к FTP серверу может быть организован двумя способами:

В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP . Это скрывает корень файловой системы от удаленных сессий.

Настройка анонимного доступа по FTP

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

Anonymous_enable=YES

В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP .

Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:

Sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp

После изменений перезапустите vsftpd:

Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).

По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:

Anon_upload_enable=YES

Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.

Настройка авторизованного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

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

Local_enable=YES

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:

Write_enable=YES

после чего перезагрузите vsftpd:

Sudo service vsftpd restart

Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

Chroot_local_user=YES

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:

Sudo service vsftpd restart

Если вы сняли комментарии со всех трёх строчек, то пользователи из списка не будут ограничены своими домашними каталогами, в отличии от пользователей не вошедших в список

Аналогично файл /etc/ftpusers содержит список пользователей, которым запрещен доступ по FTP . По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.

Если при попытке подключения вы видите ошибку :

Ответ: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

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

    Запретить запись в домашний каталог локальному пользователю (подходит не всем и не всегда)

sudo chmod a-w /home/user/ allow_writeable_chroot=YES

    Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог

local_root=/home

Шифрование

FTP может быть зашифрованным при использовании FTPS . В отличие от SFTP , FTPS - это FTP поверх SSL . SFTP - это сессия, подобная FTP , по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

Ssl_enable=Yes

Также обратите внимание на опции сертификата и ключа:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert . Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты .

Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:

Sudo service restart vsftpd

Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP , но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:

# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:

Auth required pam_shells.so

Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.

Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP клиент командной строки lftp также имеет возможность использовать FTPS.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: