Установка прокси-сервера Apache HTTP — Linux

Агенты ESET Management могут подключаться к серверу ESET PROTECT через Apache HTTP Proxy. Ознакомьтесь с дополнительными сведениями о том, как работает прокси-сервер для агентов ESET Management.

Решение Apache HTTP Proxy обычно распространяется в пакетах apache2 или httpd.

Действия по установке прокси-сервера Apache HTTP могут быть разные, в зависимости от того, какой дистрибутив Linux используется на сервере. Если хотите использовать Apache, чтобы кэшировать также результаты из ESET LiveGuard Advanced, см. соответствующую документацию.

Установка Linux (общий дистрибутив) для прокси-сервера Apache HTTP

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 Proxy в Ubuntu Server и других дистрибутивах Linux, основанных на Debian

1.Установите последнюю версию сервера Apache HTTP с подходящего репозитория:

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.В качестве прослушивающего порта сервера Apache HTTP выберите порт 3128. Измените файл /etc/apache2/ports.conf and replace 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 Server:

Добавьте отдельный сегмент ProxyMatch:

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

II.Все возможные адреса своей службы ESET PROTECT Server (IP, FQDN).
(Добавьте весь указанный ниже код. 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.

Настройка кэширования

Для настройки размера кэша Apache HTTP Proxy и очистки кэша можно использовать htcachceclean. Ознакомьтесь с инструкциями по настройке кэша для виртуального устройства 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