어떤 블로그에 IP 주소를 달리 하면서 짧은 시간에 애드센스 광고를 누르는 공격을 받았다는 글을 보고 특정 IP 주소를 웹사이트에 접속하지 못하도록 차단하는 방법을 이용하면 도움이 되지 않을까 생각되었습니다. Apache 서버의 경우 .htaccess에 몇 줄의 코드를 추가하여 쉽게 특정 IP 주소에 대하여 웹사이트 접속 차단이 가능합니다. cPanel을 사용하는 경우 IP Blocker 또는 IP Deny Manager와 같은 툴을 사용하여 특정 IP 주소를 차단할 수 있습니다.
특정 IP 주소 웹사이트 접속 차단하기
.htaccess 파일을 통해 IP 주소 접속 차단
.htaccess 파일을 통해 특정 IP 주소나 도메인의 접속을 차단할 수 있습니다. 다음과 같은 코드를 .htaccess 파일에 추가하도록 합니다.
# allow all except those indicated here
<Files *>
order allow,deny
allow from all
deny from xxx.xxx.xxx.xxx
deny from .*example\.com.*
</Files>
.htaccess 파일 수정 방법은 다음 글을 참고해보세요.
Nginx에서는 /nginx/example.com 디렉터리에 access.conf 파일을 만들어 다음과 같은 형식으로 코드를 추가하면 된다고 합니다("Blocking IPs with Nginx" 참고).
location / {
deny 1.2.3.4;
}
cPanel의 IP Blocker 또는 IP Deny Manager 사용
블루호스트 등과 같이 cPanel을 제공하는 웹호스팅에서는 IP Blocker 또는 IP Deny Manager를 사용할 수 있습니다. 저는 살펴보니 공유호스팅에서는 IP Blocker, VPS에서는 IP Deny Manager가 제공되네요. 두 툴을 살펴보니 완전히 동일한 것 같습니다.
블루호스트를 이용하는 경우 Bluehost 홈페이지에 로그인한 후에 Advanced (고급)를 클릭하고 검색 상자에 IP를 입력합니다. 검색 결과에서 Security > IP Blocker (IP 차단기)를 클릭합니다.
IP Blocker 페이지가 표시됩니다. Add an IP or Range (IP 또는 범위 추가) 아래의 IP Address or Domain 필드에 IP 주소나 도메인을 추가할 수 있습니다.
다음과 같은 형식으로 접속을 거부할 IP 주소들을 지정할 수 있습니다.
단일 IP 주소
- 192.168.0.1
- 2002:db8::1
범위
- 192.168.0.1-192.168.0.40
- 2001:db8::1-2001:db8::3
Implied Range
- 192.168.0.1-40
CIDR 형식
- 192.168.0.1/32
- 2001:db8::/32
192.*.*.* 의미
- 192.
IP 주소나 도메인을 추가하고 Add를 클릭합니다.
이제 추가한 IP 주소의 사용자들이 사이트에 액세스할 수 없게 됩니다. Go Back (뒤로 가기)을 눌러 IP Blocker 페이지로 되돌아가면 아래에 현재 차단 중인 IP 주소 리스트가 표시됩니다.
물론 삭제하려면 맨 오른쪽의 Delete를 클릭합니다.
블루호스트 VPS를 사용하는 경우 Security > IP Deny Manager 아이콘을 클릭하여 IP Deny Manager 툴에 접속할 수 있습니다. IP Deny Manager에서 동일한 방법으로 특정 IP 주소를 차단할 수 있습니다.
위의 방법으로 IP 주소를 차단할 경우 해당 IP 주소로 홈페이지에 접속하려고 시도하면 Forbidden 오류가 발생하면서 사이트에 접속이 되지 않습니다.
참고