Tengo un servidor central con una base de datos instalada y múltiples servidores distribuidos que llaman a esa base de datos central. Por razones de seguridad, me gustaría que solo aquellos servidores conocidos accedan al servidor central.
Entonces, lo que estoy tratando de lograr aquí es permitir que el servidor 192.168.1.5 y 192.168.2.6 accedan al puerto 5432.
iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT
¿Es esto correcto?
Lo que no entiendo es la opción de especificar un destino. El destino en INPUT es siempre el propio servidor, ¿no? ¿Por qué entonces es configurable? ¿Tengo que definirlo o al omitirlo apuntará automáticamente al mismo servidor?
Respuesta1
Primero, debe dividir su regla en dos reglas (lo probé usando un comando que especifica ambas IP y parece funcionar). El resultado final son dos reglas como las siguientes:
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
En segundo lugar, puede omitir el -d
para que coincida con cualquier IP. Dado que se trata de INPUT
una cadena, es necesario que coincida con una de las IP de la máquina.
En tercer lugar, no olvide tener una DROP
regla porque si solo tiene estas dos reglas, ACCEPT
la política predeterminada para INPUT
la cadena. Se permitirán todas las conexiones.
Además, es posible que deba permitir que RELATED
el ESTABLISHED
tráfico de paquetes fluya en ambas direcciones. Esto depende de sus reglas (qué está permitido y qué no). Aquí está la regla:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT