ffp 0.5에 있는 dropbear 서버를 이용하면 참 좋겠는데, 아쉬운점 하나가 한글 문제이다. dropbear 서버로 접속을 하면 터미널에서 한글을 입력할 수 없다. 어쩔 수 없이 debian 시스템으로 chroot 하여 open sshd 서버를 실행하는 방법을 썼다.
arm-debian을 사용하기 위해서 기본적인 파일 시스템이 만들어져 있다. etch.tar 파일을 다운로드 한 뒤, DNS-323 장비에 복사, 적당한 곳에 풀어준다. 여기서는 ffp는 /mnt/HD_b4/ffp에, etch는 /mnt/HD_a4/에 있다고 가정하겠다.
- # cd /mnt/HD_a4
- # tar xvf /mnt/HD_a2/etch.tar
- # mv etch/* .
다음으로 chroot를 하기 위해서 bind mount를 한다. 없는 디렉토리는 만들어준다. 초기 설정을 위해서만 수동으로 마운트를 하고, 이 후 /ffp/start/sshd.sh을 이용해서 자동으로 sshd가 실행되도록 할 것이다.
- # mkdir /mnt/HD_a4/mnt/HD_a2
- # mount --bind /mnt/HD_a2 /mnt/HD_a4/mnt/HD_a2
- # mount --bind /dev /mnt/HD_a4/dev
- # mount --bind /proc /mnt/HD_a4/proc
- # cd /mnt/HD_a4
- # chroot .
- sh-3.1#
chroot 후 프롬프트가 제대로 나왔다면 성공이다. 이제 필요한 파일들을 설치한다. open ssh 서버가 자동으로 실행이 되었다면 일단 종료시킨다.
- sh-3.1# apt-get install telnet ssh locales
- ...
- sh-3.1# /etc/init.t/ssh stop
한글을 제대로 사용하기 위해서, 먼저 언어 설정을 한다. 다음의 커맨드를 입력하면 locale을 선택할 수 있는 창이 뜨는데, ko_KR.UTF-8과 en_US.ISO8859-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라는 계정이 존재하므로 다음과 같이 계정을 생성했다.
- sh-3.1# passwd "new-password"
- sh-3.1# addgroup "group"
- 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에는 실행 권한을 준다. 일단 테스트를 위해 다음과 같이 실행을 해 본다.
- # /ffp/start/sshd.sh start
ps 명령으로 확인해봤을 때 sshd가 실행되었다면 서버가 정상적으로 동작하고 있는 것이다. 테스트를 위해 telnet에서 빠져나온 뒤, ssh로 접속해본다.
- $ ssh dns
ssh로 연결이 된다면 성공이다. 이제 DNS-323장비는 스토리지 서버 뿐만 아니라 sshd가 실행되어 있는 하나의 컴퓨터로서의 역할을 할 수 있게 되었다.
외부 네트워크로 텔넷 포트를 열어두는 것은 위험하다. 접속해봐서 알겠지만 아무런 입력 없이 루트 권한을 얻을 수 있기 때문이다. 따라서 외부에서는 ssh로만 접속을 한다. (22번 포트만 포워딩한다.) ffp를 건들기 위해 telnet을 써야 한다면 ssh로 접속한 뒤 telnet으로 다시 접속하면 chroot 하기 전의 root에 접근할 수 있다.
- $ telnet으로 접속 / -> /
- $ ssh로 접속 / -> /mnt/HD_a4/
그리고 주의해야 할 것은 sshd가 실행중에 재부팅을 하게 되면 안된다. 반드시 sshd를 종료시킨 뒤, 재부팅이 이루어져야 파일 시스템에 무리가 없다. cleanboot의 reboot을 사용하면 편하다.
ssh는 보안 터미널이라는 이점 외에 멋진 기능이 하나 더 있으니 바로 터널링이다. 집 밖에 있으면서도 보안터널을 만들어 내부에서 사용하는 것처럼 할 수 있으니... 이는 다음에 자세하게 다루어보겠다.
덧. 네트웍이 잘 안되는 분들은 코멘트 보시면 도움이 될것같습니다. 간단하게는 아래 내용입니다.
# apt-get update
# apt-get upgrade
그리고 /etc/resolve.conf 파일 확인