Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Patrick McHardy <kaber@xxxxxxxxx>
- Date: Mon, 15 Nov 2010 17:04:49 +0100
On 15.11.2010 16:57, Patrick McHardy wrote:
On 15.11.2010 16:47, Eric Paris wrote:
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
The second one will cause a hard error for the connection.
Well I'm (I guess?) surprised that the --reject-with icmp doesn't do
anything with a local outgoing connection but --reject-with tcp-reset
does something like what I'm looking for.
I notice the heavy lifting for this is done in
net/ipv4/netfilter/ipt_REJECT.c::send_rest()
(and something very similar for IPv6)
I really don't want to duplicate that code into SELinux (for obvious
reasons) and I'm wondering if anyone has objections to me making it
available outside of netlink and/or suggestions on how to make that code
available outside of netfilter (aka what header to expose it, and does
it still make logical sense in ipt_REJECT.c or somewhere else?)
I don't think having SELinux sending packets to handle local
connections is a very elegant design, its not a firewall after
all. What's wrong with reacting only to specific errno codes
in tcp_connect()? You could f.i. return -ECONNREFUSED from
SELinux, that one is pretty much guaranteed not to occur in
the network stack itself and can be returned directly.
One more note: there is also the problem that the RST might never
reach the socket, f.i. because netfilter drops it, or TC actions
reroute it etc. With netfilter users are expected to make sure the
entire combination of network features does what the expect, but
that's probably not what you want for SELinux.
That would need minor changes to nf_hook_slow so we can--
encode errno values in the upper 16 bits of the verdict,
as we already do with the queue number. The added benefit
is that we don't have to return EPERM anymore when f.i.
rerouting fails.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Eric Paris
- RE: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Hua Zhong
- Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Patrick McHardy
- RE: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Hua Zhong
- Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Patrick McHardy
- Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Eric Paris
- Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- From: Patrick McHardy
- [RFC PATCH] network: return errors if we know tcp_connect failed
- Prev by Date: Re: [RFC][PATCH v2 5/7] taskstats: Improve cumulative CPU time accounting
- Next by Date: Re: gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ?
- Previous by thread: Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- Next by thread: Re: [RFC PATCH] network: return errors if we know tcp_connect failed
- Index(es):
Relevant Pages
|