Blame


1 18b2227a 2004-04-28 alex #
2 18b2227a 2004-04-28 alex # Sample systrace policy for ngIRCd on OpenBSD
3 18b2227a 2004-04-28 alex # Author: Benjamin Pineau <ben@zouh.org>
4 18b2227a 2004-04-28 alex #
5 18b2227a 2004-04-28 alex # $Id: systrace.policy,v 1.1 2004/04/28 12:16:59 alex Exp $
6 18b2227a 2004-04-28 alex #
7 18b2227a 2004-04-28 alex # Tune me, put me in /etc/systrace/usr_local_bin_ngircd and start ngIRCd
8 18b2227a 2004-04-28 alex # (with root privileges) as:
9 18b2227a 2004-04-28 alex #
10 18b2227a 2004-04-28 alex # systrace -a /usr/local/bin/ngircd
11 18b2227a 2004-04-28 alex #
12 18b2227a 2004-04-28 alex # I didn't tried this on NetBSD, but it should work as is.
13 18b2227a 2004-04-28 alex #
14 18b2227a 2004-04-28 alex # On systems with pf, it can be supplemented by strict firewall rules:
15 18b2227a 2004-04-28 alex # for a ngircd running as '$ircuser', binding on '$ircport' and accepting
16 18b2227a 2004-04-28 alex # 30 connections:
17 18b2227a 2004-04-28 alex #
18 18b2227a 2004-04-28 alex # block out log quick proto tcp from any port $ircport to any \
19 18b2227a 2004-04-28 alex # user != $ircuser
20 18b2227a 2004-04-28 alex # pass in inet proto tcp from any to any port $ircport user $ircuser \
21 18b2227a 2004-04-28 alex # keep state (max 30) flags S/SA
22 18b2227a 2004-04-28 alex #
23 18b2227a 2004-04-28 alex
24 18b2227a 2004-04-28 alex Policy: /usr/local/bin/ngircd, Emulation: native
25 18b2227a 2004-04-28 alex native-__sysctl: permit
26 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/malloc.conf" then permit
27 18b2227a 2004-04-28 alex native-fsread: filename sub "/usr/share/zoneinfo/" then permit
28 18b2227a 2004-04-28 alex native-fsread: filename eq "/usr/local/etc/ngircd.conf" then permit
29 18b2227a 2004-04-28 alex native-fsread: filename eq "/usr/local/etc/ngircd.motd" then permit
30 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/ngircd.conf" then permit
31 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/ngircd.motd" then permit
32 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/spwd.db" then deny[eperm]
33 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/group" then permit
34 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/resolv.conf" then permit
35 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/localtime" then permit
36 18b2227a 2004-04-28 alex native-fsread: filename eq "/etc/hosts" then permit
37 18b2227a 2004-04-28 alex native-fsread: filename sub "<non-existent filename>" then deny[enoent]
38 18b2227a 2004-04-28 alex native-socket: sockdom eq "AF_UNIX" and socktype eq "SOCK_DGRAM" then permit
39 18b2227a 2004-04-28 alex native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_STREAM" then permit
40 18b2227a 2004-04-28 alex native-bind: sockaddr match "inet-*:6667" then permit, if user != root
41 18b2227a 2004-04-28 alex native-connect: sockaddr eq "/dev/log" then permit, if user != root
42 18b2227a 2004-04-28 alex native-connect: sockaddr match "inet-*:53" then permit, if user != root
43 18b2227a 2004-04-28 alex native-setsockopt: permit, if user != root
44 18b2227a 2004-04-28 alex native-listen: permit, if user != root
45 18b2227a 2004-04-28 alex native-accept: permit, if user != root
46 18b2227a 2004-04-28 alex native-sendto: true then permit, if user != root
47 18b2227a 2004-04-28 alex native-recvfrom: permit, if user != root
48 18b2227a 2004-04-28 alex native-read: permit
49 18b2227a 2004-04-28 alex native-pread: permit
50 18b2227a 2004-04-28 alex native-write: permit, if user != root
51 18b2227a 2004-04-28 alex native-mmap: permit
52 18b2227a 2004-04-28 alex native-munmap: permit
53 18b2227a 2004-04-28 alex native-mprotect: permit
54 18b2227a 2004-04-28 alex native-break: permit
55 18b2227a 2004-04-28 alex native-umask: permit
56 18b2227a 2004-04-28 alex native-fork: permit
57 18b2227a 2004-04-28 alex native-setsid: permit
58 18b2227a 2004-04-28 alex native-chdir: permit
59 18b2227a 2004-04-28 alex native-chroot: permit
60 18b2227a 2004-04-28 alex native-setgid: gid neq "0" then permit
61 18b2227a 2004-04-28 alex native-setuid: uid neq "0" and uname neq "root" then permit
62 18b2227a 2004-04-28 alex native-getuid: permit
63 18b2227a 2004-04-28 alex native-getgid: permit
64 18b2227a 2004-04-28 alex native-gettimeofday: permit
65 18b2227a 2004-04-28 alex native-getpid: permit
66 18b2227a 2004-04-28 alex native-select: permit
67 18b2227a 2004-04-28 alex native-fcntl: permit
68 18b2227a 2004-04-28 alex native-fstat: permit
69 18b2227a 2004-04-28 alex native-issetugid: permit
70 18b2227a 2004-04-28 alex native-sigaction: permit
71 18b2227a 2004-04-28 alex native-pipe: permit
72 18b2227a 2004-04-28 alex native-sigreturn: permit
73 18b2227a 2004-04-28 alex native-close: permit
74 18b2227a 2004-04-28 alex native-exit: permit
75 18b2227a 2004-04-28 alex native-fswrite: deny[eperm]
76 18b2227a 2004-04-28 alex
77 18b2227a 2004-04-28 alex # -eof-