Trusted Extensions 구성 및 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

Trusted Extensions 네트워크를 디버깅하는 방법

통신 중이 아닌 두 호스트를 디버깅하려면 Trusted Extensions 및 Oracle Solaris 디버깅 도구를 사용합니다. 예를 들어, snoopnetstat와 같은 Oracle Solaris 네트워크 디버깅 명령을 사용할 수 있습니다. 자세한 내용은 snoop(1M)netstat(1M) 매뉴얼 페이지를 참조하십시오. Trusted Extensions에 대한 특정 명령은 Appendix D, Trusted Extensions 매뉴얼 페이지 목록을 참조하십시오.

시작하기 전에

전역 영역에서 네트워크 속성 값을 확인할 수 있는 역할을 가진 사용자여야 합니다. 보안 관리자 역할 또는 시스템 관리자 역할이 이러한 값을 확인할 수 있습니다. root 역할만 파일을 편집할 수 있습니다.

  1. 통신할 수 없는 호스트가 동일한 이름 지정 서비스를 사용 중인지 확인합니다.
    1. 각 시스템에서 name-service/switch SMF 서비스의 Trusted Extensions 데이터베이스에 대한 값을 확인합니다.
      # svccfg -s name-service/switch listprop config
      config/value_authorization  astring  solaris.smf.value.name-service.switch
      config/default              astring  ldap
      ...
      config/tnrhtp               astring  "files ldap"
      config/tnrhdb               astring  "files ldap"
    2. 값이 여러 호스트에서 서로 다른 경우 해당 호스트의 값을 수정합니다.
      # svccfg -s name-service/switch setprop config/tnrhtp="files ldap"
      # svccfg -s name-service/switch setprop config/tnrhdb="files ldap"
    3. 그런 다음 해당 호스트에서 이름 지정 서비스 데몬을 다시 시작합니다.
      # svcadm restart name-service/switch
  2. 전송 중 소스, 대상 및 게이트웨이 호스트에 대한 보안 속성을 표시하여 각 호스트가 올바르게 정의되었는지 확인합니다.

    명령줄을 사용하여 네트워크 정보가 올바른지 확인합니다. 각 호스트에 대한 지정 사항이 네트워크의 다른 호스트에 대한 지정 사항과 일치하는지 확인합니다. 원하는 보기에 따라 tncfg 명령, tninfo 명령 또는 txzonemgr GUI를 사용합니다.

    • 템플리트 정의를 표시합니다.

      tninfo -t 명령은 레이블을 문자열 및 16진수 형식으로 표시합니다.

      # tninfo -t template-name
      template: template-name
      host_type: one of cipso or UNLABELED
      doi: 1
      min_sl: minimum-label
      hex: minimum-hex-label
      max_sl: maximum-label
      hex: maximum-hex-label
    • 템플리트 및 여기에 지정된 호스트를 표시합니다.

      tncfg -t 명령은 레이블을 문자열 형식으로 표시하고 지정된 호스트를 나열합니다.

      # tncfg -t template info
      name=<template-name>
      host_type=<one of cipso or unlabeled>
      doi=1
      min_label=<minimum-label>
      max_label=<maximum-label>
      host=127.0.0.1/32       /** Localhost **/
      host=192.168.1.2/32     /** LDAP server **/
      host=192.168.1.22/32    /** Gateway to LDAP server **/
      host=192.168.113.0/24   /** Additional network **/
      host=192.168.113.100/25      /** Additional network **/
      host=2001:a08:3903:200::0/56/** Additional network **/
    • 특정 호스트에 대한 IP 주소 및 지정된 보안 템플리트를 표시합니다.

      tninfo -h 명령은 지정된 호스트의 IP 주소 및 지정된 보안 템플리트의 이름을 표시합니다.

      # tninfo -h hostname
      IP Address: IP-address
      Template: template-name

      tncfg get host= 명령은 지정된 호스트를 정의하는 보안 템플리트의 이름을 표시합니다.

      # tncfg get host=hostname|IP-address[/prefix]
      template-name
    • 영역에 대한 다중 레벨 포트(MLP)를 표시합니다.

      tncfg -z 명령은 행당 하나의 MLP를 나열합니다.

      # tncfg -z zone-name info [mlp_private | mlp_shared]
      mlp_private=<port/protocol-that-is-specific-to-this-zone-only>
      mlp_shared=<port/protocol-that-the-zone-shares-with-other-zones>

      tninfo -m 명령은 첫번째 행에 개인 MLP를 나열하고, 두번째 행에 공유 MLP를 나열합니다. MLP는 세미콜론으로 구분됩니다.

      # tninfo -m zone-name
      private: ports-that-are-specific-to-this-zone-only
      shared: ports-that-the-zone-shares-with-other-zones

      MLP의 GUI 표시는 txzonemgr 명령을 사용합니다. 영역을 두 번 누른 다음 Configure Multilevel Ports(다중 레벨 포트 구성)를 선택합니다.

  3. 잘못된 정보를 수정합니다.
    1. 네트워크 보안 정보를 변경하거나 확인하려면 신뢰할 수 있는 네트워크 관리 명령인 tncfgtxzonemgr을 사용합니다. 데이터베이스의 구문을 확인하려면 tnchkdb 명령을 사용합니다.

      예를 들어, 다음 출력은 템플리트 이름 internal_cipso가 정의되지 않았음을 나타냅니다.

      # tnchkdb
      checking /etc/security/tsol/tnrhtp ...
      checking /etc/security/tsol/tnrhdb ...
      tnchkdb: unknown template name: internal_cipso at line 49
      tnchkdb: unknown template name: internal_cipso at line 50
      tnchkdb: unknown template name: internal_cipso at line 51
      checking /etc/security/tsol/tnzonecfg ...

      오류는 internal_cipso 보안 템플리트를 만들고 지정하는 데 tncfgtxzonemgr 명령이 사용되지 않았음을 나타냅니다.

      복구하려면 tnrhdb 파일을 원본 파일로 바꾼 다음 tncfg 명령을 사용하여 보안 템플리트를 만들고 지정합니다.

    2. 커널 캐시를 지우려면 재부트합니다.

      부팅 시 캐시는 데이터베이스 정보로 채워집니다. SMF 서비스 name-service/switch는 커널을 채우는 데 로컬 또는 LDAP 데이터베이스가 사용되는지 결정합니다.

  4. 전송 정보를 수집하면 디버깅에 도움이 됩니다.
    1. 경로 지정 구성을 확인합니다.
      # route get [ip] -secattr sl=label,doi=integer

      자세한 내용은 route(1M) 매뉴얼 페이지를 참조하십시오.

    2. 패킷의 레이블 정보를 봅니다.
      # snoop -v

      –v 옵션은 레이블 정보를 포함한 패킷 헤더의 세부 사항을 표시합니다. 이 명령은 많은 세부 사항을 제공하므로 명령이 검사하는 패킷을 제한하는 것이 좋습니다. 자세한 내용은 snoop(1M) 매뉴얼 페이지를 참조하십시오.

    3. 경로 지정 테이블 항목 및 소켓의 보안 속성을 봅니다.
      # netstat -aR

      –aR 옵션은 소켓에 대한 확장 보안 속성을 표시합니다.

      # netstat -rR

      –rR 옵션은 경로 지정 테이블 항목을 표시합니다. 자세한 내용은 netstat(1M) 매뉴얼 페이지를 참조하십시오.