Sun Java System Web Proxy Server 4.0.8 관리 설명서

ACL 파일 및 ACL 파일 구문 정보

모든 ACL 파일은 특정 형식과 구문을 따라야 합니다. ACL 파일은 하나 이상의 ACL이 포함된 텍스트 파일입니다. 모든 ACL 파일은 단일 구문 버전 번호로 시작해야 합니다. 예:

version 3.0;

버전 줄은 명령줄 다음에 나타날 수 있습니다. Proxy Server는 구문 버전 3.0을 사용합니다. 명령줄 시작 부분에 # 기호를 사용하여 파일에 주석을 포함시킬 수 있습니다.

파일의 각 ACL은 경로, 자원 또는 명명 등 ACL 유형을 정의하는 문으로 시작됩니다.

경로 및 자원 ACL에는 와일드카드가 포함될 수 있습니다. 와일드카드에 대한 자세한 내용은 16 장템플리트 및 자원 관리을 참조하십시오.

유형 줄은 acl로 시작하며 큰따옴표로 유형 정보를 표시하고 그 뒤에 세미콜론을 넣습니다. 예:

acl "default";acl "http://*.*";

모든 ACL의 유형 정보는 서로 다른 ACL 파일인 경우에도 각기 고유한 이름이어야 합니다. ACL의 유형을 정의한 후 ACL과 함께 사용할 메소드를 정의하는 인증문을 하나 이상 추가할 수 있습니다. 또한 액세스를 허용 또는 거부할 사용자 및 컴퓨터를 정의하는 인증문을 포함할 수 있습니다. 다음 절에서는 이러한 인증문 구문에 대해 설명합니다.

인증문

ACL은 선택적으로 ACL을 처리할 때 서버가 반드시 사용해야 하는 인증 방법을 지정할 수 있습니다. 일반적으로 다음 세 가지 방법을 사용합니다.

Basic 및 Digest 방법을 사용하려면 사용자가 자원에 액세스하기 전에 사용자 이름과 비밀번호를 입력해야 합니다 .

SSL 방법의 경우 사용자에게 클라이언트 인증서가 있어야 합니다. 인증 받으려면 Proxy Server에 대해 암호화를 사용해야 하며 사용자의 인증서 발급자가 신뢰할 수 있는 인증 기관 목록에 있어야 합니다.

기본적으로 서버는 인증 방법을 지정하지 않은 모든 ACL에 대해 Basic 방법을 사용합니다. 서버의 인증 데이터베이스는 사용자가 전송한 Digest 인증을 지원해야 합니다.

각 인증 줄은 서버가 인증하는 속성(사용자, 그룹 또는 사용자 및 그룹 모두)을 지정해야 합니다. 다음은 ACL 유형 줄 다음에 표시되는 인증문으로, 데이터베이스 또는 디렉토리의 개별 사용자와 일치된 사용자에 대해 Basic 인증을 지정합니다.

authenticate(user) { method = "basic";};

다음 예에서는 SSL을 사용자 및 그룹용 인증 방법으로 사용합니다.

authenticate(user, group) { method = "ssl";};

다음 예에서는 사용자 이름이 sales로 시작하는 모든 사용자를 허용합니다.

allow (all) user = "sales*";

마지막 줄을 group = sales로 변경하면 그룹 속성이 인증되지 않으므로 ACL이 실패하게 됩니다.

권한 부여문

각 ACL 항목에는 하나 이상의 권한 부여문이 있습니다. 권한 부여문은 서버 자원에 대한 액세스를 허용 또는 거부할 사용자를 지정합니다.

권한 부여문 작성

권한 부여문을 작성하는 경우 다음 구문을 사용합니다.

allow|deny [absolute] (right[,right...]) attribute expression;

각 줄은 allow 또는 deny로 시작합니다. 규칙 계층 구조로 인해 첫 번째 규칙에서는 모든 사용자의 액세스를 거부한 다음 이후의 규칙에서는 사용자, 그룹 또는 컴퓨터의 액세스를 구체적으로 허용합니다. 예를 들어 /my_files 라는 디렉토리에 대해 모든 사용자의 액세스를 허용한 후, /my_files/personal 이라는 하위 디렉토리에 대해 일부 사용자에게만 액세스를 허용하는 경우 하위 디렉토리에 대한 액세스 제어가 제대로 적용되지 않습니다. 이는 /my_files 디렉토리에 액세스가 허용된 모든 사용자가 /my_files/personal 디렉토리에 액세스할 수 있기 때문입니다. 이러한 경우를 예방하려면 모든 사용자의 액세스를 거부한 후 일부 사용자에게 액세스를 허용하는 하위 디렉토리용 규칙을 만듭니다.

그러나 모든 사용자의 액세스를 거부하도록 기본 ACL을 설정하면 다른 ACL 규칙에는 "deny all" 규칙이 필요하지 않은 경우도 있습니다.

다음 줄은 모든 사용자의 액세스를 거부합니다.

deny (all) user = "anyone";

권한 부여문의 계층

ACL 계층은 자원에 따라 다릅니다. 서버는 특정 자원에 대한 요청을 받으면 해당 자원에 적용되는 ACL 목록을 만듭니다. 서버는 우선 obj.conf 파일의 check-acl문에 있는 명명된 ACL 목록을 추가합니다. 그런 다음 일치하는 경로와 자원 ACL을 추가합니다. 이 목록은 동일한 순서로 처리됩니다. "absolute" ACL문이 있지 않는 한 모든 문은 순서대로 평가됩니다. "absolute allow" 또는 "absolute deny"문이 "true"인 경우 서버는 처리를 중단하고 모든 결과를 승인합니다.

일치하는 ACL이 두 개 이상인 경우 서버는 일치하는 마지막 문을 사용합니다. 그러나 absolute문을 사용하는 경우 서버는 다른 일치에 대한 조회를 중단하고 absolute문이 포함된 ACL을 사용합니다. 동일한 자원에 대해 absolute문이 둘인 경우 서버는 파일의 첫 번째 문을 사용하고 일치되는 다른 자원에 대한 조회를 중단합니다.


version 3.0;acl "default";authenticate (user,group)
	{ prompt="Sun Java System Web Proxy Server";};
	allow (read,execute,list,info) user = "anyone";
	allow (write,delete) user = "all";acl "http://*.*";
	deny (all) user = "anyone";allow (all) user = "joe";

            

속성 표현식

속성 표현식은 사용자 이름, 그룹 이름, 호스트 이름 또는 IP 주소를 기준으로 허용 또는 거부할 사용자를 정의합니다. 다음 줄에서는 다른 사용자 또는 컴퓨터에 액세스 권한을 부여하는 방법에 대해 예를 들어 설명합니다.

또한 timeofday 속성을 사용하여 하루 중 시간(서버의 로컬 시간)에 따라 서버로의 액세스를 제한할 수 있습니다. 예를 들어 timeofday 속성을 사용하여 특정 사용자가 정해진 시간에만 액세스하도록 제한할 수 있습니다.

예를 들어 오전 4:00의 경우 0400, 오후 10:30의 경우 2230과 같이 시간을 지정하려면 24시간 형식을 사용합니다. 다음 예에서는 오전 8:00에서 오후 4:59 사이에 guests라고 하는 사용자 그룹에 대한 액세스를 제한합니다.

allow (read) (group="guests") and (timeofday<0800 or timeofday=1700);

또한 주중 요일에 따라 액세스를 제한할 수 있습니다. 다음과 같이 Sun, Mon, Tue, Wed, Thu, Fri, Sat 등의 세자리 약자를 사용하여 요일을 지정합니다.

다음 문은 premium 그룹의 사용자에게 항상 액세스를 허용합니다. discount 그룹의 사용자는 주말의 모든 시간과 주 중 오전 8시에서 오후 4:59를 제외한 모든 시간에 액세스할 수 있습니다.

allow (read) (group="discount" and dayofweek="Sat,Sun") or (group="discount" and (dayofweek="mon,tue,wed,thu,fri" and(timeofday<0800 or timeofday=1700)))or (group="premium");

표현식용 연산자

다양한 연산자를 속성 표현식에 사용할 수 있습니다. 괄호는 연산자의 순서를 변경할 때 사용합니다. 다음 연산자를 user, group, dnsip와 함께 사용할 수 있습니다.

다음 연산자를 timeofdaydayofweek와 함께 사용할 수 있습니다.

기본 ACL 파일

설치 후 server_root/httpacl/generated.proxy- serverid.acl 파일이 서버용 기본 설정을 제공합니다. 사용자 인터페이스에서 설정이 만들어질 때까지 서버는 작업 파일 genwork.proxy- serverid.acl을 사용합니다. ACL 파일을 편집할 때 genwork 파일을 변경할 수 있으며, 그런 후 Proxy Server를 사용하여 변경 사항을 저장 및 적용할 수 있습니다.

일반 구문 항목

입력 문자열에는 다음 문자를 포함할 수 있습니다.

그 외 문자는 큰따옴표로 묶어야 합니다.

단일문은 한 줄에 위치해야 하며 세미콜론으로 끝나야 합니다. 복수문은 대괄호([]) 안에 넣습니다. 항목 목록은 반드시 쉼표로 분리하고 인용 부호(") 안에 넣어야 합니다.