一、 基本系統管理
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 –a (版本資訊)
# bdf (邏輯卷狀態)
# ps –ef (進程狀態)
# 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 –HUP 149
以上第一條命令是為了獲得inetd的進程號,樣本中輸出的第二列內容就是進程號(149),然後將該進程號填入第二條命令的相應位置。
可以使用lsof –i來查看監聽進程和連接埠資訊:
# 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