From: "Nirgal Vourgère" <contact_vgernf@nirgal.com>
To: Balazs Scheidler <bazsi77@gmail.com>,
Pablo Neira Ayuso <pablo@netfilter.org>,
netfilter@vger.kernel.org
Subject: Re: Fwd: Issue migrating "iptables -m socket --transparent" into nftables
Date: Sat, 22 Aug 2020 03:24:43 +0200 [thread overview]
Message-ID: <13661805.z8pgfqvs6W@deimos> (raw)
In-Reply-To: <1667802.tW6joTg63a@deimos>
[-- Attachment #1: Type: text/plain, Size: 542 bytes --]
I applied the patches to my kernel and to nftables.
>>> table inet haproxy {
>>> chain prerouting {
>>> type filter hook prerouting priority -150; policy accept;
>>> socket transparent 1 socket wildcard 0 mark set 0x00000001
This works like a charm for ipv4. :)
But ipv6 outbound connections still are grabbed by the socket rather than be routed to the wan and masqueraded.
This works with
> ip46tables -m socket --transparent -j MARK --set-mark 1
Attached is a more complete extract from my haproxy.cfg, with both v4 and v6.
[-- Attachment #2: haproxy.cfg --]
[-- Type: text/plain, Size: 4198 bytes --]
############################################################################
# DO NOT EDIT THAT FILE
# Notice: That file was generated using:
# /root/bin/update-virtualhosts /etc/haproxy/virtualhosts.haproxy
# See /etc/haproxy/virtualhosts.haproxy/config
############################################################################
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
# user haproxy # transparent proxying requires root privileges
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# An alternative list with additional directives can be obtained from
# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
defaults
source 0.0.0.0 usesrc clientip
log global
#mode http
#option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http4-in
bind :80 transparent
mode http
option httplog
default_backend http4-www2.in.nirgal.com
use_backend http4-vcs.in.nirgal.com if { hdr(host) -i vcs.nirgal.com }
use_backend http4-vcs.in.nirgal.com if { hdr(host) -i svn.nirgal.com }
use_backend http4-vcs.in.nirgal.com if { hdr(host) -i git.nirgal.com }
frontend https4-in
bind :443 strict-sni transparent
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend https4-www2.in.nirgal.com
use_backend https4-vcs.in.nirgal.com if { req_ssl_sni -i vcs.nirgal.com }
use_backend https4-vcs.in.nirgal.com if { req_ssl_sni -i svn.nirgal.com }
use_backend https4-vcs.in.nirgal.com if { req_ssl_sni -i git.nirgal.com }
backend http4-www2.in.nirgal.com
mode http
server http4-www2.in.nirgal.com ipv4@192.168.1.99:80
backend http4-vcs.in.nirgal.com
mode http
server http4-vcs.in.nirgal.com ipv4@192.168.1.98:80
backend https4-www2.in.nirgal.com
server https4-www2.in.nirgal.com ipv4@192.168.1.99:443
backend https4-vcs.in.nirgal.com
server https4-vcs.in.nirgal.com ipv4@192.168.1.98:443
frontend http6-in
bind :::80 v6only transparent
mode http
option httplog
default_backend http6-www2.in.nirgal.com
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i vcs.nirgal.com }
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i svn.nirgal.com }
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i git.nirgal.com }
frontend https6-in
bind :::443 v6only strict-sni transparent
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i vcs.nirgal.com }
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i svn.nirgal.com }
use_backend http6-vcs.in.nirgal.com if { hdr(host) -i git.nirgal.com }
backend http6-www2.in.nirgal.com
mode http
server http6-www2.in.nirgal.com ipv6@[fd77:7777:7777::99]:80
backend http6-vcs.in.nirgal.com
mode http
server http6-vcs.in.nirgal.com ipv6@[fd77:7777:7777::98]:80
backend https6-www2.in.nirgal.com
server https6-www2.in.nirgal.com ipv6@[fd77:7777:7777::99]:443
backend https6-vcs.in.nirgal.com
server https6-vcs.in.nirgal.com ipv6@[fd77:7777:7777::98]:443
next prev parent reply other threads:[~2020-08-22 1:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAKcfE+ZhO2O6nanU=ABJB8ptpB8VvjCK1wmzQ8TMFx+U-0_8nw@mail.gmail.com>
[not found] ` <CAKcfE+anbh1OoHt7vgyYRt89J-fjsKK48Fzy8SCm3RP=HQQcOw@mail.gmail.com>
2020-08-18 11:08 ` Fwd: Issue migrating "iptables -m socket --transparent" into nftables Nirgal Vourgère
2020-08-19 7:58 ` Pablo Neira Ayuso
[not found] ` <CAKcfE+Yyo-zj9Oxh4Oth6yK7SoXVfa2mQrK9-11Q5NHc09uXzQ@mail.gmail.com>
2020-08-21 15:23 ` Pablo Neira Ayuso
2020-08-21 20:10 ` Nirgal Vourgère
2020-08-22 1:24 ` Nirgal Vourgère [this message]
[not found] ` <CAKcfE+ZHch0LH79Mi2NMM9z4UaoORb09oPur8xrPaK-7F3SRpg@mail.gmail.com>
2020-08-25 9:45 ` Balazs Scheidler
2020-08-26 18:00 ` Nirgal Vourgère
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13661805.z8pgfqvs6W@deimos \
--to=contact_vgernf@nirgal.com \
--cc=bazsi77@gmail.com \
--cc=netfilter@vger.kernel.org \
--cc=pablo@netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.