비슷한 문제가 있습니다nc 호스트에 대한 경로는 없지만 ping이 가능합니다.
이 경우 일부 포트의 경우 iptables(기본) 규칙은 호스트에서 금지한 ICMP 패킷을 반환하여 "경로 없음"으로 변환했습니다.
문제를 해결했지만(규칙 제거) 기본 규칙이 왜 '경로 없음'인지 알고 싶습니다. 거부, 경로 없음, 연결 거부로 설정하는 것이 더 명확하지 않습니까?
전송 연결이 거부되었으므로 더 많은 리소스가 필요합니까? 상당히 큰 패킷인가요?
답변1
귀하가 요청하는 REJECT 규칙은 다음과 같이 정의됩니다.
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
이것의 장점은 대부분의/모든 프로토콜에서 동일하게 잘 작동하는 REJECT 규칙이라는 것입니다. "이 호스트와의 통신은 관리상 금지되어 있습니다"라는 특정 유형의 ICMP가 발생하므로 수신자는 이것이 단순한 네트워크 결함이나 소프트웨어 구성 실수가 아니라 방화벽 유형의 관리 블록임을 식별할 수 있습니다. 즉, "이 차단은 인간의 조치 없이는 해결될 가능성이 낮으므로 계속해서 시도하는 것은 소용이 없을 수 있습니다. 이것이 적합하지 않다고 생각되면 네트워크 관리자에게 문의하십시오."
원하는 경우 "Connection Rejected"를 사용하여 TCP 연결을 거부하고 ICMP를 사용하여 다른 모든 연결을 거부할 수 있지만 이를 위해서는 두 가지 규칙이 필요합니다.
iptables -w -A INPUT -p tcp -j REJECT --reject-with tcp-reset
iptables -w -A INPUT -j reject --reject-with icmp-host-prohibited
기본적으로 "연결 거부됨" TCP ReSeT 패킷 또는 ICMP 호스트 금지 패킷 전송은 이미 낮은 우선순위에서 발생하므로 시스템에 더 중요한 작업이 있는 경우 시스템에 더 중요한 작업이 있는 경우 이러한 거부 알림이 지연되거나 완전히 건너뜁니다. 할. TCP 재설정 패킷과 ICMP 오류 패킷 사이에는 패킷 크기에 큰 차이가 없습니다.
그러나 (최소) 리소스 사용량이 여전히 걱정된다면 DROP 규칙을 사용하여 연결을 차단할 수 있습니다. DROP 규칙을 사용하면 어떤 종류의 응답도 보내지 않고 일치하는 패킷이 삭제됩니다. 이렇게 하려면 클라이언트가 패킷 통과 실패를 감지하기 전에 시간 초과될 때까지 기다려야 하므로 네트워크 문제 해결이 더 짜증납니다.