Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Feb 2015 19:38:44 +0200
From:      "Godfrey Hamshire" <freebsdlist@compudoc.za.net>
To:        "cpet" <cpet@sdf.org>
Cc:        FreeBSD Users <freebsd-questions@freebsd.org>
Subject:   Re: Help requested with pf.conf firewall script
Message-ID:  <4BEB8E7696364873B9303FB8B728810A@workstation>
References:  <0B6F89C4C603445FA59AEB72931207A0@workstation> <13b50b972e8554f9dd31e139fb1bea26@sdf.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello

Thank you for your assistance.

Your suggestion works very well for ping,  how ever for trace route

I get this

traceroute to dns.cdoc.co.za (41.185.26.52), 64 hops max, 40 byte packets
traceroute: sendto: Operation not permitted
 1 traceroute: wrote dns.cdoc.co.za 40 chars, ret=-1
^C
root@32.165 ~ # ping dns.cdoc.co.za
PING dns.cdoc.co.za (41.185.26.52): 56 data bytes
64 bytes from 41.185.26.52: icmp_seq=0 ttl=61 time=46.018 ms
64 bytes from 41.185.26.52: icmp_seq=1 ttl=61 time=46.607 ms
^C

I have pasted at the bottom of this message the revised rule set incase I 
missed the plot some where.

Thank you so much for your help.

Regards

Godfrey




# pf config - K.Andreev 20140604

ext_if = "vr0"

icmptypes="{echoreq,unreach}"

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 in  on $ext_if inet proto icmp all icmp-type $icmptypes

pass inet proto icmp from any to any keep state





----- Original Message ----- 
From: "cpet" <cpet@sdf.org>
To: "Godfrey Hamshire" <freebsdlist@compudoc.za.net>
Cc: "FreeBSD Users" <freebsd-questions@freebsd.org>; 
<owner-freebsd-questions@freebsd.org>
Sent: Saturday, February 21, 2015 7:04 PM
Subject: Re: Help requested with pf.conf firewall script


> 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?4BEB8E7696364873B9303FB8B728810A>