
Solo quieronavegar por la web y ser un servidor webpero no funciona.
Mis reglas son:
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-A INPUT -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
Además, no estoy muy seguro acerca de esos estados. ¿Cuáles son inútiles en mi caso y por qué?
Muchas gracias por tu ayuda.
EDITAR
Todavía no puedo navegar por Internet. Con estas reglas quiero que mi servidor sea un servidor web y al mismo tiempo pueda navegar por internet desde esta máquina (esto es sólo para practicar)
Aquí están mis reglas actualizadas. ¿Que hay de malo con ellos? (Agregué dos líneas para el puerto DNS, no estoy seguro si son útiles o correctas)
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
Respuesta1
Parece que su INPUT
regla está intentando permitir conexiones entrantes a un servidor web en la máquina local. Parece que su OUTPUT
regla está intentando permitir conexiones salientes desde la máquina local a cualquier servidor web externo. ¿Cuál estás tratando de lograr? ¿Ambos?
En cualquier caso, deberá ser más permisivo con sus reglas ESTABLECIDAS Y RELACIONADAS. Desea permitir todos los paquetes que forman parte de las conexiones establecidas, no solo los que tienen el puerto de destino 80. En particular, las respuestas del servidor web no tienen el puerto de destino 80 (tienen el puerto de origen 80) y usted no les permitas. Normalmente, tendría una regla en la parte superior de cada cadena que permite todos los paquetes establecidos y relacionados:
-I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Una vez que haya hecho eso, puede permitir que el paquete inicial forme una nueva conexión. Para permitir el acceso al servidor web local:
-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
...y para permitir el acceso desde la máquina local a servidores web externos:
-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
PEROPara el segundo caso (permitir el acceso desde la máquina local a servidores web externos), ¿ha pensado si eso es lo que realmente desea? ¿No quieres que pase nada más que HTTP, ni siquiera DNS?