On Tue Jun 15 11:13:12 2010, Matthew Wild wrote:
On 15 June 2010 10:49, paddy joesoap <[email protected]> wrote:
> Regardless of encrypted layer-7, there are some synergies between XMPP
> and iptables firewall when providing security in-depth.
> 1) XMPP IP address whilelist, firewall source IP address filtering

I'd be surprised if there aren't any XMPP servers that can already do
this, but yet I'd agree it's a job best done by the firewall.


Isode M-Link has some capability to check the IP address of connections from certain domains, so you could, for example, configure it to only accept jabber.org domains from hermes.jabber.org.

This kind of thing needs XMPP knowledge, so is best done in the server itself.


> 2) XMPP requires certain ports to be open, firewall open required
> ports for required protocols (application alignment with
> infrastructure)

Yes, external firewall.


Note that for outbound S2S, XMPP can potentially use any port. We have seen "issues" with corporate firewall folk not wishing to open up anything more than 5269 outbound.

> 4) XMPP does not perform IP address anti-spoofing, firewall
> prevents/reduces anti-spoofing attempts.

For s2s connections (clients already authenticate with credentials, so it's not as much of an issue) XMPP uses dialback to prevent spoofing:
http://xmpp.org/extensions/xep-0220.html

Obviously as I noted before, this is dependent on DNS being correct.
Anything you can deploy externally would help make the dialback checks
more secure.


I think he's referring to IP-level spoofing. XMPP being entirely TCP, this is somewhat difficult to achieve in practise, and is largely down to the OS's TCP security.

That said, the moment you have any TLS at all in place (including unauthenticated ADH, say) then my understanding is that IP spoofing is no longer practical.

I use (and develop) Prosody. I should probably mention that I've been working on something the past few weeks that might interest you - it's
essentially a Prosody module that handles most of what we've been
discussing. The best way to describe it is probably "iptables for
XMPP", as it lets you define custom rules for handling/routing
stanzas, based on their header, contents, origin and other things. I'm
away this week, but was planning to release it next week when I get
back.

FWIW, Isode M-Link - which I develop and run - will strip out certain sub-elements of stanzas, and require them, on a per-domain basis. This isn't a firewall feature as such, it's intended more for dropping data that's not needed or wanted, for information security or bandwidth reasons - for example, you can strip out the <status/> from presence to avoid information leakage, or require that any <message/> must have a <body/> to restrict message traffic to simple IM.

It wouldn't surprise me at all to discover there are similar controls available for most servers.

Dave.
--
Dave Cridland - mailto:[email protected] - xmpp:[email protected]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to