Дата: 2025-11-14
Проблема: Сайт блокирует подключения с серверных/датацентр IP адресов
Статус: ✅ Для пользователей работает | ❌ С серверов timeout
Где найти:
# SSH на сервер kondurov.beget.tech
cd ~/pirotehnika.spb.ru/public_html/
cat .htaccess | grep -E '(Deny|Allow|Require|RewriteCond.*REMOTE)'
Что искать:
# Блокировка по IP
Order Allow,Deny
Deny from 91.218.142.168
Deny from 45.144.177.147
# Блокировка диапазонов
Deny from 91.218.0.0/16
Deny from 45.144.0.0/16
# Блокировка по User-Agent
RewriteCond %{HTTP_USER_AGENT} curl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wget [NC]
RewriteRule .* - [F,L]
# Require (Apache 2.4+)
Require not ip 91.218.142.168
Решение:
1. Закомментировать блокирующие правила
2. Или добавить исключения для доверенных IP:
# Whitelist для мониторинга
Order Deny,Allow
Deny from all
Allow from 91.218.142.168
Allow from your.trusted.ip
Где проверить:
1. Beget панель: https://cp.beget.com/
2. Раздел "Сайты" → pirotehnika.spb.ru
3. Настройки → Безопасность / mod_security
Типичные блокировки:
- Блокировка запросов без User-Agent
- Блокировка по репутации IP (datacenter IPs)
- Rate limiting для автоматических запросов
Решение:
1. Отключить mod_security временно для теста
2. Добавить исключения для доверенных IP
3. Настроить whitelist в правилах WAF
Где проверить:
1. Админка OpenCart: https://pirotehnika.spb.ru/admin/
2. System → Settings → Edit (ваш магазин)
3. Server → Use SSL → проверить настройки
Также проверить:
3.1. Расширения безопасности
Extensions → Extensions → Module
└─ Искать: Security, Anti-Bot, Firewall, IP Block
3.2. Логи доступа
System → Maintenance → Error Logs
└─ Проверить блокировки по IP
3.3. Кэширование
Extensions → Extensions → Cache
└─ Проверить настройки кэша и CDN
Где проверить:
1. Beget панель → Защита сайтов
2. Проверить списки блокировок
Возможные причины:
- Автоматическая блокировка после DDoS атаки
- IP попал в blacklist из-за активности
- Geoblocking (если включен)
Решение:
1. Проверить логи блокировок
2. Добавить исключения
3. Отключить автоблокировку временно
Как проверить:
# Проверить DNS записи
dig pirotehnika.spb.ru
# Если IP принадлежит CloudFlare:
# 104.16.0.0/12, 172.64.0.0/13, etc.
# Значит используется CloudFlare
Если CloudFlare используется:
1. Зайти в панель CloudFlare
2. Security → WAF → Events
3. Firewall Rules → проверить блокировки
4. Settings → IP Access Rules
Решение:
- Добавить серверный IP в whitelist
- Отключить "Bot Fight Mode" временно
- Настроить "Challenge" вместо "Block"
# Обычный curl (блокируется)
curl -I https://pirotehnika.spb.ru
# С браузерным User-Agent
curl -I -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" https://pirotehnika.spb.ru
# Если второй работает - блокировка по User-Agent
# Через HTTP proxy
curl -I --proxy http://residential-proxy:port https://pirotehnika.spb.ru
# Если работает - блокировка по IP
# Проверка доступности портов
telnet 87.236.16.181 80
telnet 87.236.16.181 443
# Если telnet зависает - firewall блокирует на уровне сети
# Если подключается - блокировка на уровне веб-сервера
Для точной диагностики нужны:
1. OpenCart:
- Версия OpenCart
- Список установленных расширений (особенно Security)
- Скриншот System → Settings → Server
2. Beget панель:
- Скриншот настроек сайта (версия PHP, mod_security)
- Логи доступа за последние 24 часа
- Настройки firewall (если есть)
3. .htaccess:
# Прислать содержимое:
cat ~/pirotehnika.spb.ru/public_html/.htaccess
4. Apache/Nginx логи:
# Последние попытки подключения:
tail -100 ~/pirotehnika.spb.ru/logs/access.log | grep "91.218.142.168"
tail -100 ~/pirotehnika.spb.ru/logs/error.log | grep "91.218.142.168"
Использовать сервис:
- Bright Data
- Smartproxy
- IPRoyal
Пример:
# Через HTTP proxy
export HTTP_PROXY=http://user:pass@residential-proxy.com:8000
export HTTPS_PROXY=http://user:pass@residential-proxy.com:8000
curl -I https://pirotehnika.spb.ru
# Должно работать
Использовать:
- NordVPN (residential IPs)
- Private Internet Access
- ProtonVPN
# На сервере kondurov установить cloudflared
# Создать tunnel для доступа к сайту
cloudflared tunnel --url http://localhost:80
По опыту: 80% вероятность что это:
1. mod_security в Beget (40%)
2. .htaccess правила (30%)
3. Расширение OpenCart Security (10%)
Рекомендуемая последовательность:
1. Проверить mod_security → отключить временно
2. Переименовать .htaccess → проверить доступ
3. Проверить расширения OpenCart
Нужно от владельца сайта:
После получения этой информации смогу точно определить причину и дать решение.
Создано: 2025-11-14
Автор: Claude Code Workspace
Связанные файлы:
- SITE_AUDIT_REPORT.md
- CONNECTION.md
- NOTES.md