중국에 의해 트롤링되고 있는데 왜 내 서버에 대한 요청을 차단할 수 없는지 모르겠습니다. .

// host.deny

ALL: item.taobao.com ALL: 117.25.128.* 

하지만 웹 서버 tail -f /var/log/apache2/error.log에서 오류 로그를 볼 때 요청이 여전히 허용됩니다.

질문 : 왜 “내 /etc/hosts.deny 구성이 작동하지 않습니까?

답변

  1. 파일 이름은 host.deny

    가 아니라 /etc/hosts.deny입니다.

  2. 모든 서비스가 tcp-wrappers를 사용하는 것은 아닙니다. 예를 들어 sshd는 기본적으로 그렇지 않습니다. 아파치도 마찬가지입니다.

  3. 117.25.128 / 24의 모든 패킷을 차단합니다. 예 :

      iptables -I INPUT -s 117.25.128.0/24 -j DROP  
  4. 더욱 좋은 점은 fail2ban 을 사용하여 로그 파일 (예 : apache의 access.log 및 / 또는 error.log) 서버를 공격하려는 IP 주소를 자동으로 차단합니다.

Debian fail2ban 패키지 설명 :

Fail2ban은 로그 파일 (예 : /var/log/auth.log, /var/log/apache/access.log)을 모니터링하고 기존 방화벽 규칙을 업데이트하여 오류가 발생하기 쉬운 주소를 일시적으로 또는 영구적으로 차단합니다.

Fail2ban을 사용하면 iptables 또는 hosts.deny 규칙을 사용하여 IP를 금지하거나 단순히 알림 이메일을 보내는 등 다양한 작업을 쉽게 지정할 수 있습니다.

기본적으로 다양한 서비스에 대한 필터 표현식이 함께 제공됩니다. (sshd, apache, qmail, proftpd, sasl 등) 그러나 다른 텍스트 파일을 모니터링하기 위해 구성을 쉽게 확장 할 수 있습니다. 모든 필터와 작업이 구성 파일에 제공되므로 fail2ban을 채택하여 다양한 파일 및 방화벽과 함께 사용할 수 있습니다.

댓글

  • 그래도 ' 타일을 수정하겠습니다. 아 알겠습니다. iptables -A INPUT -s 117.25.128.0/24 -j DROP 시도했지만 '도 차단하지 않았습니다.
  • -I INPUT는 INPUT 체인의 맨 위에 새 규칙을 삽입합니다. -A INPUT 체인의 맨 아래에 추가합니다. -A INPUT가 ' 작동하지 않았다면 체인 초기에 해당 패킷을 허용하는 다른 규칙이 있었을 것입니다.
  • ahhh 알겠습니다. ' 그럼 우선 순위가 위에서 아래로 있다고 가정합니까?
  • 예. 첫 번째 일치 규칙이 이깁니다.
  • 완벽하게 작동하는 것 같습니다! 감사합니다. 많은 요청이 동일한 참조에서오고 있지만 빠른 질문입니다. (item.taobao.com) 클라이언트 IP가 서로 다른 '이므로 ' ' 어떤 유형의 리디렉션을 사용하고 있습니다. 참조 자별로 차단하거나 와일드 카드 선택기처럼 117. *별로 차단하는 방법이 있나요?

답변

원래 질문에 관해서. 데비안의 아파치는 libwrap으로 구성되어 있지 않으므로 hosts.deny를 참조하지 않습니다. [이전 답변은 이미 언급했습니다. 실제로 tcpwrappers는 90 년대와 같이 보안의 전형이 아닙니다. to blacklisting]. 데몬으로 실행하는 것이 아니라 (x) inetd에서 실행해야하므로 속도가 (상당히) 느려집니다.

Apache 수준에서 액세스를 차단 / 허용 할 수 있습니다. 아파치 용 tcp 래퍼가 필요하지 않습니다 [그 문제에 대해서는 iptables도 아닙니다]. ssh에 대해서는 언급하지 않았지만, ssh 서버를 외부에 직접 열어 두지 않았습니다. 그러나 계속 읽으십시오.

300 개의 가상 호스트가 있습니다. + 도메인 및 유사한 문제, taobao, baidu 및 종종 Google 스파이더에서도 마찬가지입니다. 특히 baidu 스파이더는 상당히 공격적이고 지속적 일 수 있습니다.

이미 파악했듯이 서버 팜이 있습니다. IP를 차단하더라도 다른 IP 주소에서 곧 다시 나타납니다.

Lis를 유지하려고 시도하는 것은 실용적이지 않습니다. ts의 IP 주소 / 넷 블록을 수작업으로 처리합니다.

이것은 modsecurity가 사용자 에이전트 문자열을 영구적으로 차단하는 반면 mod_evasive는 악의적 인 IP를 일시적으로 차단하는 것입니다.

이 설정 , 검색 엔진의 스파이더 속도를 늦추는 것 외에도 CMS에서 암호를 추측하려는 좀비를 줄이는 이점도 있습니다.

modsecurity.conf의 관련 부분

SecRule REQUEST_HEADERS:User-Agent "Yandex" phase:1,deny,nolog,id:"6972" SecRule REQUEST_HEADERS:User-Agent "ichiro" phase:1,deny,nolog,id:"6973" SecRule REQUEST_HEADERS:User-Agent "Baiduspider" phase:1,deny,nolog,id:"6974" SecRule REQUEST_HEADERS:User-Agent "Baiduspider/.*" phase:1,deny,nolog,id:"6975" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-video" phase:1,deny,nolog,id:"6976" SecRule REQUEST_HEADERS:User-Agent "Baiduspider-image" phase:1,deny,nolog,id:"6977" SecRule REQUEST_HEADERS:User-Agent "sogou spider" phase:1,deny,nolog,id:"6978" SecRule REQUEST_HEADERS:User-Agent "YoudaoBot" phase:1,deny,nolog,id:"6979" SecRule REQUEST_HEADERS:User-Agent "bingbot(at)microsoft.com" phase:1,deny,nolog,id:"6980" SecRule REQUEST_HEADERS:User-Agent "msnbot(at)microsoft.com" phase:1,deny,nolog,id:"6981" SecRule REQUEST_HEADERS:User-Agent "BLEXBot/1.0" phase:1,deny,nolog,id:"6982" SecRule REQUEST_HEADERS:User-Agent "Bot.*" phase:1,deny,nolog,id:"6984" SecRule REQUEST_HEADERS:User-Agent "AhrefsBot.*" phase:1,deny,nolog,id:"6985" 

그리고 우리의 mod-evasive.conf

DOSHashTableSize 2048 DOSPageCount 10 DOSSiteCount 300 DOSPageInterval 2.0 DOSSiteInterval 1.0 DOSBlockingPeriod 600.0 DOSLogDir /var/log/apache2/evasive DOSWhitelist 127.0.0.1 DOSWhitelist 1xx.xxx.xxx.xx 

저는 또한 매우 실제적인 가능성을 잊었습니다. 중국과 거래하지 않거나 홈 서버를 운영하는 경우 전국을 차단하십시오. 이러한 공격과 악성 코드의 수준으로 인해 많은 전문가가이를 수행 할 수 있습니다.

http://www.cyberciti.biz/faq/block-entier-country-using-iptables/

또한이 다소 긴 답변에 각주를 추가하는 것을 잊었습니다.종종 사람들은 직장에서 이러한 종류의 문제에 대해 robots.txt를 사용하도록 제안합니다. 요점은 robots.txt는 원격 프로그램에 대한 제안 일 뿐이며, 악의적 인 행위자는 확실히 무시하고 다른 웹 크롤러가 오늘날이를 존중한다고 보장 할 수 없습니다. 예를 들어, 우리의 테스트에서 Baidu는 그들을 존중하지 않는 것으로 보인다 . (robots.txt는 갱스터에게 물어 보는 것과 같습니다. 때리는 대신 간지럽 혀주세요)

댓글

  • 감사합니다! 맞습니다. ' m def mod_evasive를 사용할 예정입니다. 구성 파일 설정이 잘 작동합니까?
  • 잘 작동합니다. 대부분의 가상 호스트에는 많지 않습니다. 방문자. 그렇지 않으면 dospagecount (IP에서 한 페이지에 대한 최대 방문수)와 dossitecount (최대 방문수 및 IP)를 그에 따라 늘려야합니다.
  • 제 첫 줄을 다시 살펴보세요.
  • 말이 되네요. ' 설정을 읽어 보겠습니다. 도와 주셔서 다시 한 번 감사드립니다!
  • (오해하지 마세요. 웹 서버 나 아파치에서 주소를 차단하는 것이 더 나은 제목이 될 수 있다고 제안하는 것뿐입니다) … 그럼에도 불구하고 제가 온 것은이 댓글이 아닙니다. 여기에서 다시 대답을 읽으십시오. 시작 단계의 주석 외에도 결국 더 흥미로운 것을 찾을 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다