补天网 - UNIX软件技术精华   
分页显示
返回《UNIX软件技术精华》 快速返回
作 者  主题:[原创]UNIX/LINUX流行软件使用初探
jackywang


=心无二用=
积分:506
贴数:93
 日期:2004-8-26 17:25:38
特别说明:感谢中国网络安全俱乐部技术支持中心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
日期: 2004-8-27 8:44:52  
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
日期: 2004-8-27 8:45:15  
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
日期: 2004-8-27 8:46:00  
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软件技术精华》 快速返回

IE不断爆出漏洞,使用FireFox浏览器,会更安全一些:

如果您想发帖,请先注册或登录!


Copyright © 2006 Patching.net All rights reserved.