로그인

검색

Server
2014.04.08 21:41

nginx 무한 F5 막기

조회 수 6896 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


현재 사이트에 적용이 되어 있기 때문에 테스트가 가능합니다!!

현재 사이트에서 F5를 꾹 누르시면 접속이 차단되니 시도해 보세요^^

F5를 꾹 누르고 있을시에만 작동하며 저상태에서 새로고침하시면 정상접속됩니다


위 스크린샷처럼 F5를 꾹누르거나 정상범위를 뛰어넘는 HTTP요청수를 발생시키면

서버에서는 비정상접속으로 간주하여 요청하는 페이지를 보내지않고

503으로 돌려버려 PHP가 응답하지않고 웹서버에서 오류페이지를 보냅니다

PHP가 아닌 웹서버가 처리하니 불필요한 연산을 하지않아 위의 공격은 효과가 미미해집니다

참고링크 : limit req module


F5를 꾹누르는게 왜 공격이 되는지, 왜 막으려고하는지 궁금하신분들이 계실텐데

공격자는 단순하게 f5를 누를뿐이지만 서버에서 받아보는 요청을 정상요청보다 수십배로 불어나서 받아버립니다

웹서버에서 이걸받고 php와 mysql에서 요청을해서 종합적으로 모아 클라이언트에게 보내는데

F5를 꾹누르게되면 위의과정을 수십배로 해야하기에 요청이 점점쌓이다 정상사용자도 처리를 늦게하는것입니다

이것이 지속되다가 서버리소스가 바닥나게되면 최악의 경우 서버가 다운되는 상태까지 가게됩니다


물론 웹페이지에 f5를 막는 스크립트를 적용하시는분들도 계시겠지만

클라이언트 단에서 막는것과 서버에서 막는것과는 차이가있습니다

클라이언트에서는 해당자바스크립트를 무효화시키던가 프로그램으로 충분히 우회가 가능하지만

서버에서 막아버리면 아무리 요청을 보내도 응답을 하지않으니 서버에 끼치는 부하가 적습니다


설명을하다보니 말이길어졌는데 바로 설명하겠습니다.

기본값은 5이지만 너무 적다생각하시면 10,15 정도로 늘리셔도됩니다.


우선 nginx.conf를 열어줍니다

1
2
3
4
5
6
7
8
9
# ---------------------------------------
# HTTP Core Module
# ---------------------------------------
  
[...]
  
limit_req_zone $binary_remote_addr zone=limit:10m rate=5r/s;
  
[...]

주의 하실점은 쓰레드 설정 아래에 적는것이 아닌

http { } 사이에 적어주셔야 합니다.


그다음은 적용할 가상호스트를 열어줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ---------------------------------------
# vHost example.com
# ---------------------------------------
  
[...]
  
location ~ \.php$ {
        limit_req zone=limit burst=5 nodelay;
        try_files $uri =404;
        fastcgi_pass unix:/var/run/example.socket;
        fastcgi_index index.php;
        fastcgi_read_timeout 120;
        include /etc/nginx/fastcgi_params;
    }
  
[...]

php페이지가 아닌경우에는 server { } 사이에

php페이지의 경우에는 위처럼 location ~ \.php$ { } 사이에

limit_req zone=limit burst=5 nodelay; 를 적어주시면됩니다.


그후 nginx를 재시작해주시고 적용한 홈페이지로 들어가 F5를 꾹 눌러주시면됩니다.



리눅스

유용한 정보 및 자료

  1. xe 이미지프로세스 묘듈

    Date2014.05.01 CategoryXE By보석 Views9595
    Read More
  2. 리눅스 백업서버 만들기

    Date2014.05.01 CategoryXE By보석 Views7088
    Read More
  3. [XE] SKETCHBOOK5 (최신버전)에서 특정 확장변수를 추천하는 사람에게만 공개

    Date2014.04.30 CategoryXE By보석 Views9207
    Read More
  4. [XE] 포인트복권 스킨

    Date2014.04.29 CategoryXE By보석 Views7977
    Read More
  5. [XE[ 공백제거 애드온 입니다.

    Date2014.04.29 CategoryXE By보석 Views8706
    Read More
  6. [XE]Vegas Background 플러그인 애드온

    Date2014.04.29 CategoryXE By보석 Views7843
    Read More
  7. [XE] P테그 제거 애드온

    Date2014.04.29 CategoryXE By보석 Views8763
    Read More
  8. XE 게시판 별 작성글 수 한번으로 제한 하기

    Date2014.04.23 CategoryXE By보석 Views8899
    Read More
  9. XE 알림센터 수정버전

    Date2014.04.15 CategoryXE By보석 Views7284
    Read More
  10. XE 무한 새로로침 방어 애드온

    Date2014.04.15 CategoryXE By보석 Views9260
    Read More
  11. nginx 무한 F5 막기

    Date2014.04.08 CategoryServer By보석 Views6896
    Read More
  12. 스케치북5 게시판 스킨 사용시 모바일 코멘트 수정시 글 내용이 없는경우

    Date2014.04.02 CategoryXE By보석 Views12590
    Read More
  13. ajaXplorer 한글파일 업로드시 411 에러 해결법

    Date2014.02.09 CategoryPydio By보석 Views7744
    Read More
  14. 우분투 프록시서버 만들기

    Date2014.02.03 CategoryServer By보석 Views10111
    Read More
  15. XE 게시글 리스트에 다운로드링크 만들기

    Date2014.01.16 CategoryXE By보석 Views12679
    Read More
  16. XE 비회원도 추천가능하게(비회원 추천)

    Date2013.10.08 CategoryXE By보석 Views21118
    Read More
  17. XE 애드온 - 닉네임동기화 및 일정 추천수시 게시글 이동

    Date2013.09.01 CategoryXE By보석 Views20479
    Read More
  18. XE 보드DX 자동글쓰기 및 댓글 쓰기 방지

    Date2013.08.26 CategoryXE By보석 Views21349
    Read More
  19. 우분투 mysql DB 파일 위치 변경 방법 패키지로 설치 했을 경우

    Date2013.08.26 CategoryServer By보석 Views57849
    Read More
  20. 우분투 로그 위치 및 각 로그의 설명

    Date2013.08.25 CategoryServer By보석 Views21855
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11