4.3.8. Установка и настройка ProFTPd
Для подключения к серверу по FTP необходимо установить и настроить на сервере специальное ПО — FTP-сервер. Один из наиболее популярных и удобных FTP-серверов — ProFTPd.
Установка
Подключитесь к серверу по SSH или VNC, установите ProFTPd и отредактируйте конфигурационные файлы. Порядок действий зависит от используемой ОС.
- Установите Epel-репозиторий:
yum install epel-release
- Установите ProFTPd:
yum install proftpd
- Откройте порты для работы FTP:
firewall-cmd --permanent --add-port=20-21/tcp firewall-cmd --permanent --add-port=40900-40999/tcp firewall-cmd --reload
- Установите запуск ProFTPd при старте системы и запустите его:
systemctl enable proftpd systemctl start proftpd
- Измените конфигурационный файл ProFTPd.
- Добавить пользователя можно командой:
useradd example -d /var/www -s /sbin/nologin passwd example
Укажите нужные данные:
- Вместо
example
укажите имя пользователя FTP-пользователя. - Вместо
/var/www
укажите домашний каталог FTP-пользователя. - После выполнения
passwd example
потребуется дважды ввести пароль FTP-пользователя.
- Установите ProFTPd:
apt-get install proftpd
- Измените конфигурационный файл ProFTPd.
- Выполните команду:
echo "/bin/false" >> /etc/shells
- Добавьте пользователя для доступа по FTP:
adduser --home /home/example --shell /bin/false example
Вместо каталога
/home/example
в качестве домашнего каталога можно указать каталог/var/www
.- После добавления пользователя нужно назначить для него права на редактирование файлов, размещенных в определенных каталогах. Лучше всего ограничить доступ только к файлам сайтов путём выполнения команды:
chown example -R /var/www
example
— укажите созданного пользователя ранее./var/www
— укажите каталог, для которого изменяются права доступа. Примечание Стоит указывать каталог, где размещены файлы сайтов, для возможности их редактирования (по умолчанию это/var/www
).
- Установите ProFTPd:
emerge --ask net-ftp/proftpd
- Скопируйте конфигурационный файл, если его не существует, при помощи команды:
cp /etc/proftpd/proftpd.conf.distrib /etc/proftpd/proftpd.conf
- Измените конфигурационный файл ProFTPd.
- Установите запуск ProFTPd при старте системы и запустите его:
- Для OpenRC нужно выполнить:
rc-update add proftpd default rc-service proftpd start
- Для systemd:
systemctl enable proftpd systemctl start proftpd
- Добавьте пользователя для доступа по FTP с помощью команды:
adduser --home /home/example --shell /bin/false example
Вместо каталога
/home/example
в качестве домашнего каталога можно указать каталог/var/www
.- После добавления пользователя нужно назначить для него права на редактирование файлов, размещённых в определенных каталогах. Лучше всего ограничить доступ только к файлам сайтов путём выполнения команды:
chown example -R /var/www
example
— укажите созданного ранее пользователя./var/www
— укажите каталог, для которого изменяются права доступа. Примечание Стоит указывать каталог, где размещены файлы сайтов, для возможности их редактирования (по умолчанию это/var/www
).
- Установите ProFTPd:
dnf -y install proftpd
- Измените конфигурационный файл ProFTPd (в отличии от других ОС он находится в
/etc/proftpd.conf
). В конце файла добавьте строку:PassivePorts 21000 21020
- Установите запуск ProFTPd при старте системы и запустите его:
systemctl enable proftpd systemctl start proftpd
- Настройте SElinux (если присутствует) и файрвол:
setsebool -P ftp_home_dir=1 setsebool -P allow_ftpd_full_access=1 #Настройки Firewall firewall-cmd --permanent --add-port=21/tcp firewall-cmd --add-port=21000-21020/tcp --permanent firewall-cmd --reload
- Создайте пользователя:
useradd example -d /var/www -s /sbin/nologin passwd example
Укажите нужные данные:
- Вместо
example
укажите имя пользователя. - Вместо
/var/www
укажите домашний каталог. - После выполнения
passwd example
потребуется дважды ввести пароль для пользователя.
Настройка
- Отредактируйте файл конфигурации ProFTPd:
nano /etc/proftpd/proftpd.conf
Измените строки:
ServerName
— укажите имя сервера.ServerType
— укажите режим запуска:standalone
— автоматический запуск при старте системы (режим по умолчанию).inetd
— исключительно ручной запуск.
# DefaultRoot
— уберите символ#
в начале строки. Данный параметр указывает доступ к каталогу по умолчанию. Для определения доступа по умолчанию к каталогу пользователя, нужно указать значение~
.- Добавьте строку
UseReverseDNS off
перед строкой# Use this to jail all users in their homes
(по умолчанию 34 строка). - Проверьте файл конфигурации на корректность после сохранения, выполнив:
proftpd -t
- Перезапустите ProFTPd:
/etc/init.d/proftpd restart