나스를 리눅스 박스로…

버팔로 나스 펌웨어는 다른 외산 네트워크 장비와 비슷하게 리눅스(Linux)가 설치되어 있다. 따라서 버팔로 링크스테이션(Buffalo LinkStation)에 root로 로그인할 수 있으면 리눅스 박스처럼 사용할 수 있다. 버팔로 링크스테이션은 과거에는 acp_commander.jar라는 파일을 이용해 루트 로그인할 수 있었다. 그러나 지금은 막혔다. 그런다고 방법이 없는 것은 아니다. PHP Shell이라는 프로그램을 이용하면 역시 루트 로그인할 수 있다. 따라서 이 번 글에서는 PHP Shell을 이용해서 루트 로그인하는 방법을 설명하겠다.

버팔로 나스 루트 로그인

최근에 글이 잘 써지지 않는다. 써야할 글은 많은데 글이 써지지 않으니 조금 난감한 상황이다. NAS도 비슷하다. 원래 총 5부로 빨리 마무리할 생각이었지만 글이 잘 써지지 않다보니 임시 글(드래프트)만 쓰고 마무리를 짓지 못하고 있다. 일단 버팔로 나스의 체험단으로서 써야할 글은 모두 다썼다. 따라서 이번에는 버팔로 나스와 직접적인 관계는 없지만 버팔로 나스로 다른 작업을 할 때 유용한 팁을 하나 올리도록 하겠다.

버팔로 나스의 펌웨어는 다른 외산 네트워크 장비와 비슷하게 리눅스(Linux)가 설치되어 있다. 따라서 버팔로 링크스테이션(Buffalo LinkStation)에 root 아이디로 로그인할 수 있으면 거의 리눅스 박스처럼 사용하는 것이 가능하다. 인터넷을 찾아 보면 알 수 있지만 버팔로 링크스테이션은 과거에는 acp_commander.jar라는 파일을 이용하면 루트로 로그인하는 것이 가능했다. 이 파일을 내려받아

java -jar acp_commander.jar -t 192.168.1.XXX -o

와 같은 명령을 실행하면 텔넷으로 로그인할 수 있다고 한다. 또 다음 그림에서 알 수 있듯 버팔로 링크스테이션에 정말로 텔넷 로그인이 가능한 것처럼 보인다. 텔넷 대몬이 실행됐고 로그인 ID로 root를 사용하면 되는 것으로 출력되기 때문이다. 그러나 버팔로 링크스테이션의 펌웨어 때문인지 몰라도 최근 펌웨어에서는 이 명령이 통하지 않았다. 따라서 이번 글에서는 조금 다른 방법을 이용해서 버팔로 링크스테이션(Buffalo LinkStation)의 콘솔로 로그인하는 방법을 설명하겠다.

웹 서버 실행

acp_commander.jar를 이용해서 콘솔로 로그인할 수 없다. 그러나 방법이 전혀 없는 것은 아니다. 인터넷을 찾아보면 알 수 있지만 PHP 프로그램 중 PHP Shell이라는 프로그램이 있다. 이름을 보면 알 수 있지만 이 프로그램은 웹을 통해 시스템 명령을 실행할 수 있는 프로그램이다. 웹 프로그램이 가지고 있는 특징상 접근할 수 있는 폴더는 웹 폴더(htdocs)로 제한된다.

그러나 이 프로그램을 이용하면 제한적이기는 하지만 버팔로 링크스테이션에 콘솔로 접근하는 것이 가능하다. 다만 이 프로그램을 실행하기 위해서는 먼저 웹 서버를 실행한 상태여야 한다. 따라서 먼저 버팔로 링크스테이션관리도구에 접속한 뒤 웹 서버를 기동해야 한다. 버팔로 링크스테이션에서 웹 서버를 실행하는 방법은 다음과 같다.

  1. 웹 브라우저 주소표시줄에 버팔로 링크스테이션의 웹 관리도구 주소를 입력한다. 버팔로에서 제공하는 NAV Navigator 2를 설치했다면 바탕화면의 아이콘만 두번 클릭해도 된다.

    그림에서는 80번 포트가 아니라 다른 포트를 사용하고 있는데 이것은 웹 서버에 80번 포트를 사용하기 위해 웹 관리도구의 포트를 바꾸었기 때문에 발생한 현상이다.

  2. '네트워크/웹 서버'를 클릭하고 '설정 수정'을 클릭한다.
  3. '웹 서버'를 '사용'으로 바꾸고 '대상 폴더'를 지정(share/.webaxs)한 뒤 저장 단추를 누른다.

일반적으로 다른 옵션은 바꿀 필요가 없다. 웹 서버만 '사용'으로 바꾸고 대상 폴더에서 share/.webaxs만 선택하면 된다. 예의 설정에서 포트번호는 80이지만 기본 설정으로 포트 번호는 80번으로 설정할 수 없다. 80번으로 설정하는 부분은 다른 글에서 설명하겠다. 따라서 이 글은 기본값인 81번을 그대로 사용하는 것으로 하겠다.

이렇게 하면 버팔로 링크스테이션에 사용자 웹 서버가 실행된다. 버팔로 링크스테이션에서는 웹 억세스를 제공하기 위해 아파치 웹 서버를 사용한다. 따라서 사용자 서버 역시 아파치로 실행해 주면 좋을 텐데 사용자 웹 서버로는 lighthttpd가 실행된다. 아파치에 비해 기능은 조금 떨어지지만 자원을 덜 차지하기 때문으로 보인다.

PHP 셀 설치

버팔로 링크스테이션을 네트워크 드라이브로 연결하면 해 보면 루트 폴더에 .webaxs라는 폴더가 만들어져 있는 것을 알 수 있다. 유닉스에서 점(.)로 시작하는 폴더는 숨은 폴더이기 때문에 이 폴더는 웹 접근을 통해서는 보이지 않는다. 이 .webaxs 폴더 아래에 htdocs라는 폴더에 내려받은 PHP 셀을 복사해 두면 된다. 절차는 다음과 같다.

내려받기

  1. '시작/컴퓨터'에 마우스 오른쪽 단추를 클릭한 뒤 컴퓨터에 마우스 오른쪽 단추를 클릭하고 네트워크 드라이브 연결을 클릭한다.
  2. '폴더'에 \\192.168.xxx.xxx\share 처럼 입력하고 '마침' 단추를 클릭한다. 여기서 192.168.xxx.xxx는 버팔로 링크스테이션의 IP 주소여야 한다.

    만약 이 주소를 모르면 '찾아보기'를 클릭한 뒤 폴더를 직접 지정할 수도 있다. 이때 로그인 ID와 암호는 다른 작업을 하지 않았다면 'admin'/'password'를 사용를 사용하면 된다.

  3. htdocs 폴더에 내려받은 PHP Shell를 풀어놓는다. htdocs 폴더에 풀어놔도 되지만 이렇게 하면 파일 관리가 힘들기 때문에 예에서는 htdocs/tools/ps 폴더에 풀었다. 이 글을 따라하는 사람들도 알아서 적당한 폴더를 만들 뒤 압축을 푸는 것이 좋다.
  4. 좋아하는 편집기로 PHP 셀 폴더에서 config.php 파일을 불러온 뒤 [users] 섹션 아래에 다음과 같은 형식으로 사용자를 추가한다.

    php]admin = password
    

    여기서 'admin'은 PHP 셀에 로그인할 사용자의 ID, password에는 로그인할 때 사용하는 암호를 입력하면 된다.

PHP 셀을 이용한 해킹

이 정도를 해킹이라고 할 수 있을지 모르겠다. 아무튼 PHP 셀을 이용하면 root 암호를 간단히 우회할 수 있다. 절차는 다음과 같다.

  1. 주소표시줄에 http://192.168.xxx.xxx:81/<PHP 셀 폴더>처럼 입력한다. 여기서 192.168.xxx.xxx는 '버팔로 링크스테이션의 주소'이며 <PHP 셀 폴더>는 PHP 셀을 설치한 폴더이다. 위의 예처럼 htdocs/tools/ps에 PHP 셀을 설치했다면 http://192.168.1.252:81/tools/ps가 된다.
  2. 'Username'과 'Password'에 config.php에 설정한 ID와 암호를 입력한다. 위의 예처럼 했다면 admin/password로 로그인하면 된다.
  3. 입력창의 $에 다음처럼 입력한 뒤 'Execute Command' 단추를 클릭한다.

    ln -s /etc/pam.d/sshd <웹 루트 폴더>/sshd
    예:
    ln -s /etc/pam.d/sshd /mnt/array1/share/.webaxs/sshd
    

    여기서 웹 루트 폴더(/mnt/array1/share/.webaxs)는 PHP 셀의 'Current Working Directory'를 보면 알 수 있다. htdocs까지 지정하지 않은 이유는 htdocs는 웹에서 접근할 수 있는 폴더이기 때문이다. 참고로 ln 명령은 특정 파일에 대한 소프트/하드 링크를 만드는 유닉스 명령이다.

  4. .webaxs에서 sshd 파일을 찾아 좋아하는 편집기로 'auth'로 시작하는 행을 모두 주석처리(줄 시작 부분에 #를 입력)한 뒤 마지막에 auth required pam_permit.so를 추가한 뒤 저장한다.

    #auth     required   pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
    \#auth    required   pam_smb_auth.so debug
    \#auth    required   pam_unix.so nullok
    \#auth     required   pam_unix.so
    \#auth    required   pam_winbind.so debug
    account  required   pam_unix.so
    \#account required   pam_winbind.so
    session  required   pam_unix.so
    auth    required   pam_permit.so # 추가한 행
    

콘솔 로그인

일단 위에서 설명한 것처럼 sshd 파일을 바꿨다면 텔넷을 이용해서 로그인하는 것이 가능해진다. 텔넷로 연결한 뒤 아이디로 root만 입력하면 그림처럼 root 아이디로 콘솔 로그인하는 것이 가능하다. 또 이렇게 일단 root로 로그인하면 버팔로 링크스테이션에서 모든 유닉스 명령을 사용할 수 있다. 참고로 버팔로 링크스테이션의 CPU 정보를 알고 싶다면 다음 명령을 실행하면 된다.

cat /proc/cpuinfo

리눅스와 같은 유닉스 시스템에서 root 아이디 로그인은 상당히 중요하다. root 아이디로 로그인이 가능해야 제한없는 작업이 가능하기 때문이다. root 아이디로 로그인하면 예에서 처럼 사용자 웹 서버의 포트를 80번 포트로 바꿀 수도 있고 삼바 서버의 설정을 바꿔 루트 폴더를 네트워크 드라이브로 연결하는 것도 가능해진다. 따라서 버팔로 링크스테이션을 사용하며 버팔로에서 제공하는 기본적인 기능 및 설정을 바꾸고 싶다면 꼭 숙지해야 하는 부분이기도 하다.

참고로 버팔로 링크스테이션을 부팅하면 이런 설정은 사라진다. 그러나 일단 /etc/pam.d/sshd를 소프트 링크(ln -s)했기 때문에 이 링크는 사라지지 않는다. 따라서 버팔로 링크스테이션을 부팅한 뒤에는 .webaxs/sshd 파일만 바꿔주면 된다. 부팅해도 설정을 유지할 수 있도록 하는 방법도 있지만 보안상 권하는 방법은 아니다.

관련 글타래

글쓴이
author image
운영체제의 모든 것을 운영하고 있는 IT 블로거. IT 블로거라는 이름은 현재 시국때문에 시사 블로거로 바뀐 상태다. 그러나 나는 아직도 시사와 사회에 관심이 많은 IT 블로거일 뿐이다. 컴퓨터, 운영체제, 시사, 가족, 여행, 맛집, 리뷰등과 살면서 느끼는 소소한 일상이 블로그의 주제이다. 왼쪽의 아이콘은 둘째 딸 다예가 그린 내 모습이다.
2010/07/24 19:01 2010/07/24 19:01
오늘의 글
인기있는 글
조회수 많은 글 | 베오베
댓글 많은 글 | 베오베

Trackback

Trackback Address :: https://offree.net/trackback/3235

  1. Subject : 새 펌웨어(1.58)에서 버팔로 NAS 루팅하기

    Tracked from 도아의 세상사는 이야기 2012/08/28 08:34 del.

    [desc]나스 장비를 루팅하는 이유|꽤 오래 전에 버팔로 나스를 리뷰했었다. 케이스 가격은 10만원대 이기 때문에 네트워크 저장 매체로는 상당히 저렴한 편이다. 또 가격은 저렴하지만 있을 만한

Facebook

Comments

  1. 데보라 2010/07/24 19:41

    도아님 오랜만에 뵙네요. 그간 잘 지내셨는지요.
    설명을 잘 해놓으셨네요. 그런데, 뭔지 모르겠어요. 제가 컴맹이라서요. 참 트위터 파로우 같이 해주셨음 좋겠어요. 트위터 아이디는 @cupidus 입니다.

    perm. |  mod/del. reply.
    • 도아 2010/07/26 10:20

      예. 오랜만입니다. 트위터는 어제 팔로했습니다.

  2. HDS-GTR 2010/07/25 19:22

    신기하네요 ㅎㅎ
    NAS도 미니컴퓨터다 보니 저런 루트로그인도 되는군요..

    perm. |  mod/del. reply.
    • 도아 2010/07/26 10:21

      예. 리눅스가 기본 운영체제라 편법을 쓰면 가능합니다.

  3. 雨Beer 2010/07/26 13:50

    언제나~ 좋은 정보 감사합니다.
    그런데 이 버팔로 NAS의 다음 리뷰도 기대 됩니다. ^^... 그 리뷰보게 되면 지름신이 또 내려오는건 아닐런지 ㅠㅠ

    perm. |  mod/del. reply.
    • 도아 2010/07/26 15:19

      감사합니다. 원래는 오늘 올리려고 했는데 다른 리뷰 때문에 오늘은 힘들 것 같군요.

  4. hermian 2010/08/10 16:25

    NAS 리뷰는 이제 안올라 오는 가요?
    에어비디오 꼭 알고 싶은데요 ^^;;

    perm. |  mod/del. reply.
    • 도아 2010/08/11 07:23

      나스 리뷰는 기간을 정하고 쓰는 글이 아닙니다. 틈나는 대로 올리는 글입니다.

  5. 소나무향 2010/08/12 15:13

    감사합니다....그렇게 어려웠던 문제가 님 게시글보고 해결되었습니다.
    잘 사용하겠습니다.

    perm. |  mod/del. reply.
  6. Ashley Han 2011/09/17 03:19

    좋은 정보 감사합니다.
    Air video 설치 방법은 언제 기재가 되는지요? 기대가 됩니다.

    perm. |  mod/del. reply.
  7. 지나가는 나그네 2011/12/29 23:54

    웹 엑세스에서 검색봇을 차단하려면 어떻게 해야 하나요?
    robot.txt를 어디에 위치시켜야 할지..

    perm. |  mod/del. reply.

(옵션: 없으면 생략)

글을 올릴 때 [b], [i], [url], [img]와 같은 BBCode를 사용할 수 있습니다.