Apache HTTP 代理安装 - Linux

ESET Management 服务器代理可以通过 Apache HTTP Proxy 连接到 ESET PROTECT 服务器。详细了解 ESET Management 服务器代理的代理如何工作

Apache HTTP Proxy 通常作为 apache2httpd 程序包分发。

根据您在服务器上所使用的 Linux 发行版,选择适用于 Apache HTTP 代理的安装步骤:如果想要使用 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.默认情况下,端口 2222 用于与 ESET Management 服务器代理进行通信。如果在安装期间更改了端口,则使用更改的端口号。将行 AllowCONNECT 443 563 2222 8883 53535 中的 2222 更改为您的端口号。

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使用 usergroup:username 手动创建一个名为 group.file 的文件

10. 重新启动 Apache HTTP 服务器。

 

Ubuntu Server 和 Apache HTTP 代理的其他基于 Debian 的 Linux 发行版安装

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.默认情况下,端口 2222 用于与 ESET Management 服务器代理进行通信。如果在安装期间更改了端口,则使用更改的端口号。将行 AllowCONNECT 443 563 2222 8883 53535 中的 2222 更改为您的端口号。

7.启用您在之前步骤中编辑的配置文件:

sudo a2enconf cache_disk.conf proxy.conf

8.将 Apache HTTP 服务器的侦听端口切换到 3128。编辑文件 /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创建称为“组”的文件:

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 不支持代理链。可以使用您自己的透明 Web 代理解决方案,而可能要进行的其他必要配置在此处不会进行说明。将以下内容添加到代理配置(密码仅可作用于子代理):

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

当在 ESET PROTECT 虚拟设备上使用代理链时,必须修改 SELinux 策略。打开 ESET PROTECT VA 上的终端并运行以下命令:

/usr/sbin/setsebool -P httpd_can_network_connect 1

为大量客户端配置 HTTP 代理

如果使用 64 位 Apache HTTP 代理,则可以为 Apache HTTP Proxy 增加线程限制。编辑 Apache HTTP Proxy 文件夹内的 httpd.conf 配置文件。在该文件中找到以下设置并更新值,以匹配客户端数量。

将示例值 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.如果在代理配置(步骤 1)中对 IP 地址添加了限制,则必须允许访问 ESET PROTECT 服务器:

添加单独的 ProxyMatch 段:

I.服务器代理用于连接到 ESET PROTECT 服务器的地址。

II.您的 ESET PROTECT 服务器的所有其他地址(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 服务。

配置缓存

可以使用 htcachceclean 来配置 Apache HTTP Proxy 缓存大小和缓存清除。请参阅 ESET PROTECT 虚拟设备的缓存配置说明

SELinux 设置

当在 ESET PROTECT 虚拟设备上使用代理时,必须修改 SELinux 策略(某些其他 Linux 发行版可能具有相同要求)。打开 ESET PROTECT VA 上的终端并运行以下命令:

/usr/sbin/setsebool -P httpd_can_network_connect 1

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