채택완료

그누보드 접근차단ip 리스트에 없는 ip인데 차단되는 이유는 ?

2026-05-20 (수) 11:37:28 263
최근들어 이상한 아이피 접근이 많아서 그누보드 관리자 메뉴에서 접근차단ip에 리스트 넣어서 의심 아이피 차단하고 있습니다.

그런데 이거가 ai에 의존해서 리스트를 만들다 보니 때론 정상적인 아이피도 차단될때도 있습니다. 그럴땐 회원들에게 문의 글 받고 해당 아이피를 리스트에서 제외하는 방식으로 처리하고 있는데

해당 접근 아이피를 제외 처리 했음에도

회원님중에 핸드폰 사무실에서는 잘 접속 되는데 집에만 오면 그누보드에서 차단되었다는 문구가 떠서 접근을 못하고 있다고....

이런경우 어떻게 해야 할까요..  ? 분명 해당 아이피는 접근차단ip에 리스트 없는 아이피 이거든요 

그런데 접근 불가 메세지는 접근차단ip 리스트 등록되었을때 나타나는 메세지.. 

해결방법이 없네요.. 

아이피 차단할때 전체 아아피로 차단하기도 하지만 222.333.+  이런식으로 해외 아이피들을 차단합니다. 그럼 해당 정상 아이피가 위 범주에 들어 있을땐.. 그냥 222.333.+  이 리스트 자체를 삭제처리하거든요..

어쨋든 요즘 들어 부쩍 접근차단ip 리스트에 없는 아이피가 차단 되었다는 문의가 너무 많아지고 있네요..

도움 좀 부탁드립니다.
 
|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

그누보드에서 리스트에 없는 IP가 차단되는 문제는 대부분 대역폭(와일드카드) 차단 설정이나 서버 환경의 캐시 문제입니다. 특히 222.333.+와 같은 방식으로 차단 리스트를 관리하신다면, 정상 사용자가 의도치 않게 그물망에 걸릴 확률이 매우 높습니다.

해결을 위한 체크리스트와 대응 방안을 정리해 드립니다.

1. 와일드카드(+) 차단 범위의 함정

그누보드의 IP 차단 방식은 단순 텍스트 매칭입니다. 222.333.+라고 등록하면 해당 대역을 사용하는 수만 개의 IP가 동시에 차단됩니다.

  • 문제점: 한국 내 통신사(SKT, KT, LG 등) IP 대역 중 일부가 해외 대역과 앞자리가 겹치거나, AI가 생성한 리스트가 한국 공인 IP 대역을 해외로 오인해 포함했을 가능성이 큽니다.

  • 확인법: 차단되었다는 회원에게 네이버 IP 주소 확인 등을 통해 현재 집에서 사용하는 정확한 IP를 받아보세요. 그 IP의 앞부분이 리스트의 어떤 항목과 매칭되는지 대조해야 합니다.

2. 세션 및 DB 캐시 문제

리스트에서 삭제했음에도 계속 차단 문구가 뜬다면, 서버나 브라우저가 이전 상태를 기억하고 있을 수 있습니다.

  • 세션 정리: 해당 사용자의 브라우저 쿠키/캐시를 삭제하고 다시 접속하게 하세요.

  • 그누보드 설정 파일: data/dbconfig.php나 common.php 등에서 별도로 IP를 제어하는 커스텀 코드가 있는지 확인이 필요합니다.

3. 서버 단(Nginx/Apache) 또는 방화벽 차단

그누보드 관리자 페이지가 아니라, 서버 자체 방화벽(iptables, ufw)이나 .htaccess 파일에서 차단되고 있을 가능성도 있습니다.

  • 만약 메시지가 그누보드 특유의 "접근이 차단되었습니다"가 아니라 브라우저 기본 "403 Forbidden"이라면 서버 설정 문제입니다.

  • 하지만 질문 내용상 그누보드 메시지가 출력된다면, 이는 PHP(그누보드 로직) 단에서 걸러지는 것이 맞습니다.

근본적인 해결 방안 추천

매번 수동으로 리스트를 넣고 빼는 것은 관리 리소스가 너무 큽니다. 다음과 같은 방식을 고려해 보세요.

방법 A: IP 대역 차단 대신 '국가별 차단' 도입

222.333.+ 식의 차단은 위험합니다. 대신 GeoIP 라이브러리를 사용하여 한국 IP가 아닐 경우에만 차단하거나, 관리자 페이지 접속을 막는 방식을 권장합니다.

  • 그누보드 공식 홈페이지(sir.kr)에서 '국가별 차단' 스킨이나 플러그인을 활용하면 훨씬 정확합니다.

방법 B: 화이트리스트(허용 리스트) 우선 적용

특정 회원들이 자주 겪는 문제라면, common.php 상단에 관리자나 특정 회원의 IP는 차단 로직을 타지 않게 예외 코드를 넣는 방법이 있습니다.

PHP
Copy
// common.php 또는 extend 내 파일에 추가 (예시)
$allow_ips = array('회원IP_1', '회원IP_2'); 
if (in_array($_SERVER['REMOTE_ADDR'], $allow_ips)) {
    $is_admin = 'super'; // 임시로 검사를 건너뛰게 설정하거나 로직 분기
}

방법 C: 차단 로그 기록하기

현재 어떤 규칙 때문에 차단되었는지 알 수 없으므로, 차단 시각과 IP, 매칭된 패턴을 별도 로그 파일로 저장하도록 코드를 살짝 수정해 보세요.

  • lib/common.lib.php 내의 IP 차단 함수(is_intercept_ip)를 찾아 차단될 때 error_log를 남기게 하면 어떤 리스트 항목이 범인인지 바로 알 수 있습니다.

주의: AI가 추천해 주는 IP 리스트는 최신 정보를 반영하지 못할 때가 많습니다. 특히 한국 유동 IP 대역을 '의심 IP'로 분류하는 경우가 흔하므로, +를 이용한 대역 차단은 가급적 지양하시는 것이 좋습니다.

답변에 대한 댓글 1개

답변 감사합니다.

답변을 작성하려면 로그인이 필요합니다.