DNS-323 debian사용 및 open sshd 서버 설치
최광용 Lv. 15 llllllllll 
19463 hit since 2008/03/25 15:48

ffp 0.5에 있는 dropbear 서버를 이용하면 참 좋겠는데, 아쉬운점 하나가 한글 문제이다. dropbear 서버로 접속을 하면 터미널에서 한글을 입력할 수 없다. 어쩔 수 없이 debian 시스템으로 chroot 하여 open sshd 서버를 실행하는 방법을 썼다.

arm-debian을 사용하기 위해서 기본적인 파일 시스템이 만들어져 있다. etch.tar 파일을 다운로드 한 뒤, DNS-323 장비에 복사, 적당한 곳에 풀어준다. 여기서는 ffp는 /mnt/HD_b4/ffp에, etch는 /mnt/HD_a4/에 있다고 가정하겠다.

  1. # cd /mnt/HD_a4
  2. # tar xvf /mnt/HD_a2/etch.tar
  3. # mv etch/* .

다음으로 chroot를 하기 위해서 bind mount를 한다. 없는 디렉토리는 만들어준다. 초기 설정을 위해서만 수동으로 마운트를 하고, 이 후 /ffp/start/sshd.sh을 이용해서 자동으로 sshd가 실행되도록 할 것이다.

  1. # mkdir /mnt/HD_a4/mnt/HD_a2
  2. # mount --bind /mnt/HD_a2 /mnt/HD_a4/mnt/HD_a2
  3. # mount --bind /dev /mnt/HD_a4/dev
  4. # mount --bind /proc /mnt/HD_a4/proc
  5. # cd /mnt/HD_a4
  6. # chroot .
  7. sh-3.1#

chroot 후 프롬프트가 제대로 나왔다면 성공이다. 이제 필요한 파일들을 설치한다. open ssh 서버가 자동으로 실행이 되었다면 일단 종료시킨다.

  1. sh-3.1# apt-get install telnet ssh locales
  2. ...
  3. sh-3.1# /etc/init.t/ssh stop

한글을 제대로 사용하기 위해서, 먼저 언어 설정을 한다. 다음의 커맨드를 입력하면 locale을 선택할 수 있는 창이 뜨는데, ko_KR.UTF-8과 en_US.ISO8859-1을 선택한다. 디폴트는 한글을 선택한다.

  1. sh-3.1# dpkg-reconfigure locales
    Generating locales (this might take a while)...
      en_US.ISO-8859-1... done
      ko_KR.UTF-8... done
    Generation complete.

이제 계정 정보를 맞춘다. root 패스워드를 설정해주고, samba를 위해 등록해 둔 일반 유저 계정을 만든다. 나의 경우 cky:user라는 계정이 존재하므로 다음과 같이 계정을 생성했다.

  1. sh-3.1# passwd "new-password"
  2. sh-3.1# addgroup "group"
  3. sh-3.1# adduser "user" -G "group"

그리고 user 번호와 group번호를 맞춰서 권한 문제가 발생하지 않도록 해준다. /etc/passwd, /etc/group을 보면 user 번호와 group번호를 알 수 있다. chroot를 실행한 상태에서의 /etc/passwd, /etc/group에서도 같은 번호가 되도록 수정해주면 된다. 숫자만 수정하면 된다.

Ctrl + D를 눌러 chroot에서 빠져나온 후, 첨부된 sshd.sh 파일을 /ffp/start 디렉토리에, linuxrc 파일을 /mnt/HD_a4 디렉토리에 복사한다. 그리고 sshd.sh에는 실행 권한을 준다. 일단 테스트를 위해 다음과 같이 실행을 해 본다.

  1. # /ffp/start/sshd.sh start

ps 명령으로 확인해봤을 때 sshd가 실행되었다면 서버가 정상적으로 동작하고 있는 것이다. 테스트를 위해 telnet에서 빠져나온 뒤, ssh로 접속해본다.

  1. $ ssh dns

ssh로 연결이 된다면 성공이다. 이제 DNS-323장비는 스토리지 서버 뿐만 아니라 sshd가 실행되어 있는 하나의 컴퓨터로서의 역할을 할 수 있게 되었다.

외부 네트워크로 텔넷 포트를 열어두는 것은 위험하다. 접속해봐서 알겠지만 아무런 입력 없이 루트 권한을 얻을 수 있기 때문이다. 따라서 외부에서는 ssh로만 접속을 한다. (22번 포트만 포워딩한다.) ffp를 건들기 위해 telnet을 써야 한다면 ssh로 접속한 뒤 telnet으로 다시 접속하면 chroot 하기 전의 root에 접근할 수 있다.

  1. $ telnet으로 접속 / -> /
  2. $ ssh로 접속 / -> /mnt/HD_a4/

그리고 주의해야 할 것은 sshd가 실행중에 재부팅을 하게 되면 안된다. 반드시 sshd를 종료시킨 뒤, 재부팅이 이루어져야 파일 시스템에 무리가 없다. cleanboot의 reboot을 사용하면 편하다.

ssh는 보안 터미널이라는 이점 외에 멋진 기능이 하나 더 있으니 바로 터널링이다. 집 밖에 있으면서도 보안터널을 만들어 내부에서 사용하는 것처럼 할 수 있으니... 이는 다음에 자세하게 다루어보겠다.

덧. 네트웍이 잘 안되는 분들은 코멘트 보시면 도움이 될것같습니다. 간단하게는 아래 내용입니다.

# apt-get update

# apt-get upgrade

그리고 /etc/resolve.conf 파일 확인