포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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 hexdump 함수 - binary를 16진수로 표시 고도리 2017-07-10 184
107 [HowTo] RTEMS toolchain for v4.11 file 고도리 2014-05-20 1451
106 yuv viewer & test yuv file file 고도리 2013-02-20 3152
105 android platform tools for windows file 고도리 2013-01-28 3263
104 lksctp(libsctp) android ICS 4.0.4 just compile on origen-4412 ... file [1] 고도리 2012-08-25 3658
103 Embedded Linux용 Root Filesystem(rootfs) with crosstoolchain file [5] 고도리 2012-08-23 3832
102 Nexus-S gingerbread kernel sound(alsa) driver 간단 구조 file [1] 고도리 2012-07-23 3989
101 Audio in embedded linux - ALSA file [1] 고도리 2012-07-23 4011
100 uBuntu12.04 ARNDALE build 확인 된 가상 머신 이미지 [3] chlrbgh0 2012-12-14 4028
99 Exynos4412 Public Manual [1] 고도리 2012-10-26 4206
98 linaro toolchain gcc-linaro-arm-linux-gnueabihf-2012.07-20120720 file 고도리 2012-12-28 4299
97 u-boot의 이해 file 고도리 2012-07-22 4324
96 [u-boot] u-boot new command 추가하기 - example file 고도리 2011-09-26 4650
95 Exynos5250 public user manual [4] 관리자 2012-10-27 4827
94 ramdisk/initrd howto file 고도리 2012-03-26 4916
93 [임베디드리눅스] 아델리눅스(adelinux) Embedded Linux Programmin... file [3] 고도리 2012-04-12 4973
92 Origen cameraboard schematic file 관리자 2012-01-13 5153
91 Origen LCD board schematic file 관리자 2012-01-13 5168
90 Origen board resource file 관리자 2012-02-29 5205
89 [X-windows] Root filesystem with GPE for Cortex-A8/A9 file [1] 고도리 2012-01-17 5289

사용자 로그인