2011-09-16 5 views
2

IIS 7.5에서 Wordpress를 실행 중입니다. 오늘 내 로그를 검토 중이며 내 웹 사이트에 무차별 시도가 많아서 보안을 손상시킬 수있는 파일을 찾고 있습니다. 특히 설치 파일, phpMyAdmin, 다른 MySQL 물건 등을 찾으십시오. 모두가 404입니다.IIS/PHP 무차별 대폭적인 보안 모듈 - 제안?

이 정보를 바탕으로, A)에 보안 모듈을 만들 수있는 몇 가지 방법은 [n] 행의 수는 404입니다. B) 특정 키워드와 일치하는 사람을 차단합니다 (예 : phpMyAdmin을 찾는 것). C) 이것은 선택 사항이지만 일부를 하드 코딩/추가하려는 경우 이상적인 솔루션은 IP 주소를 차단합니다.

몇 가지 아이디어가 있지만 다른 제안도 찾고 있습니다. 서버가 IIS이기 때문에 C# ASP.NET을 사용하거나 IIS에 여하튼 포함 된 솔루션을 선호합니다.

답변

1

모든 요청을 가로 채기 위해 HttpHandler를 구현하십시오. 그들이 모듈을 찾고 있다면, 그들의 ip를 기록하고 그곳에서 공격을 막아서 차단 된 호스트 목록에 ip를 추가하십시오.

예 - 누군가가 IP를 위조 할 수 있지만 (DoS 공격에 더 많은 우려가 있으며 가능하지는 않음) 전체 세션 (대략 패킷)을 위조 할 수 없으므로 해당 IP에서 계속 진행할 수 없습니다 응답 및 파일이 어쨌든 존재하는지 확인하십시오.

이 방법은 모든 추가 액세스를 즉시 차단하는 등 특별한 방법으로 ips를 처리하려는 경우에 사용됩니다.

그런 유형의 컨트롤이 필요하지 않고 UrlScan이 IIS에 내장 된 이후 사용자 지정 URLScan 규칙을 즉시 차단하도록 고려하면 차단할 수 있습니다. 참조 : http://www.hanselman.com/blog/HackedAndIDidntLikeItURLScanIsStepZero.aspx

+0

iis를위한 urlscan은 apache의 다시 쓰기 규칙과 동일한 아이디어입니까? 내가 왜 사용하는지, phpMy * admin * config *에 대한 모든 요청을 색인에 다시 작성합니다. 이것은 대부분 (그 폴더 중 하나를 가지고 있기 때문에) 오류 로그를 정리하는 것 뿐이며, 또한 안심입니다. – thegaffney

+0

아니요, URLScan은 Apache 재 작성과 같은 URL 재 작성자가 아니며 대신 공격을 막으려 고 시도합니다. 트랙. 리디렉션하려면 (난 UrlScan 수 있지만 내 잘못 될 수 있다고 생각하지 않는다) 한 가지 옵션은 처리기를 구현하는 것입니다. –

0

A)는 행 (404)에서의의 [n]이 수 이상으로 사용자를 차단할.

"Better WP Security"라는 워드 프레스 플러그인이 있는데이 기능을 정확하게 지원하는 404 감지 기능이 있습니다. 나는 지금 그것을 사용하고 있으며 그것은 매우 잘 작동하고있다.

B) phpMyAdmin을 찾는 것과 같이 특정 키워드와 일치하는 사람을 차단합니다.

phpMyAdmin에 액세스하려는 사람을 차단하고 싶지는 않습니다. IP별로 요청을 필터링하고 싶습니다. - 화이트리스트에없는 사람이 phpMyAdmin을 방문하는 것을 허용하지 마십시오. 아래의 세 번째 질문에 대한 답에서이 작업을 수행하는 방법을 찾을 수 있습니다.

C)이 옵션이지만 내가

원한다면 이상적인 솔루션은 또한 IP 주소를 차단하는 것

당신은 IIS에 WP-login.php와 WP-관리자에 대한 액세스를 허용하기위한 단계 아래에 따를 수 있습니다 화이트리스트에없는 IP의 경우 7.5. 예를 들어, phpMyAdmin과 같은 파일을 WordPress 폴더에 넣으려면 4 단계의 코드에서 (포함 된) 태그 사이에 코드를 복사하고 "path"속성을 변경하십시오.

1, 웹을 엽니 다.당신이 그것을 찾을 수없는 경우 워드 프레스 루트 폴더에 설정 파일은 하나

2, "IP 및 도메인 제한"사용 [1]

3, 오픈 IIS를 [이 문서] 다음으로 역할을 만들 오른쪽 패널에서 루트 노드를 클릭하고 "기능 위임"을 선택하고 "IPv4 주소 및 도메인 제한"항목을 찾아서 "읽기/쓰기"위임을 부여합니다.

4, web.config 파일을 엽니 다. 파일을 직접 만들고 비어있는 경우 다음 코드를 추가하십시오 (하단의 설명 참조).

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<location path="wp-login.php"> 
     <system.webServer> 
     <security> 
      <ipSecurity allowUnlisted="false">  
       <clear/> 
       <add ipAddress="100.100.100.29" allowed="true"/> 
       <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/> 
      </ipSecurity> 
     </security> 
     <modules runAllManagedModulesForAllRequests="true"/> 
     </system.webServer> 
    </location> 

    <location path="wp-admin"> 
     <system.webServer> 
     <security> 
      <ipSecurity allowUnlisted="false">  
       <clear/> 
       <add ipAddress="100.100.100.29" allowed="true"/> 
       <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/> 
      </ipSecurity> 
     </security> 
     <modules runAllManagedModulesForAllRequests="true"/> 
     </system.webServer> 
    </location> 
</configuration> 

기존 web.config 파일에서 작업하는 경우 web.config의 기존 태그에 태그 사이에 코드를 추가하기 만하면됩니다.

설명 :이 코드는 wp-login.php 또는 wp-admin을 방문한 모든 IP를 차단합니다. 예외는 IP 100.100.100.29 및 111.111.111.1-255입니다. 이 IP를 자신의 목록으로 바꾸십시오.

5, 목록에없는 IP에서 wp-login.php 또는 wp-admin을 방문해보십시오. 403 - 액세스 거부 오류가 표시되어야합니다.