| |
| Sun Java System Web Proxy Server 4 .0.1 관리 설명서 | |
13 장
프록시를 통한 컨텐트 필터링이 장에서는 URL을 필터링하여 프록시 서버에서 해당 URL에 대한 액세스 또는 클라이언트로 반환하는 HTML과 JavaScript 컨텐트의 수정을 허용하지 않도록 하는 방법을 설명합니다. 또한 이 장에서는 클라이언트가 사용하는 웹 브라우저(사용자 에이전트)를 기반으로 프록시를 통한 액세스를 제한하는 방법을 설명합니다.
프록시 서버에서는 URL 필터 파일을 사용하여 서버가 지원하는 URL을 결정할 수 있습니다. 예를 들어 지원할 URL을 와일드카드 패턴으로 직접 입력하는 대신 제한하려는 URL이 포함된 텍스트 파일을 하나 만들거나 구매할 수 있습니다. 이 기능으로 하나의 URL 파일을 만들어 서로 다른 다양한 프록시 서버에서 사용할 수 있습니다.
MIME 유형을 기반으로 URL을 필터링할 수도 있습니다. 예를 들어 프록시에서 HTML 및 GIF 파일을 캐시하고 보낼 수 있지만 컴퓨터 바이러스의 위험이 있는 이진 파일 또는 실행 파일은 가져오지 못하게 할 수 있습니다.
이 장은 다음 내용으로 구성되어 있습니다.
URL 필터링URL 파일을 사용하여 프록시 서버에서 가져올 내용을 구성할 수 있습니다. URL 목록을 설정하면 Proxy Server가 항상 지원할 부분과 지원하지 않을 부분을 지정할 수 있습니다.
예를 들어 어린이용 컨텐트를 제공하고 프록시 서버를 실행하는 인터넷 서비스 제공자는 어린이가 볼 수 있도록 승인된 URL의 목록을 설정할 수 있습니다. 이 경우 프록시 서버가 승인된 URL만 가져오도록 할 수 있습니다. 클라이언트가 지원되지 않는 URL로 이동하려고 하면 프록시에서 기본 "Forbidden" 메시지를 반환하도록 하거나 또는 클라이언트가 해당 URL을 액세스할 수 없는 이유를 설명하는 사용자 지정 메시지를 만들 수 있습니다.
URL을 기반으로 액세스를 제한하려면 허용 또는 제한하려는 URL 파일을 만들어야 합니다. Server Manager에서 이 작업을 수행할 수 있습니다. 일단 파일이 만들어지면 이러한 제한 사항을 설정할 수 있습니다. 다음 절에서 이 절차를 설명합니다.
URL 필터 파일 만들기
필터 파일은 URL 목록을 포함한 파일입니다. 프록시 서버가 사용하는 필터 파일은 다음과 같은 패턴의 URL이 행으로 나열된 일반 텍스트 파일입니다.
프로토콜://호스트:포트/경로/파일이름
URL을 이루는 세 부분인 프로토콜, 호스트:포트, 경로/파일이름에서 모두 정규식을 사용할 수 있습니다. 예를 들어 netscape.com 도메인으로 가는 모든 프로토콜에 대한 URL 패턴을 만들려면 파일에 다음과 같은 행을 넣으면 됩니다.
.*://.*\.example\.com/.*
이 행은 포트 번호를 지정하지 않은 경우에만 작동합니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
Server Manager를 사용하지 않고 직접 파일을 만들 때는 Server Manager 페이지를 사용해서 빈 파일을 만들고 텍스트를 추가하거나 정규식을 포함하는 텍스트로 대체하는 것이 편리합니다.
필터 파일을 만들려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Restrict URL Filter Access 링크를 누릅니다. Restrict URL Filter Access 페이지가 표시됩니다.
- Create/Edit 버튼 옆의 드롭다운 목록에서 New Filter를 선택합니다.
- 드롭다운 목록 오른쪽에 있는 텍스트 입력란에 필터의 이름을 입력하고 Create/Edit 버튼을 누릅니다. Filter Editor 페이지가 표시됩니다.
- 스크롤 가능한 Filter Content 텍스트 입력란에 URL이나 URL의 정규식을 입력합니다. Reset 버튼을 누르면 이 필드의 모든 텍스트를 지웁니다.
정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- OK를 누릅니다.
프록시 서버에서 파일을 생성하고 Restrict URL Filter Access 페이지로 돌아갑니다. 필터 파일은 proxy-serverid/conf_bk 디렉토리에 만들어집니다.
필터 파일에 대한 기본 액세스 설정
사용할 URL이 담긴 필터 파일이 만들어지면, 이 URL에 대한 기본 액세스를 설정할 수 있습니다.
필터 파일에 대한 기본 액세스를 설정하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Restrict URL Filter Access 링크를 누릅니다. Restrict URL Filter Access 페이지가 표시됩니다.
- 필터와 함께 사용할 템플릿을 선택합니다.
일반적으로 전체 프록시 서버에 사용할 필터 파일을 만들지만 HTTP용과 FTP용 필터 파일을 구분할 때도 있습니다.
- URL Filter To Allow 목록을 사용하여 프록시 서버에서 지원할 URL이 포함된 필터 파일을 선택합니다.
- URL Filter To Deny 목록을 사용하여 프록시 서버에서 액세스를 거부할 URL이 포함된 필터 파일을 선택합니다.
- 거부된 URL을 요청한 클라이언트에게 프록시 서버가 반환할 텍스트를 선택합니다. 선택할 수 있는 옵션은 다음 두 가지 입니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
컨텐트 URL 재작성Proxy Server 4에는 클라이언트로 반환되는 컨텐트를 확인하고 패턴(예: URL)을 다른 문자열로 대체할 수 있는 기능이 있습니다. 구성할 수 있는 매개 변수는 원본 문자열과 대상 문자열, 두 가지입니다. Proxy Server는 원본 문자열과 일치하는 텍스트를 찾아 대상 문자열에 있는 텍스트로 대체합니다. 이 기능은 역방향 프록시 모드에서만 작동합니다.
URL 재작성 패턴을 만들려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Set Content URL Rewriting 링크를 누릅니다. Set Content URL Rewriting 페이지가 표시됩니다.
- 드롭다운 목록에서 리소스를 선택하거나 정규식을 지정합니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- Source Pattern 텍스트 입력란에 원본 문자열을 지정합니다.
- Destination Pattern 텍스트 입력란에 대상 문자열을 지정합니다.
- MIME Pattern 텍스트 입력란에 컨텐트 유형을 지정합니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
URL 재작성 패턴을 편집하려면 다음을 수행합니다.
URL 재작성 패턴을 삭제하려면 다음을 수행합니다.
특정 웹 브라우저에 대한 액세스 제한클라이언트의 웹 브라우저 유형과 버전에 기반하여 프록시 서버에 대한 액세스를 제한할 수 있습니다. 제한 사항은 모든 웹 브라우저가 요청을 할 때 사용하는 user-agent 헤더를 기반으로 적용됩니다.
클라이언트의 웹 브라우저에 기반하여 프록시에 대한 액세스를 제한하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Set User-Agent Restriction 링크를 누릅니다. Set User-Agent Restriction 페이지가 표시됩니다.
- 드롭다운 목록에서 리소스를 선택하거나 Proxy Server에서 지원하도록 하려는 브라우저에 대한 user-agent 문자열에 일치하는 정규식을 입력합니다. 두 개 이상의 클라이언트를 지정하려면 정규식을 괄호 안에 넣고 | 문자를 사용하여 여러 항목을 분리합니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- Allow Only User-Agents Matching 옵션을 선택합니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
요청 차단업로드 컨텐트 유형에 기반하여 파일 업로드 및 다른 요청을 차단해야 하는 경우가 있습니다.
MIME 유형에 기반하여 요청을 차단하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Set Request Blocking 링크를 누릅니다. Set Request Blocking 페이지가 표시됩니다.
- 드롭다운 목록에서 리소스를 선택하거나 Regular Expression 버튼을 누르고 정규식을 입력한 다음 OK를 누릅니다.
- 차단하고자 하는 요청 유형에 해당하는 라디오 버튼을 누릅니다. 다음 옵션에서 선택하십시오.
- Disabled - 요청 차단을 사용하지 않도록 합니다.
- Multipart MIME (File Upload) - 모든 파일 업로드를 차단합니다.
- MIME Types Matching Regular Expression - 입력한 정규식과 일치하는 MIME 유형에 대한 요청을 차단합니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- 모든 클라이언트의 요청을 차단할지, 입력한 정규식과 일치하는 user-agent만을 차단할지 선택합니다.
- 요청을 차단할 메소드를 라디오 버튼에서 선택합니다. 옵션은 다음과 같습니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
송신 헤더 제거보안 상의 이유로 요청에서 송신 헤더를 제거하도록 프록시 서버를 구성할 수 있습니다. 예를 들어, From 헤더를 제거하여 사용자의 전자 메일 주소가 유출되지 않도록 하거나, User-Agent 헤더를 필터링하여 외부 서버가 사용자의 회사에서 사용하는 웹 브라우저의 종류를 알 수 없도록 할 수 있습니다. 또한 요청이 인터넷으로 전달되기 전에 로깅이나 클라이언트 관련 헤더를 제거하여 인트라넷 내에서만 사용되도록 할 수 있습니다.
이 기능은 프록시 자체에서 특수하게 처리 되거나 생성되는 헤더 또는 프로토콜의 적절한 작동을 위해 필요한 헤더(예: If-Modified-Since나 Forwarded)에 대해서는 효과가 없습니다.
전달된 헤더가 프록시에서 외부로 유출되는 것을 막을 방법은 없지만, 이는 보안상의 문제는 되지 않습니다. 원격 서버가 연결되는 프록시 호스트를 감지하고, 프록시 체인에서, 내부 프록시에서 전달된 헤더는 외부 프록시에 의해 표시되지 않을 수 있기 때문입니다. 내부 프록시나 호스트 이름이 원격 서버에 공개되지 않도록 하려면 이 방식으로 서버를 설정하면 됩니다.
송신 헤더를 제거하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Suppress Outgoing Headers 링크를 누릅니다. Suppress Outgoing Headers 페이지가 표시됩니다.
- 제거할 요청 헤더 목록을 쉼표로 구분하여 Suppress Headers 텍스트 입력란에 입력합니다. 예를 들어, From과 User-Agent 헤더를 제거하려면 텍스트 입력란에 from,user-agent를 입력합니다. 헤더를 입력할 때는 대소문자를 구분할 필요가 없습니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
MIME 유형별 필터링MIME 유형에 일치하는 특정 파일을 차단하도록 프록시 서버를 구성할 수 있습니다. 예를 들어, 프록시 서버에서 실행 파일이나 이진 파일을 차단하도록 설정하여 프록시 서버를 사용하는 모든 클라이언트가 혹시 있을지 모르는 컴퓨터 바이러스를 다운받을 수 없도록 할 수 있습니다.
프록시 서버가 새 MIME 유형을 지원하도록 하려면 Server Manager에서 Preferences > Create/Edit MIME Types를 선택하고 해당 유형을 추가합니다. MIME 유형을 만드는 방법에 대한 자세한 내용은 새 MIME 유형 만들기를 참조하십시오.
필터링할 MIME 형식을 템플릿과 결합하여 특정한 URL에서의 특정한 MIME 형식을 차단할 수 있습니다. 예를 들어 .edu 도메인 내의 컴퓨터에서 유입되는 실행 파일을 차단할 수 있습니다.
MIME 유형별로 필터링하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Set MIME Filters 링크를 누릅니다. Set MIME Filters 페이지가 표시됩니다.
- MIME 유형을 필터링하는 데 사용할 템플릿을 선택하거나 또는 전체 서버를 편집 중인지 확인합니다.
- Current filter 텍스트 입력란에 차단하려는 MIME 유형과 일치하는 정규식을 입력할 수 있습니다.
예를 들어, 모든 응용 프로그램을 필터링하려면 정규식으로 application/.* 을 입력합니다. 이는 모든 응용 프로그램 유형에 대해 각 MIME 형식을 검사하는 것보다 빠른 방법입니다. 정규식은 대소문자를 구별하지 않습니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- 필터링하려는 MIME 유형을 선택합니다. 클라이언트가 차단된 파일에 대한 액세스를 시도하면 프록시 서버는 "403 Forbidden" 메시지를 반환합니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
HTML 태그별 필터링프록시 서버에서 파일을 클라이언트로 전달하기 전에 필터링할 HTML 태그를 지정할 수 있습니다. 이 기능을 사용하면 HTML 파일에 포함된 Java 애플릿이나 JavaScript와 같은 개체를 필터링할 수 있습니다. HTML 태그를 필터링하려면 HTML 태그의 시작과 끝을 지정합니다. 이렇게 하면 프록시는 파일을 클라이언트로 보내기 전에 해당 태그 사이의 모든 개체와 텍스트를 빈칸으로 대체합니다.
HTML 태그를 필터링하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Set HTML Tag Filters 링크를 누릅니다. Set HTML Tag Filters 페이지가 표시됩니다.
- 수정하려는 템플릿을 선택합니다. HTTP를 선택할 수도 있고 특정 URL(예: .edu 도메인 내의 호스트에 있는 URL)만 지정하는 템플릿을 선택할 수도 있습니다.
- 필터링할 모든 기본 HTML 태그의 필터 확인란을 선택합니다. 기본 태그에는 다음이 포함됩니다.
- 이 밖에도 필터링할 HTML 태그를 직접 입력할 수 있습니다. 입력할 때는 시작과 끝 HTML 태그를 모두 입력해야 합니다.
예를 들어 형식을 필터링할 때는 Start Tag 텍스트 상자에 FORM을(대소문자를 구별하지 않습니다), End Tag 텍스트 상자에 /FORM을 입력합니다. 필터링할 태그가 OBJECT 및 IMG와 같은 끝 태그가 없는 경우, End Tag 텍스트 상자는 비워둡니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
내용 압축으로 서버 구성Proxy Server는 HTTP 내용 압축을 지원합니다. 내용 압축을 사용하면 클라이언트로 전송 속도가 빨라지고 하드웨어 비용을 증가시키지 않고 더 큰 용량의 내용을 서비스할 수 있습니다. 내용 압축은 내용 다운로드 시간을 떨어뜨리지만 전화 접속 및 높은 수준의 트래픽 연결 사용자는 더 많은 혜택을 누릴 수 있습니다.
내용 압축을 사용하여 Proxy Server는 압축된 데이터를 전송하고 브라우저에게 전송 중에 데이터를 압축 해제할 것을 지시하여 전송된 데이터 양을 감소시키고 페이지 표시 속도를 높입니다.
필요 시 내용 압축으로 서버 구성
전송 중에 전송 데이터를 압축하도록 Proxy Server를 구성할 수 있습니다. 동적으로 생성된 HTML 페이지는 사용자가 요청할 때까지는 존재하지 않습니다.
필요 시 내용을 압축하도록 서버를 구성하려면 다음을 수행합니다.
- Server Manager에 액세스하고 Filters 탭을 누릅니다.
- Compress Content on Demand 링크를 누릅니다. Compress Content on Demand 페이지가 표시됩니다.
- 드롭다운 목록에서 리소스를 선택하거나 정규식을 지정합니다. 정규식에 대한 자세한 내용은 템플릿 및 리소스 관리에 있는 "정규식에 대한 이해" 항목을 참조하십시오.
- 다음 정보를 지정합니다.
- Activate Compress Content on Demand? 서버가 선택된 리소스에 대해 미리 압축된 내용을 서비스해야 하는지 선택합니다.
- Vary Header. Vary:Accept-encoding 헤더를 삽입할지 여부를 지정합니다. yes 또는 no를 선택합니다. yes로 설정하면 압축된 버전의 파일이 선택되는 경우 항상 Vary:Accept-encoding 헤더가 삽입됩니다.
no로 설정하면 Vary:Accept-encoding헤더가 삽입되지 않습니다.
기본값은 yes로 설정됩니다.
- Fragment Size. 압축 라이브러리(zlib)가 한 번에 압축할 양을 제어하는 데 사용하는 메모리 조각의 크기를 바이트 단위로 지정합니다. 기본값은 8096입니다.
- Compression Level. 압축의 수준을 지정합니다. 1 ~ 9 사이 값을 선택합니다. 값 1은 속도가 최고이고 9는 압축율이 최고입니다. 기본값은 6으로 속도와 압축율이 조화된 값입니다.
- OK를 누릅니다.
- Restart Required를 누릅니다. Apply Changes 페이지가 표시됩니다.
- Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.