Настройка vsftpd в Debian 7
В этой статье я расскажу, как настроить vsftpd в Debian 7. Все действия делаются от имени root.
ПРЕДУПРЕЖДЕНИЕ: протокол FTP не является безопасным, поэтому лучше его не использовать вовсе. Самое лучшее решение данной проблемы - SFTP, который нативно поддерживается openssh-сервером в Debian. В качестве клиента для Windows рекомендую WinScp.
Установка
apt-get install vsftpd
Основной файл настроек лежит прямо в каталоге /etc. Отредактируем его:
vim /etc/vsftpd
В итоге файл должен выглядеть примерно так:
listen=YES #Слушать по протоколу IPv4, для IPv6+IPv4 - настройка в самом конце, закомментирована
anonymous_enable=NO #Запретить анонимный доступ
local_enable=YES #Разрешить входить по системной записи
write_enable=YES #Разрешить запись
dirmessage_enable=YES #Разрешить сообщения при смене директории
use_localtime=YES #Использовать локальное время сервера
xferlog_enable=YES #Вести лог загрузок и закачек
connect_from_port_20=YES #Осуществлять передачу данных через 20-ый порт (для безопасности)
ftpd_banner=Welcome to virtual FTP service. #Сообщение-приветствие сервера
#Если включено, то email'ы из указанного файла будут запрещены для анонимного доступа
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES #Пользователи "заперты" в своих домашних каталогах
#Настройки ниже нужно включить, если необходимо закрыть только некоторых пользователей
#в их домашних каталогах. Список будет храниться в файле, указанном в параметре chroot_list_file
#
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
#По-умолчанию эта опция имеет значение YES, и vsftpd проверяет, что у подключившегося пользователя
#в системе есть валидный shell. Если shell имеет значение false или не определен, вход на сервер
#будет отклонен с сообщением Invalid password
check_shell=NO
Перезапускаем:
service vsftpd restart
Для проверки работоспособности сервера можно подключиться к нему командой
ftp localhost
Если программа ftp не установлена, ее можно установить командой
apt-get install ftp
Сервер запросит пароль, и если всё указано верно, то будет осуществлён вход под текущей учётной записью.
Настройка vsftpd в CentOS
Я расскажу, как настроить доступ к FTP авторизованным пользователям в CentOS 6.4 (статья давно не обновлялась, а т.к. я прочно перешёл на Debian, то ждать переписывания не стоит).
Все операции делаются от имени root.
-
Установка
yum install -i vsftpd -
После установки нужно добавить нужный демон в автозагрузку:
chkconfig vsftpd on -
Откроем основной файл настроек (новички вместо vim могут использовать nano)
vim /etc/vsftpd/vsftpd.conf -
Для начала закроем анонимный доступ:
anonymous_enable=NO -
Открыть доступ авторизованным пользователям:
local_enable=YES -
Разрешить запись:
write_enable=YES -
Можно написать что угодно, это служебное сообщение, которое выводится при подключении к данному серверу:
ftpd_banner=Welcome to my FTP-server! -
Сохраняем изменения и перезапускаем службу:
/etc/init.d/vsftpd restart -
Следует учесть, что если нужно дать доступ в систему пользователю, у которого нет валидного shell'а, следует указать его shell как nologin командой
usermod --shell /sbin/nologin %имя_пользователя%В противном случае при попытке входа на FTP пользователь будет получать ошибку автризации.
-
Если в системе используется SELinux, то нужно разрешить несколько действий нашему демону:
setsebool -P allow_ftpd_full_access on setsebool -P ftp_home_dir onКлюч -P используется для того, чтобы настройки сохранились после перезагрузки.
Установка и настройка ProFTPd в Ubuntu
I. Установка и настройка сервера.
Все действия производятся от имени root.
-
Ставим:
apt-get install proftpd -
Указываем, как запускать, через inetd (маленькая нагрузка) или самостоятельно (десятки пользователей). Если выбрать inetd, то сервер, скорее всего, не стартанёт. Этот глюк был замечен мной и на Ubuntu Server 12.04.1, и на Debian 6.0.6. Если у вас то же самое, то смотрите ниже.
vi /etc/proftpd/proftpd.confЕсли надо, переименовываем сервер:
ServerName "Ultimate Super Mega FTP Server"Меняем ServerType, если он не запускается как демон inetd
ServerType standaloneРаскомментируем вот эту строку, чтобы разрешить пользователям работать только в своих домашних каталогах.
DefaultRoot ~Разрешаем пользователям пользоваться FTP, даже если им запрещено логиниться в системе:
RequireValidShell off -
После всех настроек не забываем перезапустить демон proftpd
/etc/init.d/proftpd restartТакже работает команда
service proftpd restartСервер готов к использованию.
Добавление пользователей.
У нас есть рабочий FTP-сервер, необходимо добавить его пользователей. Пусть все они, для удобства, хранят свои данные в каталоге /var/ftp/%имя_пользователя%. Добавим одного такого пользователя, создав для подобных ему группу ftp_users.
-
Создадим группу:
addgroup ftp_users -
Добавим пользователя
ftp01, указав расположение его домашнего каталога, оболочку, запрет на вход в систему и группу.adduser ftp01 --home /var/ftp/ftp01 --shell /bin/false --disabled-login --ingroup ftp_users -
Зададим пароль свежесозданному пользователю (на экране не будет видно ничего, даже звездочек):
passwd ftp01 Password: Confirm password: Password succesfully changed.