새 펌웨어(1.70)에서 버팔로 NAS 루팅하기
나스 장비를 루팅하는 이유
꽤 오래 전에 버팔로 나스를 리뷰했었다. 케이스 가격은 10만원대 이기 때문에 네트워크 저장 매체로는 상당히 저렴한 편이다. 또 가격은 저렴하지만 있을 만한 기능은 대부분 있다. 따라서 잘 사용하면 의외로 활용도가 높다. 아울러 이런 나스 장비는 루팅을 하면 훨씬 더 다양한 작업이 가능해진다. 한예로 버팔로 나스의 웹 포트는 81번이다. 그런데 이 포트를 일반 웹 포트(80번)로 바꿀 수 있다. 또 필요하다면 'Air Video' 서버 같은 것을 돌릴 수도 있다. 이렇기 때문에 대부분의 나스 장비 역시 많은 사람들이 루팅을 하고 있다. 다만 버팔로 나스는 펌웨어가 판올림되며 PHP Shell을 이용한 루팅이 막혔다. 따라서 오늘은 PHP Shell을 이용하는 것에 비해 조금 더 복잡하지만 근원적으로 루팅하는 방법을 소개하겠다.
동작하지 않는 나스 루팅
루팅을 하지 않으면 그림 오른쪽 위처럼 네트워크 오류가 뜬다. 그러나 루팅을 하고 나면 root라는 아이디로 바로 로그인할 수 있다. 리눅스에서 최고 관리자 권한을 획득했기 때문에 나스 장비를 마음 껏 가지고 놀 수 있다.
따라서 유닉스나 리눅스에 대해 어느 정도 알고 있는 사람이라면 버팔로 나스의 설정 파일을 acp_commander.jar
를 이용해서 바꿈으로서 루트 권한을 얻을 수 있다. 절차도 그리 복잡한 것이 아니다. ① passwd 명령으로 루트(root)의 암호를 바꾼다. ② 콘솔 로그인을 허용하도록 sshd 설정을 바꾼다. ③ 마지막으로 sshd 서버를 다시 기동한다. 이렇게하면 putty와 같은 프로그램으로 루트 로그인이 가능했다. 루팅을 하지 않으면 그림 오른쪽 위처럼 네트워크 오류가 뜬다. 그러나 루팅을 하고 putty를 이용하면 바로 root로 로그인할 수 있다. 따라서 오늘은 다시 버팔로 나스에 root로 로그인하는 방법을 설명하겠다. 이 방법은 1.56에서 시험했고 최신 펌웨어인 1.58~1.70에서도 잘 동작하는 것 rooting.cmd
파일을 실행할 때 다음과 같은 오류가 발생한다면 일단 방화벽을 끄고 시도한 뒤 루팅에 성공하면 방화벽을 켜기 바란다. rooting.cmd
에서 네트워크를 접속하며 방화벽에서 네트워크 접속을 차단하기 때문에 발생한 문제이기 때문이다.
>ERROR: Exception: SocketTimeoutException (Receive timed out) [ACP Send/Receive ( Packet:8020 = ACP_Discover)]
코드 설명
마지막으로 혹 더 궁금해 하는 사람이 있을지 몰라 각각의 코드를 설명하면 다음과 같다.
-c "(echo %ROOTPW%;echo %ROOTPW%)|passwd"
passwd
라는 유닉스 명령을 실행하며 자동으로 ROOTPW를 입력한다.-c "sed -e 's/UsePAM.*yes/UsePAM no/g' -i /etc/sshd_config"
sed
명령을 이용해서 sshd_config 파일의 내용 중 'UsePAM yes'를 'UsePAM no'로 바꾼다.-c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"
마찬가지로sed
명령을 이용해서 'ssh_config' 파일의 내용 중 PermitRootLogin no을 'PermitRootLogin yes'로 바꾼다. 즉, 루트 로그인을 허용하도록 바꾸는 과정이다.-c "sed -i 's/"${SUPPORT_SFTP}" = "0"/"${SUPPORT_SFTP}" = "1"/g' /etc/init.d/sshd.sh"
sed
명령을 이용해서 'sshd.sh' 파일의 내용 중 "${SUPPORT_SFTP}" = "0"를"${SUPPORT_SFTP}" = "1"
로 바꾼다. 즉, SFTP를 지원하도록 바꾸는 부분이다.-c "/etc/init.d/sshd.sh restart"
변경된 설정을 적용ㄹ하기 위해sshd
대몬을 다시 시작한다.
남은 이야기, 다시 한번 주의
일단 rooting.cmd
를 실행하고 나면 다음 그림처럼 루트 ID로 로그인 된다. SSH를 이용해서 로그인해야 하므로 Putty 루팅된 나스
별것 아닌 것 같지만 root로 로그인하면 시스템 전체를 마음대로 주물룰 수 있기 때문에 상당히 편하다.
관련 글타래- 10포트 USB 허브, HUB-101 리뷰 허브를 포함, 컴퓨터에서 사용할 수 있는 포트는 30개에 ... 새창
- 탈옥폰, 최고의 배터리 관리 어플은? 아이폰이 국내에 처음 소개됐을 때 다들 '배터리가 조루'라고... 새창
- 주얼리 본능의 아이폰 4 메탈 케이스, 제누스 스팅 아이폰 4가 등장한 뒤 급성장한 시장이 바로 프리미... 새창
- 리딤 이벤트, 하위 폴더를 지원하는 사진 어플 - i... 인사이트 미디어의 i사진폴더는 사진 폴더를 관... 새창
- 11시간 통화가 가능한 괴물 헤드셋, M50 오늘은 오랜 만에 블루투스 헤드셋 리뷰를 할까 한다. 그... 새창
-
이 글에서 제공한 방법은 펌웨어 1.70에서도 잘 동작하는 것을 확인했다. ↩
- 시스템 파일은 설정에 따라 외장 하드 영역으로 복사해도 읽을 수 없다. chown 명령을 이용해서 소유권을 바꾸거나 chmod를 이용해서 접근 권한을 바꿔야 한다. ↩
- 가장 최신 펌웨어인 1.70에서도 잘 동작한다. 다만 윈도 7에서 동작하지 않는다면 방화벽을 끄고 실행한 뒤 방화벽을 켜면 된다. ↩
- 개인적으로 가장 좋아하는 콘솔 프로그램은 SecureCRT이다. 콘솔 작업이 많을 때는 항상 설치하는 프로그램이었다. 그러나 요즘은 콘솔 작업이 많지 않아 Putty를 사용하고 있다. ↩
- '기초적인 부분을 설명하지 않고 질문해도 답을 하지 않겠다'고 한 것도 같은 맥락이다. ↩