The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Ограничение доступа на сервере proftpd при помощи mod_wrap (ftp access limit)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: ftp, access, limit,  (найти похожие документы)
From: Sergey Velikanov Newsgroups: email Date: Mon, 15 Jul 2004 18:21:07 +0000 (UTC) Subject: Ограничение доступа на сервере proftpd при помощи mod_wrap Помощь по установке модуля mod_wrap для ftp сервера proftpd для FreeBSD Модуль mod_wrap позволяет гибко ограничивать доступ клиентов к ftp серверу в зависимости от их ip адреса или имени хоста. Правила могут храниться как в файлах (mod_wrap_file) так и в базе данных. (mod_wrap_sql) Передо мной стояла следующая задача, ограничить доступ клиентов только с ip адресов провайдера, в тоже время в зависимости от логина пускать некоторых клиентов с произвольных ip адресов Установка: ---------- Скачиваем модуль mod_wrap (http://www.castaglia.org/proftpd/modules/proftpd-mod-wrap-2.0.2.tar.gz) После распаковки, необходимо запустить cd mod_wrap-2.0rc1 ./configure После этого копируем mod_wrap.h и все файлы с расширением .c в папку proftpd-dir/contrib/ ( по умолчанию во freebsd это будет /usr/ports/ftp/proftpd/work/proftpd-1.2.9/contrib если не переопределена переменная окружения WRKDIRPREFIX) После этого переходим в директорию /usr/ports/ftp/proftpd и собираем proftpd c поддержкой mod_wrap и SQL make -DWITH_MYSQL --with-modules=mod_wrap:mod_wrap_file:mod_wrap_sql install Проверяем что proftpd собрался с поддержкой mod_wrap /usr/local/libexec/proftpd -l Compiled-in modules: mod_core.c mod_xfer.c mod_auth_unix.c mod_auth_file.c mod_auth.c mod_ls.c mod_log.c mod_site.c mod_auth_pam.c mod_ratio.c mod_readme.c mod_wrap.c mod_wrap_sql.c mod_wrap_file.c mod_ifsession.c mod_sql.c mod_sql_mysql.c После этого добавляем след строчки в конфиг (/usr/local/etc/proftpd.conf) ------------------------------------ #Настройка подключения к sql базе SQLConnectInfo proftpd@localhost:3306 xxx xxx #Настройка mod_wrap WrapEngine on WrapAllowMsg "User '%u' allowed by access rules" WrapDenyMsg "User '%u' denied by access rules" WrapLog /var/log/proftpd.wrap.log #Описания запросов к sql базе SQLNamedQuery get-allowed-clients SELECT "allowed FROM wrapallow WHERE name = '%{0}'" SQLNamedQuery get-denied-clients SELECT "denied FROM wrapdeny WHERE name = '%{0}' or name = 'ALL'" #Директива WrapUserTables предназначена для ограничений по пользователям, существуют также #директивы WrapGroupTables и WrapTables соответственно для ограничений по группам и ограничений для всех. #Хотя в документации и показано что можно опускать имя пользователя в директиве WrapUserTables на #самом деле это не так, поэтому я добавил !unknown что означает применять данные ограничения для всех пользователей #кроме пользователя unknown которого не существует на самом деле :) WrapUserTables !unknown sql:/get-allowed-clients sql:/get-denied-clients ------------------------------------ После этого создаем две таблицы в SQL базе Allow table: CREATE TABLE wrapallow ( name VARCHAR(30), allowed VARCHAR(255) NOT NULL ); Deny table: CREATE TABLE wrapdeny ( name VARCHAR(30), denied VARCHAR(255) NOT NULL ); Добавляем записи в таблицы INSERT INTO `wrapdeny` ( `name` , `denied` ) VALUES ('ALL', 'ALL EXCEPT 10.0.'); # Слово ALL означает что это выражения для всех пользователей, # ALL EXCEPT 10.0. означает что запретить доступ для всех кроме клиентов # с ip адресом 10.0.*.* INSERT INTO `wrapallow` ( `name` , `allowed` ) VALUES ('vgray', '172.16.102.'); #Разрешить пользователю vgray доступ с сети 10.0.102.* Более подробно о выражениях которые могут стоять в полях denied и allowed можно прочитать на http://www.castaglia.org/proftpd/modules/mod_wrap-2.0.html

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, denm (?), 06:05, 01/04/2006 [ответить]  
  • +/
    Это для какой версии FreeBSD установка описана?
    У меня 5.4 и на "make -DWITH_MYSQL --with-modules=mod_wrap:mod_wrap_file:mod_wrap_sql install" ругается - "illegal option -- -"
     
  • 2, denm (?), 03:29, 02/04/2006 [ответить]  
  • +/
    Кто-нить комменты вообще читает? Установил кое-как. Все не так, как тут описано. В 5.4 по крайней мере. Вопрос: можно ли вместо маски IP задать подсеть типа 194.186.0.0/16?
     
  • 3, obl (ok), 03:55, 09/03/2007 [ответить]  
  • +/
    зачем мускуль вообще нужен? непонятно... упадет мускуль - хана системе..
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру