Você pode alterar
iptables -A FORWARD -s $machineA -j FORWARD_machineA
iptables -A FORWARD -d $machineA -j FORWARD_machineA
para
iptables -A FORWARD -g FORWARD_machineA
Dessa forma, você pode ter três regras como esta
iptables -A FORWARD -g FORWARD_machineA
iptables -A FORWARD -g FORWARD_machineB
iptables -A FORWARD -g FORWARD_machineC
e depois destas três regras basta colocar uma
iptables -A FORWARD -j REJECT
Dessa forma, se você permitir uma comunicação apenas uma vez na cadeia FORWARD_machineA ou chian FORWARD_machineB para comunicação entre a máquina A e a máquina B, isso pode funcionar.
Pelo menos, reduz seis linhas de cadeia -j para três linhas de cadeia -g. Também elimina a necessidade de colocar -j REJECT no final de cada cadeia. De fato, você deve remover -j REJECT do final de cada cadeia para fazer trabalhos acima do método.
Esta é a melhoria simples que pode ser generalizada com base no seu exemplo. Outras melhorias podem exigir mais detalhes sobre o que você deseja permitir e o que você deseja bloquear.