Inštalácia Apache HTTP Proxy – Linux

ESET Management Agenty sa môžu pripájať na ESET PROTECT Server prostredníctvom Apache HTTP Proxy. Bližšie informácie o tom, ako proxy pracuje s ESET Management Agentmi, nájdete v tejto kapitole.

Apache HTTP Proxy sa bežne distribuuje v podobe balíka apache2 alebo httpd.

Postup inštalácie Apache HTTP Proxy zvoľte podľa toho, akú distribúciu systému Linux používate na vašom serveri: Ak chcete, aby Apache ukladalo do vyrovnávacej pamäte aj výsledky z ESET LiveGuard Advanced, prečítajte si súvisiacu dokumentáciu.

Všeobecný postup inštalácie Apache HTTP Proxy na systéme Linux

1.Nainštalujte Apache HTTP Server (aspoň vo verzii 2.4.10).

2.Uistite sa, že sú načítané nasledujúce moduly:

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

3.Pridajte konfiguráciu vyrovnávacej pamäte:

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

4.Ak adresár /var/cache/apache2/mod_cache_disk neexistuje, vytvorte ho a prideľte mu Apache oprávnenia (r, w, x).

5.Pridajte konfiguráciu 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.Podľa predvolených nastavení sa na komunikáciu s ESET Management Agentom používa port 2222. Ak ste zmenili port počas inštalácie, použite zmenené číslo portu. V riadku AllowCONNECT 443 563 2222 8883 53535 zmeňte 2222 na vlastné číslo portu.

7.Povoľte pridané proxy s funkciou ukladania do vyrovnávacej pamäte (proxy cache) a príslušnú konfiguráciu (ak sa táto konfigurácia nachádza v hlavnom konfiguračnom súbore Apache, môžete tento krok vynechať).

8.Ak je to potrebné, zmeňte port pre proxy (predvolený port je 3128).

9.Voliteľné základné overovanie:

oPridajte overovanie pre proxy:

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

oVytvorte súbor hesla pomocou /etc/httpd/.htpasswd -c

oManuálne vytvorte súbor s názvom group.file a vložte doň usergroup:username

10. Reštartujte službu Apache HTTP Server.

 

Inštalácia Apache HTTP Proxy na Ubuntu Server a iné Debian distribúcie

1.Nainštalujte najnovšiu verziu Apache HTTP Server z apt repozitára:

sudo apt-get install apache2

2.Spustite nasledujúci príkaz na načítanie potrebných Apache modulov:

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.Upravte konfiguračný súbor proxy cache:

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

a do súboru vložte nasledujúce riadky:

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

4. Tento krok by nemal byť potrebný, no v prípade, že lokalita vyrovnávacej pamäte chýba, spustite nasledujúce príkazy:

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.Upravte konfiguračný súbor Apache proxy:

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

a do súboru vložte nasledujúce riadky:

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.Podľa predvolených nastavení sa na komunikáciu s ESET Management Agentom používa port 2222. Ak ste zmenili port počas inštalácie, použite zmenené číslo portu. V riadku AllowCONNECT 443 563 2222 8883 53535 zmeňte 2222 na vlastné číslo portu.

7.Povoľte upravené konfiguračné súbory:

sudo a2enconf cache_disk.conf proxy.conf

8.Zmeňte prijímajúci port pre Apache HTTP Server na port 3128. Upravte súbor /etc/apache2/ports.conf a nahraďte riadok Listen 80 riadkom Listen 3128.

9.Voliteľné základné overovanie:

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

oSkopírujte nasledujúce nastavenia pred reťazec </Proxy>:

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

oNainštalujte apache2-utils a vytvorte nový súbor hesla (napr. používateľ: user, skupina: usergroup):

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

oVytvorte súbor skupiny:

sudo vim /etc/apache2/group.file

a vložte doň nasledujúci riadok:

usergroup:user

10. Reštartujte Apache HTTP Server pomocou nasledujúceho príkazu:

sudo systemctl restart apache2

 

Preposielanie iba pre ESET komunikáciuPre povolenie preposielania výhradne komunikácie ESET odstráňte nasledujúce riadky:

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

A pridajte nasledujúce riadky:

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

Preposielanie všetkej komunikácie

Pre povolenie preposielania všetkej komunikácie pridajte nasledujúce riadky:

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

a odstráňte nasledujúce riadky:

<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 (všetka komunikácia)

Majte na pamäti, že ESET PROTECT nepodporuje proxy chaining v prípade, že proxy vyžadujú autentifikáciu. Môžete použiť vlastný transparentný proxy server – avšak v tomto prípade bude pravdepodobne potrebné upraviť jeho konfiguráciu nad rámec toho, čo spomíname v tejto kapitole. Do konfigurácie proxy pridajte nasledujúci riadok (heslo funguje len pre podradené proxy):

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

Ak sa Proxy chaining používa na virtuálnom zariadení ESET PROTECT, je potrebné upraviť SELinux politiku. Na virtuálnom zariadení ESET PROTECT otvorte terminál a spustite príkaz:

/usr/sbin/setsebool -P httpd_can_network_connect 1

Nastavenie HTTP Proxy pre vysoký počet klientov

Ak používate 64-bitovú verziu Apache HTTP Proxy, môžete zvýšiť limit pre počet vlákien. Upravte konfiguračný súbor httpd.conf vo svojom priečinku Apache HTTP Proxy. V súbore vyhľadajte nasledujúce nastavenia a upravte príslušné hodnoty tak, aby zodpovedali vášmu počtu klientov.

Nahraďte hodnotu 5000 (príklad) vlastným číslom. Najvyššia hodnota je 32000.

ThreadLimit 5000

ThreadsPerChild 5000

 
Zvyšok súboru nemeňte.

Nakonfigurujte Apache HTTP Proxy na preposielanie komunikácie medzi Agentmi a Serverom.

1.Na zariadení proxy otvorte konfiguračný súbor:

i.Debian distribúcie
/etc/apache2/mods-available/proxy.conf

ii.Red Hat distribúcie
/etc/httpd/conf/httpd.conf

2.Na koniec súboru pridajte nasledujúci riadok:
AllowCONNECT 443 563 2222 8883 53535

3.Na zariadení proxy otvorte konfiguračný súbor:

i.Debian distribúcie
/etc/apache2/apache2.conf

ii.Red Hat distribúcie
/etc/httpd/conf/httpd.conf

4.Nájdite riadok
Listen 80
a zmeňte ho na
Listen 3128

5.Ak ste v rámci nastavení proxy (krok č. 1) pridali obmedzenia pre IP adresy, musíte povoliť prístup na váš ESET PROTECT Server:

Do osobitného segmentu ProxyMatch pridajte:

I.Adresu, ktorú používajú Agenty na pripojenie k ESET PROTECT Serveru.

II.Všetky ďalšie adresy vášho ESET PROTECT Servera (IP, FQDN atď.).
(Pridajte celý kód zobrazený nižšie, pričom IP adresa 10.1.1.10 a názov hostiteľa hostname.example slúžia len ako príklady a je potrebné ich nahradiť vašimi vlastnými údajmi. Výraz ProxyMatch si tiež môžete vygenerovať podľa postupu v tomto článku databázy znalostí.)
 

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

Allow from all

</ProxyMatch>

6.Reštartujte službu Apache HTTP Proxy.

Konfigurácia vyrovnávacej pamäte

Na konfiguráciu veľkosti a údržby vyrovnávacej pamäte Apache HTTP Proxy môžete použiť nástroj htcachceclean. Pozrite si inštrukcie pre konfiguráciu ukladania do vyrovnávacej pamäte na virtuálnom zariadení ESET PROTECT.

Nastavenie SELinux

Ak sa proxy používa na virtuálnom zariadení ESET PROTECT (ostatné distribúcie systému Linux môžu mať rovnakú požiadavku), je potrebné upraviť SELinux politiku. Na virtuálnom zariadení ESET PROTECT otvorte terminál a spustite nasledujúce príkazy:

/usr/sbin/setsebool -P httpd_can_network_connect 1

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