Debian, Dojo, Django, Python

Делюсь опытом в описанных технологиях. Блог в первую очередь выполняет роль памяток для меня самого.

Показаны сообщения с ярлыком ftp. Показать все сообщения
Показаны сообщения с ярлыком ftp. Показать все сообщения

Настройка 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.

  1. Установка

    yum install -i vsftpd
  2. После установки нужно добавить нужный демон в автозагрузку:

    chkconfig vsftpd on
  3. Откроем основной файл настроек (новички вместо vim могут использовать nano)

    vim /etc/vsftpd/vsftpd.conf
  4. Для начала закроем анонимный доступ:

    anonymous_enable=NO
  5. Открыть доступ авторизованным пользователям:

    local_enable=YES
  6. Разрешить запись:

    write_enable=YES
  7. Можно написать что угодно, это служебное сообщение, которое выводится при подключении к данному серверу:

    ftpd_banner=Welcome to my FTP-server!
  8. Сохраняем изменения и перезапускаем службу:

    /etc/init.d/vsftpd restart
  9. Следует учесть, что если нужно дать доступ в систему пользователю, у которого нет валидного shell'а, следует указать его shell как nologin командой

    usermod --shell /sbin/nologin %имя_пользователя%

    В противном случае при попытке входа на FTP пользователь будет получать ошибку автризации.

  10. Если в системе используется SELinux, то нужно разрешить несколько действий нашему демону:

    setsebool -P allow_ftpd_full_access on
    setsebool -P ftp_home_dir on

    Ключ -P используется для того, чтобы настройки сохранились после перезагрузки.

Установка и настройка ProFTPd в Ubuntu

I. Установка и настройка сервера.

Все действия производятся от имени root.

  1. Ставим:

    apt-get install proftpd
  2. Указываем, как запускать, через 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
  3. После всех настроек не забываем перезапустить демон proftpd

    /etc/init.d/proftpd restart

    Также работает команда

    service proftpd restart

    Сервер готов к использованию.

Добавление пользователей.

У нас есть рабочий FTP-сервер, необходимо добавить его пользователей. Пусть все они, для удобства, хранят свои данные в каталоге /var/ftp/%имя_пользователя%. Добавим одного такого пользователя, создав для подобных ему группу ftp_users.

  1. Создадим группу:

    addgroup ftp_users
  2. Добавим пользователя ftp01, указав расположение его домашнего каталога, оболочку, запрет на вход в систему и группу.

    adduser ftp01 --home /var/ftp/ftp01 --shell /bin/false --disabled-login --ingroup ftp_users
  3. Зададим пароль свежесозданному пользователю (на экране не будет видно ничего, даже звездочек):

    passwd ftp01
    Password:
    Confirm password:
    Password succesfully changed.