RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'proxy'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. 프록시의 개요
  프록시서버는 보통 네트워크 속도가 느린 환경에서 보다 빠른 인터넷을 이용하기 위해 사용한다.
서비스를 하는 서버에 캐시서버를 만들어 자주 방문하는 사이트를 캐시서버에 저장하여 사용자들이
똑같은 사이트를 접속을 시도할 때 캐시서버의 저장된 데이터 정보를 전달해 줌으로써 속도를 빠르
게 한다. 또한 접근통제 등의 네트워크 보안을 유지할 때도 사용할 수 있다.


2. Squid의 개요 및 설치
(1) 개요: 스퀴드는 리눅스에서 사용하는 프록시서버 프로그램으로 HTTP,FTP캐싱을 지원하고, DNS
          검색 등을 지원한다. 관련사이트는 http://www.squid-cache.org이다.
(2) 설치하기
   1) 최신버전중에서 안정버전으로 /usr/local/src디렉토리에 다운로드한다.
     (squid-2.5.STABLE1.tar.gz)
   2) 소스의 압축을 푼다
     [root@mybestone src]# tar zxvf squid-2.5.STABLE1.tar.gz
   3) 압축이 풀린 디렉토리로 이동한다.
     [root@mybestone src]# cd squid-2.5.STABLE1
   4) 설치될 디렉토리만 설정한다.'
     [root@mybestone squid-2.5.STABLE1]# ./configure --prefix=/usr/local/squid
   5) 컴파일한다.
     [root@mybestone squid-2.5.STABLE1]# make
   6) 설치한다.
     [root@mybestone squid-2.5.STABLE1]# make install

3. Squid설치후 생성되는 디렉토리
(1) bin : squid실행과 관련된 스크립트 프로그램이 있다.
(2) etc : squid관련 환경설정파일인 squid.conf가 위치하고 있다.
(3) libexec : 서버운영과 관련된 스크립트 파일이 있는 디렉토리이다.
(4) lib : 프로그램 개발에 필요한 라이브러리 정보를가진다.
(5) man : man명령관련 정보파일을 가진다.
(6) sbin : squid 서버를 실행하고 관리하는 squid라는 명령이 위치하는 디렉토리이다.
(6) share : squid를 사용하면서 생기는 에러 메시지에 대한 정보 파일을 가진다.
(7) var : 로그 파일에 대한 정보를 가진다.

3. Squid 설정
(1) 환경설정파일: 환경설정파일은 squid.conf이다. 소스로 컴파일했을 경우에 전체경로는 /usr/loc
                  al/squid/etc/squid.conf가 된다.
(2) 주요환경설정
   1) http_port 3128
       => 스퀴드 프록시서버의 서비스포트를 지정해준다. 기본값은 3128이다.
   2) cache_mem 8 MB
       => 스퀴드서버에서 사용하는 캐시 사이즈를 설정해준다.
   3) maximum_object_size 4096 KB
       => 캐시 서버에 저장될 수 있는 객체 즉 파일의 크기를 제한해주는 옵션이다.
   4) cache_dir ufs /usr/local/squid/cache 100 16 256
       => 캐시가 저장될 경로를 지정해주는 항목으로 크기와 생성될 하위 1차 및 2차 디렉토리의 수
         를 지정한다. 현재 설정은 /usr/local/squid/cache디렉토리에 캐시데이터들이 최대 100메가
         까지 저장될 수 있고, 캐시가 저장될 1차디렉토리는 16개로 설정하고 그 밑에 2차디렉토리
         수를 256개로 설정한다.
   5) cache_access_log /usr/local/squid/logs/access.log
       => 접근로그를 기록하는 파일을 설정한다.
   6) cache_log /usr/local/squid/logs/cache.log
       => 캐쉬설정에 관한 로그를 기록하는 파일을 설정한다.
   7) cache_store_log /usr/local/squid/logs/store.log
       => 저장되는 로그를 기록하는 파일을 설정한다.
   8) debug_options ALL,1
       => 스퀴드가 동작할 때 오류체크 기능을 사용하여 로그파일에 기록할 수 있게 하는 옵션이다.
         현재 설정은 모든 항목에 대해 기본적인 값만 로그에 남도록 설정한 것이다.
   9) acl all src 0.0.0.0/0.0.0.0
       => ACL은 Access Control의 약자로 프록시 서버에 접근할 수 있는 범위를 설정하는 옵션으로
         http_access와 함께 사용해야 한다. all의 범위는 src옵션으로 지정한 범위는 속하는 네트
         워크를 지정한다. 현재처럼 0.0.0.0/0.0.0.0으로 설정하면 모든 네트워크에 대해서 프록시
         서버에 접근할 수 있다. 자신의 프록시서버에 제한없이 모든 네트워크들이 접근할 수 있도
         록 설정한 후 httpd_access로 프록시 서버사용권한을 부여할 수 있다.
   10) http_access deny all
       => 클라이언트가 프록시 서버에 접속을 허용할 것인지 거부할 것인지 결정해주는 옵션으로
         acl과 함께 사용된다. http_access다음에 all 또는 deny를 지정하고 acl리스트 중 하나를
         지정해 사용한다.
     사용예)
       ㄱ. acl all src 0.0.0.0/0.0.0.0
           http_access allow all
            => 모든 네트워크들이 자신의 프록시서버를 이용할 수 있게 지정한 것이다. 이 경우에는
              네트워크 트래픽을 초래할 수 있다.
       ㄴ. acl members src 192.168.3.0/255.255.255.0
           acl all src 0.0.0.0/0.0.0.0
           http_access allow members
           http_access deny all
            => 192.168.3.0네트워크주소를 members범위로 규정하여 http_access에서 프록시서버
              접속을 허용하고, 다른 네트워크에 대해서는 접속을 거부한다.
   11) cache_mgr webmaster
        => 캐시서버의 관리자 계정을 지정한다.
   12) cache_effective_user nobody
       cache_effective_group nogroup
        => 스퀴드 서버를 작동시킬 유저와 그룹명을 지정해준다. 보통 둘다 nobody로 설정한다.

4. Squid 실행
(1) 데몬 실행
   1) /usr/local/squid/sbin/squid -z
     => 스왑디렉토리를 초기화한다.
   2) /usr/local/squid/sbin/squid
     => 데몬을 띄운다.
(2) 데몬실행시 오류분석
   1) 서버 호스트네임이 없는 경우: squid -z 실행시 나타난다.
     [root@www193 squid]# sbin/squid -z
     FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'

     Squid Cache (Version 2.5.STABLE1): Terminated abnormally.
     CPU Usage: 0.008 seconds = 0.002 user + 0.006 sys
     Maximum Resident Size: 0 KB
     Page faults with physical i/o: 245
     Aborted
      => (해결책)
        squid.conf 에 'visible_hostname 호스트이름'을 지정해 준다.
   2) cache 디렉토리가 없는 경우 : squid -z 실행시 나타난다.
     [root@mybestone /usr/local/squid/sbin]# ./squid -z
     2002/12/02 00:28:18| Creating Swap Directories
     FATAL: Failed to make swap directory /usr/local/squid/var/cache: (13) Permission denied
     Squid Cache (Version 2.5.STABLE1): Terminated abnormally.
     CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
     Maximum Resident Size: 0 KB
     Page faults with physical i/o: 9
      => 해결책
        ㄱ. mkdir /usr/local/squid/var/cache 해서 디렉토리를 생성한다.
        ㄴ. chmod 777 /usr/local/squid/var/cache해서 권한을 설정한다.
   3) logs디렉토리에 권한이 없는경우
     ㄱ.원인: squid 데몬을 띄운 후 클라이언트가 웹브라우저를 띄우고 프록시 서버를 실제적으로
             사용하면 squid 데몬이 죽는 경우가 발생한다. 직접적인 로그기록(프로세스아이디 등)
             을 할 수 없기 때문에 발생한다.
     ㄴ. 해결책 : nobody가 로그를 기록할 수 있도록 설정한다.
        chmod 777 /usr/local/squid/var/logs

5. Squid 서버 실행절차

(1) squid.conf에서 환경설정을 한다.
    vi /usr/local/squid/etc/squid.conf
(2) cache 영역으로 사용할 공간을 /usr/local/squid/var디렉토리밑에 생성한다.
    mkdir /usr/local/squid/var/cache
(3) 모든 사람들이 접근할 수 있도록 허가권을 설정한다.
    chmod 777 /usr/local/squid/var/cache
(4) 스왑디렉토리(캐시용 디렉토리)를 초기화한다.
    /usr/local/squid/sbin/squid -z
(5) 데몬을 실행한다.
    /usr/local/squid/sbin/squid

6. 클라이언트에서 프록시서버 설정하기
(1) 개요
  웹브라우저마다 다르므로 각 프로그램의 환경설정에서 해주면 된다.
(2) 설정
   1) Explorer
     ㄱ. [도구]-[인터넷옵션]-[연결]에서 LAN설정을 선택한다.
     ㄴ. [프록시서버]에서 프록시서버사용에 체크한다.
     ㄷ. 주소란에 프록시서버 IP주소를 적고 포트는 3128을 적는다.
     ㄹ. [고급]버튼을 클릭하여 [모든 프로토콜에 같은 프록시서버 사용]을 선택한다.
   2) 네스케이프
     ㄱ. [Edit]-[Preferences]-[Avanced]-[Proxies]항목을 선택한다.
     ㄴ. [Manual proxy configuration]를 클릭한 다음 [View]버튼을 누른다.
     ㄷ. 서버와 포트번호를 입력한다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31