Ftp server linux debian

Как настроить FTP-сервер с VSFTPD в Debian 9

FTP (протокол передачи файлов) — это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для более безопасной и быстрой передачи данных используйте SCP или SFTP .

Для Linux доступно множество FTP-серверов с открытым исходным кодом. Наиболее популярными и широко используемыми являются PureFTPd , ProFTPD и vsftpd .

В этом руководстве объясняется, как установить и настроить vsftpd (Very Secure Ftp Daemon) в Debian 9. vsftpd — стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd, чтобы ограничить пользователей их домашним каталогом и зашифровать всю передачу с помощью SSL / TLS.

Подготовка

Пользователь, под которым вы вошли в систему, должен иметь права sudo, чтобы иметь возможность устанавливать пакеты.

Установка vsftpd на Debian 9

Пакет vsftpd доступен в репозиториях Debian. Установка довольно проста:

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

Результат будет выглядеть примерно так, как показано ниже, показывая, что служба vsftpd активна и работает:

Настройка vsftpd

Сервер vsftpd можно настроить, изменив файл vsftpd.conf , который находится в каталоге /etc

Большинство настроек хорошо документированы в файле конфигурации. Чтобы узнать обо всех доступных вариантах, посетите официальную страницу vsftpd .

В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.

Начните с открытия файла конфигурации vsftpd:

1. Доступ по FTP

Найдите директивы anonymous_enable и local_enable и убедитесь, что ваша конфигурация соответствует строкам ниже:

Это гарантирует, что только локальные пользователи могут получить доступ к FTP-серверу.

2. Включение загрузки

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

3. Chroot Jail

Чтобы предотвратить доступ пользователей FTP к файлам вне их домашних каталогов, раскомментируйте параметр chroot .

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

Используйте один из приведенных ниже методов, чтобы разрешить загрузку при включенном chroot.

Метод 1. — Рекомендуемый метод разрешить загрузку — оставить chroot включенным и настроить каталоги FTP. В этом руководстве мы создадим каталог ftp внутри дома пользователя, который будет служить uploads каталогом и каталогом загрузки с возможностью записи для загрузки файлов.

Читайте также:  Как отформатировать жесткий диск если windows не может

Метод 2. Другой вариант — добавить следующую директиву в файл конфигурации vsftpd. Используйте эту опцию, если вам необходимо предоставить пользователю доступ с правом записи к его домашнему каталогу.

4. Пассивные FTP-соединения

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

5. Ограничение входа пользователя

Чтобы разрешить доступ к FTP-серверу только определенным пользователям, добавьте следующие строки в конец файла:

Когда этот параметр включен, вам необходимо явно указать, какие пользователи могут входить в систему, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).

6. Защита передачи с помощью SSL / TLS

Чтобы зашифровать FTP-передачу с помощью SSL / TLS, вам потребуется сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.

Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный SSL-сертификат Let’s Encrypt .

В этом руководстве мы создадим самозаверяющий сертификат SSL с помощью команды openssl .

Следующая команда создаст 2048-битный закрытый ключ и самозаверяющий сертификат, действительный в течение 10 лет. И закрытый ключ, и сертификат будут сохранены в одном файле:

После создания SSL-сертификата откройте файл конфигурации vsftpd:

Найти rsa_cert_file и rsa_private_key_file директивы, изменить их значения на pam путь к файлу и установите ssl_enable директиву YES :

Если не указано иное, FTP-сервер будет использовать только TLS для безопасных соединений.

Перезапустите службу vsftpd

После того, как вы закончите редактирование, конфигурационный файл vsftpd (без комментариев) должен выглядеть примерно так:

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

Открытие брандмауэра

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21 (командный порт FTP), порт 20 (порт данных FTP) и 30000-31000 (диапазон пассивных портов), выполните следующие команды:

Чтобы избежать блокировки, мы также откроем порт 22 :

Перезагрузите правила UFW, отключив и снова включив UFW:

Чтобы проверить запуск изменений:

Создание пользователя FTP

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить доступ по FTP, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в вашем файле конфигурации, пропустите 3-й шаг.

    Создайте нового пользователя с именем newftpuser :

    Добавьте пользователя в список разрешенных пользователей FTP:

    Создайте дерево каталогов FTP и установите правильные разрешения :

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload .

    На этом этапе ваш FTP-сервер полностью работоспособен, и вы должны иметь возможность подключиться к своему серверу с помощью любого FTP-клиента, который можно настроить для использования шифрования TLS, например FileZilla .

    Отключение доступа к оболочке

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

    Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что его учетная запись ограничена только доступом по FTP.

    Создайте оболочку /bin/ftponly и сделайте ее исполняемой:

    Добавьте новую оболочку в список допустимых оболочек в /etc/shells :

    Измените оболочку пользователя на /bin/ftponly :

    Используйте ту же команду, чтобы изменить оболочку всех пользователей, которым вы хотите предоставить только доступ по FTP.

    Выводы

    В этом руководстве вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Debian 9.

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

    Источник

    Настройка FTP сервера в Debian 5 (Lenny)

    В этой статье я опишу настройку FTP сервера на базе Debian 5 (Lenny). Будем использовать vsftpd. VSFTPD (Very Secure FTP Daemon) — как следует из названия, очень защищённый демон FTP, с хорошей производительностью, поддерживаются: IPv6, SSL, виртуальные пользователи, есть контроль скорости полосы пропускания. На vsftpd работают ftp.debian.org, ftp.freebsd.org, ftp.suse.com, ftp.openbsd.org, ftp.gnu.org, ftp.kernel.org, ftp.gnome.org, ftp.gimp.org, ftp.rpmfind.net, ftp.linux.org.uk, ftp-stud.fht-esslingen.de, gd.tuwien.ac.at, ftp.sunet.se, ftp.ximian.com, ftp.engardelinux.org, ftp.sunsite.org.uk, ftp.isc.org, ftp.redhat.com.

    В статье будут описаны несколько конфигураций:

    • Простая конфигурация. Анонимные пользователи имеют доступ только на чтение. Для записи информации на FTP сервер используется пользователь ftpuser. Разрешён доступ локальных пользователей к своим домашним каталогам.
    • Более сложная конфигурация. Анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся в MySQL. Каждому виртуальному пользователю можно задать свои параметры работы с FTP. Используется PAM авторизация.
    • Более защищённая конфигурация. Анонимные пользователи не используются. Используются только виртуальные пользователи, учётные записи которых хранятся в MySQL. Для каждого пользователя можно задать свою конфигурацию. Используется SSL.

    Простая конфигурация FTP сервера

    #aptitude install vsftpd

    При этом создаются:

    • Системный пользователь ftp, который добавляется в группу nogroup
    • Домашняя директория пользователя ftp — /home/ftp. Интересная особенность: при установке пакета выдаётся сообщение о том, что домашний каталог НЕ создаётся!
    • Создаётся файл /etc/ftpusers. В нём перечислены пользователи, которым запрещён доступ к FTP.

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

    # usermod -d /var/ftp ftp

    Удалим прежнюю директорию этого пользователя:

    # rmdir /home/ftp

    Теперь настроим пользователя, у которого будут права записи в корневую директорию FTP сервера:

    Cоздаём группу ftpuser

    # addgroup ftpuser

    Создаём пользователя ftpuser, добаляем его в группу ftpuser и устанавливаем домашним каталогом директорию FTP сервера, а так же меняем пароль

    #useradd -d /var/ftp -g ftpuser ftpuser

    #passwd ftpuser

    Создаём директорию FTP сервера и устанавливаем права:

    # mkdir /var/ftp

    # chmod 555 /var/ftp

    # chown root:ftpuser /var/ftp

    Создаём публичный каталог.

    # mkdir /var/ftp/pub

    # chown ftpuser:ftpuser /var/ftp/pub

    Конфигурационный файл vsftpd располагается в /etc/vsftpd.conf. Сделаем его резервную копию.

    #cp /etc/vsftpd.conf /etc/vsftpd.conf_old

    Теперь очистим /etc/vsftpd.conf, откроем текстовым редактором:

    # cat /dev/null > /etc/vsftpd.conf

    # vim /etc/vsftpd.conf

    # Запускать vsftpd в независимом режиме

    listen=YES

    # Делаем анонимный доступ

    anonymous_enable=YES

    # Анонимные входят без пароля

    no_anon_password=YES

    # Анонимные будут попадать в публичную директорию

    anon_root=/var/ftp/pub

    anon_umask=022

    # Разрешаем вход локальным пользователям с правом записи в домашних директориях

    local_enable=YES

    write_enable=YES

    local_umask=022

    # Локальные пользователи будут входить только в свои домашние каталоги

    chroot_local_user=YES

    chroot_list_enable=NO

    # Сообщения будут записываться в собственный журнал

    xferlog_enable=YES

    xferlog_file=/var/log/vsftpd.log

    Теперь перестартуем vsftpd:

    /etc/init.d/vsftpd restart

    Если всё работает как надо и сервер будет использоваться не только локально, то добавим ещё несколько строк после listen:

    # Установки публичного FTP

    max_clients=100

    max_per_ip=10

    hide_ids=YES

    idle_session_timeout=600

    data_connection_timeout=120

    dirmessage_enable=YES

    ftpd_banner=Welcome!

    Скачать готовый конфигурационный файл можно по следующей ссылке.

    Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

    Об авторе:

    Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

    Ещё статьи о Debian

    Установка Debian

    Эта статья об установке операционной системы Debian GNU/Linux. Тема статьи достаточно обширна и это скорее тема для книги, нежели для статьи. Мне бы хотелось сделать статью «на вырост», т. е. со временем дополняя её ссылками на другие.

    Настройка сети в Debian 9

    В этой статье я опишу простую настройку сети для сервера под управлением ОС Debian 9 (Stretch). Эта статья является переработкой моей более ранней статьи «Настройка сети в Debian». Она была справедлива для версий старше Debian 9. В Debian 9 многое.

    Настройка FTP сервера. Более сложная конфигурация.

    Рассмотрим более сложную конфигурацию ftp сервера: анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся.

    Разметка дисков в Debian с помощью LVM

    Эта статья является часть цикла статей о Debian/GNU Linux и является дополнением к статье «Установка Debian на сервер». В этой статье я расскажу, как произвести разметку диска используя LVM.LVM – это аббревиатура от Logical Volume Manager, что переводится как менеджер.

    SSH Подключение с использованием открытого ключа.

    Для подключения с авторизацией по открытому ключу сначала нужно сгенерировать секретный ключ на стороне клиента. Делаем это с правами обычного пользователя: $ ssh-keygen –t rsa В процессе генерации пары ключей сначала будет предложено ввести желаемое название.

    Система помощи в Debian Linux

    Изучать операционную систему и применять полученные знания на практике, не заглядывая в документацию, невозможно. Операционные системы Linux/Unix отлично документированы. Можно найти ответ на любой вопрос; нужно только знать где искать.

    Источник

    Читайте также:  Teamspeak ���� ������ linux
Оцените статью