]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/samhain/files/common/samhainrc
bedfc57c87d3c39daf3651fa59637c4aaad595cd
[dsa-puppet.git] / modules / samhain / files / common / samhainrc
1 ##
2 ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
3 ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
4 ##
5
6 #####################################################################
7 #
8 # Configuration file template for samhain.
9 #
10 #####################################################################
11
12 # -- empty lines and lines starting with '#', ';' or '//' are ignored
13 # -- boolean options can be Yes/No or True/False or 1/0 
14 # -- you can PGP clearsign this file -- samhain will check (if compiled
15 #    with support) or otherwise ignore the signature
16 # -- CHECK mail address
17 #
18 # To each log facility, you can assign a threshold severity. Only
19 # reports with at least the threshold severity will be logged
20 # to the respective facility (even further below).
21 #
22 #####################################################################
23 #
24 # SETUP for file system checking:
25
26 # (i)   There are several policies, each has its own section. Put files
27 #       into the section for the appropriate policy (see below).
28 # (ii)  Section [EventSeverity]: 
29 #       To each policy, you can assign a severity (further below).
30 # (iii) Section [Log]: 
31 #       To each log facility, you can assign a threshold severity. Only
32 #       reports with at least the threshold severity will be logged
33 #       to the respective facility (even further below).
34 #
35 #####################################################################
36
37 #####################################################################
38 #
39 # Files are defined with: file = /absolute/path
40 #
41 # Directories are defined with:                  dir = /absolute/path
42 # or with an optional recursion depth (N <= 99): dir = N/absolute/path
43 #
44 # Directory inodes are checked. If you only want to check files
45 # in a directory, but not the directory inode itself, use (e.g.):
46 #
47 # [ReadOnly]
48 # dir = /some/directory
49 # [IgnoreAll]
50 # file = /some/directory
51 #
52 # You can use shell-style globbing patterns, like: file = /path/foo*
53
54 ######################################################################
55
56 [Misc]
57 ##
58 ## Add or subtract tests from the policies
59 ## - if you want to change their definitions,
60 ##   you need to do that before using the policies
61 ##
62 # RedefReadOnly = (no default)
63 # RedefAttributes=(no default)
64 # RedefLogFiles=(no default)
65 # RedefGrowingLogFiles=(no default)
66 # RedefIgnoreAll=(no default)
67 # RedefIgnoreNone=(no default)
68 # RedefUser0=(no default)
69 # RedefUser1=(no default)
70
71 [Attributes]
72 ##
73 ## for these files, only changes in permissions and ownership are checked
74 ##
75 file=/etc/mtab
76 file=/etc/ssh_random_seed
77 file=/etc/asound.conf
78 file=/etc/resolv.conf
79 file=/etc/localtime
80 file=/etc/ioctl.save
81 file=/etc/passwd.backup
82 file=/etc/shadow.backup
83 file=/etc/postfix/prng_exch
84 file=/etc/adjtime
85 file=/etc/lvm/.cache
86 file=/etc/network/run/ifstate
87 file=/var/state/samhain/samhain_file
88 file=/etc/bind/db.debian.net
89 file=/etc/exim4/bsmtp
90
91
92 #
93 # There are files in /etc that might change, thus changing the directory
94 # timestamps. Put it here as 'file', and in the ReadOnly section as 'dir'.
95 #
96 file=/etc
97 file=/etc/ssh
98 file=/etc/network/run
99 file=/etc/bind
100
101 # These are the directories for the files we handle with puppet
102 file=/etc/samhain
103 file=/etc/munin
104 file=/etc/exim4
105 file=/etc/apt/apt.conf.d
106 file=/etc/apt/sources.list.d
107 file=/etc/puppet
108 file=/etc/default
109 file=/etc/logrotate.d
110
111 [LogFiles]
112 ##
113 ## for these files, changes in signature, timestamps, and size are ignored 
114 ##
115 file=/var/run/utmp
116 file=/etc/motd
117
118
119
120 #####################################################################
121 #
122 # This would be the proper syntax for parts that should only be
123 #    included for certain hosts.
124 # You may enclose anything in a @HOSTNAME/@end bracket, as long as the
125 #    result still has the proper syntax for the config file.
126 # You may have any number of @HOSTNAME/@end brackets.
127 # HOSTNAME should be the fully qualified 'official' name 
128 #    (e.g. 'nixon.watergate.com', not 'nixon'), no aliases. 
129 #    No IP number - except if samhain cannot determine the 
130 #    fully qualified hostname.
131 #
132 # @HOSTNAME
133 # file=/foo/bar
134 # @end
135 #
136 # These are two examples for conditional inclusion/exclusion
137 # of a machine based on the output from 'uname -srm'
138 #
139 # $Linux:2.*.7:i666
140 # file=/foo/bar3
141 # $end
142 #
143 # !$Linux:2.*.7:i686
144 # file=/foo/bar2
145 # $end
146 #
147 #####################################################################
148
149 [GrowingLogFiles]
150 ##
151 ## for these files, changes in signature, timestamps, and increase in size
152 ##                  are ignored 
153 ##
154 file=/var/log/warn
155 file=/var/log/messages
156 file=/var/log/wtmp
157 file=/var/log/faillog
158 file=/var/log/auth.log
159 file=/var/log/daemon.log
160 file=/var/log/user.log
161 file=/var/log/kern.log
162 file=/var/log/syslog
163
164
165 [IgnoreAll]
166 ##
167 ## for these files, no modifications are reported
168 ##
169 ## This file might be created or removed by the system sometimes.
170 ##
171 file=/etc/resolv.conf.pcmcia.save
172 file=/etc/nologin
173 file=/etc/postfix/debian.db
174 file=/etc/postfix/debian
175 file=/etc/ssh/ssh_known_hosts
176 file=/etc/ssh/ssh-rsa-shadow
177 file=/var/lib/misc/ssh-rsa-shadow
178 file=/etc/.da-backup.trace
179 file=/etc/postfix/debianhosts
180 file=/etc/postfix/debianhosts.db
181
182 # We handle these files with puppet - please to not be bothering us
183 file=/etc/samhain/samhainrc
184 file=/etc/munin/munin-node.conf
185 file=/etc/exim4/blacklist
186 file=/etc/exim4/callout_users
187 file=/etc/exim4/exim4.conf
188 file=/etc/exim4/grey_users
189 file=/etc/exim4/helo-check
190 file=/etc/exim4/locals
191 file=/etc/exim4/localusers
192 file=/etc/exim4/rbllist
193 file=/etc/exim4/rcpthosts
194 file=/etc/exim4/rhsbllist
195 file=/etc/exim4/virtualdomains
196 file=/etc/exim4/whitelist
197 file=/etc/apt/sources.list.d/volatile.list
198 file=/etc/apt/sources.list.d/security.list
199 file=/etc/apt/sources.list.d/debian.org.list
200 file=/etc/apt/sources.list.d/debian.restricted.list
201 file=/etc/apt/sources.list.d/debian.list
202 file=/etc/apt/sources.list.d/backports.org.list
203 file=/etc/apt/apt.conf.d/local-recommends
204 file=/etc/puppet/puppet.conf
205 file=/etc/default/puppet
206 file=/etc/logrotate.d/exim4-paniclog
207 file=/etc/logrotate.d/exim4-base
208
209 [IgnoreNone]
210 ##
211 ## for these files, all modifications (even access time) are reported
212 ##    - you may create some interesting-looking file (like /etc/safe_passwd),
213 ##      just to watch whether someone will access it ...
214 ##
215
216 [Prelink]
217 ##
218 ## Use for prelinked files or directories holding them
219 ##
220
221
222 [ReadOnly]
223 ##
224 ## for these files, only access time is ignored
225 ##
226 dir=/usr/bin
227 dir=/bin
228 dir=/boot
229 #
230 # SuSE (old) has the boot init scripts in /sbin/init.d/*, 
231 # so we go 3 levels deep
232 #
233 dir=3/sbin
234 dir=/usr/sbin
235 dir=/lib
236 dir=3/usr/lib
237 #
238 # RedHat and Debian have the bootinit scripts in /etc/init.d/* or /etc/rc.d/*, 
239 #        so we go 3 levels deep there too
240 #
241 dir=3/etc
242
243 # Various directories / files that may include / be SUID/SGID binaries
244 #
245 #
246 file=/usr/lib/pt_chown
247 # X11, in Debian X7 this is now a symlink
248 #dir=/usr/X11R6/bin
249 #dir=/usr/X11R6/lib/X11/xmcd/bin
250 # Apache:
251 #file=/usr/lib/apache/suexec
252 #file=/usr/lib/apache/suexec.disabled
253 # Extra directories:
254 #dir=/opt/gnome/bin
255 #dir=/opt/kde/bin
256
257 [User0]
258 [User1]
259 ## User0 and User1 are sections for files/dirs with user-definable checking
260 ## (see the manual) 
261
262
263 [EventSeverity]
264 ##
265 ## Here you can assign severities to policy violations.
266 ## If this severity exceeds the treshold of a log facility (see below),
267 ## a policy violation will be logged to that facility.
268 ##
269 ## Severity for verification failures.
270 ##
271 # SeverityReadOnly=crit
272 # SeverityLogFiles=crit
273 # SeverityGrowingLogs=crit
274 # SeverityIgnoreNone=crit
275 # SeverityAttributes=crit
276 # SeverityUser0=crit
277 # SeverityUser1=crit
278
279 # Default behaviour
280 SeverityReadOnly=crit
281 SeverityLogFiles=crit
282 SeverityGrowingLogs=warn
283 SeverityIgnoreNone=crit
284 SeverityAttributes=crit
285
286
287 ##
288 ## We have a file in IgnoreAll that might or might not be present.
289 ## Setting the severity to 'info' prevents messages about deleted/new file.
290 ##
291 # SeverityIgnoreAll=crit
292 SeverityIgnoreAll=info
293
294 ## Files : file access problems
295 # SeverityFiles=crit
296
297 ## Dirs  : directory access problems
298 # SeverityDirs=crit
299
300 ## Names : suspect (non-printable) characters in a pathname
301 # SeverityNames=crit
302
303 # Default behaviour
304 SeverityFiles=crit
305 SeverityDirs=crit
306 SeverityNames=warn
307
308
309 [Log]
310 ##
311 ## Switch on/OFF log facilities and set their threshold severity
312 ##
313 ## Values: debug, info, notice, warn, mark, err, crit, alert, none.
314 ## 'mark' is used for timestamps.
315 ##
316 ##
317 ## Use 'none' to SWITCH OFF a log facility
318 ## 
319 ## By default, everything equal to and above the threshold is logged.
320 ## The specifiers '*', '!', and '=' are interpreted as  
321 ## 'all', 'all but', and 'only', respectively (like syslogd(8) does, 
322 ## at least on Linux). Examples:
323 ## MailSeverity=*
324 ## MailSeverity=!warn
325 ## MailSeverity==crit
326
327 ## E-mail
328 ##
329 # MailSeverity=none
330
331 ## Console
332 ##
333 # PrintSeverity=info
334
335 ## Logfile
336 ##
337 # LogSeverity=mark
338
339 ## Syslog
340 ##
341 # SyslogSeverity=none
342
343 ## Remote server (yule)
344 ##
345 # ExportSeverity=none
346
347 ## External script or program
348 ##
349 # ExternalSeverity = none
350
351 ## Logging to a database
352 ##
353 # DatabaseSeverity = none
354
355 # Default behaviour
356 MailSeverity=crit
357 PrintSeverity=none
358 LogSeverity=info
359 SyslogSeverity=alert
360 ExportSeverity=none
361
362
363
364
365
366 #####################################################
367 #
368 # Optional modules
369 #
370 #####################################################
371
372 # [SuidCheck]
373 ##
374 ## --- Check the filesystem for SUID/SGID binaries
375 ## 
376
377 ## Switch on
378 #
379 # SuidCheckActive = yes
380
381 ## Interval for check (seconds)
382 #
383 # SuidCheckInterval = 7200
384
385 ## Alternative: crontab-like schedule
386 #
387 # SuidCheckSchedule = NULL
388  
389 ## Directory to exclude 
390 #
391 # SuidCheckExclude = NULL
392
393 ## Limit on files per second (0 == no limit)
394 #
395 # SuidCheckFps = 0
396
397 ## Alternative: yield after every file
398 #
399 # SuidCheckYield = no
400
401 ## Severity of a detection
402 #
403 # SeveritySuidCheck = crit
404
405 ## Quarantine SUID/SGID files if found
406 #
407 # SuidCheckQuarantineFiles = yes
408
409 ## Method for Quarantining files:
410 #  0 - Delete or truncate the file.
411 #  1 - Remove SUID/SGID permissions from file.
412 #  2 - Move SUID/SGID file to quarantine dir.
413 #
414 # SuidCheckQuarantineMethod = 0
415
416 ## For method 1 and 3, really delete instead of truncating
417
418 # SuidCheckQuarantineDelete = yes
419
420 # [Kernel]
421 ##
422 ## --- Check for loadable kernel module rootkits (Linux/FreeBSD only) 
423 ##
424
425 ## Switch on/off
426 #
427 KernelCheckActive = True
428
429 ## Check interval (seconds); btw., the check is VERY fast
430 #
431 # KernelCheckInterval = 300
432
433 ## Severity
434 #
435 # SeverityKernel = crit
436
437
438 # [Utmp]
439 ##
440 ## --- Logging of login/logout events
441 ##
442
443 ## Switch on/off
444 #
445 LoginCheckActive = True
446
447 ## Severity for logins, multiple logins, logouts
448
449 # SeverityLogin=info
450 # SeverityLoginMulti=warn
451 # SeverityLogout=info
452
453 ## Interval for login/logout checks
454 #
455 # LoginCheckInterval = 300
456
457
458 # [Database]
459 ##
460 ## --- Logging to a relational database
461 ##
462
463 ## Database name
464 #
465 # SetDBName = samhain
466
467 ## Database table
468 #
469 # SetDBTable = log
470
471 ## Database user
472 #
473 # SetDBUser = samhain
474
475 ## Database password
476 #
477 # SetDBPassword = (default: none)
478
479 ## Database host
480 #
481 # SetDBHost = localhost
482
483 ## Log the server timestamp for received messages
484 #
485 # SetDBServerTstamp = True
486
487 ## Use a persistent connection
488 #
489 # UsePersistent = True
490
491 # [External]
492 ##
493 ## Interface to call external scripts/programs for logging
494 ##
495
496 ## The absolute path to the command
497 ## - Each invocation of this directive will end the definition of the
498 ##   preceding command, and start the definition of 
499 ##   an additional, new command
500 #
501 # OpenCommand = (no default)
502
503 ## Type (log or rv)
504 ## - log for log messages, srv for messages received by the server
505 #
506 # SetType = log
507
508 ## The command (full command line) to execute
509 #
510 # SetCommandLine = (no default)
511
512 ## The environment (KEY=value; repeat for more)
513 #
514 # SetEnviron = TZ=(your timezone)
515
516 ## The TIGER192 checksum (optional)
517 #
518 # SetChecksum = (no default)
519
520 ## User who runs the command
521 #
522 # SetCredentials = (default: samhain process uid)
523
524 ## Words not allowed in message
525 #
526 # SetFilterNot = (none)
527
528 ## Words required (ALL of them)
529 #
530 # SetFilterAnd = (none)
531
532 ## Words required (at least one)
533 #
534 # SetFilterOr = (none)
535
536 ## Deadtime between consecutive calls
537 #
538 # SetDeadtime = 0
539
540 ## Add default environment (HOME, PATH, SHELL)
541 #
542 # SetDefault = no
543
544
545 #####################################################
546 #
547 # Miscellaneous configuration options
548 #
549 #####################################################
550
551 [Misc]
552
553 ## whether to become a daemon process
554 ## (this is not honoured on database initialisation)
555 #
556 # Daemon = no
557 Daemon = yes
558
559 ## whether to test signature of files (init/check/none)
560 ## - if 'none', then we have to decide this on the command line -
561 #
562 # ChecksumTest = none
563 ChecksumTest=check
564
565 ## whether to drop linux capabilities that are not required
566 ## - will make a root process a 'mere mortal' in many respects
567 #
568 # UseCaps = yes
569
570 ## Set nice level (-19 to 19, see 'man nice'),
571 ## and I/O limit (kilobytes per second; 0 == off)
572 ## to reduce load on host.
573 #
574 # SetNiceLevel = 0
575 # SetIOLimit = 0
576
577 ## The version string to embed in file signature databases
578 #
579 # VersionString = NULL
580
581 ## Interval between time stamp messages
582 #
583 # SetLoopTime = 60
584 SetLoopTime = 600
585
586 ## Interval between file checks 
587 #
588 # SetFileCheckTime = 600
589 SetFileCheckTime = 7200
590
591 ## Alternative: crontab-like schedule
592 #
593 # FileCheckScheduleOne = NULL
594
595 ## Alternative: crontab-like schedule(2)
596 #
597 # FileCheckScheduleTwo = NULL
598
599 ## Report only once on modified fles 
600 ## Setting this to 'FALSE' will generate a report for any policy 
601 ## violation (old and new ones) each time the daemon checks the file system.
602 #
603 # ReportOnlyOnce = True
604
605 ## Report in full detail
606 #
607 # ReportFullDetail = False
608
609 ## Report file timestamps in local time rather than GMT
610 #
611 # UseLocalTime = No
612
613 ## The console device (can also be a file or named pipe)
614 ## - There are two console devices. Accordingly, you can use
615 ##   this directive a second time to set the second console device.
616 ##   If you have not defined the second device at compile time,
617 ##   and you don't want to use it, then:
618 ##   setting it to /dev/null is less effective than just leaving
619 ##   it alone (setting to /dev/null will waste time by opening
620 ##   /dev/null and writing to it)
621 #
622 # SetConsole = /dev/console
623
624 ## Activate the SysV IPC message queue
625 #
626 # MessageQueueActive = False
627
628
629 ## If false, skip reverse lookup when connecting to a host known 
630 ## by name rather than IP address (i.e. trust the DNS)
631 #
632 # SetReverseLookup = True
633
634 ## --- E-Mail ---
635
636 # Only highest-level (alert) reports will be mailed immediately,
637 # others will be queued. Here you can define, when the queue will
638 # be flushed (Note: the queue is automatically flushed after
639 # completing a file check).
640 #
641 SetMailTime = 86400
642
643 ## Maximum number of mails to queue
644 #
645 SetMailNum = 10
646
647 ## Recipient (max. 8)
648 #
649 SetMailAddress=samhain-reports@debian.org
650
651 ## Mail relay (IP address)
652 #
653 SetMailRelay = master.debian.org
654
655 ## Custom subject format
656 #
657 MailSubject = [Samhain at %H] %T: %S
658
659 ## --- end E-Mail ---
660
661 ## Path to the prelink executable
662 #
663 # SetPrelinkPath = /usr/sbin/prelink
664
665 ## TIGER192 checksum of the prelink executable
666 #
667 # SetPrelinkChecksum = (no default)
668
669
670 ## Path to the executable. If set, will be checksummed after startup
671 ## and before exit.
672 #
673 # SamhainPath = (no default)
674
675
676 ## The IP address of the log server
677 #
678 # SetLogServer = (default: compiled-in)
679
680 ## The IP address of the time server
681 #
682 # SetTimeServer = (default: compiled-in)
683
684 ## Trusted Users (comma delimited list of user names) 
685 #
686 # TrustedUser = (no default; this adds to the compiled-in list)
687
688 ## Path to the file signature database
689 #
690 # SetDatabasePath = (default: compiled-in)
691
692 ## Path to the log file
693 #
694 # SetLogfilePath = (default: compiled-in)
695
696 ## Path to the PID file
697 #
698 # SetLockPath = (default: compiled-in)
699
700
701 ## The digest/checksum/hash algorithm
702 #
703 # DigestAlgo = TIGER192
704
705
706 ## Custom format for message header. 
707 ## CAREFUL if you use XML logfile format.
708 ##
709 ## %S severity
710 ## %T timestamp
711 ## %C class
712 ##
713 ## %F source file
714 ## %L source line
715 #
716 # MessageHeader="%S %T "
717
718
719 ## Don't log path to config/database file on startup
720 #
721 # HideSetup = False
722
723 ## The syslog facility, if you log to syslog
724 #
725 # SyslogFacility = LOG_AUTHPRIV
726 SyslogFacility=LOG_LOCAL2
727
728 ## The message authentication method
729 ## - If you change this, you *must* change it
730 ##   on client *and* server
731 #
732 # MACType = HMAC-TIGER
733
734
735 ## everything below is ignored
736 [EOF]
737
738 #####################################################################
739 # This would be the proper syntax for parts that should only be
740 #    included for certain hosts.
741 # You may enclose anything in a @HOSTNAME/@end bracket, as long as the
742 #    result still has the proper syntax for the config file.
743 # You may have any number of @HOSTNAME/@end brackets.
744 # HOSTNAME should be the fully qualified 'official' name 
745 #    (e.g. 'nixon.watergate.com', not 'nixon'), no aliases. 
746 #    No IP number - except if samhain cannot determine the 
747 #    fully qualified hostname.
748 #
749 # @HOSTNAME
750 # file=/foo/bar
751 # @end
752 #
753 # These are two examples for conditional inclusion/exclusion
754 # of a machine based on the output from 'uname -srm'
755 # $Linux:2.*.7:i666
756 # file=/foo/bar3
757 # $end
758 #
759 # !$Linux:2.*.7:i686
760 # file=/foo/bar2
761 # $end
762 #
763 #####################################################################