Вопрос по SQL аутентификации proftpd

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
kolossus
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-04-08 13:28:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение kolossus » 2010-09-07 12:44:35

Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

kolossus
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-04-08 13:28:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение kolossus » 2010-09-07 12:50:46

Orator писал(а):
kolossus писал(а):А как сделать разным пользователям разные права доступа к папкам?
Пока что SQL используется для входа, а как раздавать права?
Смотря какой сложности доступ,
можно создать разные групы в том же sql и пользователей причислять к групам
можно создать пользователя одного в системе например с уидом 10000, в базу если пользователю надо писать ставить ему уид 10000 если нет 65534
права на папку соответственно 700.

Есть более сложные схемы и способы, приветствуется также комбинирования многих способов.

Интересует более конкретный ответ?
Опишите конкретную ситуацию с примерами, что-бы можно было судить о масштабности и не внедрять фиг-поймеш-что где можно обойтись велосипедом.
Есть несколько сотен пользователей, у них доступ ко всем папкам - на чтение и к папке 'UserFiles' - еще и на запись
Есть несколько пользователей, у которых полный доступ к некоторым папкам (у каждого свои).
Есть готовая база пользователей с логинами и паролями, которая и используется для доступа к серверу.

Orator
рядовой
Сообщения: 36
Зарегистрирован: 2008-07-16 11:21:58

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Orator » 2010-09-12 10:02:18

kolossus писал(а):
Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users
В Вашем случае достаточно будет обновить proftpd до последней версии.

Табличка с пользователями (она у меня общая на все сервисы)

Код: Выделить всё

SELECT * FROM users WHERE UserName='123';
Id 	   UserName 	Password 	Comment 	Active
1678    123 	        321           NULL 	1
Вот от самого ftp

Код: Выделить всё

SELECT * FROM proftpd WHERE UserName='123';
Id 	UserName 	Uid 	  Gid 	HomeDir 	           Active 	
857 	123 	        1003   1003 	/infopool/%...%    1 	        

чудно сейчас работает.
Раньше приходилось править
/usr/ports/ftp/proftpd/work/proftpd-1.3.3a/contrib/mod_sql*

Сейчас рекомендую обновится, авторы исправили много ошибок о которых отписывались, хотя еще и не все.
До определенного момента мод sql был вообще достаточно дырявым при попытке использования не стандартных настроек.
По крайней мере та часть что относится к mysql, c postgre не работал.

На данный момент стоит
proftpd-1.3.3a
mysql-server-5.5.5_1

около 800-900 пользователей ftp.
С момента обновления, несколько раз отваливался мод clamav, но он и в предыдущих версиях на больших нагрузках пропускал.
Все остальное стабильно.

Orator
рядовой
Сообщения: 36
Зарегистрирован: 2008-07-16 11:21:58

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Orator » 2010-09-12 10:27:10

1.Есть несколько сотен пользователей, у них доступ ко всем папкам - на чтение и к папке 'UserFiles' - еще и на запись
2.Есть несколько пользователей, у которых полный доступ к некоторым папкам (у каждого свои).
3. Есть готовая база пользователей с логинами и паролями, которая и используется для доступа к серверу.[/quote]

1. Просто правами в системе оставляем анонимный доступ xx5 для директорий хх4 для файлов.
2. Всем пользователям которым нужен полный доступ даем uid пользователя существующего в системе с правильными правами
Если необходимо по директориям еще разбить, то описать доступ к директории в конфиге сервера на группу, а потом в mysql в группы вносить нужных пользователей.
3. У меня табличка с пользователями и паролями, вообще отдельно, ftp таблицы содержат только имена а пароль вытягивают из общей таблицы.

kolossus
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-04-08 13:28:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение kolossus » 2010-09-16 13:54:37

Orator писал(а):
kolossus писал(а):
Orator писал(а):
kolossus писал(а):Если имя пользователя состоит только из цифр (например - 12548746614) - не пускает.
Может кто знает, как это перебороть?
Поменять имя - не предлагать :)
Спасибо...
Какой тип аутентификации используете?

Код: Выделить всё

SQLAuthTypes            Plaintext
SQLAuthenticate         users
В Вашем случае достаточно будет обновить proftpd до последней версии.

Код: Выделить всё

proftpd-mysql-1.3.3a
С цифровыми логинами не пускает.
Есть варианты?

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение risk94 » 2010-09-16 15:53:54

както видел статью на сайте с настройкой квотирования места для юзера (юзера хранятся в мусе). подскажит, не могу ее найти

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение risk94 » 2010-09-17 10:43:40

люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!

kolossus
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-04-08 13:28:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение kolossus » 2010-09-17 11:41:08

risk94 писал(а):люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!
Не было такой. Была:
Proftpd - квоты и авторизация из файлов. Мониторинг.

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение risk94 » 2010-09-17 15:46:05

kolossus писал(а):
risk94 писал(а):люди добрые, ткните носом в статью про proftpd + mysql + quote была на серваке, не могу найти, 3-й день ищу!
Не было такой. Была:
Proftpd - квоты и авторизация из файлов. Мониторинг.

была однозначно! Ну да хрен с ней. Официальный мануал + гугля спасли!
Настроил я квоты для юзеров в мусе. Если кому интересно - позже отпишусь как.

Orator
рядовой
Сообщения: 36
Зарегистрирован: 2008-07-16 11:21:58

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Orator » 2010-09-26 10:44:08

[/quote]

Код: Выделить всё

proftpd-mysql-1.3.3a
С цифровыми логинами не пускает.
Есть варианты?[/quote]

Даже не знаю, я ставил недавно еще на двух фирмах аналогичную конфигурацию, проверил все нормально.
Глупо вроде, но всякое может быть:
у вас proftpd-mysql-1.3.3a
я же ставил с порта proftpd просто указывая опцию мускуля, тобиш proftpd-1.3.3a.

И еще если не трудно то отключите используемые фильтры
DenyFilter PathDenyFilter и прочее
когда-то копал исходный код модуля, видел там проверку фильтров
может там?

flash_br
рядовой
Сообщения: 11
Зарегистрирован: 2010-09-15 9:06:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение flash_br » 2010-10-01 8:06:29

Парни, всем здарова!!!
Мускл - сила .. но если у юзера в мускле проставлен пароль "null" (ну так надо) ... а в системе он есть, он коннектится по пассу из системы ... как полечить?

да.. и ещё коннектится зараза по пассу из базы и по пассу из системы .... а надо тока из базы :st:
heeeeeeeeeeeeeeeeelp!!!!!!!!!!!!!!

flash_br
рядовой
Сообщения: 11
Зарегистрирован: 2010-09-15 9:06:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение flash_br » 2010-10-01 8:20:49

всё .. разобрался

Код: Выделить всё

RequireValidShell       off
AuthPAM                 off
:oops: :oops: :oops:

risk94
лейтенант
Сообщения: 831
Зарегистрирован: 2007-06-01 19:27:51

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение risk94 » 2010-10-22 22:39:39

flash_br писал(а):всё .. разобрался

Код: Выделить всё

RequireValidShell       off
AuthPAM                 off
:oops: :oops: :oops:
мужИкк!! :good:

flash_br
рядовой
Сообщения: 11
Зарегистрирован: 2010-09-15 9:06:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение flash_br » 2010-10-23 9:59:15

хорошая это штука .... а главное удобная)))))

Аватара пользователя
Anton_Astrogor
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-08-17 23:26:11
Откуда: Москва
Контактная информация:

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Anton_Astrogor » 2010-10-27 9:49:24

Вопрос про дерективы SQLRatios и SQLRatioStats не сумел отыскать нормального описания, может кто что подскажет?
Встретишь БУДДУ мочить не надо, но не дай себя развести

Аватара пользователя
Anton_Astrogor
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-08-17 23:26:11
Откуда: Москва
Контактная информация:

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Anton_Astrogor » 2010-10-27 10:15:51

Так же есть интересует возможность хранения RLimitCPU, RLimitMemory, RLimitOpenFiles, MaxClients, а вообще интересует возможность переноса максимального количества параметров в MySQL
Встретишь БУДДУ мочить не надо, но не дай себя развести

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение o2x » 2011-02-02 15:52:56

Приветствую.
Относительно части дампа:

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';
Не удается создать таблицу, так как нету поля:

Код: Выделить всё

  `userid` int(32) NOT NULL auto_increment,
Так, как вы ее создавали? Если дамп рабочий.

Starshiy
проходил мимо

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение Starshiy » 2011-02-03 10:31:06

Народ, простите юзера - только начал в никсовых системах разбираться.. Куда вообще прикручивается этот php файлик, чтобы логи через web морду смотреть?? не могу понять с какой стороны вообще к нему подойти?

harmless
лейтенант
Сообщения: 719
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение harmless » 2011-02-04 14:15:04

o2x писал(а):Приветствую.
Относительно части дампа:

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';
Не удается создать таблицу, так как нету поля:

Код: Выделить всё

  `userid` int(32) NOT NULL auto_increment,
Так, как вы ее создавали? Если дамп рабочий.
В Вашем случае это поле будет не а

Код: Выделить всё

username
Весь дамп

Код: Выделить всё

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL DEFAULT '1003',
  `gid` int(11) NOT NULL DEFAULT '1003',
  `homedir` varchar(50) NOT NULL DEFAULT '/ftp',
  `shell` varchar(20) NOT NULL DEFAULT '/bin/nonexistent',
  `last_login` int(15) NOT NULL DEFAULT '0',
  `count` int(15) NOT NULL DEFAULT '0',
  `last_err_login` int(15) NOT NULL DEFAULT '0',
  `err_login_count` int(15) NOT NULL DEFAULT '0',
  `closed` int(1) NOT NULL DEFAULT '1',
  `admin` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`username`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение o2x » 2011-02-04 15:52:40

Приветствую.
Использовал ваш архив: proma.tar.
Создавался пользователь:

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 0, 0, 'admin');
После создания, при попытке авторизоваться:

Код: Выделить всё

http://host/proma/?page=admin
выдает ошибку:
Wrong username or password, or you're not an admin.

Параметры авторизации:
user: admin
pass: admin_pass


В чем проблема? Спасибо.

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение o2x » 2011-02-04 17:31:49

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     0 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.01 sec)

harmless
лейтенант
Сообщения: 719
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение harmless » 2011-02-06 14:10:17

o2x писал(а):Приветствую.
Использовал ваш архив: proma.tar.
Создавался пользователь:

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 0, 0, 'admin');
После создания, при попытке авторизоваться:

Код: Выделить всё

http://host/proma/?page=admin
выдает ошибку:
Wrong username or password, or you're not an admin.

Параметры авторизации:
user: admin
pass: admin_pass


В чем проблема? Спасибо.
Приветствую!
На даном этапе группы еще не реализованы...
Так что в Вашем случае нужно еще и добавить флаг админа при заведении пользователя

Код: Выделить всё

INSERT INTO `users` (`userid`, `name`, `mail`, `uid`, `gid`, `passwd`, `shell`, `homedir`, `note`, `last_login`, `count`, `last_err_login`, `err_login_count`, `admin`, `closed`, `groupname`) VALUES ('admin', 'admin', 'admin@domain', 1003, 80, 'admin_pass', '/bin/nonexistent', '/var/ftp', '', 0, 0, 0, 0, 1, 0, 'admin');

Код: Выделить всё

`admin` = 1

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение o2x » 2011-02-07 11:29:38

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)
Результат анологичен(((

harmless
лейтенант
Сообщения: 719
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение harmless » 2011-02-08 12:10:13

o2x писал(а):

Код: Выделить всё

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd     | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | admin_pass | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)
Результат анологичен(((
Заметил странность в том что без пароля не пускает)
И пароли хранятся шифрованными, а вы добавляете plain, так что :pardon:

Аватара пользователя
o2x
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-01-31 17:46:54

Re: Вопрос по SQL аутентификации proftpd

Непрочитанное сообщение o2x » 2011-02-08 15:48:34

Код: Выделить всё

mysql>  UPDATE users SET passwd=PASSWORD('admin_pass') WHERE name='admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from users where name='admin';
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| userid | name  | mail         | uid  | gid  | passwd                                    | shell            | homedir  | note | last_login | count | last_err_login | err_login_count | admin | closed | groupname |
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
| admin  | admin | admin@domain |    0 |   80 | *67ACDEBDAB923990001F0FFB017EB8ED41861105 | /bin/nonexistent | /var/ftp |      |          0 |     0 |              0 |               0 |     1 |      0 | admin     |
+--------+-------+--------------+------+------+-------------------------------------------+------------------+----------+------+------------+-------+----------------+-----------------+-------+--------+-----------+
1 row in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Необходимо изначально было sql дамп в архиве поправить.