- Как настроить FTP-сервер с VSFTPD в Debian 9
- Подготовка
- Установка vsftpd на Debian 9
- Настройка vsftpd
- 1. Доступ по FTP
- 2. Включение загрузки
- 3. Chroot Jail
- 4. Пассивные FTP-соединения
- 5. Ограничение входа пользователя
- 6. Защита передачи с помощью SSL / TLS
- Перезапустите службу vsftpd
- Открытие брандмауэра
- Создание пользователя FTP
- Отключение доступа к оболочке
- Выводы
- Настройка FTP сервера в Debian 5 (Lenny)
- Простая конфигурация FTP сервера
- Ещё статьи о Debian
- Установка Debian
- Настройка сети в Debian 9
- Настройка FTP сервера. Более сложная конфигурация.
- Разметка дисков в Debian с помощью LVM
- SSH Подключение с использованием открытого ключа.
- Система помощи в Debian Linux
Как настроить 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 каталогом и каталогом загрузки с возможностью записи для загрузки файлов.
Метод 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-й шаг.
- Простая конфигурация. Анонимные пользователи имеют доступ только на чтение. Для записи информации на FTP сервер используется пользователь ftpuser. Разрешён доступ локальных пользователей к своим домашним каталогам.
- Более сложная конфигурация. Анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся в MySQL. Каждому виртуальному пользователю можно задать свои параметры работы с FTP. Используется PAM авторизация.
- Более защищённая конфигурация. Анонимные пользователи не используются. Используются только виртуальные пользователи, учётные записи которых хранятся в MySQL. Для каждого пользователя можно задать свою конфигурацию. Используется SSL.
- Системный пользователь ftp, который добавляется в группу nogroup
- Домашняя директория пользователя ftp — /home/ftp. Интересная особенность: при установке пакета выдаётся сообщение о том, что домашний каталог НЕ создаётся!
- Создаётся файл /etc/ftpusers. В нём перечислены пользователи, которым запрещён доступ к FTP.
Создайте нового пользователя с именем 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 сервера
#aptitude install vsftpd
При этом создаются:
Пользователь 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 отлично документированы. Можно найти ответ на любой вопрос; нужно только знать где искать.
Источник