From owner-freebsd-questions@FreeBSD.ORG Fri Apr 3 04:38:23 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B3CB106564A for ; Fri, 3 Apr 2009 04:38:23 +0000 (UTC) (envelope-from sudakov@sibptus.tomsk.ru) Received: from relay2.tomsk.ru (relay2.tomsk.ru [212.73.124.8]) by mx1.freebsd.org (Postfix) with ESMTP id A284D8FC08 for ; Fri, 3 Apr 2009 04:38:22 +0000 (UTC) (envelope-from sudakov@sibptus.tomsk.ru) X-Virus-Scanned: by clamd daemon 0.93.1 for FreeBSD at relay2.tomsk.ru X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on meow.tomsk.su X-Spam-Level: X-Spam-Status: No, score=-54.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.4 Received: from admin.sibptus.tomsk.ru (account sudakov@sibptus.tomsk.ru [212.73.125.240] verified) by relay2.tomsk.ru (CommuniGate Pro SMTP 5.1.13) with ESMTPSA id 12234468; Fri, 03 Apr 2009 11:38:12 +0700 Received: (from sudakov@localhost) by admin.sibptus.tomsk.ru (8.13.6/8.13.6/Submit) id n334cCeM070828; Fri, 3 Apr 2009 11:38:12 +0700 (OMSST) (envelope-from sudakov@sibptus.tomsk.ru) X-Authentication-Warning: admin.sibptus.tomsk.ru: sudakov set sender to sudakov@sibptus.tomsk.ru using -f Date: Fri, 3 Apr 2009 11:38:12 +0700 From: Victor Sudakov To: freebsd-questions@freebsd.org Message-ID: <20090403043811.GA70473@admin.sibptus.tomsk.ru> Mail-Followup-To: Victor Sudakov , freebsd-questions@freebsd.org, Victor Sudakov References: <20090402055113.GA35989@admin.sibptus.tomsk.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090402055113.GA35989@admin.sibptus.tomsk.ru> User-Agent: Mutt/1.4.2.3i Organization: AO "Svyaztransneft", SibPTUS X-PGP-Key: http://vas.tomsk.ru/vas.asc Cc: Victor Sudakov Subject: Re: keep-state and divert X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Apr 2009 04:38:23 -0000 Victor Sudakov wrote: > If we consider a simple example below, how would you replace the 600th > rule for a stateful one? > > 00100 divert 8668 ip from any to table(1) out via rl0 > 00200 deny log logamount 100 ip from 10.0.0.0/8 to any out via rl0 > 00300 deny log logamount 100 ip from 172.16.0.0/12 to any out via rl0 > 00400 deny log logamount 100 ip from 192.168.0.0/16 to any out via rl0 > > 00500 divert 8668 ip from table(1) to any in via rl0 > 00600 allow ip from table(1) to any in via rl0 > 00700 deny log logamount 100 ip from any to 10.0.0.0/8 in via rl0 > 00800 deny log logamount 100 ip from any to 172.16.0.0/12 in via rl0 > 00900 deny log logamount 100 ip from any to 192.168.0.0/16 in via rl0 > > 65535 allow ip from any to any > It seems that the ruleset should be reordered and changed to the following: 00100 divert 8668 ip from table(1) to any in via rl0 00200 check-state 00300 deny log logamount 100 ip from any to 10.0.0.0/8 in via rl0 00300 deny log logamount 100 ip from any to 172.16.0.0/12 in via rl0 00300 deny log logamount 100 ip from any to 192.168.0.0/16 in via rl0 00400 skipto 500 ip from any to table(1) out via rl0 keep-state 00500 divert 8668 ip from any to table(1) out via rl0 00600 deny log logamount 100 ip from 10.0.0.0/8 to any out via rl0 00600 deny log logamount 100 ip from 172.16.0.0/12 to any out via rl0 00600 deny log logamount 100 ip from 192.168.0.0/16 to any out via rl0 65535 allow ip from any to any It seems to work. However there is an obscure moment in it. When I look at the dynamic rules being created, for each connection I see two rules: one with the private source address and another with a NAT'ed source address. Which means the outgoing packet traverses the 400th rule twice. I don't understand how this happens. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:sudakov@sibptus.tomsk.ru