HP-UX安全手冊

tonykorn97發表於2006-05-21
一、 基本系統管理

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、 安裝最新的補丁。

安裝補丁時要注意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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245296/,如需轉載,請註明出處,否則將追究法律責任。

相關文章