Tenho um servidor central com um banco de dados instalado e vários servidores distribuídos que chamam esse banco de dados central. Por razões de segurança, gostaria que o servidor central fosse acessado apenas por servidores conhecidos.
Então, o que estou tentando conseguir aqui é permitir que a porta 5432 seja acessada pelos servidores 192.168.1.5 e 192.168.2.6.
iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT
Isso está correto?
O que não entendo é a opção de especificar um destino. O destino no INPUT é sempre o próprio servidor, não? Por que então é configurável? Preciso defini-lo ou, ao deixá-lo de fora, ele apontará automaticamente para o mesmo servidor?
Responder1
Primeiro, você precisa dividir sua regra em duas regras (tentei usando um comando especificando ambos os IPs e parece funcionar). O resultado final são duas regras como as seguintes:
iptables -A INPUT -s 192.168.1.5 -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -s 192.168.2.6 -p tcp --dport 5432 -j ACCEPT
Em segundo lugar, você pode omitir -d
para corresponder a qualquer IP. Como se trata de INPUT
uma cadeia, é necessário corresponder a um dos IPs da máquina.
Terceiro, não se esqueça de ter uma DROP
regra porque se você tiver apenas essas duas regras ACCEPT
como política padrão para INPUT
a cadeia. Todas as conexões serão permitidas.
Além disso, pode ser necessário permitir RELATED
o ESTABLISHED
tráfego para que os pacotes fluam em ambas as direções. Isso depende das suas regras (o que é permitido e o que é descartado). Aqui está a regra:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT