Raspberry Pi 3로 WOL 패킷 전송

2019. 12. 24. 10:48Raspberry Pi

게임 패치일인데 집에 늦게 들어가서 패치파일을 늦게 받아야하거나

집에서 작업하던 문서파일을 깜빡하고 전송하는 걸 잊었다던지 간혹 있을 것이다.

 

이미 여러 기업에서 이런 이슈들에 대한 편의를 제공해주고 있긴하다.

나도 이런걸 구축해야 하지 않을까 조금 생각이 들어서 이번에 WOL으로 원격부팅하는 환경을 만들었다.

 

WOL은 Wake On Lan으로 특수한 매직 패킷으로 원격에서 부팅하는 기술이다.

워낙 유명한 기술이기 때문에 팀뷰어나 iptime에서 기능을 다 지원하고 있다.

 

팀뷰어와 iptime이 지원하는 WOL의 형태는 다음과 같다. 

 

팀뷰어의 경우 외부의 어느 포트와 원격 부팅할 내부 PC의 어느 포트를 포트 포워딩해서 연결한 외부 포트에 매직 패킷을 날리는 형태로 지원한다.

 

iptime의 경우는 디폴트 설정으로는 iptime 관리자 페이지는 내부에서만 접속이 가능한데 이를 외부에서도 접속 가능하게 외부 IP를 할당한다. 관련 모바일 앱으로 해당 IP에 접근한 뒤 iptime 관리자 페이지에서 있는 WOL 기능으로 원격부팅을 한다.

 

 

위의 두 경우는 공유기와 내부PC 둘 중 하나를 외부접속이 가능하도록 포트를 열어놓아야한다는 점에서 보안상으로 꺼려진다. (그렇다고 외부공격이 많은 편은 아니긴 하다.)

그래서 ssh 보안키로 접속하게 환경을 만들어 놓은데다가 외부접속이 가능하도록 열어놓은 Raspberry Pi 서버를 이용한다. 

 

Raspberry Pi 서버 쉘에서 wakeonlan 패킷을 원격부팅하고 싶은 PC의 맥 주소로 전송하여 부팅을 한다.

이를 그림으로 표현하면 아래와 같다. 

 

 

외부 PC에서 22번 포트로 Raspberry Pi 서버에 접근한다. ssh로 접근하기 때문에 내부 서버의 쉘을 사용 가능하다.

내부 서버에서 내부 PC의 맥주소로 매직 패킷을 전송한다. 이렇게 되면 내부 PC의 포트를 외부로 열지 않아도 원격에서 부팅하는 것이 가능하다.

 

WOL 패킷을 전송하고 받기 위해서는 내부 PC와 라즈베리 파이 서버 양쪽의 설정을 건들여야 한다.

 

1. Raspberry Pi 서버 


(1) wakeonlan 설치

sudo apt-get install wakeonlan

 

 

 

2. 내부 PC


PC는 윈도우 10을 기준으로 한다.

 

(1) 랜카드 설정 1

장치 관리자 (devmgmt.msc) > 네트워크 어댑터 > 랜카드 속성 > 드라이버 > 드라이버 업데이트

드라이버가 최신이라면 넘어가도 된다. 전원 관리 탭, 고급 탭에서 WOL 설정이 없는 사람만 하면 된다.

 

(2) 랜카드 설정 2

장치 관리자 (devmgmt.msc) > 네트워크 어댑터 > 랜카드 속성 > 전원 관리 > 전원을 절약하기 위해 ... 끌 수 있음(A) 체크 해제

(3) 랜카드 설정 3

장치 관리자 (devmgmt.msc) > 네트워크 어댑터 > 랜카드 속성 > 고급 > 매직 패킷 웨이크 온, 웨이크 온 랜 종료, 패턴 일치 웨이크 온 > 사용(온)

드라이버를 업데이트한 직후 디폴트로 모두 사용(온)되어 있었지만 만약 설정을 다 한 후 WOL 동작이 안한다면 사용으로 되어있는지 재 확인 해준다.

 

(4) 전원 설정

 

설정 > 전원 및 절전 > 추가 전원 설정 > 전원 단추 작동 설정 > 현재 사용할 수 없는 설정 변경 > 빠른 시작 켜기(권장) 체크 해제

(5) BIOS 설정

BIOS 진입 > Advance > APM > Power On By PCIE > Enabled

bios 별로 진입 방법은 다르지만 PCIE로 전원을 켜는 설정을 사용으로 변경하면 된다.

 

 

위 설정이 전부 끝났다면 cmd 창에서 ipconfig /all 을 통해 랜카드의 맥 주소를 확인할 수 있다.

맥 주소를 기억한 뒤 Raspberry Pi 서버에 붙어 아래와 같은 명령어를 사용하여 부팅 가능하다.

wakeonlan xx:xx:xx:xx:xx:xx

이미 많은 곳에서 WOL에 대한 기능을 제공해주고 있기 때문에 사실 이렇게 하는 이유가 있냐하면 없긴하다.

어쩌다 외부접근 가능한 라즈베리 파이 서버가 놀고 있어 무엇이라도 기능을 하도록 굴려보고 싶다면 한번 만들어 보는 정도.

라즈베리파이가 없는 사람이 WOL를 위해 라즈베리파이를 구매해서 서버 외부접근도 열고 그렇게 하기에는 수지가 안맞는다.

 

외부 공격의 위험의 경우는 다른 포트가 열려있지 않다면 공격자가 매직 패킷을 날려서 내부 PC의 전원을 킨 그 다음엔 사용자의 전기세 폭탄을 먹여버리는 정도의 위험밖에 되지 않을 거 같다. 팀뷰어를 통해 원격 접속을 허용해둔다 하더라도 팀뷰어의 아이디와 패스워드를 이중으로 탈취해야 하기 때문에 큰 위험은 되지 않을 것이다.

 

동아리 준회원 CTF로 열였던 aws서버의 IP를 외부 공개하지 않았으니 괜찮겠지하고 계정관리를 소홀히 했다가 user1/user1 계정으로 무작위 대입공격이 들어와 채굴기 서버가 되버린 그런 경험도 있었기에 혹시나 해서 하는 마음.. 

  • 프로필사진
    ㅋㅋㅋ2019.12.24 23:57

    ㅋㅋㅋ 리눅스 문제 서버 해킹 당했을때 어이 없었죠

  • 프로필사진
    ㅇㅇ2020.04.18 14:50

    스마트홈을 이용하는것도 있어요
    스마트한 삶을 살아 보아요~~

1 2 3 4 5 6 7 ··· 58