Полный цикл в digital

Установка сервера vsFTPd

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

Одним из самых популярных FTP серверов является vsftpd — его легко устанавливать, настраивать и поддерживать. Доступ к FTP серверу возможен в двух режимах:

  1. В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись anonymous или FTP и передав адрес email в качестве пароля. Данные в директории /srv/ftp доступны для всех анонимных пользователей.
  2. В авторизованном режиме пользователь должен иметь учетное имя и пароль в системе. Доступ к каталогам и файлам зависит от прав доступа пользователя, указанного при входе. Обычный пользователь ограничен своей домашней директорией.

В зависимости от способа установления соединения для передачи данных различают активный и пассивный режимы работы FTP:

  1. В активном режиме клиент устанавливает управляющее соединение на порт 21 сервера и передает специальную команду PORT, в которой указывает свой адрес и порт для передачи данных. Получив данную команду, сервер устанавливает соединение с 20 порта на указанный в команде порт клиента.
  2. В пассивном режиме клиент устанавливает управляющее соединение на порт 21 сервера и передает специальную команду PASV. В ответ сервер передает адрес и порт, на который следует устанавливать соединение для передачи данных. Получив эту информацию, клиент устанавливает подключение к серверу и начинает передачу данных.

Основной недостаток активного режима — клиенту требуется выделенный IP-адрес. Также определенные сложности будут возникать при нахождении клиента за брандмауэром или NAT-ом. В пассивном режиме все соединения инициирует клиент и поэтому к нему нет никаких требований. По этой причине на сегодняшний день основным режимом работы FTP является пассивный в авторизованном режиме.

Установка vsFTPd

Обновляем список пакетов сервера:

sudo apt update

Обновляем пакеты сервера:

sudo apt upgrade

Устанавливаем сервер vsftp:

sudo apt install vsftpd

Включаем сервер vsftp:

sudo systemctl start vsftpd

Добавляем веб сервер vsftp в автозагрузку::

sudo systemctl enable vsftpd

Проверка работоспособности сервера vsftpd:

sudo systemctl status vsftpd

Управление сервером vsftpd

Отключаем сервер vsftp:

sudo systemctl stop vsftpd

Перезагружаем сервер vsftp:

sudo systemctl restart vsftpd

Запретить запуск службы при загрузке системы:

sudo systemctl disable vsftpd

В процессе установки FTP-сервера создается пользователь ftp с домашней директорией /var/ftp.

Настройка анонимного доступа

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

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default

Открываем на редактирование файл конфигурации:

sudo nano /etc/vsftpd/vsftpd.conf

Настройка vsftpd по умолчанию не разрешает подключаться анонимным пользователям, чтобы это изменить, раскомментируем строчку:

anonymous_enable=YES

Запрещаем подключаться со своим логином и паролем:

local_enable=NO

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

write_enable=YES

Разрешаем запись (т.е. загрузку файлов) еще и анонимным:

anon_upload_enable=YES

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

anon_mkdir_write_enable=YES

Разрешаем пассивный режим:

pasv_enable=YES

После внесения изменений перезагружаем сервер:

sudo systemctl restart vsftpd

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

sudo mkdir /var/ftp/audio
sudo chmod 777 /var/ftp/audio
sudo mkdir /var/ftp/video
sudo chmod 777 /var/ftp/video
sudo mkdir /var/ftp/others
sudo chmod 777 /var/ftp/others

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

Настройка авторизованного доступа

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

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default

Открываем на редактирование файл конфигурации:

sudo nano /etc/vsftpd/vsftpd.conf

В итоге у нас должен получится вот такой файл конфигурации:

# данная опция запускает FTP-сервер как службу, сервер не должен запускаться от inetd
listen=YES

# listen обеспечивает поддержку IPv4, listen_ipv6 обеспечивает сразу IPv6 и IPv4, поэтому должна быть включена только одна из них. 
listen_ipv6=NO

# запрещаем доступ для анонимных пользователей
anonymous_enable=NO

# разрешаем локальных и виртуальных пользователей
local_enable=YES

# разрешаем пользователяим изменения файловой системы
write_enable=YES

# задаем маску для вновь создаваемых файлов и директорий, это обеспечит установку прав 755 на директории и 644 на файлы, т.е. полный доступ только владельцу и чтение для группы и остальных.
local_umask=022

# изолируем пользователей в их домашних директориях
chroot_local_user=YES

# добавим опцию, чтобы не возникала ошибка у изолируемых пользователей в их домашних директориях
allow_writeable_chroot=YES

# включим запись в лог-файл /var/log/vsftpd.log загружаемых и скачиваемых файлов
xferlog_enable=YES

# использовать стандартный формат лога
xferlog_std_format=YES

# для корректной работы с текстовыми данными, в частности с символами переноса строки в разных ОС (CR+LF в Windows, LF в Linux) включим поддержку ASCII
ascii_upload_enable=YES

# FTP автоматически будет менять символы переноса строки для соответствия стандартам системы
ascii_download_enable=YES

# разрешим пассивный режим
pasv_enable=YES

# минимальный порт
pasv_max_port=65535 

# максимальный порт
pasv_min_port=60000 

# директория куда бутеп перенаправлено FTTP соединение
local_root=/home/bitrix/ext_www

# использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола
connect_from_port_20=YES

# имя pam сервиса для vsftpd
pam_service_name=vsftpd

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

# Контроль доступа к серверу через отдельный список пользователей
userlist_enable=YES

# Файл со списками разрешенных к подключению пользователей
userlist_file=/etc/vsftpd/user_list

# Пользователь будет отклонен, если его нет в user_list
userlist_deny=NO

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

sudo nano /etc/vsftpd/user_list

Настройка файервола

Брандмауэр нужен для защиты системы от компьютерных атак или для изоляции самой системы, если она была поражена вредоносным программным обеспечением.

Во всех операционных системах, основанных на базе ядра Linux, имеется встроенный межсетевой экран, осуществляющий контроль и фильтрацию входящего и исходящего трафика, исходя из заданных пользователем или платформой правил. В дистрибутиве CentOS 7 по умолчанию такую функцию выполняет утилита iptables, взаимодействуя со встроенным брандмауэром netfilter.

Установка утилиты:

sudo yum -y install iptables-services

Проверка состояния файрвола:

sudo service iptables status

Включение файрвола:

sudo systemctl start iptables.service

Отключение файрвола:

sudo service iptables stop

Перезапустить файрвол:

sudo systemctl restart iptables.service

Удалить из автозагрузки:

sudo systemctl disable firewalld

Добавить автозагрузку:

systemctl enable iptables.service

Открываем конфигурационный файл iptables:

sudo nano /etc/sysconfig/iptables

Нужно найти строчку OUTPUT ACCEPT [412:43910] и затем добавить:

-A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 20,21,60000:65535 -j ACCEPT

Тем самым мы откроем порты: 20 21 и пулл от 60000 до 65535.

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

Сначала необходимо узнать id группы и пользователя, под которым работает Apache:

sudo id bitrix

Должен быть получен подобный ответ:

uid=600(bitrix) gid=600(bitrix) groups=600(bitrix),10(wheel)

Добавляем пользователя с найденным id и указываем директорию по умолчанию:

sudo adduser логин_пользователя -g600 -o -u600 -d /home/bitrix/www/

Посмотреть всех пользователей:

sudo cat /etc/passwd

Задаем новому пользователю пароль:

sudo passwd логин_пользователя
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг