Iptables는 특정 IP 및 포트의 모든 콘텐츠를 허용합니다.

Iptables는 특정 IP 및 포트의 모든 콘텐츠를 허용합니다.

IP 주소와 특정 포트에서 내 포트로의 모든 트래픽을 허용하고 싶습니다.
구성은 다음과 같습니다.
구성

세부 정보:
내 서버에서 Jitsi를 사용하고 있으며 다른 server2(클라이언트)에서 Jitsi에 액세스하고 싶습니다. 클라이언트에는 기본적으로 https 및 ssh를 제외한 모든 것을 차단하는 방화벽이 있습니다.
Jitsi 회의 회의 프로세스(STUN 없이 지점 간 연결 허용)는 다음과 같습니다.

  • 클라이언트는 임의의 포트에서 Jitsi의 10000번째 포트로 연결 요청을 보냅니다.
  • Jitsi는 10000에 대한 요청을 수락하고 요청이 발생한 포트로 응답을 보냅니다.
  • 응답이 임의의 포트에서 오기 때문에 방화벽이 이를 차단했기 때문에 클라이언트는 응답을 볼 수 없습니다.

따라서 Jitsi 서버의 IP와 특정 포트 10000에서 내 포트로 향하는 모든 트래픽을 허용해야 합니다.

나는 이것을 rule.chains에 추가하려고 시도했습니다:

-A PREROUTING -s 10.0.0.1 --sport 10000 -j POLACCEPT

그러나 그것은 작동하지 않았습니다. systemctl restart netfilter-persist에서 오류가 발생했습니다.
그런데 tcpdump 결과에서 들어오는 패킷을 볼 수 있습니다. 이는 udp 패킷이 들어오고 iptables가 패킷을 차단하기 때문인 것 같지만 tcpdump는 여전히 패킷을 볼 수 있습니다.

해결책이 있나요? 그것은 무엇입니까?

답변1

문제는 프로토콜이 이미 지정되어 있다는 것입니다.
-A PREROUTING -p udp -s 10.0.0.1 --sport 10000 -j POLACCEPT
라인이 작동해야합니다. -p는 프로토콜을 나타내며 이제 udp로 지정됩니다.

여기에 대한 답변을 바탕으로 : https://serverfault.com/questions/415717/setting-iptables-rule-for-all-protocols-for-특이적-source-and-destination-port IP 전송 계층에는 포트에 바인딩되지 않은 프로토콜이 있을 수 있으므로 이는 허용되지 않습니다.

관련 정보