|
阅读:1534回复:0
3.7M的DNS Server
3.7M的DNS Server
研究综合利用老服务器:) 单位有台旧的邮件服务器,不管是什么原因,反正现在已经不用了,看起来就是一个方盒子,长得跟工控机一样,上周四本来是打算给自己搞台svn服务器来着,领导发现后以为偶在搞那个dns服务器(领导一直说要一个备用DNS),就让偶看看能不能把那个破邮件给利用了。 得令。 于是开始研究那个东西~~找来了显示器键盘电源线等物件,开机…… 看着熟悉的启动过程,还好,是linux系列~~好像是个什么什么friendly linux 到了登入介面……不知道是哪年的历史了,没人有密码$#@$DR#$@ 最简单的办法是重装~~9*&*(&*9789 拆机……(长成那个样子的机箱也真不容易,非主要问题,省略……为什么要拆机?装机插个盘不就可以了么?因为这东西连个光驱都没有-_-#) 拆开后发现东西看起来基本上还是很熟的,两个cpu,一个SCSI OR RAID卡,四个ide槽(4个?是的),其中一个被一个写着32M的小东西占用了,看起来像闪存,研究了一下开机时的信息,发现系统应该是在那个“闪存”里的,硬盘应该就只是用来存储数据。这样的话,有必要发扬一下这个优秀传统,继续利用那个小闪存然后把硬盘富余出来备用(自用……嘿嘿……邪恶无耻地笑) 以下就开始了无尽的装机过程: 第一回: FreeBSD: 选择minimal安装,装了一会儿提示空间不够,失败! 第二回: FreeBSD: 选择自定义安装,选择base和kernel包,仍然空间不够,再次失败! 第三回: DSL(Damn Small Linux这名字太他妈的合适了): 这东西50M的身体里居然包含了图形界面、web浏览器等等一堆正常人用的东西,简直太可怕了 但是,对不起,我们的要求是32M,但是这个该死(Damn)的小东西居然不能简单地让我把那些不必要的软件们痛快地删掉,第三回合仍然失败 第四回: LFS(ms只能自己来了): 看到read me里那1G多的空间需求,试都没试就放弃了 第五回: TTYLinux: 今天早上一来,居然让我google到一个只有3.7M的小东西,就是ttylinux,据说是麻雀虽小,五脏俱全,里面有ssh,文字界面的web浏览器等等,虽然没有我要的bind但是往里加东西总比减掉一些东西要容易。 以下是所有软件列表: basesystem-5.3-1 bash-3.2.9-1 busybox-1.3.1-1 dropbear-0.48.1-2 e2fsprogs-1.39-2 glibc-2.3.6-3 iptables-1.3.7-1 isdn4k-utils-3.2p1-3 lilo-22.7.3-2 ncurses-5.6-1 ppp-2.4.4-2 retawq-0.2.6c-2 第一节 系统安装 安装很容易,真的是很容易,下一个3.7M的iso镜像,刻盘(要是你能有什么奇怪的办法能让它从U盘启动就不用因为3.7M去浪费一张700M的CD- R了──也可以换一张4.5G的DVD-R),从光驱起动,很快就到shell了。默认用户名和密码都是root,进系统后fdisk建立分区, mke2fs格式化为ext2,准备工作就算完毕 installer mbr /dev/hdc /dev/hda1 完整的命令格式:installer [mbr] source-device target-device 重启(记得取出光盘) 第二节 安装Bind提供DNS服务 找到bind的网站,我靠,居然只提供source code下载,我可不想在我32M的“硬盘”上装上一堆dev套件,看到有这一句 ttylinux uses the same C library as full Linux systems, so compiling programs on another Linux machine and copying them over to the ttylinux filesystem should result in working programs. 打算在其它linux机器上编译再拿过来用 下到源码直接 ./configure –prefix=/usr/loca/bind #这个一定得要,要不make install之后满世界都是,去哪里找你要的那块肉 make make install 完了之后还不能直接启动named,因为没有named.conf等一系列配置文件,对照现在活着的那台DNS Server搞一点配置 /usr/local/bind/sbin/rndc-confgen >> /usr/local/bind/etc/rndc.conf tail –n10 /usr/local/bind/sbin/etc/rndc.conf | head -n9 | sed -e s/#\ //g > /usr/local/bind/etc/named.conf options{ directory "/usr/local/bind/etc"; }; zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA"{ type master; file "master/localhost.rev"; }; key "rndc-key" { algorithm hmac-md5; secret "ihk9yUzqDPnus7QW42H9Cw=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; 用 /usr/local/bind/sbin/named -gc /usr/local/bind/etc/named.conf 启动,参数-gc用来查看输出信息,要不什么都不显示,启动失败也不知道什么原因(我之前就是不知道走了不少弯路)。 这里的named.conf基本上什么用都没有,要研究bind怎么配置可以参看我的另一篇博文:DNS配置记录,这里就不重复了。回头了有时间再写一下根据来源不同解析不同ip的作法。 —-补充: 忘了写结论: 在不知道-gc的情况下尝试了n次,不成功,后来知道-gc这个参数了,修改一下就成功了(一个文件路径写错了):) and最后的成品不只5.7M,还有一个bind,不过应该不会超过32M–现在看起来好像还是超了,不可能的呀,系统只有那么点儿,难道bind…? ----再次补充: 最后居然还大于32M, 把 bind/bin 和 bind/sbin 下几个运行时基本用不到的文件给删掉, 终于将大小控制在32M以内(bind 17M+ 系统5M)~~~还不错哈哈~~~ 原文地址: http://color-magic.cn/archives/51 |
|
|