Buckminster
(usa Debian)
Enviado em 12/01/2016 - 13:19h
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination ip_especifico:3306
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3306 -j ACCEPT
INPUT é para pacotes originados de fora e que entram no servidor onde está o Iptables;
OUTPUT é para pacotes gerados no servidor e que saem para fora;
FORWARD é para pacotes que trafegam através do servidor, entram e saem, apenas passam por ele.
Para liberar portas deve-se levar em conta onde estão instalados os programas, no caso o SSH e o MySQL.
Se os dois estiverem instalados na mesma máquina onde está o Iptables e o próprio servidor irá usar esses programas, então faça regras nas 3 chains. É lógico que, nesse caso, também pode-se liberar somente para uma ou duas chains, dependendo se for para um IP específico como acima.
Se o programa estiver em outra máquina que não for o servidor e o servidor não necessita usar esse programa, é necessário liberar somente a chain FORWARD.
Caso o servidor vá usar o SSH e/ou o MySQL é necessário liberar nas 3 chains, para garantir.
Leve em conta também como estão tuas políticas padrões do Iptables.
Tudo depende de onde estão instalados os programas, quais máquinas irão usá-los, etc. Cada caso é um caso.