Мы — долго запрягаем, быстро ездим, и сильно тормозим.

Авторы
История сайта
Статистика
Архив
  CVSup
  EXIM & courier-imap
  postfix & courier-imap
  SQUID
  SAMBA
  IPsec
  C-ICAP
  exim & dbmail
  vpnd
  Samba как PDC
  pureftpd
  diskless
  gmirror
  SAMBA + LDAP
  IPSEC
  SAMBA+ACL
  Lightsquid
  LiveCD (+restore)
  1С:Предприятие 8.2
Карта сайта
поисковые слова
Личные настройки
Реклама
Друзья сайта


www.lissyara.su —> главная —> Архив —> pureftpd

Чистый FTP сервер - pure-ftpd :)

Автор: lissyara.


    Нашёл аглицкий мануал по pure-ftpd - пробежался по диагонали - оказалось интересно. Поддерживает юзеров в MySQL, персональные лимиты для каждого пользователя, которые тоже можно в БД хранить. Красота, короче. Решил попробовать.
   Ставим из портов, предварительно обновив их:
/usr/home/lissyara/>cd /usr/ports/
/usr/ports/>make search name='pure-ftpd'
Port:   pure-ftpd-1.0.21_1
Path:   /usr/ports/ftp/pure-ftpd
Info:   A small, easy to set up, fast and very secure FTP server
Maint:  j@pureftpd.org
B-deps:
R-deps: perl-5.8.8
WWW:    http://www.pureftpd.org/

/usr/ports/>cd /usr/ports/ftp/pure-ftpd
/usr/ports/ftp/pure-ftpd/>make && make install && make clean

Вообще, подразумеваеся что MySQL уже стоит - без него я не пробовал, но в зависимостях его нет. Поэтому клиента лучше сразу поставить. Лезет синее окошко, где я выбрал такой набор опций:
          Options for pure-ftpd 1.0.21_1

[ ] LDAP           Support for users in LDAP directories
[X] MYSQL          Support for users in MySQL database
[ ] PAM            Support for PAM authentication
[ ] PGSQL          Support for users in PostgreSQL database
[X] PRIVSEP        Enable privilege separation
[X] PERUSERLIMITS  Per-user concurrency limits
[X] THROTTLING     Bandwidth throttling
[X] BANNER         Show pure-ftpd welcome upon session start
[X] UPLOADSCRIPT   Support uploadscript daemon
[X] UTF8           Support for charset conversion (expreimental)
[X] SENDFILE       Support for the sendfile syscall

После чего выскочило ещё пару опций, не отражённых в этом самом окошке:
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for pure-ftpd-1.0.21_1
You can use the following additional options:
WITH_CERTFILE=/path   - Set different location of certificate file for TLS
WITH_LANG=lang        - Enable compilation of language support, lang is one of
  english, german, romanian, french, french-funny, polish, spanish,
  dutch, italian, brazilian-portuguese, danish, slovak, korean,
  norwegian, swedish, russian, traditional-chinese, simplified-chinese,
  hungarian, catalan and czech.

Естессно, русский нам нужен :))) Потому жмякнул Ctrl+C, и внёс такие строки в /etc/make.conf
PORTSDIR?=      /usr/ports
# pure-ftpd
.if ${.CURDIR} == ${PORTSDIR}/ftp/pure-ftpd
WITH_LANG=              russian
.endif

После установки, копируем дефолтовые настройки:
/usr/home/lissyara/>cd /usr/local/etc/
/usr/local/etc/>ls | grep pure
pure-ftpd.conf.sample
pureftpd-ldap.conf.sample
pureftpd-mysql.conf.sample
pureftpd-pgsql.conf.sample
/usr/local/etc/>
/usr/local/etc/>cp pureftpd-mysql.conf.sample pureftpd-mysql.conf
/usr/local/etc/>cp pure-ftpd.conf.sample pure-ftpd.conf
/usr/local/etc/>

И редактируем конфиги:
/usr/local/etc/pure-ftpd.conf
# Конфиг pure-ftpd
# 2006-06-13, lissyara

# Для запуска Pure-FTPd с этой конфигурацией, вместо параметров   
# командной строки, запустите такую команду:
# /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
#
# Не забудте изучить документацию на сайте, для получения
# полного списка команд - http://www.pureftpd.org/documentation.shtml

# Chroot`ить всех пользователей в их хомяках
ChrootEveryone              yes

# Если в предыдущей опции было выбрано "no", то члены следующей
# группы не будут chroot`ится. Всё остальные - будутe. Если Вы не хотите
# chroot`ить всех, то просто раскоментируйте ChrootEveryone и TrustedGID.
# TrustedGID                    100

# Включить "фичи" совместимости, для кривых клиентов
BrokenClientsCompatibility  no

# Максимальное число одновременных юзеров
MaxClientsNumber            50

# Работать в фоне (демоном)
Daemonize                   yes

# Максимальное число одновременных соединений с одного IP
MaxClientsPerIP             8

# Если вы хотите логировать все команды клиентов, то в этом
# пункте должно быть "yes". Если необходимо логгировать также
# ответы сервера, то просто продублируйте этот пункт.
VerboseLog                  no

# Показывать или нет файлы, начинающиеся с точки, даже когда клиент
# явно не говорит что это надо делать, опцией "-a".
DisplayDotFiles             yes

# Не разрешать аутентифицированных юзеров - этот FTP
# только для анонимных клиентов.
AnonymousOnly               no

# Запретить анонимоусов - FTP тока для регистрованных юзеров.
NoAnonymous                 no

# Средства syslog (auth, authpriv, daemon, ftp, security, user, local*)
# Дефолт - "ftp". "none" - отключает логирование.
SyslogFacility              ftp

# Показывать какие-то куки? (Display fortune cookies)
# FortunesFile              /usr/share/fortune/zippy

# Не резольвить имена хостов в логах. Логи становятся менее информативными, 
# но и ресурсов требуется меньше. "yes" - имеет смысл ставить на очень
# загруженных серверах, или при неработающем DNS.
DontResolve                 yes

# Максимальное время простоя (по окончании рвётся коннект), в минутах
# (default = 15 minutes)
MaxIdleTime                 15

# Файл конфигурации LDAP (смотрите README.LDAP)
# LDAPConfigFile                /etc/pureftpd-ldap.conf

# Файл конфигурации MySQL (смотрите README.MySQL)
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf

# Файл конфигурации Postgres (смотрите README.PGSQL)
# PGSQLConfigFile               /etc/pureftpd-pgsql.conf

# база данных юзеров PureDB (смотрите README.Virtual-Users)
# PureDB                        /etc/pureftpd.pdb

# путь к сокету pure-authd (смотрите README.Authentication-Modules)
# ExtAuth                       /var/run/ftpd.sock

# Если нужно подключить PAM аутентификацию раскомментируйте
# следующую линию
# PAMAuthentication             yes

# Если нужна системная, Unix аутентификация (/etc/passwd),
# раскомментируйте следующую линию
# UnixAuthentication            yes

# Пожалуйста, отметтьте, что LDAPConfigFile, MySQLConfigFile,
# PAMAuthentication и UnixAuthentication могут использоваться только
# один раз, но они могут использоваться вместе. Например, если вы
# используете MySQLConfigFile, затем UnixAuthentication, то идёт запрос
# к MySQL. Если в БД такой пользователь не найден, то пробуется 
# системный пользователь в /etc/passwd и /etc/shadow. Если SQL
# аутентификация неудачна по причине неправильного пароля, то происходит
# остановка дальнейшего поиска пользователя. Методы аутентификации
# будут ипользоваться в порядке в которм они заданы

# Пределы рекурсии команды 'ls'. Первй аргумент - максимально число файлов,
# которое будет показано. Второе - максимальное число подкаталогов
LimitRecursion              2000 8

# Имеют ли право анонимоусы создвать новые директории?
AnonymousCanCreateDirs      no

# Если система загружена более, чем указанное тут значение, то
# анонимоусы не могут что-либо скачивать
MaxLoad                     4

# Диапазон портов для пассивного соединения. Если у вас файрволл рубает 
# стандартный диапазон
# PassivePortRange          30000 50000

# Принудительный IP адрес в PASV/EPSV/SPSV ответах. - для NAT.
# Символические имена хостов такде приняты для шлюзов с динамическим IP
# ForcePassiveIP                192.168.0.1

# Соотношение upload/download для анонимоусов.
# AnonymousRatio                1 10

# Соотношение upload/download для всех юзеров.
# Эта директива не перекрывает предыдущую.
# UserRatio                 1 10

# Запретить скачку файлов владельцем которых является "ftp", т.е.
# файлы были загружены но не одобрены местным (локальным) админом.
# (Название пункта интересное :))) 
AntiWarez                   yes

# IP адрес/порт на которых слушаем (дефолт = все IP и порт 21).
#Bind                      192.168.254.254,21

# Максимальная скорость для анонимоусов в KB/s
# AnonymousBandwidth            8

# Максимальная скорость для всех юзеров (включая анонимов) в KB/s
# Используйте AnonymousBandwidth или UserBandwidth, использовать оба,
# не имеет смысла.
# UserBandwidth             8

# Маска для создаваемых файлов. <umask для файлов>:<umask для директорий>.
# 177:077 - если вы параноик :)
# umask - это такое число, при вычитании которого из максимума (777) и
# получается нужная маска. т.е. для случая ниже маски будут, соответствено:
# 644 для файлов, и 755 для директорий
Umask                       133:022

# Минимальный UID с которым юзер будет пущен.
# (В родном варианте тут было 100. Я поставил тыщщу)
MinUID                      1000

# Разрешить передачу FXP для авторизованных юзеров.
# (Это передача файлов прям между серверами - т.е. если вам надо
# скопировать файл с одного сервака на другой, вы его вначале тащите
# к себе, затем кладёте куда надо. При включении этой опции сервера
# сами перекинут файл между собой. Но это палево - я серверов с
# включенной этой функцией ещё не видел :)))
AllowUserFXP                no

# Разрешить передачу FXP для анонимоусов и не-анонимоусов
# (видимо, для всех вообще).
AllowAnonymousFXP           no

# Пользователи не могут удалять и изменять файлы начинающиеся на точку('.')
# даже если они их владельцы. Если TrustedGID включена, эта группа имеет
# доступ к этим файлам.
ProhibitDotFilesWrite       no

# Запретить чтение файлов начинающихся с точки (.history, .ssh...)
ProhibitDotFilesRead        no

# Никогда не перезаписывать файлы. Когда имя, для закачиваемго файла уже
# существует, он будет автоматически переименован в file.1, file.2, file.3, ...
AutoRename                  no

# Запретить анонимным юзерам загружать новые файлы (no = аплоад разрешён)
AnonymousCantUpload         no

# Только подключения к этому IP адресу могут быть не анонимными. Вы
# можете использовать эту директиву чтобы использовать несколько IP
# для анонимного FTP, и оставить приватный, зафаерволленый IP для
# удалённого администрирования. также вы можете разрешить нероутабельный
# локальный IP (типа 10.x.x.x) для аутентификации и оставить публичный
# (для анонимоусов) FTP-сервер на другом IP.
#TrustedIP                  10.1.1.1

# Если вы хотите чтобы PID добавлялся в каждую линию лога,
# то раскомемнтируйте следующую линию.
#LogPID                     yes

# Создавать дополнительный лог-файл с логом в формате типа "apache":
# fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /icap.tar.bz2" 200 21808
# Этот лог-файл может быть обработан программами для
# анализа логов апача.
# AltLog                     clf:/var/log/pureftpd.log

# Создавать дополнительный лог-файл в формате оптимизированном для
# статистических отчётов (х.з. как это. Надо будет посмотреть)
# AltLog                     stats:/var/log/pureftpd.log

# Создавать ещё один лог с переданными файлами в стандарте W3C
# (совместим с многими коммерческими анализаторами)
# AltLog                     w3c:/var/log/pureftpd.log

# Отключить команду CHMOD. Пользователи не смогут менять разрешения
# на файлы.
#NoChmod                     yes

# Позволить юзерам закачивать но не удалять файлы.
#KeepAllFiles                yes

# Автоматически создавать домашнюю директорию пользователя,
# если она отсутствует
#CreateHomeDir               yes

# Включить виртуальную квоту. Первое число - максимальное число файлов.
# Второе число - максимальный размер, в мегабайтах.
# Так 1000:10 ограничивает каждого пользователя 1000 файлов и 10-ю мегами.
#Quota                       1000:10

# Если pure-ftpd скомпилен с поддержкой standalone режима, вы можете изменить
# местоположение pid-файла. Дефолтовое положение - /var/run/pure-ftpd.pid
#PIDFile                     /var/run/pure-ftpd.pid

# Если pure-ftpd скомпилен с поддержкой pure-uploadscript,
# то этот пункт позволяет писать информацию о новых загруженных
# файлах в /var/run/pure-ftpd.upload.pipe так что pure-uploadscript может
# прочесть их и обработать загруженный файл.
#CallUploadScript yes

# Эта опция полезна на серверах, гда позволен аплоад анонимоусам. 
# Если /var/ftp находится в отдельном разделе /var, это позволяет
# сохранить свободное место и защитить файлы логов. Когда процент
# заполнения больше чем указанный тут, аплоад автоматом запрещается.
MaxDiskUsage               99

# Установите 'yes' в этой опции если хотите разрешить юзерам
# переименовывать файлы.
#NoRename                  yes

# Включить 'customer proof': какая-то ошибка, типа 'chmod 0 public_html',
# при совместной работе, чтоль... Короче это не баг а фича... :) И чтобы
# тупые клиенты не напрягали ваш саппорт надо поставить 'yes' в этом
# пункте. Если клиенты имеют немного знаний по Unix то эта фича
# бесполезна. Если у Вас хостинг - включите её.
# (перевод почти дословный - но про что речь я так и не понял...)
CustomerProof              yes

# Число параллельных процессов. Работает тока если сервер был
# скомпилен с опцией '--with-peruserlimits' (тут чё-то про то, что
# в большинстве бинарных дистрибов так оно и есть).
# Формат:<максимум сессий на юзера>:<максимум сеансов анонимоусов>
# Например, 3:20 значит что аутентифичированный юзер может иметь три
# активных сеанса. А на всех анонимов - максимум 20 сеансов.
#PerUserLimits            3:20

# Когда загружен файл на сервер, и есть предыдущая версия (с тем же именем),
# то старый файл не будет ни удалён ни усечён. Загрузка будет произведена
# во временный файл и по окончании загрузки будет произведено атомарное
# переключение к новой версии файла. Например, при загрузке большого PHP
# сценария, апач будет работать со старой версией до полной загрузки
# и немедленно переключится на новый как тока он будет полностью передан
# Эта опция несовместима с виртуальными квотами.
#NoTruncate               yes

# Эта опция может принимать три значения:
# 0 - отключить SSL/TLS шифрование (по-умолчанию).
# 1 - принимать и шифрованные и обычные подключения.
# 2 - отклонять подключения которые не используют SSL/TLS,
#     включая анонимные соединения.
# Не раскомментируйте это вслепую. Проверьте, что:
# 1) Сервер скомпилен с поддержкой SSL/TLS (--with-tls),
# 2) Положен валидный сертификат,
# 3) Только совместимые клиенты залогинятся.
# TLS                      1

# Слушается тока IPv4 адрес в режиме standalone (т.е. IPv6 отключен)
# По дефолту, IPv4 и IPv6 включены.
IPV4Only                 yes

# Слушается тока IPv6 адрес в режиме standalone (т.е. IPv4 отключен)
# По дефолту, IPv4 и IPv6 включены.
# IPV6Only                 yes

# Поддержка UTF-8 для имён файлов (RFC 2640)
# Определите кодировку для файловой системы сервера и, опционально,
# дефолтовую кодировку для клиентов, которые не юзают UTF-8.
# Работает тока если pure-ftpd скомпилен с '--with-rfc2640'
FileSystemCharset koi8-r
ClientCharset cp1251

/usr/local/etc/pureftpd-mysql.conf
# Конфиг MySQL для pureftpd

# Опционально: Имя или IP MySQL-сервера. Не задавать этот
# пункт, если используется локальный unix сокет.
#MYSQLServer     127.0.0.1

# Опционально: Порт на котором висит MySQL. Не задавать этот
# пункт, если используется локальный unix сокет.
#MYSQLPort       3306

# Опционально: Задаётся имя сокета mysql.sock если MySQL на этом же хосте.
MYSQLSocket     /tmp/mysql.sock

# Обязательно: юзер, которым лезем в БД.
MYSQLUser       pure-ftpd

# Обязательно: пароль пользователя, от которого лезем в MySQL.
MYSQLPassword   pure-ftpd

# Обязательно: БД с которой работаем.
MYSQLDatabase   pureftpd

# Обязательно: как сохранён пароль в БД
# Возможные значения: "cleartext", "crypt", "md5" и "password"
# ("password" = MySQL password() функции)
# Можно использовать "any" чтобы попробовать "crypt", "md5" и "password"
MYSQLCrypt      cleartext

# В последующих директивах части строк заменены, до
# выполнения запроса:
#
# \L заменяется именем пользователя, что логинится.
# \I заменяется IP адресом сервера, на который лезет юзер
# \P заменяется номером порта с которым соединился юзер.
# \R заменяется IP адресом юзера.
# \D заменяется IP адресом юзера, в виде long decimal number
# (например, 192.168.254.1 == 3232300545).
#
# Можно настругать относительно сложные квери к БД, используя
# этот набор переменных. Если используется одна БД на несколько серверов,
# то "\I" позволяет определить, на тот ли сервер ломится юзер.

# Кверя на получение пароля из БД:
MYSQLGetPW      SELECT `password` FROM `users` WHERE `user`="\L" AND `active`='1'

# Кверя на получение системного имени пользователя, или UID
MYSQLGetUID     SELECT `uid` FROM `users` WHERE `user`="\L"

# Опционально: default UID - вместо квери на его извлечение MYSQLGetUID
#MYSQLDefaultUID 1000

# Запрос к БД на получение имени группы или gid
MYSQLGetGID     SELECT `gid` FROM `users` WHERE `user`="\L"

# Опционально: default GID - вместо запроса MYSQLGetGID
#MYSQLDefaultGID 1000

# Запрос на получения хомяка
MYSQLGetDir     SELECT `home` FROM `users` WHERE `user`="\L"

# Опционально: Запрос на максимальное число файлов у юзера
# (интересно - какой в этом глубокий смысл? Чтобы inode на
# сервере не первели чтоль? :))
#Должен быть скомпилен с `virtual quotas support`.
MySQLGetQTAFS  SELECT `QuotaFiles` FROM `users` WHERE `user`="\L"

# Опционально: запрос на квоту (использование диска)
# Число, в мегабайтах.
# Pure-FTPd должен быть скомпилен с `virtual quotas support`.
MySQLGetQTASZ  SELECT `QuotaSize` FROM `users` WHERE `user`="\L"

# Опционально: Отношения. Запросы на соотношение download/upload.
# Дол;ен быть скомпилен с этой функцией.
MySQLGetRatioUL SELECT `ULRatio` FROM `users` WHERE `user`="\L"
MySQLGetRatioDL SELECT `DLRatio` FROM `users` WHERE `user`="\L"

# Опционально: Ширина канала для юзера. Сервер должен быть
# скомпилен с такой опцией. Значение в KB/s .
MySQLGetBandwidthUL SELECT `ULBandwidth` FROM `users` WHERE `user`="\L"
MySQLGetBandwidthDL SELECT `DLBandwidth` FROM users WHERE `user`="\L"

# Выпускать юзера из хомяка (~). Никогда не делайте этого, если:
# 1) Вы точно знаете что делаете.
# 2) Совпадают реальные и виртуальные юзеры.
#MySQLForceTildeExpansion 1


# Если Вы обновили таблицы до транзакционных (Gemini,
# BerkeleyDB, Innobase...), можно включить транзакции SQL
# Оставьте закомменченым, если используются MyISAM базы данных,
# или старая версия MySQL (< 3.23.x).
#MySQLTransactions On

Затем создаём БД по прилагаемому дампу:
-- 
-- БД: `pureftpd`
-- 

-- --------------------------------------------------------

-- 
-- Структура таблицы `users`
-- 

CREATE TABLE `users` (
  `user` varchar(16) binary NOT NULL,
  `password` varchar(64) binary NOT NULL,
  `uid` int(11) NOT NULL default '-1',
  `gid` int(11) NOT NULL default '-1',
  `home` varchar(128) binary NOT NULL default '/usr/home/anonymous',
  `QuotaFiles` int(9) NOT NULL default '10000',
  `QuotaSize` int(6) NOT NULL default '100',
  `ULRatio` int(2) NOT NULL default '1',
  `DLRatio` int(2) NOT NULL default '10',
  `ULBandwidth` int(6) NOT NULL default '1024',
  `DLBandwidth` int(6) NOT NULL default '1024',
  `active` int(1) NOT NULL default '1',
  PRIMARY KEY  (`user`)
) TYPE=MyISAM;

-- 
-- Дамп данных таблицы `users`
-- 

INSERT INTO `users` VALUES ('lissyara', '123', 1001, 1001,
'/usr/home/lissyara', 10000, 100, 1, 10, 1024, 1024, 1);
INSERT INTO `users` VALUES ('anonymous', '123', 1002, 1002,
'/usr/home/anonymous', 10000, 100, 1, 10, 1024, 1024, 1);

Затем запускаем сервер:
/usr/home/lissyara/>echo 'pureftpd_enable="YES"' >> /etc/rc.conf
/usr/home/lissyara/>/usr/local/etc/rc.d/pure-ftpd start
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 
-lmysql:/usr/local/etc/pureftpd-mysql.conf -L2000:8 -m4 -s -U133:022
-u1000 -k99 -Z -4 -8koi8-r -9cp1251
/usr/home/lissyara/>
/usr/home/lissyara/>sockstat | grep pure
root     pure-ftpd  13064 3  dgram  -> /var/run/logpriv
root     pure-ftpd  13064 4  tcp4   *:21                  *:*
/usr/home/lissyara/>

Пробуем подключиться:
/usr/home/lissyara/>ftp localhost
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.int.otradno.ru.
220---------- Добро пожаловать на Pure-FTPd [privsep] [TLS] ----------
220-Вы пользователь 1 из 50 разрешенных
220-Местное время 09:12. Серверный порт: 21.
220 Вы будете отсоединены после 15 минут бездеятельности.
Name (localhost:lissyara):
331 Чтобы войти как lissyara требуется пароль
Password:
230-Пропускная способность для вас ограничена
230-Пользователю lissyara разрешен групповой доступ к:  wheel    1001
230-Вы должны соблюдать соотношение 1:10 (UL/DL)
230-OK. Текущая корневая директория /
230-1 файлов используется (0%) - разрешено: 10000 файлов
230 0 КБ используется (0%) - разрешено: 102400 КБ
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
Remote directory: /
ftp> quit
221-Всего хорошего. Вы закачали 0 и скачали 0 килобайт.
221 Отсоединение.
/usr/home/lissyara/>

И в /var/log/xferlog такие строки:
Jun 14 09:12:50 lissyara pure-ftpd: (?@127.0.0.1) [INFO] Новое соединение с 127.0.0.1
Jun 14 09:12:58 lissyara pure-ftpd: (?@127.0.0.1) [INFO] lissyara вошел
Jun 14 09:13:09 lissyara pure-ftpd: (lissyara@127.0.0.1) [INFO] Отсоединение.

Ну и всё. Работает. Особенно мне понравилась возможность перекодировки - сейчас на моём ftp для локалки всё хранится в кодировке cp1251 - соответсвенно при просмотре из консоли - это тихий ужас, ибо локаль на фре koi8-r. Теперь можно будет всё хранить в нормальном формате (правда придётся настругать скрипт для переименовывания всего - 200 гигов с именами в cp1251 :)).
Из минусов - нет возможности, как в proftpd на запись в MySQL логов - кто что передал-принял, какие были команды и с каким результатом... Очень удобная феня... Также при ошибках в конфиге не ругается на то, в какой строке ошибка - я оставил незакомменченым одно предложение из комментов, по-русски - не запускался, и в логах так ругался:
Jun 13 20:22:41 lissyara pure-ftpd: (?@?) [ERROR] Ошибка в конфигурации: Плохой файл конфигурации SQL: /usr/local/etc/pureftpd-mysql.conf
Jun 13 20:25:45 lissyara pure-ftpd: (?@?) [ERROR] Ошибка в конфигурации: Плохой файл конфигурации SQL: /usr/local/etc/pureftpd-mysql.conf

Хорошо хоть конфиги не большие, и удалось быстро найти...



размещено: 2006-06-14,
последнее обновление: 2008-12-13,
автор: lissyara

оценить статью:

jails, 2006-06-15 в 1:21:20

В портах имеется веб-морда для pure-ftpd
/usr/ports/www/usermanager. На сайте автора веб-морды, имеется русик и подробное описание установки.
http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Urgor, 2006-07-24 в 14:16:43

Перед подключением не помешает сделать:
mkdir /usr/home/lissyara
chown 1001:1001 /usr/home/lissyara
иначе не дает ничего закачивать
И в '/usr/local/etc/rc.d/pure-ftpd start' .sh забыл на конце скрипта.

бонх, 2006-07-26 в 12:02:48

-"Затем создаём БД по прилагаемому дампу:"
С этого момента можно по подробнее?.. Как именно?

Kolesya, 2006-09-19 в 15:21:25

Все супер, есть предложение немного поменять параметры установки
[ ] BANNER         Show pure-ftpd welcome upon session start

Зачем показывать какую версию софта мы используем ? :-)

Денисон, 2006-10-23 в 4:58:30

# Установите 'yes' в этой опции если хотите разрешить юзерам
# переименовывать файлы.
#NoRename                  yes

Ну вообще-то наоборот =).
должно быть так
#Установите 'Yes' в этой опции если НЕ хотите разрешить #юзерам переименовывать файлы.

Денисон, 2006-10-23 в 5:04:33

# Включить 'customer proof': какая-то ошибка, типа 'chmod 0 public_html',
# при совместной работе, чтоль... Короче это не баг а фича... :) И чтобы
# тупые клиенты не напрягали ваш саппорт надо поставить 'yes' в этом
# пункте. Если клиенты имеют немного знаний по Unix то эта фича
# бесполезна. Если у Вас хостинг - включите её.
# (перевод почти дословный - но про что речь я так и не понял...)


Вообщем написано что это что-то типа "защиты" от глупых ошибок пользователей типа 'chmod 0 public_html', которые в принципе реальные, но они могут полностью блокировать файлы пользователей, и потом буквально "иметь" вашу техническую поддержку глупыми притензиями. Если клиенты имеют немного знаний по Unix то эта фича бесполезна. Если у Вас хостинг - включите её. (перевод почти дословный - но про что речь я так и не понял...)

Я так) подправляю по мере прочтения =)

Slava524, 2007-02-01 в 9:04:39

А вот можно в pure-ftpd сделать разделение прав по ip клиента? Например, у меня есть сервак, где анонимусы, пришедшие из внутренней сети (192.168.1.0/24) могут и писать, и удалять, и создавать директории, а анонимусы извне могут только читать. В proftpd такое на ура делается.

Anonymous, 2007-04-04 в 0:40:56

> Теперь можно будет всё хранить в нормальном формате (правда придётся настругать скрипт для переименовывания всего - 200 гигов с именами в cp1251 :)).

apt-get install convmv && man convmv

yoda, 2007-07-22 в 20:34:08

Согласен с Urgor относительно прав без них не будет закачиваться.
В догонку чтобы пассы шифровались лучше использовать так:
INSERT INTO `users` VALUES ('anonymous', 'MD5('123'), 1002, 1002, '/usr/home/anonymous', 10000, 100, 1, 10, 1024, 1024, 1);

www2, 2007-11-18 в 13:01:07

Товарисч Anonymous правильно сказал насчёт convmv, только не учёл он, что здесь обсуждается не его любимый Debian, а FreeBSD.

Колесо (то есть скрипт) для перекодировки имён файлов изобретать не надо, оно уже есть и называется iconvmv.

Павел, 2007-12-20 в 20:04:05

>Естессно, русский нам нужен :))) Потому жмякнул Ctrl+C, и внёс такие строки в /etc/make.conf

смысл тащиться писать скрипт в make.conf, не проще ли просто заюзать #make WITH_LANG=russian
??

lissyara, 2007-12-20 в 20:26:54

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

Saalan, 2007-12-27 в 21:37:01

1. Похоже pure-ftpd авторизует anonymous-а до обращения в MySQL базу. Я менял его параметры, удалял его - никаких изменений.
Пробовал поставить "NoAnonymous no" - не пускает, через MySql авторизовать не пытается...
Из авторизаций, у мня только MySQLConfigFile раскоментарен.
Что-то не догадался попробовать его из passwd грохнуть...

2. Поясните плеез назначение значений UID и GID.
Права на запись/чтение раздаются на уровне системы?    

niceman, 2008-01-20 в 18:49:47

при заливке от anonymous каталогам/файлам назначаются права 755:644, таким образом, другие пользователи(сортировщики поступающих материалов) не могут удалять файлы в новых каталогах, созданных этим пользователем. Никак не могу решить эту проблему, поэтому тупо кроном раз в минуту делаю chmod директорий до 775. В исходниках замена всех 755 на 775 ничего не дает.

lissyara, 2008-01-20 в 20:18:08

Это нормальное поведение для анонимного фтп.
А вам я рекомендую научиться читать - для вопросов есть форум.

Igorka(:, 2008-03-19 в 17:45:43

При создании таблицы поля user, password, uid, gid должны быть написаны с большой буквы или же в mysql конфиге нужно исправлять строчки с точностю наоборот. А поле таблицы "home" нужно изменить на "Dir".
Ето у меня такие неточности при установке с портов возникли на FreeBsd 7.0

Павел, 2008-03-19 в 17:54:57

>А теперь расскажи, как при обновлении, ты достаёшь >замызганную бамажку, разбираешь то что на ней написано, и >вбиваешь все опции...
>А если забыл, то получаешь неработоспособное приложение, >или лишённое необходимого функционала.
Не буду утверждать конечно, но на собственном опыте делал... ставлю из портов приложение с указанем опций, все указанные опции сохраняются где-то там в configure, доставать замызганную бумажку ещё не приходилось :-)

lissyara, 2008-03-19 в 18:31:03

>смысл тащиться писать скрипт в make.conf, не проще ли просто заюзать #make WITH_LANG=russian
уже и это сохраняется?
ща уточню... помоему - нет.

Stalker (AKA Zver), 2008-04-04 в 14:44:25

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

Как я понл, проблема в том что ты редактировал конфиг, и это не помогло. Дело в том что pure-ftpd напрямую НЕ ЗАБИРАЕТ опции из конфигурационного файла. Об этом написано в документации на PureFTP. Но! там в составе идет перловый скрипт, который запускается предварительно при старте скрипта /usr/local/etc/rc.d/pureftpd, парсит конфиг и формирует строку опция доля PureFTP.
Предположу что у вас НЕ УТСАНОВЛЕН perl.

Artem, 2008-05-04 в 22:51:17

Как зелать чтобы был анонимный доступ, чтото никак не получаеться(

seacon, 2008-06-02 в 20:17:57

По дефолту в целях безопасности, pure-ftpd не дает анонимусам права на докачку файла в случае обрыва, переименование файлов и удаление файлов. Чтобы решить проблему, необходимо пересобрать его из исходников. Для этого распаковываем исходники
даем команду ./configure
добавляем в файл config.h след строки:
#define ANON_CAN_DELETE 1
#define ANON_CAN_RESUME 1
#define ANON_CAN_RENAME 1
далее собираем make && make install

Dushes, 2008-11-19 в 2:30:06

nf;t проблема что то анонима ни в какую не пускает :(

Dushes, 2008-11-19 в 2:44:59

Разобрался

If you want to accept anonymous users on your FTP server, you don't need to have any 'ftp' user in the MySQL directory. But you need to have a system 'ftp' account on the FTP server.

Grishin_U_S, 2009-01-04 в 11:44:06

Долго не мог понять почему не пускает системного пользователья, у которого в качестве шелла установлен /usr/sbin/nologin .
Помогло в /etc/shells написать /usr/sbin/nologin , источник

http://www.opennet.ru/openforum/vsluhforumID1/65444.html

Classified, 2009-06-24 в 15:58:00

У меня pureftpd v1.0.22 + MySQL 5.1
Для старта вручную, запускается так:
/usr/local/sbin/pure-ftpd -l mysql:[путь где лежит pureftpd-mysql.con] &

Для автозапуска не знаю:
echo 'pureftpd_enable="YES"' >> /etc/rc.conf НЕ работает

alekciy, 2010-01-02 в 17:59:52

Не стоит забывать об ошибке в файле конфига в директиве PassivePortRange (Маленькая ошибка в конфигурационном файле Pure-FTPd, из-за которой я потерял час).

Павел, 2010-01-03 в 15:32:46

Да нет никакой ошибки, всё работает. Что написано в статье непонятно, может версия старая.

alekciy, 2010-01-02 в 17:59:52

Не стоит забывать об ошибке в файле конфига в директиве PassivePortRange (Маленькая ошибка в конфигурационном файле Pure-FTPd, из-за которой я потерял час).

nezabor, 2010-03-20 в 18:11:53

testFr# /usr/local/etc/rc.d/pure-ftpd start
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lmysql:/usr/local/etc/pureftpd-mysql.conf -L2000:8 -m4 -s -U133:022 -u1000 -k50 -Z -4 -8koi8-r -9cp1251
421 Неизвестный метод авторизации: mysql:/usr/local/etc/pureftpd-mysql.conf
/usr/local/etc/rc.d/pure-ftpd: WARNING: failed to start pureftpd

Exit, 2010-05-16 в 10:54:55

Не могу разобраться. В строке с кол-ом пользователей:
MaxClientsNumber        5
При старте Pure-ftpd:
/pure-ftpd.pid -A -с5 -B -C8 -E
а при подключении пользователей
Вы пользователь 1 из 1 разрешенных

Подскажите, я запутался (


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 15 чел.
За последние 30 мин было: 56 человек
За сегодня было
1646 показов,
361 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2352 секунд
Из них PHP: 71%; SQL: 29%; Число SQL-запросов: 54 шт.
Исходный размер: 142381; Сжатая: 31690