leafleafleafDocy banner shape 01Docy banner shape 02Man illustrationFlower illustration

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

Время чтения: 2 мин. 171 просмотров

FTP-сервер обеспечивает безопасную передачу файлов между локальными компьютерами и сервером, что необходимо для управления веб-сайтами. Это руководство предназначено для системных администраторов и разработчиков, которые хотят установить и настроить FTP-сервер для веб-окружения 1С-Битрикс: Управление сайтом на CentOS 7. При небольших изменениях данное руководство может быть применено и для других конфигураций.

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

Устанавливаем proftpd:

				
					yum install proftpd proftpd-utils

				
			

Запускаем и добавляем демон в автозагрузку:

				
					systemctl start proftpd
				
			
				
					systemctl enable proftpd
				
			

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

				
					nano /etc/proftpd.conf
				
			

И добавляем следующее:

				
					RequireValidShell off
AuthUserFile /etc/proftpd.d/ftpd.passwd
AuthPAM off
RootLogin off
PassivePorts 6000 6100
LoadModule mod_auth_file.c
AuthOrder mod_auth_file.c

				
			

* где:

    •  RequireValidShell off – позволяет пользователям входить в систему через FTP, даже если их оболочка не указана в файле /etc/shells;
    • AuthUserFile /etc/proftpd.d/ftpd.passwd – указывает путь к файлу, который используется для аутентификации пользователей;
    • AuthPAM off – отключает модуль аутентификации PAM (Pluggable Authentication Modules), может использоваться для интеграции с общей системой аутентификации Linux;
    •  RootLogin off – отключает возможность входа под учетной записью root через FTP;
    • PassivePorts 6000 6100 – параметр определяет диапазон портов, которые будут использоваться для пассивного режима передачи данных FTP. Пассивный режим используется для устранения проблем с настройкой фаервола, так как клиент FTP инициирует соединение на порт сервера из диапазона, указанного здесь;
    •  LoadModule mod_auth_file.c –  загружает модуль, который предоставляет базовую аутентификацию на основе файлов;
    •  AuthOrder mod_auth_file.c – опция устанавливает порядок использования модулей аутентификации.

Закомментировать строчку:

				
					#AuthOrder              ...
				
			

Создаём каталог для хранения конфигурационных файлов froftpd:

				
					mkdir /etc/proftpd.d
				
			

Создаём FTP пользователя:

				
					ftpasswd --passwd --file=/etc/proftpd.d/ftpd.passwd --name=bitrix --shell=/sbin/nologin --home=/home/bitrix/www/ --uid=600 --gid=600

				
			

* где:

    •  –file=/etc/proftpd.d/ftpd.passwd – задает путь к файлу, в котором будут храниться данные пользователей FTP;
    •  –name=bitrix – устанавливает имя FTP пользователя;
    •  –shell=/sbin/nologin – устанавливает оболочку, которая будет использоваться для пользователя. В данном случае указан /sbin/nologin, что предотвратит вход пользователям через интерактивную оболочку;
    •  –home=/home/bitrix/www/ – задает домашний каталог пользователя, указан путь до каталога с файлами битрикса;
    •  –uid=600 – устанавливает идентификатор пользователя, в данном случае указан UID системной учётной записи Битрикса;
    •  –gid=600 – устанавливает идентификатор группы, в данном случае указан GID группы Битрикса.

В данном примеры созданный FTP пользователь будет иметь полный доступ к каталогу с файлами Битрикса!

Перезапускаем демон:

				
					systemctl restart proftpd
				
			

Брандмауэр

Если на сервере включен брандмауэр необходимо открыть следующие порты:

  • 21 – порт для передачи команд;
  • 6000-6100 – диапазон для обмена данными, задаётся в proftpd.conf.
				
					iptables -I INPUT -p tcp --dport 21 -j ACCEPT
				
			
				
					iptables -I INPUT -p tcp --dport 6000:6100 -j ACCEPT

				
			

Сохранение изменений при перезагрузке:

				
					/sbin/service iptables save

				
			

Логирование

Настройка подробного логирования.

Создаём файлы логов:

				
					touch /var/log/proftpd/proftpd.log
touch /var/log/proftpd/xfer.log
touch /var/log/proftpd/access.log
touch /var/log/proftpd/auth.log
				
			
Добавляем в файл proftpd.conf следующее:
				
					LogFormat default «%h %l %u %t «%r» %s %b»
LogFormat auth «%v [%P] %h %t «%r» %s»
LogFormat write «%h %l %u %t «%r» %s %b»

SystemLog /var/log/proftpd/proftpd.log
TransferLog /var/log/proftpd/xfer.log
ExtendedLog /var/log/proftpd/access.log ALL
ExtendedLog /var/log/proftpd/auth.log AUTH auth

				
			

* где:

    •  SystemLog /var/log/proftpd/proftpd.log – указывает файл для системных логов сервера ProFTPD;
    • TransferLog /var/log/proftpd/xfer.log – указывает файл для логов передачи данных;
    • ExtendedLog /var/log/proftpd/access.log ALL – указывает файл для расширенных логов всех событий;
    • ExtendedLog /var/log/proftpd/auth.log AUTH auth – указывает файл для расширенных логов событий аутентификации.

Перезагружаем демон:

				
					systemctl restart proftpd

				
			

Возможные проблемы

Некорректное время в логах

На сервере установлено правильное системное время и часовой пояс, но время в логах ProFTPD отображается некорректно. Добавляем в файл proftpd.conf следующее:
				
					TimesGMT off
SetEnv TZ :/etc/localtime
				
			

Перезагружаем демон:

				
					systemctl restart proftpd

				
			

Высокая нагрузка на процессор

Процесс ProFTPD потребляет слишком много процессорных ресурсов, решение, ограничить количество сессий.

Добавляем в файл proftpd.conf в секцию Global следующее:

				
					MaxClients			    10	"Too many connections"
MaxClientsPerHost		3	"%m client are already connected from your host"
				
			

* где:

    • MaxClients – устанавливает максимальное количество одновременных подключений ко всему FTP-серверу;
    • MaxClientsPerHost – Устанавливает максимальное количество одновременных подключений от одного хоста.

Полезные команды

  • ftpwho – показывает текущую информацию о процессе для каждого FTP-сеанса;
  • ftpcount – показывает текущее число соединений к FTP-серверу;
  • ftptop – отображает активности текущих FTP-сессий в реальном времени.

Leave a Comment

Поделиться этой страницей

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

Или скопируйте ссылку

СОДЕРЖИМОЕ