LINUX.ORG.RU
ФорумAdmin

[apache, .htaccess] Разрешить только IP-адреса из базы.


0

0

Есть ресурс на апаче. Надо разрешить использовать его только тем, кто занесен в белый список в базе. Адресов больше 3 тысяч, поэтому простой текстовый файл не хотелось бы.

А хотелось бы примерно вот такую строчку в .htaccess:

Allow from sql(select ip from ip_base where ip='%i' and allowed='t')(127.0.0.1)

Ну то есть если в таблице есть нужный айпи-адрес, то его разрешают, а если нет, то возвращается "127.0.0.1" и до свиданья.

Есть какие-нибудь похожие модули у апача?

Ну или на крайняк модуль, который вызывает внешнюю программу.

anonymous
Ответ на: комментарий от zhiltsov

Туда очень много левого народ имеет доступ. Точнее не то чтобы левого, но безответственного. Ну то есть если что вдруг поломается, необязательно именно эта закрывашка, то они запросто могут вырезать эту проверку, так, на всякий случай; а добавить ее обратно забудут.

Так что лучше уж от администратора.

anonymous
()

а iptables не подходит в данном случае? только не база, а файлик с разрешенными айпишниками. и простой sh-скрипт чтобы парсил этот файлик и добавлял правила разрешения в iptables.

Komintern ★★★★★
()

такие вещи делаются на С как модуль апача за конечное время (< 1 дня),
но поскольку мы легких путей не ищем, то за 5 минут можно сделать так:

httpd.conf:

RewriteEngine On
RewriteMap addrtouser   prg:/etc/httpd/conf/rewrite.pl
RewriteCond ${addrtouser:%{REMOTE_ADDR}} !^allow$
RewriteRule .* - [NC,F]

/etc/httpd/conf/rewrite.pl:

#!/usr/bin/perl
$| = 1;
while (<STDIN>) {
    if (/192.168.248.1/){
                print "allow\n";
    }else{
                print "deny\n";
    }
}

надеюсь для БД сами скрипт перепишите

borisych ★★★★★
()
Ответ на: комментарий от borisych

ах, да, rewritelock не забудьте, а то работать не будет нифига

borisych ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.