Extra Systems Ban Software (ESBANS)

Модуль es-ocis

Модуль 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 Extra Web Top