nginx는 모든 HTTP 서버를 대상으로 연결을 설정하고 매우 낮은 속도로 패킷을 전송하고 연결을 열어두는 Slowloris 공격으로 감지되었습니다. 클라이언트가 이러한 연결을 계속 설정하면 서버에서 사용 가능한 연결 풀이 빠르게 채워져 서비스 거부 공격이 발생합니다.
주어진 해결책은 웹 서버의 HTTP 헤더 전송에 허용되는 최대 시간을 제한하는 것입니다.
그렇다면 nginx를 어떻게 설정하나요?
keepalive_timeout 65;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
을 설정했지만 여전히 문제가 발견되었습니다. 생각해 보니 client_header_timeout은 두 패킷 사이의 지연만 제한합니다. 전송이 천천히 계속되는 한 중단되지는 않습니다. 총 전송 시간이 설정된 값을 초과하면 바로 중단됩니다.
어떻게 하나요? 아니면 슬로로리스를 처리하는 모듈이 있나요?
slowloris는 nginx에 유효하지 않나요?
IP별 링크 수를 설정합니다.
공격에 대처하는 것은 자원 전쟁입니다. nginx는 이러한 종류의 링크를 지원하는 데 많은 자원이 필요하지 않으며 각 IP에 대한 링크 수를 설정합니다.
게시물을 통해 공격이 구현되는지 확인하려면 쿠키를 설정하면 됩니다. 쿠키가 없으면 해당 게시물을 삭제하면 됩니다.