全面掌握Solaris网络管理工具(下)
使用inetmenu 快速修改IP地址
对于工作站而言网络的配置需要根据环境经常做改动比如不同的上网方式不同的IP地址不同的命名服务(NIS或DNS)等如果你有这样的需求推荐你使用 OpenSolaris提供的图形界面工具inetmenu
inetmenu的下载地址
inetmenu的下载安装方法如下
cellPadding= width=% align=center border=>
#wget pkggz
# gunzip inetmenupkggz
# pkgadd d /inetmenupkg
inetmenu将安装在/usr/bin/目录使用方法为在XWindow的终端中运行命令#/usr/bin/inetmenu即可你可以选择上网方式和设置IP地址等非常方便使用inetmenu后修改IP不需要去同时更改多个配置文件也不需要进行sysunconfig而重复设置其它信息了下面通过inetmenu为网卡pcn 取得IP全过程
首先选择网卡接口
下面选择网卡IP类型(静态DHCP)如图
图 选择网卡IP类型
接着输入网卡IP和子网掩码
最后按确定按钮完成配置如图
图 完成网卡配置
说明inetmenu对网络文件的影响缺省情况下在启动计算机后inetmenu将停止所有网卡的服务/etc/nf被设置为files方式
使用远程桌面实现和Windows的桌面连接
使用rdesktop远程管理Vista
rdesktop 是UNIX 和Linux 系统的一个远程桌面连接软件它通过Microsoft Windows NTWindows 提供的终端服务(Terminal Services)以及WindowsXP Windows ServerWindows Vista的远程桌面服务(Remote Desktop)能在Unix系统下远程登录Windows的窗口系统并使用
下载安装rdesktop工具
rdesktop程序可以上获取代码安装非常方便
wget %cREV%dSunOSiCSWpkggz
gunzip rdesktop%cREV%dSunOSiCSWpkggz
pkgadd –d rdesktop%cREV%dSunOSiCSWpkg
图 远程桌面安装成功界面
首先在Windows启动远程桌面并且添加一个Solaris 系统的存在的账号(如root用户)下面使用命令连接Windows桌面命令如下
cellPadding= width=% align=center border=>
#rdesktop g * d
其中 g *设置分辨率为g *d 设置真彩 位为 Windows 机器的IP 地址另外rdesktop使用微软的RDP协议仅能控制WinXP//Vista系统无法控制windows /me系统接着系统会出现登陆对话框通过口令验证即可开始进入Windows 桌面如图
图 Solaris JDS桌面中的Windwos桌面
在图中Solaris JDS桌面中中内嵌的就是Windows Xp通过#rdesktoph得到使用的帮助另外当然除了本文介绍的方法还可以使用sambassh服务器和VNC三种方式实现Solaris服务器和Windows工作站的互联其中远程桌面是最简单的方法
使用iftop工具监控Solaris 服务器网卡的流量
Iftop工具用来实时监看网络状态和各ip所使用的带宽绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制在捕获机制之上可以建立网络监控(Network Monitoring)应用软件网络监控也常简称为sniffer其最初的目的在于对网络通信情况进行监控以对网络的一些异常情况进行调试处理但随着互连网的快速普及和网络攻击行为的频繁出现保护网络的运行安全也成为监控软件的另一个重要目的
首先下载所有相关软件包
cellPadding= width=% align=center border=>
#wget ftp:///pub/freeware/intel//ncursessolxlocalgz
#wget ftp:///pub/freeware/intel//libpcapsolxlocalgz
#wget ftp:///pub/freeware/intel//iftopsolxlocalgz
其中libpcap 是 unix/linux 平台下的网络数据包捕获函数包大多数网络监控软件都以它为基础Libpcap 可以在绝大多数类 unix 平台下工作Ncurses 是提供字符终端处理库包括面板和菜单的库
安装软件
cellPadding= width=% align=center border=>
#pkgadd –d ncursessolxlocal
# pkgadd –d /libpcapsolxlocal
# pkgadd –d /iftopsolxlocal
使用软件查看pcn 网卡介面的即時流量使用命令iftop i pcn
界面如图
图 Iftop工作界面
图 是以bits为单位显示流量其它常用参数
iftop –B 以bytes为单位显示流量
iftop –n 直接显示IP 不进行DNS反解:
iftop –N : 直接显示连接端口编号 不显示服务名称:
如果希望显示某个网段进出封包流量使用命令iftop F /
iftop –P :按照端口对应ip地址
iftop –p :按照混杂模式运行iftop此时把它作为嗅探器
Iftop运行时的快捷键进入iftop画面时 可按 p 切换是否显示连接端口 n 切换显示IP或主机的域名 N切换显示连接端口代号或名称 p暂停显示 b切换是否显示长条 B切换计算几秒内的平均流量 其它按键可以按h观看说明
使用ngrep监控网络接口
ngrep 是grep(在文本中搜索字符串的工具)的网络版他力求更多的grep特征用于搜寻指定的数据包正由于安装ngrep需用到libpcap库 所以支持大量的操作系统和网络协议它当前认可 IPv/ TCP UDP ICMPv/ IGMP和原始交叉以太网 PPP SLIP FDDI 令牌网和空端口并以与更为普遍的分组过滤工具相同的方式了解BPF过滤逻辑例如tcpdump和snoop
下载和安装
cellPadding= width=% align=center border=>
#wget ftp:///pub/freeware/intel//ngrepsolxlocalgz
#gunzip ngrepsolxlocalgz
#pkgadd ngrepsolxlocal
首先看看ngrep的参数这里只介绍主要选项
q 静默模式如果没有此开关未匹配的数据包都以#显示
e 显示空数据包
i 忽略大小写
v 反转匹配
x 以进制格式显示
X 以进制格式匹配
w 整字匹配
p 不使用混杂模式
t 在每个匹配的包之前显示时间戳
T 显示上一个匹配的数据包之间的时间间隔
M 仅进行单行匹配
I 从文件中读取数据进行匹配
O 将匹配的数据保存到文件
n 仅捕获指定数目的数据包进行查看
A 匹配到数据包后Dump随后的指定数目的数据包
W 设置显示格式byline将解析包中的换行符
c 强制显示列的宽度
F 使用文件中定义的bpf(Berkeley Packet Filter)
N 显示由IANA定义的子协议号
d 使用哪个网卡可以用L选项查询
L 查询网卡接口
图 是没有参数的ngerp的输出界面
图 ngrep命令输出
下面我们看两个复杂一些的例子使用命令
cellPadding= width=% align=center border=>
ngrep qd pcn IT专家网 tcp port
这个命令让ngrep 为TCP报文监控pcn的接口并且只包括IT专家网字符串 这样就可以获得所有该子网中使用访问IT专家网的相关信息
另外一个命令
cellPadding= width=% align=center border=>
ngrep qd pcn USER|PASS tcp port
这个命令让ngrep 为TCP报文监控pcn的接口并且只包括user和pass字符串我们知道端口是用来进行FTP连接的端口 这样就可以获得用于FTP连接的用户名称和密码
使用lsof
lsof简介
使用 lsof您可以检查打开的文件并根据需要在卸载之前中止相应的进程同样地如果您发现了一个未知的文件那么可以找出到底是哪个应用程序打开了这个文件在 UNIX® 环境中文件无处不在这便产生了一句格言任何事物都是文件通过文件不仅仅可以访问常规数据通常还可以访问网络连接和硬件在有些情况下当您使用 ls 请求目录清单时将出现相应的条目在其他情况下如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字不存在相应的目录清单但是在后台为该应用程序分配了一个文件描述符无论这个文件的本质如何该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口
因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息所以能够查看这个列表将是很有帮助的完成这项任务的实用程序称为 lsof它对应于list open files(列出打开的文件)几乎在每个 UNIX 版本中都有这个实用程序
lsof下载安装
cellPadding= width=% align=center border=>
#wget ftp:///pub/freeware/intel//lsofsolxlocalgz
#gunzip lsofsolxlocalgz
#pkgadd d lsofsolxlocal
lsof的使用
只需输入 lsof 就可以生成大量的信息如图 所示因为 lsof 需要访问核心内存和各种文件所以必须以 root 用户的身份运行它才能够充分地发挥其功能
图 lsof 显示
每行显示一个打开的文件除非另外指定否则将显示所有进程打开的所有文件CommandPID 和 User 列分别表示进程的名称进程标识符 (PID) 和所有者名称DeviceSIZE/OFFNode 和 Name 列涉及到文件本身的信息分别表示指定磁盘的名称文件的大小索引节点(文件在磁盘上的标识)和该文件的确切名称根据 UNIX 版本的不同可能将文件的大小报告为应用程序在文件中进行读取的当前位置(偏移量)图来自一台可以报告该信息的 Sun Solaris 计算机而 Linux® 没有这个功能
查找网络连接
网络连接也是文件这意味着可以使用 lsof 获得关于它们的信息假设您已经知道 PID但是有时候并非如此如果您只知道相应的端口那么可以使用 i 参数利用套接字信息进行搜索图显示了对 TCP 端口 的搜索
cellPadding= width=% align=center border=>
# lsof i :
搜索活动的连接
cellPadding= width=% align=center border=>
# lsof i @
使用Nmap
nmap简介
Nmap设计的初衷是系统管理员可以方便地了解自己的网络运行情况例如有多少台主机在运行分别提供什么样的服务因此它扫描的速度非常快尤其适合大型网络在对网络进行扫描时Nmap主要利用ICMP echo探测主机是否开启凡是了解TCP/IP协议的都知道对于一个TCP端口无论是否使用防火墙进行过滤该主机都会对该端口发出的请求做出一定响应所以即使配置了严格的防火墙规则nmap照样可以找到这些主机
软件下载安装
cellPadding= width=% align=center border=>
#pkgadd d pkg_getpkg all
# pkg_get –i lippcap
# pkg_get –i nmap
Libpcap概述
Libpcap即数据包捕获函数库(packetcapturelibrary)该库提供的C函数接口可用于捕获经过网络接口(只要经过该接口目标地址不一定为本机)的数据包它是由洛仑兹伯克利试验室的研究人员Steven McCanne和Van Jacobson于年在USENIX 会议上正式提出的一种UNIX内核数据包过滤体制该函数库支持LinuxSolaris和BSD系统平台采用Libpcap可以捕获本地网络数据链路层上的数据Libpcap库是基于BPF(Berkeley Packet FilterBSD包过滤器)系统的BPF是BSD系统的TCP/IP软件在实现的时候所提供的一个接口通过这个接口外部程序可以得到到达本机的数据链路层网络数据同时也可以设置过滤器嵌入到网络软件中获得过滤后的数据包
软件使用
探测一台主机是否在线用Nmap探测试试看
cellPadding= width=% align=center border=>
nmap –v sP
这里sP指定使用Ping echo 进行扫描(Scan) 利用这一特点可以很快知道目的网络究竟有多少主机处于运行状态
图 探测结果好像该主机开放
nmap sP / //表明目标是一个网络而非单个主机
其实强大的Nmap本身就可以依据TCP/IP的指纹特征猜测对方使用的操作系统我们可以用O来开启这一选项
nmap O
#nmapfe 如图
图 nmap前端工具
nmapfe支持种类繁多的扫描技术例如TCP connect()扫描是最基本的TCP扫描方式;TCP SYN扫描通常称为半开扫描;UDP扫描目标系统提供UDP服务的端口;系统识别扫描需要超级用户权限;ping扫描是隐蔽扫描;还有Ident扫描(Ident Scanning)等从扫描技术看nmap是众多端口扫描器中的极品此外它还提供了一些高级的特征例如高速秘密系统指纹特征识别诱饵扫描碎片扫描等
以上这些表明利用网络管理工具了解网络的状况非常简单几乎不费什么力气就可以获取很多有用的数据