Como posso obter o encaminhamento de porta para trabalhar com o iptables?

1

Eu quero proteger meu MySQL Server dos scanners de ports / sondas. Então, minha idéia é colocar a porta externa em digamos 36636 , a porta interna tem que ficar no padrão 3306 para compatibilidade com aplicativos locais.

Um cliente MySQL se conecta ao mysql.hostname.tld: 36636 e deve então ser encaminhado para o 3306 pelo iptables. Mas eu simplesmente não consigo fazer funcionar. Aqui minha regra de redirecionamento:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 36636 -j REDIRECT --to-port 3306

Ativei logging extenso no iptables e no MySQL, tenho certeza que os pacotes vão através do firewall, mas depois eles "desaparecem", eles não parecem alcançar o MySQL . Claro que também abri uma porta 36636 no iptables.

    
por Tobe 07.05.2012 / 16:45

2 respostas

2

Primeiro de tudo, esta não é uma maneira eficaz de proteger o servidor mysql. Alterar a porta não tornará impossível para um invasor saber que você está executando o servidor mysql. Pode apenas atrasá-lo um pouco.

Para responder sua pergunta, sua regra parece OK se você estiver executando o iptables e o mysql no mesmo host. Caso contrário, você precisará usar DNAT target em vez de REDIRECT . Além disso, você precisa permitir o encaminhamento de IP nesse caso. Isto é no que diz respeito às regras NAT. Para regras de filtragem, você precisa permitir a porta mysql ou definir o padrão INPUT / FORWARD / OUTPUT policy como ACCEPT (faça isso somente se você quiser permitir que tudo passe pelo firewall).

De qualquer forma, você tem que permitir a porta 3306 mesmo se estiver fazendo o encaminhamento de porta a partir de outra porta. Você tem duas opções:

1- Change the port mysql server is listening on. This might not be suitable for you as it will affect the local applications.
2- Add another NAT rule to port forward standard mysql port 3306 to something else invalid.

Para a opção 2, você pode executar:

iptables -A PREROUTING ! -s local_subnet -p tcp --dport 3306 -j REDIRECT --to-port 9999

Esta regra impedirá o acesso à porta mysql do sub-diretório não local.

    
por 07.05.2012 / 16:48
0

Bem, não há necessidade de ativar o encaminhamento de IP se o servidor MySQL estiver no mesmo host. Você pode usar o seguinte comando para redirecionar o tráfego da porta 36636 para 3306:

iptables -t nat -A PREROUTING -m tcp -p tcp --dport 36336 -j DNAT --to-destination IP_ADDRESS:3306

onde IP_ADDRESS é o endereço IP da interface que o MySQL está escutando.

    
por 07.05.2012 / 17:29