방화벽의 인바운드 포트 차단은 어떻게 작동합니까?

방화벽의 인바운드 포트 차단은 어떻게 작동합니까?

인바운드 트래픽과 방화벽에 대해 조금 불분명합니다.

첫 번째 가정은 방화벽(예: 홈 라우터)이 모든 인바운드 포트를 차단해야 한다는 것입니다. 모든 인바운드 포트를 차단하지 않으면 인터넷상의 해커가 네트워크의 장치로 패킷을 보낼 수 있습니까?

하지만 모든 인바운드 포트가 차단되면 트래픽은 어떻게 들어오나요?

예를 들어, 제가 이해한 바에 따르면 브라우저는 웹 서버에 대한 연결을 설정합니다. 즉, 웹 서버의 포트 80과 통신하고 브라우저/클라이언트에서 무작위로 할당된 포트 번호(예: 포트 30222)를 사용합니다. 브라우저는 페이지를 요청하고 웹 서버는 이를 클라이언트 IP 주소/포트 30222로 다시 보냅니다.

웹 서버가 포트 30222로 데이터를 보낼 수 있다면 임의의 해커가 포트 30222로 데이터를 보낼 수 없는 이유는 무엇입니까?

방화벽은 이를 어떻게 봅니까? 모든 인바운드 연결을 허용하도록 구성해야 합니까?

내가 아는 한, 상태 저장 방화벽은 클라이언트의 연결 요청을 검사할 수 있으므로 클라이언트/포트 -> 서버/포트 조합에서 선택적으로 트래픽을 허용할 수 있습니다. 이 경우 홈 라우터에서 모든 인바운드 방화벽 포트를 차단할 수 있다는 것을 알 수 있습니다. 홈 라우터는 허용되는 트래픽이 내부적으로 연결을 시작하는 장치 사이에서만 이루어지도록 보장할 수 있기 때문입니다. 이 경우는 아닙니다. 임의의 해커가 내부 네트워크의 장치에 패킷을 보냅니다.

하지만 모든 방화벽이 상태를 저장하는 것은 아니라고 생각합니다. 그렇죠? 상태 비저장 방화벽은 어떻습니까? 모든 인바운드 트래픽을 허용해야 합니까?

따라서 홈 방화벽이 모든 인바운드 포트를 차단해야 하는지 여부가 명확하지 않습니다. 모든 인바운드 포트를 차단하는 경우 상태 저장 패킷 검사 방화벽이 아닌 경우 데이터는 어떻게 들어가나요?

답변1

"방화벽"이라는 용어는 느슨하게 정의됩니다. 귀하의 질문에 대한 제 대답은 모든 방화벽이 상태를 저장하는 것은 아니라는 것입니다. 그러나 상태 비저장 방화벽 유형을 설명하기 위해 "패킷 필터링 방화벽"이라는 용어를 사용할 수도 있습니다. 상태 비저장 방화벽을 사용하면 여전히 많은 보호를 얻을 수 있지만 상태 저장 방화벽만큼은 아닙니다.

예를 들어, 상태 비저장 방화벽에 모든 패킷을 인터넷으로 보내도록 지시할 수 있습니다(예: 웹 브라우저 패킷이 웹 서버로 전송됨). 그러나 설정된 연결의 일부인 것으로 보이는 경우에만 인바운드 패킷을 허용하도록 구성됩니다. 이를 위해 TCP/IP가 어떻게 작동하는지 자세히 살펴보겠습니다. TCP 패킷에는 패킷이 발신 패킷인지 응답 패킷인지를 나타내는 몇 가지 플래그(SYN, SYN+ACK, ACK(찾고 싶은 경우))가 있습니다. 상태 비저장 방화벽에서는 응답 패킷만 클라이언트 브라우저로 반환되도록 허용합니다. 인터넷상의 악의적인 행위자가 단순히 응답처럼 보이는(즉, 응답 플래그가 설정된) 패킷을 클라이언트에 다시 보낼 수 있습니까? 예. 그러나 클라이언트가 패킷 필터링 방화벽을 통과하더라도 연결을 수락할 가능성은 거의 없습니다. 이것은 매우 기본적인 답변이며 많은 세부 정보와 시나리오를 건너뛰었지만 원하는 수준의 세부 정보를 제공할 수 있기를 바랍니다.

위의 맥락에서 방화벽이 추적하는 대상을 설명하기 위해 "상태 저장" 및 "상태 비저장"이라는 용어를 사용합니다. 상태 저장이란 브라우저의 첫 번째 패킷이 방화벽에 도달하면 방화벽이 웹 연결이 활성화되었음을 확인한 다음 웹 서버의 응답 패킷을 기다린다는 것을 의미합니다. 연결 중에 정보를 추적합니다. "상태 비저장" 시나리오에서 방화벽은 통과하는 각 패킷을 평가하지만 그 사이에는 아무것도 추적하지 않습니다. TCP/IP 연결에는 방화벽의 추적 여부에 관계없이 내부적으로 "상태" 정보(예: 플래그)가 있습니다.

관련 정보