OK. Veja só, você só controla o tráfego que passa pela tua máquina.
Assim, se você quiser controlar o tráfego de outras máquinas, precisa fazer com que ele passe pela máquina onde vc está fazendo os controles. Isso normalmente significa que você precisa colocar os controles no gateway da sua rede, pois todo o tráfego da rede já passa por lá normalmente.
Se você quer controlar o tráfego da sua própria máquina, e não das outras, nesse caso você precisa controlar as cadeias de entrada (INPUT) e de saída (OUTPUT) do iptables. A cadeia FORWARD só é usada para o tráfego que vem de outras máquinas e vai pra outras máquinas, ou seja, tráfego que a sua máquina vai repassar, sem utilizar.
Outra coisa importante pra estar atento é a direção do tráfego, e como isso afeta as portas nos pacotes vistos. Quando você está acessando um serviço, você precisa enviar pacotes para o endereço do servidor, e para as portas usadas nesse serviço. Isso significa que você vai ver os pacotes saindo (cadeia OUTPUT), com o endereço de destino do servidor (-d SERVIDOR, opcional), e a porta de destino do serviço (-p tcp --dport 5938).
Esse servidor vai responder seus pedidos de acesso, o que vai gerar tráfego que pode ser visto na entrada (cadeia INPUT), com endereço de origem do servidor (-s SERVIDOR, opcional) e a porta de origem do serviço (-p tcp --sport 5938).
Se a sua intenção é bloquear o uso do serviço em uma determinada máquina, eu acho que é (necessário e) suficiente colocar regra na saída, descartando os pacotes enviados para a porta do serviço:
iptables -A OUTPUT -p tcp --dport 5938 -J DROP
Por fim, uma dica: quando for criar um script de iptables, evite incluir as regras com "-i", pois isso coloca a nova regra no início da cadeia. Isso quebra a sequência natural das regras, fazendo com que elas atuem em ordem diferente da que aparecem no script, o que torna o resultado pouco previsível. A ordem das regras é tudo no iptables!