diff options
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | configure.ac | 11 | ||||
-rw-r--r-- | sandbox-tame.c | 8 |
3 files changed, 17 insertions, 4 deletions
diff --git a/Makefile.in b/Makefile.in index 0901f4225..8305cec9d 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -110,7 +110,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o \ | |||
110 | sftp-server.o sftp-common.o \ | 110 | sftp-server.o sftp-common.o \ |
111 | roaming_common.o roaming_serv.o \ | 111 | roaming_common.o roaming_serv.o \ |
112 | sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ | 112 | sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ |
113 | sandbox-seccomp-filter.o sandbox-capsicum.o | 113 | sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-tame.o |
114 | 114 | ||
115 | MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out | 115 | MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out sshd_config.5.out ssh_config.5.out |
116 | MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 | 116 | MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 sshd_config.5 ssh_config.5 |
diff --git a/configure.ac b/configure.ac index d900df4b5..1693cfae8 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -854,6 +854,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
854 | AC_DEFINE([SYSLOG_R_SAFE_IN_SIGHAND], [1], | 854 | AC_DEFINE([SYSLOG_R_SAFE_IN_SIGHAND], [1], |
855 | [syslog_r function is safe to use in in a signal handler]) | 855 | [syslog_r function is safe to use in in a signal handler]) |
856 | TEST_MALLOC_OPTIONS="AFGJPRX" | 856 | TEST_MALLOC_OPTIONS="AFGJPRX" |
857 | AC_CHECK_FUNCS([tame]) | ||
857 | ;; | 858 | ;; |
858 | *-*-solaris*) | 859 | *-*-solaris*) |
859 | if test "x$withval" != "xno" ; then | 860 | if test "x$withval" != "xno" ; then |
@@ -2997,7 +2998,7 @@ fi | |||
2997 | # Decide which sandbox style to use | 2998 | # Decide which sandbox style to use |
2998 | sandbox_arg="" | 2999 | sandbox_arg="" |
2999 | AC_ARG_WITH([sandbox], | 3000 | AC_ARG_WITH([sandbox], |
3000 | [ --with-sandbox=style Specify privilege separation sandbox (no, darwin, rlimit, systrace, seccomp_filter, capsicum)], | 3001 | [ --with-sandbox=style Specify privilege separation sandbox (no, capsicum, darwin, rlimit, seccomp_filter, systrace, tame)], |
3001 | [ | 3002 | [ |
3002 | if test "x$withval" = "xyes" ; then | 3003 | if test "x$withval" = "xyes" ; then |
3003 | sandbox_arg="" | 3004 | sandbox_arg="" |
@@ -3093,7 +3094,13 @@ AC_RUN_IFELSE( | |||
3093 | [AC_MSG_WARN([cross compiling: assuming yes])] | 3094 | [AC_MSG_WARN([cross compiling: assuming yes])] |
3094 | ) | 3095 | ) |
3095 | 3096 | ||
3096 | if test "x$sandbox_arg" = "xsystrace" || \ | 3097 | if test "x$sandbox_arg" = "xtame" || \ |
3098 | ( test -z "$sandbox_arg" && test "x$ac_cv_func_tame" = "xyes" ) ; then | ||
3099 | test "x$ac_cv_func_tame" != "xyes" && \ | ||
3100 | AC_MSG_ERROR([tame sandbox requires tame(2) support]) | ||
3101 | SANDBOX_STYLE="tame" | ||
3102 | AC_DEFINE([SANDBOX_TAME], [1], [Sandbox using tame(2)]) | ||
3103 | elif test "x$sandbox_arg" = "xsystrace" || \ | ||
3097 | ( test -z "$sandbox_arg" && test "x$have_systr_policy_kill" = "x1" ) ; then | 3104 | ( test -z "$sandbox_arg" && test "x$have_systr_policy_kill" = "x1" ) ; then |
3098 | test "x$have_systr_policy_kill" != "x1" && \ | 3105 | test "x$have_systr_policy_kill" != "x1" && \ |
3099 | AC_MSG_ERROR([systrace sandbox requires systrace headers and SYSTR_POLICY_KILL support]) | 3106 | AC_MSG_ERROR([systrace sandbox requires systrace headers and SYSTR_POLICY_KILL support]) |
diff --git a/sandbox-tame.c b/sandbox-tame.c index 12c91adea..daa3f3a74 100644 --- a/sandbox-tame.c +++ b/sandbox-tame.c | |||
@@ -15,6 +15,10 @@ | |||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include "includes.h" | ||
19 | |||
20 | #ifdef SANDBOX_TAME | ||
21 | |||
18 | #include <sys/types.h> | 22 | #include <sys/types.h> |
19 | #include <sys/ioctl.h> | 23 | #include <sys/ioctl.h> |
20 | #include <sys/syscall.h> | 24 | #include <sys/syscall.h> |
@@ -38,7 +42,7 @@ struct ssh_sandbox { | |||
38 | }; | 42 | }; |
39 | 43 | ||
40 | struct ssh_sandbox * | 44 | struct ssh_sandbox * |
41 | ssh_sandbox_init(void) | 45 | ssh_sandbox_init(struct monitor *m) |
42 | { | 46 | { |
43 | struct ssh_sandbox *box; | 47 | struct ssh_sandbox *box; |
44 | 48 | ||
@@ -69,3 +73,5 @@ ssh_sandbox_parent_preauth(struct ssh_sandbox *box, pid_t child_pid) | |||
69 | box->child_pid = child_pid; | 73 | box->child_pid = child_pid; |
70 | /* Nothing to do here */ | 74 | /* Nothing to do here */ |
71 | } | 75 | } |
76 | |||
77 | #endif /* SANDBOX_TAME */ | ||