출처 출처: https://hongpage.kr/9 [홍페이지 HONGPAGE]
홈페이지를 운영하다보면 트래픽이 초과 되는 경우가 종종 있는데
대부분 악의접인 접근, (로봇으로 추정되는) 불필요한 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
여러 나라를 차단하고 싶은경우 국가별로 한줄 한줄 추가하면 된다.
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로 하면되는데 혹시 몰라서 예시 파일도 첨부.
출처: https://hongpage.kr/9 [홍페이지 HONGPAGE]