Модуль es-ocis был разработан компанией Extra Systems для защиты системы облачного хранения информации ownCloud (ownCloud Infinite Scale, сокращенно — oCIS) от хакерской активности в рамках системы fail2ban. Суть его деятельности заключается в выявлении специфической активности в файле /var/log/nginx/ocis_access.log, который отдельно назначается в сервере nginx при создании соответствующего хоста:
server {
server_name ***; # Ваш домен
# Оставляем оптимизацию для больших файлов сразу
client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
proxy_cache off;
access_log /var/log/nginx/ocis_access.log;
error_log /var/log/nginx/ocis_error.log;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_connect_timeout 75s;
location /ocs/v2.php/apps/notifications/api/v1/notifications/sse {
proxy_pass http://192.168.0.8:9200;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location / {
proxy_pass http://192.168.0.8:9200; # Внутренний IP oCIS
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = ***) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name ***;
return 404; # managed by Certbot
}
Легко видеть, что в нашем случае система ownCloud работает не на самом шлюзе (где установлен nginx), а на отдельном внутреннем хосте локальной сети. При такой конфигурации сервер nginx работает в режиме чистого прокси-сервера, а вся реальная обработка запросов осуществляется на другом хосте, где установлен ownCloud.
Подключение es-ocis к fail2ban производится таким способом:
[es-ocis] enabled = true filter = es-ocis logpath = /var/log/nginx/ocis_access.log action = iptables-allports[name=es-ocis, blocktype=DROP, protocol=all]
Обратите внимание на тот факт, что данный фильтр блокирует для изобличенного хакера все протоколы на всех портах, причем делает это по методу DROP - что превращает после этого ваш хост в абсолютно "черную дыру" для данного конкретного злоумышленника. Ни на один свой последующий IP-пакет он не получит вообще никакого ответа. Таким образом нами обеспечивается значительная экономия ресурсов вашего сервера.
Код нашего фильтра es-ocis имеет такой вид:
[Definition]
failregex = ^<HOST> - - \[.*\] "GET /\.(git|env)
^<HOST> - - \[.*\] "GET /[^"]*wp-includes
^<HOST> - - \[.*\] "POST /signin/v1/identifier/_/logon HTTP/\d\.\d" 204 0
ignoreregex =
В условиях практической эксплуатации на наших Linux-серверах данный фильтр показал высокую эффективность в деле подавления хакерской активности при организации систем облачного хранения на платформе ownCloud.
| © Extra Systems, 2026 |
|