강좌 / 팁

기 타 공유기로 KMS인증을 받아봅시다

2013.11.21 18:25

DarknessAngel 조회:13521 추천:4



오늘의 작업대상이 되어준 구시대 유물중의 유물 전설의 WRT54G

일 반 iptime등의 공유기는 안 되고, dd-wrt, openwrt, tomato등의 리눅스 기반의 펌웨어를 구동할 수 있는 기종 (브로드컴제 칩셋인 dlink나 linksys등은 대부분 해당됩니다)이거나, mips/arm을 사용하는 (98%이상 해당됨) NAS라면 전부 구동이 가능합니다

이 방법의 가장 중요한점은 보통 한대씩은 가지고 있고, 24시간 가동중인 공유기나 NAS를 이용해서 서버를 돌릴 수 있고, 외부로도 쉽게 서비스 가능한점입니다 (하지만 웃기게 공유기에서 직접 돌리면 외부에서 잘 안 되는경우가 발생하기도 합니다)

먼져 기종에 따라 방법이 달라집니다

USB포트가 달려있는 공유기나, NAS라면 자체 공간에 파티션을 만들던지해서 작업하시길 추천하고, 아닌경우는 공유기의 펌웨어 설치후 남은 공간인 JFFS를 이용해야합니다

가장 기본적인 내용은 https://forums.mydigitallife.info/threads/50234-Emulated-KMS-Servers-on-non-Windows-platforms/page26를 참조해주시면 됩니다 (상단의 포스트 참조)

작업에 사용한 WRT54G도 USB가 없는 상태라 JFFS를 이용했습니다 (포맷이 되면 반드시 상단의 Enable체크를 한 후 Save해주세요!)


JFFS(흑은 JFFS2)를 활성화한후 ssh나 telnet으로 해당 기기에 접속합니다



전 접속에 언제나 애용하는 Putty를 이용했습니다 (혹시 SSH접속이 안 되시는분들은 Administration - Admin Access에 가셔서 SSHD Daemon을 활성화해주세요


아디는 root, 비번은 관리페이지 접속 비번을 넣어주시면 됩니다 (기본이면 admin내지 root입니다)


다음 ini파일 (이름은 뭐든 상관없어서 전 kms.ini로 했습니다)을 작성합니다


내용물은 해당 쓰레드에 나오는대로

55c92734-d682-4d71-983e-d6ec3f16059f = 05426-00168-152-564055-03-1049-9200.0000-0912013
59a52881-a989-479d-af46-f275c6370663 = 55041-00096-200-026043-03-1049-7601.0000-0162013
0ff1ce15-a989-479d-af46-f275c6370663 = 55041-00096-200-625305-03-1049-7601.0000-0572013

로 하셔야 합니다


i키를 눌러서 입력모드로 바꾸시고, 위의 내용을 복사해서 붙인후에 esc키를 눌러서 커맨드 모드로 와서 :wq를 입력하고 엔터를 쳐서 저장후 빠져나오시면 됩니다


다음 https://rghost.net/50278978를 받으시던지(패스워드 2013) 첨부된 파일을 받으셔서 자신의 기종에 맞는 바이너리를 골라주세요 (보통 arm static아니면 mips static이면 되고, dd-wrt, openwrt, tomato인 경우는 dd-wrt라 붙은넘을 써주세요)


잘 모르시는경우는 다음과 같이 해주세요


먼져 시퓨를 확인해야하니 Status의 Overview로 가시던지

다음과 같이 시퓨 종류를 확인해서 해당 칩셋명을 구글링해서 아키텍쳐를 확인해주세요 (라지만 wrt계열이나 tomato가 올라가면 90%의 확율로 mipsel입니다)


이런식으로 자신의 기종에 맞는 바이너리를 풀어주세요 (용량 문제가 아닌이상 static만 써주세요) (구버전의 펌웨어인 경우는 gcc3.4.6을 써주세요)


이제 이걸 전송해야하는데 방법은 3가지가 있습니다


1번째로 USB가 있는 기종의 경우 USB에 저장해서 그걸 포트에 꽃아서 cp명령으로 복사합니다 (하지만 이게 된다면 애초에 JFFS라는 삽질을 안 했겠죠)


2번째로 sftp로 던지는 방법이 있는데 설명할려면 꽤나 분량이 나오므로 생략합니다 (검색하면 엄청나게 나오니 생략합니다)


마지막 3번째가 저희가 쓰게 될 wget으로 전송하는 방법입니다


이걸 위해서는 전송용 웹서버가 필요로 해집니다


첨부된 hfs나 기타 방법으로 웹서버를 구축해주세요 (본문은 간단하게 hfs기준으로 설명합니다)


먼져 실행하신후 상단에 표시되는 주소를 잘 봐둡니다


다음 집 아이콘 우측의 /에 우클릭을 한후 add files...을 클릭합니다


다음 압축 풀어준 바이너리를 골라줍니다 (사실 이 방법으로 스크립트나 ini도 전송 가능합니다)


추가된 파일명이 너무 길고 복잡해서 입력하기 귀찮으니 해당 항목 선택후 F2키를 눌러서 간단한 이름으로 고칩니다


파일서버 준비가 되었다라면 전송해볼 차래입니다


파일을 저장할 /jffs로 이동후 내장된 wget명령을 이용해서 아까 hfs에 뜬 주소/파일명 형식으로 받아주세요 (스샷대로 입력하시면 됩니다)


이제 기동용 스크립트만 준비하시면 되는데, 첨부된걸 받아서 경로만 바꾸시던지, 아니면

#!/bin/sh

EXECUTABLE="/jffs/kmsd"
INIFILE="/jffs/kms.ini"
PIDFILE="/jffs/kmsd.pid"
PORT="1688"

if [ ! -f $EXECUTABLE ] || [ ! -f $INIFILE ]; then
    echo "Check variables in init daemon or missing files"
    exit 1
fi

case "$1" in
    start)
        #Start daemon
        if [ ! -f $PIDFILE ]; then
            $EXECUTABLE -i $INIFILE -p $PIDFILE -P $PORT &
            echo "KMS Has been started"
            exit 0
        else
            PID=`cat $PIDFILE`
            kill -s 0 $PID
            RESULT=$?
            if [ -f $PIDFILE ] && [ $RESULT -eq 0 ]; then
                echo "KMS Server is already running"
                exit 2
            else
                echo "Please check Pid file or user forcestart to overwrite pid"
            fi

        fi
    ;;
    stop)
        #Stop Daemon
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            kill $PID
            rm $PIDFILE
            echo "KMS Has been stopped"
            exit 0
        else
            echo "KMS is not running"
            exit 1
        fi
    ;;

    restart)
        $0 stop
        $0 start
    ;;

    forcestart)
        rm $PIDFILE
        $EXECUTABLE -i $INIFILE -p $PIDFILE &
        exit 0
    ;;

    *)
        echo "Usage: $0 start|stop|restart|forcestart"
        exit 0
    ;;
esac

이런식으로 작성해주세요 (쓰레드의 스크립트에 새버전에 추가된 포트지정인 -P를 추가했습니다)


작성 방법은 위의 ini작성하듯이 vi로 해주시던지 컴에서 편집후 hfs에 등록해서 wget으로 전송해주세요


마지막으로 퍼미션을 조정하시면 됩니다


이걸로 준비는 끝났습니다

이제 시험을 해볼 차래인데

다음과 같이 나오면 성공입니다


마무리로 자동으로 실행되게 해줄 차래인데 jffs에 넣은경우는 스크립트(administration - scripts)의 부트항목에 넣으시고, usb에 저장하신경우는 usb마운트 직후 (USB and NAS - USB Suport)에 실행되게 등록해주세요 (등록하는 내용은 init 흑은 USB의 mount쪽에 sh /jffs/kmsd.sh start 이런식으로 해주시고, USB의 unmount/shutdown에는 sh /jffs/kmsd.sh stop 이런식으로 등록해주세요) (역시 언제나처럼 잊지말고 Save를 눌러주세요!) (종료명령 등록하는걸 잊어버리면 한번 서버 기동후 재부팅하면 pid가 삭제가 안 되어 실행이 안 되는 불상사가 발생합니다)


이제 마무리로 방화벽을 iptable로 고치시던지 귀찮으시다면 포트포워딩으로 1688을 열어주세요 (NAS인 경우는 포트포워딩이나 DMZ지정을 이용해주세요)

스샷처럼 입력한후 Add를 눌러서 추가후 Save로 저장해주세요


이걸로 준비는 끝났습니다


로 컬인 경우는 공유기 주소인 192.168.1.1 (환경에 따라 다를 수 있습니다)를 kms서버주소로 쓰시면 되고, 외부에서는 wan에 할당된 ip를 쓰시면 됩니다 (만일 회선에 따라 1688포트를 못 쓰는 경우는 ini의 포트와 포워딩 포트를 바꾸어주세요)


정품 인증 안 된 상태에서


키 설치 (볼름이 아닌경우)후에 서버를 지정해주시면 됩니다 (설치에 필요한 GVLK키는 구글링하면 나옵니다)


결과물


현시점에서는 온라인이 되거나 업데이트되도 풀리는일 없습니다

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
2243 소프트웨어| [이벤트 종료] CyberGhost 5 VPN 12개월 키 받고, 토렌트 i... [8] sous_la_pl 6446 4 12-01
2242 윈 도 우| 윈도우 8.1 탐색기 장치 및 드라이브 위로 올리기 [16] 고맙쥐 7581 9 11-30
2241 윈 도 우| 윈도우 8.1 탐색기 윈도우 7 처럼 바꾸는 법 [5] sous_la_pl 10086 4 11-30
2240 윈 도 우| 잊고 지나기 쉬운 것. (도움말 파일 보기) [5] 프리맨 3785 3 11-30
2239 윈 도 우| Windows 8 & 8.1 시작시 모든 계정 보이기 [오토로그인... [1] 죠타로 4849 2 11-30
2238 윈 도 우| 단 한줄의 명령으로 NTFS 권한문제 원천해방 [6] 빛과그림자 6444 3 11-29
2237 소프트웨어| 바이두 직접 공유를 위한 링크 생성 [10] 배짱이 7045 3 11-29
2236 윈 도 우| Windows 8.1 표시언어의 추가와 변경 설정방법 [10] k-style 5941 2 11-29
2235 소프트웨어| 트루이미지(Acronis True Image) 추가본②(본문 수정) [91] 고양이2 9118 62 11-26
2234 윈 도 우| OEM XP 선택해서 설치하기 [8] gooddew 8399 6 11-25
2233 윈 도 우| 윈도우8.1 에서 ipTIME 유무선공유기 192.168.0.1 접속이 ... [1] 우주선 10577 5 11-25
2232 기 타| GVLK키 모음 [7] DarknessAn 12549 8 11-24
2231 소프트웨어| 비트디펜더 토탈 시큐리티 6개월 프로모션 [6] sous_la_pl 5028 5 11-23
2230 소프트웨어| 포토샵 기술 326가지(이미지파일) [18] DOS 11716 11 11-23
2229 윈 도 우| GPT 디스크에 VHD사용하기 [5] 카멜 5891 2 11-22
2228 소프트웨어| 트루이미지(Acronis True Image) 추가본(본문 수정2) [81] 고양이2 9583 32 11-22
» 기 타| 공유기로 KMS인증을 받아봅시다 [12] DarknessAn 13521 4 11-21
2226 소프트웨어| 오토핫키, 스크롤 가속도 주기 스크립트 유리얼음 4465 3 11-21
2225 윈 도 우| 윈도우7 처럼 윈도우8.1 종료 및 재시작, 로그아웃 [4] 난라이도 8888 1 11-20
2224 소프트웨어| 안드로이드폰에서 구동하는 KMS에뮬 [11] 링고스타 14638 10 11-20
XE1.11.6 Layout1.4.8