중국에 의해 트롤링되고 있는데 왜 내 서버에 대한 요청을 차단할 수 없는지 모르겠습니다. .
// host.deny
ALL: item.taobao.com ALL: 117.25.128.*
하지만 웹 서버 tail -f /var/log/apache2/error.log
에서 오류 로그를 볼 때 요청이 여전히 허용됩니다.
질문 : 왜 “내 /etc/hosts.deny 구성이 작동하지 않습니까?
답변
-
파일 이름은
host.deny
가 아니라
/etc/hosts.deny
입니다. -
모든 서비스가 tcp-wrappers를 사용하는 것은 아닙니다. 예를 들어
sshd
는 기본적으로 그렇지 않습니다. 아파치도 마찬가지입니다. -
117.25.128 / 24의 모든 패킷을 차단합니다. 예 :
iptables -I INPUT -s 117.25.128.0/24 -j DROP
-
더욱 좋은 점은 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을 채택하여 다양한 파일 및 방화벽과 함께 사용할 수 있습니다.
댓글
답변
원래 질문에 관해서. 데비안의 아파치는 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)를 그에 따라 늘려야합니다.
- 제 첫 줄을 다시 살펴보세요.
- 말이 되네요. ' 설정을 읽어 보겠습니다. 도와 주셔서 다시 한 번 감사드립니다!
- (오해하지 마세요. 웹 서버 나 아파치에서 주소를 차단하는 것이 더 나은 제목이 될 수 있다고 제안하는 것뿐입니다) … 그럼에도 불구하고 제가 온 것은이 댓글이 아닙니다. 여기에서 다시 대답을 읽으십시오. 시작 단계의 주석 외에도 결국 더 흥미로운 것을 찾을 수 있습니다.
iptables -A INPUT -s 117.25.128.0/24 -j DROP
시도했지만 '도 차단하지 않았습니다.-I INPUT
는 INPUT 체인의 맨 위에 새 규칙을 삽입합니다.-A INPUT
체인의 맨 아래에 추가합니다.-A INPUT
가 ' 작동하지 않았다면 체인 초기에 해당 패킷을 허용하는 다른 규칙이 있었을 것입니다.