|
| 作 者 | 主题:[原创]UNIX/LINUX流行软件使用初探 |
jackywang![]() =心无二用= 积分:506 贴数:93 |
特别说明:感谢中国网络安全俱乐部技术支持中心Jack Wang写作! 转载请注名 中国网络安全俱乐部技术支持中心 Jack Wang 版权属于原作者! UNIX/LINUX流行软件使用初探(壹): 考虑到初学者难以搭建或找寻到相关的使用环境,求人不如求自己,还是我们自己动手来的自在,DIY精神用驻,现介绍一款虚拟操作系统的软件VMware-workstation3.2,这个版本比较稳定,经本人试用过,运行在Win2000下,安装Solaris8,Redhat7X,FreeBSD都没有任何问题,最多的时候同时运行3个虚拟操作系统都没有任何问题,且各个虚拟系统之间都可以通讯,不需要网卡。只是要求内存多一点,运行3个虚拟操作系统推荐256M,还有一个叫做VituralPC,口碑不是很好 & 介绍一下远程登录软件,ASCII界面的工具软件推荐用SecureCRT4.3,支持Telnet,Rexec,Ssh,Rlogin等,XTerm界面推荐试用Xmanager138,非常好用,支持Telnet,Rlogin,Rexec,估计使用XTerm的人不是很多,一般开发人员用的比较多,但是对于管理员适用较复杂的界面管理工具时,使用XTerm软件就不用再到机器边上。例如Solaris8里的NIS管理,他只有图行界面进行管理,使用Xmanager就方便很多,还有一点,你可以把Linux的Gnome,Solaris里的KDE在远程运行,感觉很酷哦,这两个软件我用的比较多,感觉很方便,界面很友好 现在共同学习一下UNIX世界里最经典的编辑器vi(vim比它高级),可以说你如果不会使用vi就不是一个UNIX高手,vi的特点就是编辑速度快,支持多文件同时编辑,支持Shell外壳,缺点是刚开始学习时有点别扭,毕竟大家习惯了Windows平台的编辑器的使用方式。但是学会使用vi,你才发现vi是多么的好用,这里介绍vi的易被忽略的强大功能的使用方法(假设文件已经被vi打开,至于怎么用vi打开文件,我想大家在潜水时已经有大虾介绍过了): 光标前移一个字符:多按几下ESC键,再按"h"键 光标后移一个字符:多按几下ESC键,再按"l"键 光标上移一行:多按几下ESC键,再按"k"键 光标下移一行:多按几下ESC键,再按"j"键 光标移到最后一行:多按几下ESC键,然后同时按下"Shift"+":"键,输入"$"字符+回车键 光标移到指定行(例如第5行):多按几下ESC键,然后同时按下"Shift"+":"键,输入"5"字符+回车键 在行首插入字符(例如""):多按几下ESC键,然后同时按下"Shift"+"i"键,输入"I love unix"字符+回车键 在当前行插入一行:多按几下ESC键,然后同时按下"Shift"+"o"键 在当前行插入一行:多 按几下ESC键,然后按下"o"键 删除当前行:多按几下ESC键,然后按两下"d"键 删除当前光标起(例如5行)行:多按几下ESC键,然后按下"5"键,然后再按两下"d"键 删除当前光标所在的字符:多按几下ESC键,然后按下"x"键 删除当前光标起的(例如5个)字符:多按几下ESC键,然后按下"5"键,然后再按下"x"键 替换当前光标所在的字符(为"u"):多按几下ESC键,然后按下"r"键,然后再按下"u"键 替换当前光标起的N个(例如"unix"替换为"linux")字符:多按几下ESC键,然后按下"4"键,然后再按下"s"键,然后再输入"linux" 替换当前光标所在的(例如"unix"替换为"linux")单词(被个单词至少有一个空隔分开):多按几下ESC键,然后同时按下"c"+"w"键,然后再输入"linux" 复制当前行:多按几下ESC键,然后按两下"y"键 复制当前行起(例如5行)行:多按几下ESC键,然后按下"5"键,然后再按两下"y"键 在当前光标插入复制的内容:多按几下ESC键,然后同时按下"Shift"+"p"键 在当前光标追加复制的内容:多按几下ESC键,然后同时按下"p"键 在当前光标向下查找的内容(例如查找字符"unix"):多按几下ESC键,然后按下"/",然后再输入"unix"键,再输入"unix",如果在当前打开的文件里存在"unix"字符,光标将定位在出现"unix"字符的第一处 在当前光标向上查找的内容(例如查找字符"unix"):多按几下ESC键,然后按下"?",然后再输入"unix"键,再输入"unix",如果在当前打开的文件里存在"unix"字符,光标将定位在出现"unix"字符的第一处 字符串的全部替换(例如将"unix"全部替换为"linux"):多按几下ESC键,然后同时按下"Shift"+":"键,输入%s/unix/linux/g",再按下回车键 在当前光标追加另外一个文件的内容(例如追加"/etc/passwd"文件内容):多按几下ESC键,然后同时按下"Shift"+":"键,然后再输入"r /etc/passwd",按下回车键 vi中undo:多按几下ESC键,然后同时按下"u"键 在vi中编辑另外一个文件(例如编辑"/etc/passwd"文件):多按几下ESC键,然后同时按下"Shift"+":"键,然后再输入"e /etc/passwd",按下回车键,这种方法可以编辑多个文件 在vi中编辑多个文件(例如同时编辑"/etc/passwd","/etc/resolv.conf"文件):在命令行提示符下输入"vi /etc/passwd /etc/resolv.conf" 在vi中返回到上一个编辑文件(例如打开了多过文件):多按几下ESC键,然后同时按下"Shift"+":"键,然后再输入"rew"或"rew!",按下回车键 在vi中返回到下一个编辑文件(例如打开了多过文件):多按几下ESC键,然后同时按下"Shift"+":"键,然后再输入"n"或者"n!",按下回车键 待续中... |
jackywang![]() =心无二用= 积分:506 贴数:93 |
UNIX/LINUX流行软件使用初探(贰) UNIX/Linux自动ftp的实现 本文主要讲述一下在UNIX/Linux操作系统里实现ftp自动下载和上传文件的实现 方法,旨在实现日常网络管理中简单化,自动化! 假定实现ftp自动自动下载和上传文件的shell脚本文件名为aoutftp.sh,假设上传的 文件名为upload.txt,下载的文件名为download.txt,目标主机名为ftp.cnnsc.com.cn, 用户名为anonymous,密码为ilovecnnsc@cnnsc.com,传输方式采用ascii模式,执行此 脚本的时间为每周一上午8:30。 autoftp.sh源文件如下,蓝色文字为注释部分: #!/bin/bash ###上面一行表示使用/bin/bash来执行此脚本,也可以写成#!/bin/sh,注意必修写在第一 ###行,"#!"作为关键词不能改为其他任何形式 ###下面是shell脚本里用来赋值的典型语句 FILE_UPLOAD=‘upload.txt‘; FILE_DOWNLOAD=‘download.txt‘; FTP_HOST=‘ftp.cnnsc.com.cn‘; FTP_USER=‘anonymous‘; FTP_PASSWD=‘ilovecnnsc@cnnsc.com‘; FTP_MODE=‘ascii‘; ###清空屏幕,此行可省 tput clear; ###回显提示语句表示ftp已经开始连接 echo "begin get/put files..."; ###-i参数表示关闭ftp的交互模式 ###"<<FTPDONE"表示以下为用户输入命令的开始,当然FTPDOWN可以换成别的单词,只要和结束命令的地方一样就可以 ftp -i -n $FTP_HOST <<FTPDONE ###模拟键盘,输入预先定义好的用户名和密码 user $FTP_USER $FTP_PASSWD $FTP_MODE ###下载文件download.txt get $FILE_DOWNLOAD ###上传文件‘upload.txt put $FILE_UPLOAD ###断开ftp连接 by ###此语句表示ftp键盘模拟输入结束,"FTPDOWN"必须和开始的关键词一样,请不要写错了 FTPDONE ###回显提示语句表示ftp连接结束 echo "ftp done!"; 为了在星期一8:30自动执行,需要修改/etc/crontab文件,请加入这样一行: 30 8 * * 1 root /home/root/autoftp.sh >> /home/root/autoftp.log 2>&1 crontab是crond进程的配置文件,具体语法请参照相关的howto ">>"表示将命令执行后正常输出的结果追加到autoftp.log文件中 "2>&1"表示将命令执行后错误输出的结果也追加到autoftp.log文件中 为了让crond启动,请执行一下命令: [root@cnnsc root]# /etc/init.d/crond restart |
jackywang![]() =心无二用= 积分:506 贴数:93 |
UNIX/LINUX流行软件使用初探(叁) 中小企业www访问解决方案squid探讨 对于现在的中小企业而言,接入Internet已经变得非常必要,而www的访问则是其中 最重要的一项应用,那么,如何能在有限的带宽资源获得最好的应用,是众多网络管理员 最为关心的工作。代理服务器的使用,无疑是解决www访问的最好途径之一。一般代理服 务器(Proxy)的功能有以下几点: 1.Proxy作为应用级网关,屏蔽内部网络的细节,外界一般很难访问到Intranet 的资源 2.一般Proxy都可设置有缓存机制,对于目前大量存在于Internet的静态网页具有 缓冲机制,无疑加速了访问Internet的速度 3.一般的Proxy都有日志功能,它详细纪录的每个客户端访问Internet的日志,预 备将来查用。甚至可以通过专门的日志分析工具进行相关日志的分析,产生相应 的www访问分析报告。最为企业的管理者,一般都比较关心内部员工的正常的 上网纪录。 4.Proxy还有网页过滤功能,对于一些非法的站点,带敏感字和反动信息的网页可 用Proxy将其过滤,还给大家一个较为明静的Internet空间。 所以市场上流行的代理服务器软件都有以上功能,比如有:基于Windows平台 Wingate,Sygate,基于linux平台的squid,socks等。对于Wingate/Sygate由于是基于 Windows平台,稳定性和吞吐量值得怀疑。而socks是基于底层协议的代理,应用范围比 较广,但是对于应用层难以控制。而本文主要推荐使用squid,它具有上面介绍的4点 功能之外,还可以支持多级代理,并发性强,配置文件基于文本,更加易于控制,由于 基于linux平台,故稳定性强。而且支持squid的日志分析工具很多,例如sarg,mrtg等, sarg日志分析工具的使用方法将做详细的介绍: (1)squid的安装方法: 到http://www.squid-cache.org下载最新的原代码包 squid-2.0.RELEASE-src.tar.gz,执行以下命令: # useradd -s /dev/null squid # su squid # bash % tar xzf squid-2.0.RELEASE-src.tar.gz % cd squid-2.0.RELEASE % ./configure % make (2)squid.conf配置 squid的配置文件为/usr/local/squid/etc/squid.conf或/etc/squid/squid.conf, 只要根据具体的网络环境,修改squid.conf文件的带有关键字的行,而且缺省得配置文件 在这些需要手工调配的地方有详细的解释,下面就比较重要的信息进行介绍: "http_port 8080" 表示Proxy server守护端口号,也就是桌面计算机Internet Expoler代理 服务器的端口号 "icp_port 3130" 表示不同机器的squid进程交换缓存信息的端口号,这个在多级squid代理中 比较重要,下面会有描述,icp用的是UDP协议。 "cache_peer 192.168.3.168 parent 8080 3130 default" 表示上级proxy的ip地址,类型,端口号,交换缓存信息端口号 "hierarchy_stoplist cgi-bin ?" 表示用于cgi-bin的网页主动获取最新的内容,而不是从缓存中获取网页的 内容,强烈建议打开此选项,否则像google,mail.***.com等含有cgi的网页 将不能正常访问。 "acl QUERY urlpath_regex cgi-bin \?" "no_cache deny QUERY" 表示对于cgi网页不设置缓存 "cache_mem 1 GB" 表示cache的大小为1GB "cache_swap_low 80" 表示交换分区利用率达到80%以上更新到缓存文件 "cache_swap_high 95" 表示交换分区最大利用率95% "maximum_object_size 10240 KB" 表示最大被保存到cache文件的大小,单位是KB,如果你想节省带宽,可以 适当增加他的大小,但是你要为此付出用更多的磁盘空间,缺省值为 4096KB。 "maximum_object_size_in_memory 8 KB" 表示最大被保存到物理内存文件的大小,单位是KB,如果你想节省带宽, 可以适当增加他的大小,但是你要为此付出用更多的物理内存空间, 缺省值为8KB。 "cache_dir ufs /var/spool/squid 3072 16 256" 表示:cache_dir 存储介质类型(却省委ufs)) cache路径 cache路径的 最大空间 cache路径一级目录的个数 cache路径二级目录的个数 "cache_access_log /home/squidlog/access.log" 表示日志文件名,以上表示所有的www访问日志都将被记录到 /home/squidlog/access.log文件中 "cache_log /var/log/squid/cache.log" 表示缓存文件名,用缺省值就可以 "refresh_pattern -i .html 1440 90% 129600 reload-into-ims" "refresh_pattern -i .shtml 1440 90% 129600 reload-into-ims" "refresh_pattern -i .hml 1440 90% 129600 reload-into-ims" "refresh_pattern -i .gif 1440 90% 129600 reload-into-ims" "refresh_pattern -i .swf 1440 90% 129600 reload-into-ims" "refresh_pattern -i .jpg 1440 90% 129600 reload-into-ims" "refresh_pattern -i .png 1440 90% 129600 reload-into-ims" "refresh_pattern -i .bmp 1440 90% 129600 reload-into-ims" "refresh_pattern -i .js 1440 90% 129600 reload-into-ims" 表示客户端对于特殊文件刷新的时间阀门值,用法: refresh_pattern [.i] regex min percent max [options] 上面的例子表示扩展名分别为*.html/.../*.js如果客户访问的时间超过 1440mintues,文件将被重新下载 "reference_age time.units" 表示cache最近最久未用时间,time.units可以为: week(s)/day(s)/month(s)/year(s)/hour(s),例如: reference_age 3 months,表示3个月未用的缓存文件将优先被删除, 友情提醒,如果你的缓存目录空间足够大,可以加长时间参数, 例如: 1 year "half_closed_clients off" 表示squid会主动关闭客户端半连接的客户请求,这样,对于客户端关闭发 送端的TCP请求将不予应答。 "acl aclname acltype string1 ... | "file" " 访问控制表,例如:acl cnnsc1 src 192.168.0.0/24,表示192.168.0.0 网段的机器访问允许。 对于acltype有以下几种: src:对访问源进行控制,方法如下: acl aclname src ip.address/netmask 例如: 1.指定单个机器可以访问: acl ftp.cnnsc.com.cn src 172.16.1.25/32 2.指定可以访问的ip地址范围: acl cnnsc src 172.16.1.25-172.16.1.35/32 dst:对于访问的目标地址进行控制,方法同src类似 "acl aclname port port.no" 表示可以代理端口号,例如:"acl SSL_ports port 443 563",表示带有安 全套接字的协议端口号予以代理. 务必添加这样一行,"acl Safe_ports port 80",可不要 忘了。如果想打开ftp代理,请务必加上:"acl Safe_ports port 21" , "acl Safe_ports port 20",分两行写。 "http_access allow|deny [!]aclname ..." 访问列表控制,例如: acl cnnsc1 src 192.168.0.0/24 http_access deny cnnsc1 表示192.168.0.0网络机器都可以通过Proxy访问internet。 "http_access deny all"此行一般写在最后,表示排除了可以被访问的, 其他的访问都被禁止 "icp_access allow all" 表示squid之间缓存查询协议允许,建议打开此选项,作为多级代理此选项务必打开。 配置选项除了上面介绍的以外,还有一些选项可以用缺省值,对于一些不是很确定的选项请务必修改。 (3)多级squid代理的应用网络图: 上图为多极Squid代理服务的网络图,说明如下: 192.168.3.168:一级代理服务器,可以直接访问internet,配置方法参考(2),请确认 以下行前面没有被注释: icp_port 3130 hierarchy_stoplist cgi-bin ? icp_access allow all acl Safe_ports port 80 acl net1 src 192.168.0.0/24 acl net2 src 192.168.1.0/24 acl net3 src 192.168.3.0/24 http_access deny net1 http_access deny net2 http_access deny net3 192.168.0.168/192.168.1.168:二级代理服务器,使用192.168.3.168为 上一级代理服务器, 请确认以下行前面没有被注释: icp_port 3130 hierarchy_stoplist cgi-bin ? icp_access allow all acl Safe_ports port 80 acl net2 src 192.168.1.0/24 acl net3 src 192.168.3.0/24 http_access deny net2 http_access deny net3 cache_peer 192.168.3.168 parent 8080 3130 default (4)squid启动方法: # ln -s /etc/init.d/squid /etc/rc3.d/S25squid % /etc/init.d/squid restart 待续中... |
jackywang![]() =心无二用= 积分:506 贴数:93 |
unix/linux流行软件使用初探(肆) 静态日志分析工具sarg for squid使用指南 squid作为代理服务器不仅性能优异,而且还详细的纪录了各个客户端的访问纪录, 日志的格式采用文本格式,用vi就可以打开,对于数量庞大的日志,管理员要想抽取出有 用的信息也是非常棘手的。那么,sarg的出现,无疑是解决问题的一个不错的方法。 sarg作为一款日志分析工具,它采用html格式,详细列出了每一位用户访问internet 的站点信息,时间占用信息,排名,连接次数,访问量,访问量等。 sarg的下载地址:http://prdownloads.sourceforge.net/sarg/sarg-1.4.1.tar.gz?download sarg的安装: #tar xzf sarg-1.4.1.tar.gz #cd sarg-1.4.1 #./configure #make #make install 如果安装过程中出现错误,可以看看有没有安装gcc,或者在安装系统是没有安装相应 的开发库。安装成功后,在/usr/local/sarg/目录中,有一个配置文件为sarg.conf,我们通过 修改配置文件的参数,来达到对日志进行有规则的分析。也可以通过命令行参数实现。 sarg配置文件的方法和squid配置文件的配置方法类似,只要修改带有关键字的行: "language english" 指定网页报告文件的语言类型,很可惜不支持中文网页。 "access_log /usr/local/squid/logs/access.log" 指定squid日志文件绝对路径。 "title "squid user access reports" 指定网页标题,可以写中文网页,内核支持先。 "temporary_dir /var/tmp" 指定临时文件目录,请确认该目录所在的分区足够大先,1g以上。 "output_dir /var/www/html/squid-reports" 指定网页报告文件输出路径,推荐使用webmaster或其他非admin用户运行 sarg。 "topuser_sort_field connect reverse bytes reverse" 在top排序中,指定连接次数(connect),访问字节数(bytes)采用降序排 列,升序请使用normal替代reverse "user_sort_field connect reverse" 对于每个用户的访问纪录,连接次数按降序排列 "exclude_hosts /usr/local/sarg/norecords" 指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端 访问的这些站点,将不会被top排序中,norecords文件样本: google.com csdn.net microsoft.com "date_format e" 启动sarg进程是如果使用日期参数-d时,请使用和配置文件一致的日期格式: e (europe=dd/mm/yy), u (usa=mm/dd/yy), w (weekly=yy.ww) "topuser_fields num date_time userid connect bytes %bytes in-cache-out used_time milisec %time total average" 指定top排序的域,可以取掉一些不关紧要的域:in-cache-out used_time等 "weekdays 1-5" 指定top排序星期周期为星期一到星期五,0表示星期天 "hours 9-11,13-16" 指定top排序的时间周期为9:00-11:59,13:00-16:59,哈哈,差不多为上班 时间 至此,sarg.conf文件的配置基本上over了,还有些不是太重要的配置一看就明白, 在此就不耽误大家的时间了。 sarg的命令行解释如下: # sarg -h sarg: usage [options...] -a hostname or ip address 指定不计入排序的主机名称或地址 -b useragent log 用户代理日志文件输出 -c exclude file 指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端访问的这 些站点,将不会被top排序中 -d date from-until dd/mm/yyyy-dd/mm/yyyy 指定日期范围 -e email address to send reports (stdout for console) 指定报告接收者邮件 -f config file (/usr/local/sarg/sarg.conf) 指定配置文件 -g date format [e=europe -> dd/mm/yy, u=usa -> mm/dd/yy] 指定输入的日期格式 -h help (this...) 列帮助信息 -i reports by user and ip address 指定客户端排序采用用户名或者ip地址 -l input log 指定squid日志文件绝对路径。 -o output dir 指定网页报告文件输出路径,推荐使用webmaster或其他非admin用户运行 sarg。 -p use ip address instead userid (reports) 使用ip地址作为userid域 -w temporary dir 指定临时文件目录,请确认该目录所在的分区足够大先,1g以上。 sarg的top报告 sarg的user报告 |
| 返回《UNIX软件技术精华》 快速返回 | |
|
| |
|
|
如果您想发帖,请先注册或登录!
| Copyright © 2006 Patching.net All rights reserved. |