以Solaris架設FTP虛擬系統(轉)
以Solaris架設FTP虛擬系統(轉)[@more@]1、何謂虛擬系統
"虛擬系統"的意思是"假的系統",亦即當一個使用者使用的是"虛擬系統"時,他所看到的系統檔案及程式,並不是系統管理者所使用的檔案。
例如管理者鍵入"ls -al /usr/bin/ls"的命令時,看到的檔案大小為32767 bytes,而其他使用者鍵入"ls -al /usr/bin/ls"的命令時,看到的卻為65535 bytes,表示為兩個檔案的路徑雖然相同,但卻為不同的檔案。
2、虛擬系統的功能為何
(1) 避免其它使用者使用重要資料
若您不願意讓使用者觀看或執行某些檔案,那你可以使用虛擬系統,讓使用者看不到特定的檔案,或是創造另一個與真正檔案內容不同的檔案。
(2) 增加系統安全性
若您必須開放使用者登入機器,又害怕使用者利用系統內部的漏洞取得額外的許可權,破壞系統設定與竊取資料,使用虛擬系統將可以保護系統的資料與系統運作,讓惡意的使用者只能做到有限的破壞。
3、如何以Solaris架設虛擬系統
其實所謂的"虛擬系統",主要是利用chroot(Change Root)來達成,亦即改變根目錄的位置,而使得系統對應到一新的系統設定中。
要達到這個目的,大致上可分為兩種方法,一是修改程式碼,另外一個則是用系統本身的命令來達成。
在此我們並不打算詳細說明有關修改程式碼的部份如何做,簡單的說,程式部份主要是利用chroot()這個C函式來改變根目錄的位置,較為麻煩的地方在於你可能要修改inetd程式或其它網路服務程式,當然你也可以自己寫這些程式,不過不是每個管理者都對攢寫程式有興趣的。
但不論你採用哪一種方法,有一件事是都需要做的,那就是創造一個虛擬的系統環境。以下簡單列出如何在"/vs"這個目錄下,創造一個新的系統環境,並且不修改程式來啟動虛擬系統的服務:
tar -cf /system.tar /var /usr /etc /dev /devices
將系統中的/var, /usr, /etc, /dev, /devices壓入system.tar這個檔。
tar -xf /system.tar /vs
將system.tar這個檔的資料解開放在/vs目錄下。
以上兩行指令便能系統的檔案到"/vs"目錄去,此時當你下達"chroot /vs/usr/bin/sh"指令時,將會得到和原本系統相似的環境。而在這樣的環境中,使用者不結束目前的shell(chroot後所得的的shell)是無法藉由任何指令返回原來的系統的。
然而事實上你不需要全部的系統檔案到"虛擬系統"去,只要所需的檔案即可。至於什麼是所需的檔案,端看你安裝了哪些服務。底下所列為在"/vs"中創造FTP的"虛擬系統"做法:
(1)"虛擬系統"中的"/etc"目錄
創造"虛擬系統"中的"/etc"目錄,以放置密碼及設定檔。
mkdir /vs/etc
設定"虛擬系統"中的"/etc/inetd.conf"檔。
echo "ftp stream tcp nowait root /usr/sbin/in.ftpd
in.ftpd" > /vs/etc/inetd.conf
設定"虛擬系統"中的"/etc/passwd"檔。
echo "root:x:0:1:Super-User:/:/usr/bin/tcsh" > /vs/etc/passwd
echo "ftp:x:60:60:Anonymous Ftp:/:/dev/null" >> /vs/etc/passwd
設定"虛擬系統"中的"/etc/shadow"檔。
echo "root:NP:6445::::::" > /vs/etc/shadow
echo "ftp:NP:6445::::::" >> /vs/etc/shadow
(2) "虛擬系統"中的"/var"目錄
創造"虛擬系統"中的"/var"目錄,以放置系統記錄檔。
mkdir /vs/var
mkdir /vs/var/adm
(3) "虛擬系統"中的"/usr"目錄
創造"虛擬系統"中的"/var"目錄,以放置系統程式及程式庫。
mkdir /vs/usr
mkdir /vs/usr/bin
mkdir /vs/usr/sbin
mkdir /vs/usr/lib
從"/usr/lib"複製下列檔案至"/vs/usr/lib"
ld.so.1
libauth.so.1
libbsm.so.1
libc.so.1
libcmd.so.1
libcrypt_i.so.1
libdl.so.1
libgen.so.1
libmp.so.1
libmp.so.2
libnsl.so.1
libsocket.so.1
nss_files.so.1
從"/usr/bin"複製下列檔案至"/vs/usr/bin"
*ls
從"/usr/sbin"複製下列檔案至"/vs/usr/sbin"
*in.ftpd (FTP伺服器程式)
*inetd (Internet Super Daemon)
(4)"虛擬系統"中的"/dev"與"/devices"目錄
作"/dev"、"/devices"的tar檔。
tar -cf /dev.tar /dev /devices
將tar檔解至"/vs"目錄下。
tar -xf /dev.tar /vs
刪除tar檔
rm /dev.tar
(5)啟動服務
chroot /vs /usr/sbin/inetd -s
此步驟須注意是否關閉原始系統中inetd.conf的ftp選項,否則無法正常啟動。
4、結語
有人或許會問,anonymous ftp本身就有做chroot的動作,為何還要自己做一個虛擬系統呢? 事實上,FTP服務若有漏洞,入侵者可透過漏洞取得root許可權,此時anonymous ftp的chroot未必會被執行,若未執行chroot,那整個系統就暴露在入侵者眼前,但若你做了虛擬系統,將強制使用者連線時已在虛擬系統中,即使入侵者透過漏洞取得root許可權,亦會被限制於虛擬系統中,將難以破壞原本的系統,如此可將系統損害降低。
"虛擬系統"的意思是"假的系統",亦即當一個使用者使用的是"虛擬系統"時,他所看到的系統檔案及程式,並不是系統管理者所使用的檔案。
例如管理者鍵入"ls -al /usr/bin/ls"的命令時,看到的檔案大小為32767 bytes,而其他使用者鍵入"ls -al /usr/bin/ls"的命令時,看到的卻為65535 bytes,表示為兩個檔案的路徑雖然相同,但卻為不同的檔案。
2、虛擬系統的功能為何
(1) 避免其它使用者使用重要資料
若您不願意讓使用者觀看或執行某些檔案,那你可以使用虛擬系統,讓使用者看不到特定的檔案,或是創造另一個與真正檔案內容不同的檔案。
(2) 增加系統安全性
若您必須開放使用者登入機器,又害怕使用者利用系統內部的漏洞取得額外的許可權,破壞系統設定與竊取資料,使用虛擬系統將可以保護系統的資料與系統運作,讓惡意的使用者只能做到有限的破壞。
3、如何以Solaris架設虛擬系統
其實所謂的"虛擬系統",主要是利用chroot(Change Root)來達成,亦即改變根目錄的位置,而使得系統對應到一新的系統設定中。
要達到這個目的,大致上可分為兩種方法,一是修改程式碼,另外一個則是用系統本身的命令來達成。
在此我們並不打算詳細說明有關修改程式碼的部份如何做,簡單的說,程式部份主要是利用chroot()這個C函式來改變根目錄的位置,較為麻煩的地方在於你可能要修改inetd程式或其它網路服務程式,當然你也可以自己寫這些程式,不過不是每個管理者都對攢寫程式有興趣的。
但不論你採用哪一種方法,有一件事是都需要做的,那就是創造一個虛擬的系統環境。以下簡單列出如何在"/vs"這個目錄下,創造一個新的系統環境,並且不修改程式來啟動虛擬系統的服務:
tar -cf /system.tar /var /usr /etc /dev /devices
將系統中的/var, /usr, /etc, /dev, /devices壓入system.tar這個檔。
tar -xf /system.tar /vs
將system.tar這個檔的資料解開放在/vs目錄下。
以上兩行指令便能系統的檔案到"/vs"目錄去,此時當你下達"chroot /vs/usr/bin/sh"指令時,將會得到和原本系統相似的環境。而在這樣的環境中,使用者不結束目前的shell(chroot後所得的的shell)是無法藉由任何指令返回原來的系統的。
然而事實上你不需要全部的系統檔案到"虛擬系統"去,只要所需的檔案即可。至於什麼是所需的檔案,端看你安裝了哪些服務。底下所列為在"/vs"中創造FTP的"虛擬系統"做法:
(1)"虛擬系統"中的"/etc"目錄
創造"虛擬系統"中的"/etc"目錄,以放置密碼及設定檔。
mkdir /vs/etc
設定"虛擬系統"中的"/etc/inetd.conf"檔。
echo "ftp stream tcp nowait root /usr/sbin/in.ftpd
in.ftpd" > /vs/etc/inetd.conf
設定"虛擬系統"中的"/etc/passwd"檔。
echo "root:x:0:1:Super-User:/:/usr/bin/tcsh" > /vs/etc/passwd
echo "ftp:x:60:60:Anonymous Ftp:/:/dev/null" >> /vs/etc/passwd
設定"虛擬系統"中的"/etc/shadow"檔。
echo "root:NP:6445::::::" > /vs/etc/shadow
echo "ftp:NP:6445::::::" >> /vs/etc/shadow
(2) "虛擬系統"中的"/var"目錄
創造"虛擬系統"中的"/var"目錄,以放置系統記錄檔。
mkdir /vs/var
mkdir /vs/var/adm
(3) "虛擬系統"中的"/usr"目錄
創造"虛擬系統"中的"/var"目錄,以放置系統程式及程式庫。
mkdir /vs/usr
mkdir /vs/usr/bin
mkdir /vs/usr/sbin
mkdir /vs/usr/lib
從"/usr/lib"複製下列檔案至"/vs/usr/lib"
ld.so.1
libauth.so.1
libbsm.so.1
libc.so.1
libcmd.so.1
libcrypt_i.so.1
libdl.so.1
libgen.so.1
libmp.so.1
libmp.so.2
libnsl.so.1
libsocket.so.1
nss_files.so.1
從"/usr/bin"複製下列檔案至"/vs/usr/bin"
*ls
從"/usr/sbin"複製下列檔案至"/vs/usr/sbin"
*in.ftpd (FTP伺服器程式)
*inetd (Internet Super Daemon)
(4)"虛擬系統"中的"/dev"與"/devices"目錄
作"/dev"、"/devices"的tar檔。
tar -cf /dev.tar /dev /devices
將tar檔解至"/vs"目錄下。
tar -xf /dev.tar /vs
刪除tar檔
rm /dev.tar
(5)啟動服務
chroot /vs /usr/sbin/inetd -s
此步驟須注意是否關閉原始系統中inetd.conf的ftp選項,否則無法正常啟動。
4、結語
有人或許會問,anonymous ftp本身就有做chroot的動作,為何還要自己做一個虛擬系統呢? 事實上,FTP服務若有漏洞,入侵者可透過漏洞取得root許可權,此時anonymous ftp的chroot未必會被執行,若未執行chroot,那整個系統就暴露在入侵者眼前,但若你做了虛擬系統,將強制使用者連線時已在虛擬系統中,即使入侵者透過漏洞取得root許可權,亦會被限制於虛擬系統中,將難以破壞原本的系統,如此可將系統損害降低。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-948895/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 系統架構設計筆記(104)—— 虛擬化架構筆記
- 虛擬IP管理系統設計
- Solaris 系統命令(轉)
- Linux下架設FTP(轉)LinuxFTP
- 架設ftp,如何架設ftp?架設後如何連線?FTP
- 虛擬化架構與Centos7系統部署架構CentOS
- 虛擬記憶體與系統效能(轉)記憶體
- 虛擬幣交易所開發安全系統架構架構
- phpStorm 如何用 FTP,SSH 連線到虛擬機器 Linux 系統?PHPORMFTP虛擬機Linux
- Solaris 檔案系統管理(轉)
- Solaris 10 系統維護(轉)
- 虛擬作業系統作業系統
- solaris 9 ftp 慢FTP
- 學用Solaris系統幫助(轉)
- 【Solaris】Virtualbox 安裝 Oracle Solaris 10(一) 建立虛擬機器Oracle虛擬機
- 防火牆的虛擬系統防火牆
- 在虛擬機器中安裝ftp虛擬機FTP
- win11系統設定虛擬記憶體記憶體
- ftp telnet service in SolarisFTP
- MacOS 系統中如何設定 Python 虛擬環境MacPython
- 用簡化操作和虛擬化 應對IT系統“混搭”架構架構
- 虛擬的熱點,眼前的蛋糕:作業系統虛擬化作業系統
- 關於kangle虛擬主機系統與N點虛擬主機系統的比較
- PetShop的系統架構設計(一)(轉)架構
- 教你架設安全的交換機系統(轉)
- Linux系統篇-檔案系統&虛擬檔案系統Linux
- Solaris8作業系統安裝(轉)作業系統
- 保護Solaris系統安全小竅門(轉)
- SOLARIS作業系統常用命令(轉)作業系統
- LINUX系統程式設計 LINUX 虛擬記憶體Linux程式設計記憶體
- 作業系統級虛擬化概述作業系統
- 虛擬機器安裝 gho系統虛擬機
- Windows10系統如何設定虛擬記憶體讓系統執行更快Windows記憶體
- PDM的分散式虛擬設計平臺架構分散式架構
- 網站虛擬伺服器架設工具:VirtualHostX for mac網站伺服器Mac
- Solaris培訓第三章:安裝Solaris作業系統(轉)作業系統
- Win10系統C盤虛擬記憶體怎麼設定?Win10專業版系統C盤虛擬記憶體設定方法Win10記憶體
- solaris 10的ftp相關配置FTP