Quiero bloquear el acceso al puerto 6379 en mi servidor, pero todavía quiero conectarme a él internamente. La aplicación redis-server se ejecuta en ese puerto y quiero conectarme solo localmente (127.0.0.1). ¿Cómo puedo hacer esto?
Quiero bloquear el acceso al puerto 6379 en mi servidor, pero todavía quiero conectarme a él internamente. La aplicación redis-server se ejecuta en ese puerto y quiero conectarme solo localmente (127.0.0.1). ¿Cómo puedo hacer esto?
Respuestas:
Para hacer esto, debe asegurarse de que sus reglas de IPTables estén configuradas correctamente. Ubuntu generalmente deja sus servidores abiertos de forma predeterminada, por lo que todavía no recomiendo su uso como servidores a menos que ya sepa muy bien cómo hacerlo correctamente.
Me imagino que te iptables -L -nv
ves así, ¿sí?
# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
pkts bytes target prot opt in out source destination
Está vacío y abierto de par en par. El HowTo de Ubuntu IPTables probablemente ayudará bastante con esto. ( https://help.ubuntu.com/community/IptablesHowTo )
Recomiendo algo como esto, que permite SSH en cualquier interfaz y tcp 6379 cualquier interfaz que no sea la que no desea:
*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Luego guardaría este archivo en /etc/iptables.rules.
Obviamente, se debe agregar cualquier otro puerto que desee abrir específicamente.
Nota: He agregado las líneas específicas 6379 para mayor claridad. La ACEPTACIÓN inferior justo antes de que el COMPROMISO realmente permita esto porque todas las conexiones de bucle invertido deben estar permitidas en un sistema Linux para una operación adecuada.
También querrá poner las reglas en su archivo / etc / network / interfaces, para asegurarse de que se agreguen cuando aparezca la interfaz y no más tarde en el proceso de arranque. Se recomienda agregar algo como esto:
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
Editar: para cargar esta configuración inicialmente, debe ejecutar el comando iptables-restore mencionado anteriormente:
iptables-restore < /etc/iptables.rules
Bueno, sugeriría utilizar el "firewall sin complicaciones" (ufw), que también es recomendado por canonical. Leer y escribir iptables es demasiado complicado para tareas de bloqueo de puertos ocasionales.
Algo como
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
Deberia trabajar.