웹마스터 팁
IPGUARD 모듈 배포
2013.07.10 00:28
IPGUARD
IP가드 모듈은 하이퍼텍스트 액세스(.htaccess) 파일을 생성하여 비정상적 요청을 하는 IP를 차단하는 모듈입니다.
IP가드 모듈은 ipguard 모듈과 ipguard_post 애드온으로 동작합니다.
1. 애드온과 모듈을 각각 해당 폴더에 업로드 한 후 관리자 데시보드에서 IP가드가 사용하게 될 테이블을 설치합니다.
2. IP가드 포스트 애드온이 동작할 수 있도록 애드온 설정에서 체크표시 한 후 저장합니다.
3. IP가드 모듈 관리에서 FTP 설정을 클릭합니다.
4. 코어의 FTP 설정과 같은 형식의 FTP 계정 정보 입력폼입니다. 코어의 FTP 설정은 쉬운설치를 위해 코어가 설치된 경로를 찾지만 여기서는 .htaccess 파일 설치를 위한 루트 경로를
찾기 위한 것으로 호스팅 계정마다 각각 루트 폴더의 이름이 다를 수 있습니다. 계정에 따라서는 서버주소 입력란에
127.0.0.1로 접근하지 못할 수 있습니다. 이런 경우 아래와 같이 도메인을 입력하면 FTP로 루트에 접속할 수 있습니다.
5. XE코어가 루트에 설치된 경우 또는 서브 폴더에 설치된 경우라 하더라도 반드시 계정의 루트 디렉토리를 선택해야 합니다. .htaccess 파일은 계정의 최상위 폴더에 위치해야 하기 때문입니다. 루트 폴더의 이름은 계정마다 html, www, public_html 등등 다르게 사용될 수 있습니다.
만약 FTP로 계정에 접속할 수 없다면 서버 관리자와 계정 접속 방법과 권한(퍼미션)에 대해 문의하기 바랍니다.
서버 환경이 모두 다르기 때문에 이부분에 대해서는 문의 메일에 대하여 답변하지 않습니다. 일반적인 호스팅 계정은 127.0.0.1 또는 도메인으로 접속이 가능합니다.
6. FTP 계정 정보가 정상적으로 저장 되었다면 리퍼러 모니터를 클릭합니다.
7.
사이트에 요청한 리퍼러 기록을 모니터링 할 수 있습니다. 이때 관리자 모듈에서 회원가입을 시도한 액션을 발견할 수
있습니다.(예시) 또는 페이지나 위젯 페이지에서 글쓰기(dispBoardWrite) 액션을 시도한 리퍼러가 발견된다면 정상적인
요청이 아닐 수 있습니다.
8. 잘못된 요청을 리퍼러 모니터에서 하나하나 모두 확인할 수 는 없습니다. 수집된 리퍼러를 조사하기 위해서는 리퍼러 로그에 대한 필터링을 설정해야 합니다. 필터링 설정을 클릭합니다.
9.
(예시) 회원가입 액션(dispMemberSignUpForm)을 검사 액션명에 입력합니다. 페이지 모듈 또는 위젯 페이지 모듈과
직접 조합하는 경우 차단할 IP로 자동 등록 되지만 우선 회원가입 액션이 포함된 리퍼러 로그를 조사하기 위해 [관심 리퍼러로
분류]를 선택하고 간단한 필터링 이유를 입력한 후 저장합니다.
10.
리퍼러 모니터에서 수집된 로그 기록에 관심 리퍼러가 느낌표로 표시됩니다. 지속적(공격적)으로 반복 되었거나 사이트 내 여러
페이지에 액션을 조합하여 반복적으로 요청한 경우 100% 잘못된 요청을 보내는 IP입니다. 이런 경우 차단 IP 등록을 위해 우측
IP 추가 버튼을 클릭합니다.
11. 조사된 IP를 차단하는 이유를 간단히 입력하고 등록 버튼을 클릭합니다.
12. 다시 리퍼러 모니터를 살펴보면 해당 IP가 등록되어 있음을 확인 할 수 있습니다.(아직 차단된 것은 아닙니다.)
기타 분류된 IP에 대해서도 로그기록을 조사하여 등록 여부를 결정합니다.
13. 등록된 IP 목록을 클릭하면 리퍼러 모니터에서 추가한 IP주소가 수집되어 있습니다. 이 목록으로 임시 출력파일을 작성해야 합니다. [차단 IP 목록 작성]을 클릭합니다.
14. XE코어가 루트에 설치된 경우 코어의 원본 .htaccess 파일의 RewriteRule 하단에 차단할 IP 주소를 추가하여 임시 출력파일로 준비합니다.
만약 코어가 서브 폴더에 설치된 경우 코어 바깥 루트에 새로운 .htaccess 파일을 생성하기 위해 마찬가지로 임시 출력파일을 준비합니다.
만약 코어와는 별도로 현재 사용중인 .htaccess 파일이 존재한다면 포함된 내용을 모두 읽어와서 등록된 IP와 조합하여 새로운 임시 출력파일을 생성합니다.
마지막으로 .htaccess 파일을 설치하기 위해서는 아래 그림과 같이 FTP 비밀번호를 입력한 후 파일 생성 버튼을 클릭합니다.
15. 최종적으로 하이퍼텍스트 엑세스 파일(.htaccess)을 계정에 설치하고 등록된 IP의 계정 접근을 원천 차단합니다.
16. 만약 등록된 IP를 모두 삭제한다면 임시 작성했던 파일도 삭제됩니다.
17.
파일 생성과 같은 방법으로 FTP 비밀번호 입력후 생성 버튼을 클릭하면 아래 그림과 같이 이전 파일로 복구됩니다. 만약 코어와는
별개로 새로 생성 되었거나 차단 IP 제거후 유지해야 될 내용이 없는 빈 .htaccess 파일이라면 삭제됩니다.
18.
필터링 조건 추가에서 검사 액션과 조건 모듈이 유효한 경우(리퍼러 문자열 안에서 액션과 모듈이 모두 포함된 경우 잘못된 요청으로
단정하고 해당 IP는 즉시 처리가 필요한 경우) 리퍼러 기록 과정에서 자동으로 IP를 차단 목록에 등록합니다.
19. 강제 차단 호스트 입력은 아래 그림과 같이 불량 사이트에서 접근을 시도하는 경우 최우선적으로 차단 IP에 자동으로 등록시키는 조건이 됩니다.
이때 자동 등록이라는 의미는 차단해야 할 IP를 자동으로 DB에 수집 저장한다는 뜻으로 최종적으로는 14번 과정과 같이 관리자가 FTP 접속으로 파일을 설치해야 합니다.(FTP 비밀번호는 저장하지 않습니다.)
20. 필터링의 조합은 리퍼러 로그 기록을 조사하는데 효과적으로 사용할 수 있습니다.
21.
리퍼러 모니터 보기 화면에서 IP 주소, 호스트를 클릭하면 해당 문자열로 검색하여 출력합니다. 또는 검색폼을 이용하면 포함된
문자열로 모두 검색하여 출력합니다. 예) 123.45 로 검색하면 123.45.* 와 같은 결과를 얻습니다.
22. 애드온에서는 리퍼러 로그를 선택적으로 기록할 수 있도록 설정할 수 있습니다. 조사가 필요한 액션명만 따로 설정하거나 모듈에서 설정한 액션을 모두 포함시킬 수도 있으며 비워두면 모두 기록하게 됩니다. 관리자 접속 IP 주소를 입력해 두면 로그 기록에서 관리자 요청에 대한 로그는 저장하지 않습니다.
*** 중요 ***
사이트가 정상적으로 운영된다면 애드온에서 로그기록을 중지해 두고 필요한 경우에만 리퍼러를 수집하고 조사하기를 권장합니다. 조사가 끝난 로그 기록은 바로바로 삭제하는 것이 좋습니다.
IP가드 모듈은 XESCHOOL에서 관리합니다.
XE 1.5 버전 : ipguard_1_5_4_3
XE 1.7 버전 : ipguard_1_7_3_4
XE 1.4.5.10 버전 : ipguard_1_4_5_10 다운로드 바로가기
※ XESCHOOL은 항상 배포 버전에 코어 버전 정보를 표시합니다.(Based on Core Version)
댓글 33
-
pentopen
2013.07.10 02:59
-
몽실아빠
2013.07.10 11:48
처음에는 모듈설정까지 들어갔었는데 순간 모듈설정으로 진입이 안되네요. 제 코어는 1.7.3.4에요. 리퍼러모니터로 수집되는 것 까지 확인하고 애드온 갔다가 다시 모듈로 못들어가네요.
-
우진홈
2013.07.10 13:03
ipguard_1_5_4_3 인데 왜 1.7에 설치했나요? 1.7은 아직 Not tested ...
-
몽실아빠
2013.07.10 13:23
네. 그렇군요. 그럼 기다렸다가 다시 설치할게요.
-
우진홈
2013.07.10 19:45
코어 1.7에서 테스트 된 버전을 급 배포하였습니다...^^ 모듈 진입이 않되면 캐시파일 재생성, F5 새로고침, 또는 즐겨찾기나 관리자 메뉴에 등록해서 호출해 보세요. 다시 덮어씌워 보기도 하구요. 테스트 해 보니 스타일 이외의 동작에는 아무런 문제가 없었습니다...^^
-
몽실아빠
2013.07.10 20:48
역시 모듈설정으로 진입이 어렵네요. 응답을 기다린다는 메세지 이후 진입이 안되요. 그리고 출석체크 모듈명이 check 인데 필터링설정부분에서 저모듈명때문에 문제가 생기네요.
-
우진홈
2013.07.10 21:12
모듈 설정으로 진입이라는 뜻이 정확히 무엇을 말하죠? 출석체크 모듈이 check !!! 이건 문제군요...^^ 이건 나중에 수정하면 될것같은데 "필터링 설정 부분에서~"라고 말씀하시니 모듈 진입이라는 의미가 무엇인지 모르겠습니다.
-
몽실아빠
2013.07.10 21:18
check는 위젯이었네요. 필요없는 것이라 삭제 하였습니다. 일단 문제는 없을 것 같은데 ip가드 모듈명을 클릭하고 들어가기가 오래 걸린다는 의미인데요. 아마 퍼미션 문제가 아닐까 추측이 됩니다. 항상 들어가보면 ftp는 등록되지 않은 것으로 나오네요. 제 사이트 files 폴더권한이 755 이거든요. 예전에도 루트로 옮기는 작업 실패한 경험이 있습니다.
-
우진홈
2013.07.10 21:27
4번, 5번 과정에 문제가 있다면 폴더권한(755는 정상)의 문제가 아니고 ftp_connect 와 관련된 서버 설정과 관계가 있을 것 같습니다. 예상했던 문제인데요 이러한 부분에 대해서는 제가 도움을 드리기 어려울것 같습니다...^^ 쉽게 말해서 현재 테스트용으로 사용하는 까페24(절약형)에서는 그 흔한 rm,
mysqldump
등등의 기본 명령어도 먹히지 않아요....아주 불편합니다...^^ -
우진홈
2013.07.10 21:39
만약에요... 서버 문제로 FTP 연결이 어렵다면 리퍼러 수집과 조사, IP등록 과정은 문제가 없을 것입니다. 그러면 14번에서 임시로 출력파일을 만들수 있는데 이 부분을 직접 .htaccess 파일을 만들고 복사해서 서버 계정 루트에 업로드하세요. 그러면 [설치된 .htaccess 파일 내용]에서 읽힐겁니다...^^ ▶ 4번에서 자신의 서버 루트 경로를 /www/ 처럼 직접 입력하고 저장하면 됩니다.
-
몽실아빠
2013.07.10 21:53
네. 열심히 해보고 안되면 그렇게 해 보겠습니다. 몇가지 등록 예를 안내 해주시면 좋을 것 같습니다. 검사액션명+모듈 의 사례를요. 제가 언뜻 이해하기는 글쓰기 + 메인위젯 요런형태는 불량유저로 보이는데요. 그리고 어드민 + 회원가입 요것두요. 그러면 글쓰기 + 나머지위젯 페이지도 모두 등록을 하는 것이 맞는건지도 아리송하구요.
-
우진홈
2013.07.10 21:59
여백이 좁아서 아래에서 새글로 의견을 드릴께요...^^
-
몽실아빠
2013.07.10 20:51
퍼미션 부분을 살펴보겠습니다.
-
fantimes
2013.07.10 16:06
오오오오오오오오! 역시 배포가 크신분! 배포!
근데 해외에서는 접속이 안되나봐요 ㅠㅠㅠ DNS에러나네
-
우진홈
2013.07.10 19:48
그런 문제가 있나요? 해외에서도 많은 분들이 접속하지만 아직까지 보고된 문제가 아니어서 잘 모르겠네요. 서비스 제공 회사에 문의해 볼께요...^^
-
송동우님최고
2013.07.10 19:50
네 신경써주셔서 감사드립니다. 여기는 중국 상해 지역이며, 가끔 이런문제가 발생하니 또 다시 잘 연결되면 말씀 드릴게요~
-
CMD
2013.07.10 19:54
xe 1.4.x용도 있나요?
-
우진홈
2013.07.10 20:12
네...스쿨이 1.4 버전입니다...^^
전 1.4 버전이 제일 좋습니다. 자바스크립트나 jQuery에 의한 꾸밈이 적고 명쾌합니다. 때문에 브라우저 특성을 타지 않습니다. 코어의 개념이 가장 명쾌하게 동작하는 순수 버전입니다. 느리다는 것은 소규모 사이트에서 거의 채감할 수 없고 현재 서버는 좋은 서버인것 같아 그 덕도 보고 있습니다...^^
-
CMD
2013.07.10 20:16
네 맞는 말씀이예요. 심지어 1.4.x 관리자 페이지는 ie6에서도 잘 나와요. 1.7은 IE8로 들어가면 상당히 부하가 걸리는 느낌이고요... 그리고 가능하면 1.4.x용 IPGUARD 모듈도 배포해 주시면 감사드릴께요~
-
우진홈
2013.07.10 21:03
스쿨 1.4 자료실에 업로드하였습니다...^^
-
CMD
2013.07.11 06:05
고마워요. 잘 사용할께요~
-
2-COIN
2013.07.10 21:05
뭔가... 좋아보이네요. ^^
-
우진홈
2013.07.10 22:18
일반적으로 코어는 모든 모듈(mid)에서 회원가입이 가능합니다. 이때 로그에는 미드명+액션(dispMemberSignUpForm) 과 같이 기록되죠. 미드명이 admin이라면 관리자가 회원가입을 할 이유도 그런 링크도 없기 때문에 분명한 오류입니다. 만약 이러한 요청을 한 IP가 있다면 차단해야할 근거는 충분합니다.
만약 게시판에서 dispBoardWrite라는 액션이 있다면 매우 정상적인 로그입니다. 하지만 외부페이지 또는 위젯페이지에서는 글쓰기 링크가 없습니다. 위젯은 대부분 바로가기 링크를 제공할 것입니다. 방문자가 사람이라면 링크를 클릭하기 때문에 연결된 URL이 로그에 남을 뿐이지만 기계라면 그 링크에 무작위로 dispMemberSignUpForm 또는 dispBoardWrite 액션을 붙여 시도한다는 것입니다. 이러한 조건들은 모두 사이트마다 제각각일 것입니다. 위 예시는 매우 대표적인 오류를 소개한 내용입니다. 각각 나름대로 오류가 될만한 로그사항을 필터링 조건에 추가할 수 있도록 한 것이죠. 또는 덫을 놓고 기다릴 수도 있습니다...^^
이러한 시도들을 사이트 내에서 방치한다면 코어가 힘든것은 둘째치고 언젠가는 계정이 뚫린다는 것이죠. 그리고 이러한 시도들은 수초간, 또는 수십초 사이로 매우 반복적으로, 공격적으로 지속되기 때문에 트래픽이 급상승합니다. 코어는 잘못된 요청을 판단하지 않습니다. 시도해보다가 포기하는 것이죠.
스쿨에서 테스트 해보니 몇일간 IP를 차단해 두면 다시 방문하지 않았습니다. 현재는 로그가 매우 깨끗해졌고 방문자 카운터도 실방문자와 같은 결과를 얻는 것 같습니다. 공부하는 사람 별로 없다는 말씀...^^
필터링 조건은 사이트마다 모두 제각각 다를 것입니다. 중요한 것은 요청된 액션이 실제 모듈에서 발생할 수 있는 근거가 있는가를 만들어야 할 것입니다.
-
몽실아빠
2013.07.10 22:31
자세한 설명 감사합니다. 일단 애드온에서는 액션명을 넣지않고 모든 리퍼러를 수집하게 해 놓았고 말씀하신대로 두개의 앤션만 ip등록이 되게끔 설정하고 모니터링 해보겠습니다.
-
몽실아빠
2013.07.10 22:23
추가질문 하나가 더 있습니다. FTP는 패시브설정을 체크해제하고 하니 되네요. 패스워드를 잘못 입력하고 있었구요.
XE폴더 아래 모든 폴더가 설치되어 있습니다. 그럼 FTP설정에서 .htaccess 파일 생성을 위한 FTP 루트 경로 설정 여기에 /xe/
이렇게 설정이 되어야 하는 것이 맞는건가요 ?
개인적인 이해로는 그보다 상위인 "/" 최상위 폴더를 선택해야 할 것 같기도 하구요.
-
우진홈
2013.07.10 22:42
XE도 자신의 .htaccess 파일을 1개 가지고 있습니다. 이곳의 내용은 RewriteRule입니다. XE는 이것을 이용해 짧은 형태의 URL을 원래의 긴 URL로 연결시켜 주죠. 코어가 루트에 설치되어 있다면 /xe/라는 폴더가 존재할 수 없습니다. /www/ 안에 코어의 index.php 파일과 .htaccess 파일이 있을겁니다. 그러면 작성된 IP를 코어가 사용하는 htaccess 파일 하단에 같은 방법으로 차단룰을 포함시키게 됩니다.
코어가 서브 폴더에 설치되었다면 /www/xe/ 처럼 존재할 것이고 XE가 사용하는 htaccess 파일은 /xe/안에 있지만 IP 차단룰은 반드시 루트 /www/ 에 존재해야 하기 때문에 이때는 코어와 상관없이 새로 만들것입니다. 그럼 2개가 되는 것이지요. FTP 경로설정은 코어와 상관없이 루트를 찾아 주라는 폼입니다. 서버마다 루트의 이름이 모두 제각각이기 때문이죠. 루트 폴더를 알려주면 IP가드가 알아서 처리합니다. 코어가 사용하는 것, 또는 별도로 만들어서 사용하던 것이라 하더라도 마지막 줄에 덧붙여 추가해 주기 때문입니다. 만약 아무것도 없다면 당연히 새로 만들어 설치하게 됩니다...^^
-
몽실아빠
2013.07.10 22:45
자세한 설명 감사합니다. 최상위 루트명이 다를수 있기때문에 선택하는 과정이 있는 것이군요. 무조건 최상위라면 왜 선택을 해야하지? 라는 의문에서 질문을 드렸었습니다. 감사합니다.
-
몽실아빠
2013.07.11 10:12
관리자 아이피를 여러게 입력했으면 좋겠어요. 집과 회사 정도요....
-
윤씨
2013.07.11 13:59
오우~ 설치는 안했지만 멋져요!! *.* 추천 꾸우욱~
-
KTK
2013.07.11 16:12
apache 와 nginx 가리지 않고 작동 잘되나요.. ㅠ 멋지 묘듈 배포 감사합니다.
-
윈컴이
2013.07.31 22:02
이렇게 유용한 모듈을 이제 봤네요.. 추천 쾅!
XE 1.7 디자인에 더욱 알맞게 수정 할 건데.. 수정 본을 어디로 보내면 될까요? ^^;;
-
숭숭군
2014.02.17 10:39
좋아요.
-
Omega3
2014.02.17 18:29
좋은 애드온...이네요~ ㅊㅊ
제목 | 글쓴이 | 날짜 |
---|---|---|
[XE] 1.4.5.x 업데이트 후 레이아웃 오류 수정법 [7] | SeklutZ | 2011.04.07 |
레이아웃 위젯 권한 넣기 [14] | 해피해킹 | 2011.04.12 |
1.7.4 버전용 한글 lang.xml 파일 [5] | 투씨 | 2014.02.18 |
모바일 사진 자동 회전 적용방법 [8] | 더뿌 | 2014.02.11 |
초간단 애드온 제작법 [8] | 카르마 | 2011.03.25 |
IPGUARD 모듈 배포 [33] | 우진홈 | 2013.07.10 |
주민등록번호로 성별/나이/연령대 구분 [4] | 강병기 | 2008.01.09 |
모바일 이미지 업로드시 세로사진 자동 회전하기 [8] | Xiso | 2013.10.17 |
css 가운데정렬 완벽정리! | 돼지코구뇽 | 2014.02.14 |
iframe을 이용하여 target효과 주기. [8] | ZipShin | 2002.08.01 |
css 배경이미지 정리 | devdevpia | 2014.02.13 |
스윙브라우저 유저분들 필독. [10] | KSG2013 | 2014.02.08 |
2014년 2월 12일부터 갑자기 사이트(관리자 페이지)가 깨지는 경우. | 새하나모 | 2014.02.12 |
XE 1.7.4 새로운 우편번호 체계에서 나머지주소 관련 사용실수 방지방법입니다 [1] | sejin7940 | 2014.02.07 |
마우스드래그금지 | 레치에스 | 2014.02.11 |
웹뷰 개발시geocode(구글)활용법 | 웹빌드 | 2014.02.10 |
중복레코드 검색 및 삭제 | ByteCMC | 2014.02.10 |
그룹아이콘 모바일에서 표시하기 | 잉카러부 | 2014.02.09 |
1.7.4 업데이트후 글쓰기 에러가 나신다면... [2] | 맞장 | 2014.02.07 |
기본 css 파일 언로드 하기. [9] | 엘카 | 2012.04.26 |
오오~ 감사드려요..^^
잘 사용해보겠습니다.