iptables don't do reverse DNS lookups

the iptables monitor was using iptables -L to list the chains,
without the -n option, so it was trying to do reverse DNS lookups.
A side effect is that it was holding the lock, so other components
could not use it.
We can use -S instead of -L -n to avoid this, since we only want
to check the chain exists.
This commit is contained in:
Antonio Ojea 2020-07-07 13:30:11 +02:00 committed by Antonio Ojea
parent 7e75a5ef43
commit 924553b7ee

View File

@ -607,6 +607,9 @@ func (runner *runner) chainExists(table Table, chain Chain) (bool, error) {
runner.mu.Lock()
defer runner.mu.Unlock()
trace := utiltrace.New("iptables Monitor CANARY check")
defer trace.LogIfLong(2 * time.Second)
_, err := runner.run(opListChain, fullArgs)
return err == nil, err
}
@ -617,7 +620,7 @@ const (
opCreateChain operation = "-N"
opFlushChain operation = "-F"
opDeleteChain operation = "-X"
opListChain operation = "-L"
opListChain operation = "-S"
opAppendRule operation = "-A"
opCheckRule operation = "-C"
opDeleteRule operation = "-D"