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>
