
Archwiki에는 다음과 같은 제안이 포함된 기사가 있습니다.상태 저장 iptables 방화벽. 그들은 몇 가지를 추천합니다포트 스캐너를 속이는 규칙, 그러나 DoS 공격에 대한 취약점을 노출할 것을 조언합니다. 특히, 닫힌 포트에 지속적으로 액세스를 시도하는 IP에 대한 액세스를 거부함으로써 잠재적인 공격자가 스푸핑된 IP로 이러한 패킷을 보내 방화벽이 합법적인 사용자를 차단할 수 있습니다.
제안된 TCP 규칙은 다음과 같습니다.
# iptables -I TCP -p tcp -m recent --update --rsource --seconds 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
# iptables -A INPUT -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
내 질문은 패킷의 TTL을 규칙에 추가하면 해당 DoS 공격의 효과를 제한할 수 있느냐는 것입니다. 에 따르면iptables의 매뉴얼 페이지:
--rttl:[···] 이것은 주소가 목록에 있고 현재 패킷의 TTL이 --set 규칙에 맞는 패킷의 TTL과 일치할 때만 발생하도록 일치 범위를 좁힙니다. 이것은 가짜 패킷을 보내 다른 사람이 귀하의 사이트에 액세스하는 것을 허용하지 않음으로써 이 모듈을 통해 DoS를 수행하기 위해 사람들이 자신의 소스 주소를 위조하는 데 문제가 있는 경우 유용할 수 있습니다.
작동할까요, 아니면 뭔가 빠졌나요?
답변1
이 목적으로 TTL 옵션을 사용하는 데에는 몇 가지 문제가 있습니다. 주소를 식별할 때 TTL을 식별의 추가 구성 요소로 사용하는 것이 기본적으로 제안됩니다.
그러나 공격자가 합법적인 클라이언트를 잠그기 위해 IP를 스푸핑할 수 있는 것처럼 패킷의 TTL 값도 스푸핑할 수 있습니다. 누구나 임의의 TTL 값을 사용하여 패킷을 생성할 수 있으며 가정된 초기 값으로 시작하는 데 국한되지 않습니다.
또한 네트워크 인프라가 변경됨에 따라 자연스럽게 귀하와 공격자 사이의 홉 수가 시간이 지남에 따라 변경되어 고유 식별자로서 TTL의 실질적인 유용성이 제한됩니다.
이 기술의 마지막 문제는 공격자가 많은 합법적인 호스트와 사용자 사이에 있는 것과 동일한 수의 홉을 공격자와 사용자 사이에 가질 가능성이 전적으로 가능하다는 것입니다. 따라서 TTL 스푸핑이 없더라도 어느 정도 DoS 공격을 받을 수 있습니다.
답변2
이것은 iptables 외부의 것이기 때문에 귀하의 질문에 실제로 대답하지 않습니다. 그러나 포트 스캔으로부터 보호하려면 PSAD가 더 나은 옵션입니다. 포트가 시스템을 검색하는 모든 IP를 차단하도록 구성할 수 있습니다. http://cipherdyne.org/psad/
이는 iptables를 사용하지만 반드시 iptables 규칙만은 아닙니다.