Apache HTTP 프록시 설치 - Linux

ESET Management Agent는 Apache HTTP Proxy를 통해 ESET PROTECT Server에 연결할 수 있습니다. ESET Management Agent용 프록시의 작동 방식에 대해 자세히 읽어보십시오.

Apache HTTP Proxy는 일반적으로 apache2 또는 httpd 패키지로 배포됩니다.

서버에서 사용하는 Linux 배포에 따라 Apache HTTP 프록시의 설치 단계를 선택하십시오. Apache를 사용하여 ESET Dynamic Threat Defense의 결과도 캐시하려면 관련 문서를 참조하십시오.

Apache HTTP 프록시에 Linux 설치(일반 배포)

1.Apache HTTP Server(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.프록시 구성을 추가합니다.

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.기본적으로 ESET Management 에이전트와 통신하는 데 포트 2222가 사용됩니다. 설치 동안 포트를 변경한 경우 변경된 포트 번호를 사용합니다. 포트 번호를 위해 AllowCONNECT 443 563 2222 8883 53535 줄에서 2222를 변경합니다.

7.추가된 캐시 프록시 및 구성을 활성화합니다(구성이 기본 Apache 구성 파일에 있는 경우 이 단계를 건너뛸 수 있음).

8.필요한 경우 수신 대기 포트를 원하는 포트로 변경합니다(기본적으로 포트 3128이 설정됨).

9.선택적 기본 인증:

o인증 구성을 프록시 지시문에 추가합니다.

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

o/etc/httpd/.htpasswd -c를 사용하여 비밀번호 파일을 만듭니다.

ousergroup:username을 사용하여 group.file 이름을 가진 파일을 수동으로 만듭니다.

10. Apache HTTP Server를 다시 시작합니다.

 

Apache HTTP 프록시의 Ubuntu Server 및 기타 Debian 기반 Linux 배포 설치

1.apt 저장소에서 최신 버전의 Apache HTTP Server를 설치합니다.

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 프록시 구성 파일을 편집합니다.

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.기본적으로 ESET Management 에이전트와 통신하는 데 포트 2222가 사용됩니다. 설치 동안 포트를 변경한 경우 변경된 포트 번호를 사용합니다. 포트 번호를 위해 AllowCONNECT 443 563 2222 8883 53535 줄에서 2222를 변경합니다.

7.이전 단계에서 편집한 구성 파일을 활성화합니다.

sudo a2enconf cache_disk.conf proxy.conf

8.Apache HTTP Server의 수신 대기 포트를 3128로 전환합니다. /etc/apache2/ports.conf 파일을 편집한 후 Listen 80Listen 3128로 바꿉니다.

9.선택적 기본 인증:

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

o</Proxy> 앞에 다음 인증 구성을 복사하고 붙여넣습니다.

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

oapache2-utils를 설치하고 새 패스워드 파일(예를 들어 사용자 이름: user, 그룹: usergroup)을 만듭니다.

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

ogroup이라는 파일을 만듭니다:

sudo vim /etc/apache2/group.file

그런 후 다음 줄을 복사하고 붙여넣습니다:

usergroup:user

10. 다음 명령을 사용하여 Apache HTTP Server를 다시 시작합니다.

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>

 

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

프록시 연결(모든 트래픽)

ESET PROTECT는 프록시에 인증이 필요한 경우 프록시 연결을 지원하지 않습니다. 고유한 투명한 웹 프록시 솔루션을 사용할 수 있지만 여기서 언급한 것 외에 추가 구성이 필요할 수 있습니다. 프록시 구성에 다음 항목을 추가합니다(비밀번호는 하위 프록시에서만 작동됨).

<VirtualHost *:3128>

ProxyRequests On

ProxyRemote * http://IP_ADDRESS:3128

</VirtualHost>

ESET PROTECT 가상 어플라이언스에서 프록시 연결을 사용하는 경우 SELinux 정책을 수정해야 합니다. ESET PROTECT VA에서 터미널을 열고 명령을 실행합니다.

/usr/sbin/setsebool -P httpd_can_network_connect 1

많은 수의 클라이언트에 대해 HTTP 프록시 구성

64비트 Apache HTTP 프록시를 사용하는 경우 Apache HTTP Proxy의 스레드 제한을 늘릴 수 있습니다. Apache HTTP Proxy 폴더의 httpd.conf 구성 파일을 편집합니다. 파일에서 다음 설정을 찾아 클라이언트 수에 맞게 값을 업데이트합니다.

5000의 예시 값을 사용할 숫자로 대체합니다. 최대값은 32000입니다.

ThreadLimit 5000

ThreadsPerChild 5000

 
파일의 나머지 부분을 변경하지 마십시오.

에이전트 서버 연결을 전달하도록 Apache HTTP 프록시를 구성합니다

1.프록시 컴퓨터에서 파일 열기

i.Debian 배포
/etc/apache2/mods-available/proxy.conf

ii.Red Hat 배포
/etc/httpd/conf/httpd.conf

2.파일 끝에 다음 줄을 추가합니다.
AllowCONNECT 443 563 2222 8883 53535

3.프록시 컴퓨터에서 파일 열기

i.Debian 배포
/etc/apache2/apache2.conf

ii.Red Hat 배포
/etc/httpd/conf/httpd.conf

4.다음 줄을 찾습니다.
Listen 80
이 줄을 다음 줄로 변경합니다.
Listen 3128

5.프록시 구성(1단계)에서 IP 주소에 대한 제한 사항을 추가한 경우 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 서비스를 다시 시작합니다.

SELinux 설정

ESET PROTECT 가상 어플라이언스에서 프록시를 사용하는 경우 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