summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2014-10-07 13:33:15 +0100
committerColin Watson <cjwatson@debian.org>2014-10-07 14:27:30 +0100
commitf0b009aea83e9ff3a50be30f51012099a5143c16 (patch)
tree3825e6f7e3b7ea4481d06ed89aba9a7a95150df5 /configure.ac
parent47f0bad4330b16ec3bad870fcf9839c196e42c12 (diff)
parent762c062828f5a8f6ed189ed6e44ad38fd92f8b36 (diff)
Merge 6.7p1.
* New upstream release (http://www.openssh.com/txt/release-6.7): - sshd(8): The default set of ciphers and MACs has been altered to remove unsafe algorithms. In particular, CBC ciphers and arcfour* are disabled by default. The full set of algorithms remains available if configured explicitly via the Ciphers and MACs sshd_config options. - ssh(1), sshd(8): Add support for Unix domain socket forwarding. A remote TCP port may be forwarded to a local Unix domain socket and vice versa or both ends may be a Unix domain socket (closes: #236718). - ssh(1), ssh-keygen(1): Add support for SSHFP DNS records for ED25519 key types. - sftp(1): Allow resumption of interrupted uploads. - ssh(1): When rekeying, skip file/DNS lookups of the hostkey if it is the same as the one sent during initial key exchange. - sshd(8): Allow explicit ::1 and 127.0.0.1 forwarding bind addresses when GatewayPorts=no; allows client to choose address family. - sshd(8): Add a sshd_config PermitUserRC option to control whether ~/.ssh/rc is executed, mirroring the no-user-rc authorized_keys option. - ssh(1): Add a %C escape sequence for LocalCommand and ControlPath that expands to a unique identifer based on a hash of the tuple of (local host, remote user, hostname, port). Helps avoid exceeding miserly pathname limits for Unix domain sockets in multiplexing control paths. - sshd(8): Make the "Too many authentication failures" message include the user, source address, port and protocol in a format similar to the authentication success / failure messages. - Use CLOCK_BOOTTIME in preference to CLOCK_MONOTONIC when it is available. It considers time spent suspended, thereby ensuring timeouts (e.g. for expiring agent keys) fire correctly (closes: #734553). - Use prctl() to prevent sftp-server from accessing /proc/self/{mem,maps}. * Restore TCP wrappers support, removed upstream in 6.7. It is true that dropping this reduces preauth attack surface in sshd. On the other hand, this support seems to be quite widely used, and abruptly dropping it (from the perspective of users who don't read openssh-unix-dev) could easily cause more serious problems in practice. It's not entirely clear what the right long-term answer for Debian is, but it at least probably doesn't involve dropping this feature shortly before a freeze. * Replace patch to disable OpenSSL version check with an updated version of Kurt Roeckx's patch from #732940 to just avoid checking the status field.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac85
1 files changed, 63 insertions, 22 deletions
diff --git a/configure.ac b/configure.ac
index 86692714b..f5c65c5a4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
1# $Id: configure.ac,v 1.571 2014/02/21 17:09:34 tim Exp $ 1# $Id: configure.ac,v 1.583 2014/08/26 20:32:01 djm Exp $
2# 2#
3# Copyright (c) 1999-2004 Damien Miller 3# Copyright (c) 1999-2004 Damien Miller
4# 4#
@@ -15,7 +15,7 @@
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
17AC_INIT([OpenSSH], [Portable], [openssh-unix-dev@mindrot.org]) 17AC_INIT([OpenSSH], [Portable], [openssh-unix-dev@mindrot.org])
18AC_REVISION($Revision: 1.571 $) 18AC_REVISION($Revision: 1.583 $)
19AC_CONFIG_SRCDIR([ssh.c]) 19AC_CONFIG_SRCDIR([ssh.c])
20AC_LANG([C]) 20AC_LANG([C])
21 21
@@ -1655,10 +1655,6 @@ AC_CHECK_FUNCS([ \
1655 Blowfish_expandstate \ 1655 Blowfish_expandstate \
1656 Blowfish_expand0state \ 1656 Blowfish_expand0state \
1657 Blowfish_stream2word \ 1657 Blowfish_stream2word \
1658 arc4random \
1659 arc4random_buf \
1660 arc4random_stir \
1661 arc4random_uniform \
1662 asprintf \ 1658 asprintf \
1663 b64_ntop \ 1659 b64_ntop \
1664 __b64_ntop \ 1660 __b64_ntop \
@@ -1702,6 +1698,7 @@ AC_CHECK_FUNCS([ \
1702 mblen \ 1698 mblen \
1703 md5_crypt \ 1699 md5_crypt \
1704 memmove \ 1700 memmove \
1701 memset_s \
1705 mkdtemp \ 1702 mkdtemp \
1706 mmap \ 1703 mmap \
1707 ngetaddrinfo \ 1704 ngetaddrinfo \
@@ -1760,7 +1757,6 @@ AC_CHECK_FUNCS([ \
1760 user_from_uid \ 1757 user_from_uid \
1761 usleep \ 1758 usleep \
1762 vasprintf \ 1759 vasprintf \
1763 vhangup \
1764 vsnprintf \ 1760 vsnprintf \
1765 waitpid \ 1761 waitpid \
1766]) 1762])
@@ -1972,11 +1968,9 @@ if test "x$ac_cv_func_snprintf" = "xyes" ; then
1972 ) 1968 )
1973fi 1969fi
1974 1970
1975# If we don't have a working asprintf, then we strongly depend on vsnprintf 1971# We depend on vsnprintf returning the right thing on overflow: the
1976# returning the right thing on overflow: the number of characters it tried to 1972# number of characters it tried to create (as per SUSv3)
1977# create (as per SUSv3) 1973if test "x$ac_cv_func_vsnprintf" = "xyes" ; then
1978if test "x$ac_cv_func_asprintf" != "xyes" && \
1979 test "x$ac_cv_func_vsnprintf" = "xyes" ; then
1980 AC_MSG_CHECKING([whether vsnprintf returns correct values on overflow]) 1974 AC_MSG_CHECKING([whether vsnprintf returns correct values on overflow])
1981 AC_RUN_IFELSE( 1975 AC_RUN_IFELSE(
1982 [AC_LANG_PROGRAM([[ 1976 [AC_LANG_PROGRAM([[
@@ -1984,15 +1978,23 @@ if test "x$ac_cv_func_asprintf" != "xyes" && \
1984#include <stdio.h> 1978#include <stdio.h>
1985#include <stdarg.h> 1979#include <stdarg.h>
1986 1980
1987int x_snprintf(char *str,size_t count,const char *fmt,...) 1981int x_snprintf(char *str, size_t count, const char *fmt, ...)
1988{ 1982{
1989 size_t ret; va_list ap; 1983 size_t ret;
1990 va_start(ap, fmt); ret = vsnprintf(str, count, fmt, ap); va_end(ap); 1984 va_list ap;
1985
1986 va_start(ap, fmt);
1987 ret = vsnprintf(str, count, fmt, ap);
1988 va_end(ap);
1991 return ret; 1989 return ret;
1992} 1990}
1993 ]], [[ 1991 ]], [[
1994 char x[1]; 1992char x[1];
1995 exit(x_snprintf(x, 1, "%s %d", "hello", 12345) == 11 ? 0 : 1); 1993if (x_snprintf(x, 1, "%s %d", "hello", 12345) != 11)
1994 return 1;
1995if (x_snprintf(NULL, 0, "%s %d", "hello", 12345) != 11)
1996 return 1;
1997return 0;
1996 ]])], 1998 ]])],
1997 [AC_MSG_RESULT([yes])], 1999 [AC_MSG_RESULT([yes])],
1998 [ 2000 [
@@ -2328,7 +2330,7 @@ AC_RUN_IFELSE(
2328 if(fd == NULL) 2330 if(fd == NULL)
2329 exit(1); 2331 exit(1);
2330 2332
2331 if ((rc = fprintf(fd ,"%x (%s)\n", OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT)) <0) 2333 if ((rc = fprintf(fd ,"%08x (%s)\n", OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_TEXT)) <0)
2332 exit(1); 2334 exit(1);
2333 2335
2334 exit(0); 2336 exit(0);
@@ -2363,13 +2365,21 @@ AC_RUN_IFELSE(
2363 if(fd == NULL) 2365 if(fd == NULL)
2364 exit(1); 2366 exit(1);
2365 2367
2366 if ((rc = fprintf(fd ,"%x (%s)\n", SSLeay(), SSLeay_version(SSLEAY_VERSION))) <0) 2368 if ((rc = fprintf(fd ,"%08x (%s)\n", SSLeay(),
2369 SSLeay_version(SSLEAY_VERSION))) <0)
2367 exit(1); 2370 exit(1);
2368 2371
2369 exit(0); 2372 exit(0);
2370 ]])], 2373 ]])],
2371 [ 2374 [
2372 ssl_library_ver=`cat conftest.ssllibver` 2375 ssl_library_ver=`cat conftest.ssllibver`
2376 # Check version is supported.
2377 case "$ssl_library_ver" in
2378 0090[[0-7]]*|009080[[0-5]]*)
2379 AC_MSG_ERROR([OpenSSL >= 0.9.8f required])
2380 ;;
2381 *) ;;
2382 esac
2373 AC_MSG_RESULT([$ssl_library_ver]) 2383 AC_MSG_RESULT([$ssl_library_ver])
2374 ], 2384 ],
2375 [ 2385 [
@@ -2381,6 +2391,10 @@ AC_RUN_IFELSE(
2381 ] 2391 ]
2382) 2392)
2383 2393
2394# XXX make --without-openssl work
2395AC_DEFINE_UNQUOTED([WITH_OPENSSL], [1], [use libcrypto for cryptography])
2396AC_DEFINE_UNQUOTED([WITH_SSH1], [1], [include SSH protocol version 1 support])
2397
2384AC_ARG_WITH([openssl-header-check], 2398AC_ARG_WITH([openssl-header-check],
2385 [ --without-openssl-header-check Disable OpenSSL version consistency check], 2399 [ --without-openssl-header-check Disable OpenSSL version consistency check],
2386 [ if test "x$withval" = "xno" ; then 2400 [ if test "x$withval" = "xno" ; then
@@ -2589,6 +2603,14 @@ AC_CHECK_FUNCS([SHA256_Update EVP_sha256], ,
2589 hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com" 2603 hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com"
2590 ] 2604 ]
2591) 2605)
2606# Search for RIPE-MD support in OpenSSL
2607AC_CHECK_FUNCS([EVP_ripemd160], ,
2608 [unsupported_algorithms="$unsupported_algorithms \
2609 hmac-ripemd160
2610 hmac-ripemd160@openssh.com
2611 hmac-ripemd160-etm@openssh.com"
2612 ]
2613)
2592 2614
2593# Check complete ECC support in OpenSSL 2615# Check complete ECC support in OpenSSL
2594AC_MSG_CHECKING([whether OpenSSL has NID_X9_62_prime256v1]) 2616AC_MSG_CHECKING([whether OpenSSL has NID_X9_62_prime256v1])
@@ -2709,6 +2731,13 @@ fi
2709AC_SUBST([TEST_SSH_ECC]) 2731AC_SUBST([TEST_SSH_ECC])
2710AC_SUBST([COMMENT_OUT_ECC]) 2732AC_SUBST([COMMENT_OUT_ECC])
2711 2733
2734AC_CHECK_FUNCS([ \
2735 arc4random \
2736 arc4random_buf \
2737 arc4random_stir \
2738 arc4random_uniform \
2739])
2740
2712saved_LIBS="$LIBS" 2741saved_LIBS="$LIBS"
2713AC_CHECK_LIB([iaf], [ia_openinfo], [ 2742AC_CHECK_LIB([iaf], [ia_openinfo], [
2714 LIBS="$LIBS -liaf" 2743 LIBS="$LIBS -liaf"
@@ -2892,7 +2921,14 @@ if test "x$PAM_MSG" = "xyes" ; then
2892 ]) 2921 ])
2893fi 2922fi
2894 2923
2895SSH_PRIVSEP_USER=sshd 2924case "$host" in
2925*-*-cygwin*)
2926 SSH_PRIVSEP_USER=CYGWIN_SSH_PRIVSEP_USER
2927 ;;
2928*)
2929 SSH_PRIVSEP_USER=sshd
2930 ;;
2931esac
2896AC_ARG_WITH([privsep-user], 2932AC_ARG_WITH([privsep-user],
2897 [ --with-privsep-user=user Specify non-privileged user for privilege separation], 2933 [ --with-privsep-user=user Specify non-privileged user for privilege separation],
2898 [ 2934 [
@@ -2902,8 +2938,13 @@ AC_ARG_WITH([privsep-user],
2902 fi 2938 fi
2903 ] 2939 ]
2904) 2940)
2905AC_DEFINE_UNQUOTED([SSH_PRIVSEP_USER], ["$SSH_PRIVSEP_USER"], 2941if test "x$SSH_PRIVSEP_USER" = "xCYGWIN_SSH_PRIVSEP_USER" ; then
2906 [non-privileged user for privilege separation]) 2942 AC_DEFINE_UNQUOTED([SSH_PRIVSEP_USER], [CYGWIN_SSH_PRIVSEP_USER],
2943 [Cygwin function to fetch non-privileged user for privilege separation])
2944else
2945 AC_DEFINE_UNQUOTED([SSH_PRIVSEP_USER], ["$SSH_PRIVSEP_USER"],
2946 [non-privileged user for privilege separation])
2947fi
2907AC_SUBST([SSH_PRIVSEP_USER]) 2948AC_SUBST([SSH_PRIVSEP_USER])
2908 2949
2909if test "x$have_linux_no_new_privs" = "x1" ; then 2950if test "x$have_linux_no_new_privs" = "x1" ; then