Eu zertei o iptables, então mudei a linha no meu script que define esta regra específica do iptables:
iptables -A INPUT -s 192.168.1.3 -i eth0 -p tcp -m tcp --dport 6379 -j ACCEPT
para isso:
iptables -A INPUT -i eth0 -p tcp --dport 6379 -s 192.168.1.3 -j ACCEPT
e agora está funcionando magicamente, mesmo que iptables -L -n -v
pareça idêntico ao que estava lá antes:
$ iptables -L -n -v
Chain INPUT (policy DROP 6 packets, 360 bytes)
pkts bytes target prot opt in out source destination
1 60 ACCEPT tcp -- eth0 * 192.168.1.3 0.0.0.0/0 tcp dpt:6379
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 * 0.0.0.0/0 0.0.0.0/0
311 544K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
1 60 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 255 packets, 28839 bytes)
pkts bytes target prot opt in out source destination
Não posso dizer que não seja um comportamento que eu não tenha visto com o iptables antes.
edit: para qualquer um que seja curioso, estou usando iptables-persistent
, e este é o arquivo completo que estou usando:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -p tcp --dport 6379 -s 192.168.1.3 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i docker0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT