Paloalto PAN-OS Single Sign On(SSO) 연동 가이드 =================================================== 이 가이드는 Genian NAC와 Paloalto PAN-OS 제품간의 Single Sign On(SSO) 연동에 대한 정보를 제공합니다. 가이드 개요 --------------- 이 문서는 Next Generation Firewall(NGFW) 시스템인 Paloalto의 PAN-OS와 네트워크 접근제어 시스템인 Genian NAC의 연동을 위한 설치와 설정 방법에 대한 가이드입니다. 두 제품간 사용자 인증정보를 연동하여 Genian NAC에서 인증한 사용자는 Paloalto PAN-OS에서 추가적으로 인증하지 않더라도 내부 시스템에 접근 할 수 있도록 하며, Paloalto PAN-OS가 Genian NAC의 사용자-노드의 결합된 정보를 이용하여, 사용자 기반의 접근제어 정책을 활용할 수 있도록 도움을 줍니다. 연동의 목적 ------------------- Genian NAC와 PAN-OS의 연동은 다음의 효과를 제공합니다. **Single-Sign-On(SSO)** - Genian NAC는 사용자가 노드를 사용하려 하거나 회사의 네트워크에 접속하기 위해서 필수적으로 로그인 절차를 거치도록 합니다. 이 로그인 정보를 이용하여 PAN-OS에서는 별도로 인증하는 불편함을 해소하며, 사용자 기반의 보안 정책을 구현하는데 도움을 줍니다. **사용자기반 정책구현, 정보불일치 해소** - 실제 노드의 사용자 정보를 보유하고 있는 Genian NAC의 사용자 정보를 이용하여, 신규 입사자, 부서이동, 근무위치의 변경 등의 사유로 인한 노드와 실제 사용자 정보의 불일치 되는 문제를 해결할 수 있습니다. <연동시의 인증/사용자 접근제어 프로세스> 1. Genian NAC에서 사용자 인증 2. Genian NAC가 인증정보(IP, User-ID)를 Paloalto PAN-OS로 전송 (XML API, syslog) 3. 등록된 노드(IP)정보와 사용자정보의 조합: PAN-OS 4. 사용자정보가 확인된 IP에 태그 할당: PAN-OS 5. 사용자 기반의 제어: PAN-OS 사전준비 사항 ------------------------------------------------------- **networking 사전 준비사항** - Genian NAC Policy Center와 Paloalto PAN-OS간의 통신을 확인합니다. - 본 가이드에서는 XML API (http, https)방식과 syslog방식의 두가지 방법을 제시하고 있으므로 활용하고자 하는 방법에 따라 확인바랍니다. .. csv-table:: :header: "구현방식", "권장설정(보안수준 높음)", "간편설정(연결성 높음)" :widths: 30 35 35 "XML API", "https (8443)", "http (80) " "Syslog", "TLS (6514)", "UDP (514) " Genian NAC의 접속 포트정보는UI에서 ‘시스템 > 서비스 관리 > 접속포트’에 있습니다. XML API를 이용한 연동 ---------------------------------- **XML API 연동을 위한 paloalto PAN-OS 설정** 본 문서에서 다루는 PAN-OS의 설정에 대한 설명은 Genian NAC와의 연동을 위한 부분에 한합니다. Step 1: 사용자인증정보의 처리를 위한 관리자 역할 생성하기 *Device >Admin roles* 으로 이동한 후, Add를 선택하면, Admin Role Profile창이 나타납니다. *Admin Role Profile* 창에서의 입력 값은 다음과 같습니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 20 40 40 "Name", "Genian_NAC_SSO", "Admin role의 이름 설정" "Description", "Admin role의 용도를 서술", "생략 가능" "XML API탭", "모든 항목을 Enable 해줍니다. (본 가이드의 기능만을 활용할 경우는 Report, Export, Import의 기능은 생략가능)", "Report, Log, Configuration, Operational Requests, Commit, User-ID Agent, Export, Import 모두를 enable 함 " Step 2: 사용자 인증정보 처리를 위한 관리자 계정 생성하기 *Device >Administrators* 로 이동한 후, Add를 선택하면, Administrator 추가 창이 나타납니다. *Administrator* 창에서의 입력 값은 다음과 같습니다 .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 30 30 40 "Name", "Genian_NAC", "계정의 이름 설정" "Authentication Profile", "None", "별도 설정하지 않음" "Use only client certification authentication (Web)", "설정 안함", "계정의 Password를 이용하여 접근권한을 확인하므로 별도로 설정하지 않음 (API-Key를 확인하는 경우에 설정)" "Use Public Key Authentication(SSH)", "설정 안함", " " "Administrator Type", "Role Based 선택", "Step 1에서 생성된 권한을 상속함" "Profile", "Genian_NAC_SSO", "Admin Role과 동일하게 설정" "Password Profile", "None", "별도 설정하지 않음" Step 3: 사용자 인증정보를 전송하기 위한 API-Key 생성하기 웹브라우져를 이용하여, *[https://PAN-OS IP/api/?type=keygen&user=[username]&password=[password]]* 를 입력하여 API-Key를 생성합니다. 웹브라우저에 위와 같이 입력하면, 다음의 결과를 얻을 수 있습니다. :: #Script LUFRPT1KbW80SU1hRXJuNk5XNHBudUhCNGMydE0rSUk9RFIzdEJ5RGcwWkRCVlhYMXl0Q1FPdz09 여기서 생성된 API-Key를 이용하여, Genian NAC가 인증정보를 PAN-OS로 전송합니다. Step 4: Genian NAC로부터 사용자 인증정보 수신시 SSO동작을 위한 구성하기 *Network > Zone* 으로 이동하여, Enable User Identification 선택 후 ‘OK’ 클릭 (인증된 사용자는 사용권한을 할당 받습니다) **XML API 연동을 위한 Genian NAC 설정** Genian NAC에서 사용자가 인증시 발생하는 로그를 활용하여, PAN-OS로 XML API(webhook)를 전송하도록 설정하는 과정에 대한 설명입니다. Step 1: 사용자가 Genian NAC에 인증시 발생하는 로그에 대한 검색필터 만들기 검색필터를 만들기 위해 *감사 > 로그검색* 으로 이동합니다. 사용자 인증시 PAN-OS로 전송해야 하므로 다음과 같이 로그 검색조건을 적용합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 20 30 50 "로그ID", "인증", "셀렉트박스에서 선택" "설명", "사용자가 인증됨", "사용자 인증시의 로그 중, 키워드 설정" 위의 조건으로 로그 검색시, 사용자 인증과 관련한 로그가 존재하는 지 확인 후, 저장합니다. Step 2: 검색필터 이벤트 발생시, PAN-OS로 이벤트 전송설정하기 Step1에서 만든 검색필터의 ‘저장’을 클릭하면, 검색필터를 설정화면이 나타납니다. 여기에서 다음과 같이 설정합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 20 30 50 "이름", "사용자 로그인 정보 전송", "검색필터의 이름" "설명", "사용자가 로그인 시의 로그를 PAN-OS로 전송하기 위함", " " "Webhook", "선택, 로그인 이벤트 발생시 API 호출을 위함", "XML API" "태그", "할당, 검색대상:사용자, 할당대상:노드, 태그:인증사용자", " " Webhook 설정: 다음과 같이 입력합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 20 30 50 "방식", "POST", " " "URL", "https://XXX.XXX.XXX.XXXX/api/?type=user-id&action=set&key", "PAN-OS의 IP" "CHARSET", "UTF-8", " " "POST 데이터", "아래 POST 데이터 입력값 참고", " " "데이터 전송타입", "multipart/form-data", " " "API-Key", "팔로알토 PAN-OS설정 Step3에서 만든 API-Key 입력", " " POST 데이터 입력값 :: 1.0 update Syslog를 이용한 연동 ---------------------------------- **Syslog 연동을 위한 paloalto PAN-OS 설정** 본 문서에서 다루는 PAN-OS의 설정에 대한 설명은 Genian NAC와의 연동을 위한 부분에 한합니다. Step 1: 사용자 인증정보의 수신을 위한 Syslog 설정하기 1. *Device > User Identification > User Mapping* 으로 이동한 후, User-ID Agent Setup 탭에서 Edit 버튼을 선택합니다. 2. Syslog filter를 선택하고 Add를 클릭하면 Syslog Parse profile 설정 창에 다음과 같이 설정 값을 작성합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 15 30 55 "Syslog Parse Profile", "Genian_NAC", "Syslog Parse의 이름 설정" "Description", " ", "생략가능" "Type", "Field Identifier", "Syslog의 Type을 지정합니다." "Event String", "USERAUTH", "Genian NAC에서 전송시의 메시지 구분 값" "Enter a Username Prefix", "ID=", "Genian NAC에서 인증한 사용자의 ID" "Enter a Username Delimiter", ", (comma)", "구분자" "Enter a Address Prefix", "IP=", "Genian NAC에서 인증한 사용자 노드의 IP" "Enter a Address Prefix", ", (comma)", "구분자" Step 2: 사용자 인증정보의 Syslog 송신자 지정하기 *Device > User Identification > User Mapping* 으로 이동한 후, Server Monitoring 부분에서 Add를 클릭하여 User Identification Monitored Server 설정 창에 다음과 같이 작성합니다 .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 15 30 55 "Name", "Genian_NAC", "계정의 이름 설정" "Description", " ", "생략가능" "Enabled", "Enabled 선택", "동작 선택" "Type", "Syslog Sender 선택", " " "Network Address", "Genian NAC IP", "Genian NAC의 정책서버 IP" "Connection Type", "UDP", "SSL(default)와 UDP중 선택" "Filter", "Genian_NAC 선택", "Genian NAC에서 전송하는 정보 중 특정정보만 받기 위한 Filter선택" Step 3: Syslog Listener 서비스 활성화 *Network > Network Profiles > Interface Mgmt* 로 이동한 후, ADD를 클릭하면, syslog Listener New profile이 나타납니다. - 다음과 같이 설정 값을 작성합니다. 1. Network Profile: Allow Genian NAC 2. User-ID SYSLOG Listener-SSL 또는 User-ID SYSLOG Listener-UDP 선택 설정을 완료하고, ‘OK’를 클릭하면 the interface management profile로 이동합니다. Step 4: Interface Management에 Genian NAC의 접근 허용하기 *Network > Interfaces* 를 선택한 후, 해당 인터페이스의 설정을 확인, 설정합니다. (UDP를 이용하는 경우 UDP/514, SSL을 이용하는 경우는 TCP/6514 입니다) *Advanced > Other info > Interface Management Profile* 로 가서 Allow Genian NAC를 선택한 후, ‘OK’를 클릭합니다. 설정을 반영하기 위해, ‘Commit’을 클릭합니다. **Syslog 연동을 위한 Genian NAC 설정** Genian NAC에서 사용자가 인증시 발생하는 로그를 PAN-OS로 Syslog로 전송하도록 설정하는 과정에 대한 설명입니다. Step 1: 사용자가 Genian NAC에 인증시 발생하는 로그에 대한 검색필터 만들기 검색필터를 만들기 위해 ‘* 감사 > 로그검색* ’으로 이동합니다. 사용자 인증시 PAN-OS로 전송해야 하므로 다음과 같이 로그 검색조건을 적용합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 15 30 55 "로그ID", "인증", "셀렉트박스에서 선택" "설명", "사용자가 인증됨", "사용자 인증시의 로그 중, 키워드 설정" 위의 조건으로 로그 검색시, 사용자 인증과 관련한 로그가 존재하는 지 확인 후, 저장합니다. Step 2: 검색필터 이벤트 발생시, PAN-OS로 이벤트 전송 설정하기 Step1에서 만든 검색필터의 ‘저장’을 클릭하면, 검색필터를 설정화면이 나타납니다, 다음과 같이 설정합니다. .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 15 30 55 "이름", "사용자 로그인 정보전송", "검색필터의 이름" "설명", "사용자가 로그인 시의 로그를 PAN-OS로 전송하기 위함", " " "SYSLOG 전송", "선택, 사용자로그인시 Paloalto PAN-OS로 Syslog 전송", "아래 Syslog 설정 입력값 참고" "태그", "할당, 검색대상:사용자, 할당대상:노드, 태그:인증사용자", " " Syslog 설정 입력값 .. csv-table:: :header: "설정 항목", "설정 값", "참고" :widths: 15 30 55 "서버주소", "Paloalto PAN-OS의 IP입력", " " "전송방법", "UDP", "UDP, TLS 중 선택" "전송포트", "514", "UDP(514), TLS(6514)" "포맷", "Default", "Default, CEF 중 택1" "Syslog 메세지", "USERAUTH, ID={ID}, IP={_IP}", " " "CHAERSET", "UTF-8", "일반적으로 UTF-8" **연동 동작 테스트: Paloalto PAN-OS에서 Genian NAC에서 전송한 사용자 로그인 이벤트 수신 확인하기** 연동구성 완료 후, 다음과 같이 동작 테스트를 합니다. 1. Command Line Interface(CLI)에서 확인하기 *‘show user ip-user-mapping all’* 을 입력하여 수신된 정보를 확인합니다. :: CLI Command admin@PA-VM> show user ip-user-mapping all IP Vsys From User IdleTimeout(s) MaxTimeout(s) ------------ ------- ------- ------- -------------- ------------- 172.29.101.1 vsys1 XMLAPI genian 1111 1111 Total: 1 users 위와 같이, 수신된 정보가 확인되면, 정상적으로 설정이 된 것입니다. 2. WEB User-interface(UI)에서 확인하기 *Monitor > Logs > User-ID* 로 이동하면, Genian NAC의 인증을 통해 전달된 인증목록을 확인할 수 있습니다