2007年6月4日星期一

HP-UX常用命令

一、 基本系统管理
1、常用命令
1. # ioscan -fn
列出各I/O卡及设备的所有相关信息:如逻辑单元号,硬件地址及设备文件名等。
2. # ps -ef
列出正在运行的所有进程的各种信息:如进程号及进程名等。
3. # netstat -rn
列出网卡状态及路由信息等。
4. # lanscan
列出网卡状态及网络配置信息。
5. # bdf
列出已加载的逻辑卷及其大小信息。
6. # mount
列出已加载的逻辑卷及其加载位置。
7. # uname -a
列出系统ID 号,OS版本及用户权限等信息。
8. # hostname
列出系统网络名称。
9. # pvdisplay -v /dev/dsk/c*t*d*
显示磁盘各种信息,如磁盘大小,包含的逻辑卷,设备名称等。
10. # vgdisplay -v /dev/vg00
显示逻辑卷组信息,如包含哪些物理盘及逻辑卷等。
11. # lvdisplay -v /dev/vg00/lvol1
显示逻辑卷各种信息,如包含哪些盘,是否有镜像等。
2、网络故障诊断
1. 如需修改网络地址、主机名等,一定要用set_parms 命令
# set_parms hostname
# set_parms ip_address
2. 查看网卡状态: lanscan
Hardware Station Crd Hardware Net-Interface
Path Address In# state nameunit state
8/20/5/1 0x0800097843FB 0 up lan0 up
3. 确认网络地址:
# ifconfig lan0
4. 启动网卡:
# ifconfig lan0 up
5. 网络不通的诊断过程:
lanscan 查看网卡是否启动(up)
ping 自己网卡地址(ip 地址)
ping其它机器地址,如不通,在其机器上用lanscan 命令得知station address,然后linkloop station_address 来确认网线及集成器是否有问题。
在同一网中, subnetmask 应一致。
6. 配置网关
手动加网关:
/usr/sbin/route add default 20.08.28.98 1
把网关自动加入系统中
vi /etc/rc.config.d / netconf

ROUTE_DESTINATION [0]=default
ROUTE_GATEWAY [0]=20.08.28.98
ROUTE_COUNT [0]=1
:
/sbin/init.d/net 将执行:
/usr/sbin/route add default 20.08.28.98 1
命令netstat -rn 查看路由表
另外也可用set_parms addl_netwrk 来设缺省路由。
二、安全安装HP-UX
1、 建议在安装配置过程中,不要连接到任何不信任的网络中。
2、 尽可能选择最小安装
3、 尽可能不要安装NFS, X window, SNMP等组件(视具体需求而定)
4、 安装完毕,则使用系统命令查看状态。
# uname ?Ca (版本信息)
# bdf (逻辑卷状态)
# ps ?Cef (进程状态)
# netstat -anf inet (端口状态)
5、 安装各种驱动等
6、 安装最新的补丁。
http://us.itrc.hp.com
安装补丁时要注意HP的补丁与硬件类型和系统版本都相关,检查并安装所有需要的补丁。确认需要swlist -l fileset.
三、系统基本配置
操作系统安装并打上补丁后,需要做一些措施来对系统进行一些配置。
删除保存的补丁(可选)
缺省情况下,补丁安装完会在/var/adm/sw/save/下备份所有的补丁。可以选择删除这些补丁文件,但一旦删除就没法使用swremove卸载补丁了。
# swmodify -x patch_commit=true '*.*'
转换为一个可信系统:
# /usr/lbin/tsconvert
Creating secure password database...
Directories created.
Making default files.
System default file created...
Terminal default file created...
Device assignment file created...
Moving passwords...
secure password database installed.
Converting at and crontab jobs...
At and crontab files converted.
改变全局特权
HP-UX 有一个特权组,可以分配给一个组特权(参见privgrp(4)). 缺省情况下,CHOWN是分配给所有组的一个全局特权:
$ getprivgrp
global privileges: CHOWN
/sbin/init.d/set_prvgrp在系统启动时执行/usr/sbin/setprivgrp -f /etc /privgroup. 可以创建一个配置文件,删除所有的全局特权 (see setprivgrp(1m)):
# getprivgrp
global privileges: CHOWN
# echo -n >/etc/privgroup
# chmod 400 /etc/privgroup
# /sbin/init.d/set_prvgrp start
# getprivgrp
global privileges:
设置默认umask.
转换到可信系统后,默认umask已经改为07077
限制root远程登录,只能由console登录
# echo console > /etc/securetty
# chmod 400 /etc/securetty
打开inetd日志功能
在/etc/rc.config.d/netdaemons中的 INETD_ARGS 环境变量中增加-l参数:
export INETD_ARGS=-l
删除不需要的系统伪帐户
# groupdel lp
# groupdel nuucp
# groupdel daemon
# userdel uucp
# userdel lp
# userdel nuucp
# userdel hpdb
# userdel www
# userdel daemon
对于一些保留的系统伪帐户如:bin, sys,adm等, 应当将需要禁止帐户的**用NP代替,并不提供登录shell
Example: bin:NP:60002:60002:No Access User:/:/sbin/noshell
将root主目录从/改为/root.
编辑/etc/passwd:
root:*:0:3::/root:/sbin/sh
创建目录并修改权限:
# mkdir /root
# chmod 700 /root
# mv /.profile /root
# pwconv
四、禁止网络服务
1、禁止inetd 服务
由internet服务器过程inetd启动的网络服务是由两个配置文件/etc/inet/services和/etc/inet/inetd.conf来配置的。/etc/inet/services文件指定每个服务的端口号和端口类型,该配置文件的部分示例如下:

ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail

/etc/inet/inetd.conf文件指定服务对应的系统服务程序,该配置文件部分示例如下:

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

当要停止某个服务,如ftp、telnet等时,只要注释掉文件/etc/inet/services和/etc/inet/inetd.conf中的相应条目,也就是在那一行的开头加上#字符,然后让inetd重新读配置文件,过程示例如下:
# ps -ef |grep inetd
root 149 1 0 Jan 18 ? 0:00 /usr/sbin/inetd -s
root 24621 24605 0 15:53:01 pts/1 0:00 grep inetd
# kill ?CHUP 149
以上第一条命令是为了获得inetd的进程号,示例中输出的第二列内容就是进程号(149),然后将该进程号填入第二条命令的相应位置。
可以使用lsof ?Ci来查看监听进程和端口信息:
# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
syslogd 261 root 5u inet 0x10191e868 0t0 UDP *:syslog (Idle)
rpcbind 345 root 4u inet 72,0x73 0t0 UDP *:portmap (Idle)
rpcbind 345 root 6u inet 72,0x73 0t0 UDP *:49158 (Idle)
rpcbind 345 root 7u inet 72,0x72 0t0 TCP *:portmap (LISTEN)
sendmail: 397 root 5u inet 0x10222b668 0t0 TCP *:smtp (LISTEN)
snmpdm 402 root 3u inet 0x10221a268 0t0 TCP *:7161 (LISTEN)
snmpdm 402 root 5u inet 0x10222a268 0t0 UDP *:snmp (Idle)
snmpdm 402 root 6u inet 0x10221f868 0t0 UDP *:* (Unbound)
mib2agt 421 root 0u inet 0x10223e868 0t0 UDP *:* (Unbound)
swagentd 453 root 6u inet 0x1019d3268 0t0 UDP *:2121 (Idle)
2、禁止其他服务
防止syslogd网络监听
安装PHCO_21023补丁可以给syslogd加上-N参数防止网络监听. 编辑/sbin/init.d/syslogd修改为 /usr/sbin/syslogd -DN.
禁止SNMP服务
编辑SNMP启动文件:
/etc/rc.config.d/SnmpHpunix
Set SNMP_HPUNIX_START to 0: SNMP_HPUNIX_START=0
/etc/rc.config.d/SnmpMaster
Set SNMP_MASTER_START to 0: SNMP_MASTER_START=0
/etc/rc.config.d/SnmpMib2
Set SNMP_MIB2_START to 0: SNMP_MIB2_START=0
/etc/rc.config.d/SnmpTrpDst
Set SNMP_TRAPDEST_START to 0: SNMP_TRAPDEST_START=0
禁止sendmail进程
编辑/etc/rc.config.d/mailservs:
export SENDMAIL_SERVER=0
禁止rpcbind进程
# rm /sbin/rc1.d/K600nfs.core
# rm /sbin/rc2.d/S400nfs.core
# mv /usr/sbin/rpcbind /usr/sbin/rpcbind.DISABLE
五、文件系统安全
1、检查Set-id程序
# find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -ld {} \;
# chmod u-s /usr/sbin/swinstall
# chmod u-s /usr/sbin/vgcreate
# chmod u-s /sbin/vgcreate
可以采用下列方法,将所有文件的set-id位去掉,然后对一些需要的程序单独加上suid位(可根据情况选择):
# find / -perm -4000 -type f -exec chmod u-s {} \;
# find / -perm -2000 -type f -exec chmod g-s {} \;
# chmod u+s /usr/bin/su
# chmod u+s /usr/bin/passwd
采用这种方法后,普通用户将无法使用很多系统命令,如bdf, uptime ,arp等:
$ bdf /dev/vg00/lvol3
bdf: /dev/vg00/lvol3: Permission denied
2. 修改重要文件权限
# chmod 1777 /tmp /var/tmp /var/preserve (加上粘滞位)
# chmod 666 /dev/null
六、网络参数调整
利用ndd命令,可以检测或者更改网络设备驱动程序的特性。在/etc/rc.config.d/nddconf启动脚本中增加以下各条命令,然后重启系统,可以提高网络的安全性。
格式如下:
/usr/sbin/ndd -set /dev/ip ip_forward_directed_broadcasts 0
Network device
Parameter
Default value
Suggested value
Comment
/dev/ip
ip_forward_directed_broadcasts
1
0
不转发定向广播包
/dev/ip
ip_forward_src_routed
1
0
不转发原路由包
/dev/ip
ip_forwarding
2
0
禁止包转发
/dev/ip
ip_pmtu_strategy
2
1
不采用echo-request PMTU策略
/dev/ip
ip_send_redirects
1
0
不发ICMP重定向包
/dev/ip
ip_send_source_quench
1
0
不发ICMP源结束包
/dev/tcp
tcp_conn_request_max
20
500
增加TCP监听数最大值,提高性能
/dev/tcp
tcp_syn_rcvd_max
500
500
HP SYN flood保护
/dev/ip
ip_respond_to_echo_broadcast
1
0
不响应ICMP echo请求广播包
由于ndd调用前,已经启动网卡参数,所以可能不能正确设置。
可以采用下列方法,建立一个启动脚本。
# cp /tmp/secconf /etc/rc.config.d
# chmod 444 /etc/rc.config.d/secconf
# cp /tmp/sectune /sbin/init.d
# chmod 555 /sbin/init.d/sectune
# ln -s /sbin/init.d/sectune /sbin/rc2.d/S009sectune
=== ===
cat /opt/contrib/bin/nickel

script /tmp/dns.log
what /usr/sbin/named
cat /var/adm/syslog/syslog.log
cat /var/adm/syslog/OLDsyslog.log
cat /etc/hosts
cat /etc/nsswitch.conf
cat /etc/resolv.conf
netstat -rn
cat /etc/rc.config.d/netconf
lanscan
netfmt -f /var/adm/nettl.LOG000
ioscan -fnC lan
swlist -l product
swlist -l bundle
swlist -l patch -a state
cat /etc/rc.config.d.namesvrs
cat /etc/named.data
exit

== = == = = = = = = = =
To adjust parameters of kernel

sysdef | grep maxdsiz

kmtune -q maxdsiz

== = == = = = = = = = =
TO OBTAIN THE PHYSICAL MEMORY IN AN HP-UX MACHINE:
# /usr/sam/lbin/getmem
This did not seem to work for me. We have 768MB and getmem reported
- - -- - - - - - -


zzzz

= = = = = = = = = = = =

# cat /usr/local/bin/hpmem

#!/bin/ksh
#
# Taken from the HP/UniGraphics FAQ
# You must be ROOT to execute this since it uses adb to
# examine the running kernel
#
GetKernelSymbol()
{
echo "$1/D" | \
adb -k $hpux /dev/kmem | \
tr "\012" " " | \
read junk junk2 kval
}
hpux=/hp-ux
rev=$(uname -r | cut -d. -f2)
if ((rev > 9)); then hpux=/stand/vmunix ;fi
/bin/uname -a
GetKernelSymbol "processor_count"
print CPU Count: $kval
GetKernelSymbol "itick_per_tick"
let speed=kval/10000
print CPU Speed: $speed MHz
if ((rev > 10)); then
print CPU HW Support: `getconf HW_CPU_SUPP_BITS`-bit
print Kernel Support: `getconf KERNEL_BITS`-bit
GetKernelSymbol "memory_installed_in_machine"
else
GetKernelSymbol "physmem"
fi
let mb=kval*4/1024 # convert pages to MB
print RAM Size: $mb MB
GetKernelSymbol "bufpages"
let mb=kval*4/1024 # convert pages to MB
print bufpages: $mb MB
GetKernelSymbol "maxuprc"
print maxuprc: $kval
GetKernelSymbol "maxvgs"
print maxvgs: $kval
GetKernelSymbol "maxfiles"
print maxfiles: $kval
GetKernelSymbol "max_thread_proc"
print max_thread_proc: $kval
GetKernelSymbol "nfile"
print nfile: $kval
GetKernelSymbol "nflocks"
print nflock: $kval
GetKernelSymbol "nproc"
print nproc: $kval
GetKernelSymbol "ninode"
print ninode: $kval
GetKernelSymbol "vfd_cw"
print shmmax: $kval
GetKernelSymbol "shmmni"
print shmmni: $kval
GetKernelSymbol "dbc_max_pct"
print dbc_max_pct: $kval

---------------

# /usr/local/bin/hpmem
HP-UX piln03 B.11.00 U 9000/800 2001675312 unlimited-user license
CPU Count: 1
CPU Speed: 180 MHz
CPU HW Support: 32-bit
Kernel Support: 32-bit
RAM Size: 128 MB
bufpages: 10 MB
maxuprc: 75
maxvgs: 10
maxfiles: 60
max_thread_proc: 64
nfile: 3339
nflock: 200
nproc: 1620
ninode: 1988
shmmax: 1073741824
shmmni: 200
dbc_max_pct: 50

---------------------------------------------

0 评论: