IPTables: Permitir conexões MySQL de saída, mas não conexões de entrada

8

Eu tenho um servidor que não permite conexões ao mysql de fontes externas - todos os meus bancos de dados e conexões ocorrem no host local. A política padrão do iptables é descartar conexões para qualquer porta que eu não especifique (atualmente eu não tenho a porta 3306 especificada em minhas regras de iptable, então todas as conexões para esta porta são descartadas).

Tudo bem, mas agora eu gostaria de me conectar a um banco de dados mysql localizado externamente no Amazon RDS.

A porta 3306 pode ser aberta para o mundo externo da seguinte forma:

iptables -t filter -A INPUT -p tcp --sport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT

Isso permite que eu me conecte ao banco de dados no Amazon RDS, mas também permite conexões remotas com bancos de dados no meu servidor.

O que preciso fazer para permitir que meu servidor se conecte ao banco de dados na Amazon, mas restringir conexões externas aos bancos de dados no meu servidor?

Lembre-se também de que o endereço IP da minha instância do Amazon RDS pode mudar periodicamente, acredito.

    
por MrCarrot 23.11.2014 / 12:02

1 resposta

15

Aproveite o mecanismo de estado:

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

ou em versões posteriores do iptables

iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Isso é exatamente o que o mecanismo de estado existe: permitir tráfego que atenda a vários critérios (por exemplo, protocolo, porta de origem) mas também faz parte de uma conexão existente (como define conexão ). O resultado é que o pacote TCP SYN de saída para um endereço IP externo específico na porta de destino 3306, a partir de uma porta ephmeral local, criará uma entrada de tabela de estado para essa combinação específica de endereços IP e números de porta e só retornará tráfego com a A mesma combinação de endereços e portas será permitida durante e somente pela duração dessa conexão.

    
por 23.11.2014 / 12:03

Tags