Installation du mandataire HTTP Apache - Linux

Les agents ESET Management peuvent se connecter au serveur ESET PROTECT par Apache HTTP Proxy. Découvrez davantage comment le mandataire fonctionne pour les agents ESET Management.

Le Apache HTTP Proxy est généralement distribué sous la forme d’un progiciel apache2 ou httpd.

Sélectionnez les étapes d'installation du mandataire HTTP Apache en fonction de la distribution Linux que vous utilisez sur votre serveur : Si vous souhaitez utiliser Apache pour mettre également en cache les résultats d'ESET Dynamic Threat Defense, consultez aussi la documentation correspondante.

Installation de Linux (distribution générique) pour mandataire HTTP Apache

1.Installez Apache HTTP Server (version 2.4.10 ou plus récente)

2.Vérifiez que les modules suivants ont été chargés :

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

3.Ajoutez la configuration de mise en cache :

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

4.Si le répertoire /var/cache/apache2/mod_cache_disk est inexistant, créez-le et attribuez-lui les privilèges Apache (r,w,x).

5.Ajouter la configuration du mandataire  :

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.Par défaut, le port 2222 est utilisé pour les communications avec ESET Management l'agent. Si vous avez modifié le port lors de l'installation, servez-vous du nouveau numéro de port. Dans la ligne AllowCONNECT 443 563 2222 8883 53535, remplacez 2222 par votre numéro de port.

7.Activez la configuration de mise en cache du mandataire que vous venez d'ajouter (si la configuration se trouve dans le fichier principal de configuration Apache, vous pouvez passer cette étape).

8.Au besoin, modifiez le mode de réception vers le port désiré (le port par défaut est 3128).

9.Authentification de base optionnelle :

oAjoutez une configuration d'authentification à la directive du mandataire :

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

oCréez un fichier de mot de passe en utilisant /etc/httpd/.htpasswd -c

oCréez manuellement un fichier nommé group.file avec usergroup:username

10. Redémarrez le Serveur HTTP Apache.

 

Serveur Ubuntu et autres distributions d'installation du mandataire HTTP Apache architecturés autour de Debian sous Linux

1.Installez la plus récente version de Serveur HTTP Apache à partir du référentiel apt :

sudo apt-get install apache2

2.Exécutez la commande suivante pour charger les modules Apache nécessaires :

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.Modifiez le fichier de configuration de cache Apache :

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

et copiez-collez la configuration suivante :

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

4. Cette étape ne devrait pas être nécessaire, mais si le répertoire de mise en cache est manquant, exécutez les commandes suivantes :

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.Modifiez le fichier de configuration du mandataire Apache :

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

et copiez-collez la configuration suivante :

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.Par défaut, le port 2222 est utilisé pour les communications avec ESET Management l'agent. Si vous avez modifié le port lors de l'installation, servez-vous du nouveau numéro de port. Dans la ligne AllowCONNECT 443 563 2222 8883 53535, remplacez 2222 par votre numéro de port.

7.Activez les fichiers de configuration que vous avez modifiés lors des étapes précédentes :

sudo a2enconf cache_disk.conf proxy.conf

8.Changez le port d'écoute du serveur HTTP Apache en 3128. Modifiez le fichier /etc/apache2/ports.conf et remplacez Listen 80 parListen 3128.

9.Authentification de base optionnelle :

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

oCopiez-collez la configuration d'authentification avant </Proxy> :

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

oInstallez apache2-utils et créez un nouveau fichier mot de passe (par exemple, nom d'utilisateur utilisateur, groupe : groupe de l'utilisateur) :

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

oCréez un fichier appelé groupe :

sudo vim /etc/apache2/group.file

et copiez-collez la ligne suivante :

usergroup:user

10. Redémarrez le Mandataire HTTP Apache à l'aide de la commande :

sudo service apache2 restart

 

Transfert pour les communications ESET seulementPour autorisez seulement le transfert des communications ESET, supprimez les éléments suivants :

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

Ajoutez également les éléments suivants :

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

Transmission pour toute communication

Pour autoriser le transfert de toutes les communications, ajoutez ce qui suit :

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

supprimez également ce qui suit :

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

Chaînage du serveur mandataire (tout le trafic)

ESET PROTECT ne prend pas en charge le chaînage des mandataires lorsque ceux-ci requièrent une authentification. Vous pouvez utiliser votre propre solution de mandataire Web transparente, mais sachez qu'une configuration supplémentaire peut être nécessaire en plus de ce qui est mentionné ici. Ajoutez la configuration du mandataire suivante (le mot de passe fonctionne seulement sur le mandataire enfant) :

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

Lorsque vous utilisez le chaînage de mandataire sur l'AV ESET PROTECT, la politique de SELinux doit être modifiée. Ouvrez le terminal sur l'AV ESET PROTECT et exécutez la commande suivante :

/usr/sbin/setsebool -P httpd_can_network_connect 1

Configurez votre mandataire HTTP pour un nombre élevé de clients

Si vous utilisez un mandataire HTTP Apache de 64 bits, vous pouvez augmenter la limite de fils pour votre Apache HTTP Proxy. Modifiez le fichier de configuration de httpd.conf, dans votre dossier Apache HTTP Proxy. Trouvez les paramètres suivants dans le fichier et mettez les valeurs à jour pour qu'elles correspondent à votre nombre de clients.

Remplacez le nombre 5000 de l'exemple par votre nombre. La valeur maximale est de 32000.

ThreadLimit 5000

ThreadsPerChild 5000

 
Ne changez pas le reste de fichier.

Configurer le mandataire HTTP Apache pour transférer les connexions du serveur de l’agent

1.Sur l'ordinateur mandataire, ouvrez le fichier

i.(Distributions Debian)
/etc/apache2/mods-available/proxy.conf

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

2.Ajoutez les lignes suivantes à la fin du fichier :
AllowCONNECT 443 563 2222 8883 53535

3.Sur l'ordinateur mandataire, ouvrez le fichier

i.(Distributions Debian)
/etc/apache2/apache2.conf

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

4.Trouvez la ligne :
Listen 80
et modifiez la en
Listen 3128

5.Si vous avez ajouté des restrictions pour les adresses IP dans votre configuration de mandataire (étape 1), vous devez autoriser l'accès à votre serveur ESET PROTECT :

Ajoutez un segment ProxyMatch séparé :

I.L'adresse que vos agents utilisent pour se connecter au serveur ESET PROTECT.

II.Toutes les autres adresses possibles de votre serveur ESET PROTECT (IP, FQDN)
(ajoutez le code ci-dessous en entier ; l'adresse IP 10.1.1.10 et le nom d'hôte hostname.example sont présentés à titre d'exemples seulement; vous devez les remplacer par vos adresses. Vous pouvez également générer l'expression ProxyMatch à l'aide de cet article de la base de connaissances.)
 

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

Allow from all

</ProxyMatch>

6.Redémarrez le service Apache HTTP Proxy.

Paramètre SELinux

Lorsque vous utilisez un mandataire sur le périphérique virtuel ESET PROTECT, la politique de SELinux doit être modifiée (d'autres distributions de Linux peuvent avoir les mêmes exigences). Ouvrez le terminal sur l'AV ESET PROTECT et exécutez la commande suivante :

/usr/sbin/setsebool -P httpd_can_network_connect 1

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