포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 1GB 입니다.

아훔 드디어 타겟 보드 혹은 설치된 장비를 아무데서나 접속하기 위한 방안이 생겼습니다.

음 그런데 막상 올리려고 내용을 써보긴 했는데
제목에 어울리는 보드가 없기에 자유 게시판에다 씁니다 ㅎ.ㅎ;

얼마전까지 타겟에다가 sshd를 올리려 했지만 현재 제 환경에서는 접속을 위한 중계 서버까지 보안상 위협이 없는 상황이기 때문에 telnetd 로 대처하였습니다.

1. 준비 상황
a. 타겟 보드는 어디에 있든지 인터넷을 쓸 수 있는 상황이어야 한다.
b. 중계로 이용한 리눅스 서버는 22번 sshd가 운영중이어야 한다.

2. 서버 설정
sshd_config 파일을 열어 다음과 같은 라인을 추가 한다.
GatewayPorts yes

3. 타겟에서 서버에 접속하기
ssh -N -f -R 15000:localhost:23 [email protected]

위 내용을 살펴 보면 aesop-embedded.com의 15000 포트를 내 시스템의 23번 포트로 시큐어 터널을 연다.

그럼 telnet을 이용하여 접속하면 aesop-embedded.com 까지는 텔넷으로 접속되고 aesop-embedded에서 타겟까지는 ssh로 데이터가 전달된다.

결국 telnet aesop-embedded.com 15000 은 타겟의 텔넷 서버로 연결해준다.


자 그럼 해야 할 일은 무엇인가?

타켓에 ssh 클라이언트를 포팅해야 한다.

ssh 클라이언트를 포팅하기 위해 필요한 것은 다음과 같다.
openssl, openssl-arm patch, openssh


1. openssl 컴파일

a. openssl 설정

CC=arm-linux-gcc
CFLAGS="-DOPENSSL_NO_KRB5
-DOPENSSL_NO_IDEA
-DOPENSSL_NO_MDC2
-DOPENSSL_NO_RC5 "
./Configure linux-arm
    --prefix=/usr/local/arm/3.4/arm-linux
    --target=arm-linux
    --host=i686-linux
    --openssldir=/lib/ssh no-threads shared no-idea no-mdc2 no-rc5

* prefix는 크로스 컴파일된 라이브러리 및 헤더가 설치될 경로이다.

b. 컴파일

make;

2. openssh 컴파일

a. openssh 설정
LDFLAGS=-L/usr/local/arm/3.4/lib ./configure --host=arm-linux --with-zlib=/usr/local/arm/3.4/lib --prefix=/mnt/nfs/openssh-4.6p1

b. 컴파일

make;


3. 설치
openssh를 컴파일 하면 ssh 이외에도 다양한 바이너리를 얻을 수 있다. 설치환경을 작업하다가 도저히 귀차나서 포기 하고 ssh 만 사용하고 있다 ㅎ.ㅎ;;

ssh 바이너리와 필요한 라이브러리는 다음과 같다.
        libresolv.so.2 => /lib/libresolv.so.2 (0x40001000)
        libcrypto.so.0.9.7 => /lib/libcrypto.so.0.9.7 (0x4001a000)
        libutil.so.1 => /lib/libutil.so.1 (0x40116000)
        libz.so.1 => /usr/lib/libz.so.1 (0x40121000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40138000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40154000)
        libc.so.6 => /lib/libc.so.6 (0x40188000)
        libdl.so.2 => /lib/libdl.so.2 (0x402ad000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x402b7000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)

libcrypto.so.0.9.7 은 openssl을 컴파일하여 생산된 라이브러리이다.
나머지는 보통 웬만한 크로스 컴파일러와 램디스크에 있을 것으로 생각되니 패스한다.


여기 까지 되어 있다면 나머지 추가 작업은 필요에 따라 할 수 있다.

가령 보드 부팅 후 자동으로 ssh 클라이언트를 이용하여 자동으로 터널을 생산하는 것과
각 보드 마다 포트 예약 번호를 달리 하여 모든 장비를 언제든지 붙을 수 있는 방법과
포트 번호를 관리 하기 위한 독특한 네임 서버를 제작할 수도 있을 것이며
내가 실패한 sshd 설정까지 가미하여 보다 안전한 네트워크를 구축할 수도 있을 것이다.


* 고도리님에 의해서 게시물 이동되었습니다 (2007-10-17 18:10)

고현철

2007.10.18 01:59:19
*.70.26.87

이건 pds로 가는게 훨 날 듯 한뎅....^^

박병구

2007.10.18 02:01:52
*.130.28.2

아 pds로 가야 할려나 ㅇ.ㅇ; pds로 갈려면 ssh랑 라이브러리를 각 보드에 맞게 컴파일 해서 올려 드려야 하는건 아닌지 ㅎ.ㅎ;

고도리

2007.10.18 03:10:22
*.70.26.87

pds로 와야할 듯 해서 옮겨놓았습니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
108 linux kernel API [1] 고현철 2007-10-18 51066
107 ffmpeg 사용법 example 고도리 2013-02-20 45202
106 HP Diagnostics - USB 드라이버가 인식 안될 때 사용 file 김재훈 2009-03-30 15433
105 안드로이드용 구글 공식 한글 키보드 file [2] 이제현 2010-11-23 15078
104 I2C spec입니다. file [3] 이훈기 2009-04-07 14042
103 Busy box내의 tftp 사용법 박세웅 2008-02-16 13217
102 TI - C6713 DSP용 Flash Write 및 Booting 방법에 대한 메뉴얼 file 김재훈 2009-04-27 12966
101 tslib compile howto 고도리 2009-06-22 12845
100 scratchbox2 사용기.. file [3] 이상철 2008-01-25 12479
99 삼성 S3C2410 Datasheet [한글판] file 김재훈 2008-07-14 12457
98 [정보] 안드로이드 소스코드 빌드해보기 [2] 유형목 2008-10-26 11939
97 리눅스용 DNW 프로그램을 고쳤습니다. file [6] 유형목 2010-08-14 11686
96 tslib 포팅 - 안드로이드에서 사용하기 위한.... file [9] 정낙주 2010-07-27 11614
95 Platform Builder 6.0 업데이트 패키지 (2008 Rollup) file 김재훈 2009-03-27 11587
94 OpenRISC Processor 개발 킷 (VMWARE Image) file 김재훈 2009-09-07 11416
93 gcc-4.x.x arm9 arm11(?) cross-toolchain make howto file [3] 고현철 2007-11-30 11293
92 TI - C67xx DSP용 EMIF Interface User Guide file 김재훈 2009-04-27 10954
91 aesop2440 linux device driver tutorial using linux kernel d... file 고현철 2009-09-08 10936
90 Visual Studio 2005 와 IE8 사용시 프로젝트 생성 오류 패치 file 김재훈 2009-05-29 10853
» 타겟 보드 아무데서나 접속하기 [3] 박병구 2007-10-18 10535

사용자 로그인