歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

solaris 9 一般安全設置


1. 選擇合適的安裝。
只安裝需要的軟件包。
本例為solaris9

2. 安裝系統補丁

unzip 9_Recommended.zip
cd 9_Recommended
./install_cluster

3. 最小化啟動服務
a. 禁止不需要啟動的服務。一般情況下服務都可禁止啟動

a.1 S01MOUNTFSYS
Mount all local filesystems ,不能禁止
a.2 S05RMTMPFILES
刪除臨時文件 需要啟動
a.3 S20sysetup
系統設置 需要啟動
a.4 S21perf
全部被注釋掉了 。。。。。。
網絡設置 需要啟動
a.6 S40llc2
LLC2協議支持 需要啟動
a.7 S42ncakmod
ncakmod is used to start or stop the Solaris Network Cache
and Accelerator ("NCA") kernel module 需要啟動
a.8 S47pppd
ppp支持 不需要啟動
執行:mv S47pppd _S47pppd
a.9 S69inet
tcp/ip的配置 需要啟動
a.10 S70sckm
Sun fire 15000 Key Management Daemon 不需要啟動
執行:mv S70sckm _S70sckm
a.11 S70uucp
Unix-to-Unix Copy 不需要
mv S70uucp _S70uucp
a.12 S71ldap.client
- 啟動LDAP客戶端 不需要
mv S71ldap.client _S71ldap.client
a.13 S71rpc
S71rpc + 啟動rpcbind服務 rpcbind (RPC Portmap服務),如果需要CDE的話,這個進程是必需的 需要啟動
a.14 S71sysid.sys
配置系統參數 需要
a.15 S72autoinstall
當放入sun兼容的媒體介質時,會自動啟動安裝腳本 不需要
mv S72autoinstall _S72autoinstall
a.16 S72directory
目錄服務 不需要
mv S72directory _S72directory
a.17 S72inetsvc
啟動inet server,包含named/nis 如果不需要 named和nis服務,可以禁用 不需要
mv S72inetsvc _S72inetsvc
a.18 S72slpd
打印服務 不需要
mv S72slpd _S72slpd
打印服務

a.19 S73cachefs.daemon
NFS緩存服務,可以提高NFS吞吐率 不需要
mv S73cachefs.daemon _S73cachefs.daemon
a.20 S73mpsadm
cluster 服務管理進程? 不需要
mv S73mpsadm _S73mpsadm
a.21 S73nfs.client
nfs客戶端 不需要
mv S73nfs.client _S73nfs.client
a.22 S74autofs
當使用NFS時,這個進程會自動加載或卸載無用的用戶網絡文件系統
配置文件/etc/auto_home和auto_master
但是當沒有使用nfs時,這個進程會對系統管理造成一些負面影響 不需要
mv S74autofs _S74autofs
a.23 S74syslog
系統日志服務進程 需要
a.24 S74xntpd
網絡時間同步服務 不需要
mv S74xntpd _S74xntpd
a.25 S75cron
自動執行腳本服務 需要
a.26 S75flashprom
看起來象一個flash更新腳本 需要
a.27 S75savecore
核心內存轉儲腳本 需要
a.28 S76nscd
DNS名字緩存服務 不需要
mv S76nscd _S76nscd
a.29 S77sf880dr
針對V880機器的一個腳本 不需要
mv S77sf880dr _S77sf880dr
a.30 S80lp
打印服務 不需要
mv S80lp _S80lp
a.31 S80spc
還是打印服務 不需要
mv S80spc _S80spc
a.32 S85power
電源管理 需要
a.33 S88sendmail
郵件服務 不需要
mv S88sendmail _S88sendmail
a.34 S88utmpd
The utmpd daemon monitors the /var/adm/utmpx file
與帳號信息控制有關 ; 守護程序在規則的時間間隔內監控 /etc/utmp 文件以獲得用戶進程項的有效性。根據進程表
交叉校驗該項的進程標識來除去/etc/utmp 文件中已終止的但未清除的用戶進程。 需要
a.35 S89PRESERVE
不知所雲 需要
a.36 S90loc.ja.cssd
看了腳本,不知到CS干嗎 需要吧
a.37 S90wbem
WBEM,Solaris系統管理界面服務器,可以使用/usr/sadm/bin/smc
啟動客戶端程序連接管理 不需要
mv S90wbem _S90wbem
a.38 S91afbinit S91gfbinit S91ifbinit S91jfbinit
For systems with Elite3D Graphics 沒有顯卡的基本就不要了 不需要
mv S91afbinit _S91afbinit
mv S91gfbinit _S91gfbinit
mv S91ifbinit _S91ifbinit
mv S91jfbinit _S91jfbinit
a.39 S91zuluinit
Find out how many zulu cards are installed on the system 不需要
mv S91zuluinit _S91zuluinit

a.40 S93cacheos.finish
cache文件系統 不需要
mv S93cacheos.finish _S93cacheos.finish
a.41 S94Wnn6
日文輸入系統 不需要
mv S94Wnn6 _S94Wnn6
a.42 S94ncalogd
NCA進程日志 不需要
mv S94ncalogd _S94ncalogd
a.43 S95IIim
啟動輸入法守護進程 Solaris國際化支持的一部分,啟動東亞語言輸入法 需要
a.44 S95svm.sync
devfsadm ,devfs同步進程 監控系統硬件,使/dev與/devices設備文件同步 需要
a.45 S98efcode
embedded FCode interpreter daemon, efdaemon is used on selected platforms as part of the processing of some
dynamic reconfiguration events 不知道干嗎的, 只好讓他運行了
a.46 S99atsv
可能是支持日文的,機器上沒裝, 不需要
a.47 S99audit
審計進程 需要
a.48 S99dtlogin
啟動CDE登錄進程 Solaris CDE圖形界面啟動進程 需要
a.49 S99rcapd
跟資源回收有關的 需要

rc3.d下面的
a.50 S13kdc.master S14kdc
Kdc服務 不需要
mv S13kdc.master _S13kdc.master
mv S14kdc _S14kdc
nfs服務 不需要
遠程啟動服務 不需要
a.53 S34dhcp
dhcp服務 不需要
mv S34dhcp _S34dhcp
a.54 S50apache
http服務 不需要
mv S50apache _S50apache
a.55 S50san_driverchk
San驅動檢查? 機器上沒裝 不需要
mv S50san_driverchk _S50san_driverchk
a.56 S76snmpdx
啟動snmp服務 不需要
mv S76snmpdx _S76snmpdx
a.57 S77dmi
snmp的子服務 不需要
mv S77dmi _S77dmi
a.58 S80mipagent
啟動Mobile IP 代理 不需要
mv S80mipagent _S80mipagent
a.59 S81volmgt
軟盤光驅的卷管理 需要
a.60 S84appserv
Sun one server的東東 不需要
mv S84appserv _S84appserv
a.61 S89sshd
需要
a.62 S90samba
需要掛載windows文件系統才需要 不需要
mv S90samba _S90samba
a.63 S86directorysnmp
跟Sun Directory目錄服務有關 不需要
mv S86directorysnmp _S86directorysnmp
a.64 S99JESsplash
不知道干嗎 不需要
mv S99JESsplash _S99JESsplash









b. 與a相關的配置文件也可去除,使系統更加易於審計

4. 關閉inetd服務
a. ssh作為telnet和ftp來說更安全。
b. ssh作為啟動服務並一直運行的時候,再將inetd服務器完全關閉。
c. 必須運行inetd服務的時候一定需要:
a.2. 對保留使用的inetd服務表項使用tcp wrappers (tcpd進程)。
a.3. 使用inetd -t 參數記錄擴展的日志信息。

5. 調整內核
5.1 減少arp過期時間
ndd -set /dev/arp arp_cleanup_interval 60000
//ndd -set /dev/ip ip_ire_flush_interval 60000// solaris9 已經沒有這個參數

5.2 IP Forwarding (IP轉發)
a. 關閉IP轉發
ndd -set /dev/ip ip_forwarding 0
b. 嚴格限定多主宿主機,如果是多宿主機,還可以加上更嚴格的限定防止ip spoof的攻擊
ndd -set /dev/ip ip_strict_dst_multihoming 1
c. 轉發包廣播由於在轉發狀態下默認是允許的,為了防止被用來實施smurf攻擊,關閉這一特性
ndd -set /dev/ip ip_forward_directed_broadcasts 0
5.3 路由
a. 關閉轉發源路由包
ndd -set /dev/ip ip_forward_src_routed 0
5.4 ICMP:網絡控制信息協議
a. 禁止響應Echo廣播:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
b. 禁止響應時間戳廣播
ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
c. 禁止響應地址掩碼廣播
ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0
5.5 重定向錯誤
a. 禁止接受重定向錯誤
ndd -set /dev/ip ip_ignore_redirect 1
b. 禁止發送重定向錯誤報文
ndd -set /dev/ip ip_send_redirects 0
c. 禁止時間戳響應
ndd -set /dev/ip ip_respond_to_timestamp 0
5.6 SYN_flood攻擊又稱半開式連接攻擊,
a. 將默認的隊列值從1024提高到4096來降低受到攻擊時的危害
ndd -set /dev/tcp tcp_conn_req_max_q0 4096
5.7 連接耗盡攻擊
a. 將核心以連接隊列參數(默認是128)增大到1024來預防這種攻擊
ndd -set /dev/tcp tcp_conn_req_max_q 1024
5.8 防止IP 欺騙
對於solaris系統Tcp協議實現的ISN生成有三種方式。
0: 可預測的ISN
1: 增強的ISN 隨機生成
2: RFC 1948描述的ISN生成方式
所有版本的solaris默認生成方式值是1。2.5.1只有 0,1兩種方式,2.6/7擁有0,1,2三種ISN生成方式。
修改/etc/default/inetinit文件來提高ISN的生成強度。將 TCP_STRONG_ISS=1改為 TCP_STRONG_ISS=2重起系統生效。
5.9 增加私有端口
一般的情況下,1-1024端口被稱為私有端口,只允許具有根權限的進程連接。但是有些大於1 024的端口,即使需要這樣的限制,
卻無法定義,如NFS的服務器端口2049,當然還有一些其他定義的高於1024的私有端口。

a. 自定義最小的非私有端口
ndd -set /dev/tcp tcp_smallest_nonpriv_port 2050
這樣以來,0-2049都被定義為私有端口。
b. 用來顯示已經定義的擴展私有端口
ndd /dev/tcp tcp_extra_priv_ports
c. 單獨增加一個私有端口定義
ndd -set /dev/tcp tcp_extra_priv_ports_add 6112
d. 刪除私有端口定義
ndd -set /dev/tcp tcp_extra_priv_ports_del 6112
e. 要注意的是,不要隨便定義私有端口,因為有些非根權限的進程會使用這些端口。特別是改變最小非私有端口這個參數,
經常會引起問題。應仔細分析你的需求再用擴展私有端口定義的方式單獨增加。
f. ndd /dev/tcp tcp_extra_priv_ports 執行結果(某系統)
2049
4045
9010
一共定義了3個私有端口
5.10 其他內核參數的調整
a. – Enable stack protection 直譯為允許堆棧保護,應該使防止緩沖區溢出攻擊
You should definitely add the following two lines to your /etc/system file:
set noexec_user_stack = 1
set noexec_user_stack_log = 1
b. – Prevent core dumps 避免核心內存轉儲
coreadm -d process
c. – Set limits on processes

6. 增強日志記錄
? Create /var/adm/loginlog
? Additional levels of logging:
– System accounting (sar and friends)
– Process accounting
– Kernel level auditing (BSM)
7. 保護文件系統
? File systems should either be mounted
"nosuid" or "ro" (read-only)
? Set "logging" option on root file system
if you're running Solaris 8 or later
? Don't forget removable media devices:
– Turn off vold if possible
8. 設置警告信息
兩個文件 /etc/motd ;/etc/issue
– /etc/default/{telnetd,ftpd}
– EEPROM
– GUI Login

9. 加強系統的訪問控制
9.1. 只允許root從console登陸
CONSOLE=/dev/console is set in /etc/default/login
sshd_config 裡面設置 PermitRootLogin no
9.2. 禁止或刪除不用的帳號
對不需要登陸的帳號,可將/etc/passwd文件中的shell選項修改為/bin/false 或者/dev/null

9.3. 創建/etc/ftpusers
在該文件中未指定的用戶才能使用ftp服務
9.4. 禁止.rhosts支持
a. 刪除系統中的.rhosts文件
b. 使用ssh的情況下,保證sshd_config文件中("IgnoreRhosts yes")
c. /etc/pam_conf and remove any lines containing rhosts_auth, even if you've disabled rlogin/rcp.
9.5. 限制對cron和at的訪問
cron.allow and at.allow列出有權運行提交修改cron和at任務的用戶
9.6. 設置eeprom到安全模式
Setting "eeprom security-mode=command" will cause the machine to prompt for a password
before boot-level commands are accepted. This prevents attackers with physical access from booting from
alternate media (like a CD-ROM) and bypassing your system security.
9.7. 限制xdmcp,設置鎖定屏幕的屏保
If you're running X Windows on the machine, make sure to disable remote XDMCP access in
/etc/dt/config/Xaccess. You may also want to set a default locking screensaver timeout for your
users in /etc/dt/config/*/sys.resources.

10. 安裝安全工具
10.1 至少的安全工具


– SSH
– TCP Wrappers
– NTP
– fix-modes
10.2 增強工具
– Tripwire, AIDE, etc.
– Logsentry (formerly Logcheck) or Swatch
– Host-based firewall, Portsentry, etc.
Copyright © Linux教程網 All Rights Reserved