포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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 51326
» 타겟 보드 아무데서나 접속하기 [3] 박병구 2007-10-18 10535
106 dm9000a/b u-boot용 device driver file [1] 고현철 2007-10-23 8587
105 gcc-4.x.x arm9 arm11(?) cross-toolchain make howto file [3] 고현철 2007-11-30 11293
104 yaffs2 patch log file 고현철 2007-12-13 7594
103 Ralink rt2571 USB wlan howto file [1] 고현철 2007-12-20 7761
102 [linuxbios] Intel Architecture Protect Mode자료-1 file 고도리 2008-01-03 7613
101 [linuxbios] Intel Architecture Protect Mode자료-2 file 고도리 2008-01-03 7505
100 euckr check & convert to utf-8 file [2] 고현철 2008-01-07 7761
99 Slackware 11.0 설치문서에 나와 있는 iso file [1] 고현철 2008-01-12 7584
98 samsung SMC SSFDC관련자료 file [1] 고현철 2008-01-17 7515
97 scratchbox2 사용기.. file [3] 이상철 2008-01-25 12479
96 udev-106 howto file [1] 고도리 2008-01-25 7586
95 VMware Tools 설치 (slackware11.0) [2] 박세웅 2008-01-29 7923
94 Busy box내의 tftp 사용법 박세웅 2008-02-16 13217
93 [자료] huins pro1/3 보드에 포팅된 ucos-2 source(gcc) file [1] 고도리 2008-03-07 7679
92 [예제] Makefile example file [4] 고현철 2008-03-08 7675
91 리눅스 커널 디바이스 드라이버 모델에 관한 문서. file [3] 유형목 2008-03-12 7640
90 telnetd howto 고현철 2008-04-20 7690
89 최신 리눅스 버전에서 Bootp 프로토콜 사용하기 김재훈 2008-04-26 7743

사용자 로그인