htaccess를 사용하여 특정 IP 주소 또는 특정 도메인 차단하기

9

불량 사용자나 스패머, 사이트 글을 복제하는 사용자 혹은 특정 웹사이트에서 불필요하게 사이트로 유입되는 경우 .htaccess를 통해 IP나 유입 사이트 주소로 차단할 수 있습니다.

FTP 클라이언트를 사용하여 FTP에 접속한 후에 .htaccess 파일을 열고 아래와 같이 편집하도록 합니다.  .htaccess 파일이 없는 경우 루트에 하나를 만들도록 합니다. (FTP 사용법은 이 글을 참고해보시기 바랍니다.)

특정 IP 주소/도메인 차단하기

다음 형식을 사용하면 192.168.1.25, 192.168.1.26, example.com을 제외한 모든 IP 및 도메인이 허용됩니다. (즉, 별도로 지정된 IP 주소나 사이만 차단됨).

# allow all except those indicated here
<Files *>
order allow,deny
allow from all
deny from 192.168.1.25
deny from 192.168.1.26
deny from .*example\.com.*
</Files>

특정 IP 주소/도메인만 허용하기

다음 스크립트를  .htaccess에 입력하여 지정된 IP와 도메인을 제외한 모든 IP와 도메인을 차단할 수 있습니다.

# Deny access to everyone, except those listed here:
<Files *>
order deny,allow
deny from all
deny from 192.168.1.21
deny from 192.168.1.22
allow from .*example\.com.*
</Files>

특정 참조 도메인으로부터 유입되는 방문자 차단하기

참조 도메인(Referring domain)별로 원치 않는 방문자를 차단하려면 아래와 같은 스크립트를 사용합니다. (domain1domain2를 차단할 참조 도메인으로 대체하도록 합니다.)

# block visitors referred from indicated domains
RewriteEngine on
RewriteCond %{HTTP_REFERER} domain01\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain02\.com [NC]
RewriteRule .* - [F]
# Source: mediatemple.net

워드프레스 스팸 IP 차단

Block spams in WordPress

워드프레스에서 스팸 때문에 고민하는 경우 Akismet이나 IP Blacklist Cloud 등의 플러그인을 사용할 수 있습니다. 스팸 차단 플러그인에 대한 내용은 여기를 참고해보시기 바랍니다.

참고:

*일부 글에 제휴링크가 포함될 수 있으며, 기부를 통해 블로그 운영을 후원하실 수 있습니다.

Related Posts

9개 댓글
  1. 필드 님의 말씀

    ip 차단은 되지만 도메인 차단은 안되는것 같습니다.

    1. Word 님의 말씀

      알려주셔서 감사합니다.

      “특정 참조 도메인으로부터 유입되는 방문자 차단하기” 부분의 코드도 작동하지 않나요?

      1. 필드 님의 말씀

        글에 언급한 내용처럼 deny from .*example.com.*

        그냥 하나의 도메인을 차단해봤어요. 서버 여러곳에 여러대 두고 테스트하는중이라….

      2. Word 님의 말씀

        “특정 참조 도메인으로부터 유입되는 방문자 차단하기”의 코드가 아마 원하는 용도의 코드일 것 같습니다.

        코드 자체는 틀린 것이 없습니다. ( https://www.quora.com/How-do-I-block-a-whole-domain-in-htaccess 참고해보세요.) 하지만 도메인을 차단하는 코드는 원하는 대로 작동하지 않을 것 같습니다. 이 부분은 테스트가 필요할 것 같은데요. 가령 어떤 사이트에서 내 사이트의 이미지 URL을 링크한다면 해당 사이트에서 내 사이트의 URL에 접근하려고 시도할 것입니다. 그럴 때 차단하는 코드가 아닐까 생각되네요.

  2. 승주 님의 말씀

    혹시 example.com/elelel 를 특정IP만 허용하고 싶다하면 *example\.com\.elelel* 를 넣어도되나요?

    1. Word 님의 말씀

      안녕하세요?

      elelel 폴더에 특정 IP만 허용하고 싶다면 적절한 코드가 포함된 .htaccess 파일을 만든 후에 해당 폴더에 업로드하면 될 것입니다.

      https://www.techrepublic.com/blog/web-designer/quick-tip-how-to-limit-access-to-a-web-directory-by-ip-address/ 참고해보세요.

  3. 이카루스 님의 말씀

    카페24에 아이피 밑에 차단하는 버튼이 있더라구요..^^
    제가 왜 이제 발견했는지..ㅋㅋ
    그냥 아..~~ 트래픽이 많구나 이런 생각을 가졌데 그것이 아니었내요..!!

  4. 이카루스 님의 말씀

    저는 오늘 특정 ip를 차단 했습니다.
    호스팅에서 하루에 한번은 트래픽을 보는데 유독 새벽1시에 특정 아이피 1개가 트래픽 용량 2.5G중 2.0G를 잡아 먹네요..
    내일을 봐야 알 수 있을 듯 해요..!!

    1. Word 님의 말씀

      2G를 잡아 먹으면 굉장한 것인데요.
      카페24에서 그런 공격을 차단하지는 못하는가 보네요.
      혹시나 싶어 사용 중인 호스팅의 트래픽을 확인해보니 약정한 것보다 1/10 정도밖에 사용하고 있지 않네요.

댓글 남기기