TemplinTech™ Admin Guard за CMS Joomla! [Документация]
TemplinTech™ Admin Guard за CMS Joomla! [Документация]

TemplinTech™ Admin Guard за CMS Joomla! [Документация]

TemplinTech Admin Guard е защитен системен плъгин за Joomla, който добавя допълнителен слой за достъп пред стандартния административен интерфейс на Joomla. Целта му е директният достъп до /administrator/ да бъде ограничен, преди да бъде показана стандартната Joomla административна login страница.

Плъгинът е предназначен за Joomla 6 и е разработен с модерната Joomla архитектура, без legacy Joomla API. Той е подходящ както за стандартен shared hosting, така и за VPS, dedicated server и среди с SSH/CLI достъп.

Версия: 1.0.5 Stable
Лиценз: GPLv2 or later
Разработчик: Dr. Yordan Balabanov, representing TemplinTech


1. Важно предупреждение преди активиране

ВНИМАНИЕ

TemplinTech Admin Guard е разширение за сигурност, което може умишлено да блокира стандартния достъп до административната зона на Joomla.

Активирате и използвате плъгина на собствен риск.

Преди да включите защитата трябва да сте запознати поне с основното управление на Joomla и да знаете как да получите достъп до файловете на своя уебсайт чрез File Manager, FTP/SFTP, SSH или друг предоставен от хостинг доставчика метод.

Плъгинът може да се разглежда като инструмент за по-напреднали потребители. Неправилна конфигурация на HTTPS, IP ограничения, reverse proxy настройки или загуба на Gate URL / Access Key може временно да блокира достъпа ви до Joomla Administrator.

Не активирайте Protection, преди да сте проверили recovery механизма, описан в тази документация.

Разработчикът не може да гарантира, че даден уебсайт не може да бъде компрометиран. TemplinTech Admin Guard е допълнителен защитен слой и не замества Joomla updates, сигурния hosting, силните пароли, MFA/passkeys, правилната конфигурация на сървъра, firewall или WAF.


2. Какво прави TemplinTech Admin Guard

При стандартна Joomla инсталация административният интерфейс обичайно е достъпен чрез:

https://example.com/administrator/

Това означава, че всеки посетител, бот или автоматизиран scanner може да достигне стандартната Joomla Administrator login страница.

При активиран TemplinTech Admin Guard директната заявка към:

/administrator/

може например да върне:

404 Not Found

Вместо стандартната Joomla login страница потребителят трябва първо да използва генерирания Gate URL, например:

https://example.com/administrator/?templintech-admin-guard=g-...

След това се изисква отделен Access Key. Едва след успешно преминаване през този слой се разрешава достъп до стандартната Joomla authentication система.

Логиката е:

Internet
   ↓
/administrator/
   ↓
TemplinTech Admin Guard
   ↓
Gate URL
   ↓
Access Key
   ↓
Joomla Administrator Login
   ↓
Joomla username + password
   ↓
MFA / Passkey, ако е активиран
   ↓
Administrator

TemplinTech Admin Guard не заменя Joomla authentication. Той добавя отделен pre-authentication слой пред нея.


3. Системни изисквания

За TemplinTech Admin Guard 1.0.5 се препоръчва:

  • Joomla 6.1.3 или по-нова поддържана версия;
  • PHP 8.3 или по-нова поддържана версия;
  • HTTPS с валиден TLS сертификат;
  • достъп до Joomla Plugin Manager;
  • достъп до File Manager, FTP/SFTP или SSH за emergency recovery;
  • актуална Joomla инсталация без известни непоправени security vulnerabilities.

За production сайт е силно препоръчително Joomla Administrator да бъде достъпен само чрез HTTPS.


4. Инсталация

4.1. Инсталиране на package файла

В Joomla Administrator отворете:

System → Install → Extensions

Качете package файла на TemplinTech Admin Guard.

Package-ът съдържа два Joomla plugins:

  • System - TemplinTech Admin Guard – основният защитен слой;
  • Console - TemplinTech Admin Guard – CLI recovery и административни команди за среди с SSH/CLI достъп.

Инсталацията сама по себе си не трябва автоматично да активира защитата на /administrator/.

4.2. Проверка след инсталацията

Отворете:

System → Manage → Extensions

и проверете дали виждате TemplinTech Admin Guard и двата child plugins.

След това отворете:

System → Plugins

и намерете:

System - TemplinTech Admin Guard

Основният System plugin може да бъде включен, докато параметърът Protection все още остава No.

Това позволява конфигурация и тестове преди реалното блокиране на административната зона.


5. Изберете правилния начин за активиране според hosting средата

Recovery подготовката е различна в зависимост от hosting средата. Не пропускайте този раздел.

5.1. Shared hosting – препоръчителна процедура

Този вариант е подходящ за стандартни hosting пакети без SSH, например среди с:

  • hosting File Manager;
  • Plesk;
  • cPanel;
  • DirectAdmin;
  • FTP;
  • SFTP.

Преди активиране на Protection първо открийте Joomla root директорията.

Това е директорията, в която обикновено се намират:

administrator/
components/
modules/
plugins/
templates/
configuration.php
index.php

След това намерете:

/plugins/system/templintechadminguard/

Уверете се, че при необходимост можете да създадете файл в тази директория.

Emergency recovery файлът е:

templintech-admin-guard.disable

Пълният път е:

/plugins/system/templintechadminguard/templintech-admin-guard.disable

Важно: не е необходимо файлът да съществува постоянно. Трябва само предварително да сте сигурни, че можете да го създадете чрез File Manager или FTP, ако загубите достъп до Joomla Administrator.

5.2. VPS / Dedicated Server / SSH hosting

При сървър с SSH може да използвате както filesystem recovery механизма, така и Joomla Console.

От Joomla root могат да се използват например:

php cli/joomla.php templintech-admin-guard:status

php cli/joomla.php templintech-admin-guard:disable

php cli/joomla.php templintech-admin-guard:enable

php cli/joomla.php templintech-admin-guard:rotate

За тези команди трябва да е активиран:

Console - TemplinTech Admin Guard

5.3. Reverse proxy / CDN / Cloudflare

Ако сайтът е зад reverse proxy, load balancer, Cloudflare или подобна инфраструктура, не активирайте веднага IP ограниченията.

Първо трябва да знаете кой IP адрес достига до PHP като непосредствен:

REMOTE_ADDR

Forwarded headers не трябва да се приемат автоматично за достоверни, защото могат да бъдат spoof-нати, ако не идват от доверен proxy.

Използвайте trusted proxy настройки само ако знаете точните proxy CIDR диапазони и разбирате как работи forwarding chain-ът.


6. HTTPS конфигурация

Преди активиране на Admin Guard проверете Joomla HTTPS настройката.

Отворете:

System → Global Configuration → Server

Намерете:

Force HTTPS

За Administrator protection се препоръчва поне:

Administrator Only

Ако целият сайт работи постоянно през HTTPS, може да използвате:

Entire Site

Не е препоръчително Access Key или authenticated Joomla session да преминават през незащитена HTTP връзка.


7. Генериране на Gate ID и Access Key

Отворете:

System → Plugins → System - TemplinTech Admin Guard

Докато:

Protection = No

генерирайте Gate ID и Access Key чрез съответния бутон.

Ще получите Gate URL, подобен на:

https://example.com/administrator/?templintech-admin-guard=g-...

и Access Key, например във формат:

TTAG-...

7.1. Какво е Gate URL

Gate URL е специалният вход към Admin Guard.

Query параметърът:

templintech-admin-guard

е namespaced специално за разширението, за да се намали вероятността от конфликт с Joomla core, други extensions или custom application code.

Gate ID трябва да се разглежда като locator, а не като единствена парола.

Дори ако Gate URL стане известен, Access Key продължава да бъде отделният secret, необходим за преминаване през Guard слоя.

7.2. Access Key

Access Key се генерира чрез криптографски сигурен random generator.

Запазете го веднага в надежден password manager.

Plaintext Access Key не се съхранява с цел последващо показване.

Ако го изгубите, той не трябва да бъде „прочетен обратно“. Вместо това се генерира нов чрез credential rotation.


8. Тест преди активиране на Protection

Не включвайте Protection веднага след генерирането на credentials.

Първо отворете нов Incognito / Private browser прозорец.

Поставете Gate URL.

Трябва да видите страницата на TemplinTech Admin Guard за Access Key.

Въведете правилния Access Key.

След успешно отключване трябва да достигнете стандартния Joomla Administrator login.

Това доказва, че:

Gate URL
   ↓
Access Key
   ↓
Guard authorization
   ↓
Joomla Administrator login

Докато Protection = No, директният /administrator/ все още може да остане достъпен. Това е нормално по време на setup.


За първоначален production setup, особено на shared hosting, се препоръчва:

Настройка Препоръчителна стойност
Protection No до приключване на тестовете
Unauthorized request 404 Not Found
Require HTTPS Yes
Local rate limiting Yes
Restrict by client IP No при първоначалния setup
Trust reverse proxy headers No, освен ако инфраструктурата е ясно известна

10. Поведение при неразрешена заявка

10.1. 404 Not Found – препоръчителен stealth режим

При този режим директен достъп до:

/administrator/

връща реален HTTP:

404 Not Found

Отговорът е умишлено минимален и не показва Joomla Administrator интерфейс, TemplinTech branding или информация за Admin Guard.

Това е препоръчителният режим за повечето сайтове.

10.2. 403 Forbidden

При този режим заявката връща:

403 Forbidden

Това ясно указва, че ресурсът съществува, но достъпът не е разрешен.

Затова за stealth конфигурация 404 обикновено е по-подходящ.

10.3. Redirect to homepage

Ако е избран redirect режим, неразрешената заявка може да бъде пренасочена към началната страница на сайта.

Този вариант е по-удобен за някои потребители, но е по-малко „stealth“, защото автоматичен scanner може лесно да установи, че има redirect поведение.


11. Активиране на Protection

След като:

  • сте проверили recovery достъпа;
  • HTTPS е правилно конфигуриран;
  • Gate URL е запазен;
  • Access Key е запазен;
  • Gate URL е тестван успешно в Incognito;

може да промените:

Protection = No

на:

Protection = Yes

и да запазите настройките.

При активиране плъгинът извършва допълнителни проверки, за да намали риска от self-lockout.

Не затваряйте текущата работеща Joomla Administrator сесия, докато не сте проверили защитата от втори Incognito прозорец.


12. Задължителен тест след активиране

12.1. Тест на директния Administrator URL

От нов Incognito прозорец отворете:

https://example.com/administrator/

При 404 mode трябва да получите:

404 Not Found

Стандартната Joomla login страница не трябва да бъде показана.

12.2. Тест на Gate URL

След това отворете:

https://example.com/administrator/?templintech-admin-guard=g-...

Трябва да получите Admin Guard Access Key страницата.

12.3. Тест с грешен Access Key

Може еднократно да проверите, че грешен Access Key се отхвърля.

Не правете множество последователни грешни опити само за тест, защото local rate limiting може умишлено да блокира временно заявките.

12.4. Тест с правилен Access Key

След правилен Access Key трябва да достигнете Joomla login страницата.

След това влезте с нормалния Joomla administrator account.

Ако използвате MFA или passkey, те продължават да функционират като отделен Joomla authentication layer.


13. Local Rate Limiting

TemplinTech Admin Guard включва локален механизъм за ограничаване на многократни неуспешни Access Key опити.

Този механизъм е предназначен да намали автоматизираното злоупотребяване с Guard endpoint-а.

Той работи локално и не изисква:

  • Redis;
  • Memcached;
  • външна API услуга;
  • cloud security услуга;
  • допълнителна database table.

Това го прави подходящ и за shared hosting.

Rate limiting не трябва да се разглежда като заместител на server-level rate limiting, WAF или firewall при високо натоварени или критични среди.


14. IP ограничения

IP allowlist може допълнително да ограничи Administrator достъпа само до определени адреси или мрежи.

Може да се използват IPv4, IPv6 и CIDR мрежи според поддържаните настройки.

Пример:

203.0.113.25

или CIDR:

203.0.113.0/24

Не препоръчваме IP restriction за потребители с динамичен домашен IP адрес, освен ако разбират последствията.

При промяна на вашия публичен IP може сами да блокирате достъпа си.

Поради тази причина първоначалната препоръка е:

Restrict by client IP = No


15. Trusted Proxy настройки

Не се доверявайте автоматично на HTTP headers като:

X-Forwarded-For

или:

X-Forwarded-Proto

Тези headers могат да бъдат подменени от клиент, ако заявката не идва през действително доверен proxy.

Trusted proxy режим трябва да се използва само когато:

  • сайтът действително работи зад reverse proxy / CDN / load balancer;
  • знаете IP/CIDR диапазоните на доверените proxy сървъри;
  • разбирате forwarding chain поведението.

За стандартен shared hosting без ясно дефиниран reverse proxy оставете тази настройка изключена.


16. Смяна на Gate ID и Access Key

Ако Gate URL или Access Key може да са били разкрити, използвайте credential rotation.

При rotation се генерират нови credentials.

Старият Gate URL и старият Access Key престават да бъдат валидни според текущата authorization generation.

След rotation:

  1. запишете новия Gate URL;
  2. запишете новия Access Key;
  3. актуализирайте password manager-а;
  4. тествайте новия Gate URL в Incognito;
  5. премахнете стария bookmark, ако сте използвали такъв.

17. Emergency Recovery на shared hosting

Това е един от най-важните раздели в документацията.

Ако не можете да достигнете Administrator поради грешна конфигурация, загубен Gate URL, IP restriction или друг проблем, не е необходимо да имате SSH.

17.1. Recovery чрез File Manager / FTP

Отворете Joomla директорията:

/plugins/system/templintechadminguard/

Създайте файл с точно име:

templintech-admin-guard.disable

Файлът може да бъде празен.

При следващата заявка bootstrap механизмът на Admin Guard проверява за този marker файл преди да активира основната Guard логика.

След това опитайте отново:

https://example.com/administrator/

След като поправите конфигурацията:

  1. оставете Protection изключен;
  2. проверете Gate URL и Access Key;
  3. изтрийте recovery marker файла;
  4. направете нов тест;
  5. едва тогава включете Protection отново.

Не оставяйте templintech-admin-guard.disable постоянно в директорията. Докато файлът съществува, защитният слой е bypass-нат.


18. Emergency Recovery чрез hosting database manager

Filesystem marker е препоръчителният recovery метод за shared hosting.

Ако обаче самият plugin bootstrap файл е повреден и PHP не може да достигне до marker проверката, може да се наложи директно деактивиране на System plugin-а чрез phpMyAdmin или друг database manager.

В Joomla таблицата:

#__extensions

трябва да бъде намерен записът със:

type = plugin
folder = system
element = templintechadminguard

и неговото поле:

enabled

да бъде променено на:

0

Не изтривайте extension record-а.

Тази процедура е за emergency recovery и е предназначена за потребители, които разбират работата с Joomla database.


19. Recovery и управление чрез Joomla CLI

При VPS, dedicated server или hosting с SSH можете да използвате Joomla Console.

19.1. Статус

php cli/joomla.php templintech-admin-guard:status

19.2. Изключване

php cli/joomla.php templintech-admin-guard:disable

19.3. Активиране

php cli/joomla.php templintech-admin-guard:enable

19.4. Rotation

php cli/joomla.php templintech-admin-guard:rotate

За CLI функционалността трябва да бъде наличен и активен Console plugin-ът.


20. Security модел

TemplinTech Admin Guard е проектиран като допълнителен pre-authentication слой.

Основните принципи включват:

  • криптографски random Gate ID;
  • криптографски random Access Key;
  • Access Key не се пази като възстановим plaintext secret;
  • constant-time verification;
  • Joomla CSRF protection;
  • session regeneration след успешно Guard authentication;
  • HTTPS enforcement;
  • локално rate limiting;
  • security response headers;
  • без remote JavaScript;
  • без CDN dependency;
  • без telemetry;
  • без analytics;
  • без външна authentication услуга;
  • без custom database table за основната Guard логика.

21. Security response headers

При standalone Guard / denial responses плъгинът може да използва защитни HTTP headers като:

Cache-Control: no-store
Pragma: no-cache
Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Robots-Tag: noindex, nofollow, noarchive

Целта е Guard страниците и denial responses да не се кешират, индексират или вграждат ненужно.


22. Поверителност

TemplinTech Admin Guard е проектиран да работи локално в Joomla средата.

По подразбиране не е необходимо плъгинът да използва:

  • telemetry;
  • advertising trackers;
  • analytics;
  • external authentication API;
  • remote JavaScript libraries;
  • cloud-based credential verification.

При използване на IP-based security функции администраторът трябва самостоятелно да прецени приложимите изисквания за privacy и data protection за конкретния сайт и юрисдикция.


23. Какво TemplinTech Admin Guard не може да защити самостоятелно

TemplinTech Admin Guard не е web application firewall и не замества server security.

Той не може самостоятелно да защити сайт, ако например:

  • hosting account вече е компрометиран;
  • нападател има FTP/SFTP/SSH/control-panel достъп;
  • друг extension съдържа remote code execution vulnerability;
  • Joomla core или PHP са остарели и уязвими;
  • валидна administrator session cookie е открадната извън защитния модел;
  • самият server или reverse proxy е компрометиран.

23.1. Важно ограничение относно /administrator/

Joomla plugin работи след стартирането на PHP/Joomla application.

Следователно Admin Guard може да защити Joomla Administrator application и login flow, но не може самостоятелно да блокира всеки физически статичен файл под:

/administrator/...

ако този файл се обслужва директно от Apache, Nginx или друг web server без изпълнение на Joomla.

За пълно directory-level ограничаване са необходими допълнителни server-level механизми като:

  • Apache configuration;
  • Nginx configuration;
  • reverse proxy rules;
  • WAF;
  • hosting firewall.

24. Използвайте Joomla MFA / Passkeys

TemplinTech Admin Guard не е причина да изключвате Joomla Multi-Factor Authentication.

Препоръчителният production модел е:

TemplinTech Admin Guard
        +
Joomla username/password
        +
MFA / Passkey
        +
Regular Joomla updates
        +
Secure hosting configuration

Това създава няколко независими защитни слоя.


25. Актуализации

TemplinTech Admin Guard използва Joomla Update System.

Препоръчително е security updates да бъдат инсталирани своевременно.

Преди update на production сайт е добра практика да имате:

  • актуален backup;
  • достъп до hosting File Manager/FTP;
  • запазен recovery процес;
  • възможност за временно деактивиране на System plugin-а.

След значима security update версия направете отново кратък тест на:

  1. директния /administrator/;
  2. Gate URL;
  3. Access Key;
  4. Joomla login;
  5. recovery marker файла.

За типичен Joomla сайт на shared hosting препоръчителният базов setup е:

Protection: Yes
Unauthorized request: 404 Not Found
Require HTTPS: Yes
Local rate limiting: Yes
IP restriction: No
Trusted proxy headers: No

Joomla Force HTTPS:
Administrator Only или Entire Site

Joomla MFA / Passkey:
Enabled

IP и proxy ограничения трябва да се добавят само когато са действително необходими и правилно разбрани.


27. Финален checklist след конфигурация

След инсталиране и активиране проверете:

  1. File Manager/FTP recovery достъпът работи.
  2. Gate URL е записан на сигурно място.
  3. Access Key е записан в password manager.
  4. HTTPS е активен.
  5. Protection е включен.
  6. Директният /administrator/ връща избрания denial response.
  7. Gate URL отваря Access Key страницата.
  8. Грешен Access Key не предоставя достъп.
  9. Правилен Access Key предоставя достъп до Joomla authentication.
  10. Joomla MFA/passkey работи.
  11. Logout работи нормално.
  12. Recovery marker файлът може временно да bypass-не Guard-а.
  13. След изтриване на recovery marker файла Guard protection се възстановява.

28. Troubleshooting

Не мога да отворя /administrator/

Ако Protection е активен, това вероятно е очаквано поведение. Използвайте Gate URL.

Изгубих Gate URL

Използвайте recovery механизма, за да възстановите Administrator достъпа, след което генерирайте нов Gate ID и Access Key.

Изгубих Access Key

Access Key не трябва да бъде възстановяван като plaintext. Използвайте credential rotation.

Активирах IP restriction и вече не мога да вляза

На shared hosting създайте:

/plugins/system/templintechadminguard/templintech-admin-guard.disable

Поправете IP конфигурацията и след това изтрийте recovery файла.

Сайтът е зад Cloudflare или reverse proxy

Не включвайте forwarded-header trust, преди да сте конфигурирали правилно trusted proxy диапазоните.

Нямам SSH

SSH не е задължителен. За shared hosting основният recovery механизъм е File Manager / FTP marker файлът.

Плъгинът е повреден и marker файлът не помага

Деактивирайте System plugin-а през hosting database manager / phpMyAdmin чрез Joomla #__extensions таблицата.


29. Деактивиране и деинсталиране

Ако повече не желаете да използвате защитата, първо задайте:

Protection = No

Проверете, че стандартният Administrator достъп работи.

След това може да деактивирате:

System - TemplinTech Admin Guard

и при необходимост:

Console - TemplinTech Admin Guard

Едва след това деинсталирайте package-а чрез Joomla Extension Manager.

Не е препоръчително директно да изтривате plugin файловете през FTP като нормален uninstall метод.


30. Добри практики за сигурност

За по-сигурна Joomla Administrator среда:

  • поддържайте Joomla актуална;
  • поддържайте PHP в поддържана версия;
  • използвайте HTTPS за целия сайт или поне Administrator;
  • използвайте уникални и силни Joomla пароли;
  • активирайте MFA или passkeys;
  • не споделяйте Gate URL публично;
  • не изпращайте Access Key по незащитени канали;
  • не използвайте един Access Key за други услуги;
  • периодично проверявайте активните Joomla extensions;
  • премахвайте неизползвани extensions;
  • правете редовни backups;
  • проверявайте server и Joomla logs при подозрителна активност;
  • използвайте server/WAF защита при по-висок security risk.

31. Накратко

TemplinTech Admin Guard добавя отделен защитен слой пред Joomla Administrator authentication.

Правилният начин за използване е:

1. Инсталирайте package-а.
2. Проверете recovery достъпа.
3. Активирайте System plugin-а.
4. Оставете Protection = No.
5. Генерирайте Gate ID + Access Key.
6. Запазете credentials.
7. Тествайте Gate URL в Incognito.
8. Проверете HTTPS.
9. Активирайте Protection.
10. Тествайте директния /administrator/.
11. Тествайте Gate URL.
12. Тествайте emergency recovery.
13. Изтрийте recovery marker файла.
14. Използвайте Joomla MFA / Passkey.

Най-важното правило: никога не активирайте security механизъм, който може да блокира административния достъп, преди да сте проверили как ще възстановите достъпа при проблем.


32. Лиценз и разработчик

TemplinTech Admin Guard

Developer:
Dr. Yordan Balabanov, representing TemplinTech

License:
GNU General Public License version 2 or later (GPLv2 or later)

TemplinTech Admin Guard използва Joomla Update System за разпространение на актуализации.

YOU MAY ALSO LIKE

TemplinTech™ Cache Cleaner за CMS Joomla!
TemplinTech™ Cache Cleaner за CMS Joomla!

ЗА КОНТАКТ

Лице за контакт: Д-р Йордан Балабанов
Телефон: +49 176 376 708 10
Имейл: info@templintech.com
Работно време: Пон.–Пет.: 10:00–17:00 ч. (EET/EEST)

© 2025–2026 TemplinTech™. Управлявано от д-р Йордан Балабанов. Всички права запазени.


Отворен съм за стратегически партньорства и бизнес предложения с добавена стойност. Ако проектът Ви изисква професионална експертиза или търсите сътрудничество, свържете се с мен за обсъждане на конкретни параметри.

С уважение,
Йордан Балабанов ∴