From patchwork Sun Dec 5 14:00:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arne Schwabe X-Patchwork-Id: 2107 Return-Path: Delivered-To: patchwork@openvpn.net Delivered-To: patchwork@openvpn.net Received: from director13.mail.ord1d.rsapps.net ([172.27.255.56]) by backend41.mail.ord1d.rsapps.net with LMTP id WPmYH+FgrWFUagAAqwncew (envelope-from ) for ; Sun, 05 Dec 2021 20:01:21 -0500 Received: from proxy7.mail.iad3a.rsapps.net ([172.27.255.56]) by director13.mail.ord1d.rsapps.net with LMTP id cMD9IeFgrWFoYAAA91zNiA (envelope-from ) for ; Sun, 05 Dec 2021 20:01:21 -0500 Received: from smtp9.gate.iad3a ([172.27.255.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by proxy7.mail.iad3a.rsapps.net with LMTPS id KDppG+FgrWGQcAAAnPvY+A (envelope-from ) for ; Sun, 05 Dec 2021 20:01:21 -0500 X-Spam-Threshold: 95 X-Spam-Score: 0 X-Spam-Flag: NO X-Virus-Scanned: OK X-Orig-To: openvpnslackdevel@openvpn.net X-Originating-Ip: [216.105.38.7] Authentication-Results: smtp9.gate.iad3a.rsapps.net; iprev=pass policy.iprev="216.105.38.7"; spf=pass smtp.mailfrom="openvpn-devel-bounces@lists.sourceforge.net" smtp.helo="lists.sourceforge.net"; dkim=fail (signature verification failed) header.d=sourceforge.net; dkim=fail (signature verification failed) header.d=sf.net; dmarc=none (p=nil; dis=none) header.from=rfc2549.org X-Suspicious-Flag: YES X-Classification-ID: 05fe05e6-5630-11ec-a99b-52540097fc8c-1-1 Received: from [216.105.38.7] ([216.105.38.7:53752] helo=lists.sourceforge.net) by smtp9.gate.iad3a.rsapps.net (envelope-from ) (ecelerity 4.2.38.62370 r(:)) with ESMTPS (cipher=DHE-RSA-AES256-GCM-SHA384) id C0/60-00864-0E06DA16; Sun, 05 Dec 2021 20:01:21 -0500 Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.94.2) (envelope-from ) id 1mu2Mq-00031A-Tq; Mon, 06 Dec 2021 01:00:34 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mu2Mp-000313-O3 for openvpn-devel@lists.sourceforge.net; Mon, 06 Dec 2021 01:00:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=UycEj4ulL6sDHgfuUb0jEBffPcJ1mKVWAzNiOlDse9c=; b=Nm8bloumRooAlqUTEmT+xVXL6U xSVQDl5AQ7Yktoql22eNyvUZtAYhpeSAm8t2bt6HcwLZjaBi4r842ZST4N4sGMXHCyB9EkbUigN2x mPuQkApSruV+qa04s7MgO0HmGXNuiUbA7c1tX9gHwGw2opLRA2itJa27LZoY1xrUyhYQ=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id: Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UycEj4ulL6sDHgfuUb0jEBffPcJ1mKVWAzNiOlDse9c=; b=XzD0HqRmi/8vkKrtDjqizKqAZY 4fCKk03G8w9f4qtpLasT1Lc0doYk+qZbKTu5Pr8Y4QfCr+0Jv21TfM8820s8a2E6AegR6uKgf5qQi QJTDaw6KGtAu/X2U+MocDWBrvzoeRN5abgqUKolpkUyxBDhtDF0ezBdXcS2r0gGolErs=; Received: from mail.blinkt.de ([192.26.174.232]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) id 1mu2Mp-0001u6-1l for openvpn-devel@lists.sourceforge.net; Mon, 06 Dec 2021 01:00:32 +0000 Received: from kamera.blinkt.de ([2001:638:502:390:20c:29ff:fec8:535c]) by mail.blinkt.de with smtp (Exim 4.94.2 (FreeBSD)) (envelope-from ) id 1mu2MR-0005lq-4o for openvpn-devel@lists.sourceforge.net; Mon, 06 Dec 2021 02:00:07 +0100 Received: (nullmailer pid 3072574 invoked by uid 10006); Mon, 06 Dec 2021 01:00:07 -0000 From: Arne Schwabe To: openvpn-devel@lists.sourceforge.net Date: Mon, 6 Dec 2021 02:00:07 +0100 Message-Id: <20211206010007.3072528-1-arne@rfc2549.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211202125455.2593763-1-arne@rfc2549.org> References: <20211202125455.2593763-1-arne@rfc2549.org> MIME-Version: 1.0 X-Spam-Report: Spam detection software, running on the system "util-spamd-1.v13.lw.sourceforge.com", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Currently we default to local binding with udp. But the majority of configuration files actually uses --nobind in the configuration to change the default for --client. And client protocols should norm [...] Content analysis details: (0.3 points, 6.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender does not publish an SPF Record X-Headers-End: 1mu2Mp-0001u6-1l Subject: [Openvpn-devel] [PATCH v2] Make --nobind default for --pull X-BeenThere: openvpn-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openvpn-devel-bounces@lists.sourceforge.net X-getmail-retrieved-from-mailbox: Inbox Currently we default to local binding with udp. But the majority of configuration files actually uses --nobind in the configuration to change the default for --client. And client protocols should normally use a random source port. This changes the default. Local binding with --client can still be done using --bind. This commit refactors the current code to be more easy to add to understand and adds the the o->pull condition as additional option to opt into setting local binding to false. Patch v2: add more commments Signed-off-by: Arne Schwabe Acked-By: Frank Lichtenheld --- Changes.rst | 3 ++- src/openvpn/options.c | 16 +++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Changes.rst b/Changes.rst index e83dda023..b7d7f2054 100644 --- a/Changes.rst +++ b/Changes.rst @@ -120,7 +120,8 @@ PF (Packet Filtering) support has been removed User-visible Changes -------------------- - CHACHA20-POLY1305 is included in the default of ``--data-ciphers`` when available. -- Option ``--prng`` is ignored as we rely on the SSL library radnom generator. +- Option ``--prng`` is ignored as we rely on the SSL library random number generator. +- Option ``--nobind`` is default when ``--client`` or ``--pull`` is used in the configuration Overview of changes in 2.5 ========================== diff --git a/src/openvpn/options.c b/src/openvpn/options.c index 312efb36c..39cf3e99a 100644 --- a/src/openvpn/options.c +++ b/src/openvpn/options.c @@ -2859,14 +2859,16 @@ options_postprocess_mutate_ce(struct options *o, struct connection_entry *ce) } } - if (ce->proto == PROTO_TCP_CLIENT && !ce->local - && !ce->local_port_defined && !ce->bind_defined) - { - ce->bind_local = false; - } + /* an option is present that requires local bind to enabled */ + bool need_bind = ce->local || ce->local_port_defined || ce->bind_defined; + + /* socks proxy is enabled */ + bool uses_socks = ce->proto == PROTO_UDP && ce->socks_proxy_server; - if (ce->proto == PROTO_UDP && ce->socks_proxy_server && !ce->local - && !ce->local_port_defined && !ce->bind_defined) + /* If binding is not forced by an explicit options and we have (at least) + * one of --tcp-client, --pull (or --client), or socks we do not bind + * locally to have "normal" IP client behaviour of a random source port */ + if (!need_bind && (ce->proto == PROTO_TCP_CLIENT || uses_socks || o->pull)) { ce->bind_local = false; }