uClinux에 Dropbear를 올렸는데 외부에서 타켓에 접속하면 connection refuesed
<환경> 1. 호스트 : 페도라 11 2. 타겟 : uClinux-2.4.x 3. 컴파일러 : arm-elf-gcc 4. dropbear-0.52 5. zlib-1.2.3 6. Make 파일 아래와 같음
srcdir=. prefix=/home/proj/tango/linux/dropbear exec_prefix=${prefix} bindir=${exec_prefix}/bin sbindir=${exec_prefix}/sbin CC=arm-elf-gcc -Wl, -elf2flt AR=arm-elf-ar RANLIB=arm-elf-ranlib STRIP=arm-elf-strip INSTALL=install CPPFLAGS= -I./uclibc-include -I./zlib-h CFLAGS=-I. -I$(srcdir) -I$(srcdir)/libtomcrypt/src/iheaders/ $(CPPFLAGS) -Os -W -Wall #CFLAGS+= -D__PIC__ -fpic -msingle-pic-base LIBS=$(LTC) $(LTM) -lutil -lz -lcrypt LDFLAGS=-L/home/proj/tango/linux/zlib/lib -L./uclibc-lib
7. config.h 에서 아래 모두 삭제해 주고
#define HAVE_DAMON 1 #define HAVE_UTMPX_H 1 #define HAVE_UTMP_H 1
8. fork() --> vfork()로 바꿔주고 나서
9. ./configure
10. make
11. make install
하면 아래의 바이너리 파일들이 만들어집니다.
dbclient dropbearkey dropbearconvert dropbear
아래 화면은 위의 바이너리들을 타겟에 올린후 key를 생성하고 dbclient와 dropbear를 실행했을때 화면입니다.
/var> ls -al drwxr-xr-x 1 0 0 0 Jan 1 00:00 . drwxr-xr-x 1 515 0 192 Jan 1 00:00 .. -rwxrwxrwx 1 0 0 212456 Jan 1 00:07 dbclient -rwxrwxrwx 1 0 0 237824 Jan 1 00:00 dropbear -rwxrwxrwx 1 0 0 458 Jan 1 00:02 dropbear_dss_host_key -rwxrwxrwx 1 0 0 426 Jan 1 00:01 dropbear_rsa_host_key -rwxrwxrwx 1 0 0 92480 Jan 1 00:01 dropbearconvert -rwxrwxrwx 1 0 0 95416 Jan 1 00:00 dropbearkey drwxrwxrwx 1 0 0 0 Jan 1 00:00 etc drwxrwxrwx 1 0 0 0 Jan 1 00:00 ifstat drwxrwxrwx 1 0 0 0 Jan 1 00:00 lock drwxrwxrwx 1 0 0 0 Jan 1 00:00 log drwxrwxrwx 1 0 0 0 Jan 1 00:00 run drwxrwxrwx 1 0 0 0 Jan 1 00:00 tmp /var> ./dbclient & ./dbclient: exited: Unknown own user /var> ./dropbear /var> ps -ef PID TTY Uid Size State Command 1 0 0 S init 2 0 0 S [keventd] 3 0 0 S [ksoftirqd_CPU0] 4 0 0 S [kswapd] 5 0 0 S [bdflush] 6 0 0 S [kupdated] 49 0 0 S [sdfe-0] 51 0 0 S [sfpcheck] 58 0 0 S [efmoam] 66 0 0 S /bin/boa 67 0 0 S /bin/snmpd 68 0 0 S /bin/logd 69 0 0 S /bin/inetd 70 0 0 S /bin/nexoamd 71 0 0 S /bin/ifgd 208 ttyS0 0 0 S /bin/ncli 209 0 0 S /bin/telnetd 210 ttyp0 0 0 S /bin/sh 214 ttyp0 0 0 R ps -ef
<문제점> 1. dbclient를 실행시키면 사용방법이 나와야 합니다. 그런데 위에서는 알 수 없는 에러가 나옵니다. 에러가 무슨 말인지 모르겠습니다.
2. dropbearkey, dropbearconvert등은 실행시켜보니 정상동작합니다. 특히 dropbearkey를 이용해서
dropbear_rsa_host_key, dropbear_dss_host_key를 만들어 내었습니다.
3. dropbear를 실행시키면 아무 에러없이 실행되나 ps -ef로 실행프로시져들을 보면 나와있지 않습니다.
그리고 외부에서 SSH를 이용하여 위의 보드에 접속하면 아래와 같은 에러가 나옵니다.
[root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused [root@localhost dropbear-0.52]# ssh 172.16.0.33 ssh: connect to host 172.16.0.33 port 22: Connection refused
파일이 잘 못 만들어진건지...
일단 dbclient 에서 에러가 나는 걸로 보아 뭔가 잘 못 된 듯 한데
에러를 보고는 어떻게 해야 할 지 모르겠습니다.
dropbear를 사용해 보신 분들의 도움을 요청합니다.
타겟에 ssh로 접속은 하는데 password 가 자꾸 denied되네요
<위의 문제 해결> 1. 타겟에 다운받은 파일들의 소유권을 root로 변경
2. /etc에 dropbear 디렉토리를 만들고 거기에 key를 생성합니다.
이렇게 하면 dropbear가 실행되는데요...
HOST에서 접속하려고 하면 ROOT 암호를 쳐주는데도 denied 되네요..
이건 또 무슨 일인지..ㅠㅠ
P.S dropbear가 root가 패스워드 없이 접속하는 것을 막았다고 하더라구요.
그렇지만 지금은 root 패스워드가 있는 상황이거든요..
uClinux라서 패스워드 바꾸려고 해도 passwd 하면 실행할 수 있는 포맷이 아니라고 나오고
vi 자체가 없네요...
패스워드 문제는 아닌 것 같은데
다른 설정해줘야 하거나 하는 게 있나요?
댓글 달기