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

보기: 14709|회답: 2

[웹] nginx는 DDOS 보호를 받고 있다고 http_user_agent

[링크 복사]
게시됨 2016. 12. 20. 오전 10:37:01 | | |

프론트엔드 스퀴드 리버스 프록시 → nginx
nginx는 DDOS 보호를 받고 있다고 http_user_agent
먼저, http_user_agent 발견된 의심스러운 방문의 특성을 파악하기 위해 접근 로그를 검토한 후 필터링하세요
"Mozilla/4.0 (호환; MSIE 5.01; 윈도우 NT 5.0; MyIE 3.01) 캐시-제어: 저장소 없음, 재검증 필수"
만약 ($http_user_agent ~ must-revalidate) {
반환 503;
}
#这样就返回503错误
위치 = / {
proxy.conf를 포함;
if ( $http_user_agent ~* "MSIE 5.01" ) {
proxy_pass http://www.qq.com;
#access_log /usr/local/nginx/logs/k.log main;
      }
proxy_pass http://windows.abc.com;
}
#判断一下user 에이전트, 만약 MSIE 5.01이라면, 그냥 다른 곳으로 던져보세요. 예를 들어 www.qq.com 가리키는 식으로 저항할 수 있는지 확인해보세요, 하하
proxy_hide_header 캐시 제어;
마지막으로 Cache-Control로 돌아가 페이지를 방문하세요
이제 링크가 프론트엔드 스퀴드에 캐시되어 애플리케이션 서버가 다운되지 않습니다
#########################################################
nginx에서 위치 모듈의 매개변수에 대한 상세한 설명
Nginx의 위치는 다음과 같은 매칭을 가질 수 있습니다:
1. = 이 쿼리에 엄격히 일치합니다. 찾으면 수색을 중단하세요.
2. ^~ 경로의 접두사와 일치시키고, 찾으면 검색을 중단합니다.
3. ~는 대문자 구분 정규 매칭입니다   
4. ~*는 대문자 구분 없는 일치입니다
5. !~와 !~*는 각각 대소문자 구분과 대소문자 구별 불일치입니다

파일 및 디렉터리 매칭
* -f와 !-f는 파일이 존재하는지 판단하는 데 사용됩니다
* -d와 !-d는 디렉터리가 존재하는지 판단하는 데 사용됩니다.
* -e와 !-e는 파일이나 디렉터리가 존재하는지 판단하는 데 사용됩니다
* -x와 !-x는 파일이 실행 가능한지 여부를 판단하는 데 사용됩니다

사용 가능한 전역 변수 중 일부를
$args
$content 길이
$content_타입
$document 뿌리
$document_uri
$host
$http_user_agent
$http_쿠키
$limit
$request_body_file
$request_메서드
$remote_addr
$remote_포트
$remote_user
$request_파일네임
$request_uri
$query 끈
$scheme
$server 프로토콜
$server_addr
$server_name
$server_port
$uri

재작성 후 플래그는 다음과 같을 수 있습니다:
마지막이야
휴식
리다이렉션
영구

proxy_pass http://localhost:80;
proxy_set_header 호스트 $host;
도메인 이름 정보를 전달 후 자동으로 변경할 수 있습니다




이전의:해제된 객체에 접근할 수 없는 상황에 대한 C# 우회 방법
다음:PowerShell은 여러 공간을 하나의 공간으로 변환하여 불필요한 공간을 제거합니다
 집주인| 게시됨 2016. 12. 20. 오전 10:37:25 |

서버는 cc의 영향을 받습니다(공격자는 프록시 서버를 이용해 피해 호스트에 정당한 요청을 생성하고, DDOS를 실행하며, 이를 cc(ChallengeCollapsar)라고 위장합니다. )공격을 받으면 nginx는 쉽게 처리할 수 있습니다.

CC 공격자의 useragent는 일반적으로 고정되어 있기 때문에, 우리는 nginx를 사용해 useragatet가 CC 공격을 처리하도록 판단합니다.
nginx 서버 구성에서

(1) Useragent는 특정 기능과 동일하다(대문자 구분 없음)
if ($http_user_agent ~* OliveHC3){
   리턴 403;
}
(2) Useragent는 특정 기능(대소문자 구분 없음)을 포함하고 있습니다.
if ($http_user_agent ~* (*OliveHC3*)){
   리턴 403;
}
(3) Useragent는 빈 기능입니다
if ($http_user_agent ~ ^$){
        리턴 403;
}


이렇게 공격은 403으로 돌아갔다.
 집주인| 게시됨 2016. 12. 20. 오전 11:03:41 |

1. $remote_addr과 $http_x_forwarded_for는 클라이언트의 IP 주소를 기록하는 데 사용됩니다;
2.$remote_user: 클라이언트 사용자 이름을 기록하는 데 사용;
3.$time_local: 접근 시간과 시간대를 기록하는 데 사용;
4.$request: 요청을 기록하는 데 사용되는 URL 및 HTTP 프로토콜;
5.$status : 요청 상태를 기록하는 데 사용; 성공은 200,
6.$body_bytes_s ent: 클라이언트에 전송된 파일의 본문 크기 기록;
7.$http_referer: 해당 페이지 링크에서 방문을 기록하는 데 사용되었습니다;
8.$http_user_agent: 클라이언트 브라우저의 관련 정보를 기록합니다;
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com