EDIT: Eu olhei para a sua saída do iptables mais profundamente e notei que você tem alguns problemas lá.
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
Você está rejeitando todo o tráfego antes que sua regra permita explicitamente que o tráfego para o MySQL tenha uma chance de ser correspondido. Você precisa reordenar essas regras.
Resposta antiga:
É provável que o seu servidor MySQL não esteja ativamente escutando conexões remotas.
O comando 'ss -ln | grep 3306 'provavelmente não retornará nenhum resultado.
Verifique no arquivo de configuração do MySQL as palavras-chave skip-networking e bind-address. Se o skip-networking estiver presente na configuração, comente ou remova-o. Assegure-se de que o endereço de ligação esteja configurado como 0.0.0.0 ('curinga') ou um endereço IP do sistema. Reinicie o MySQL para aplicar as alterações de configuração.
Você desejará garantir que não tenha contas acessíveis ao mundo com senhas vazias ou triviais. É altamente recomendável restringir o acesso remoto à porta do MySQL, além das ACLs do usuário e do banco de dados do MySQL.