Меню Рубрики

Установка proftpd из rpm

Установка и настройка 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 — -u >

Создадим пользователя 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 —g >

Теперь поменяем настройки сервера 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-сервере.

источник

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

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

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

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

Сразу оговорюсь, что у меня установлена система Ubuntu 10.04.
Apache работает от имени www-data, у которого User > Логи 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.

ftpasswd —passwd —file=/etc/proftpd/ftpd.passwd —name=tester —u >

После выполнения команды система попросит ввести дважды пароль пользователя.
В итоге, у нас появится файл /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*
# По умолчанию минимальный User > 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 будет скрыт псевдонимом.

источник

Information Security Squad

Как установить ProFTPD на CentOS 7

Мы объясним вам все шаги по порядку, чтобы вы узнали, как установить, создать пользователей и группы и включить TLS ProFTPD в CentOS 7

Это одна из утилит, которые у нас есть в наличии для еще большей безопасности FTP-соединения, является ProFTPD, которую мы проанализируем сегодня в CentOS 7.

Что такое ProFTPD?

ProFTPD — это программное обеспечение FTP-сервера под лицензией GPL для подключения из любого места.

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

Шаг 1: Установите EPEL на CentOS 7

Первым шагом будет установка репозитория EPEL для последующего получения ProFTPD, для этого мы выполняем следующее:

Теперь давайте импортируем GPG-ключ EPEL, используя следующую команду:

Далее мы переходим к обновлению системных пакетов:

Шаг 2. Установка ProFTPD

Следующим шагом будет установка утилиты ProFTPD и OpenSSL путем выполнения следующих действий:

Как только этот процесс будет завершен, мы выполним следующие команды:

Шаг 3. Настройка брандмауэра

Если Firewalld установлен в CentOS 7, мы должны настроить его с помощью firewall-cmd, чтобы открыть FTP-порт следующим образом:

Мы продолжаем проверять установленную версию ProFTPD:

Шаг 4. Создание пользователей и групп для ProFTPD

После установки ProFTPD в CentOS 7 необходимо создать группу и пользователя для доступа, в этом случае мы создадим группу ftpgroup и пользака user1 для ProFTPD, и мы определим / ftpshare как домашнюю директорию для созданного пользователя:

Далее мы должны ввести и подтвердить пароль для нового пользователя.

Как только это будет сделано, мы предоставим разрешения на ftpshare, выполнив:

Шаг 5: Включите TLS в ProFTPD

Теперь нам нужно защитить FTP-соединения с помощью TLS.

Мы должны открыть файл /etc/proftpd/proftpd.conf для редактирования, но перед этим сделать его резервную копию.

Чтобы создать копию, мы выполняем:

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

В отображаемом файле мы будем вводить следующее в DefaultRoot

В дополнение к этому, мы закомментируем следующие строки:

Cохраняем изменения с помощью клавиш Ctrl + O и выходим из редактора с помощью клавиш Ctrl + X.

Как мы видим, порты 6000 и 6100 были добавлены для обеспечения пассивного режима ftp, чтобы разрешить этот доступ, мы выполним следующее:

Если мы захотим увидеть состояние портов, мы можем запустить следующее:

Теперь необходимо настроить SELINUX, чтобы разрешить чтение и запись файлов, мы выполним следующее:

Чтобы использовать TLS, необходимо создать сертификат SSL, который будет построен по пути /etc/pki/tls/certs, как показано ниже:

Следующие вопросы будут отображаться, на которые нам надо ввести ответы:

Теперь, по соображениям безопасности, мы настроим сертификаты, чтобы они были легитивны:

Наконец, мы перезапустим сервис ProFTPD, выполнив следующее:

источник

linux-notes.org

Установка Proftpd на FreeBSD из исходников

Добавляем пользователя и группу proftpd под которым будет работать proftpd демон (в моем случае это юзер ftp и такая же группа ). Создаем пользователя ftp если его нет, и, назначаем ему пароль:

Cоздаем необходимые директории и назначаем права:

Так как мы будем устанавливать Proftpd на FreeBSD из исходников, то нужно создать папку. Для удобства я создал папку- src по такому пути:

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

Перед тем как скомпилировать (собрать) программу не мешало бы ее скачать, идем на официальный сайт Proftpd и смотрим какая стабильная версия уже существует и скачиваем (на момент написания статьи — самая последняя была proftpd 1.3.5).

Надеюсь не стоит рассказывать и описывать процесс установки самой программы для скачивания с ftp сервера -(подробная информация wget), считаем что она уже установлена, хотя можно обойтись и без wget (с помощью fetch).

или если не хочется ставить wget, то:

Расспаковуем архив с программой proftpd:

Переходим в сам каталог уже расспакованных исходников:

В консоле прописываем конфигурацию(нужно читать README!), можно по желанию заюзать мой конфигур, он полностью нормальный и рабочий:

Конфигурация выполнена, сейчас предстоит собрать программу:

ВСЕ! Proftpd компилируется, ждем пару минут. Урааааа, все установилось нормально, если нет (вероятность крайне мала, разве что у Вас руки крабы и Вы не набирали команды локтями) — придется читать в инете ероры и устранить. Такого не должно быть 😉

Proftpd скомпилировался, нужно запустить и добавить ftp-сервера в автозагрузку при необходимости:

Я использую текстовый редактор «ee» (в системе стандартный «vi»), по этому поставьте его или юзайте «vi»- я его не сильно освоил, по этому для меня проще ‘ee’, но выбирать Вам.

В начале любой строки прописываем следующий текст (я всегда перехожу в самый конец текста и вставляю) :

proftpd_enable=»YES»

Можно и не редактировать этот файл, но тогда стоит выполнить следующее перенаправление ввода-вывода :

Старт сервера PROFTPD.

/usr/local/sbin/proftpd [options]
где /usr/local/sbin определяется конфигурирование и [параметры] описаны ниже (или в ProFTPD (8)):

-h, —help
Display proftpd usage
-n, —nodaemon
Disable background daemon mode and send all output to stderr)
-q, —quiet
Don’t send output to stderr when running with -n or —nodaemon
-d [level], —debug
Set debugging level (0-9, 9 = most debugging)
-D [definition], —define
Set arbitrary IfDefine definition
-c [config-file], —config
Specify alternate configuration file
-p [0|1], —persistent
Enable/disable default persistent passwd support
-l, —list
List all compiled-in modules
-t, —configtest
Test the syntax of the specified config
-v, —version
Print version number and exit
-vv, —version-status
Print extended version information and exit

PS: Кто не знает какие параметры передавать, используйте user/local/sbin/proftpd

Для автозагрузки пишем скрипт который должен лежать в usr/etc/rc.d, мой выглядит следующим образом:

Я качал скрипт по ссылке wget-ом:

Для легкого запоминания я переименовал его в proftpd.sh

Ставим на скрипт права, чтение и выполнение!

Сам скрипт выглядит следующим образом:

Конфигурация proftpd:
Пришло время настроить сам конфиг, править нужно совсем немного или юзнуть мой:

Установка Proftpd на FreeBSD из исходников завершено. Смотрите другие мои посты.

2 thoughts on “ Установка Proftpd на FreeBSD из исходников (не из портов) ”

Cтавим на скрипт права, чтение и выполнение!
chmod 100 /usr/local/etc/rc.d/proftpd.sh
наверно chmod 700

Да, спасибо за замечание 🙂 Исправил 😉

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

источник

ProFTPD: установка и настройка

Сам процесс до безобразия прост. ProFTPD можно добавить пакетом:

# cd /usr/ports/ftp/proftpd
# make install clean

В таком случае станут доступны дополнительные возможности ProFTPD, которые предложат выбрать в начале сборки:

mod_ban – предназначен для динамического бана пользователей, отключает пользователя по описаным в настройках правилам. Например по количеству неправильных вводов пароля.

mod_clamav – позволяет проверять файлы помещаемые на FTP сервер с помощью бесплатного антивируса ClamAV

controls – включает модуль управления сервером ProFTPD

mod_digest – с помощью этого модуля можно обеспечить проверку целостности файлов при передаче

mod_ifsession – позволяет обеспечить дополнительные проверки пользователей

Use IPv6 – включает поддержку протокола IPV6

Use LDAP – ProFTPD сможет проверять авторизацию пользователей через LDAP

Use LDAP TLS – Включает шифрованный протокол LDAP

MySQL auth – Поддержка авторизации пользователей через базу MySQL

Use nls – Поддержка команды LANG, можно менять LOCALE во время диалога с сервером

mod_tls – Поддержка OpenSSL, обеспечивает FTPS протокол, протокол с шифрацией данных, так же этот модуль необходим для LDAP TLS

Postgres auth – Поддержка авторизации через базу PostgreSQL

mod_quota – Поддержка Quota, ограничения размер каталога помещенного на сервер

mod_quotatab_radius – С помощью этого модуля – сервер получает информацию о квоте пользователя через Radius сервер

mod_radius – Поддержка авторизации пользователей через Radius сервер

mod_ratio – Позволяет установить ограничение на скорость подачи команд серверу

mod_readme – Выводит файл при подсоединении к серверу

mod_rewrite – Позволяет в зависимости от определенного патерна изменять поведение сервера. Фактически по функциям аналогичен mod_rewrite Apache

FreeTDS – позволяет проводить авторизацию через MSSQL или Sybase сервер

mod_wrap2 – добавляет возможность контролировать доступ к серверу через libwrap (hosts.allow, hosts.deny)

mod_wrap2_file – Модуль позволяет определять дополнительный файл контроля, отличные от системных (hosts.allow, hosts.deny)

mod_wrap2_sql – позволяет хранить информацию для libwrap в базе SQL

Выбираем то, что потребуется (к примеру, я добавил ClamAV, авторизацию через LDAP и поддержку OPENSSL), и ждем окончания сборки.

После завершения установки, определимся с методом запуска ProFTPD.

Можно запускать сразу при загрузке FreeBSD, в таком случае в файл /etc/rc.conf добавим:

#Enable ProFTPD
proftpd_enable=»YES»

А можно запускать его с помощью демона inetd. Для этого отредактируйте в файле /etc/inetd.conf строку:

ftp stream tcp nowait root /usr/local/sbin/proftpd proftpd

Не забудьте включить сам демон inetd в /etc/rc.conf:

Что бы не перезагружать сервер — запустите inetd вручную:

# service inetd onestart
Starting inetd.

Теперь перейдем к настройке самого ProFTPD.

Файл конфигурации находится тут: /usr/local/etc/proftpd.conf

Если мы выбрали способ запуска при старте системы, то все оставляем как есть. Если способ запуска через inetd, то в строке:

и раскомментируем её. Так мы запрещаем пользователям выходить «выше» их домашнего каталога.

Управление сервером производится с помощью файла /usr/local/etc/rc.d/proftpd который принимает агрументы onestart (запуск), restart (перезапуск) и stop (остановка). Выполним:

# /usr/local/etc/rc.d/proftpd onestart

Профит!

Некоторые другие параметры, которые можно добавить в конфигурацию.

Разрешить соединение пользователю root , добавьте строку:

После этого закомментируйте строку root в файле /etc/ftpusers . Но сначала хорошо подумайте — надо ли вам это.

Кол-во процессов, которые может запускать ProFTPD — для предотвращения DDoD-атак (есть в конфигурации по-умолчанию, измените значение, если требуется):

Максимальное кол-во одновременных подключений:

Максимальное кол-во подключений с одного хоста:

Максимальное кол-во попыток ввода логина-пароля:

Если требуется — ограничиваем скорость для всех, кроме пользователя root (я в конфигурацию параметр добавил, но пока закрыл #, т.к. сейчас эта возможность не нужна):

#TransferRate RETR,STOR,APPE 150 user !root

Списки ограничения доступа к серверу ( ACL — Acces Control List — списки контроля доступа) — хотя проще использовать IPFW (или другой фаервол):

источник

Читайте также:  Установка забора в водоохранной зоне

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

Adblock
detector