1.如何组建一个无盘工作站,具体步骤
2.freebsd下jail命令说明
如何组建一个无盘工作站,具体步骤
无盘工作站构架指南2(5-)
5、运行Win?无盘工作站
你想用机运行Win吗?你想不买终端卡组建无盘Win网络吗?好了,请跟我来吧。根据本人长期的追忆沉默源码组网实践经验,总结出一套完整的无盘Win方案,给大家分享!
首先说说大致工作原理:
主要先通过Win远程无盘引导Win工作站,再利用Win终端服务和终端连网软件从无盘win中登陆到终端服务器上。
请看以下具体步骤:
一、硬件配置:
1.服务器:建议CPU PIII 以上、M内存,硬盘G以上(经济允许的话最好用SCSI)因为服务器是整个网络核心的核心,所以配置一定要好。
2.工作站:低配置的,即可。笔者这里是奔腾,8M内存,无硬盘。
二、海盗骑兵源码安装步骤:
1.首先把服务器装好Win Server,并配置好所有硬件。
2.为window安装终端服务。
打开控制面版---添加/删除程序---添加/删除Windows组件--选中Windows终端服务确定。安装时要放入Win光盘.
3.在服务器上安装MetaFrame。Metaframe是citrix公司在Win下的终端服务器他比Win的终端服务更加强大,提供多种客户终端接入服务。
4.安装好Metafrmae后,开始制作终端客户安装软盘.
开始---程序---Metaframe tools---Ica client creator----Ica Client For win3x
5.为Win添加远程启动服务。由于Win已经不在支持远程启动服务。因此,我们考虑将NT4的远程启动服务移植到Win中。可到凌心之 家(www.lingxin-home.com)或我的主页(networld.8u8.com)去下载远程服务安装工具。
6.在Win下依次配一台Dos、win无盘站.方法与nt下一模一样,别告诉我你不会配置.不会的,以下就不用看了。
7.以无盘win启动工作站,把第4步制作的终端客户盘安装在无盘站上。
8.配置客户端。卖网站源码犯法双击citrix图标,建立一个新连接,这里注意:要填好主机名(服务器名称),协议选择Netbios,的其它全部用他的默认就可以了。
9.建立连接完成后,双击刚才建立的连接,就出现梦寐以求的Win桌面了。你可以运行任何在服务器的软件了!
6、安装Linux无盘工作站
[文章导读]
其实Linux 对远程引导的支持非常好,Linnx内核自身又支持网络文件系统,因此非常适合做无盘工作站,本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法。
[正文]
当年Novell下的无盘DOS工作站很是流行,后来又流行过Win无盘工作站,只是由于问题多多,后来微软自己停止了对无盘Windows的支持。随着Linux的奇秀协议软件源码日益流行,使用Linux的人越来越多,其实Linux 对远程引导的支持非常好,Linnx内核自身又支持网络文件系统,因此非常适合做无盘工作站,本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法。
这个网络是一个小的局域网,有1台服务器和4台 Linux 无盘工作站,彼此之间用双绞线通过HUB连接,服务器的IP地址定为..0. ,名字是server ,5台无盘工作站的地址由服务器动态分配,地址范围从 ..0.1 到..0.4 ,名字分别是c1,c2, c3,c4,服务器和无盘工作站使用的都是NE 兼容网卡,无盘工作站使用的网卡上都安 装了BOOTROM 启动芯片,服务器操作系统安装的JAVA swing 窗口源码是 RedHat Linux 6.0 ,安装时选用定制安装,并安装了全部软件。
Linux的远程引导有两种方式,一是利用Bootp协议,有一个专门的项目EtherBoot 提供支持(mand
下面开始在jail里面运行它:
tester# jail /jail jailed.host.name $JAILED_IP_ADDR /usr/local/sbin/pure-ftpd [options]
这里,/jail是你的jail环境的位置,也就是被jail之后,应用程序“以为”自己所在的“/”的位置;jailed.host.name是你打算提供给这个jail环境的主机名,某些情况下,应用程序需要知道这个变量;$JAILED_IP_ADDR是你打算提供ftp服务(如果是其他应用软件,那就是其他服务咯,比如web服务)的那个IP地址,至于/usr/local/sbin/pure-ftpd [options] 则是你打算运行的那个应用程序在jail里面的所在位置以及运行所需的参数。
然后用ps 查看一下进程状态:
tester# ps -axf |grep pureftpd
? IsJ 0:. pure-ftpd (SERVER) (pure-ftpd)
可以看到所有这些pure-ftpd的进程都有一个J,标志这这一程序正在jail下面运行。
这时候可能会有一些管理用的程序无法正常工作,因为这些管理用程序无法找到他们需要访问的那些文件,只要找到这些应用程序需要调用的文件(比如日志文件)的位置,然后制造一个soft link就可以了,通常这些管理程序都可以继续正常运行。
到此为止,一个针对应用程序的jail构造完成。
第二类,构造受控制的主机
在这种情况下面,我们首先需要构造一个当前版本操作系统的完整镜像(下面这个脚本是从FreeBSD 4.6r的man page里面来的,实际上4.5以及之前的man page在构造jail目录树脚本上面都有一定的问题,4.6才纠正过来):
tester# cat /root/mkjail.sh
jailhome=/data/jail
cd /usr/src
mkdir -p $jailhome
make world DESTDIR=$jailhome
cd etc
make distribution DESTDIR=$jailhome -DNO_MAKEDEV_RUN
cd $jailhome/dev
sh MAKEDEV jail
cd $jailhome
ln -sf dev/null kernel
^D
tester# sh /root/mkjail.sh
最后在/data/jail下面获得一个完整的根据当前源码树编译得来的jail目录树。
接下来:
/
*tester# mkdir $jailhome/stand
tester# cp /stand/sysinstall $jailhome/stand
tester# jail $jailhome jailed.system.box ..0. /bin/csh
(这时候就获得了一个jail下面的shell)
jailed# /stand/sysinstall
*/
通过sysinstall这个程序可以对jail系统的常用变量进行设置,比如时区,DNS,Mail。还有jail系统在“启动”的时候需要执行的程序。
如果你足够熟悉这个系统,可以考虑自己手工一个个的做过来。
复制/etc/localtime 到 $jailhome/etc,使jail环境下的应用程序可以得到正确的时间;
复制/etc/resolv.conf 到 $jailhome/etc/resolv.conf 使jail下面可以正确解释域名;
在jail里面运行newaliases 避免sendmail的不断抱怨;
如果打算运行inetd,需要修改inetd的启动参数,加上 -a $LISTEN_ADDR 选项(因为jail无法自己获得当前系统的ip地址,所以必须提供一个ip地址给它)在rc.conf里面看起来应该是这样:
inetd_flags="-wW -a ..0."
将系统本身的syslogd 运行加上 -ss 选项,避免这个syslog启动****端口;修改/etc/rc.conf 加上 syslogd_flags="-ss" (对$jailhome/etc/rc.conf也如法炮制)
在jail内创建一个空的/etc/fstab,在rc.conf里面去掉网卡地址的绑定,这样在jail系统在启动的时候不会抱怨。
为了实际运行这个jail系统,还需要为jail提供一个可以连接的IP地址,这个地址可以与实际环境同一个子网,也可以处于另外一个子网中。
tester# ifconfig fxp0 ..0. netmask 0xffffffff alias
(这里为网卡fxp0绑定了一个别名,准备提供服务。)
所有这些东西都执行完了以后,可以有几个方法把jail系统启动起来,一个是在jail外面运行
tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/etc/rc
一个是单纯把ssh/telnetd这样一些提供远程访问的服务在jail内启动起来:
tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/bin/inetd -wW -a $jail_IP_ADDR
然后从外面登录系统,运行、配置jail系统环境,或者手工启动需要的应用服务。
如果打算运行一个用于生产环境的jail系统的话,推荐使用第一种方法,并且把启动jail的命令放到(实际环境的)/etc/rc.local脚本里面去,这样jail系统可以有比较完备,与实际机器相类似的环境。
这样一个jail系统就算构造完成并且可以正常运作,加上在实际环境里面定期的严格的备份,安全检查与审计,就可以得到一个很不错的安全系统。一般的scriptkids已经无法对你的系统构成实际威胁,即使是某些与黑帽子走得很近的人在漏洞公开之前得到实际的攻击脚本,并且进入你的系统,他也只能在jail里面活动,而且你可以知道他什么时候进入和离开系统,做了什么。这样你可以很轻松的恢复系统和防范下一次未知的攻击。
在jail系统的管理上面有几个问题需要注意:
1. jail里面的帐号、密码是跟实际系统不同的,但是在jail之外ps或者查看jail目录树内的文件时,那些jail内部的uid会被看成外部的uid,因此最好把jail里面的/etc/adduser.conf进行修改,把他们的uid起始号码放大,比如:uid_start="",这样当你在jail外部进行文件、进程管理的时候不至于误会文件或者进程的宿主。
2. jail内的任何活动,其能力都受到了限制。比如top/vmstat这样的东西都不能使用,mknod,dd等等这样需要访问直接硬件的东西也无法工作。所以在jail内监控系统运行状态也比较难。
3. 当想要远程关闭jail系统的时候,可以有两种方法,一是进入jail之后kill -TERM -1 或者 kill -KILL -1 ,这样向所有该jail内的进程发送SIGTERM或者SIGKILL信号,也可以在jail里面运行/etc/rc.shutdown来关闭jail。如果是本地想要关闭jail倒是简单,只要把所有带有J标记的进程干掉就可以了。
4. 一个系统可以运行多个jail,各个jail之间无法互相干涉,如果在jail外面使用
tester# jail $jailhome jailed.system.box $jail_IP_ADDR /path/to/application
这种方式运行某个应用程序,下一次试图通过运行
tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/csh
这种方式获得的jail过的shell来管理该应用程序将会失败。因为这时是两个各自独立的jail,互相不能干涉。为了能对jail系统内进程灵活地进行管理,推荐在jail里面除开应用软件之外,再启动telnetd或者sshd之类的服务,这些服务此时与应用程序运行在同一个jail里面,就可以通过远程登入系统后获得与那些应用程序在同一个jail内的shell。
5. jail系统内的所有应用软件版本号应该与外部实际系统保持一致。当外部系统的源码同步到某个版本并且重新做过make world之后,推荐也重新生成一次jail,以避免某些可能的莫名其妙的错误。
6. 另外有一个做法不知道是否正确,在jail里面每次使用ps的时候,系统都会报告没有/var/run/dev.db文件,让人感觉很不舒服,复制实际系统的/var/run/dev.db 到 $jailhome/var/run/ ,就不会再碰到这个问题。