포트 80에 대한 iptables 규칙에 어떤 문제가 있습니까?

포트 80에 대한 iptables 규칙에 어떤 문제가 있습니까?

나는 그저 원할 뿐이야웹 서핑을 하고 웹 서버가 되어 보세요하지만 작동하지 않습니다.

내 규칙은 다음과 같습니다

-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

또한 나는 그 상태에 대해 잘 모르겠습니다. 내 경우에는 어떤 것이 쓸모가 없으며 그 이유는 무엇입니까?

도와 주셔서 정말로 고맙습니다.

편집하다

나는 아직도 인터넷 서핑을 할 수 없다. 이러한 규칙을 사용하여 내 서버가 웹 서버가 되고 동시에 이 컴퓨터에서 인터넷 서핑을 할 수 있기를 원합니다. (이것은 단지 연습용입니다.)

업데이트된 규칙은 다음과 같습니다. 그들에게 무슨 문제가 있습니까? (DNS 포트에 두 줄을 추가했는데 유용하거나 올바른지 확실하지 않습니다)

    -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

답변1

귀하의 INPUT규칙은 로컬 시스템의 웹 서버에 대한 수신 연결을 허용하려는 것 같습니다. 귀하의 OUTPUT규칙은 로컬 시스템에서 외부 웹 서버로 나가는 연결을 허용하려는 것 같습니다. 어느 것을 달성하려고합니까? 둘 다?

어떤 경우든 확립된 관련 규칙에 대해 더 관대해야 합니다. 대상 포트 80이 있는 패킷뿐만 아니라 설정된 연결의 일부인 모든 패킷을 허용하려고 합니다. 특히 웹 서버의 응답에는 대상 포트 80이 없으며(소스 포트 80이 있음) 그들을 허용하지 마십시오. 일반적으로 각 체인의 상단에는 모든 확립된 관련 패킷을 허용하는 규칙이 있습니다.

-I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT -m state --state RELATED,ESTABLISHED -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

하지만두 번째 경우(로컬 컴퓨터에서 외부 웹 서버로의 액세스 허용)의 경우, 그것이 정말로 원하는 것인지 생각해 보셨나요? HTTP 외에 DNS도 통과하기를 원하지 않습니까?

관련 정보