diff options
Diffstat (limited to 'net/asterisk/files/patch-AST-2016-001')
-rw-r--r-- | net/asterisk/files/patch-AST-2016-001 | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/net/asterisk/files/patch-AST-2016-001 b/net/asterisk/files/patch-AST-2016-001 deleted file mode 100644 index 8888a9214f7a..000000000000 --- a/net/asterisk/files/patch-AST-2016-001 +++ /dev/null @@ -1,153 +0,0 @@ ---- configs/http.conf.sample.orig 2014-06-12 16:05:50 UTC -+++ configs/http.conf.sample -@@ -67,10 +67,31 @@ bindaddr=127.0.0.1 - ; If no path is given for tlscertfile or tlsprivatekey, default is to look in current - ; directory. If no tlsprivatekey is given, default is to search tlscertfile for private key. - ; -+; - ; To produce a certificate you can e.g. use openssl. This places both the cert and - ; private in same .pem file. - ; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem - ; -+; tlscipher= ; The list of allowed ciphers -+; ; if none are specified the following cipher -+; ; list will be used instead: -+; ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384: -+; ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256: -+; kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA: -+; ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384: -+; ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA: -+; DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA: -+; AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA: -+; AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH: -+; !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA -+; -+; tlsdisablev1=yes ; Disable TLSv1 support - if not set this defaults to "yes" -+; tlsdisablev11=yes ; Disable TLSv1.1 support - if not set this defaults to "no" -+; tlsdisablev12=yes ; Disable TLSv1.2 support - if not set this defaults to "no" -+; -+; tlsservercipherorder=yes ; Use the server preference order instead of the client order -+; ; Defaults to "yes" -+; - ; The post_mappings section maps URLs to real paths on the filesystem. If a - ; POST is done from within an authenticated manager session to one of the - ; configured POST mappings, then any files in the POST will be placed in the ---- include/asterisk/tcptls.h.orig 2014-06-13 04:58:51 UTC -+++ include/asterisk/tcptls.h -@@ -79,7 +79,15 @@ enum ast_ssl_flags { - /*! Use SSLv3 for outgoing client connections */ - AST_SSL_SSLV3_CLIENT = (1 << 4), - /*! Use TLSv1 for outgoing client connections */ -- AST_SSL_TLSV1_CLIENT = (1 << 5) -+ AST_SSL_TLSV1_CLIENT = (1 << 5), -+ /*! Use server cipher order instead of the client order */ -+ AST_SSL_SERVER_CIPHER_ORDER = (1 << 6), -+ /*! Disable TLSv1 support */ -+ AST_SSL_DISABLE_TLSV1 = (1 << 7), -+ /*! Disable TLSv1.1 support */ -+ AST_SSL_DISABLE_TLSV11 = (1 << 8), -+ /*! Disable TLSv1.2 support */ -+ AST_SSL_DISABLE_TLSV12 = (1 << 9), - }; - - struct ast_tls_config { ---- main/http.c.orig 2014-06-13 04:58:51 UTC -+++ main/http.c -@@ -1118,10 +1118,13 @@ static int __ast_http_load(int reload) - } - http_tls_cfg.pvtfile = ast_strdup(""); - -+ /* Apply modern intermediate settings according to the Mozilla OpSec team as of July 30th, 2015 but disable TLSv1 */ -+ ast_set_flag(&http_tls_cfg.flags, AST_SSL_DISABLE_TLSV1 | AST_SSL_SERVER_CIPHER_ORDER); -+ - if (http_tls_cfg.cipher) { - ast_free(http_tls_cfg.cipher); - } -- http_tls_cfg.cipher = ast_strdup(""); -+ http_tls_cfg.cipher = ast_strdup("ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"); - - AST_RWLIST_WRLOCK(&uri_redirects); - while ((redirect = AST_RWLIST_REMOVE_HEAD(&uri_redirects, entry))) { -@@ -1146,8 +1149,6 @@ static int __ast_http_load(int reload) - && strcasecmp(v->name, "tlsdontverifyserver") - && strcasecmp(v->name, "tlsclientmethod") - && strcasecmp(v->name, "sslclientmethod") -- && strcasecmp(v->name, "tlscipher") -- && strcasecmp(v->name, "sslcipher") - && !ast_tls_read_conf(&http_tls_cfg, &https_desc, v->name, v->value)) { - continue; - } ---- main/tcptls.c.orig 2015-04-08 16:53:07 UTC -+++ main/tcptls.c -@@ -749,6 +749,7 @@ static int __ssl_setup(struct ast_tls_co - return 0; - #else - int disable_ssl = 0; -+ long ssl_opts = 0; - - if (!cfg->enabled) - return 0; -@@ -793,12 +794,30 @@ static int __ssl_setup(struct ast_tls_co - * them. SSLv23_*_method supports TLSv1+. - */ - if (disable_ssl) { -- long ssl_opts; -+ ssl_opts |= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; -+ } - -- ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; -- SSL_CTX_set_options(cfg->ssl_ctx, ssl_opts); -+ if (ast_test_flag(&cfg->flags, AST_SSL_SERVER_CIPHER_ORDER)) { -+ ssl_opts |= SSL_OP_CIPHER_SERVER_PREFERENCE; - } - -+ if (ast_test_flag(&cfg->flags, AST_SSL_DISABLE_TLSV1)) { -+ ssl_opts |= SSL_OP_NO_TLSv1; -+ } -+#if defined(HAVE_SSL_OP_NO_TLSV1_1) && defined(HAVE_SSL_OP_NO_TLSV1_2) -+ if (ast_test_flag(&cfg->flags, AST_SSL_DISABLE_TLSV11)) { -+ ssl_opts |= SSL_OP_NO_TLSv1_1; -+ } -+ if (ast_test_flag(&cfg->flags, AST_SSL_DISABLE_TLSV12)) { -+ ssl_opts |= SSL_OP_NO_TLSv1_2; -+ } -+#else -+ ast_log(LOG_WARNING, "Your version of OpenSSL leaves you potentially vulnerable " -+ "to the SSL BEAST attack. Please upgrade to OpenSSL 1.0.1 or later\n"); -+#endif -+ -+ SSL_CTX_set_options(cfg->ssl_ctx, ssl_opts); -+ - SSL_CTX_set_verify(cfg->ssl_ctx, - ast_test_flag(&cfg->flags, AST_SSL_VERIFY_CLIENT) ? SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT : SSL_VERIFY_NONE, - NULL); -@@ -1109,6 +1128,14 @@ int ast_tls_read_conf(struct ast_tls_con - ast_clear_flag(&tls_cfg->flags, AST_SSL_TLSV1_CLIENT); - ast_clear_flag(&tls_cfg->flags, AST_SSL_SSLV3_CLIENT); - } -+ } else if (!strcasecmp(varname, "tlsservercipherorder")) { -+ ast_set2_flag(&tls_cfg->flags, ast_true(value), AST_SSL_SERVER_CIPHER_ORDER); -+ } else if (!strcasecmp(varname, "tlsdisablev1")) { -+ ast_set2_flag(&tls_cfg->flags, ast_true(value), AST_SSL_DISABLE_TLSV1); -+ } else if (!strcasecmp(varname, "tlsdisablev11")) { -+ ast_set2_flag(&tls_cfg->flags, ast_true(value), AST_SSL_DISABLE_TLSV11); -+ } else if (!strcasecmp(varname, "tlsdisablev12")) { -+ ast_set2_flag(&tls_cfg->flags, ast_true(value), AST_SSL_DISABLE_TLSV12); - } else { - return -1; - } ---- include/asterisk/autoconfig.h.in.orig 2014-06-20 23:12:25 UTC -+++ include/asterisk/autoconfig.h.in -@@ -752,6 +752,12 @@ - /* Define to 1 if you have the ISDN SS7 library. */ - #undef HAVE_SS7 - -+/* Define if your system has the SSL_OP_NO_TLSV1_1 headers. */ -+#undef HAVE_SSL_OP_NO_TLSV1_1 -+ -+/* Define if your system has the SSL_OP_NO_TLSV1_2 headers. */ -+#undef HAVE_SSL_OP_NO_TLSV1_2 -+ - /* Define to 1 if `stat' has the bug that it succeeds when given the - zero-length file name argument. */ - #undef HAVE_STAT_EMPTY_STRING_BUG |