Nginx를 사용하여 추천 스팸을 차단하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/457447

  •  19-08-2019
  •  | 
  •  

문제

나는 Nginx 서버에서 두 개의 몽 그렐을 실행하고 있습니다. 존재하지 않는 파일에 대한 요청을 계속받습니다. IP 주소는 자주 변경되지만 참조 URL은 동일하게 유지됩니다. 나는 이것을 해결하고 싶다.

도움이 되었습니까?

해결책

https://calomel.org/nginx.html

대부분의 "참조 스팸" - "문제보다 더 성가심"

nginx.conf

    ## Deny certain Referers (case insensitive)
    ## The ~* makes it case insensitive as opposed to just a ~
 if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo))
    {  return 403;   }

다른 팁

nginx 사용 지도 모듈 목록이 길어지면서 조금 더 효율적이고 관리하기 쉽습니다.

이것을 http {} 블록에 넣으십시오.

map $http_referer $bad_referer {
    hostnames;

    default                           0;

    # Put regexes for undesired referers here
    "~social-buttons.com"             1;
    "~semalt.com"                     1;
    "~kambasoft.com"                  1;
    "~savetubevideo.com"              1;
    "~descargar-musica-gratis.net"    1;
    "~7makemoneyonline.com"           1;
    "~baixar-musicas-gratis.com"      1;
    "~iloveitaly.com"                 1;
    "~ilovevitaly.ru"                 1;
    "~fbdownloader.com"               1;
    "~econom.co"                      1;
    "~buttons-for-website.com"        1;
    "~buttons-for-your-website.com"   1;
    "~srecorder.co"                   1;
    "~darodar.com"                    1;
    "~priceg.com"                     1;
    "~blackhatworth.com"              1;
    "~adviceforum.info"               1;
    "~hulfingtonpost.com"             1;
    "~best-seo-solution.com"          1;
    "~googlsucks.com"                 1;
    "~theguardlan.com"                1;
    "~i-x.wiki"                       1;
    "~buy-cheap-online.info"          1;
    "~Get-Free-Traffic-Now.com"       1;
}

서버 {} 블록에 넣으십시오.

if ($bad_referer) { 
    return 444; # emtpy response
}

그것은 나를 위해 일했다.

이것을 얻었습니다 http://fadeit.dk/blog/post/nginx-referer-spam-blacklist

나는 방화벽이 스스로 분류 할 수있는 다른 임의의 규칙 대신 행동에 따라 사람들을 차단 해야하는 곳에서 비슷한 상황에 처해있었습니다.

그들은 내가 문제를 해결하는 방식으로 내 논리 (당신의 경우 레일)을 막는 것이 었습니다.

  • 논리가 블록 목록을 새 라인 분리 된 일반 텍스트 파일로 유지하도록하십시오.
  • 이 파일을 읽고 리스티를 방화벽의 블록리스트에 추가하기 위해 루트로 Bash (또는 기타) 스크립트를 작성하십시오.
  • 스크립트를 다시 루트로 호출 할 크론 작업을 만듭니다.

내가 이런 식으로하는 이유 (방화벽 구성을 변경하기 위해 Django 권한을 제공하는 것보다) 간단한 것 : 보안입니다. 내 응용 프로그램이 해킹되면 다른 것을 해치고 싶지 않을 것입니다.

Bash 스크립트는 다음과 같습니다.

exec < /path/to/my/djago-maintained/block-list
while read line
do

    iptables -A INPUT --source $line/32 -j DROP

done

블랙리스트에서 들어오는 IP를 확인하기위한 모듈을 만들었습니다. https://github.com/oneumyvakin/ngx_http_blacklist_lookup_module

projecthoneypot.org, blocklist.de 및 uceprotect.net의 블랙리스트를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top