成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過服務管理工具(SMF)實現系統保護

安全 網站安全
Solaris 10系統上的所有設備都由服務管理工具(SMF)控制。本文向大家展示了如何將NFS,IP過濾程序,FTP和Apache2 Web服務器配置成為SMF服務的方法。

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

3.1服務管理工具(SMF)

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

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

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

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

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

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

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

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

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

8. SMF對系統初始化狀態作出響應,如多用戶運行級別。

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

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

3.2 SMF配置如何

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

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

3.3修改Solaris服務默認設置

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

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

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

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

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

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

3.3.1配置NFS服務

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

1. 列出服務的狀態。

2. 修改或創建配置文件。

3. 啟用服務。

4. 驗證服務是否在線。

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

6. 測試并使用服務。

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

# 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過濾服務只有在我們創建配置文件后才會被啟用。網頁的安全要求指示你在文件中放入的配置規則。某些服務,如IPsec,需要每個相連的系統都具備一個配置文件??蓤绦腥缦虏僮鲉⒂靡粋€需要配置文件的服務:

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

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

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

4. 在一個或兩個系統上啟用服務。

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

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

# 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

為了測試不同配置,你可以創建另一個配置文件,驗證文件句法更改config/entities屬性以指向新的文件。測試文件為Web數據區域添加了規則。

# 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

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

# 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命令控制。通常,網頁安全策略要求FTP服務器記錄所有FTP連接的詳細信息。在下列兩個示例中,我們需要配置ftp服務的屬性,該ftp服務記錄了連接信息并啟用了調試。

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

1. 列出服務狀態。

2. 列出服務屬性。

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

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

5. 啟用服務。

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

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

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

要繼續這一示例,應禁用該服務。假設你想在服務上線前創建監控。

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屬性包含啟動服務的命令。該命令的手冊頁描述了命令可接受的參數。我們可以選擇參數添加到exec屬性中,以便該服務啟動時,命令按這些參數運行。因此,若想修改運行服務的命令,可按照如下步驟操作:

1. 列出服務的exec屬性。

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

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

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

5. 啟用服務。

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

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

# 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"

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

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機發送到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操作系統的一部分。Web服務器通常是攻擊者的目標。我們可使用RBAC來減少服務器的漏洞。其他Solaris功能,如區域,在創建網絡服務的時候也能發揮作用。

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

1. 列出服務屬性。

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

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

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

5. 啟用服務。

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

SUNWapch2r和SUNWapch2u數據包提供了Apache2 Web服務器程序。Apache2服務的默認狀態時禁用。

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

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

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

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

◆添加服務使用特權端口時所需要的網絡優先權, 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.

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

# 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

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

現在,我們可以啟用服務。驗證服務是否在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

【編輯推薦】

  1. IIS安全:配置web服務器權限更好地實現訪問控制
  2. 精心配置IIS打造安全Web服務器
責任編輯:許鳳麗 來源: IT專家網
相關推薦

2010-11-16 10:00:59

2011-08-12 10:38:09

MongoDB

2020-10-30 11:18:47

網絡技術工具

2020-09-30 14:05:22

網絡管理

2009-04-24 21:13:45

服務器虛擬化Vmware

2012-12-06 11:31:40

虛擬化

2010-02-24 17:07:20

2012-04-09 09:43:49

云計算云管理

2020-07-01 08:45:00

開源開發工具

2010-05-13 17:46:51

IIS服務器

2014-07-14 15:45:08

服務器虛擬化

2013-08-30 14:30:59

系統自動化自動化配置SaltStack

2009-11-19 17:24:01

2014-03-28 11:15:42

phpmyadminMySQL管理

2012-03-01 10:04:02

虛擬化云計算混合云

2022-05-06 12:04:24

Ansible管理工具

2013-07-15 15:00:26

項目管理工具

2021-03-04 12:55:01

systemd進程管理工具Linux

2013-07-17 09:54:17

2023-03-07 14:21:57

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区小视频 | 日本天堂一区 | 狠狠干天天干 | 精品国产一区二区三区日日嗨 | 国产精品成人一区二区三区夜夜夜 | 久久国产精品亚洲 | 亚洲男女视频在线观看 | 成人不卡视频 | 另类专区成人 | 999免费网站 | 国产激情在线看 | 在线色网| 成人一区二区在线 | 911精品美国片911久久久 | 一二三在线视频 | 国产精品久久久久久婷婷天堂 | 国产日韩精品一区 | 成人av高清在线观看 | 日韩在线视频一区 | 色综合99 | 欧美日韩高清在线一区 | 超碰人人人人 | 91精品久久久久久久久 | 在线观看中文字幕dvd播放 | 日日操视频 | 中文字幕不卡在线观看 | 欧美视频三级 | 欧美日韩国产一区二区三区 | 国产精品成人一区二区三区 | 久久亚洲国产 | 成人小视频在线观看 | 国产99久久久国产精品下药 | 欧美精品福利视频 | 8x国产精品视频一区二区 | 成年人免费网站 | 国产高潮好爽受不了了夜夜做 | 亚洲国产精品福利 | 精品av天堂毛片久久久借种 | 久久爱一区 | 综合久久99 | 久久久91精品国产一区二区三区 |