Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Aug 2009 12:05:04 -0400
From:      Bill Moran <wmoran@potentialtech.com>
To:        Paul Schmehl <pschmehl_lists@tx.rr.com>
Cc:        freebsd-questions@freebsd.org, Colin Brace <cb@lim.nl>
Subject:   Re: what www perl script is running?
Message-ID:  <20090825120504.93a7c51d.wmoran@potentialtech.com>
In-Reply-To: <E668BECE594402B585544841@utd65257.utdallas.edu>
References:  <4A924601.3000507@lim.nl> <200908240807.n7O87o3U092052@banyan.cs.ait.ac.th> <200908241026.55693.j.mckeown@ru.ac.za> <25130058.post@talk.nabble.com> <20090825091937.GA53416@cheddar.urgle.com> <25131646.post@talk.nabble.com> <200908251027.n7PARZBt009994@banyan.cs.ait.ac.th> <25132123.post@talk.nabble.com> <20090825082604.41cad357.wmoran@potentialtech.com> <25134277.post@talk.nabble.com> <E668BECE594402B585544841@utd65257.utdallas.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In response to Paul Schmehl <pschmehl_lists@tx.rr.com>:

> --On Tuesday, August 25, 2009 08:30:17 -0500 Colin Brace <cb@lim.nl> wrote:
> 
> > Bill Moran wrote:
> >>
> >> You can add an ipfw rule to prevent the script from calling home, which
> >> will effectively render it neutered until you can track down and actually
> >> _fix_ the problem.
> >
> > Mike Bristow above wrote: "The script is talking to 94.102.51.57 on port
> > 7000". OK, so I how do I know what port the script is using for outgoing
> > traffic on MY box? 7000 is the remote host port, right?
> >
> > FWIW, here are my core PF lines:
> >
> > pass out quick on $ext_if proto 41
> > pass out quick on gif0 inet6
> > pass in quick on gif0 inet6 proto icmp6
> > block in log
> >
> > That is to say: nothing is allowed in unless explicitly allowed
> > Everything allowed out.
> > (plus some ipv6 stuff I was testing with a tunnel)
> >
> 
> The problem with blocking outbound ports is that it breaks things in odd ways. 
> For example, your mail server listens on port 25 (and possibly 465 as well) but 
> it communicates with connecting clients on whatever ethereal port the client 
> decided to use.  If the port the client selects happens to be in a range that 
> you are blocking, communication will be impossible and the client will report 
> that your mail server is non-responsive.

You're doing it wrong.  Block on the destination port _only_ and you don't
care about the ephemeral ports.

> It's much easier to block outgoing ports for services you *don't* want to 
> offer, but, if the service isn't running anyway, blocking the port is 
> non-productive.

You're obviously misunderstanding me completely.  Your not blocking incoming
connections, your preventing outgoing ones, which means there _is_ no
service running on your local machine.

For example, a server that is _only_ web (with SSH for admin) could have
a ruleset like:

pass in quick on $ext_if proto tcp from any to me port {25,587,465,22} keep state
pass out quick on $ext_if proto tcp from me to any port {25} keep state
pass out quick on $ext_if proto upd from me to any port {53,123} keep state
block all

(note that's only an example, there may be some fine points I'm missing)

One thing that had not yet been mentioned when I posted my earlier comment,
is that this system is a combination firewall/web server.  That makes the
rules more complicated, but the setup is still possible:

pass in quick on $ext_if proto tcp from any to me port {80} keep state
pass out quick on $ext_if proto upd from me to any port {53,123} keep state
pass out quick on $ext_if from $internal_network to any all keep state
block all

Which allows limited outgoing traffic originating from the box itself,
but allows unlimited outgoing traffic from systems on $internal_network.

I've done this with great success.  In fact, I had a fun time where a
client in question was infected with viruses out the wazoo, but the
viruses never spread off their local network because I only allowed
SMTP traffic to their SMTP relay, which required SMTP auth (thus the
viruses couldn't send mail)

-- 
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090825120504.93a7c51d.wmoran>