正在加载...
分页: 16/20 第一页 上页 11 12 13 14 15 16 17 18 19 20 下页 最后页 [ 显示模式: 摘要 | 列表 ]
基本概念:

1> tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。


2> pty(虚拟终端):
但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)


3> pts/ptmx(pts/ptmx结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。

Linux终端:

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:
1、串行端口终端(/dev/ttySn)
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。可接串口来实验。

2、伪终端(/dev/pty/)
伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。
例如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。

这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用 ptyp3(m3)逻辑设备。

例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备 ptyp2(m2)上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给 getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。

在使用设备文件系统 (device filesystem)之前,为了得到大量的伪终端设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16个ttyp(ttyp0—ttypf) 的设备文件,为了得到更多的逻辑设备对,就使用了象q、r、s等字符来代替p。例如,ttys8和ptys8就是一个伪终端设备对。不过这种命名方式目前仍然在RedHat等Linux系统中使用着。

但Linux系统上的Unix98并不使用上述方法,而使用了”pty master”方式,例如/dev/ptm3。它的对应端则会被自动地创建成/dev/pts/3。这样就可以在需要时提供一个pty伪终端。目录 /dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。
即: TELNET ---> TTYP3(S3: slave) ---> PTYP3(M3: master) ---> GETTY
=========================================================================
实验:
1、在X下打开一个或N个终端窗口
2、#ls /dev/pt*
3、关闭这个X下的终端窗口,再次运行;比较两次输出信息就明白了。
在RHEL4环境下: 输出为/dev/ptmx /dev/pts/1存在一(master)对多(slave)的情况
=========================================================================


3、控制终端(/dev/tty)
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。


4、控制台终端(/dev/ttyn, /dev/console)
在Linux 系统中,计算机显示器通常被称为控制台终端 (Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。只有系统或超级用户root可以向 /dev/tty0进行写操作 即下例:
1、# tty(查看当前TTY)
/dev/tty1
2、#echo "test tty0" > /dev/tty0
test tty0


5 虚拟终端(/dev/pts/n)
在Xwindows模式下的伪终端.


6 其它类型
Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述。


FAQ: 终端和控制台

RROM:http://blog.footoo.org/?p=73
Posted on Tuesday, November 28th, 2006 by CLIFF

吴晋 (cliffwoo@gmail.com)
FoOTOo OpenSource Lab

由于在很多朋友对终端的概念一直不是很清楚,因此写了这个FAQ,希望能够帮助大家理解这些概念。不妥之处,还请大家来信指出。

Q:/dev/console 是什么?

A:/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。


Q:/dev/tty是什么?

A:tty设备包括虚拟控制台,串口以及伪终端设备。
/dev/tty代表当前tty设备,在当前的终端中输入 echo “hello” > /dev/tty ,都会直接显示在当前的终端中。


Q:/dev/ttyS*是什么?

A:/dev/ttyS*是串行终端设备。


Q:/dev/pty*是什么?

A:/dev/pty*即伪终端,所谓伪终端是逻辑上的终端设备,多用于模拟终端程序。例如,我们在X Window下打开的终端,以及我们在Windows使用telnet 或ssh等方式登录Linux主机,此时均在使用pty设备(准确的说在使用pty从设备)。

Q:/dev/tty0与/dev/tty1 …/dev/tty63是什么?它们之间有什么区别?

A:/dev/tty0代表当前虚拟控制台,而/dev/tty1等代表第一个虚拟控制台,例如当使用ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2 ,当前的控制台则指向/dev/tty2

Q:如何确定当前所在的终端(或控制台)?

A:使用tty命令可以确定当前的终端或者控制台。

Q:/dev/console是到/dev/tty0的符号链接吗?

A: 目前的大多数文本中都称/dev/console是到/dev/tty0的链接(包括《Linux内核源代码情景分析》),但是这样说是不确切的。根据内核文档,在2.1.71之前,/dev/console根据不同系统的设定可以链接到/dev/tty0或者其他tty*上,在2.1.71版本之后则完全由内核控制。目前,只有在单用户模式下可以登录/dev/console(可以在单用户模式下输入tty命令进行确认)。

Q:/dev/tty0与/dev/fb*有什么区别?

A: 在Framebuffer设备没有启用的系统中,可以使用/dev/tty0访问显卡。

Q:关于终端和控制台的区别可以参考哪些文本

A: 可以参考内核文档中的 Documents/devices.txt 中关于”TERMINAL DEVICES” 的章节。另外,《Linux内核源代码情景分析》的8.7节 以及《Operating Systems : Design and Implementation》中的3.9节(第3版中为3.8节)都对终端设备的概念和历史做了很好的介绍。另外在《Modern Operating system》中也有对终端设备的介绍,由于与《Operating Systems : Design and Implementation》的作者相同,所以文本内容也大致相同。需要注意的一点是《Operating Systems : Design and Implementation》中将终端设备分为3类,而《Modern Operating system》将终端硬件设备分为2类,差别在于前者将 X Terminal作为一个类别。

PS:
  
只有2410的2.6才叫ttySAC0,9200等的还是叫ttyS0
Tags: , , , ,

Linux 网络安装

[ 2008/10/30 16:18 | by selboo ]
    早就想写这么一篇文章了,其实两年前用网络ghost实现windows的网络安装和pxelinux实现linux批量安装的时候就写过一个总结文档.但是因为当时上网不方便所以就没有发.还有经过两年的发展.windows已经出现了单独的小软件可以同时实现tftp和dhcp的功能,不像原来的时候这些都要基于windows和linux系统服务配置.后面上传了一个打包好的文件,里面详细写了ks.cfg和grub的menu.lst的写法,好了,废话少说大家看总结吧.

linux网络安装总结
环境:centos4.5+dhcp+tftp+dns+apache+ftp+nfs+syslinux+grub4dos
本机IP:192.168.0.105
说明:apache,ftp,nfs 是为了配合无光盘安装光盘内容获取来设计的.所有的服务配置不是本文重点,所以
只介绍用的部分.
基于syslinux的pxelinux.0
apache,nfs,ftp,根据安装需要而定,dns最好配置,因为在自动安装的过程中,自动获得IP以后,linux安装
程序要自动决定自己的机器名,会查找域名服务器,如果不配置的话,会在这里卡很长时间.
Dhcp
rpm -ivh dhcp-3.0.1*
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcp.conf
原有的配置保持默认,只是在全局配置下加入以下几句
option domain-name  "rainbird.com";//要使用的域名
option domain-name-servers 192.168.0.105;//要使用的dnsIP,此处用的本机
allow bootp;        
allow booting;   //这两句定义网络引导
next-server 本机IP;//tftp server
filename "pxelinux.0"; //这一句定义网络引导时tftp默认读取的配置文件
service dhcpd start
请确认dhcp正常工作
Tftp
rpm -ivh tftp-server*.rpm
vi /etc/xinitd.d/tftp
把 disable=yes 这句改为 diable=no
如果你要同时进行大量的系统安装,还要注意把 wait=yes 一句改成
wait=no.
ok,tftp的配置文件就这样轻松搞定了.
service xinetd restart
请确认tftp正常工作
Pxe
其实把这一项列为pxe还不如说怎样配置tftp的根目录,tftp的根目录默认是在/tftpboot,也就是说我们
只要把我们需要的东西放在这个目录就可以了,这里要用到linux光盘的第一张,默认有一个isolinux目录,
我们要做的就是把这里面的东西全都拷贝到
/tftpboot目录下去用 mkdir /tftpboot/pxelinux.cfg
建立一个配置目录,然后用命令 cp /tftpboot/isolinux.cfg /tftpboot/pxelinux.cfg/default
把isolinux.cfg拷成配置文件default。再有就是我们的pxelinux.0 在dhcp的配置我们有提到它,
那么它在哪呢,对,是要放到当前目录下。一句
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
准备安装目录树
我们将安装光盘的所有内容复制到ftp的默认目录/var/ftp/pub下,在这里建立目录树,方便安装.
mount /dev/cdrom /mnt/cdrom
cp -au /mnt/cdrom/* /var/ftp/pub
Apache
rpm -ivh httpd-2.*
ln -s /var/ftp/pub /var/www/html
service httpd start
访问http://192.168.0.105/pub如果能看到安装光盘的目录树则安装成功.
Vsftpd
rpm -ivh vsftpd*
service vsftpd start
ftp://192.168.0.105/pub确认能否看到目录树
Nfs
vi /etc/exports 
/var/ftp/pub 192.168.2.0/24(ro,sync) 
保存退出
service nfs restart
dns
为减少安装程序决定自己名字的时间安装此服务
rpm -ivh bind-9*
rpm -ivh cacheing-*
vi /etc/named.conf
zone "rainbird.com" IN {
        type master;
        file "123";
        allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "321";
        allow-update { none; };
};
cp localhost.zone 123
cp named.local 321
vi 123
vi 321
配置完毕
service named start
OK,现在打开客户机就可以根据你配置好的pxelinux/default和ks.cfg进行安装了
基于grub4dos
需要的文件:grldr(pxe启动文件) fonts(字体) xp2008.xpm.gz(背景) menu.lst下的default(默认引导)
需要的服务同上
其中需要的http.cfg,nfs.cfg,ftp.cfg参见打包文件
Tags: ,

Linux系统信息查看命令大全

[ 2008/10/15 18:08 | by selboo ]
系统

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量

资源

# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载

磁盘和分区

# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况

网络

# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息

进程

# ps -ef # 查看所有进程
# top # 实时显示进程状态

用户

# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务

服务

# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务

程序

# rpm -qa # 查看所有安装的软件包
攻入Linux系统后,很多入侵者往往就开始得意忘形了.这其中还有一个原因,就是技术性也要求更高了.下面,我们来看看一些常用的经典工具.

1、从这里延伸:后门和连接工具

(1)Httptunnel

      Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙.说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成 HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙.

      HTTPTunnel包括两个程序:htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的.比如开了FTP的机器的IP是192.168.10.231,本地机器IP是192.168.10.226,因为防火墙的原因,本地机器无法连接到FTP上.怎么办?现在就可以考虑使用HTTPTunnel了.过程如下:

第一步:在本地机器上启动HTTPTunnel客户端.用Netstat看一下本机现在开放的端口,会发现8888端口已在侦听.
第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“hts -f localhost:21 80”,这个命令的意思是说,把本机的21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态.
第三步:在本地机器上用FTP连接本机的8888端口,会发现已经连上对方的机器了.那么,为什么人家看到的是127.0.0.1,而不是 192.168.10.231呢?因为我们现在是连接本机的8888端口,防火墙肯定不会有反应,如果没往外发包,局域网的防火墙肯定就不知道了.现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙.

      需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在也不会出现什么问题,重定向的隧道服务将畅通无阻!

(2)Tcp_wrapper

      Tcp_wrapper是Wietse Venema开发的一个免费软件. Tcp_wrapper的诞生有个小小的故事,大约1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入,因为受害主机的硬盘数据屡次被rm -rf/命令整个抹掉,所以找寻线索极为困难,直到有一天晚上作者在工作的过程中无意中发现这个黑客在不断的finger 受害主机、偷窥受害者的工作.于是,一个想法诞生了:设计一个软件,使它可以截获发起finger请求的IP,用户名等资料.Venema很快投入了工作,而Tcp_wrapper也由此诞生!此后,Tcp_wrapper随着广泛的应用逐渐成为一种标准的安全工具.通过它,管理员实现了对inetd提供的各种服务进行监控和过滤.

      Tcp_wrapper编译安装成功后,会生成一个tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获请求,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的 in.telnetd程序,由in.telnetd完成后续工作.如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供 telnet服务.Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的.如果我们编辑/etc /syslog.conf文件时,加入了日志纪录功能,即:

#tcp wrapper loglocal3.info /var/log/tcplog

      编辑结束后,保存文件,在/var/log下会生成tcplog文件,注意这个文件的读写属性, 应该只对root有读写权限.然后ps -ef   grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效.在这里,我们可以预先看一看以后生成的tcplog文件内容,如下:

Jul 31 22:00:52 www.test.org in.telnetd[4365]: connect from 10.68.32.1Jul 31 22:02:10 www.test.org in.telnetd[4389]: connect from 10.68.32.5Jul 31 22:04:58 www.test.org in.ftpd[4429]: connect from 10.68.32.3Aug 2 02:11:07 www.test.org in.rshd[13660]: connect from 10.68.32.5Aug 2 02:11:07 www.test.org in.rlogind[13659]: connect from 10.68.32.1

      从上面我们可以看到,在安装了Tcp_wrapper的主机上,系统的每一次连接,Tcp_wrapper都做了纪录,它的内容包括时间、服务、状态、ip等,对攻击这有很大的参考价值,不过,一定要记得清除日志了.

(3)rootkit工具:LRK

      Rootkit出现于二十世纪90年代初,它是攻击者用来隐藏自己的踪迹和保留root访问权限的工具.通常,攻击者通过远程攻击或者密码猜测获得系统的访问权限.接着,攻击者会在侵入的主机中安装rootkit,然后他会通过rootkit的后门检查系统,看是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日志中的有关信息.通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统.

      如果攻击者能够正确地安装rootkit并合理地清理了日志文件,系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联系或者嗅探器的日志把磁盘全部填满,他才会察觉已经大祸临头了.不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了.许多rootkit中有一个叫做 FIX的程序,在安装rootkit之前,攻击者可以首先使用这个程序做一个系统二进制代码的快照,然后再安装替代程序.FIX能够根据原来的程序伪造替代程序的三个时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组.如果攻击者能够准确地使用这些优秀的应用程序,并且在安装rootkit时行为谨慎,就会让系统管理员很难发现.

      下面我们介绍一个非常典型的针对Linux系统的LRK版本6.Linux Rootkit 6是一个开放源码的rootkit,经过多年的发展,Linux Rootkit的功能越来越完善,具有的特征也越来越多.下面我们简单地介绍一下Linux Rootkit包含的各种工具.

      首先是隐藏入侵者行踪的程序.为了隐藏入侵者的行踪,Linux Rootkit IV的作者可谓煞费心机,编写了许多系统命令的替代程序,使用这些程序代替原由的系统命令,来隐藏入侵者的行踪.这些程序包括:

      ls、find、du 这些程序会阻止显示入侵者的文件以及计算入侵者文件占用的空间.在编译之前,入侵者可以通过ROOTKIT_FILES_FILE设置自己的文件所处的位置,默认是/dev/ptyr.注意如果在编译时使用了SHOWFLAG选项,就可以使用ls -/命令列出所有的文件.这几个程序还能够自动隐藏所有名字为:ptyr、hack.dir和W4r3z的文件.
ps、top、pidof 这几个程序用来隐藏所有和入侵者相关的进程.

netstat 隐藏出/入指定IP地址或者端口的网络数据流量程.

killall 不会杀死被入侵者隐藏的进程.

ifconfig 如果入侵者启动了嗅探器,这个程序就阻止PROMISC标记的显示,使系统管理员难以发现网络接口已经处于混杂模式下.

crontab 隐藏有关攻击者的crontab条目.

tcpd 阻止向日志中记录某些连接.

syslogd 过滤掉日志中的某些连接信息.

      其次是后门程序.木马程序可以为本地用户提供后门;木马网络监控程序则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异.随着版本的升级,Linux Rootkit IV的功能也越来越强大,特征也越来越丰富.一般包括如下网络服务程序:

chfn 提升本地普通用户权限的程序.运行chfn,在它提示输入新的用户名时,如果用户输入rookit密码,他的权限就被提升为root.

chsh 提升本地用户权限的程序.运行chsh,在它提示输入新的shell时,如果用户输入rootkit密码,他的权限就被提升为root.

passwd 和上面两个程序的作用相同.在提示你输入新密码时,如果输入rookit密码,权限就可以变成root.
login 允许使用任何帐户通过rootkit密码登录.如果使用root帐户登录被拒绝,可以尝试一下rewt.当使用后门时,这个程序还能够禁止记录命令的历史记录.

inetd 特洛伊inetd程序,为攻击者提供远程访问服务.

rshd 为攻击者提供远程shell服务.攻击者使用rsh -l rootkitpassword host command命令就可以启动一个远程root shell.
sshd 为攻击者提供ssh服务的后门程序.

再就是工具程序.所有不属于以上类型的程序都可以归如这个类型,它们实现一些诸如:日志清理、报文嗅探以及远程shell的端口绑定等功能,包括:

fix 文件属性伪造程序.

linsniffer 报文嗅探器程序.

sniffchk 一个简单的bash shell脚本,检查系统中是否正有一个嗅探器在运行.

login 允许使用任何帐户通过rootkit密码登录.如果使用root帐户登录被拒绝,可以尝试一下rewt.当使用后门时,这个程序还能够禁止记录命令的历史记录.

z2 utmp/wtmp/lastlog日志清理工具.可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目.不过,如果用于Linux系统需要手工修改其源代码,设置日志文件的位置.

bindshell 在某个端口上绑定shell服务,默认端口是12497.为远程攻击者提供shell服务.

(4)netcat

这是一个简单而有用的工具,能够通过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动.同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能.

2、查找Linux下的蛛丝马迹:日志工具

       对于高明的攻击者来说,进入系统后,还应了解自己的“蛛丝马迹”并清除这些痕迹,自然就要了解一些日志工具了.

(1)logcheck

       logchek 可以自动地检查日志文件,定期检查日志文件以发现违反安全规则以及异常的活动.它先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员.logcheck 用 logtail 程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息.logcheck 主要由下面几个主要的文件:

logcheck.sh 可执行的脚本文件,记录logcheck检查那些日志文件等,我们可以把它加入crontab中定时运行.
logcheck.hacking 是logcheck 检查的模式文件.和下面的文件一起,按从上到下的顺序执行.这个文件表明了入侵活动的模式.
logcheck.violations 这个文件表示有问题,违背常理的活动的模式.优先级小于上面的那个模式文件.
logcheck.violations.ignore 这个文件和上面的logcheck.violations的优先是相对的,是我们所不关心的问题的模式文件.
logcheck.ignore 这是检查的最后一个模式文件.如果没有和前三个模式文件匹配,也没有匹配这个模式文件的话,则输出到报告中.
Logtail 记录日志文件信息.

Logcheck首次运行时读入相关的日志文件的所有内容,Logtail会在日志文件的目录下为每个关心的日志文件建立一个 logfile.offset 的偏移量文件,以便于下次检查时从这个偏移量开始检查.Logcheck执行时,将未被忽略的内容通过邮件的形式发送给 logcheck.sh 中 系统管理员指定的用户.

(2)logrotate

       一般Linux 发行版中都自带这个工具.它可以自动使日志循环,删除保存最久的日志,它的配置文件是 /etc/logrotate.conf,我们可以在这个文件中设置日志的循环周期、日志的备份数目以及如何备份日志等等.在/etc /logrotate.d目录下,包括一些工具的日志循环设置文件,如syslog等,在这些文件中指定了如何根据/etc /logrotate.conf做日志循环,也可以在这里面添加其他的文件以循环其他服务的日志.

(3)swatch

       swatch 是一个实时的日志监控工具,我们可以设置感兴趣的事件.Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息.Swatch提供了许多通知方式,包括email、振铃、终端输出、多种颜色等等.安装前,必须确保系统支持perl.swatch 软件的重点是配置文件swatchmessage,这个文本文件告诉 swatch 需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作.当swatch发现与swatchmessage中定义的触发器正则表达式相符时,它将执行在 swatchrc中定义的通知程序.

       当然,上面所介绍的软件只是Linux大海中的几只美丽的贝壳,随着越来越多的用户加入到Linux大军中,我们相信,优秀的Hack也将越来越多,这反过来也将促进Linux操作系统逐步走向成熟,我们拭目以待.

Tags: , ,

linux多用户之间的通信

[ 2008/10/07 12:02 | by selboo ]
Unix和Linux提供了多种方式让用户相互通信,它允许以文本的方式给某个用户或所有用户传递信息,而信息来源可以是文本文件或直接由键盘输入的内容。

(1)使用write发送消息

使用write命令可以向任何已登录同一系统的另一位用户发送消息,这时在对方用户终端上就会自动显示出信息,而对方也同样可以使用write 命令来回复消息,这样双方之间就能互相通信了。

write命令的格式如下:

write user-name

此处user-name是将要与之通信的用户名,可以使用who 命令来查看系统中已登陆的用户名。输入write命令后,即可进入发送消息状态,这时就可以通过键盘输入消息,回车即可向对方发送此条消息了。要想退出发送消息状态,可以使用“Ctrl + d”退出write 命令回到shell。

(2)使用talk进行双方对话

talk命令允许双方实现类似于MSN、QQ这样的实时对话,其命令格式如下:

talk user-name

当用户向另一用户发送对话请求,只有在对方同意接受对话请求,即对方也使用talk命令后,双方的对话才会建立。这时双方终端上都会显示 “[connect established]”,这样双方就可以从键盘输入文字,talk会把这些输入显示在对方的屏幕上,若任意一方按键就会退出对话状态。

(3)使用wall进行广播式消息传送

使用wall命令可以向所有用户广播通知信息,而所有登录系统的用户都可收到该消息。wall命令有以下几种格式:

wall

wall filename

wall “send a message to all the people!”

(4)使用mesg允许或拒绝接收消息

当一位用户正在全身心的投入某项工作的时候,可能会不想被另外一位用户用上述方式突然发送来的消息打断思路,那么就可使用mesg命令来设置是否允许接收由其它用户发来的信息。

mesg命令的格式如下:

mesg –n



mesg -y

其中,y表示允许接收信息,n 表示拒绝接收信息。如果mesg后面没有跟参数,则报告当前的许可状态。
Tags:
分页: 16/20 第一页 上页 11 12 13 14 15 16 17 18 19 20 下页 最后页 [ 显示模式: 摘要 | 列表 ]