Документация по ОС FreeBSD
Суббота, 29.11.2025, 01:25
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
FTP
Ограничение доступа на сервере proftpd при помощи mod_wrap
Модуль 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
Категория:
FTP
| Добавил:
oleg
(13.11.2007)
Просмотров:
1328
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025