How to block IP range

Gary Palmer gpalmer at freebsd.org
Mon Oct 27 16:37:55 UTC 2014


On Mon, Oct 27, 2014 at 05:30:57PM +0100, Cristiano Deana wrote:
> On Mon, Oct 27, 2014 at 5:24 PM, Gary Palmer <gpalmer at freebsd.org> wrote:
> 
> Hi
> 
> >> For example, I need to block only 100 IPs in the range: 10.0.0.1-10.0.0.100
> 
> > tables?
> >
> > you can do things like
> >
> > table <blocked_hosts> persist file "/etc/pf/blocked_hosts.table"
> > block in quick log on $ext_if_ipv4 from <blocked_hosts> to any
> 
> I'm adding the fast way to build the file:
> 
> sh -c 'for ip in `jot 100 1 100`; do echo 10.0.0.$ip >>
> /etc/pf/blocked_hosts.table; done'

You can also make it a bit more efficient and use a few CIDR networks.  To
cover 10.0.0.1-10.0.0.100 you would need.

          10.0.0.1/32
          10.0.0.2/31
          10.0.0.4/30
          10.0.0.8/29
         10.0.0.16/28
         10.0.0.32/27
         10.0.0.64/27
         10.0.0.96/30
        10.0.0.100/32

I used an ancient perl tool called 'aggis' to get the above.  There are
probably more modern tools around.

Regards,

Gary


More information about the freebsd-pf mailing list