이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 11350|회답: 0

[리눅스] DROP과 REJECT의 차이점

[링크 복사]
게시됨 2016. 2. 2. 오전 10:33:58 | | |

방화벽에는 두 가지 유형의 정책 동작이 있습니다: DROP과 REJECT이며, 그 차이점은 다음과 같습니다:
1. DROP 액션은 피드백 없이 데이터를 직접 폐기하는 것입니다. 클라이언트가 타임아웃을 기다리면 방화벽에 의해 쉽게 차단될 수 있습니다.
2. REJECT 동작은 reject(종료된) 패킷(TCP FIN 또는 UDP-ICMP-PORT-UNREACH)을 더 정중하게 반환하고, 상대방의 연결 동작을 명시적으로 거부합니다. 연결이 즉시 끊기고, 클라이언트는 접근한 호스트가 존재하지 않는다고 생각합니다. REJECT는 IPTABLES에 ICMP 포트-접근 불가, ICMP 에코-응답, TCP-리셋과 같은 반환 매개변수를 가지고 있습니다(이 패킷은 상대방에게 연결을 종료하도록 요청합니다).

DROP과 REJECT 중 어느 쪽을 사용하는 것이 적절한지는 확실하지 않으며, 두 가지 모두 실제로 적용될 수 있습니다. REJECT는 더 순응적인 유형입니다
그리고 통제된 네트워크 환경에서 네트워크/방화벽 문제를 진단하고 디버깅하기가 더 용이합니다; 그리고 DROP은
방화벽 보안이 높아지고 효율성이 약간 향상되었으나, 이는 DROP의 비표준화(TCP 연결 명세에 잘 부합하지 않음) 처리 때문일 수 있습니다
예상치 못한 또는 진단하기 어려운 네트워크를 일으킬 수 있습니다. DROP이 연결을 일방적으로 끊긴 해도 사무실로 돌아오지 않기 때문입니다
따라서 연결 클라이언트는 TCP 세션이 타임아웃될 때까지 수동 기다렸다가 연결이 성공했는지 확인하여 기업의 내부 네트워크를 발전시킵니다
일부 클라이언트 프로그램이나 애플리케이션은 차단하면 IDENT 프로토콜 지원(TCP 포트 113, RFC 1413)을 요구합니다
방화벽이 예고 없이 DROP 규칙을 적용하면 모든 유사한 연결이 실패하고, 타임아웃 때문인지 판단하기 어려워집니다
문제는 방화벽이나 네트워크 장치/회선 장애 때문입니다.

개인적인 경험으로, 내부 기업(또는 부분적으로 신뢰받는 네트워크)에 방화벽을 배포할 때는 좀 더 신사적인 REJECT를 사용하는 것이 더 좋습니다
규칙을 자주 변경하거나 디버깅해야 하는 네트워크에도 마찬가지입니다; 위험한 인터넷/외곽망을 위한 방화벽의 경우,
더 잔인하지만 안전한 DROP 방식을 사용해야 하며, 이는 해킹 공격의 진행 속도(그리고 적어도 DROP)를 어느 정도 늦출 수 있습니다
TCP-Connect 포트 스캔을 더 오래 만들 수 있습니다).




이전의:UDP 포트 80을 기반으로 한 DOS 공격 사례
다음:C# Process.Start() 메서드가 자세히 설명되어 있습니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com