- inetd, telnetd, tcpd, ftpd howto
- by godori(http://www.aesop-embedded.org)
telnetd는 busybox랑 openbsd 두가지 다 해본것 같은데
기억으로는 둘 다 되었던 것 같고, 주로 쓰는 것은 openbsd의 telnetd
인 듯 함....^^
1. tcpd 설치
일단 그냥 telnetd로는 성공하기 힘들고, tcpd를 이용을 해야하는데
자료실에 보시면 nfs client howto쪽 문서와 자료를 올려 놓았습니다.
거기 보면 tcp_wrapper가 있는데, 그걸 컴파일 하면 tcpd가 설치됩니다.
2. telnetd 설치(busybox가 아닌 것으로 설치)
- netkit-telnet-0.17.tar.gz
native
※ telnet client는 openbsd의 것을 사용한다. 여기서는 telnetd만 사용한다.
tar xzvf netkit-telnet-0.17.tar.gz
cd netkit-telnet-0.17
chown -R root.root .
zcat netkit-telnet-0.17.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit
zcat netkit-telnet-0.17-ayt.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit
./configure --prefix=/usr
cd telnetd
make
strip telnetd
cp -a telnetd /usr/sbin/in.telnetd
3. inetd설치
aesop board의 경우
커널에서 pty를 띄워준다.
device drivers -> character devices
Linux Kernel v2.6.13-h1940-aesop2440 Configuration
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
lqqqqqqqqqqqqqqqqqqqqqqqqqqqq Character devices qqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Arrow keys navigate the menu. <Enter> selects submenus --->. x
x Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, x
x <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> x
x for Search. Legend: [*] built-in [ ] excluded <M> module < > module x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] Non-standard serial port support x x
x x Serial drivers ---> x x
x x [*] Legacy (BSD) PTY support x x
x x (16) Maximum number of legacy PTY in use x x
x x IPMI ---> x x
x x Watchdog Cards ---> x x
x x < > /dev/nvram support x x
x x < > Enhanced Real Time Clock Support x x
x x [*] S3C2410 RTC Driver x x
x x < > Double Talk PC internal speech card support x x
x x < > Siemens R3964 line discipline x x
x x Ftape, the floppy tape device driver ---> x x
x x < > RAW driver (/dev/raw/rawN) (OBSOLETE) x x
x x TPM devices ---> x x
x x x x
x x x x
x x x x
x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x <Select> < Exit > < Help > x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
/usr/sbin/에
inetd, telnetd, tcpd 세개가 있어야 하고,
(
※※※※※※※반드시 inetd, telnetd를 지운후에 복사를 해야한다. 안 그러면 난리난다. 왜냐하면
busybox가 overwrite되어버리기 때문이다. softlink이기 때문에 실제로 inetd를 overwrite하면
inetd가 overwrite되는게 아니라 busybox가 overwrite되는 것이다
※※※※※※※※
)
/etc/inetd.conf와 /etc/rc.d/rc.inetd가 있어야 한다.(이것은 모두 aesop rootfs를 참조할 것)
inetd.conf의 내용은 다음과 같이 되어 잇어야 한다.
telnet stream tcp nowait root /usr/sbin/tcpd telnetd
pts를 mount해줘야 한다.
vi /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/root / ext2 defaults 0 0
#/dev/root / auto defaults,errors=remount-ro 0 0
#/dev/mtdblock2 /etc jffs2 defaults 0 0
#/dev/mtdblock3 /pang jffs2 defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
이렇게 /dev/pts에 devpts를 마운트 시켜줘야 한다.
4. 주의할 점
==> devpts의 경우 2.6은 노드들을 안만들어줘도 되는 것 같지만, 2.4에서는 직접 만들어
줘야했던 것으로 기억이 됩니다.
aesop용 dist rootfs를 보면 etc.2420의 rc.d/rc.local과 devpts 디렉토리를 보시면 알 수 있을겁니다.
5. 개인적으로 사용하는 inetd.conf
아주 간단하게 두 줄만 놓고 사용합니다.
ftp stream tcp nowait root /usr/sbin/ftpd ftpd
telnet stream tcp nowait root /usr/sbin/tcpd telnetd