tip

.htaccess 파일을 이용하여 특정 아이피, 국가 차단하기

반응형

홈페이지를 운영하다보면 트래픽이 초과 되는 경우가 종종 있는데

대부분 악의접인 접근,  (로봇으로 추정되는) 불필요한 ip가 지속적으로 접속해 문제가 된 경우가 많다.

 

이 경우 .htaccess 파일을 이용하여 간편하게 차단이 가능한데

접속 ip를 살펴보고 혹시 해외 접속이 필요 없다면 해외 접속은 차단하는 것이 좋다.

 

 

 

나도 공부해볼겸 찾아본 htaccess의 정의

.htaccess는 하이퍼텍스트 액세스(hypertext access)의 준말로, 웹 서버 구성의 분산된 관리를 위해, 여러 웹 서버가 지원하는 디렉터리 수준의 설정 파일을 가리킨다. 

.htaccess의 원래 목적은 이름에도 나와 있듯이 디렉터리 당 접근 제어를 허용하는 것이다. 이를테면 콘텐츠 접근을 위해 암호를 요구하는 식이다. 그러나 오늘날 .htaccess 파일은 문자 집합, CGI 핸들러를 포함한 다른 수많은 설정 파일을 오버라이드할 수 있다. 

이러한 파일들은 웹 트리 안에 위치하며, 특정 디렉터리나 모든 하부 디렉터리에 대하여 서버에 설정된 글로벌 구성의 하부집합을 오버라이드할 수 있다.

출저 : 위키백과 (ko.wikipedia.org/wiki/.htaccess)

 

 

 

1. 국가별 접속 차단하기

 .htaccess 파일을 아래와 같이 작성하고 홈페이지 루트 폴더안에 업로드하면 끝.

SetEnvIf GEOIP_COUNTRY_CODE GB BlockCountry 
Deny from env=BlockCountry 
Allow from all

여기서 GB는 영국 국가코드. 위와같이 작성하면 영국에서 접속하는 ip를 모두 막게 된다.

국가별 코드는 아래 사이트에서 확인가능하다.

www.iegate.net/country_code.php

Alpha-2에 적혀있는 코드를 입력하면 됨.

 

 

여러 나라를 차단하고 싶은경우 국가별로 한줄 한줄 추가하면 된다.

SetEnvIf GEOIP_COUNTRY_CODE GB BlockCountry 
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry 
Deny from env=BlockCountry
Allow from all

 

 

2. 국가별 + 특정 아이피 차단

 

국가별로 차단하고, 나머지 국가중에서 특정 ip만 또 차단하고 싶을때는

아래처럼 SETEnvIf Remote_Addr 000.000.000.000 AllowCountry 를 추가하면 된다.

SETEnvIf Remote_Addr 000.000.000.000 AllowCountry
SETEnvIf Remote_Addr 000.000.000.000 AllowCountry
SETEnvIf Remote_Addr 000.000.000.000 AllowCountry
SETEnvIf Remote_Addr 000.000.000.000 AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE GB BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
Deny from env=BlockCountry
Allow from env=AllowCountry

 

 

3. 특정 국가만 접속 허용

한국(KR) 아이피 접속만 접속 허용. 해외 접속은 모두 차단

SetEnvIf GEOIP_COUNTRY_CODE KR AllowCountry
Allow from env=AllowCountry
Deny from all

 

 

 

4. 특정 아이피만 차단

국가가 아닌 특정 아이피만 차단하고 싶은 경우는 아래와 같이 작성하면 된다.

*을 사용하여 특정 아이피 대역 모두 차단도 가능.

<Files *>
order allow,deny
allow from all
deny from 000.00.00.000
deny from 000.00.00.000
deny from 000.00.*.*
</Files>

 

 

 

 

htaccess파일은 메모장이나 아무 에디터 열고 

저장만 .htaccess로 하면되는데 혹시 몰라서 예시 파일도 첨부.

 

htaccess예시_아이피차단.zip
0.00MB
htaccess예시_국가차단.zip
0.00MB

 

 

 

반응형