티스토리 뷰

dev/aws

EC2에 proxy 서버 설정하기

동큐 2019. 12. 11. 17:14

서비스 개발 중 한국 AWS ip 주소 영역이 막혀있는 경우가 있어 어떻게 할까 고민해 보았습니다.

 

서비스 리전 변경을 변경하는 건 속도 문제도 있고 기존 설정을 모두 이동해야 하므로 

 

다른 리전에 proxy 서버를 설정하여 우회하기로 결정하였습니다.

 

EC2에 설정할 proxy 우회 프로그램은 tinyproxy(로컬 테스트용)와 squid(운영환경용) 두가지로 결정하였으며 

 

아래와 같이 셋팅하였습니다.

 

EC2 인스턴스 추가 및 권한 설정 등의 설명은 제외합니다.

 

■ Tinyproxy

1. 설치

sudo su
apt-get update
apt-get install tinyproxy

2. Configuration

nano /etc/tinyproxy/tinyproxy.conf

 (우분투 14 설치할 경우 /etc/tinyproxy.conf)

  • Allow section 찾아서 local ip 접속 허용 문구 추가 (EC2 설치하는 경우 EC2 ip)

: Allow xxx.xxx.xxx.xx

  • 유동 ip 사용하는 경우 영역대로 설정 가능 ( . 91.*.*.* 영역대인 경우 )

: Allow 91.0.0.0/8

  • 또는 아래와 같이 level 아래로도 설정 가능

: Allow 91.120.0.0/16

  • tinyproxy 기본 port 8888 이며 원할 경우 설정파일에서 찾아서 변경

: Port 8888

  • 설정 저장 (ctrl+O, ctrl+X) 서버 restart
/etc/init.d/tinyproxy restart

3. 크론탭 설정

  • 메모리 부족을 방지하기 주기적으로 proxy service restart
crontab -e

0 2 * * * /etc/init.d/tinyproxy restart

 

  1. EC2 보안그룹에서 tinyproxy 사용하는 port 개방한다. (default: 8888)
  • 위치무관으로 개방할 경우 악용되어 요금폭탄을 맞을 수 있으므로 안심할 수 있는 주소 또는 보안그룹에만 개방한다.

■ Squid

1. 설치

sudo su

apt-get update && apt-get install squid aparche2-utils -y

 

2. Configuration

nano /etc/squid/squid.conf

- http deny all 찾아서 http allow all 변경 (파일 내용이 매우 많으므로 winscp line 찾는 것을 추천)

- ctrl+O 저장 ctrl+X 수정 끝내기

 

3. 특정 domain block 경우 아래와 같이 처리

nano /etc/squid/blocked_sites.acl

- 파일에 차단할 도메인 추가 ( .google.com )

- 저장 수정 끝내기

nano /etc/squid/squid.conf 후 아래 문구 입력

acl blocked_url dstdomain "/etc/squid/blocked_sites.acl" 
http_access deny blocked_url

- 저장 edit 모드 끝내기

-  (서버 restart)

service squid restart

 

4. proxy user 설정

touch /etc/squid/passwd

htpasswd /eetc/squid/passwd 사용자ID

- pw 입력

nano /etc/squid/squid.conf 후 아래 문구 입력

: auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd

 acl squid_users proxy_auth REQUIRED

 http_access allow squid_users

저장 서버 restart

 

5. port 변경

- 기본 port 3128

nano /etc/squid/squid.conf

#http_port 3128 찾아서 http_port XXXX 변경

- 저장 서버 restart

 

6. 크론탭 설정

- 메모리 부족을 방지하기 주기적으로 proxy service restart

crontab -e

0 2 * * * service squid restart

7. EC2 보안그룹에서 tinyproxy 사용하는 port 개방한다. (default: 3128)

- id/pw 가 설정되어 있으므로 위치무관으로 개방해야만 하는 경우 유용

댓글