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

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

불량 사용자나 스패머, 사이트 글을 복제하는 사용자 혹은 특정 웹사이트에서 불필요하게 사이트로 유입되는 경우 .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 등의 플러그인을 사용할 수 있습니다. 스팸 차단 플러그인에 대한 내용은 여기를 참고해보시기 바랍니다.

참고:



15 개 댓글

  1. 휴 ... 드디어 됩니다. 다른사람들이 알려준 소스는 안되던데
    그사람들 전부 사짜인가 봅니다.
    페이팔 계정있으시면 후원드리겠습니다.

    응답
    • 잘 작동한다니 저도 기쁘네요.

      페이팔 계정 정보는 후원 페이지에서 확인하실 수 있습니다.ㅎ
      https://www.thewordcracker.com/forum/donation

      응답
  2. 특정 도메인을 특정아이피로만 접속가능하게 하는 명령어가 있나요 ?
    한호스팅에 4개의 도메인이 연결되어 있다고 할때 이중 1개의 도메인만
    지정된 아이피로만 접속가능하게 하는 방법
    있나요 ?

    응답
    • 안녕하세요, 박상길님.

      이 부분에 대해서는 정확하지 않지만 다음 글을 참고하여 응용하면 될 것도 같습니다.

      https://webmasters.stackexchange.com/questions/114014/deny-access-to-one-of-two-sites-using-the-same-htaccess

      예시:

      <If "%{HTTP_HOST} = 'www.example.com'">
      order deny,allow
      allow from 31.24.232.14
      allow from 127.0.0.0
      allow from 192.168.0.0
      deny from all
      </If>

      링크된 문서를 자세히 한 번 읽어보시기 바랍니다.

      응답
      • 알려주신 예시와 링크를 따라가서 해본결과
        작동이 안되네요 ^^ 차단해야 하는데 전부 접속됩니다.
        그런데 아래 소스가 그나마 차단이 완벽한데요
        아이피를 입력했는데두 무조건 차단만 합니다. 뭐가 잘못되었나요 ?
        RewriteEngine On

        RewriteCond %{HTTP_HOST} ^(?:www\.)?subdomain\.com$ [NC]
        RewriteCond ${ipmap:%{REMOTE_ADDR}} !^(111\.111\.111\.1|11\.111\.|10\.|1\.2\.3\.4)$
        RewriteRule ^ - [F]

      • 다음과 같은 형식으로 사용해야 하는 것 같습니다.

        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^(?:www\.)?subdomain\.com$ [NC]
        RewriteCond %{REMOTE_ADDR} !^(127\.0\.0\.1|192\.168\.|10\.|1\.2\.3\.4)$
        RewriteRule ^ - [F]

    • 알려주셔서 감사합니다.

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

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

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

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

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

    • 안녕하세요?

      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를 잡아 먹네요..
    내일을 봐야 알 수 있을 듯 해요..!!

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

      응답