2014-10-06 2 views
0

나는 그것이 효율적이지 알고,하지만 난 내 큰 htaccess로 파크 금지 IP ("/"에 대한) 루트 htdocs에에서 이런 일이 :apache 2.4 howto "가상 호스트마다 IP를 요구하지 않습니까?"

<RequireAll> 
Require not ip 1.163.1.5 
Require not ip 1.163.192.83 
Require not ip 1.163.193.136 
... (4000+ IPs) 
</RequireAll> 

(이 scriptly의 분석에 업데이트됩니다 액세스 로그 파일 : 404 w00tw00t 및 스크립트 키디 시도를 검색하여 의미를 확인하십시오. .htaccess 사용에 대한 아이디어는 새로운 IP를 추가 할 때 동적으로 업데이트되고 구문 분석됩니다 .-)

많은 기업과 마찬가지로 http : 80에서 다수의 ProxyPass 규칙과 다중 백엔드 로컬 호스트 (또는 LAN IP)에서 수신 대기하는 사이트.

목표는 분명히 대부분의 회사에서와 같이 역방향 프록시에서 모든 보안 작업을 구성하는 것입니다. 따라서 예상대로 백엔드에 대한 모든 요청은 소스 IP로 127.0.0.1 (또는 로컬 프록시 IP)을 갖습니다.

그러나이 구성이 예상대로 작동하지 않는 것으로 나타났습니다. .htaccess는 백엔드 사이트 에 대해서만으로 평가됩니다. 전면 가상 호스트가 아닙니다. Excactly 내가해야 할 일의 역전! :/

Virtualhosts에서만 작동하도록하려면 어떻게해야합니까? 가장 좋은 방법은 무엇입니까? 대신 RewriteCond를 사용해야합니까?

답변

0

확인 RequireAll이 디렉토리 태그 용이므로 불가능하다고 생각했습니다. 해결책이다

1.161.58.238 - 
1.163.1.5 - 
1.163.192.83 - 
이 추천 .htaccess.blacklist.ip.hosts.deny 함유 라인

# BANNED IPs 
    <IfModule rewrite_module> 
    RewriteEngine On 
    RewriteMap hosts-deny txt:/path/.htaccess.blacklist.ip.hosts.deny 
    RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR] 
    RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND 
    RewriteRule ^- [F] 
    </IfModule>