Apache HTTP Proxy 安裝 - Linux

ESET Management 代理程式可以透過 Apache HTTP Proxy 連線至 ESET PROTECT 伺服器。進一步閱讀有關 ESET Management 代理程式的 Proxy 如何運作

Apache HTTP Proxy 一般是以 apache2httpd 套件的形式發送。

根據您在伺服器上使用的 Linux 發送,選擇 Apache HTTP Proxy 的安裝步驟:如果您想要使用 Apache 一併從 ESET LiveGuard Advanced 快取結果,請另外參閱相關的文件

Apache HTTP Proxy 的 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.新增 Proxy 配置:

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.啟用新增的快取 Proxy 和配置 (若配置位於主要 Apache 配置,您可跳過此步驟)。

8.如果需要的話,請將監聽連接埠變更為所需的連接埠 (預設為連接埠 3128)。

9.選用基本驗證:

o將驗證配置新增至 Proxy 指示詞:

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 Proxy 的其他以 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 Proxy 配置檔案:

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在下列項目之前複製/貼上驗證配置:

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>

Proxy 連鎖 (所有流量)

ESET PROTECT 在 Proxy 需要驗證時不支援 Proxy 連鎖。您可以使用自己的透明 Web Proxy 解決方案,然而可能還需要本文所述之外的其他配置。新增下列內容至 Proxy 配置 (密碼僅在子 Proxy 上有效):

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

在 ESET PROTECT 虛擬設備上使用 Proxy 連鎖時,必須修改 SELinux 原則。在 ESET PROTECT VA 上開啟終端機,然後執行下列命令‎:

/usr/sbin/setsebool -P httpd_can_network_connect 1

為大量用戶端配置 HTTP Proxy

如果您使用 64 位元的 Apache HTTP Proxy,可以增加您 Apache HTTP Proxy 的執行緒限制。編輯您 Apache HTTP Proxy 資料夾內的配置檔案 httpd.conf。尋找檔案中的以下設定,並更新值以符合用戶端數目。

以您的數字取代範例值 5000。最大值為 32000

ThreadLimit 5000

ThreadsPerChild 5000

 
請勿變更該檔案其餘部分。

配置 Apache HTTP Proxy 以轉送代理程式與伺服器的連線

1.在 Proxy 機器上,開啟檔案

i.Debian 發送
/etc/apache2/mods-available/proxy.conf

ii.Red Hat 發送
/etc/httpd/conf/httpd.conf

2.將下列行新增至檔案結尾:
AllowCONNECT 443 563 2222 8883 53535

3.在 Proxy 機器上,開啟檔案

i.Debian 發送
/etc/apache2/apache2.conf

ii.Red Hat 發送
/etc/httpd/conf/httpd.conf

4.尋找此行:
Listen 80
並將它變更為
Listen 3128

5.如果已在 Proxy 配置中新增了 IP 位址的限制 (步驟 1),則必須允許存取 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 虛擬設備上使用 Proxy 時,必須修改 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