inetd 를 이용해 tcp 프로토콜을 사용하는 서버프로그램을 서비스로 등록하고자 한다면 반드시 tcpd 가 필요 합니다.

그런데 busybox 에 tcpd 가 포함 되어 있지 않습니다.

그래서 tcpd 를 따로 빌드해 램디스크에 포함 시키는 작업이 필요하며 그 과정을 정리하고, 간단한 서버,클라이언트 프로그램을

실제 동작 시켜보겠습니다.


1. tcpd 소스다운받기.

tcpd 는 tcp-wrappers 에 포함되어 있으며, 결국 tcp-wrappers 를 빌드 해야 합니다.

tcp-wrappers_7.6.tar.gz 다운받기 1

tcp-wrappers_7.6.tar.gz 다운받기 1


위 링크에서 tcp_wrappers_7.6.tar.gz 을 다운받고, 적당한 위치에 압축을 풀어 줍니다.

 ]#tar -zxvf tcp_wrappers_7.6.tar.gz


2. 패치 

그다음 패치를 해주어야 합니다.

패치 는 아래  첨부된 xx.patch 파일 과 patch.sh 을 다운받으시고, 좀전에 받아 압축을 풀어놓은 폴더 안에서 patch.sh 을 

실행 해 주면 됩니다. 이때 xx.patch 파일은 당연해 tcp-wrappers_7.6 폴더 밖에 있어야 합니다.

]#cd tcp-wrappers_7.6

]#./patch.sh 


3. make 파일 수정

arm 용으로 빌드 해야 하므로 make 파일의 일부분을 수정 해 주어야 합니다.

]#vi Makefile 

수정 부분

line 387 부근

 수정전-----------------------------------------

RANLIB = ranlib # have ranlib (BSD-ish UNIX)

#RANLIB = echo # no ranlib (SYSV-ish UNIX)

ARFLAGS = rv # most systems

#ARFLAGS= rvs # IRIX 4.0.x

AR = ar

#AR = bld # Unicos 8.x


 수정후--------------------------------------------

RANLIB = arm-generic-linux-gnueabi-ranlib # have ranlib (BSD-ish UNIX)

AR = arm-generic-linux-gnueabi-ar


 line 676 부근

CC = arm-generic-linux-gnueabi-gcc


 line 155 

LIBS=$(MYLIB) RANLIB=arm-generic-linux-gnueabi-ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \


4. make 하기

tcp-wrappers_7.6 은 리눅스 외에도 유닉스 솔라리스 용으로도 빌드가 되며, 우리는 리눅스 용으로 컴파일 합니다.

 ]#make linux


정상적으로 컴파일이 되면 폴더내에 tcpd 가 생성이 됩니다.

또한 shared 폴더에 보시면 libwrap.so , libwrap.so.0 , libwrap.so.0.7.6 라이브러리가 생성이 됩니다.

이 라이브러리와 tcpd 를 사용 하면 됩니다.

다음주 에는 램디스크에 넣고 inetd 를 이용해 서버프로그램을 등록해 보겠습니다.