Инструкция по настройке FTP-сервера

Хранение записей разговоров на внешнем ftp-сервере возможно, если на ВАТС подключена соответствующая услуга.
Она доступна на тарифах: Свободный, Корпорация, Максимальная, Эксклюзивная, Индивидуальная. 

Настройка в Личном Кабинете

Подключение производится в Личном Кабинете в разделе Виртуальная АТС – Запись разговоров – Настройки - Способ Хранения

IP-адрес или доменное имя – здесь необходимо ввести имя или IP-адрес FTPсервера. Поле является обязательным для заполнения.
Порт – порт для ftp сервера, значение по умолчанию: 21. Поле является 
обязательным для заполнения.
Учетная запись - имя пользователя для доступа к ftp-серверу. Поле является 
обязательным для заполнения.
Пароль – пароль доступа к ftp-серверу.Поле является обязательным для 
заполнения.
Режим работы ftp – допустимые варианты FTP, SFTP, FTPS.
• Каталог на ftp-сервере для сохранения записей разговоров.
Кнопка "Проверить подключение" - по клику на кнопке выполняется проверка доступа 
к ftp серверу.

Настройка FTP-сервера

Общие рекомендации

Общие рекомендации:

- выбирать ПО в соответствии с компетенциями сотрудников, которые будут осуществлять настройку и тех. поддержку FTP/FTPS/SFTP-сервера - это позволит решать возникающие вопросы оперативно;

- в случае, если необходима работа (чтение/запись) с большим объемом данных, то следует применять на сервере SSD диски;

- добавить мониторинг за машиной, на которой развернут FTP/FTPS/SFTP-сервер - это позволит предупреждать появление проблем, а не устранять их.

Особенности работы протокола FTP

Требования к FTP-серверу:

- настроен для работы в пассивном режиме;

- настроена передача данных по сети в бинарном режиме представления данных;

- аутентификация по логину и паролю (анонимное подключение запрещено);

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

Требования к FTPS-серверу:

- настроен для работы в пассивном режиме;

- настроена передача данных по сети в бинарном режиме представления данных;

- аутентификация по логину и паролю (анонимное подключение запрещено);

- подключение к FTPS должно быть настроено с явной авторизацией используя TLS протокол;

- в конфигурации FTPS необходимо отключить ssl session reuse;

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

Требования к SFTP-серверу:

- аутентификация по логину и паролю;

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

Далее приведены примеры организации FTP, SFTP и FTPS сервера на базе операционных систем Centos7 и Windows.

Сервер FTP

1. Порядок настройки vsftpd на операционной системе Centos7

vsftpd - один из наиболее популярных FTP-серверов для Linux. Он является FTP-сервером по умолчанию многих операционных систем, и обслуживает официальные репозитории ftp.debian.orgftp.redhat.comftp.openbsd.orgftp.freebsd.org. Также используется на официальном FTP ядра Linux (см. раздел "vsftpd" в википедии).

1.1. Настройка безопасного FTP-сервера

- завести нового пользователя

useradd -s /sbin/nologin имя_пользователя

- установить пароль для нового пользователя

passwd имя_пользователя

- установить сервер vsftpd

yum update

yum install vsftpd

- заменить содержимое файла /etc/vsftpd/vsftpd.conf на следующее:

# When "listen" directive is enabled, vsftpd runs in standalone mode and

# listens on IPv4 sockets. This directive cannot be used in conjunction

# with the listen_ipv6 directive.

listen=YES

# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6

# sockets, you must run two copies of vsftpd with two configuration files.

# Make sure, that one of the listen options is commented !!

listen_ipv6=NO

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=NO

# Uncomment this to allow local users to log in.

local_enable=YES

# Uncomment this to enable any form of FTP write command.

write_enable=YES

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

chroot_local_user=YES

# Some parameters might not be necessary for your own setup.

# If you want the chroot environment to be writable you will

# need to add the following to the configuration file

allow_writeable_chroot=YES

# Pam service name for vsftpd

pam_service_name=vsftpd

# It may be necessary to adjust the default FTP listening port and the passive mode data ports:

# For FTP servers exposed to the web, to reduce the likelihood of the server being attacked,

# the listening port can be changed to something other than the standard port 21.

# To limit the passive mode ports to open ports, a range can be provided.

# The ports can be defined in the configuration file as illustrated below

pasv_enable=YES

pasv_min_port=49000

pasv_max_port=55000

# It\'s possible to prevent users from logging into the FTP server by adding two lines to /etc/vsftpd.conf

userlist_enable=YES

userlist_file=/etc/vsftpd/user_list

# If you only want to allow certain users to login, add the line

userlist_deny=NO

user_config_dir=/etc/vsftpd/users/

- в конец файла /etc/vsftpd/user_list добавить строку (или создать файл и добавить в него строку):

имя_пользователя

- создать файл /etc/vsftpd/users/имя_пользователя со следующим содержимым

local_root=путь_к_директории_с_файлами

dirlist_enable=YES

download_enable=YES

write_enable=YES

В параметре local_root хранится путь, по которому будут записываться файлы.

- перезапустить sftpd сервер командой:

systemctl restart vsftpd.service

Особенности данного вида настройки:

- пользователь имеет права на работу только с директорией, которая указана в настройке local_root в файле /etc/vsftpd/users/имя_пользователя (см. выше). Другие директории на сервере для пользователя недоступны;

- настройка base_dir в ЛК работает относительно директории, которая указана в настройке local_root в файле /etc/vsftpd/users/имя_пользователя (см. выше). Полный путь на сервере будет следующий: local_root + base_dir. В случае, если значение настройки base_dir не задано, файлы будут записываться директорию , которая указана в настройке local_root в файле /etc/vsftpd/users/имя_пользователя (см. выше).

1.2 Небезопасная настройка FTP-сервера

- завести нового пользователя

useradd -s /sbin/nologin имя_пользователя

- установить пароль для нового пользователя

passwd имя_пользователя

- установить сервер vsftpd

yum update

yum install vsftpd

- заменить содержимое файла /etc/vsftpd/vsftpd.conf на следующее:

# When "listen" directive is enabled, vsftpd runs in standalone mode and

# listens on IPv4 sockets. This directive cannot be used in conjunction

# with the listen_ipv6 directive.

listen=YES

# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6

# sockets, you must run two copies of vsftpd with two configuration files.

# Make sure, that one of the listen options is commented !!

listen_ipv6=NO

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=NO

# Uncomment this to allow local users to log in.

local_enable=YES

# Uncomment this to enable any form of FTP write command.

write_enable=YES

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

chroot_local_user=NO

# Some parameters might not be necessary for your own setup.

# If you want the chroot environment to be writable you will

# need to add the following to the configuration file

allow_writeable_chroot=YES

# Pam service name for vsftpd

pam_service_name=vsftpd

# It may be necessary to adjust the default FTP listening port and the passive mode data ports:

# For FTP servers exposed to the web, to reduce the likelihood of the server being attacked,

# the listening port can be changed to something other than the standard port 21.

# To limit the passive mode ports to open ports, a range can be provided.

# The ports can be defined in the configuration file as illustrated below

pasv_enable=YES

pasv_min_port=49000

pasv_max_port=55000

# It\'s possible to prevent users from logging into the FTP server by adding two lines to /etc/vsftpd.conf

userlist_enable=YES

userlist_file=/etc/vsftpd/user_list

# If you only want to allow certain users to login, add the line

userlist_deny=NO

user_config_dir=/etc/vsftpd/users/

- перезапустить sftpd сервер командой:

systemctl restart vsftpd.service

Особенности данного вида настройки:

- пользователю для работы (создание/обновление/чтение/удаления) доступны все директории на сервере, кроме директорий которые ему запрещены правами операционной системы;

- настройка base_dir в ЛК работает относительно корневой директории сервера. В случае, если значение настройки base_dir не задано, файлы будут записываться в домашнюю директорию пользователя /home/имя_пользователя;

- в случае, если настройка base_dir в ЛК присутствует, то директория, которая в ней указана, должна быть создана заранее с помощью пользователя с правами root и для нее должен быть назначен владелец с именем пользователя имя_пользователя (создается выше).

2 Порядок настройки FileZilla Server на операционной системе Windows

FileZilla Server - один из наиболее популярных FTP-серверов для Windows. 

Настройку можно выполнить на основании документации: https://filezilla.ru/documentation/

Сервер FTPS

Особенности настройки:

- Подключение к FTPS должно быть настроено с явной авторизацией используя TLS протокол.

- В конфигурации FTPS необходимо отключить ssl session reuse:

    • для сервера vsftpd указать в файле конфигурации: require_ssl_reuse=NO;
    • для сервера proftpd указать в файле конфигурации: NoSessionReuseRequired

2.1 Конфигурационный файл для сервера vsftpd

Подробности установки и настройки сервера vsftpd указаны в пункте 1.1 (раздел Сервер FTP).

Скачать конфигурационный файл vsftpd.

2.2 Конфигурационный файл для сервера proftpd

Скачать конфигурационный файл proftpd

В случае возникновения ошибки при запуске сервера proftpd "error: no valid servers configured" необходимо выполнить команду

echo "ip hostname" >> /etc/hosts

2.3 Порядок настройки FileZilla Server на операционной системе Windows

FileZilla Server - один из наиболее популярных FTP-серверов для Windows. 

Настройку можно выполнить на основании документации: https://filezilla.ru/documentation/

Сервер SFTP

Протокол SFTP был разработан как расширение SSH-2, предназначенное для операций с файлами по защищенному каналу.

3.1 Порядок настройки на операционной системе Centos7

Настройка SFTP сервера сводится к добавлению пользователей и настройке работы этих пользователей через SSH.

3.1.1 Безопасная настройка SFTP-сервера

- завести нового пользователя

useradd -s /sbin/nologin имя_пользователя

Подстрока -s /sbin/nologin означает, что у пользователя будет присутствовать возможность соединения по SFTP и отсутствовать возможность соединения по SSH.

- установить пароль для нового пользователя

passwd имя_пользователя

- добавить в конец файла /etc/ssh/sshd_config следующее строки:

Match User имя_пользователя

X11Forwarding no

AllowTcpForwarding no

AllowAgentForwarding no

PermitTunnel no

ChrootDirectory /home

ForceCommand

internal-sftp -d /имя_пользователя

Папка, указанная в параметре ChrootDirectory, должна иметь владельца и группу “root: root” и привилегии на папку 755. Настройка ForceCommand internal-sftp -d /имя_пользователя принудительно перенаправляет пользователя в директорию /home/имя_пользователя  при подключении. Пример команд для назначения папке владельца и группы “root: root” и привилегии на 755:

chown root:root /home

chmod 755 /home

- перезапустить sshd сервер:

systemctl restart sshd

Особенности данного вида настройки:

- пользователь имеет права на работу только с директорией /home/имя_пользователя (указана в качестве домашней директории пользователя при его создании). Другие директории на сервере для пользователя недоступны;

- настройка base_dir в ЛК работает относительно директории /home (указана в качестве параметра ChrootDirectory в файле конфигурации). Полный путь на сервере будет следующий: /home + base_dir. Таким образом, значение настройки base_dir обязательно должно начинаться с /имя_пользователя. В случае, если значение настройки base_dir не задано, файлы будут писаться в директорию /home/имя_пользователя

3.1.2 Небезопасная настройка SFTP-сервера

- завести нового пользователя

useradd -s /sbin/nologin имя_пользователя

- установить пароль для нового пользователя

passwd имя_пользователя

- перезапустить sshd сервер:

systemctl restart sshd

Особенности данного вида настройки:

- пользователю для чтения доступны все директории на сервере (кроме home-директорий других пользователей);

- настройка base_dir в ЛК работает относительно корневой директории сервера. В случае, если значение настройки base_dir не задано, файлы будут записываться в домашнюю директорию пользователя /home/имя_пользователя;

- в случае, если настройка base_dir в ЛК присутствует, то директория, которая в ней указана, должна быть создана заранее с помощью пользователя с правами root и для нее должен быть назначен владелец с именем пользователя имя_пользователя (создается выше).

3.1.3 Настройка SFTP для пользователя с правами root

- завести нового пользователя

useradd -s /sbin/nologin -ou 0 -g 0 имя_пользователя

- установить пароль для нового пользователя

passwd имя_пользователя

- перезапустить sshd сервер:

systemctl restart sshd

Особенности данного вида настройки:

- пользователю для работы (создание/обновление/чтение/удаления) доступны все директории на сервере;

- настройка base_dir в ЛК работает относительно корневой директории сервера. В случае, если значение настройки base_dir не задано, файлы будут записываться в домашнюю директорию пользователя /home/имя_пользователя.

3.2 Порядок настройки OpenSSH на операционной системе Windows

Настройку можно выполнить с помощью статьи: https://docs.microsoft.com/ru-ru/windows-server/administration/openssh/openssh_install_firstuse