LINUX
2018.11.08 / 18:11

[리눅스]Proxy 서버 구축

hanulbit
추천 수 54
※ 설치 하기에 앞서 Proxy Server 에 대해 알아보겠습니다.

▶ Proxy Server 란?
    ▷ 일종의 대리인 이다. 클라이언트가 서버로부터 웹 페이지를 요청할 때, 그 요청을 Proxy 서버가 받고 다시 서버에게 전달한다. 서버는 클라이언트에게 응답을 Proxy 서버가 받은 후 클라이언트에게 전달한다.

▶ Proxy Server 를 사용 하는 이유?
    ▷ 서버 대역폭의 절감
    ▷ 보안강화
    ▷ 웹 서버 속도 증가
    ▷ 인터넷의 접속제한 여부 설정으로 인한 유해사이트 접근제어

▶ Squid 란?
    ▷ 리눅스에서 사용하는 프록시 서버 프로그램.
    ▷ HTTP, FTP 캐싱, DNS 검색 지원
    ▷ http://www.squid-cache.org 에서 Squid 버젼 등을 확인 및 다운 받을수 있다.

▶ Squid 를 사용 하는 이유?
    ▷ 웹서버 성능을 극대화하고 httpd 가속서버로 구성
    ▷ 일반적인 프록시 캐싱서버로 구성하여 조직내의 모든 사용자들로 하여금 Squid 를 통해서만 인터넷에 접근 통제
    ▷ 보안효과, 시스템 자체의 속도 향상
    ▷ 다른 응용프로그램의 불필요

▶ squid.conf
    ▷ squid 프로그램의 설정파일
    ▷ 웹 가속모드 설정, 프록시 캐싱모드 설정 등등 성능향상을 위한 설정들이 많다


<실습>

※ 설치환경 : CentOS 6.5

1. 리눅스에서 사용하는 프록시 서버 프로그램인 squid 를 사용하기 위해 설치 되여 있는지 확인 한다.


2. squid 를 설치한다.


3. 설치 확인


4. 설치 후 설정을 하기 위해 vi /etc/squid/squid.conf 파일을 실행한다.


5. 아래의 사진 두장은 squid.conf 파일 내용 이다. 주요 설정 옵션들을 확인하겠다.

▶ acl(Access Control List)
    ▷ 접근제어목록
    ▷ acl 붙은 것들은 모두 접근제어를 하겠다는 의미이다.
▶ acl Safe_ports port ...
    ▷ 안전한 포트들은 예외를 시켜주는 부분이다.
▶ http_access allow manager localhost
    ▷ acl 의 이름이 manager 이거나 localhost 이면 http_access 접속을 허용 한다.
▶http_access deny manager
    ▷ acl 의 이름이 manager 이면 http_access 접속을 거부 한다.



▶ http_access allow localnet
    http_access allow localhost
    ▷ localnet, localhost 호스트에 부여된 대역에 http_access 허용하겠다.
▶ # Squid normally listens to port 3128
    http_port 3128
    ▷ squid 는 기본적으로 port 3128 를 사용한다. 다른 포트를 사용하려면 이 부분을 수정 하면 된다. 일반적으로 8080을 많이 사용한다.
▶ # Uncomment and adjust the following to add a disk cache directory.
    # cache_dir ufs /var/spool/squid 100 16 256
    ▷ 캐시 디렉토리를 생성하겠다는 의미. 경로까지 나와있다. 수정 역시 가능하다.
▶ # Add any of your own refresh_pattern entries above these.
    refresh_pattern ^ftp:            1440        20%      10080 
    ...
    ▷ 캐시의 보존 기간을 설정하기 위한 부분
    ▷ refresh_pattern [-i] regex : 1. min  2. percent  3. max  4. [options]
        1. 정규식을 사용하여 설정되는 파일(패턴)을 지정합니다. 대 / 소문자를 구분하므로 비활성화 하려면 -i 옵션을 사용해야 함
        2. 단위는 분, 저장기간(캐시 서버에서 캐시 되는 시간)이 설정 값 이하의 경우는 (아직 새롭기 때문에) 캐시 개체를 반환
        3. 단위는 %
        4. 단위는 분. 저장 시간이 설정보다 긴 경우 ( 혹은 오래된) 원래 서버로 부터 새 복사본을 검색하여 반환
        5. 기타 옵션 설정

(※ 참고 : http://openature.com/554)

6. 웹 사이트 주소와 키워드를 차단하기 위한 옵션도 있다.

▶ acl blocksites dstdomain "/etc/squid/blocksites"
    acl blockkeyword url_regex -i "/etc/squid/blockkeyword.txt"
    http_access deny blocksites
    http_access deny blockkeyword

7. 그런 후 /etc/squid 에 각각 blocksites 와 blockkeyword.txt 파일을 만든다.
▶ vi /etc/squid/blocksites
    vi /etc/squid/blockkeyword.txt

8. 아래 사진은 blocksites 파일 이다. 테스트로 네이버를 차단 해보기 위해 네이버 도메인 주소를 입력한다.


9. 네이버 접속시 Access Denied 가 나타나면서 에러가 발생한다. 즉, squid 에서 차단 했다는 것.

10. 프록시 서버에 남는 캐쉬 정보들 역시 있다.
▶ cd /var/spool/squid 이다. 물론 /etc/squid/squid.conf 파일에서 주석처리 되여있는 옵션을 해제 하여야 생성된다.
    중요한점은.. 절대 삭제하시면 안됩니다.. 꼬여요..