[comment]: # translation:outdated

[comment]: # ({f4bccb67-40cfdec2})
# 3 Веб сервер

[comment]: # ({/f4bccb67-40cfdec2})

[comment]: # ({2ff4365d-129e34f5})
#### Преглед

Овај одељак садржи најбоље праксе за подешавање веб сервера на безбедан начин.

[comment]: # ({/2ff4365d-129e34f5})

[comment]: # ({f8828338-bb3706f4})
#### Омогућавање Zabbix-а у основном директоријуму URL-а

На системима заснованим на RHEL-у, додајте виртуелни домаћин у Apache конфигурацију (`/etc/httpd/conf/httpd.conf`) и поставите трајно преусмеравање за корен документа на Zabbix SSL URL.
Имајте на уму да `example.com` треба заменити стварним именом сервера.

```ini
# Add lines:

<VirtualHost *:*>
    ServerName example.com
    Redirect permanent / https://example.com
</VirtualHost>
```

Поново покрените Аpache услугу да бисте применили промене:

```bash
systemctl restart httpd.service
```

[comment]: # ({/f8828338-bb3706f4})

[comment]: # ({3d62d250-c7ee0bb2})
#### Омогућавање HTTP Strict Transport Security (HSTS) на веб серверу

Да бисте заштитили Zabbix кориснички интерфејс од напада враћања протокола на старију верзију, препоручујемо да омогућите политику [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) на веб серверу.

Да бисте омогућили HSTS политику за ваш Zabbix фронтенд у Apache конфигурацији, пратите ове кораке:

1. Пронађите конфигурациону датотеку вашег виртуелног домаћина:

- `/etc/httpd/conf/httpd.conf` на RHEL-базираним системима
- `/etc/apache2/sites-available/000-default.conf` на Debian/Ubuntu

2. Додајте следећу директиву у конфигурациону датотеку вашег виртуелног домаћина:

```ini
<VirtualHost *:*>
Заглавље подешено на Strict-Transport-Security "max-age=31536000"
</VirtualHost>
```

3. Рестартујте Apache сервис да бисте применили промене:

```bash
# На RHEL-базираним системима:
systemctl restart httpd.service

# На Debian/Ubuntu
systemctl restart apache2.service
```

[comment]: # ({/3d62d250-c7ee0bb2})

[comment]: # ({09df8737-8057bf9f})
#### Примена Secure и SameSite сесијских колачића у Zabbix-у

Приликом конфигурисања Zabbix-а, неопходно је применити атрибуте Secure и SameSite за сесијске колачиће како би се побољшала безбедност и спречили напади фалсификовања захтева са више сајтова (CSRF). Међутим, примена ``SameSite=Strict`` може изазвати проблеме у одређеним сценаријима, као што су:

-  Виџети URL-ова контролне табле који приказују „корисник није пријављен“ када се уграђују iframe-ови истог домена.
-  Корисници који приступају контролној табли путем HTTP-а уместо HTTPS-а могу се суочити са проблемима са пријављивањем.
-  Немогућност дељења URL-ова са одређеним одељцима менија или хостовима Zabbix-а.

Да би се ублажили ови проблеми, корисници би требало да имају начин да прилагоде SameSite политику.

1\. Безбедни колачићи

Постављање заставице ``secure`` осигурава да се колачићи преносе само преко HTTPS-а, спречавајући изложеност преко нешифрованих веза.

Да бисте омогућили безбедне колачиће у Zabbix-у, додајте или измените следеће подешавање у конфигурацији веб сервера:

За Apache:

   Заглавље увек уређивати Set-Cookie ^(.*)$ $1;Secure

За Nginx:

   proxy_cookie_path / "/; Secure";

Уверите се да се вашем Zabbix корисничком интерфјесу приступа путем HTTPS-а; у супротном, колачићи са заставицом ``Secure`` неће бити послати.

2\. Конфигурисање атрибута SameSite

Подешавања веб сервера такође могу наметнути атрибут SameSite:

За Apache:

   <IfModule mod_headers.c>
   Заглавље onsuccess уређивати Set-Cookie (.*) "$1; SameSite=Strict"
   </IfModule>

За Nginx (верзија 1.19.3+):

   proxy_cookie_flags ~ samesite=Strict; # Замените ~ са 'zbx_session' ради прецизности

[comment]: # ({/09df8737-8057bf9f})

[comment]: # ({0291801e-55d3532e})
#### Омогућавање Политике безбедности садржаја (CSP) на веб серверу

Да бисте заштитили Zabbix фронтенд од Cross Site Scripting-а (XSS), убризгавања података и сличних напада, препоручујемо да омогућите Политику безбедности садржаја на веб серверу.
Да бисте то урадили, конфигуришите веб сервер да враћа [HTTP заглавље](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy).

::: noteimportant
Следећа конфигурација CSP заглавља је само за подразумевану инсталацију Zabbix фронтенда и за случајеве када сав садржај потиче са домена сајта (искључујући поддомене).
Другачија конфигурација CSP заглавља може бити потребна ако, на пример, конфигуришете виџет [*URL*](/manual/web_interface/frontend_sections/dashboards/widgets/url) да би приказивао садржај са поддомена сајта или спољних домена, прелазите са *OpenStreetMap* на други мап мотор или додајете спољни CSS или виџете.
Ако користите метод Duo Universal Prompt [вишефакторска аутентификација](/manual/web_interface/frontend_sections/users/authentication/mfa), обавезно додајте „duo.com“ CSP директиви у конфигурационој датотеци вашег виртуелног хоста.
:::

Да бисте омогућили CSP за ваш Zabbix фронтенд у Apache конфигурацији, пратите ове кораке:

1\. Пронађите конфигурациону датотеку вашег виртуелног хоста:

-  `/etc/httpd/conf/httpd.conf` на RHEL-базираним системима
-  `/etc/apache2/sites-available/000-default.conf` на Debian/Ubuntu

2\. Додајте следећу директиву у конфигурациону датотеку вашег виртуелног хоста:

```ini
<VirtualHost *:*>
   Header set Content-Security-Policy: "default-src 'self' *.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self' data: *.openstreetmap.org; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self';"
</VirtualHost>
```

3. Поново покрените Apache сервис да бисте применили промене:

```bash
# На RHEL-базираним системима:
systemctl restart httpd.service

# На Debian/Ubuntu
systemctl restart apache2.service
```

[comment]: # ({/0291801e-55d3532e})

[comment]: # ({cc2b15aa-cd09dcd1})
#### Онемогућавање излагања информација веб сервера

Да би се побољшала безбедност, препоручује се онемогућавање свих потписа веб сервера.

Подразумевано, веб сервер открива потпис софтвера:

![](../../../../assets/en/manual/installation/requirements/software_signature.png)

Потпис се може онемогућити додавањем следећих параметара у конфигурациону датотеку Apache-а:

```ini
ServerSignature Off
ServerTokens Prod
```

PHP потпис (X-Powered-By HTTP заглавље) може се онемогућити променом конфигурационе датотеке `php.ini` (подразумевано, потпис је онемогућен):

```ini
expose_php = Off
```

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

За додатну безбедност, можете користити алат *mod_security* са Apache-ом (пакет *libapache2-mod-security2*).
Овај алат омогућава уклањање потписа сервера уместо уклањања само верзије из потписа сервера.
Потпис сервера се може променити на било коју вредност подешавањем „SecServerSignature“ на било коју жељену вредност након инсталирања *mod_security*.

Погледајте документацију вашег веб сервера да бисте пронашли помоћ о томе како да уклоните/промените потписе софтвера.

[comment]: # ({/cc2b15aa-cd09dcd1})

[comment]: # ({2053690e-720052da})
#### Онемогућавање подразумеваних страница са грешкама веб сервера

Да бисте избегли откривање информација, препоручује се онемогућавање подразумеваних страница са грешкама.

Подразумевано, веб сервер користи уграђене странице са грешкама:

![](../../../../assets/en/manual/installation/requirements/error_page_text.png)

Ове подразумеване странице са грешкама треба заменити/уклонити.
На пример, директива „ErrorDocument“ може се користити за дефинисање прилагођене странице/текста са грешком за Apache веб сервер.

Молимо погледајте документацију вашег веб сервера да бисте пронашли помоћ о томе како да замените/уклоните подразумеване странице са грешкама.

[comment]: # ({/2053690e-720052da})

[comment]: # ({5dd327a4-ba1547c0})
#### Уклањање тест странице веб сервера

Да бисте избегли откривање информација, препоручује се уклањање тест странице веб сервера.

Подразумевано, корен веб сервера Apache садржи тест страницу `index.html`:

![](../../../../assets/en/manual/installation/requirements/test_page.png)

Погледајте документацију вашег веб сервера да бисте пронашли помоћ о томе како да уклоните подразумеване тест странице.

[comment]: # ({/5dd327a4-ba1547c0})

[comment]: # ({47163d34-7e4e4a45})
#### Подесите X-Frame-Options HTTP заглавље одговора

Подразумевано, Zabbix је конфигурисан са параметром *Use X-Frame-Options HTTP header* постављеним на `SAMEORIGIN`.
То значи да садржај може да се учита само у оквиру који има исто порекло као и сама страница.

Zabbix елементи корисничког интерфејса који повлаче садржај са спољних URL-ова (наиме, URL [виџет за контролну таблу](/manual/web_interface/frontend_sections/dashboards/widgets/url)) приказују преузети садржај у заштићеном окружењу са омогућеним свим ограничењима у заштићеном окружењу.

Ова подешавања побољшавају безбедност Zabbix корисничког интерфејса и пружају заштиту од XSS и кликџекинг напада.
Корисници *Супер администратора* могу [изменити](/manual/web_interface/frontend_sections/administration/general#security) параметре *Користи iframe sandboxing* и *Користити HTTP заглавље X-Frame-Options* по потреби.
Пажљиво одмерите ризике и користи пре него што промените подразумевана подешавања.
Не препоручује се потпуно искључивање HTTP заглавља iframe sandboxing или X-Frame-Options HTTP заглавља.

[comment]: # ({/47163d34-7e4e4a45})

[comment]: # ({ac11e1b7-3f76ae70})
#### Скривање датотеке са листом уобичајених лозинки

Да би се повећала сложеност напада грубом употребом лозинке, препоручује се ограничавање приступа датотеци `ui/data/top_passwords.txt`.
Ова датотека садржи листу најчешћих лозинки специфичних за контекст и спречава кориснике да постављају такве лозинке (ако је параметар *Избегавајте лозинке које је лако погодити* омогућен у [политици лозинки](/manual/web_interface/frontend_sections/users/authentication#internal_authentication)).

Да бисте ограничили приступ датотеци `top_passwords.txt`, измените конфигурацију веб сервера.

На Apache-у, приступ датотеци се може ограничити помоћу датотеке `.htaccess`:

```ini
<Files "top_passwords.txt">
    Order Allow,Deny
    Deny from all
</Files>
```

На NGINX-у, приступ фајловима може бити ограничен коришћењем директиве `location`:

```ini
location = /data/top_passwords.txt {
    deny all;
    return 404;
}
```

[comment]: # ({/ac11e1b7-3f76ae70})
