博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

CalmArrow

【打好基础】全力以赴,顺其自然【每天进步一点点】
  piaoxiang.cublog.cn

关于作者
姓名:CalmArrow(lqm)
职业:硕士在读
位置:山东济南
研究:嵌入式系统设计
联系:calmarrow@gmail.com

信仰:
    1、永远保持积极向上(积极的心态,积极的思考,积极的行动),享受生活给予的一切!
    2、做正确的事,正确的做事;用心去做,做到最好!
    3、如果你觉得不幸福,那么请你把幸福的门槛降低一些,不要把幸福拒之门外。。。

目标:
    软硬结合,打好基础,提高学习能力,完善知识体系,建立核心优势。

方法:
    理论与实践相结合
    深度与广度相结合
    理解与记忆相结合

说明:
    本Blog仅供学习之用,转载文章如涉及版权,请通知。原创作品如转载,请注明出处。
|| << >> ||
我的分类


Super server系列1: inetd和xinetd
    使用busybox自带的inetd来启动自带的telnetd,总是无法成功。但是telnetd单独启动,倒是没有问题。这里肯定存在一个配置的问题,或者说busybox的telnetd是否支持独立启动和inetd启动。这里想通过移植独立的super server来探讨这个问题。
 
    需要移植inetd,xinetd,telnetd,这几个都是和《构建嵌入式Linux系统》的完全一致,放在这里只是方便查阅。
 
(1)inetd的移植
 
解压后,首先把configure文件中的./__conftest || exit 1;删除。然后:
 
CC=arm-linux-gcc ./configure --prefix=yourprefix
make
 
完成后strip一下inetd,复制到rootfs的/usr/sbin下。它的配置文件放到/etc/inetd.conf。具体格式可以参考etc.example.
 
在inittab中的设定如下:
 
::respawn:/usr/sbin/inetd -i
 
不过我还是认为不用-i参数的好,万一你的inetd出现问题,那么就会打印满屏幕的错误提示。这是需要避免的。
 
(2)xinetd的移植
 
下载地址:http://www.xinetd.org,不过我的是从BLFS项目列表中下载的。
解压之后,执行:
 
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=yourprefix
make
 
同样不用安装,需要strip一下xinetd,然后拷贝到rootfs的/usr/sbin下。关于配置文件,可以把redhat的拷贝过来。
 
inittab设为 ::once:/usr/sbin/xinetd
 
(3)telnetd移植
 
解压后,首先把configure文件中的./__conftest || exit 1;删除。然后:
 
CC=arm-linux-gcc ./configure --prefix=yourprefix
这里有一个编译的技巧,就是touch一个空的头文件termcap.h,当然是在你的yourprefix下include文件夹下建立。虽然源码包含该头文件,但是不需要链接termcap库。
make -C telnetd
 
同样拷贝到/usr/sbin
 
测试:
 
(1)telnetd独立启动
 
    发现没有出那公共。可见该套件中的telnetd只能由inetd或者xinetd来启动了。
 
(2)telnetd由inetd启动
 

[root@listentec ~]#cat /etc/inetd.conf
telnet stream tcp nowait root /usr/sbin/telnetd

 
    测试没有问题。
 
(3)telnetd由xinetd启动
 

[root@listentec ~]#cat /etc/xinetd.d/telnet
# xinetd: telnetd CONFIG

service telnet
{
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/telnetd
#       bind = 192.168.1.100
        log_on_failure += USERID
}

 
    注意的是,可以利用bind命令绑定到固定的ip上,也可以实现重定向。
 
(4)busybox自带telnetd由inetd或者xinetd启动,还是无法成功。可见,如果使用busybox的telnetd,就要独立启动;如果使用该篇移植的telnetd,就要使用inetd或者xinetd启动。
 
附:vsftpd既支持独立启动,也支持xinetd启动。不过需要注意的是,/etc/vsftpd.conf中,如果独立启动,则把listen设为YES;如果由xinetd启动,则设置listen为NO。
 

[root@listentec ~]#cat /etc/xinetd.d/vsftpd
# xinetd: vsftpd CONFIG

service ftp
{
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/vsftpd
        port = 21
        instances = 4
        log_on_success += DURATION USERID
        log_on_failure += USERID
#      access_times = 2:00-8:59 12:00-23:59  //设定访问时间
#      nice = 10
}

 
    当然还可以增加更多的配置到vsftpd。

回目录 嵌入式系统设计专题: 网络服务功能

发表于: 2008-03-26,修改于: 2008-03-26 11:50,已浏览590次,有评论0条 推荐 投诉


网友评论
网友: piaoxiang 时间:2008-03-24 17:47:48 IP地址:122.4.33.★
dropbear问题:
另一种密钥形式生成方法-dropbearkey -t dss -f dropbear_dss_host_key
用dropbearconvert来转换openssh的key也可以,方法如下:
dropbearconvert openssh dropbear ssh_host_rsa_key dropbear_rsa_host_key,注意放到对应的目录中即可。

网友: piaoxiang 时间:2008-04-16 15:50:09 IP地址:122.4.33.★
Usage: dropbear [options]
Options are:
-b bannerfile   Display the contents of bannerfile before user login
                (default: none)
-d dsskeyfile   Use dsskeyfile for the dss host key
                (default: /etc/dropbear/dropbear_dss_host_key)
-r rsakeyfile   Use rsakeyfile for the rsa host key
                (default: /etc/dropbear/dropbear_rsa_host_key)
-F              Don't fork into background
-E              Log to stderr rather than syslog
-m              Don't display the motd on login
-w              Disallow root logins
-s              Disable password logins
-g              Disable password logins for root
-j              Disable local port forwarding
-k              Disable remote port forwarding
-a              Allow connections to forwarded ports from any host
-p [address:]port
                Listen on specified tcp port (and optionally address),
                up to 10 can be specified
                (default port is 22 if none specified)
-P PidFile      Create pid file PidFile
                (default /var/run/dropbear.pid)
-i              Start for inetd
-W <receive_window_buffer> (default 24576, larger may be faster, max 1MB)

网友: piaoxiang 时间:2008-04-16 15:52:58 IP地址:122.4.33.★
dropbear也可以有xinetd来启动,不过我测试的时候,如果有xinetd来启动,则认证速度非常慢。反而是独立启动要好一些。xinetd启动的配置如下:
service ssh
{
       socket_type     = stream
       user            = root 
       wait            = no
       protocol        = tcp 
       port            = 22
       instances       = 5
       per_source      = 4
       server          =/usr/sbin/dropbear
       server_args     = -i
       disable         = no
       log_on_success += DURATION USERID
       log_on_failure += USERID
}

网友: 本站网友 时间:2008-05-07 21:50:48 IP地址:61.141.191.★
我有一个问题,SSH相当于给了用户一个shell,那么如果某些用户想看一些系统内部的东西,岂不是也可以了?如何设置,来限制用户只能运行厂家给定的那几个命令呢?

网友: bluecolour 时间:2008-09-01 16:46:16 IP地址:59.40.28.★
是不是实现需要SSL?才能运行?我交叉了dropbear,configure不过,就disable-zlib 然后过了。make成功,但在target #dropbear 时,ps 里找不到。
#dropbear --help 是可以在target上运行的。 我的email是bluecoloursz@gmail.com, 谢谢你如果可以帮帮我。

 发表评论