Інсталяція проксі-сервера Apache HTTP – Linux

Агенти ESET Management Agent можуть підключатися до ESET PROTECT Server через Apache HTTP Proxy. Дізнайтеся більше про те, як проксі-сервер працює для агентів ESET Management.

Зазвичай Apache HTTP Proxy розповсюджується як пакет apache2 або httpd.

Виберіть спосіб інсталяції проксі-сервера Apache HTTP відповідно до дистрибутива Linux на сервері. Якщо ви також хочете використовувати Apache для кешування результатів від ESET LiveGuard Advanced, див. відповідну документацію.

Інсталяція проксі-сервера Apache HTTP на Linux (загальне розповсюдження)

1.Інсталюйте проксі-сервера Apache HTTP (версії 2.4.10 або вище).

2.Перевірте, чи завантажено наступні модулі:

access_compat, auth_basic, authn_core, authn_file, authz_core, authz_groupfile,
authz_host, proxy, proxy_http, proxy_connect, cache, cache_disk

3.Додайте конфігурацію кешування:

CacheEnable disk http://
CacheDirLevels 4
CacheDirLength 2
CacheDefaultExpire 3600
CacheMaxFileSize 500000000
CacheMaxExpire 604800
CacheQuickHandler Off
CacheRoot /var/cache/apache2/mod_cache_disk

4.Якщо каталог /var/cache/apache2/mod_cache_disk не існує, створіть його та надайте йому права Apache (r,w,x).

5.Додайте конфігурацію проксі-сервера:

AllowCONNECT 443 563 2222 8883 53535

 

ProxyRequests On
ProxyVia On

 

CacheLock on

CacheLockMaxAge 10

ProxyTimeOut 900

 

SetEnv proxy-initial-not-pooled 1

 

<VirtualHost *:3128>

ProxyRequests On

</VirtualHost>

 

<VirtualHost *:3128>

ServerName r.edtd.eset.com

 

<If "%{REQUEST_METHOD} == 'CONNECT'">

Require all denied

</If>

 

ProxyRequests Off

CacheEnable disk /

SSLProxyEngine On

 

RequestHeader set Front-End-Https "On"

ProxyPass / https://r.edtd.eset.com/ timeout=300 keepalive=On ttl=100 max=100 smax=10

ProxyPassReverse / http://r.edtd.eset.com/ keepalive=On

</VirtualHost>

 
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

6.За замовчуванням для обміну даними з агентом ESET Management використовується порт 2222. Якщо ви змінили порт під час інсталяції, вказуйте новий номер порту. Змініть значення «2222» в рядку AllowCONNECT 443 563 2222 8883 53535 на номер вашого порту.

7.Увімкніть доданий проксі-сервер кешування та конфігурацію (якщо конфігурація перебуває в основному файлі конфігурації Apache, цей крок можна пропустити).

8.Якщо потрібно, укажіть інший порт прослуховування (за замовчуванням це порт 3128).

9.Необов’язкова базова автентифікація.

oДодайте конфігурацію автентифікації в директиву проксі-сервера:

AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/password.file
AuthGroupFile /etc/apache2/group.file
Require group usergroup

oСтворіть файл пароля за допомогою /etc/httpd/.htpasswd -c.

oВручну створіть файл group.file із usergroup:username.

10. Перезавантажте проксі-сервер Apache HTTP.

 

Інсталяція проксі-сервера Apache HTTP на сервер Ubuntu та інших дистрибутивах Linux на базі Debian

1.Інсталюйте останню версію проксі-сервера Apache HTTP з репозиторія APT:

sudo apt-get install apache2

2.Щоб завантажити необхідні модулі Apache, виконайте цю команду:

sudo a2enmod access_compat auth_basic authn_core authn_file authz_core\

authz_groupfile authz_host proxy proxy_http proxy_connect cache cache_disk

3.Відредагуйте файл конфігурації кешування Apache:

sudo vim /etc/apache2/conf-available/cache_disk.conf

і скопіюйте та вставте таку конфігурацію:

CacheEnable disk http://
CacheDirLevels 4
CacheDirLength 2
CacheDefaultExpire 3600
CacheMaxFileSize 500000000
CacheMaxExpire 604800
CacheQuickHandler Off
CacheRoot /var/cache/apache2/mod_cache_disk

4. Цей крок не є обов’язковим, але якщо каталог кешування відсутній, виконайте такі команди:

sudo mkdir /var/cache/apache2/mod_cache_disk
sudo chown www-data /var/cache/apache2/mod_cache_disk
sudo chgrp www-data /var/cache/apache2/mod_cache_disk

5.Відредагуйте файл конфігурації проксі-сервера Apache:

sudo vim /etc/apache2/conf-available/proxy.conf

і скопіюйте та вставте таку конфігурацію:

AllowCONNECT 443 563 2222 8883 53535

 

ProxyRequests On
ProxyVia On

 

CacheLock on

CacheLockMaxAge 10

ProxyTimeOut 900

 

SetEnv proxy-initial-not-pooled 1

 

<VirtualHost *:3128>

ProxyRequests On

</VirtualHost>

 

<VirtualHost *:3128>

        ServerName r.edtd.eset.com

 

<If "%{REQUEST_METHOD} == 'CONNECT'">

Require all denied

</If>

 

ProxyRequests Off

CacheEnable disk /

SSLProxyEngine On

 

RequestHeader set Front-End-Https "On"

ProxyPass / https://r.edtd.eset.com/ timeout=300 keepalive=On ttl=100 max=100 smax=10

ProxyPassReverse / http://r.edtd.eset.com/ keepalive=On

</VirtualHost>

 
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

6.За замовчуванням для обміну даними з агентом ESET Management використовується порт 2222. Якщо ви змінили порт під час інсталяції, вказуйте новий номер порту. Змініть значення «2222» в рядку AllowCONNECT 443 563 2222 8883 53535 на номер вашого порту.

7.Увімкніть файли конфігурації, які було відредаговано на попередніх етапах:

sudo a2enconf cache_disk.conf proxy.conf

8.Установіть порт 3128 як порт прослуховування проксі-сервера Apache HTTP. Відредагуйте файл /etc/apache2/ports.conf і замініть Listen 80 на Listen 3128.

9.Необов’язкова базова автентифікація.

sudo vim /etc/apache2/mods-enabled/proxy.conf

oСкопіюйте та вставте конфігурацію автентифікації перед </Proxy>:

AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/password.file
AuthGroupFile /etc/apache2/group.file
Require group usergroup

oІнсталюйте apache2-utils і створіть новий файл пароля (наприклад, ім’я користувача user, група usergroup):

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/apache2/password.file user

oСтворіть файл group:

sudo vim /etc/apache2/group.file

і скопіюйте та вставте в нього такий рядок:

usergroup:user

10. Перезавантажте проксі-сервер Apache HTTP за допомогою цієї команди:

sudo systemctl restart apache2

 

Перенаправлення лише для підключення ESETЩоб дозволити перенаправлення лише для підключення ESET, видаліть такі параметри:

<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

і додайте наступне:

<Proxy *>

Deny from all

</Proxy>

 

#*.eset.com:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[c,C][o,O][m,M](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#*.eset.eu:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[e,E][u,U](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#*.eset.systems:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[s,S][y,Y][s,S][t,T][e,E][m,M][s,S](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#Antispam module (ESET Mail Security only):

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(ds1-uk-rules-1.mailshell.net|ds1-uk-rules-2.mailshell.net|ds1-uk-rules-3.mailshell.net|fh-uk11.mailshell.net)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#Services (activation)

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(edf-pcs.cloudapp.net|edf-pcs2.cloudapp.net|edfpcs.trafficmanager.net)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#ESET servers accessed directly via IP address:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(91.228.165.|91.228.166.|91.228.167.|38.90.226.)([0-9]+)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#AV Cloud over port 53535

<ProxyMatch ^.*e5.sk.*$>

Allow from all

</ProxyMatch>

Перенаправлення для всіх підключень

Щоб дозволити перенаправлення для всіх підключень, додайте такі параметри:

<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

і видаліть наступні:

<Proxy *>

Deny from all

</Proxy>

 

#*.eset.com:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[c,C][o,O][m,M](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#*.eset.eu:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[e,E][u,U](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#*.eset.systems:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?([a-zA-Z0-9-]{0,63}\.)?[a-zA-Z0-9-]{0,63}\.[e,E][s,S][e,E][t,T]\.[s,S][y,Y][s,S][t,T][e,E][m,M][s,S](:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#Antispam module (ESET Mail Security only):

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(ds1-uk-rules-1.mailshell.net|ds1-uk-rules-2.mailshell.net|ds1-uk-rules-3.mailshell.net|fh-uk11.mailshell.net)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#Services (activation)

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(edf-pcs.cloudapp.net|edf-pcs2.cloudapp.net|edfpcs.trafficmanager.net)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#ESET servers accessed directly via IP address:

<ProxyMatch ^([h,H][t,T][t,T][p,P][s,S]?://)?([^@/]*@)?(91.228.165.|91.228.166.|91.228.167.|38.90.226.)([0-9]+)(:[0-9]+)?(/.*)?$>

Allow from all

</ProxyMatch>

 

#AV Cloud over port 53535

<ProxyMatch ^.*e5.sk.*$>

Allow from all

</ProxyMatch>

Ланцюжок проксі-серверів (увесь трафік)

ESET PROTECT не може використовувати такі ланцюжки, якщо проксі-сервери вимагають автентифікації. Ви можете використовувати власний прозорий проксі-сервер, однак він може потребувати додаткового налаштування. Додайте в конфігурацію проксі-сервера такий текст (пароль працює лише на дочірньому проксі-сервері):

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

Якщо ланцюжок проксі-серверів використовується на віртуальному пристрої ESET PROTECT, політику SELinux потрібно змінити. Відкрите термінал на віртуальному пристрої ESET PROTECT і запустіть вказану нижче команду:

/usr/sbin/setsebool -P httpd_can_network_connect 1

Конфігурація проксі-сервера HTTP для великої кількості клієнтів

Якщо ви використовуєте 64-розрядний проксі-сервер Apache HTTP, то можете збільшити ліміт потоків для Apache HTTP Proxy. Змініть файл конфігурації httpd.conf у папці Apache HTTP Proxy. Знайдіть у файлі вказані нижче параметри та змініть їхнє значення на кількість клієнтів.

Замініть значення 5000, наведене як приклад, на своє число. Максимальне значення дорівнює 32000.

ThreadLimit 5000

ThreadsPerChild 5000

 
Не змінюйте інший текст файлу.

Налаштування переадресації підключень «агент-сервер» у проксі-сервері Apache HTTP

1.На проксі-сервері відкрийте файл

i.Дистрибутиви Debian
/etc/apache2/mods-available/proxy.conf

ii.Дистрибутиви Red Hat
/etc/httpd/conf/httpd.conf

2.У кінці файлу додайте ці рядки:
AllowCONNECT 443 563 2222 8883 53535

3.На проксі-сервері відкрийте файл

i.Дистрибутиви Debian
/etc/apache2/apache2.conf

ii.Дистрибутиви Red Hat
/etc/httpd/conf/httpd.conf

4.Знайдіть цей рядок
Listen 80
і змініть його на
Listen 3128

5.Якщо ви додали обмеження для IP-адрес у конфігурації проксі-сервера (крок 1), потрібно надати доступ до сервера ESET PROTECT.

Додайте окремий сегмент ProxyMatch.

I.Адреса, яку агенти використовують для підключення до сервера ESET PROTECT.

II.Усі інші адреси сервера ESET PROTECT (IP-адреса, повне доменне ім’я).
(Додайте весь указаний нижче код; IP-адреса 10.1.1.10 та ім’я хоста hostname.example є лише прикладами, їх потрібно замінити своїми адресами. Ви також можете створити вираз ProxyMatch в цій статті бази знань.)
 

<ProxyMatch ^(hostname\.example(:[0-9]+)?(\/.*)?|10\.1\.1\.10(:[0-9]+)?(\/.*)?)$>

Allow from all

</ProxyMatch>

6.Перезавантаження службу Apache HTTP Proxy.

Налаштування кешування

Можна скористатися htcachceclean, щоб налаштувати розмір кешу Apache HTTP Proxy і його очищення. Див. інструкції з налаштування кешу для віртуального пристрою ESET PROTECT.

Налаштування SELinux

Якщо проксі-сервер використовується на віртуальному пристрої ESET PROTECT, політику SELinux потрібно змінити (інші дистрибутиви Linux можуть мати такі самі вимоги). Відкрийте термінал на віртуальному пристрої ESET PROTECT і виконайте вказані нижче команди.

/usr/sbin/setsebool -P httpd_can_network_connect 1

sudo semanage port -a -t http_port_t -p tcp 2222