Apache HTTP 代理安装 - Linux
ESET Management 服务器代理可以通过 Apache HTTP Proxy 连接到 ESET PROTECT 服务器。详细了解 ESET Management 服务器代理的代理如何工作。
Apache HTTP Proxy 通常作为 apache2 或 httpd 程序包分发。
根据您在服务器上所使用的 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:// |
4.如果目录 /var/cache/apache2/mod_cache_disk 不存在,请创建该目录并分配 Apache 权限 (r,w,x)。
5.添加代理配置:
AllowCONNECT 443 563 2222 8883 53535
ProxyRequests 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> |
6.默认情况下,端口 2222 用于与 ESET Management 服务器代理进行通信。如果在安装期间更改了端口,则使用更改的端口号。将行 AllowCONNECT 443 563 2222 8883 53535 中的 2222 更改为您的端口号。
7.启用添加的缓存代理和配置(如果配置已位于主 Apache 配置文件中,则可以跳过此步骤)。
8.如有必要,将侦听更改为您要侦听的端口(默认设置的端口为 3128)。
9.可选基本身份验证:
o将身份验证配置添加到代理指令:
AuthType Basic |
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:// |
4. 此步骤不是必需步骤,但是如果缓存目录丢失,请运行以下命令:
sudo mkdir /var/cache/apache2/mod_cache_disk |
5.编辑 Apache 代理配置文件:
sudo vim /etc/apache2/conf-available/proxy.conf
并复制/粘贴以下配置:
AllowCONNECT 443 563 2222 8883 53535
ProxyRequests 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> |
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 |
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 *> |
并添加以下内容:
<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 *> |
并删除以下内容:
<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