Como eu aceito dois tipos diferentes de conexões de rede usando o iptables?

1

Eu preciso configurar o iptables para um servidor de banco de dados mongodb, de modo que ele permita apenas dois tipos de conexões INPUT:

  1. uma conexão com a porta 27017, a porta padrão do monogdb, do nosso aplicativo web principal
  2. uma conexão ssh da minha rede principal, que tem um endereço IP diferente do nosso aplicativo da web

A questão é que essas regras precisam ser encadeadas.

Veja o que tentei:

iptables -A INPUT -p tcp --dport ssh -j ACCEPT # allows all connections via ssh (port 22)

iptables -A INPUT -s web-app-IP -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -d web-app-IP -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT DROP

A primeira linha permite todas as conexões de entrada na porta 22, enquanto a segunda e terceira linhas permitem todas as conexões do web-app-IP para e do servidor mongodb apenas.

Parece que a primeira linha está sendo bloqueada pela segunda e terceira linha. Existe um operador OR lógico para o iptables? Se não, como configuro as regras para permitir esses dois tipos de conexões?

    
por vgoklani 16.03.2014 / 01:44

1 resposta

3

Você não está permitindo conexões ESTABLISHED do ssh. Eu iria com um pouco mais simples:

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -s web-app-IP -p tcp --destination-port 27017 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
    
por 16.03.2014 / 02:03