форум vBSupport.ru > vBulletin > vBulletin 4.2.x > Хаки, моды и скрипты 4.2.x
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Epik
Продвинутый
Default Еще один способ защиты админки
11

Не знаю сюда ли, и было ли, но на всякий случай выложу...

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

Решение пришло в голову само, а именно - ограничение по user agent.
Быстренько нагуглил, оказалось все довольно просто: создаем в админке модерке и прочих прелестях .htaccess, в котором пишем:
Quote:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !здесьлюбойнаборсимволов [NC]
RewriteRule ^ - [F,L]
Далее качаем дополнение к Хрому или аналогичное к другому браузеру и идем в его настройки
заполняем примерно так:


Теперь при заходе в админку хацкеры будут видеть 403, а Вы сможете в настройках расширения выбрать свой user agent и спокойно пользоваться. Получается практически непробиваемо, обойти можно только если есть "крыса" в коллективе или доступ к FTP.

Надеюсь поможет кому-то.
P.S.: Не забывайте возвращать user agent на место, иначе не будет работать визуальный редактор.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
хрюк
Гость
Default

@Epik, хорошая идея.
 
 
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Default
1

Для nginx ктонить подскажет решение ?

P.S Для Лиса рекомендую User Agent Overrider
 
 
Smalesh
В Черном списке
Default
1

Quote:
Originally Posted by xorex View Post
Для nginx ктонить подскажет решение ?
Админку в локейшн (если еще не выведена) + как-то так
Code:
if (!$http_user_agent ~ "бла-бла-бла") {
return 444;
}
Т.е.
Code:
                location ^~ /каталог админки/ {
                        if (!$http_user_agent ~ "бла-бла-бла") {
                        return 444;
                        }
                        proxy_pass http://127.0.0.1:8080;
                        proxy_redirect http://127.0.0.1:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
                        proxy_set_header X-Real-IP $remote_addr;
                }
Не проверял, но суть примерно такая
 
 
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Default
1

Smalesh, спасибо, но сработало немного по другому

PHP Code:
if ($http_user_agent !~* blablabla) {
return 
403;

 
 
Smalesh
В Черном списке
Default
2

Quote:
Originally Posted by xorex View Post
но сработало немного по другому
Ой, да, протупил)
В оправдание вот еще один вариант для nginx

Code:
              location ^~ /каталог админки/ {
                        satisfy any;
                        allow xx.xx.xx.xx/32;
                        deny  all;
                        auth_basic "Hello, Admin, please login";
                        auth_basic_user_file /путь до файла с паролени/92776.pas
                        proxy_pass http://127.0.0.1:8080;
                        proxy_redirect http://127.0.0.1:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
                        proxy_set_header X-Real-IP $remote_addr;
                }
Суть - благодаря satisfy вход с определенного ip (allow) будет без пароля, тогда как любого другого ip будет спрашивать пароль. Удобно, когда сидишь на белом выделенном ip.

У вышеописанного способа защиты есть одна серьезная пакость - если в браузере не выключить юзерагент, то он будет виден администраторам других ресурсов со всеми защитными элементами, открытым текстом пишется в access.log практически любого web-сервера.

Как вариант, вводить не явную ерунду, а маскировать среди реальных юзерагентов.
Например, меняем
Code:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
на
Code:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/2011001 Firefox/24.0
И обязательно применять только как дополнительное средство защиты, комбинируя с традиционными. В нашем случае это можно оформить вот так
Code:
              location ^~ /каталог админки/ {
                        if ($http_user_agent !~* blablabla) {
                        return 404;
                        }  
                        satisfy any;
                        allow xx.xx.xx.xx/32;
                        deny  all;
                        auth_basic "Hello, Admin, please login";
                        auth_basic_user_file /путь до файла с паролени/92776.pas
                        proxy_pass http://127.0.0.1:8080;
                        proxy_redirect http://127.0.0.1:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
                        proxy_set_header X-Real-IP $remote_addr;
                }
@xorex, я конечно протупил с ответом сервера 444, но мне кажется, более правильней маскировать админку ошибкой 404.
 
 
xorex
Эксперт
vBSponsor
 
xorex's Avatar
Default
0

Quote:
Originally Posted by Smalesh View Post
Как вариант, вводить не явную ерунду, а маскировать среди реальных юзерагентов.
Например, меняем
именно так я и зделал

Quote:
Originally Posted by Smalesh View Post
И обязательно применять только как дополнительное средство защиты, комбинируя с традиционными. В нашем случае это можно оформить вот так
У меня и так доступ по ипи, узерагент как дополнительный вариант.

Quote:
Originally Posted by Smalesh View Post
более правильней маскировать админку ошибкой 404
согласен
 
 
Canny
Знаток
 
Canny's Avatar
Default
0

Спасибо, информативно
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 12:58 PM.


Powered by vBulletin® Version PreModed
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...