日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
通過服務管理工具(SMF)實現(xiàn)系統(tǒng)保護

Solaris 10系統(tǒng)上的所有設備都由服務管理工具(SMF)控制。在SMF具有許多優(yōu)勢,包括附屬服務的自動啟動和從服務損耗中恢復的功能等,后者使用的是SMF中基于角色的權限控制(RBAC)。使用基于角色的權限控制,程序能以準確的權限和所需授權運行。本文向大家展示了如何將NFS,IP過濾程序,F(xiàn)TP和Apache2 Web服務器配置成為SMF服務的方法。

3.1服務管理工具(SMF)

與傳統(tǒng)UNIX運行控制腳本相比,SMF為Solaris服務提供的管理界面更加強大。

Solaris服務,如系統(tǒng)進程,無交互后臺程序,應用和腳本都是可執(zhí)行的。數(shù)據(jù)庫軟件,Web服務器軟件和特定網(wǎng)頁腳本都可以通過SMF控制。SMF通過以下功能為我們提供簡單,快速和可視性的管理。

1. 可用管理命令svcadm啟用,禁用或重啟服務。

2. 失敗的服務會被附屬命令自動重啟。而且啟動失敗的源代碼不會影響自動重啟。

3. 可通過svcs, svcadm和svccfg等命令查看和管理服務對象。

4. 服務調試很簡單。svcs-x命令可以對服務無法正常運行作出解釋,且每個服務的記錄文件也簡化了調試過程。

5. 由于配置狀態(tài)保留在服務清單中,所以可輕松對服務的某一特定配置進行測試,備份和恢復。

6. 因為服務按照若干服務之間的附屬關系啟動和停止,所以系統(tǒng)啟動和關閉速度更快。多個服務可同時啟動。

7. 管理員可通過RBAC權限文件,角色,授權認可或特權等方式,將任務放心委任給那些被許可使用特定管理服務的非根用戶。

8. SMF對系統(tǒng)初始化狀態(tài)作出響應,如多用戶運行級別。

9. SMF同樣適用于使用傳統(tǒng)UNIX rc腳本的系統(tǒng)。雖然我們不推薦大家這樣做,但是用戶仍然可將傳統(tǒng)腳本用于某些服務,欲了解相關詳情,可查看smf(5), svcadm(1M), svcs(1)和svccfg(1M)的介紹。

每個服務的清單都保存在中心存儲庫中。我們可以定義大量被稱為配置文件的清單集。

3.2 SMF配置如何

服務和SMF清單一起發(fā)送。清單格式是/var/svc/manifest/ 目錄下的XML文件。如果服務被啟用或禁用,那么其他基本配置和默認信息,該清單會包含服務附屬信息。在系統(tǒng)啟動期間,該清單會被輸入到SMF存儲庫中。存儲庫是/etc/svc/ 目錄下的一個數(shù)據(jù)庫。

你可以擁有每個服務的多個清單或截圖。在啟動時,配置文件已被選定。配置文件會啟用或禁用每個Solaris服務。啟動期間,當配置文件初始化系統(tǒng)后,管理員便可以進一步用SMF命令完成自定義配置。這些命令可直接修改存儲庫和配置文件,而更改后的配置也會在下一次啟動時被保存。#p#

3.3修改Solaris服務默認設置

在被限定配置文件強化的Solaris系統(tǒng)上,你想在特定系統(tǒng)上使用的網(wǎng)絡服務可能被禁用了。例如,ftp服務和NFS文件共享都被禁用了。需要配置的服務,如IP過濾程序和IPsec的默認狀態(tài)都是禁用。

下面提供幾種用SMF完成某些特殊系統(tǒng)配置的舉例。一旦你配置完系統(tǒng),清單就會出現(xiàn)在存儲庫中。當系統(tǒng)重啟時,其配置也會被保存。請看:

1. 必須通過配置文件進行配置的服務會在該文件被配置完成后啟用。如果你沒有配置文件或者該文件不能被讀取,那么這種情況也會記錄在案。

2. 或許你想對一項服務嘗試不同配置。使用不同的配置文件,就可以創(chuàng)建測試環(huán)境。最終的配置狀態(tài)會在重啟時保存下來。

3. 某些服務,如FTP,是必需的但卻不要求監(jiān)控。你可以在將其聯(lián)網(wǎng)前,創(chuàng)建監(jiān)控服務,如此一來,就可確保該服務首次使用時符合網(wǎng)頁的安全條款。

4. 如果你想限定一項網(wǎng)絡服務的攻擊面??蓪pache2 Web服務進行配置,令其使用RBAC來限定服務所使用的權限?;蛘吣阋部梢哉埱笠粋€比root更受局限的帳戶運行該服務。

3.3.1配置NFS服務

為了配置一個要求你自定義配置文件的服務,可執(zhí)行如下操作:

1. 列出服務的狀態(tài)。

2. 修改或創(chuàng)建配置文件。

3. 啟用服務。

4. 驗證服務是否在線。

5. 如果系統(tǒng)出具錯誤報告,請讀取服務記錄,然后修復錯誤。

6. 測試并使用服務。

在下列示例中,我們要配置一個系統(tǒng)作為幫助文檔。該文件的屬性必須是只讀共享。

# svcs -a | grep nfs
disabled Jan_10 svc:/network/nfs/server:default
# vi /etc/dfs/dfstab
share -F nfs -o ro /export/helpdocs
# svcadm enable svc:/network/nfs/server
# svcs -x svc:/network/nfs/server:default
State: online since Tue Jan 20 5:15:05 2009
See: nfsd(1M)
See: /var/svc/log/network-nfs-server:default.log
Impact: None

如果我們在沒有支持文件的情況下啟用了一個服務,查看記錄文件確定問題出自哪里:

# svcs -x svc:/network/nfs/server:default (NFS server)
State: disabled since Tue Jan 20 5:10:10 2009
Reason: Temporarily disabled by an administrator.
See: http://sun.com/msg/SMF-8000-1S
See: nfsd(1M)
See: /var/svc/log/network-nfs-server:default.log
Impact: This service is not running.
# vi /var/svc/log/network-nfs-server:default.log
...
No NFS filesystems are shared
...

#p#

3.3.2 配置IP過濾服務

和NFS服務一樣,IP過濾服務只有在我們創(chuàng)建配置文件后才會被啟用。網(wǎng)頁的安全要求指示你在文件中放入的配置規(guī)則。某些服務,如IPsec,需要每個相連的系統(tǒng)都具備一個配置文件??蓤?zhí)行如下操作啟用一個需要配置文件的服務:

1. 創(chuàng)建配置文件。如果不知道配置文件名稱,可查閱服務名稱手冊頁,然后閱讀相關句法。

2. 如果有可用的驗證句法,應驗證文件的句法。

3. 如果服務需要在兩個系統(tǒng)上運行,如IPsec服務,可對第二個系統(tǒng)進行配置。

4. 在一個或兩個系統(tǒng)上啟用服務。

5. 驗證服務是否正常運行。

在下列例子中,我們要保護那些包含非全局區(qū)域的系統(tǒng)。IP過濾程序的規(guī)則保護了全局區(qū)域和Web服務器區(qū)域。你首先要向/etc/ipf/ipf.配置文件創(chuàng)建并添加規(guī)則。

# vi /etc/ipf/ipf.conf
set intercept_loopback true;
# *** GLOBAL ZONE: (IN: TCP/22, OUT: ANYTHING)
pass in quick proto tcp from any to global-zone port = 22
keep state keep frags
pass out quick from global-zone to any keep state keep frags
# *** Web Server ZONE: (IN: TCP/80, OUT: NOTHING)
pass in quick proto tcp from any to websvc port = 80
keep state keep frags
block out quick from websvc to any
# *** DEFAULT DENY
block in log all
block in from any to 255.255.255.255
block in from any to 127.0.0.1/32

然后在啟用服務前要驗證配置文件的句法。

# ipf /etc/ipf/ipf.conf
# svcs -a | grep ipf
disabled Dec_10 svc:/network/ipfilter:default
# svcadm enable svc:/network/ipfilter:default
# svcs ipfilter
enabled Jan_10 svc:/network/ipfilter:default

為了測試不同配置,你可以創(chuàng)建另一個配置文件,驗證文件句法更改config/entities屬性以指向新的文件。測試文件為Web數(shù)據(jù)區(qū)域添加了規(guī)則。

# vi /etc/ipf/testipf.conf
set intercept_loopback true;
# *** GLOBAL ZONE: (IN: TCP/22, OUT: ANYTHING)
pass in quick proto tcp from any to global-zone port = 22
keep state keep frags
pass out quick from global-zone to any keep state keep frags
# *** Web Server ZONE: (IN: TCP/80, OUT: NOTHING)
pass in quick proto tcp from any to websvc port = 80
keep state keep frags
block out quick from websvc to any
# *** Web Data ZONE: (IN: TCP/22, OUT: ANYTHING)
pass in quick proto tcp from any to webdat port = 22
keep state keep frags
pass out quick from webdat to any keep state keep frags
# *** DEFAULT DENY
block in log all
block in from any to 255.255.255.255
block in from any to 127.0.0.1/32
# ipf /etc/ipf/testipf.conf
# svcprop ipfilter | grep config
config/entities fmri file://localhost/etc/ipf/ipf.conf
config/grouping astring require_all
config/restart_on astring restart
config/type astring path
# svccfg -s /network/ipfilter \
setprop config/entities=file://localhost/etc/ipf/testipf.conf

刷新重啟服務后,要驗證是否已經(jīng)設置該屬性。

# svcadm refresh ipfilter
# svcadm restart ipfilter
# svcprop ipfilter | grep etc
config/entities fmri file://localhost/etc/ipf/testipf.conf

測試完成后,可保存原始文件。

# svccfg -s /network/ipfilter \
setprop config/entities=file://localhost/etc/ipf/ipf.conf
# svcadm refresh ipfilter
# svcadm restart ipfilter
# svcprop ipfilter | grep etc
config/entities fmri file://localhost/etc/ipf/ipf.conf

#p#

3.3.3 配置ftp服務

ftp服務由inetd命令控制。通常,網(wǎng)頁安全策略要求FTP服務器記錄所有FTP連接的詳細信息。在下列兩個示例中,我們需要配置ftp服務的屬性,該ftp服務記錄了連接信息并啟用了調試。

為了對要求你更改服務屬性的服務進行配置,需要執(zhí)行以下步驟:

1. 列出服務狀態(tài)。

2. 列出服務屬性。

3. 更改服務的一個或多個屬性。

4. 驗證服務屬性是否被更改。

5. 啟用服務。

6. 驗證屬性更改是否生效。

在這個示例的第一部分,我們可以將FTP配置為記錄FTP服務器系統(tǒng)A上的每次登錄。注意該ftp服務在系統(tǒng)A上的初始狀態(tài)為禁用。

A # svcs ftp
STATE STIME FMRI
disabled Jan_10 svc:/network/ftp:default
A # inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a"
user="root"
...
default tcp_trace=FALSE
default tcp_wrappers=FALSE
default connection_backlog=10

用于ftp服務的注冊記錄屬性是tcp-trace。我們可以將其值從FALSE改為TURE,然后啟用該服務并驗證服務是否在線。

A # inetadm -m svc:/network/ftp:default tcp_trace=TRUE
A # inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
tcp_trace=TRUE
A # svcadm enable svc:/network/ftp:default
A # svcs ftp
STATE STIME FMRI
online 07:07:07 svc:/network/ftp:default

而后,以普通用戶身份在B機上運行ftp命令

B $ ftp A
Connected to A.
220 A FTP server ready.
Name (A:testftp):
331 Password required for testftp.
Password:
230 User testftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

作為超級用戶,再檢查A機上記錄文件中的注冊記錄。

A # tail -1 /var/adm/messages
Jan 10 07:20:20 A inetd[16208]: [ID 317013 daemon.notice] ftp[6036] from B 49822

要繼續(xù)這一示例,應禁用該服務。假設你想在服務上線前創(chuàng)建監(jiān)控。

A # svcadm disable ftp
A # svcs -x ftp
svc:/network/ftp:default (FTP server)
State: disabled since January 20, 2009 07:20:22 AM PST
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: in.ftpd(1M)
See: ftpd(1M)
Impact: This service is not running.

用于ftp服務的exec屬性包含啟動服務的命令。該命令的手冊頁描述了命令可接受的參數(shù)。我們可以選擇參數(shù)添加到exec屬性中,以便該服務啟動時,命令按這些參數(shù)運行。因此,若想修改運行服務的命令,可按照如下步驟操作:

1. 列出服務的exec屬性。

2. 在手冊頁,確定要加入exec命令的參數(shù)。

3. 將選定參數(shù)添加到服務的exec屬性。

4. 驗證exec屬性是否更改。

5. 啟用服務。

6. 測試并使用服務。#p#

在下列示例中,我們可以修改ftp服務,以提供調試信息和每次連接的詳細記錄。若想修改ftp服務的exec屬性,首先要列出exec屬性,然后閱讀exec命令的手冊頁以確定要添加的參數(shù)。

# inetadm -l svc:/network/ftp:default | grep exec
exec="/usr/sbin/in.ftpd -a"
# man in.ftpd

在in.ftpd(1M)手冊頁,選擇提供詳細信息的選項。

-v為syslogd(1M)寫調試信息。

-w 記錄wtmpx(4) file中每位用戶登錄,登出的記錄。

-i記錄FTP服務器到xferlog(4)所接收的所有文件名。

修改exec屬性,驗證屬性是否更改成功。

# inetadm -m ftp exec="/usr/sbin/in.ftpd -a -i -v -w"
# inetadm -l ftp | grep exec
exec="/usr/sbin/in.ftpd -a -i -v -w"

測試屬性更改是否生效。首先,啟用服務。然后以普通用戶的身份發(fā)送一個文件。最后驗證記錄文件是否被更新。

A # svcadm enable svc:/network/ftp:default
A # svcs ftp
STATE STIME FMRI
online 07:07:07 svc:/network/ftp:default

以普通用戶的身份,將一個文件放入FTP存儲庫中。

以超級用戶身份,檢查xferlo

B $ ftp A
Connected to A.
220 A FTP server ready.
Name (A:testftp):
331 Password required for testftp.
Password:
230 User testftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput design.tar
mput design.tar? y
200 PORT command successful.
150 Opening BINARY mode data connection for design.tar.
226 Transfer complete.
^D
ftp> 221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 361 bytes in 0 transfers.
221-Thank you for using the FTP service on A.
221 Goodbye.
B $

g文件中的記錄。該記錄表明用戶將design.tar文件從B機發(fā)送到A機的操作不成功。

A # cat /var/log/xferlog
Sat Jan 20 07:18:10 2009 1 B.mydomain.com 
0 /home/test/design.tar b _ i r test ftp 0 * c

3.3.4 配置Apache2 Web服務

Apache2 Web服務程序是Solaris操作系統(tǒng)的一部分。Web服務器通常是攻擊者的目標。我們可使用RBAC來減少服務器的漏洞。其他Solaris功能,如區(qū)域,在創(chuàng)建網(wǎng)絡服務的時候也能發(fā)揮作用。

可執(zhí)行以下步驟來配置使用RBAC的服務:

1. 列出服務屬性。

2. 創(chuàng)建一個權限文件或一個角色,或者是用于服務的授權許可。

3. 為服務添加權限或刪除權限。

4. 驗證服務屬性是否更改成功。

5. 啟用服務。

6. 驗證屬性更改是否生效。

SUNWapch2r和SUNWapch2u數(shù)據(jù)包提供了Apache2 Web服務器程序。Apache2服務的默認狀態(tài)時禁用。

# svcs apache2
disabled 11:11:10 svc:/network/http:apache2

默認狀態(tài)下,服務是通過root帳戶啟動。但是Apache2服務的http.conf文件創(chuàng)建了一個無交互后臺程序webservd來運行該服務。當你用默認文件配置服務時,該服務會在root帳戶下啟動,切換到webservd帳戶,通過所有權限運行。

執(zhí)行下列操作可減少Apache2服務器的權限,并用webservd啟動該服務。

◆刪除服務不需要的基本權限,proc_session, proc_info和file_link_any。

◆添加服務使用特權端口時所需要的網(wǎng)絡優(yōu)先權, net_privaddr。

◆不要更改限定設置。

◆將用戶和組設置為webservd。那么在SMF清單中設置完用戶和組后,服務以webservd啟動而不是以root帳戶啟動。

# svccfg -s apache2
... apache2> setprop start/user = astring: webservd
... apache2> setprop start/group = astring: webservd
... apache2> setprop start/privileges = astring:
basic,!proc_session,!proc_info,!file_link_any,net_privaddr
... apache2> end
# svcadm -v refresh apache2
Action refresh set for svc:/network/http:apache2.

欲驗證該配置是否已經(jīng)被成功設置,可檢驗服務的啟動屬性。

# svcprop -v -p start apache2
start/exec astring /lib/svc/method/http-apache2\ start
start/user astring webservd
start/group astring webservd
start/privileges astring
basic,!proc_session,!proc_info,!file_link_any,net_privaddr
start/limit_privileges astring :default
start/use_profile boolean false

注意,如果你創(chuàng)建的權限文件包含在服務的特權中,那么你可以輸入權限文件的名稱,并將其作為use_profile屬性的值,這樣可免去設置特權的麻煩。

現(xiàn)在,我們可以啟用服務。驗證服務是否在webservd帳戶下開啟,且是否具備受限特權。

# svcadm -v enable -s apache2
svc:/network/http:apache2 enabled.
# svcs apache2
STATE STIME FMRI
online 12:02:21 svc:/network/http:apache2
# ps -aef | grep apache | grep -v grep
webservd 5568 5559 0 12:02:22 ? 0:00 /usr/apache2/bin/httpd -k start
...
# ppriv -S 5559
5559: /usr/apache2/bin/httpd -k start
flags =
E: net_privaddr,proc_exec,proc_fork
I: net_privaddr,proc_exec,proc_fork
P: net_privaddr,proc_exec,proc_fork
L: limit

本文標題:通過服務管理工具(SMF)實現(xiàn)系統(tǒng)保護
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/djdsshh.html