Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Feb 2015 11:04:20 -0600
From:      cpet <cpet@sdf.org>
To:        Godfrey Hamshire <freebsdlist@compudoc.za.net>
Cc:        FreeBSD Users <freebsd-questions@freebsd.org>, owner-freebsd-questions@freebsd.org
Subject:   Re: Help requested with pf.conf firewall script
Message-ID:  <13b50b972e8554f9dd31e139fb1bea26@sdf.org>
In-Reply-To: <0B6F89C4C603445FA59AEB72931207A0@workstation>
References:  <0B6F89C4C603445FA59AEB72931207A0@workstation>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2015-02-21 10:29, Godfrey Hamshire wrote:
> Help requested with pf.conf
> 
> Hello
> 
> I would be most greatful if some kind member could assist me.
> 
> I am in the process of setting up a mail/web server etc.
> 
> I want to be able to block ip's that try brute force attacks and those
> that try and break in using hundreds of usernames and passwords.
> 
> I found this set of rules as set out below, they are not mine but
> belong to K.Andreev, there is nothing wrong with them, I just want to
> be able to ping and traceroute from the server and cant.
> 
> I have tried all sorts combinations with the last line, from various
> sites via google and cant get it to ping or any of that stuff. Not
> being too clued up on this aspect I am asking for assistance.
> 
> This is what I am getting when I try to ping.
> 
> PING dns.cdoc.co.za (41.185.26.52): 56 data bytes
> ping: sendto: No route to host
> ping: sendto: No route to host
> 
> If to save a lot of hassel the reader of this has a working pf.conf
> that allows blocking of ip's that endlessly try to break in or one I
> can add trouble some ip's to a table to that would be really cool.
> 
> Here is the rule set I am asking for help with
> 
> Thank you for your time trouble and help it will be appreciated.
> 
> Kind regards
> 
> Godfrey
> 
> 
> 
> 
> # pf config - K.Andreev 20140604
> 
> ext_if = "vr0"
> 
> set loginterface $ext_if
> 
> set skip on lo
> 
> table <bruteforce> persist
> 
> table <blocked_subnets> persist file "/etc/blocked_subnets"
> 
> tcp_pass = "{ 21 22 26 25 53 80 443 587 993 995 10000}"
> 
> udp_pass = "{ 21 53 }"
> 
> block all
> 
> block in log quick on $ext_if from <blocked_subnets> to any
> block out log quick on $ext_if from any to <blocked_subnets>
> 
> block quick from <bruteforce>
> 
> pass quick proto { tcp, udp } from any to any port ssh \
>     flags S/SA keep state \
>     (max-src-conn 15, max-src-conn-rate 5/3, \
>     overload <bruteforce> flush global)
> 
> pass log on $ext_if proto tcp to any port $tcp_pass keep state
> 
> pass out on $ext_if proto udp to any port $udp_pass keep state
> 
> pass inet proto icmp from any to any keep state
> 
> 
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe@freebsd.org"

you need to add a rule for icmp I do this:

icmptypes="{echoreq,unreach}"
pass in  on $ext_if inet proto icmp all icmp-type $icmptypes

so that fixes your ping issue

for brutes I do this only for SSH:
brutes="{22, 6015}"
pass in on $ext_if inet proto tcp from any to any port $brutes flags 
S/SA keep s  tate (max-src-conn 3, max-src-conn-rate 3/10, overload 
<bruteforce> flush global  )

Hope this helps you.



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