외부에서 Wake On Lan 지원 안되는 공유기에서 WOL 사용하기

Wake On Lan 잘 쓰고 계시나요. 저는 항상 잘 쓰고 있었는데. 최근에 공유기를 바꾸고 나니 문제가 생겼습니다. 빠른 무선 속도를 노려보려고 외산 공유기로 바꿨는데 Wake On Lan(이하 WOL)이 지원안되는 겁니다.
일반적인 공유기에서 외부에서의 WOL이 되는 이유는 WOL서버 때문인데요.(한가지 방법은 브로드캐스트 주소로의 포트포워드지만 지원 안되는 공유기가 더 많습니다.) 새로산 공유기는 WOL서버 기능을 자체적으로 지원하지 않으니... 답답하더라구요.
이걸 안쓸 수는 없고 어떻게든 쓸 방법을 생각해봤는데요

첫번째 방법은 외부 N번 포트에서 들어오는 패킷을 내부 브로드캐스트 주소로 포워드해버리는 것이 었습니다. 그러면 제가 보낸 패킷이 내부네트워크 전체로 퍼지고 제가 보낸 맥어드레스에 해당하는 컴퓨터만 켜질 것 같았거든요.

두번째 방법은 아예 리눅스를 설치하고 WOL서버로 사용하는 방법이었습니다.

첫번째방법이 간편한데 공유기에서 지원하지를 않아요... 그래서 결국 두번째 방법을 선택하게 되었습니다.
허접하지만 혹시나 넷기어나 링크시스등 WOL이 자체적으로 지원되지 않는 공유기를 이용중인 분들을 위해 작성합니다.

준비물은 남는 항상 켜져있을 수 있는 컴퓨터 혹은 리눅스가 설치되는 싱글보드컴퓨터입니다. 사용중인 서버가 있다면 그걸 써도 됩니다. 일단 저는 여기서 라즈베리 파이로 진행하겠습니다. 저는 리눅스로 진행하지만 윈도우에서도 됩니다.

먼저 라즈베리파이에 레즈비언 아...아니 라즈비안을 설치하시고 켜고자 하는 컴퓨터들과 같은 네트워크에 연결하신 후(이더넷이든 무선이든 상관 없습니다.) service ssh start를 입력해서 sshd를 시작합니다.

그리고 컴퓨터에서 putty와 같은 ssh클라이언트로 라즈베리파이의 ssh서버에 접속합니다.

etherwake와 wakeonlan 두가지가 있는데 etherwake는 실행할때마다 sudo를 해줘야해서 wakeonlan을 설치했습니다

apt-get update && apt-get install wakeonlan
or
aptitude update && aptitude install wakeonlan
를 입력해 wakeonlan을 설치합니다.
포럼에서 보니 aptitude가 대세던데 저는 아직도 익숙함 때문에 apt-get을 쓰고 있네요.

설치가 끝났네요.

vi filename.sh를 입력해서 안에는 wakeonlan 11:22:33:44:55:66와 같이 wakeonlan뒤에 맥어드레스를 입력해줍니다.
스크립트파일로 만드는 이유는 다름이 아니라 그냥 좀 짧게 만들기 위함이구요. 좀 공을 들이면 켜졌는지 안켜졌는지 확인하는 스크립트를 넣을 수도 있겠지만 그냥 쓰는 건데 그렇게 공들일 필요까지야...

일단 테스트를 해봅시다 sh wol.sh를 입력해 봅니다 켜지나요?

ssh포트를 변경하고 싶다면 vi /etc/ssh/sshd_config를 입력하신후 사진에 있는 저 #을 제거 하시고 포트번호를 수정해주세요.

윈도우의 경우
윈도우의 경우에는 간단하게 여기에 나와있는 윈도우용 ssh서버중 하나를 선택하여 설치하신 후 설정을 마치시고 (꼭 ssh서버 설치하실 필요없습니다. RDP포트여시고 RDP접속하셔서 수동으로 켜줄 수 도 있습니다. 여기서 ssh서버를 설치하는 것은 밑에 나온 원클릭 켜기 때문입니다.) 여기에서 command line용 wolcmd를 다운받습니다. 그리고 ssh 접속시 기본 경로에 넣어주면 됩니다.(기본경로가 어디였는지 생각이 안나요 C:\Users\유저명 이었나 C:\Users\유저명\Documents 이었나.)
그리고 cmd 파일을 하나 만드신 후
wolcmd [mac address] [ipaddress] [subnet mask] [port number]
이렇게 설정하고 ssh 접속했을때의 기본경로에 wol.cmd로 저장해 주시면 되는데, 아마
wolcmd [mac address] [ipaddress] 255.255.255.0 9
이렇게 맥 어드레스랑 아이피만 설정하면될겁니다. 아이피는 맨뒷자리는 255로 해주세요 ex)192.168.1.255

자 이제 설정이 끝났습니다. 스마트폰이나 외부 컴퓨터에서 ssh접속하신후 sh wol.sh 해주시면 되는데요.
원클릭이 아니잖아요. 그래서 이 앱을 이용하도록 합니다.
Script Kitty 스크립트 키디 스크립트 키티 인데요.
이 앱은 명령어를 등록해놓고 실행하면 ssh접속후 해당 명령어 실행까지 해주는 앱입니다. 이걸 이용해 원클릭 wol패킷을 보낼텐데요. 한번 보도록 하죠

스크립트 키티를 실행하면 ADD HOST를 눌러 설정한 서버에 맞게 주소와 포트를 입력해줍니다.

등록이 됬네요 여기서 RUN SCRIPT를 누르면 스크립트를 추가할 수 있습니다.

저는 스샷찍기전에 등록을 해서 이미 등록이 되어있는데 ADD SCRIPT를 눌러 추가합니다.

뭐 내용이야 별거 없이 이거에요. 윈도우에다가 하신 분은 wol.cmd 해주시면 됩니다.

이제 다른 네트워크나 데이터를 사용줄이더라도 이 버튼을 한번 클릭하는 것 만으로 컴퓨터가 켜집니다.


굉장히 허접하지만 그래도 WOL을 쓸 수 있어서 좋네요. 근데 라즈베리 파이를 고작 WOL서버로만 쓰자니 너무 아깝네요. 아무리 CPU성능이 딸린다 해도 가정용 NAS정도는 되는 성능인데... 뭐라도 서비스 좀더 올려서 써야겠어요.
웹서버 올려서 어떻게 잘 만들면 공유기 UI처럼 GUI로 만들 수 있을 텐데 하는 생각도 드는데 혹시 하게되면 따로 새글 안쓰고 여기 밑에 추가할게요.
Creative Commons License

SSH 터널링으로 회사방화벽 우회하기


별 관계없는 사진입니다


대부분의 회사나 대학교 등의 기관들은

내부에서 외부로 나가는건 거의 다 되고 외부에서 내부로 들어오는 것은

막아 놓은 경우가 많다


근데 그 기관에 유닉스 서버를 구동하고 있는 경우라면 22번 포트 ssh 포트가 열려있는 경우가 있다

(여기서는 22번 포트로 예를 든 것이지만 그냥 포트 열려 있는게 뭔지 안다면 SSH 서버 포트를 변경하면된다)


이 방법은 회사에서 내부로 들어오는 포트중 ssh포트만을 열어 놓았고

그리고 내부에 본인의 컴퓨터가 있을 시

외부에서 내부의 컴퓨터를 제어할 때 사용할 수 있는 방법이다

(회사에 업무 처리할게 남았다거나 혹은 회사에 파일을 집으로 옮기거나)

먼저 


※SSH란

Secure Shell 의 약자로

통신 프로토콜의 하나인 텔넷(Telnet)과 거의 비슷한데

이 텔넷이라는 것이 평문통신이라 워낙에 보안에 취약하다 보니

이 보안을 강화하기 위해 패킷을 암호화 하도록 만든 것이다


그리고 SSH터널링 이란

이 SSH라는게 상당히 보안성이 좋기 때문에

SSH 접속을 다른 암호화 접속을 사용하지 않는 프로그램이

암호화 접속을 사용할 수 있도록 포트 포워딩 해주는 것입니다.


SSH는 포트를 포워딩 해준다는 것을 이용해

VNC을 사용해 보도록 하지요


모식도를 보자면 대충 이렇습니다

(구글에서 대충퍼와서 수정만 좀 한거라 그림이 상당히 허접하긴 합니다)

방화벽이 ssh외에 다른 포트들을 필터링 시켜 버릴때

사내 내 컴퓨터에 SSH서버를 설치하여

터널을 뚫는것이다

그래서 터널을 통하여 VNC과 RDP를 이용할 수 있다


퇴근 전에 SSH서버와 VNC서버를 컴퓨터에 설치한다

SSH서버 설정도 올릴려고 했는데

길바닥에 널릴 정도로 흔한게 SSH서버 설정인것 같아 생략했다


SSH서버는 윈도우용으로 Cygwin을 깔아서 OpenSSH를 설치하는방법 (쌩판 윈도우용도 있다 )

                                   FreeSSHd를 설치하는방법

     Bitvise SSH(구 WinSSHd 사명을 알리려는 수작인지 이름을 바꾸었다)를 설치하는 방법 등이 있다

     Bitvise SSH와 FreeSSHd는 상용으로는 사용을 못하기 때문에 감사 뜨면 클난다


리눅스 용으로는 그냥 걱정없이 OpenSSH를 이용하면 된다

아마 배포판 마다 그냥 설치시 기본 포함 되어 있을 것이고

sshd만 활성화 시켜주면 된다



그리고 집에서

PuTTY를 이용하여 (다른 SSH클라이언트들도 거의 동일하다)


Tunnels탭에서 터널을 생성한다(타 클라이언트에서는 Forwarding이라고도 한다)

 Source port(다른 클라이언트에는 local Port라고도 한다)에는

내 몇번포트를 SSH터널로 포워딩하고 싶은지를 넣고

Destination(타 클라이언트에는 Remote라고도 한다) 에는

내가 source port로 보낸 패킷을 어디에 몇번포트로 포워딩하고 싶은지를 적는다

예를 들어 내가 VNC을 이용하고 싶을때 


Source Port에다가는 VNC포트인 5900이나 5901을 넣고

(꼭 저 포트를 안넣어도 된다 아무거나 입력하고

접속할때 포트만 잘 입력해주면 된다

도착포트가 중요하지 보내는 포트는 별로 중요치 않다)


Destination에는 VNC에 접속하고 싶은 주소:포트를 입력하면 된다


여기서 나는 내가 VNC을 하고자 하는 컴퓨터가 곧 서버이므로

서버ip:5900을 입력하였다


접속할 아이피와 포트를 입력후 Open을 누른다

(서버에서 포트를 22번 기본 포트가 아닌 다른걸로 바꾼 경우 Port에 바꾼 포트를 입력한다)

여기서 Save를 하게 되면

다음 연결시 불러 올 수 있어 상당히 편하다


접속을 하게되면 로그인 아이디와 비밀번호를 입력한다


로그인을 완전히 하게되면 윈도우 명령프롬프트를 볼 수 있는데

(리눅스라면 리눅스 터미널이 보인다)

그냥 이대로 놔두고 VNC 뷰어를 실행한다



아이피에 상대방 아이피를 쓸 것 없이 localhost:포트 를 입력한다

이유는 터널링으로 내 로컬포트 5900으로 보내게 설정해 놓았으니

포트는 5900이라면 생략가능하고 5901이면 1만 입력하면된다


그러면 VNC로그인 창이 뜨는데 설정해 놓은 비밀번호를 입력한다


일단 연결이 되긴 했는데 언제쯤 공공기관과 회사는

XP와 엑티브X 를 버릴 수 있을 까요

윈도우 8이 나온 시점에;;;

그리고 XP지원 끊길때 까지 얼마 남지 않았죠


아 그리고 꼭 SSH서버가 깔린 곳만 제어할 수 있는건 아닙니다

일단 SSH로 회사 내부망에 들어온 상태니 서버를 통해 다른 내부망에 있는 어떤 컴퓨터로도 접근이 가능합니다

예를 들어 ip뒷자리 22인 사내 내컴퓨터에 VNC를 이용하면서도

ip 뒷자리가 39인 사내 프로젝트 서버로 접속하고 싶을때 

세팅을 저렇게 합니다

포트포워딩으로 22번포트가 연결중일 테니 Source 포트는 맘에드는 걸로 넣어주고

도착지 포트만 제대로 22로 넣어줍니다



그래서 내 컴퓨터에 연결이 되었을 때 창을 하나 더 띄워

ip에 localhost(127.0.0.1)을 넣고 포트에 아까설정한 51을 입력하면


사내 프로젝트 서버에도 동시 접속됩니다

(솔찍히 이건 이렇게 할 필요 없었는데 예를 들기 위해 보여준것)


이런식으로 방화벽이 존재 하더라도

 윈도우 RDP등등 여러가지들을 이용할 수 있습니다


위처럼 설치까지도 귀찮다 하시면

그냥 DD-WRT지원하는 공유기나 라즈베리파이 같은거 사내에 넣어놓고 그안에 있는 SSH서버 이용하시면 되겠습니다


오타, 잘못된점, 지적 감사히받습니다


Creative Commons License

mRemoteNG - 종합 원격 제어툴

리눅스 원격제어 할때 PuTTY나 SecureCRT같은 SSH 클라이언트가 있으면 좋다

그런데 여러 운영체제나 원격관리툴을 쓸때는 이창 저창 옮겨다니기가 귀찮은데

이 경우에 사용할 수 있는 탭 UI를 갖는 종합 원격 관리 프로그램이 있다

mRemoteNG 인데

원래 무료였던 mRemote가 유료화되고 Royal TS로 바뀌면서

오픈소스로 나온것이다


RDP (Remote Desktop/Terminal Server)

VNC (Virtual Network Computing)

ICA (Citrix Independent Computing Architecture)

SSH (Secure Shell)

Telnet (TELecommunication NETwork)

HTTP/HTTPS (Hypertext Transfer Protocol)

rlogin

Raw Socket Connections

을 지원하고

SSH연결은 Putty를 사용한다

뭐 자주 쓰는건 RDP, VNC, SSH밖에 없긴 하다 ㅎ


사용예를 들자면


이런식으로 윈도우 서버와 리눅스에 동시 접속하여 업무를 처리해야 할때 둘다 접속해 놓고 탭만 바꿔가면서 작업이 가능하다

물론 전체화면으로도 전환할 수 있다


RDP와 VNC를 동시에 실행해놓고 탭하나로 왔다갔다하며 작업할 수 있다는게 가장 큰 장점이다


공식 홈페이지 : http://www.mremoteng.org/

공식 소스공개 : https://github.com/rmcardle/mRemoteNG


다운로드

//-----------------------1.72-----------------------------------//


mRemoteNG-1.72.zip

ZIP버전 - 공식 홈페이지에서 다운


mRemoteNG-Installer-1.72.exe

인스톨러버전 - 공식 홈페이지에서 다운


mRemoteNG-Portable-1.72.zip

포터블버전 - 공식 홈페이지에서 다운



//-----------------------1.70----------------------------------//


mRemoteNG-1.70.zip

ZIP버전 - 공식 홈페이지에서 다운


mRemoteNG-Installer-1.70.exe

인스톨버전 - 공식 홈페이지에서 다운


mRemoteNG-Portable-1.70.zip

포터블버전 - 공식 홈페이지에서 다운



//-------------------------1.69--------------------------------//


mRemoteNG-1.69.zip

ZIP버전 -공식홈에서 다운


mRemoteNG-Installer-1.69.exe

인스톨버전 -공식홈에서 다운


mRemoteNG-Portable-1.69.zip

포터블 -공식홈에서 다운


Creative Commons License

PuTTY - SSH로 리눅스 원격 접속

PuTTY는 SSH로 윈도우에서 원격으로 리눅스에 접속하게 해준다

SSH는 Secure Shell 의 약자로

통신 프로토콜의 하나인 텔넷(Telnet)과 거의 비슷한데

이 텔넷이라는 것이 워낙에 보안에 취약하다 보니

이 보안을 강화하여 만든 것이다


Sever와 Client간에 텍스트기반 통신이 가능하므로

원격에서 리눅스 터미널을 만지작거릴 수 있다

(텍스트기반 통신이므로 쉘 만 볼 수 있다 화면을 보려면 VNC같은 프로그램을 써야한다)


PuTTY 공식 다운로드 사이트 : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


PuTTY 0.62


putty-0.62-installer.exe


Zip 버전은 PuTTYTel이 포함 안되어 있기 때문에 따로 받아야 한다

putty.zip


puttytel.zip


or

공식홈페이지에서 다운

PuTTY Install Ver

PuTTY 

PuTTY Tel


혹은


The latest development snapshot 버전으로

하루마다 자동 컴파일 되므로 0.62버전에 버그가 있다면 이 버전을 사용해 보면된다

이것 또한 PuTTY Tel은 포함이 안되어 있으므로 따로 받아야 한다

PuTTY LDS - Zip 버전


PuTTY LDS - Install 버전


PuTTY Tel


근데 영어버전이 아쉬운게 한글이 깨진다는 단점이 있다

소스코드가 공개되어 있기 때문에

한글이 안깨지게 만든 프로그램이  있다

iPuTTY라는 프로그램이다


근데 한글판 PuTTY인 iPuTTY의 공식 홈페이지가 바뀌었다

이게 내가 이 글을 포스트하는 이유인데

갑자기 PuTTY가 필요해

이전 공식 홈페이지인 http://kldp.net/projects/iputty/ 에 들어가보니

이제

https://bitbucket.org/daybreaker/iputty/downloads

이곳으로 옮긴다고 한다


iputty-0.62-prerelease4.zip

공식홈에서 다운로드



추가적으로

PuTTY Connection Manager을 쓰면 SecureCRT 부럽지 않게 사용이가능한데

공홈이 http://puttycm.free.fr/cms/  였는데

오랜만에 들어가보니 서버가 닫혔다;;;;

이유를 모르겠지만 여튼 지금 가지고 있는 파일이 없어서

올리지를 못한다


//아 구글 검색으로 나온 안정버전 중에 가장 최신인 버전을 구했다


puttycm-debug-0.7.1.223.zip


이거 말고도 비슷한 프로그램인 SuperPuTTY가 있으니 사용해보는 것도 좋다

공식홈페이지 : http://code.google.com/p/superputty/

SuperPutty-1.3.0.11.zip


그리고 Logon 스크립트 기능이 추가된 KiTTY도 사용해보는것도 좋다
공식 홈페이지 : http://www.9bis.net/kitty/

'Utilities > Windows' 카테고리의 다른 글

mRemoteNG - 종합 원격 제어툴  (0) 2012.11.25
PuTTY - SSH로 리눅스 원격 접속  (0) 2012.11.25
삭제된 파일 복구 프로그램 Recuva 1.44.778  (0) 2012.11.24
NVIDIA Inspector  (0) 2012.11.23
Creative Commons License