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

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

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

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

Установка 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 service apache2 restart

 

Перенаправление только для подключения 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.

Настройка 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