Установка прокси-сервера Apache HTTP — Linux

Действия по установке прокси-сервера Apache HTTP могут быть разные, в зависимости от того, какой дистрибутив Linux используется на сервере.

Установка Linux (общий дистрибутив) для прокси-сервера Apache HTTP

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 200000000
CacheMaxExpire 604800
CacheQuickHandler Off
CacheRoot /var/cache/apache2/mod_cache_disk

4.Если каталог /var/cache/apache2/mod_cache_disk не существует, создайте его и назначьте права Apache (r,w,x).

5.Добавьте конфигурацию прокси-сервера:

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

6.Включите добавленные прокси-сервер с функцией кэширования и конфигурацию (если она находится в основной конфигурации Apache, этот этап можно пропустить).

7.Если нужно, укажите другой порт прослушивания (по умолчанию задан порт 3128).

8.Необязательная базовая проверка подлинности:

oДобавьте конфигурацию проверки подлинности в директиву прокси-сервера:

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

oСоздайте файл пароля с помощью htpasswd.exe -c.

oВручную создайте файл под названием group.file с usergroup:username.

9.Перезапустите сервер Apache HTTP.
 

Информация по установке Apache HTTP Proxy в Ubuntu Server 14.10 и других дистрибутивах Linux, основанных на Debian

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/caching.conf

и скопируйте и вставьте следующую конфигурацию:

CacheEnable disk http://
CacheDirLevels 4
CacheDirLength 2
CacheDefaultExpire 3600
CacheMaxFileSize 200000000
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:

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

и скопируйте и вставьте следующую конфигурацию:

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

6.Включите файлы конфигурации, которые вы редактировали на предыдущих этапах:

sudo a2enconf caching.conf proxy.conf

7.В качестве прослушивающего порта сервера Apache HTTP выберите порт 3128. Измените файл /etc/apache2/ports.conf и замените Listen 80 на Listen 3128.

8.Необязательная базовая проверка подлинности:

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

oскопируйте и вставьте конфигурацию проверки подлинности перед </Proxy>:

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создайте файл group:

sudo vim /etc/apache2/group.file

и скопируйте и вставьте следующую строку:

usergroup:user

9.Перезапустите сервер Apache HTTP с помощью следующей команды:

sudo service apache2 restart

 

Перенаправление только для подключения 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>

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

Чтобы разрешить перенаправление для всех подключений, добавьте эти параметры:

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

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

 

Цепочка прокси-серверов (весь трафик)

Добавьте в конфигурацию прокси-сервера следующее (пароль работает только на дочерних прокси-серверах):

ProxyRemote * http://IP_ADDRESS:3128