Instalace Apache HTTP Proxy na Linuxu a aktivace cache

ESET Management Agent se dokáže k ESET PROTECT Serveru připojit ze vzdálených lokalit prostřednictvím Apache HTTP Proxy. Další informace naleznete v kapitole jak funguje proxy pro ESET Management Agenty.

Apache HTTP Proxy je známý na linuxu jako balíček apache2 nebo httpd.

V závislosti na vámi používané distribuci si vyberte odpovídající návod na instalaci Apache HTTP Proxy. Pro cachování výsledků získaných analýzou v ESET LiveGuard Advanced přejděte do příručky k EDTD.

Obecný postup instalace Apache HTTP Proxy na Linuxu

1.Nainstalujte Apache HTTP Server (minimálně ve verzi 2.4.10).

2.Ověřte, že jsou načteny níže uvedené moduly:

access_compat, auth_basic, authn_core, authn_file, authz_core, authz_groupfile,
authz_host, proxy, proxy_http, proxy_connect, cache, cache_disk

3.Do konfiguračního souboru přidejte parametry pro aktivaci cache:

CacheEnable disk http://
CacheDirLevels 4
CacheDirLength 2
CacheDefaultExpire 3600
CacheMaxFileSize 500000000
CacheMaxExpire 604800
CacheQuickHandler Off
CacheRoot /var/cache/apache2/mod_cache_disk

4.Pokud složka /var/cache/apache2/mod_cache_disk neexistuje, vytvořte ji a přidělte ji Apache oprávnění (r,w,x).

5.Přidejte konfiguraci 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.Komunikace mezi ESET Management a serverem standardně probíhá na portu 2222. Pokud jste si port změnili, v dalším kroku použijte vámi definovaný port. Do konfigurační souboru přidejte řádek AllowCONNECT 443 563 2222 8883 53535, kde případně nahraďte 2222 vámi použitým portem-

7.Aktivujte přidanou proxy cache a konfiguraci (pokud se nachází v hlavním konfiguračním souboru Apache, můžete tento krok přeskočit).

8.V případě potřeby změňte port, na kterém proxy běží (standardně 3128).

9.Volitelně nastavte základní autentifikaci:

oPřidejte do konfigurace proxy tyto řádky:

AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/password.file
AuthGroupFile /etc/apache2/group.file
Require group usergroup

oVytvořte heslo pomocí příkazu /etc/httpd/.htpasswd -c

oRučně vytvořte soubor group.file a vložte do něj usergroup:username

10. Restartujte Apache HTTP Proxy.

 

Instalace na Ubuntu server a distribuce založené na Debianu

1.Nainstalujte nejnovější verzi Apache HTTP Server z apt repozitáře:

sudo apt-get install apache2

2.Pro načtení Apache modulů spusťte následující příkaz:

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.Otevřete si konfigurační soubor Apache:

sudo vim /etc/apache2/conf-available/cache_disk.conf

a vložte do něj následující řádky:

CacheEnable disk http://
CacheDirLevels 4
CacheDirLength 2
CacheDefaultExpire 3600
CacheMaxFileSize 500000000
CacheMaxExpire 604800
CacheQuickHandler Off
CacheRoot /var/cache/apache2/mod_cache_disk

4. Pokud složka pro cache neexistuje, vytvořte ji příkazem:

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.Otevřete si konfigurační soubor Apache Proxy:

sudo vim /etc/apache2/conf-available/proxy.conf

a vložte do něj následující řádky:

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.Komunikace mezi ESET Management a serverem standardně probíhá na portu 2222. Pokud jste si port změnili, v dalším kroku použijte vámi definovaný port. Do konfigurační souboru přidejte řádek AllowCONNECT 443 563 2222 8883 53535, kde případně nahraďte 2222 vámi použitým portem-

7.Aktivujte výše upravené soubory příkazem:

sudo a2enconf cache_disk.conf proxy.conf

8.Nastavte Apache HTTP Server tak, aby naslouchal na portu 3128. V souboru /etc/apache2/ports.conf najděte řádek Listen 80 a nahraďte jej řádkem Listen 3128.

9.Volitelně nastavte základní autentifikaci:

sudo vim /etc/apache2/mods-enabled/proxy.conf

oPřed </Proxy> vložte:

AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/password.file
AuthGroupFile /etc/apache2/group.file
Require group usergroup

oNainstalujte Apache2-utils a vytvořte soubor s heslem (například uživatel: user, skupina: usergroup):

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/apache2/password.file user

oVytvořte soubor skupiny:

sudo vim /etc/apache2/group.file

a vložte do něj:

usergroup:user

10. Restartujte Apache HTTP Proxy příkazem:

sudo systemctl restart apache2

 

Směrování pouze ESET komunikacePro směrování pouze ESET komunikace odstraňte následující řádky:

<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

Přidejte následující:

<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>

Směrování veškeré komunikace

Pro směrování veškeré komunikace přidejte:

<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>

a odstraňte následující:

<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 chaining (veškerá komunikace)

Mějte na paměti, že ESET PROTECT nepodporuje proxy chaining s aktivní autentifikací. Kdykoli můžete použít vlastní transparentní proxy – nicméně v tomto případě bude pravděpodobně nutné upravit její konfiguraci. Do konfigurace přidejte následující řádek (heslo platí pouze pro zděděnou proxy):

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

Při použití proxy chaining na ESET PROTECT virtuální appliance je nutné upravit SELinux politiku. Otevřete si terminál na ESET PROTECT VA a spusťte následující příkazy pro povolení komunikace:

/usr/sbin/setsebool -P httpd_can_network_connect 1

Upravte konfiguraci HTTP Proxy tak, aby obsloužila velký počet klientů.

Pokud jste použili 64-bitový Apache HTTP Proxy, můžete zvýšit limit na počet vláken. To provedete úpravou konfiguračního souboru httpd.conf, který naleznete ve složce s Apache HTTP Proxy. V souboru najděte níže uvedená nastavení a změňte hodnoty tak, aby odpovídaly počtu vašich klientů.

Například hodnotu 5000 nahraďte vaší hodnotou. Maximální hodnota je 32000.

ThreadLimit 5000

ThreadsPerChild 5000

 
Neměňte zbytek souboru.

Konfigurace Apache HTTP Proxy pro směrování komunikace agentů:

1.Otevřete si konfigurační soubor:

i.Debian distribuce
/etc/apache2/mods-available/proxy.conf

ii.Red Hat distribuce
/etc/httpd/conf/httpd.conf

2.Na konec souboru přidejte níže uvedené řádky:
AllowCONNECT 443 563 2222 8883 53535

3.Otevřete si konfigurační soubor:

i.Debian distribuce
/etc/apache2/apache2.conf

ii.Red Hat distribuce
/etc/httpd/conf/httpd.conf

4.Najděte řádek:
Listen 80
a změňte jej na
Listen 3128

5.Máte-li v konfiguraci proxy (krok 1) restrikci na IP adresy, povolte přístup na ESET PROTECT Server:

Do vlastní sekce ProxyMatch přidejte:

I.Adresu, kterou používá agent pro připojení k ESET PROTECT Serveru.

II.Všechny další přípustné adresy ESET PROTECT Serveru (IP adresa, FQDN, …)
(přidejte text v níže uvedeném rámečku; IP adresa 10.1.1.10 je pouze vzorová a nahraďte ji skutečnou, stejně tak hostname.example) ProxyMatch výraz si můžete vygenerovat prostřednictvím skriptu v naší Databázi znalostí.)
 

<ProxyMatch ^(hostname\.example(:[0-9]+)?(\/.*)?|10\.1\.1\.10(:[0-9]+)?(\/.*)?)$>

Allow from all

</ProxyMatch>

6.Restartujte službu Apache HTTP Proxy.

Nastavte cachování

Pomocí nástroje htcachceclean můžete upravit velikost cache Apache HTTP Proxy, stejně tak její automatické promazávání. Další informace naleznete v kapitole instrukce pro konfiguraci cache na ESET PROTECT VA.

Nastavení SELinux

Při použití HTTP Proxy na ESET PROTECT virtuální appliance (některé linuxové distribuce mohou mít stejné požadavky) je nutné upravit SELinux politiku. Otevřete si terminál na ESET PROTECT VA a spusťte následující příkazy pro povolení komunikace:

/usr/sbin/setsebool -P httpd_can_network_connect 1

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