Меню

ftp сервер proftpd настройка

Установка и настройка ProFTPD(FTP-сервер).

На данный момент под Linux популярно ставить два сервера: ProFTPD и vsftpd(Very Secure FTP Daemon). Но vsftpd мне честно не нравиться, хотя бы тем что он последний раз обновлялся в 2015 году. По этому я остановлюсь на ProFTP.

apt-get install proftpd

Во время установки, вас попросят выбрать как будет работать сервер. Выбираем standalone.

Ну а теперь настройки nano /etc/proftpd/proftpd.conf

Найдем и раскомпрометируется строчку:

На этом собственно самая простая настройка закончена. Перезапускаем сервер.

/etc/init.d/proftpd restart

Но это далеко не все возможности этого сервера.

Давайте добавим еще виртуальных пользователей.

Для начала нам надо сделать файл с пользователями. ProFTP умеет работать и MySQL, но не в этой статье.

ftpasswd — -passwd — -file=/etc/proftpd/ftpd.passwd — -name=test — -uid=33 — -gid=33 — -home=/var/www/test.ru — -shell=/bin/false

Создадим пользователя test c uid и gid 33,домашней директорией /var/www/test, shell /bin/false. Указание id группы и пользователя помогут избежать проблем с правами на файл. Например 33 по умолчанию у пользователя Apache(www-data).

В итоге у нас получиться файл ftpd.passwd с похожим содержанием:

Кстати, изменить пароль пользователя можно следующей командой:

ftpasswd — -passwd — -name=test — -change-password —file /etc/proftpd.passwd

Для AuthGroupFiles , используем —group :

ftpasswd —group —name=group-name —gid=group-id —member=user-member1 \ —member=user-member2 … —member=user-memberN

Теперь поменяем настройки сервера nano /etc/proftpd/proftpd.conf

RequireValidShell off иначе виртуальный пользователь не сможет войти. Не проверять если шелл.

AuthUserFile /etc/proftpd/ftpd.passwd путь к файлу с пользователями.

# Use only AuthUserFiles when authenticating, and not the system’s /etc/passwd
AuthOrder mod_auth_file.c если мы хотим что бы только виртуальные пользователи входили.

Перезагружаем /etc/init.d/proftpd restart.

Защитить сервер от подбора паролей можно с помощью Fail2Ban .

Более подробно о файле конфигурации вы можете почитать на официальном сайте http://www.proftpd.org/docs/example-conf.html , Успехов.

Denian/Ubuntu. На других Linux дистрибутивах установка может отличаться.

P.S. Обнаруженный в модуле mod_copy баг затрагивает все версии ProFTPd вплоть до 1.3.5b включительно, однако опасность грозит только тем серверам, где модуль включен по умолчанию — особенно это касается таких дистрибутивов, как Debian и Ubuntu. Так как для указанных ОС обновленной версии ProFTPD пока нет, лучший вариант — отключить опасный модуль в настройках сервера.

Более 1 миллиона серверов оказались под угрозой кибератак из-за критической уязвимости в программном обеспечении ProFTPD. Уязвимость позволяет удалённо выполнить произвольный код и получить доступ к информации на FTP-сервере.

источник

Ftp сервер proftpd настройка

Этот небольшой постик посвящён установке и настройке FTP сервера ProFTPD в Ubuntu.

Читайте также:  photoshop cs6 сброс настроек

К написанию сподвигло отсутствие нормального пошагового руководства на чём вчера споткнулся сам :/

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

Установить ftp сервер ProFTPD на базе Ubuntu в локальной сети. Сервер не анонимный, имеет авторизацию по выдаваемому администратором логину и паролю. Базы данных для авторизации не используются в данном случае, то есть никаких умопомрачительных конструкций с mysql не будет 🙂

Устанавливаем сам сервер. Я поставил тот, что идёт с репозиториев, кому хочется поставить более свежую версию — собирайте его сами с сайта.

sudo apt-get install proftpd-basic

Сервер устанавливаем как standalone (должно вылететь соответствующее окошко с запросом).

Далее создаём каталог, обращаю внимание на то, что я устанавливал сервер на десктоп версию убунты, так как нагрузка на него не велика 2-3 юзера в день.

Переходим в домашний каталог:

Создаём в нём каталог ftp в котором и будут храниться наши файлы

Далее вам необходимо зайти в файл

/etc/shells и проверить, есть ли там строчка

если нет, то добавьте её туда (здесь и далее я разжёвывать не буду уж такие простые вещи, как редактирование файла под sudo хорошо?, всё же если вы ставите сервер, то потрудитесь перед этим изучить самые основы).

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

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

Первая команда — создаём группу ftp2 пользователем которой является пользователь с именем user, автоматически будет также создан файл ftpd.group

Вторая команда — создаём самого пользователя user. Обратите внимание, ещё раз, что user — это логин пользователя, он может быть маша, вася, петя и так далее, короче это логин. В этой же команде задан каталог пользователя. Автоматически также при первом использовании команды будет создан файл ftpd.passwd

При вводе команды будет запроше пароль для пользователя, ну придумайте уж какой-нибудь.

Последние две команды выше повторяем столько раз сколько пользователей вам нужно. Кому очень хочется посмотреть куда пишутся пароли и прочее (они там будут в виде хэша) велком в каталог/etc/proftpd


Ещё раз для понимания — это не UNIX пользователи, это фактически учётные записи вашего фтп-сервера.

Читайте также:  установка навител на айфон

Далее настраиваем конфиг сервера
/etc/proftpd/proftpd.conf

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

RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group

# Don’t use IPv6 support by default.
UseIPv6 off

ServerName «ftp-server»
ServerType standalone
DeferWelcome on

# Эти две команды убыстряют работу сервака, гуглите для подробностей.
UseReverseDNS off
IdentLookups off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks off

TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200

DisplayChdir .message
ListOptions «-l»

#Запрещаем подключаться на сервер как root, полезно для безопасности

# Создаём журналы
ExtendedLog /var/log/ftp.log
TransferLog /var/log/xferlog
SystemLog /var/log/syslog.log
#Запрещаем заливать на сайт файлы начинающиеся с точки, полезно для безопасности
DenyFilter \*.*/

# Используем файлик /etc/ftpusers в нём перечислены те пользователи, которым запрещено входить на сервер, полезно для безопасности
UseFtpUsers on

# Разрешаем докачивать файлы
AllowStoreRestart on

# задаём порт, на котором будет работать сервак, обычно 21
Port 21

# Против DDOS атаки, полезно для безопасности
MaxInstances 8

# Сервер запускается и работает под этим пользователем и группой
User nobody
Group nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022

MaxClients 8
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8

# Сообщение после успешного захода на сервер
AccessGrantMsg «Welcome to Server»
#Идентификатор сервера, показывается всем при заходе на сервер
ServerIdent on «privet :))»

# Устанавливаем домашний каталог
DefaultRoot /home/ftp

# Запираем всех в домашнем каталоге, чтобы не могли просмотреть каталоги выше, важно для безопасности
DefaultRoot

MaxLoginAttempts 5
#VALID LOGINS

AllowUser user
DenyALL

Umask 022 022
AllowOverwrite on

источник

Настройка ProFTPd для хостинга

Виртуальные ftp-пользователи

Для хостинга нецелесообразно заводить пользователей в системе. Гораздо логичнее завести виртуальных ftp-пользователей.
В первую очередь нужно определиться, где будем хранить их учетные записи.
У ProFTPd есть несколько вариантов, но я рассмотрю лишь два:

  1. Альтернативный файл пользователей и паролей;
  2. СУБД MySQL.

Сразу оговорюсь, что у меня установлена система Ubuntu 10.04.
Apache работает от имени www-data, у которого UserId=33, GroupId=33.
Логи ftp-сервера по умолчанию можно посмотреть тут: /var/log/proftpd/
В руководстве я создам пользователя tester, для работы с виртуальным хостом test.ru.

Общая настройка ProFTPd

Открываем конфиг ProFTPd, по-умолчанию он располагается /etc/proftpd/proftpd.conf.
Из соображений безопасности добавляем в него следующие строки:

ServerIdent on «FTP Server ready.»

Так рекомендовано сделать в официальном руководстве пользователя.
Остальное по умолчанию можно оставить, так как есть.

Хранение виртуальных пользователей в текстовом файле

Нам нужно, чтобы ftp пользователь имел возможность редактировать и удалять файлы, созданные скриптами.
Создаем нового виртуального ftp-пользователя с логином tester, идентификатором 33, группой 33 и домашним каталогом /var/www/test.ru.

Читайте также:  после установки windows 10 зависает намертво

ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=tester —uid=33 —gid=33 —home=/var/www/test.ru —shell=/bin/false

После выполнения команды система попросит ввести дважды пароль пользователя.
В итоге, у нас появится файл /etc/proftpd/ftp.passwd с записью о пользователе.
Кстати, изменить пароль пользователя можно следующей командой:

ftpasswd —passwd —name=tester —change-password

Теперь редактируем /etc/proftpd/proftpd.conf, для подключения виртуального пользователя:

RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

Перезапускаем ftp:
/etc/init.d/proftpd restart

Хранение виртуальных пользователей в СУБД MySQL

Для хранения виртуальных пользователей в СУБД MySQL необходим пакет proftpd-mod-mysql.
Через PHPMyAdmin или любым другим удобным способом создаем новую базу, к примеру proftpd.
Так же создаем нового пользователя proftpd_user с паролем proftpd_password с правами на чтение этой базы.
В базе создаем одну таблицу:

CREATE TABLE `proftpd`.`users` (
`username` VARCHAR( 32 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`uid` INT NOT NULL ,
`gid` INT NOT NULL ,
`homedir` VARCHAR( 255 ) NOT NULL ,
`shell` VARCHAR( 255 ) NOT NULL ,
UNIQUE (`username`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

И добавляем запись о пользователе:

INSERT INTO `proftpd`.`users` (`username`, `password`, `gid`, `homedir`, `shell`) VALUES (
‘tester’, ‘pass’, ’33’, ’33’, ‘/var/www/test.ru’, ‘/bin/false’ );

На этом настройка MySQL окончена.
Теперь, что касается конфигурации FTP-сервера.
Редактируем файл /etc/proftpd/modules.conf – уберем комментарий со строк

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

Редактируем файл /etc/proftpd/proftpd.conf.
Дописываем строку

А так же уберем комментарий или допишем строку:

Файл /etc/proftpd/sql.conf приводим к следующему виду:

# Cообщаем, что намерены работать с СУБД MySQL
SQLBackend mysql
SQLEngine on
# Пароли в базе храняться в открытом формате
SQLAuthTypes Plaintext
# Подключаемся к БД proftpd пользователем proftpd_user с паролем proftpd_password
SQLConnectInfo proftpd@localhost proftpd_user proftpd_password
# Выбираем данные из таблицы users
SQLUserInfo users username password uid gid homedir shell
# Аутентифицируем пользователей из этой таблицы
SQLAuthenticate users*
# По умолчанию минимальный UserID пользователя и GroupID =999
SQLMinUserUID 33
SQLMinUserGID 33
# На время отладки пишем логи
SQLLogFile /var/log/proftpd/sql.log

Перезапускаем ftp:
/etc/init.d/proftpd restart

Настройка доступа ftp-пользователей к директориям

Изменяем владельца директории /var/www/test.ru

сhown www-data:www-data /var/www/test.ru

Выставляем права доступа к директории, иначе увидим permission denied

Теперь виртуальные пользователи могут создавать, редактировать и удалять файлы и папки.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Добавить комментарий

Adblock
detector