JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 관리: 보안 서비스     Oracle Solaris 11 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

제2부시스템, 파일 및 장치 보안

2.  시스템 보안 관리(개요)

3.  시스템에 대한 액세스 제어(작업)

4.  바이러스 검사 서비스(작업)

5.  장치에 대한 액세스 제어(작업)

6.  기본 감사 보고 도구 사용(작업)

7.  파일에 대한 액세스 제어(작업)

제3부역할, 권한 프로파일 및 권한

8.  역할 및 권한 사용(개요)

9.  역할 기반 액세스 제어 사용(작업)

10.  Oracle Solaris의 보안 속성(참조)

제4부암호화 서비스

11.  암호화 프레임워크(개요)

12.  암호화 프레임워크(작업)

13.  키 관리 프레임워크

제5부인증 서비스 및 보안 통신

14.  네트워크 서비스 인증(작업)

15.  PAM 사용

16.  SASL 사용

17.  Secure Shell 사용(작업)

18.  Secure Shell(참조)

제6부Kerberos 서비스

19.  Kerberos 서비스 소개

20.  Kerberos 서비스 계획

21.  Kerberos 서비스 구성(작업)

22.  Kerberos 오류 메시지 및 문제 해결

23.  Kerberos 주체 및 정책 관리(작업)

24.  Kerberos 응용 프로그램 사용(작업)

25.  Kerberos 서비스(참조)

제7부Oracle Solaris에서 감사

26.  감사(개요)

27.  감사 계획

28.  감사 관리(작업)

감사 관리(작업 맵)

감사 서비스 구성(작업)

감사 서비스 구성(작업 맵)

감사 서비스 기본값을 표시하는 방법

감사 클래스를 사전 선택하는 방법

사용자의 감사 특성을 구성하는 방법

감사 정책을 변경하는 방법

감사 대기열 제어를 변경하는 방법

audit_warn 전자 메일 별칭을 구성하는 방법

감사 클래스를 추가하는 방법

감사 이벤트의 클래스 멤버쉽을 변경하는 방법

감사 로그 구성(작업)

감사 로그 구성(작업 맵)

감사 파일에 대한 ZFS 파일 시스템을 만드는 방법

감사 추적에 대한 감사 공간을 지정하는 방법

원격 저장소에 감사 파일을 보내는 방법

syslog 감사 로그를 구성하는 방법

영역에서 감사 서비스 구성(작업)

감사를 위해 동일하게 모든 영역을 구성하는 방법

영역별 감사를 구성하는 방법

감사 서비스를 사용/사용 안함으로 설정(작업)

감사 서비스를 새로 고치는 방법

감사 서비스를 사용 안함으로 설정하는 방법

감사 서비스를 사용으로 설정하는 방법

로컬 시스템에서 감사 레코드 관리(작업)

로컬 시스템에서 감사 레코드 관리(작업 맵)

감사 레코드 정의를 표시하는 방법

감사 추적에서 감사 파일을 병합하는 방법

감사 추적에서 감사 이벤트를 선택하는 방법

이진 감사 파일의 내용을 보는 방법

not_terminated 감사 파일을 정리하는 방법

감사 추적 오버플로우를 막는 방법

감사 서비스 문제 해결(작업)

감사 서비스 문제 해결(작업 맵)

감사가 실행 중인지 확인하는 방법

생성되는 감사 레코드의 양을 줄이는 방법

사용자의 모든 명령을 감사하는 방법

특정 파일에 대한 변경 사항 감사 레코드를 찾는 방법

로그인한 사용자의 사전 선택 마스크를 업데이트하는 방법

특정 이벤트의 감사를 막는 방법

이진 감사 파일의 크기를 제한하는 방법

전용 파일 시스템에서 감사 파일을 압축하는 방법

다른 운영 체제에서 로그인을 감사하는 방법

FTP 및 SFTP 파일 전송을 감사하는 방법

29.  감사(참조)

용어집

색인

감사 서비스 문제 해결(작업)

이 절에서는 다양한 감사 오류 메시지, 기본 설정 및 다른 도구에서 제공하는 감사를 다룹니다. 이러한 절차는 필요한 감사 이벤트를 기록하고 감사 문제를 디버깅하는 데 유용합니다.

감사 서비스 문제 해결(작업 맵)

다음 작업 맵에서는 감사 문제 해결을 위한 절차를 안내합니다.

문제점
해결 방법
수행 방법
감사를 구성했는데 감사 레코드가 기록되지 않는 이유는 무엇입니까?
감사 서비스 문제를 해결합니다.
수집되는 감사 정보의 양을 줄이려면 어떻게 합니까?
감사하고자 하는 이벤트만 감사합니다.
사용자가 시스템에서 수행하는 모든 작업을 감사하려면 어떻게 합니까?
모든 명령에 대해 하나 이상의 사용자를 감사합니다.
기록되는 감사 이벤트를 변경하고 변경 사항을 기존 세션에 적용하려면 어떻게 합니까?
사용자의 사전 선택 마스크를 업데이트합니다.
특정 파일에 대한 수정 사항을 찾으려면 어떻게 합니까?
파일 수정을 감사한 다음 auditreduce 명령을 사용하여 특정 파일을 찾습니다.
감사 파일의 크기를 줄이려면 어떻게 합니까?
이진 감사 파일의 크기를 제한합니다.
감사 파일에 대한 파일 시스템 공간을 덜 사용하려면 어떻게 합니까?
ZFS 할당량 및 압축을 사용합니다.
audit_event 파일에서 감사 이벤트를 제거하려면 어떻게 합니까?
audit_event 파일을 올바르게 업데이트합니다.
Oracle Solaris 시스템에 대한 모든 로그인을 감사하려면 어떻게 합니까?
모든 시스템에서 로그인을 감사합니다.
FTP 전송에 대한 감사 레코드가 기록되지 않는 이유는 무엇입니까?
고유의 로그를 생성하는 유틸리티에 대해 알맞은 감사 도구를 사용합니다.

감사가 실행 중인지 확인하는 방법

감사 기능은 기본적으로 활성화됩니다. 감사가 사용 안함으로 설정되지 않았지만 감사 레코드가 활성 플러그인으로 보내지지 않는다고 판단되는 경우 다음 절차를 사용하여 문제를 식별합니다.

시작하기 전에

시스템 파일을 수정하려면 root 역할을 가진 사용자여야 합니다. 감사를 구성하려면 Audit Configuration 권한 프로파일이 지정되어야 합니다.

  1. 감사가 실행 중인지 확인합니다.

    다음 방법 중 하나를 사용합니다.

    • 현재 감사 조건을 확인합니다.

      다음 목록은 감사가 실행 중이 아님을 나타냅니다.

      # auditconfig -getcond
      audit condition = noaudit

      다음 목록은 감사가 실행 중임을 나타냅니다.

      # auditconfig -getcond
      audit condition = auditing
    • 감사 서비스가 실행 중인지 확인합니다.

      다음 목록은 감사가 실행 중이 아님을 나타냅니다.

      # svcs -x auditd
      svc:/system/auditd:default (Solaris audit daemon)
       State: disabled since Sun Oct 10 10:10:10 2010
      Reason: Disabled by an administrator.
         See: http://sun.com/msg/SMF-8000-05
         See: auditd(1M)
         See: audit(1M)
         See: auditconfig(1M)
         See: audit_flags(5)
         See: audit_binfile(5)
         See: audit_syslog(5)
         See: audit_remote(5)
         See: /var/svc/log/system-auditd:default.log
      Impact: This service is not running.

      다음 목록은 감사 서비스가 실행 중임을 나타냅니다.

      # svcs auditd
      STATE          STIME    FMRI
      online         10:10:10 svc:/system/auditd:default

    감사 서비스가 실행 중이 아닌 경우 사용으로 설정합니다. 절차는 감사 서비스를 사용으로 설정하는 방법을 참조하십시오.

  2. 적어도 하나의 플러그인이 활성화되었는지 확인합니다.
    # audit -v

    활성화된 플러그인이 없는 경우 활성화합니다.

    # auditconfig -setplugin audit_binfile active
  3. 사용자 정의된 감사 클래스를 만든 경우 클래스에 이벤트를 지정했는지 확인합니다.

    예를 들어, 다음 플래그 목록은 Oracle Solaris 소프트웨어에서 제공하지 않은 pf 클래스를 포함합니다.

    # auditconfig -getflags
    active user default audit flags = pf,lo(0x0100000000000000,00x0100000000001000)
    configured user default audit flags = pf,lo(0x0100000000000000,00x0100000000001000)

    pf 클래스를 만드는 자세한 내용은 감사 클래스를 추가하는 방법을 참조하십시오.

    1. 클래스가 audit_class 파일에서 정의되었는지 확인합니다.

      감사 클래스가 정의되고 해당 마스크는 고유해야 합니다.

      # grep pf /etc/security/audit_classVerify class exists
      0x0100000000000000:pf:profile
      # grep 0x08000000 /etc/security/audit_classEnsure mask is unique
      0x0100000000000000:pf:profile

      고유하지 않은 마스크를 바꿉니다. 클래스가 정의되지 않은 경우 정의합니다. 그렇지 않으면 auditconfig -setflags 명령을 유효한 값과 함께 실행하여 현재 플래그를 재설정합니다.

    2. 이벤트가 클래스에 지정되었는지 확인합니다.

      다음 방법 중 하나를 사용합니다.

      # auditconfig -lsevent | egrep " pf|,pf|pf,"
      AUE_PFEXEC      116 pf execve(2) with pfexec enabled
      # auditrecord -c pf
      List of audit events assigned to pf class

      이벤트가 클래스에 지정되지 않은 경우 적당한 이벤트를 이 클래스에 지정합니다.

  4. 이전 단계에서 문제가 나타나지 않은 경우 전자 메일 및 로그 파일을 검토합니다.
    1. audit_warn 별칭으로 전송된 전자 메일을 읽습니다.

      audit_warn 스크립트는 경고 메시지를 audit_warn 전자 메일 별칭으로 보냅니다. 올바르게 구성된 별칭이 없을 경우 메시지가 root 별칭으로 보내집니다.

    2. 감사 서비스에 대한 로그 파일을 검토합니다.

      svcs -s auditd 명령의 출력은 감사 서비스에서 생성하는 감사 로그에 대한 전체 경로를 나열합니다. 예는 단계 1의 목록을 참조하십시오.

    3. 시스템 로그 파일을 검토합니다.

      audit_warn 스크립트는 daemon.alert 메시지를 /var/log/syslog 파일에 씁니다.

      /var/adm/messages 파일에는 정보가 포함되어 있을 수 있습니다.

  5. 문제를 찾아 수정한 다음 감사 서비스를 사용으로 설정하거나 다시 시작합니다.
    # audit -s

생성되는 감사 레코드의 양을 줄이는 방법

사이트에서 감사되어야 하는 이벤트를 결정한 후 다음 제안에 따라 관리 가능한 감사 파일을 만듭니다.

시작하기 전에

감사 클래스를 사전 선택하고 감사 정책을 설정하려면 Audit Configuration 권한 프로파일이 지정되어야 합니다. 시스템 파일을 수정하고 감사 플래그를 사용자, 역할 및 권한 프로파일에 지정하려면 root 역할을 가진 사용자여야 합니다.

  1. 기본 감사 정책을 사용합니다.

    특히, 이벤트 및 감사 토큰을 감사 추적에 추가하지 마십시오. 다음 정책은 감사 추적의 크기를 늘립니다.

    • arge 정책 – execv 감사 이벤트에 환경 변수를 추가합니다.

    • argv 정책 – execv 감사 이벤트에 명령 매개변수를 추가합니다.

    • public 정책 – 파일 이벤트가 감사되는 경우 감사 가능한 이벤트가 공용 객체에 발생할 때마다 감사 추적에 이벤트를 추가합니다. 파일 클래스에는 fa, fc, fd, fm, fr, fwcl이 포함됩니다. 공용 파일에 대한 정의는 감사 용어 및 개념을 참조하십시오.

    • path 정책 – 선택적 path 토큰이 포함된 감사 이벤트에 path 토큰을 추가합니다.

    • group 정책 – 선택적 newgroups 토큰이 포함된 감사 이벤트에 그룹 토큰을 추가합니다.

    • seq 정책 – 모든 감사 이벤트에 시퀀스 토큰을 추가합니다.

    • trail 정책 – 모든 감사 이벤트에 트레일러 토큰을 추가합니다.

    • windata_down 정책 – Trusted Extensions로 구성된 시스템에서 레이블이 있는 창의 정보가 다운그레이드될 때 이벤트를 추가합니다.

    • windata_up 정책 – Trusted Extensions로 구성된 시스템에서 레이블이 있는 창의 정보가 업그레이드될 때 이벤트를 추가합니다.

    • zonename 정책 – 모든 감사 이벤트에 영역 이름을 추가합니다. 전역 영역이 유일하게 구성된 영역인 경우 모든 감사 이벤트에 zone, global 문자열을 추가합니다.

    다음 감사 레코드는 ls 명령의 사용을 보여줍니다. ex 클래스가 감사되고 기본 정책을 사용 중입니다.

    header,129,2,AUE_EXECVE,,mach1,2010-10-14 11:39:22.480 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    subject,jdoe,root,root,root,root,2404,50036632,82 0 mach1
    return,success,0

    다음은 모든 정책이 설정되었을 때 나타나는 동일한 레코드입니다.

    header,1578,2,AUE_EXECVE,,mach1,2010-10-14 11:45:46.658 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    exec_env,49,MANPATH=/usr/share/man,USER=jdoe,GDM_KEYBOARD_LAYOUT=us,EDITOR=gedit,
      LANG=en_US.UTF-8,GDM_LANG=en_US.UTF-8,PS1=#,GDMSESSION=gnome,SESSIONTYPE=1,SHLVL=2,
      HOME=/home/jdoe,LOGNAME=jdoe,G_FILENAME_ENCODING=@locale,UTF-8, PRINTER=example-dbl,
    ...
    path,/lib/ld.so.1
    attribute,100755,root,bin,21,393073,18446744073709551615
    subject,jdoe,root,root,root,root,2424,50036632,82 0 mach1
    group,root,other,bin,sys,adm,uucp,mail,tty,lp,nuucp,daemon
    return,success,0
    zone,global
    sequence,197
    trailer,1578
  2. audit_syslog 플러그인을 사용하여 일부 감사 이벤트를 syslog로 보냅니다.

    그리고 이러한 감사 이벤트를 audit_binfile 또는 audit_remote 플러그인으로 보내지 않습니다. 이 전략은 syslog 로그로 보내는 감사 이벤트의 이진 레코드를 보관할 필요가 없을 경우에만 유효합니다.

  3. 더 적은 시스템 전역 감사 플래그를 설정하고 개별 사용자를 감사합니다.

    시스템 전역으로 감사되는 감사 클래스의 수를 줄여 모든 사용자에 대한 감사의 양을 줄입니다.

    roleadd, rolemod, useraddusermod 명령에 audit_flags 키워드를 사용하여 특정 사용자 및 역할에 대한 이벤트를 감사합니다. 예는 예 28-18usermod(1M) 매뉴얼 페이지를 참조하십시오.

    profiles 명령의 always_auditnever_audit 등록 정보를 사용하여 특정 권한 프로파일에 대한 이벤트를 감사합니다. 자세한 내용은 profiles(1) 매뉴얼 페이지를 참조하십시오.


    주 - 다른 보안 속성과 마찬가지로 감사 플래그는 검색 순서의 영향을 받습니다. 자세한 내용은 지정된 보안 속성의 검색 순서를 참조하십시오.


  4. 고유의 사용자 정의된 감사 클래스를 만듭니다.

    해당 사이트에서 감사 클래스를 만들 수 있습니다. 모니터해야 하는 감사 이벤트만 이러한 감사 클래스에 추가합니다. 절차는 감사 클래스를 추가하는 방법을 참조하십시오.


    주의

    주의 - 기존 감사 클래스 지정을 수정할 경우 최신 버전의 Oracle Solaris OS로 업그레이드할 때 이러한 수정 사항이 유지될 수 있습니다. 하지만 Oracle Solaris 파일의 최신 버전에는 수동으로 설치에 통합해야 하는 변경 사항이 포함될 수 있습니다. 설치 로그를 신중하게 검토하십시오. 자세한 내용은 pkg(5) 매뉴얼 페이지의 preserve=renamenew에 대한 설명을 참조하십시오.


사용자의 모든 명령을 감사하는 방법

보안 정책의 일부로 일부 사이트에서는 root 계정 및 관리 역할에서 실행하는 모든 명령의 감사 레코드를 요구합니다. 일부 사이트에서는 모든 사용자가 실행하는 모든 명령에 대한 감사 레코드를 요구할 수 있습니다. 또한 사이트에서는 명령 인수 및 환경이 기록되도록 요구할 수 있습니다.

시작하기 전에

감사 클래스를 사전 선택하고 감사 정책을 설정하려면 Audit Configuration 권한 프로파일이 지정되어야 합니다. 감사 플래그를 사용자, 역할 권한 프로파일에 지정하려면 root 역할을 가진 사용자여야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. loex 클래스를 감사합니다.

    ex 클래스는 exec()execve() 함수에 대한 모든 호출을 감사합니다.

    lo 클래스는 로그인, 로그아웃 및 화면 잠금을 감사합니다. 다음 출력은 exlo 클래스의 모든 이벤트를 나열합니다.

    % auditconfig -lsevent | grep " lo "
    AUE_login                       6152 lo login - local
    AUE_logout                      6153 lo logout
    AUE_telnet                      6154 lo login - telnet
    AUE_rlogin                      6155 lo login - rlogin
    AUE_rshd                        6158 lo rsh access
    AUE_su                          6159 lo su
    AUE_rexecd                      6162 lo rexecd
    AUE_passwd                      6163 lo passwd
    AUE_rexd                        6164 lo rexd
    AUE_ftpd                        6165 lo ftp access
    AUE_ftpd_logout                 6171 lo ftp logout
    AUE_ssh                         6172 lo login - ssh
    AUE_role_login                  6173 lo role login
    AUE_newgrp_login                6212 lo newgrp login
    AUE_admin_authenticate          6213 lo admin login
    AUE_screenlock                  6221 lo screenlock - lock
    AUE_screenunlock                6222 lo screenlock - unlock
    AUE_zlogin                      6227 lo login - zlogin
    AUE_su_logout                   6228 lo su logout
    AUE_role_logout                 6229 lo role logout
    AUE_smbd_session                6244 lo smbd(1m) session setup
    AUE_smbd_logoff                 6245 lo smbd(1m) session logoff
    AUE_ClientConnect               9101 lo client connection to x server
    AUE_ClientDisconnect            9102 lo client disconn. from x server
    % auditconfig -lsevent | egrep " ex |,ex |ex,"
    AUE_EXECVE                        23 ex,ps execve(2)
    • 관리 역할에 대해 이러한 클래스를 감사하려면 역할의 보안 속성을 수정합니다.

      다음 예에서 root는 역할입니다. 사이트에서는 sysadm, auditadm netadm의 세 역할을 만들었습니다. 모든 역할은 exlo 클래스에 있는 이벤트의 성공 및 실패에 대해 감사됩니다.

      # rolemod -K audit_flags=lo,ex:no root
      # rolemod -K audit_flags=lo,ex:no sysadm
      # rolemod -K audit_flags=lo,ex:no auditadm
      # rolemod -K audit_flags=lo,ex:no netadm
    • 모든 사용자에 대해 이러한 클래스를 감사하려면 시스템 전역 플래그를 설정합니다.
      # auditconfig -setflags lo,ex

      출력은 다음과 유사하게 나타납니다.

      header,129,2,AUE_EXECVE,,mach1,2010-10-14 12:17:12.616 -07:00
      path,/usr/bin/ls
      attribute,100555,root,bin,21,320271,18446744073709551615
      subject,jdoe,root,root,root,root,2486,50036632,82 0 mach1
      return,success,0
  3. 명령에 대한 인수를 기록하려면 argv 정책을 추가합니다.
    # auditconfig -setpolicy +argv

    exec_args 토큰은 명령 인수를 기록합니다.

    header,151,2,AUE_EXECVE,,mach1,2010-10-14 12:26:17.373 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    subject,jdoe,root,root,root,root,2494,50036632,82 0 mach1
    return,success,0
  4. 명령이 실행되는 환경을 기록하려면 arge 정책을 추가합니다.
    # auditconfig -setpolicy +arge

    exec_env 토큰은 명령 환경을 기록합니다.

    header,1460,2,AUE_EXECVE,,mach1,2010-10-14 12:29:39.679 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    exec_env,49,MANPATH=/usr/share/man,USER=jdoe,GDM_KEYBOARD_LAYOUT=us,EDITOR=gedit,
    LANG=en_US.UTF-8,GDM_LANG=en_US.UTF-8,PS1=#,GDMSESSION=gnome,SESSIONTYPE=1,SHLVL=2,
    HOME=/home/jdoe,LOGNAME=jdoe,G_FILENAME_ENCODING=@locale,UTF-8,
    PRINTER=example-dbl,...,_=/usr/bin/ls
    subject,jdoe,root,root,root,root,2502,50036632,82 0 mach1
    return,success,0

특정 파일에 대한 변경 사항 감사 레코드를 찾는 방법

목적이 /etc/passwd/etc/default 디렉토리의 파일과 같이 제한된 수의 파일에 대한 파일 쓰기를 기록하는 것이라면 auditreduce 명령을 사용하여 파일을 찾습니다.

시작하기 전에

auditconfig 명령을 사용하려면 Audit Configuration 권한 프로파일이 지정되어야 합니다. auditreduce 명령을 사용하려면 Audit Review 권한 프로파일이 지정되어야 합니다. 감사 플래그를 사용자 및 역할에 지정하려면 root 역할을 가진 사용자여야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. fw 클래스를 감사합니다.

    사용자나 역할의 감사 플래그에 클래스를 추가하면 시스템 전역 감사 사전 선택 마스크에 클래스를 추가할 때보다 적은 레코드가 생성됩니다. 다음 단계 중 하나를 수행합니다.

    • fw 클래스를 특정 역할에 추가합니다.
      # rolemod -K audit_flags=fw:no root
      # rolemod -K audit_flags=fw:no sysadm
      # rolemod -K audit_flags=fw:no auditadm
      # rolemod -K audit_flags=fw:no netadm
    • fw 클래스를 시스템 전역 플래그에 추가합니다.
      # auditconfig -getflags
      active user default audit flags = lo(0x1000,0x1000)
      configured user default audit flags = lo(0x1000,0x1000)
      # auditconfig -setflags lo,fw
      user default audit flags = lo,fw(0x1002,0x1002)
  3. 또한 성공한 파일 쓰기를 감사합니다.

    성공을 감사하면 실패 및 성공을 감사할 때보다 적은 레코드가 생성됩니다. 다음 단계 중 하나를 수행합니다.

    • +fw 플래그를 특정 역할에 추가합니다.
      # rolemod -K audit_flags=+fw:no root
      # rolemod -K audit_flags=+fw:no sysadm
      # rolemod -K audit_flags=+fw:no auditadm
      # rolemod -K audit_flags=+fw:no netadm
    • +fw 플래그를 시스템 전역 플래그에 추가합니다.
      # auditconfig -getflags
      active user default audit flags = lo(0x1000,0x1000)
      configured user default audit flags = lo(0x1000,0x1000)
      # auditconfig -setflags lo,+fw
      user default audit flags = lo,+fw(0x1002,0x1000)
    • 시스템 전역 플래그가 성공 및 실패에 대해 감사하는 경우 특정 사용자 및 역할에 대한 예외 사항을 설정합니다.
      # auditconfig -getflags
      active user default audit flags = lo,fw(0x1002,0x1002)
      configured user default audit flags = lo,fw(0x1002,0x1002)
      # rolemod -K audit_flags=^-fw:no root
      # rolemod -K audit_flags=^-fw:no sysadm
      # rolemod -K audit_flags=^-fw:no auditadm
      # rolemod -K audit_flags=^-fw:no netadm

      시스템 전역 플래그는 변경되지 않았지만 이러한 네 역할에 대한 사전 선택 마스크가 변경되었습니다.

      # auditconfig -getflags
      active user default audit flags = lo,fw(0x1002,0x1000)
      configured user default audit flags = lo,fw(0x1002,0x1000)
  4. 특정 파일에 대한 감사 레코드를 찾으려면 auditreduce 명령을 사용합니다.
    # auditreduce -o file=/etc/passwd,/etc/default -O filechg

    auditreduce 명령은 file 인수의 모든 인스턴스에 대한 감사 추적을 검색합니다. 명령은 관심 파일의 경로 이름이 포함된 모든 레코드를 포함하는 filechg 접미어의 이진 파일을 만듭니다. -o file=pathname 옵션의 구문은 auditreduce(1M) 매뉴얼 페이지를 참조하십시오.

  5. filechg 파일을 찾으려면 praudit 명령을 사용합니다.
    # praudit *filechg

로그인한 사용자의 사전 선택 마스크를 업데이트하는 방법

이미 로그인한 사용자가 시스템 전역 감사 사전 선택 마스크의 변경 사항에 대해 감사되도록 하고자 합니다.

시작하기 전에

Audit Configuration 권한 프로파일이 지정되어야 합니다. 사용자 세션을 종료하려면 Process Management 권한 프로파일이 지정되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 이미 로그인한 사용자의 사전 선택 마스크를 업데이트합니다.

    두 가지 옵션이 있습니다. 기존 세션을 종료하거나 auditconfig 명령을 사용하여 사전 선택 마스크를 업데이트할 수 있습니다.

    • 사용자의 기존 세션을 종료합니다.

      사용자는 로그아웃하고 다시 로그인할 수 있습니다. 또는 Process Management 권한 프로파일이 지정된 역할을 가진 사용자가 수동으로 활성 세션을 종료할 수 있습니다. 새 세션은 새로운 사전 선택 마스크를 상속합니다. 하지만 사용자 세션을 종료하는 것은 실용적이지 않을 수 있습니다.

    • 각 로그인한 사용자의 사전 선택 마스크를 동적으로 변경합니다.

      Audit Configuration 권한 프로파일이 지정된 역할을 가진 사용자가 시스템 전역 감사 사전 선택 마스크를 lo에서 lo,ex로 변경했다고 가정합니다.

      # auditconfig -setflags lo,ex
      1. 로그인한 일반 사용자 및 프로세스 ID를 나열합니다.
        # who -a
        jdoe  - vt/2         Jan 25 07:56  4:10   1597   (:0)
        jdoe  + pts/1        Jan 25 10:10   .     1706   (:0.0)
        ...
        jdoe  + pts/2        Jan 25 11:36  3:41   1706   (:0.0)
      2. 나중에 비교를 위해 각 사용자의 사전 선택 마스크를 표시합니다.
        # auditconfig -getpinfo 1706
        audit id = jdoe(1234)
        process preselection mask = lo(0x1000,0x1000)
        terminal id (maj,min,host) = 9426,65559,mach1(192.168.123.234)
        audit session id = 103203403
      3. 사용자의 사전 선택 마스크를 수정합니다.
        # auditconfig -setumask jdoe lo,ex /* for this user */
        # auditconfig -setsmask 103203403 lo,ex /* for this session */
        # auditconfig -setpmask 1706 lo,ex /* for this process */
      4. 사용자에 대한 사전 선택 마스크가 변경되었는지 확인합니다.

        예를 들어, 마스크를 변경하기 전에 있었던 프로세스를 확인합니다.

        # auditconfig -getpinfo 1706
        audit id = jdoe(1234)
        process preselection mask = ex,lo(0x40001000,0x40001000) 
        terminal id (maj,min,host) = 9426,65559,mach1(192.168.123.234)
        audit session id = 103203403

특정 이벤트의 감사를 막는 방법

유지 관리를 목적으로 때때로 사이트에서 이벤트가 감사되지 않도록 막을 수 있습니다.

시작하기 전에

root 역할을 가진 사용자여야 합니다.

  1. 이벤트의 클래스를 no 클래스로 변경합니다.

    예를 들어, 이벤트 26 및 27은 pm 클래스에 속해 있습니다.

    ## audit_event file
    ...
    25:AUE_VFORK:vfork(2):ps
    26:AUE_SETGROUPS:setgroups(2):pm
    27:AUE_SETPGRP:setpgrp(2):pm
    28:AUE_SWAPON:swapon(2):no
    ...

    이러한 이벤트를 no 클래스로 변경합니다.

    ## audit_event file
    ...
    25:AUE_VFORK:vfork(2):ps
    26:AUE_SETGROUPS:setgroups(2):no
    27:AUE_SETPGRP:setpgrp(2):no
    28:AUE_SWAPON:swapon(2):no
    ...

    pm 클래스가 현재 감사되는 경우 기존 세션에서는 이벤트 26 및 27을 여전히 감사합니다. 이러한 이벤트의 감사를 중지하려면 로그인한 사용자의 사전 선택 마스크를 업데이트하는 방법의 지침을 따라 사용자의 사전 선택 마스크를 업데이트해야 합니다.


    주의

    주의 - audit_event 파일에서 이벤트를 주석 처리하지 마십시오. 이 파일은 praudit 명령에서 이진 감사 파일을 읽는 데 사용됩니다. 아카이브된 감사 파일은 파일에 나열된 이벤트를 포함할 수 있습니다.


  2. 커널 이벤트를 새로 고칩니다.
    # auditconfig -conf
    Configured 283 kernel events.

이진 감사 파일의 크기를 제한하는 방법

이진 감사 파일은 무제한으로 커집니다. 아카이브 및 검색을 용이하게 하기 위해 크기를 제한할 수 있습니다. 또한 원본 파일에서 더 작은 이진 파일을 만들 수도 있습니다.

시작하기 전에

p_fsize 속성을 설정하려면 Audit Configuration 권한 프로파일이 지정되어야 합니다. auditreduce 명령을 사용하려면 Audit Review 권한 프로파일이 지정되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. p_fsize 속성을 사용하여 개별 이진 감사 파일의 크기를 제한합니다.

    p_fsize 속성에 대한 설명은 audit_binfile(5) 매뉴얼 페이지의 OBJECT ATTRIBUTES 섹션을 참조하십시오.

    예는 예 28-14를 참조하십시오.

  3. 추가 분석을 위해 auditreduce 명령을 사용하여 레코드를 선택하고 이러한 레코드를 더 작은 파일에 씁니다.

    auditreduce -lowercase 옵션은 특정 레코드를 찾습니다.

    auditreduce -Uppercase 옵션은 선택 항목을 파일에 씁니다. 자세한 내용은 auditreduce(1M) 매뉴얼 페이지를 참조하십시오.

전용 파일 시스템에서 감사 파일을 압축하는 방법

감사 파일은 커질 수 있습니다. 예 28-14에 나온 대로 파일 크기에 대한 상한을 설정할 수 있습니다. 이 절차에서는 압축을 사용하여 크기를 줄입니다.

시작하기 전에

ZFS File System Management 및 ZFS Storage Management 권한 프로파일이 지정되어야 합니다. ZFS Storage Management 권한 프로파일을 사용하여 저장소 풀을 만들 수 있습니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 감사 파일에 대한 전용 ZFS 파일 시스템을 만듭니다.

    절차는 감사 파일에 대한 ZFS 파일 시스템을 만드는 방법을 참조하십시오.

  3. 다음 옵션 중 하나를 사용하여 ZFS 저장소 풀을 압축합니다.

    두 옵션 모두 감사 파일 시스템을 압축합니다. 감사 서비스를 새로 고치면 압축률이 표시됩니다.

    압축을 설정하려면 zfs set compression=on dataset 명령을 사용합니다. 다음 예에서 ZFS 풀 auditp/auditf는 데이터 집합입니다.

    • 기본 압축 알고리즘을 사용합니다.
      # zfs set compression=on auditp/auditf
      # audit -s
      # zfs get compressratio auditp/auditf
      NAME           PROPERTY       VALUE  SOURCE
      auditp/auditf  compressratio  4.54x  -
    • 더 높은 압축 알고리즘을 사용합니다.
      # zfs set compression=gzip-9 auditp/auditf
      # zfs get compression auditp/auditf
      NAME           PROPERTY     VALUE     SOURCE
      auditp/auditf  compression  gzip-9    local
      # audit -s
      # zfs get compressratio auditp/auditf
      NAME           PROPERTY       VALUE  SOURCE
      auditp/auditf  compressratio  16.89x  -

      gzip-9 압축 알고리즘을 사용하면 기본 압축 알고리즘인 lzjb보다 1/3 적은 공간을 차지하는 파일이 생성됩니다. 자세한 내용은 Oracle Solaris 관리: ZFS 파일 시스템의 6 장, Oracle Solaris ZFS 파일 시스템 관리를 참조하십시오.

다른 운영 체제에서 로그인을 감사하는 방법

Oracle Solaris OS는 소스와 상관없이 모든 로그인을 감사할 수 있습니다.

시작하기 전에

Audit Configuration 권한 프로파일이 지정되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 지정 가능한 이벤트 및 지정 불가능한 이벤트에 대해 lo 클래스를 감사합니다.

    이 클래스는 로그인, 로그아웃 및 화면 잠금을 감사합니다. 이러한 클래스는 기본적으로 감사됩니다.

    # auditconfig -getflags
    active user default audit flags = lo(0x1000,0x1000)
    configured user default audit flags = lo(0x1000,0x1000)
    # auditconfig -getnaflags
    active non-attributable audit flags = lo(0x1000,0x1000)
    configured non-attributable audit flags = lo(0x1000,0x1000)
  3. 값이 변경된 경우 lo 플래그를 추가합니다.
    # auditconfig -getflags
    active user default audit flags = as,st(0x20800,0x20800)
    configured user default audit flags = as,st(0x20800,0x20800)
    # auditconfig -setflags lo,as,st
    user default audit flags = as,lo,st(0x21800,0x21800)
    # auditconfig -getnaflags
    active non-attributable audit flags = na(0x400,0x400)
    configured non-attributable audit flags = na(0x400,0x400)
    # auditconfig -setnaflags lo,na
    non-attributable audit flags = lo,na(0x1400,0x1400)

    주 - ssh 로그인을 감사하려면 시스템에서 Oracle Solaris의 ssh 데몬을 실행하고 있어야 합니다. 이 데몬은 Oracle Solaris 시스템에서 감사 서비스에 대해 수정됩니다. 자세한 내용은 Secure Shell 및 OpenSSH 프로젝트를 참조하십시오.


FTP 및 SFTP 파일 전송을 감사하는 방법

FTP 서비스는 파일 전송 로그를 만듭니다. ssh 프로토콜로 실행되는 SFTP 서비스는 ft 감사 클래스를 사전 선택하여 감사할 수 있습니다. 두 서비스에 대한 로그인을 감사할 수 있습니다.

시작하기 전에

Audit Configuration 권한 프로파일이 지정되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. FTP 서비스의 명령 및 파일 전송을 기록하려면 proftpd(8) 매뉴얼 페이지를 참조하십시오.

    사용 가능한 로깅 옵션은 “Logging Capabilities” 절을 참조하십시오. 특히, log commands log transfers 옵션은 유용한 로그를 제공할 수 있습니다.

  3. sftp 액세스 및 파일 전송을 기록하려면 ft 클래스를 감사합니다.

    ft 클래스에는 다음 SFTP 트랜잭션이 포함됩니다.

    % auditrecord -c ft
    file transfer: chmod ...
    file transfer: chown ...
    file transfer: download ...
    file transfer: mkdir ...
    file transfer: upload ...
    file transfer: remove ...
    file transfer: rename ...
    file transfer: rmdir ...
    file transfer: session start ...
    file transfer: session end ...
    file transfer: symlink ...
    file transfer: utimes
  4. FTP 서버에 대한 액세스를 기록하려면 lo 클래스를 감사합니다.

    다음 출력에 나온 대로 ftpd 데몬의 로그인 및 로그아웃으로 감사 레코드가 생성됩니다.

    % auditrecord -c lo | more
    ...
    in.ftpd
      program     /usr/sbin/in.ftpd    See ftp access
      event ID    6165                 AUE_ftpd
      class       lo                   (0x0000000000001000)
          subject
          [text]                       error message
          return
    
    in.ftpd
      program     /usr/sbin/in.ftpd    See ftp logout
      event ID    6171                 AUE_ftpd_logout
      class       lo                   (0x0000000000001000)
          subject
          return
    ...