.. _log-collect-method:

ZTNA 디버그로그와 패킷 수집
=================================

ZTNA는 문제가 발생할 때 각 구성 요소에 대한 디버그로그 덤프를 지원한다.
각 덤프파일은 이슈 분석에 사용된다.

에이전트 디버그로그 수집 방법
-----------------------------

**WEB콘솔에서 수집**

	- WEB콘솔 관리 > 노드 메뉴로 이동
	- 리스트에서 디버그로그를 ``수집할 노드를 체크``
	- **작업선택 > 노드 대상 명령 > 노드 대상 작업지시** 클릭
	- **로그 수집 즉시수행(에이전트)** 선택 후 실행
	- 상단 **감사 > 디버그로그** 메뉴로 이동
	- 우측화면 **system** > **agent** 로 이동하여 **수집한 단말의 IP명 디렉토리** 클릭
	- 수집날짜와 시간의 ``에이전트로그파일`` 클릭
	
	 .. note:: 에이전트로그수집은 노드상세정보 **대상노드작업** 에서도 가능합니다.

**단말에서 직접 수집**

	- PC Windows 우측하단 아이콘에서 우측버튼을 클릭
	- 프로그램정보(A) 항목을 클릭한다.
	- 팝업창의 좌측 하단 **오류 보고** 버튼을 클릭
	- WINDOWS 단말의 디버그로그파일 저장위치는 **"C:\"** 입니다.
	- MAC 단말의 디버그로그파일 저장위치는 **"/Users/Shared/Genians"** 입니다. 
	- 파일명의 형태는 **"GnAgent_날짜시간.zip"** 입니다.

		.. note:: 
			- ActiveDirectory 환경에서 로그수집을 위해서는 도메인관리자수준의 권한이 필요합니다.
			- LINUX 단말의 경우 직접 디버그 저장경로로 이동하여 수집하여야합니다. **"/var/log/genians"** 입니다.

.. _log-collect-method-debugview:

정책서버/네트워크센서 디버그로그 확인 및 다운로드
---------------------------------------------------

WEB콘솔에서는 정책서버와 네트워크센서의 디버그로그를 실시간 확인 및 다운로드하는 기능을 제공합니다. 
디버그로그는 시스템의 다양한 현재상황 및 문제해결에 사용됩니다. 

아래를 참고하여 디버그로그를 확인하시기 바랍니다. 

- WEB콘솔 접속
- 상단 **감사 > 디버그로그**
- 좌측 메뉴트리를 펼치거나 우측 창에서 확인하고자 하는 디버그로그파일을 선택
- 상단 아이콘을 클릭하여 다운로드(zip파일의 경우 클릭시 바로 다운로드)
	 
.. image:: /images/debug_view.png
	:width: 600px

.. _log-collect-method-syscollect:

정책서버/네트워크센서 디버그로그 일괄 수집방법(syscollect)
-----------------------------------------------------------

WEB콘솔
'''''''''

아래를 참고하여 순서대로 수행합니다.:

 - WEB콘솔 접속
 - 상단 **시스템 > 시스템관리** 이동
 - 리스트에서 수집하고자 하는 장비의 좌측 체크박스 체크
 - 상단 **작업선택 > 시스템 로그수집** 클릭
 - 상단 상태메시지 확인 ``시스템 로그수집 성공```  메시지 클릭
 - **syscollect** 디렉토리 하위에 생성된 **.zip** 파일 다운로드
	- 시스템에 저장되어있는 디버그로그파일이 많은 경우 수분의 시간이 소요될 수 있습니다.	 

 .. image:: /images/syscollect.png
 	:width: 600px

CLI콘솔
''''''''

아래를 참고하여 순서대로 수행합니다.:

- Zmodem을 지원하는 터미널프로그램(secureCRT 등)으로 정책서버 SSH 접속
- Enable 모드로 진입
- 쉘모드 진입
- 프롬프트창에 *syscollect.sh* 입력
- 수집이 완료되면 명령어 ``sz`` 를 사용하여 결과에 생성된 파일의 위치를 입력하여 다운로드합니다. 

	- 로그를 이슈관리시스템의 특정이슈에 업로드하려면 `Y` 를 입력하여 이슈번호를 입력합니다.
	- 주요데몬의 backtarace 정보를 추가로 수집하려면 `Y` 를 입력합니다.
	- 정책서버에 수집된 에이전트로그를 수집하려면 `Y` 를 입력합니다.
  
	.. code-block:: bash

		Do you want upload to GENIANS IMS ? (Y/n) 
		Do you want to trace centerd ? (y/N) 
		Do you want to trace sensord ? (y/N) 
		Do you want to collect agent logs ? (y/N) 
		
		Genians$sz [filename]
   
주요 구성요소간 전송되는 패킷 수집
--------------------------------------

정책서버와 네트워크센서, 에이전트와 통신에 사용되는 패킷을 수집할때 활용할 수 있습니다. 

기본 명령어 예시
'''''''''''''''''''

.. code:: bash

	tcpdump -i eth0 port 80 and udp
	- 인터페이스 eth0을 지나가는 UDP 포트 80을 사용하는 패킷 표시

	tcpdump -i eth0 -e 
	- 인터페이스 eth0을 지나가는 모든패킷을 캡쳐하고 이더넷정보도 표시

	tcpdump -i eth0 net 192.168.
	- 인터페이스 eth0을 지나가는 192.168 네트워크의 패킷을 표시

	tcpdump -i eth0 host [IP address] and arp[7] == 2
	- 인터페이스 eth0을 지나가는 ARP Reply 패킷을 표시

	tcpdump -i eth0 port 80 and udp -w /tmp/file1.pcap 
	- 인터페이스 eth0을 지나가는 UDP 포트 80 패킷을 /tmp/file1.pcap 으로 저장

옵션 상세

.. code::

	-v: 패킷캡쳐 결과를 상세하게 출력
	-n: 주소(호스트주소, 포트번호)를 이름으로 변경하지 않고 출력
	-e: 패킷캡쳐결과에 링크레이어 헤더를 출력 (이더넷 주소표시)
	-w: 캡쳐한 패킷을 지정한 파일로 저장
	-A: 각 패킷을 ASCII값으로 출력
	-q: 출력결과를 짧게 출력

조건식

.. code::

	host : 패킷의 IP를 지정하여 결과 출력
	dst host : 목적지 IP를 지정하여 결과 출력
	src host : 출발지 IP를 지정하여 결과 출력
	ether host : 패킷의 MAC주소를 지정하여 결과 출력
	ether dst : 패킷의 목적지 MAC주소를 지정하여 결과 출력
	ether src : 패킷의 출발지 MAC주소를 지정하여 결과 출력
	net : 패킷의 네트워크주소 대역을 지정하여 결과 출력
	dst net: 패킷의 목적지 네트워크주소 대역을 지정하여 결과 출력
	src net: 패킷의 출발지 네트워크주소 대역을 지정하여 결과 출력

패킷수집의 다양한 예시
''''''''''''''''''''''''''''''''''''''''''''''

정책서버와 네트워크센서간 Keepalive 패킷 수집

.. code:: bash

	tcpdump -i eth0 host [Network sensor IP] and port 3871

정책서버와 에이전트간 Keepalive 패킷 수집

.. code:: bash

	tcpdump -i eth0 host [PC IP] and port 3871

네트워크센서에서 전송하는 ARP Reply 패킷 수집

.. code:: bash

	tcpdump -nei eth0 ether src [NetworkSensor eth0 MAC] and arp[7] == 2