> On 2017-02-20, kasak<ka...@kasakoff.net>  wrote:
> > hello everybody!
> >
> > Recently i saw this trick on
> >http://www.tedunangst.com/flak/post/turn-your-network-inside-out-with-one-pfconf-trick
> >
> > I decided it was a great idea, and tried to add this rule to my
> > firewall, but it doesn't work.
> >
> > Look, I placed this line immediately after nat-to rule
> >
> > #Enable NAT
> > pass out on $ext_if inet from $lan_net to any nat-to $ext_if keep state
> > (pflow)
> >
> > #ntp and domain redirection
> > pass in on $int_if proto {tcp,udp} from !192.168.2.65 to any port
> > {domain,ntp} rdr-to lo
> >
> > So it expand to this rules:
> >
> > pass in on em1 inet proto tcp from ! 192.168.2.65 to any port = 53 flags
> > S/SA rdr-to 127.0.0.1
> > pass in on em1 inet proto tcp from ! 192.168.2.65 to any port = 123
> > flags S/SA rdr-to 127.0.0.1
> > pass in on em1 inet proto udp from ! 192.168.2.65 to any port = 53
> > rdr-to 127.0.0.1
> > pass in on em1 inet proto udp from ! 192.168.2.65 to any port = 123
> > rdr-to 127.0.0.1
> >
> > 192.168.2.65 is my local domain and ntp server, it must be able to
> > access world to work properly.
> >
> > em1 is my LAN interface
> >
> > Anyway this rule doesn't work and i don't know why :(
> >
> > $ doas tcpdump -i em1 port ntp
> > tcpdump: listening on em1, link-type EN10MB
> > 11:07:35.594706 192.168.3.119.4662 > clock.via.net.ntp: v1 client strat
> > 0 poll 0 prec 0
> > 11:07:35.594804 clock.via.net.ntp > 192.168.3.119.4662: v1 server strat
> > 2 poll 0 prec -6 [tos 0x10]
> > 11:07:40.131132 192.168.2.75.45003 > mail.sonur.ru.ntp: v4 client strat
> > 0 poll 0 prec 0 (DF)
> > 11:07:40.136985 mail.sonur.ru.ntp > 192.168.2.75.45003: v4 server strat
> > 2 poll 0 prec -6 [tos 0x10]
>
> This tcpdump trace doesn't directly show whether or not it works - the
> packet source address of return packets is rewritten due to the PF rdr-to
> rule.
>
> However if I query mail.sonur.ru myself it reports that it is stratum 1,
> and since you see stratum 2, and identical return values from the 2 servers,
> I suspect the redirect probably *is* working. For extra confirmation use
> tcpdump -v and look at the ttl and extra fields. Compare these with and
> without this rule in place.
>
> Regarding the DNS side of this - careful with this if you want to do
> authoritative DNS lookups from machines on your network - it isn't
> always appropriate to forward to a recursive resolver in this way.
> Really, you only want to redirect queries with the RR flag (which you
> can't do from PF), and even then this will mess you up if you're trying
> to debug certain problems.
Oh, thank you! Now I see, that all answers from all ntp servers have 
stratum of my server.
And about dns, i have to do this because of some hard infected windows 
clients.
I don't really think that i need to do recursive lookups from clients, 
but it can help to solve problems with windows clients, where viruses 
replace "dhcp offered" dns servers with bad "hacker offered".

I have tried to lookup my own server from 192.168.2.65 and from client 
and that's what I have:
 From 2.65:

$ nslookup kasakoff.net 91.210.228.4
Server:         91.210.228.4
Address:        91.210.228.4#53

Name:   kasakoff.net
Address: 91.210.228.4

 From client:

kasak@mint ~ $ nslookup kasakoff.net 91.210.228.4
Server:        91.210.228.4
Address:    91.210.228.4#53

Non-authoritative answer:
Name:    kasakoff.net
Address: 91.210.228.4

So it proves that redirect works! Thank you very much for explanations!

Reply via email to