Hi Andy,
The bind logs is from hostname rambutan/rambutan4. I did not specify the IP address for
bind9 as it is set to listen to any.
If I set the listen to specific, bind9 would fail to listen. Example.
13-Apr-2023 23:00:07.711 network: info: no longer listening
on 2001:ba8:1f1:f0b5::2#53
13-Apr-2023 23:00:07.711 network: info: no longer listening
on fe80::216:5eff:fe00:5f5%2#53
13-Apr-2023 23:03:41.664 network: info: no longer listening
on 127.0.0.1#53
13-Apr-2023 23:03:41.664 network: info: no longer listening
on 85.119.83.49#53
13-Apr-2023 23:03:41.664 network: info: no longer listening
on 85.119.82.135#53
13-Apr-2023 23:03:41.664 network: info
Anyhow, the defaults for the ufw was to deny incoming and deny outgoing. Below is the
iptables -L output.
Chain INPUT (policy DROP)
target prot opt source destination
ufw-before-logging-input all -- anywhere anyw
here
ufw-before-input all -- anywhere anywhere
ufw-after-input all -- anywhere anywhere
ufw-after-logging-input all -- anywhere anywh
ere
ufw-reject-input all -- anywhere anywhere
ufw-track-input all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ufw-before-logging-forward all -- anywhere an
ywhere
ufw-before-forward all -- anywhere anywhere
ufw-after-forward all -- anywhere anywhere
ufw-after-logging-forward all -- anywhere any
where
ufw-reject-forward all -- anywhere anywhere
ufw-track-forward all -- anywhere anywhere
Chain OUTPUT (policy DROP)
target prot opt source destination
ufw-before-logging-output all -- anywhere any
where
ufw-before-output all -- anywhere anywhere
ufw-after-output all -- anywhere anywhere
ufw-after-logging-output all -- anywhere anyw
here
ufw-reject-output all -- anywhere anywhere
ufw-track-output all -- anywhere anywhere
Chain ufw-after-forward (1 references)
target prot opt source destination
Chain ufw-after-input (1 references)
target prot opt source destination
ufw-skip-to-policy-input udp -- anywhere anyw
here udp dpt:netbios-ns
ufw-skip-to-policy-input udp -- anywhere anyw
here udp dpt:netbios-dgm
ufw-skip-to-policy-input tcp -- anywhere anyw
here tcp dpt:netbios-ssn
ufw-skip-to-policy-input tcp -- anywhere anyw
here tcp dpt:microsoft-ds
ufw-skip-to-policy-input udp -- anywhere anyw
here udp dpt:bootps
ufw-skip-to-policy-input udp -- anywhere anyw
here udp dpt:bootpc
ufw-skip-to-policy-input all -- anywhere anyw
here ADDRTYPE match dst-type BROADCAST
Chain ufw-after-logging-forward (1 references)
target prot opt source destination
Chain ufw-after-logging-input (1 references)
target prot opt source destination
Chain ufw-after-logging-output (1 references)
target prot opt source destination
Chain ufw-after-output (1 references)
target prot opt source destination
Chain ufw-before-forward (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ctstate RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
icmp destination-unreachable
ACCEPT icmp -- anywhere anywhere
icmp time-exceeded
ACCEPT icmp -- anywhere anywhere
icmp parameter-problem
ACCEPT icmp -- anywhere anywhere
icmp echo-request
ufw-user-forward all -- anywhere anywhere
Chain ufw-before-input (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ctstate RELATED,ESTABLISHED
ufw-logging-deny all -- anywhere anywhere
ctstate INVALID
DROP all -- anywhere anywhere
ctstate INVALID
ACCEPT icmp -- anywhere anywhere
icmp destination-unreachable
ACCEPT icmp -- anywhere anywhere
icmp time-exceeded
ACCEPT icmp -- anywhere anywhere
icmp parameter-problem
ACCEPT icmp -- anywhere anywhere
icmp echo-request
ACCEPT udp -- anywhere anywhere
udp spt:bootps dpt:bootpc
ufw-not-local all -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251
udp dpt:mdns
ACCEPT udp -- anywhere 239.255.255.250
udp dpt:1900
ufw-user-input all -- anywhere anywhere
Chain ufw-before-logging-forward (1 references)
target prot opt source destination
Chain ufw-before-logging-input (1 references)
target prot opt source destination
Chain ufw-before-logging-output (1 references)
target prot opt source destination
Chain ufw-before-output (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ctstate RELATED,ESTABLISHED
ufw-user-output all -- anywhere anywhere
Chain ufw-logging-allow (0 references)
target prot opt source destination
Chain ufw-logging-deny (2 references)
target prot opt source destination
Chain ufw-not-local (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
ADDRTYPE match dst-type LOCAL
RETURN all -- anywhere anywhere
ADDRTYPE match dst-type MULTICAST
RETURN all -- anywhere anywhere
ADDRTYPE match dst-type BROADCAST
ufw-logging-deny all -- anywhere anywhere
limit: avg 3/min burst 10
DROP all -- anywhere anywhere
Chain ufw-reject-forward (1 references)
target prot opt source destination
Chain ufw-reject-input (1 references)
target prot opt source destination
Chain ufw-reject-output (1 references)
target prot opt source destination
Chain ufw-skip-to-policy-forward (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
Chain ufw-skip-to-policy-input (7 references)
target prot opt source destination
DROP all -- anywhere anywhere
Chain ufw-skip-to-policy-output (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
Chain ufw-track-forward (1 references)
target prot opt source destination
Chain ufw-track-input (1 references)
target prot opt source destination
Chain ufw-track-output (1 references)
target prot opt source destination
Chain ufw-user-forward (1 references)
target prot opt source destination
Chain ufw-user-input (1 references)
target prot opt source destination
tcp -- anywhere rambutan.zystro.xyz
tcp dpt:22 ctstate NEW recent: SET name: DEFAULT side:
source mask: 255.255.255.255
ufw-user-limit tcp -- anywhere rambutan.zystr
o.xyz tcp dpt:22 ctstate NEW recent: UPDATE seconds: 30
hit_count: 6 name: DEFAULT side: source mask: 255.255.255.25
5
ufw-user-limit-accept tcp -- anywhere rambuta
n.zystro.xyz tcp dpt:22
tcp -- anywhere rambutan.zystro.xyz
tcp dpt:ssh ctstate NEW recent: SET name: DEFAULT side: so
urce mask: 255.255.255.255
ufw-user-limit tcp -- anywhere rambutan.zystr
o.xyz tcp dpt:ssh ctstate NEW recent: UPDATE seconds: 30 hi
t_count: 6 name: DEFAULT side: source mask: 255.255.255.255
ufw-user-limit-accept tcp -- anywhere rambuta
n.zystro.xyz tcp dpt:ssh
ACCEPT udp -- anywhere anywhere
udp dpt:domain
ACCEPT tcp -- anywhere anywhere
tcp dpt:domain
Chain ufw-user-limit (2 references)
target prot opt source destination
REJECT all -- anywhere anywhere
reject-with icmp-port-unreachable
Chain ufw-user-limit-accept (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain ufw-user-logging-forward (0 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain ufw-user-logging-input (0 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain ufw-user-logging-output (0 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain ufw-user-output (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere rambutan.zystro.xyz
tcp dpt:22
ACCEPT udp -- anywhere anywhere
udp dpt:ntp
ACCEPT tcp -- anywhere anywhere
tcp dpt:http
ACCEPT tcp -- anywhere anywhere
tcp dpt:https
ACCEPT tcp -- anywhere anywhere
tcp dpt:domain
ACCEPT udp -- anywhere anywhere
udp dpt:domain
Regards,
-badli
________________________________
From: Andy Smith via BitFolk Users <users(a)mailman.bitfolk.com>
Sent: Sunday, April 23, 2023 11:03:20 PM
To: users(a)mailman.bitfolk.com <users(a)mailman.bitfolk.com>
Cc: Andy Smith <andy(a)bitfolk.com>
Subject: [bitfolk] Re: question on bind9 listening.
Hi Badli,
On Sun, Apr 23, 2023 at 02:30:36AM +0000, Badli Al Rashid via BitFolk Users wrote:
For powerdns axfr transfer to bind secondary yes.When
the firewall was not open the logs shows the below. 0 bytes as I recall.
19-Apr-2023 07:44:41.419 xfer-in: info: 0x7f9a84a8d
c00: transfer of 'testingforonedomain.com/IN' from
2400:8901::f03c:93ff:fe63:5988#53: Transfer complet
ed: 0 messages, 0 records, 0 bytes, 23.208 secs
This isn't the full log. This is just the log line saying that the
transfer is over. Yes it did fail otherwise it would be more than 0
records. But the reason for its failure is in another log line or
lines.
DNS zone transfers are always pull-based, i.e. they are initiated by
the secondary server. The other lines will also be saying which IP
address your BIND server chose as its source address for the
transfer. That might not be the address you think it should be, if
your BIND host has multiple IP addresses.
For opening port 53 incoming and outgoing on all the
interface, no. When it is open and not set to a specific IP address the AXFR is completed
9-Apr-2023 07:44:41.727 xfer-in: info: zone testin
gforonedomain.com/IN: Transfer started.
19-Apr-2023 07:44:41.967 xfer-in: info: 0x7f5d90e31
000: transfer of 'testingforonedomain.com/IN' from
2400:8901::f03c:93ff:fe63:5988#53: connected using
2400:8901::f03c:93ff:fe63:5988#53
19-Apr-2023 07:44:42.447 xfer-in: info: zone testin
gforonedomain.com/IN: transferred serial 2023041905
19-Apr-2023 07:44:42.447 xfer-in: info: 0x7f5d90e31
000: transfer of 'testingforonedomain.com/IN' from
2400:8901::f03c:93ff:fe63:5988#53: Transfer status:
success
19-Apr-2023 07:44:42.447 xfer-in: info: 0x7f5d90e31
000: transfer of 'testingforonedomain.com/IN' from
2400:8901::f03c:93ff:fe63:5988#53: Transfer complet
ed: 3 messages, 14 records, 512 bytes, 0.480 secs (
1066 bytes/sec) (serial 2023041905)
Okay so these are logs from your BIND server (on what IP address?)
that successfully did a transfer in from your PowerDNS server at
2400:8901::f03c:93ff:fe63:5988 for the zone
testingforonedomain.com.
For firewall it is ufw. Ssh rule omit
I am not familiar with ufw myself so I'm on shakly ground here and
might need to ask to see the actual iptables rules, but…
To Action From
-- ------ ----
53/udp ALLOW Anywhere
53/tcp ALLOW Anywhere
53/udp (v6) ALLOW Anywhere (v6
)
53/tcp (v6) ALLOW Anywhere (v6
)
123/udp ALLOW OUT Anywhere
80/tcp ALLOW OUT Anywhere
443/tcp ALLOW OUT Anywhere
53/tcp ALLOW OUT Anywhere
53/udp ALLOW OUT Anywhere
123/udp (v6) ALLOW OUT Anywhere (v6
)
80/tcp (v6) ALLOW OUT Anywhere (v6
)
443/tcp (v6) ALLOW OUT Anywhere (v6
)
53/tcp (v6) ALLOW OUT Anywhere (v6
)
53/udp (v6) ALLOW OUT Anywhere (v6
)
…it looks like you're being strict about what traffic an go OUT as
well as what can come IN.
Is the above rule set what you have when you are trying to restrict
things or is it what you consider to be "open"? I see you have rules
allowing anything to come IN to port 53 UDP and TCP so is this the
"open" configuration you are referring to?
If this is the "open" configuration, tell us what exact rules you
are adding to tighten it up.
I don't know if ufw adds the rules that try to do connection
tracking to link together established and related flows. Even if it
does, I don't know if that will be enough to capture all the DNS
traffic. Your BIND server is going to source UDP flows from random
ports, not just port 53.
You need to get your dropped packets to be logged and follow the
logs to see what is happening when a zone transfer fails to work.
Thanks,
Andy
--
https://bitfolk.com/ -- No-nonsense VPS hosting