Estoy intentando bloquear solo las conexiones salientes a direcciones IP específicas; sin embargo, quiero permitir conexiones entrantes desde las mismas direcciones IP.
Por lo que tengo entendido sobre el bloqueo de conexiones salientes,no deberíabloquear si una conexión entrante se ha realizado correctamente.
Básicamente configuro reglas como esta:
--append OUTPUT --jump DROP --destination x.x.x.x
Y para permitir conexiones establecidas:
--append INPUT --in-interface eth0 --match state --state RELATED,ESTABLISHED --jump ACCEPT
Quiero que se permitan conexiones cuando esta dirección IP intente conectarse al servidor, pero cuando mi servidor intente establecer una conexión saliente, no debería poder hacerlo.
Me gustaría bloquear el acceso completo al servidor para realizar conexiones salientes x.x.x.x
. Sin embargo, cuando un usuario de esa IP desea acceder al servidor, debería poder visitar sitios en ciertos puertos.
Respuesta1
Ya casi has llegado a tu objetivo con las reglas de firewall. Esto es lo que necesita para permitir el tráfico entrante desde el host 10.10.10.10
y al mismo tiempo detener el tráfico saliente a esa dirección:
- Permitir entrada (presumiblemente a cualquier puerto)
- Permitir respuestas salientes a conexiones entrantes establecidas
- Bloquear el tráfico saliente restante
Entonces,
iptables -A INPUT --src 10.10.10.10 --jump ACCEPT
iptables -A OUTPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables -A OUTPUT --dst 10.10.10.10 --jump DROP
Realmente no necesita la INPUT
regla a menos que tenga reglas posteriores que lleguen DENY
o REJECT
su política esté configurada de esa manera.
Respuesta2
¡Te estás equivocando! Esto es lo que entiendo:
En primer lugar, mira tu input
regla. Permitirá la entrada de state
, pero ¿qué state
significa? ¡Significa que el tráfico ha ido out
desde su servidor a esta dirección antes! Por lo tanto, esta regla nunca coincidirá si bloquea output
(para esta dirección) por completo.
Es por esto que su esfuerzo completo no es posible, state
sólo está disponible en formato input
.
Puede que haya alguna solución hacky. Pero con las opciones dadas no es posible.
PD
Después de tu pregunta, volví a buscar un tema antiguo y adivina qué. Después de leer tu publicación nuevamente, me di cuenta de que esto es EXACTAMENTE lo que quieres. Mira aPuerto golpeando.
Agrega un componente a su solicitud, lo que la hace aún mejor; aleatoriedad.
Simplemente configure un esquema de detonación y no sólo permita output
las conexiones, sino también sólo si se ha producido input
lo correcto .knocking