ArcGIS Enterprise 포털에는 일반적인 보안 문제를 검사하는 Python 스크립트 도구(portalScan.py)가 함께 제공됩니다. 이 도구는 포털의 보안 환경 구성을 위한 몇 가지 모범 사례를 기반으로 문제를 검사합니다. 이 도구는 여러 조건 또는 구성 등록정보를 분석하여 3가지 단계의 심각도(Critical, Important, Recommended)로 나눕니다. 이러한 조건에 대한 설명은 다음과 같습니다.
ID | 심각도 | 등록정보 | 설명 |
---|---|---|---|
PS01 | Critical | 프록시 제한 | 포털의 프록시 기능이 제한되는지를 결정합니다. 기본 설정에 따라 포털 프록시 서버는 모든 URL에 열립니다. 잠재적인 DoS(Denial of Service) 또는 SSRF(Server Side Request Forgery) 공격 가능성을 완화하기 위해서는 포털의 프록시 기능이 승인된 웹 주소로 제한해야 합니다. |
PS02 | Critical | 토큰 요청 | 쿼리 매개변수에 자격 증명이 포함된 토큰 생성 요청이 지원되는지를 결정합니다. 지원되는 경우 토큰 생성 시 사용자의 자격 증명을 URL의 일부로 제공할 수 있으며 이러한 자격 증명은 브라우저 기록이나 네트워크 로그를 통해 노출될 수 있습니다. 다른 응용프로그램에서 필요하지 않은 경우 이를 비활성화하는 것을 권장합니다. |
PS03 | Important | 포털 서비스 디렉터리 | 웹 브라우저를 통해 포털 서비스 디렉터리에 접근할 수 있는지를 결정합니다. 포털 항목, 서비스, 웹 맵, 그룹, 기타 리소스가 탐색되거나 웹 검색에서 찾아지거나 HTML 양식을 통해 쿼리될 수 있는 가능성을 줄이려면 이 옵션을 비활성화해야 합니다. |
PS04 | Important | 보안 통신 | 포털이 HTTPS를 통해서만 통신하는지를 확인합니다. 포털 내부 통신의 가로채기를 방지하려면 Web Adaptor를 호스팅하는 웹 서버와 포털을 SSL을 적용하도록 구성하는 것이 좋습니다. |
PS05 | Recommended | 빌트인 계정 등록 | 사용자가 포털 등록 페이지의 계정 생성 버튼을 클릭하여 빌트인 포털 계정을 생성할 수 있는지를 결정합니다. 기관별 계정을 사용하거나 모든 계정을 수동으로 생성하려면 이 옵션을 비활성화합니다. |
PS06 | Recommended | 익명 접근 | 익명 접근이 허용되는지를 결정합니다. 사용자가 포털에 자격 증명을 제공하지 않고는 콘텐츠에 접근하지 못하도록 하려면 익명 접근을 금지하도록 포털을 구성하는 것이 좋습니다. |
PS07 | 권장 | LDAP 아이덴티티 저장소 | 포털이 LDAP 아이덴티티 저장소로 구성되어 있으면 암호화된 통신이 사용되는지 여부를 확인합니다. 사용자 저장소 및 그룹 저장소 구성 매개변수에 나열된 ldapURLForUsers 및 ldapURLForRoles 등록정보에서 LDAPS를 사용하는 것을 권장합니다. |
PS08 | 권장 | 포털 SSL 인증서 | 포털에서 자체 서명된 인증서를 사용하는지 확인합니다. 포털과 통신하는 클라이언트의 웹브라우저 경고 또는 기타 예기치 않은 동작을 줄이기 위해 포트 7443에 바인딩된 CA 서명 SSL 인증서를 가져와서 사용하는 것을 권장합니다. |
PS09 | 권장 | 도메인 간 요청 | 도메인 간(CORS) 요청에 제한이 없는지 확인합니다. 알 수 없는 응용프로그램이 공유 포털 항목에 접속하는 가능성을 줄이기 위해 도메인 간 요청을 신뢰할 수 있는 도메인에서만 호스팅되는 응용프로그램으로 제한하는 것을 권장합니다. |
PS10 | 매우 중요 | 페더레이션된 서버 관리 URL | 포털에서 페더레이션된 서버의 관리자 URL에 연결될 수 있는지 여부와 이 URL에 사용된 SSL 인증서를 신뢰할 수 있는지를 확인합니다. 신뢰할 수 없거나 연결할 수 없는 경우 많은 포털 기능 및 작업에 실패합니다. |
PS11 | 권장 | 페더레이션된 서버 서비스 URL | 포털에서 페더레이션된 서버의 서비스 URL에 연결될 수 있는지 여부와 이 URL에 사용된 SSL 인증서를 신뢰할 수 있는지를 확인합니다. 신뢰할 수 없거나 연결할 수 없는 경우 포털은 계속 작동되지만 일부 포털 작업에 실패할 수 있습니다. |
PS12 | 권장 | 공개 콘텐츠 | 구성원이 공개적으로 콘텐츠를 공유할 수 없도록 포털이 구성되어 있으면 모든 사람과 계속 공유되는 항목이 나열됩니다. |
portalScan.py 스크립트는 <Portal for ArcGIS installation location>/tools/security 디렉터리에 있습니다. 동일한 디렉터리에 있는 portalScan Bash 스크립트를 사용하여 셸에서 스크립트를 실행합니다. 스크립트를 실행할 때는 매개변수를 하나 이상 지정할 수 있습니다.
portalScan.py 매개변수
다음 테이블에는 portalScan.py 매개변수에 대한 설명이 나와 있습니다.
매개변수 | 설명 |
---|---|
-n | 포털에 설치되어 있는 머신의 정규화된 도메인 이름(즉, gisportal.domain.com). 기본값은 스크립트를 실행하는 머신의 호스트 이름입니다. |
-u | 관리자 계정의 사용자 이름입니다. |
-p | 관리자 계정의 비밀번호입니다. |
-o | 보안 스캔 보고서가 저장되는 디렉터리입니다. 기본 디렉터리는 스크립트를 실행하는 폴더입니다. |
-t | 사용자 이름과 비밀번호 대신 토큰을 생성하여 사용할 수 있습니다. 토큰을 생성할 때는 portalScan을 Webapp URL 필드에 입력해야 합니다. 토큰을 제공하면 입력된 사용자 이름이나 비밀번호는 무시됩니다. |
--ignoressl | SSL 인증서 확인을 비활성화합니다. 10.7.1부터 스크립트는 기본 설정에 따라 모든 SSL 인증서를 확인합니다. Python이 인증서 발급자를 신뢰하지 않으면 스크립트가 완료되지 않습니다. 필요한 경우 이 매개변수를 지정하여 모든 인증서를 무시할 수 있습니다. |
-h 또는 -? | 스크립트를 실행할 때 지정할 수 있는 매개변수 목록을 출력합니다. |
예시: python portalScan.py -n portal.domain.com -u admin -p my.password -o C:\Temp
매개변수를 지정하지 않고 portalScan.py 스크립트를 실행하면 매개변수를 수동으로 입력하거나 기본값을 선택하라는 메시지가 표시됩니다. 토큰을 사용하려는 경우 스크립트를 실행할 때 매개변수로 제공해야 합니다.
검사를 통해 HTML 형식의 보고서가 생성되는데 이 보고서에는 지정된 포털에서 발견된 위의 문제가 나와 있습니다.
기본 설정에 따라 보고서는 스크립트를 실행하는 폴더에 portalScanReport_[hostname]_[date].html(이)라는 이름으로 저장됩니다.