Viewing file:      audit.h (4.18 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
/* audit.h -- Auditing support -*- linux-c -*-  *  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.  * All Rights Reserved.  *  * This program is free software; you can redistribute it and/or modify  * it under the terms of the GNU General Public License as published by  * the Free Software Foundation; either version 2 of the License, or  * (at your option) any later version.  *  * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  * GNU General Public License for more details.  *  * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  *  * Written by Rickard E. (Rik) Faith <faith@redhat.com>  *  */
  #ifndef _LINUX_AUDIT_H_ #define _LINUX_AUDIT_H_
  /* Request and reply types */ #define AUDIT_GET      1000    /* Get status */ #define AUDIT_SET      1001    /* Set status (enable/disable/auditd) */ #define AUDIT_LIST     1002    /* List filtering rules */ #define AUDIT_ADD      1003    /* Add filtering rule */ #define AUDIT_DEL      1004    /* Delete filtering rule */ #define AUDIT_USER     1005    /* Send a message from user-space */ #define AUDIT_LOGIN    1006     /* Define the login id and informaiton */ #define AUDIT_KERNEL   2000    /* Asynchronous audit record. NOT A REQUEST. */
  /* Rule flags */ #define AUDIT_PER_TASK 0x01    /* Apply rule at task creation (not syscall) */ #define AUDIT_AT_ENTRY 0x02    /* Apply rule at syscall entry */ #define AUDIT_AT_EXIT  0x04    /* Apply rule at syscall exit */ #define AUDIT_PREPEND  0x10    /* Prepend to front of list */
  /* Rule actions */ #define AUDIT_NEVER    0    /* Do not build context if rule matches */ #define AUDIT_POSSIBLE 1    /* Build context if rule matches  */ #define AUDIT_ALWAYS   2    /* Generate audit record if rule matches */
  /* Rule structure sizes -- if these change, different AUDIT_ADD and  * AUDIT_LIST commands must be implemented. */ #define AUDIT_MAX_FIELDS   64 #define AUDIT_BITMASK_SIZE 64 #define AUDIT_WORD(nr) ((uint32_t)((nr)/32)) #define AUDIT_BIT(nr)  (1 << ((nr) - AUDIT_WORD(nr)*32))
  /* Rule fields */                 /* These are useful when checking the                  * task structure at task creation time                  * (AUDIT_PER_TASK).  */ #define AUDIT_PID    0 #define AUDIT_UID    1 #define AUDIT_EUID    2 #define AUDIT_SUID    3 #define AUDIT_FSUID    4 #define AUDIT_GID    5 #define AUDIT_EGID    6 #define AUDIT_SGID    7 #define AUDIT_FSGID    8 #define AUDIT_LOGINUID    9 #define AUDIT_PERS    10
                  /* These are ONLY useful when checking                  * at syscall exit time (AUDIT_AT_EXIT). */ #define AUDIT_DEVMAJOR    100 #define AUDIT_DEVMINOR    101 #define AUDIT_INODE    102 #define AUDIT_EXIT    103 #define AUDIT_SUCCESS   104    /* exit >= 0; value ignored */
  #define AUDIT_ARG0      200 #define AUDIT_ARG1      (AUDIT_ARG0+1) #define AUDIT_ARG2      (AUDIT_ARG0+2) #define AUDIT_ARG3      (AUDIT_ARG0+3)
  #define AUDIT_NEGATE    0x80000000
 
  /* Status symbols */                 /* Mask values */ #define AUDIT_STATUS_ENABLED        0x0001 #define AUDIT_STATUS_FAILURE        0x0002 #define AUDIT_STATUS_PID        0x0004 #define AUDIT_STATUS_RATE_LIMIT        0x0008 #define AUDIT_STATUS_BACKLOG_LIMIT    0x0010                 /* Failure-to-log actions */ #define AUDIT_FAIL_SILENT    0 #define AUDIT_FAIL_PRINTK    1 #define AUDIT_FAIL_PANIC    2
  struct audit_message {     struct nlmsghdr    nlh;     char        data[1200]; };
  struct audit_status {     uint32_t        mask;        /* Bit mask for valid entries */     uint32_t        enabled;    /* 1 = enabled, 0 = disbaled */     uint32_t        failure;    /* Failure-to-log action */     uint32_t        pid;        /* pid of auditd process */     uint32_t        rate_limit;    /* messages rate limit (per second) */     uint32_t        backlog_limit;    /* waiting messages limit */     uint32_t        lost;        /* messages lost */     uint32_t        backlog;    /* messages waiting in queue */ };
  struct audit_rule {        /* for AUDIT_LIST, AUDIT_ADD, and AUDIT_DEL */     uint32_t        flags;    /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */     uint32_t        action;    /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */     uint32_t        field_count;     uint32_t        mask[AUDIT_BITMASK_SIZE];     uint32_t        fields[AUDIT_MAX_FIELDS];     uint32_t        values[AUDIT_MAX_FIELDS]; };
  #endif /* _LINUX_AUDIT_H_ */ 
  |