강좌 / 팁

기 타 공유기로 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 - - -
721 하드웨어| 레인미터 사용기 [16] 고성방가루 13306 0 04-16
720 하드웨어| Ghost15의 새로운 기능! [10] Gim Gyu- 13310 0 01-06
719 윈 도 우| 윈도우 8 오프라인 에서 넷프렘 3.5 설치하기 [4] Lexus 13312 1 03-29
718 윈 도 우| 익스10 32비트 작업표시줄 고정방법 [11] 에드힐스 13313 1 09-18
717 윈 도 우| PE, 윈도우를 USB에 굽기 (울트라ISO사용) [8] Min. 13321 6 08-29
716 소프트웨어| 구글 크롬 펌 방지 해제 방법 올려봅니다. [8] 찐옥수수 13324 0 12-29
715 윈 도 우| 윈도우 10의 백업과 복구 [22] 삽질구단 13328 15 08-04
714 윈 도 우| 윈도8 인증마소랑연결끈기 [18] 별우 13346 2 09-01
713 윈 도 우| 넷북에서 해상도(1024*600)가 낮아서 앱이 실행되지 않는경... 마니또우 13346 0 04-12
712 윈도우7에서 업로드 속도 하락시 해결방안 [22] 미테니사키 13355 2 10-30
711 윈 도 우| VMware 에서 부팅가능한 USB로 실제PC처럼 부팅해보기.... [7] tara 13363 5 04-25
710 소프트웨어| 구글 크롬 글씨 깨짐 현상 해결하기 - 글꼴 강제지정 [7] LiveREX 13374 0 09-28
709 하드웨어| -컴퓨터 최적화하기 3- [26] 납딱콩 13379 2 04-11
708 윈 도 우| 자신의 운영체제 제품키 보기를 원하시는분들... [8] LastID 13383 1 11-11
707 윈 도 우| YouTube<유투브> 버터링 속도 높이기-최종판 [7] 초록날개 13389 0 05-07
706 소프트웨어| 윈도우7 USER-PE 제작 방법_2 [3] 세리아 13389 4 08-23
705 윈 도 우| Windows8을 vhd에 광속으로 설치 (without USB) [16] 오펜하이머 13406 3 09-03
704 소프트웨어| Blu-ray 자막 만들기 (Sonic Scenarist 자막용) [2] 동방전패 13417 0 01-10
703 1편 : 처음 사용자를 위한 VirtualBox -가상머신 만들기- [10] 고담시민 13422 3 10-13
702 하드웨어| OEM 인증 방식이란 gooddew 13438 0 06-17
XE1.11.6 Layout1.4.8