2011年11月9日 星期三

Solaris


1 ) 設定網絡卡的 IP Address , Gateway, 主機名稱, DNS Server IP Address, Server Domain
2 ) 建立使用者的目錄
3 ) 建立新的使用者及群組
4 ) 建立 /usr/local
5 ) 安裝文字編輯器
6 ) 建立 Bash Shell Script
7 ) 安裝 wget 網頁檔案下載器
8 ) 安裝 gcc Compiler
9 ) 安裝 less
10 ) 安裝 Perl 5.61
11 ) 安裝 top CPU工作管理
12 ) 安裝 tcp wrapper-7.6
13 ) Update Solaris 8 x86 Patches
14 ) 系統安全
建立使用者的目錄 ( Solaris 7,8,9,10 )
一般在 Linux Server 使用者的目錄是在 /home 目錄,但我比較喜愛使用 Solaris 時把使用者的目錄放在 /u0。
但是我們要注意一點,一般安裝完成後的 Solaris Server,根( / )目錄的使用空間很少,而且大部份的空間都放在 /export/home。( 用 'df' 指令便可以檢查到硬碟的編排情況 )
 所以我建立使用者空間時會用以下做法:-
shell> cd /
shell> mkdir /export/home/u0
shell> ln -s /export/home/u0 /u0

這樣做有兩個好處,第一,/u0 不會佔用根目錄的空間而使用了 /export/home 的空間,第二,看上 /u0 好像在根目錄一樣,但唯一不同的,就是它只是一條 Link。
shell> ls -l /u0
lrwxrwxrwx 1 root other 15 Dec 30 18:22 /u0 -> /export/home/u0
#
建立新的使用者 ( Solaris 7,8,9,10 )
e.g. :-
群組 = users
使用者登入名稱 = peter
密碼 = opL12112
( 因為保安的理由,密碼應該不少於八個字,當中要包含英文大小寫和數目字,而且不可以使用字典中的文字 )
目錄 = /u0/peter
使用者登入名稱 = Peter Pan

使用 Bash Shell

建立群組users
shell> groupadd users
建立新的使用者
shell> whereis bash
bash: /usr/bin/bash
shell> useradd -m -g users -d /u0/peter -s /usr/bin/bash -c 'Peter Pan' peter

-g group
-d directory
-s shell
-c content
更改密碼
shell> passwd peter
刪除使用者
如果你希望把指定的使用者刪除的話,可以用以下的指令:-
shell> userdel -r peter
'-r' 是用來清除使用者的所有目錄 e.g. /u0/peter , /var/mail ...
建立 /usr/local ( Solaris 7,8,9,10 )
建立 /usr/local 是用來把需要安裝的軟件安裝在這裡。
但是我們要注意一點,一般安裝完成後的 Solaris Server,根( / )目錄的使用空間很少,而且大部份的空間都放在 /export/home。( 用 'df' 指令便可以檢查到硬碟的編排情況 )
 所以我建立 /usr/local 時會用以下做法:-
shell> cd /
shell> mkdir /export/home/local
shell> ln -s /export/home/local /usr/local

這樣做有兩個好處,第一,/usr/local 不會佔用根目錄的空間而使用了 /export/home 的空間,第二,看上 /usr/local 好像在 /usr 目錄一樣,但唯一不同的,就是它只是一條 Link。
shell> ls -l /usr/local
lrwxrwxrwx 1 root other 15 Dec 30 18:22 /u0/local -> /export/home/local
#
安裝文字編輯器 (Solaris 8,9)
因為我不習慣使用 vi,所以需要安裝 pico 編輯器。
pico 是 pine 的一部份,這是一個閱讀及編寫電郵程式。
下載 : http://solaris.tophk.net/packages/pine4.33.zip
因為 Solaris Server 沒有 wget 之類軟件從網頁下載檔案,所以要先下載去 Windows98等系統,再用 FTP 存去 Solaris Server。
安裝pine
shell> mv pine4.33.zip /usr/local/src
shell> cd /usr/local/src
shell> cp pine4.33.zip ..
shell> cd ..
shell> unzip pine4.33.zip
shell> rm pine4.33.zip
shell> pkgadd -d SFWpine
shell> rm SFWpine
shell> ln -s /opt/sfw/bin/pico /bin/pico
shell> ln -s /opt/sfw/bin/pilot /bin/pilot
shell> ln -s /opt/sfw/bin/pine /bin/pine

pico = 文字編輯器
pine = 電郵編輯器
pilot = 檔案管理
建立 Bash Shell Script (Solaris 7,8,9)
我始終比較喜歡使用 Bash Shell,而 C Shell 到現在還是不太習慣。
Bash Shell Script 就好像 Microsoft DOS 的 Autoexec.bat 一樣,當使用 Bash Shell 他會自動則行 Script 的設定。
例如:path, man path, lib path 和則行一些程式。

以下例子是為 root user 設定 Bash Shell Script
shell> cd ~root
shell> pico .bashrc
#!/usr/bin/bash
export PATH=$PATH:/opt/sfw/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb
export MANPATH=$MANPATH:/usr/man:/usr/local/man:/opt/man:/opt/sfw/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib:/usr/local/lib:/usr/lib
export PS1='\u@\h:\w#'
export EDITOR=/bin/pico
export PAGER=/usr/local/bin/less (less 會遲一點安裝)

shell> bash ( 則行 Bash Shell )
安裝 wget 網頁檔案下載器 (Solaris 8,9)
wget 是一個很有用的網頁檔案下載程式,只要把網址鍵入,便可以從網頁或FTP伺服器下載檔案。

例如: -
shell> wget http://solaris.tophk.net/packages/apache-1.3.9-sol8-intel-local.gz

安裝方法如下: -

下載 :
http://solaris.tophk.net/packages/wget-1.8.1-sol8-intel-local.gz ( Solaris 8 )

http://solaris.tophk.net/packages/wget-1.9.1-sol9-intel-local.gz ( Solaris 9 )
Solaris 8 安裝方法:
shell> mv wget-1.8.1-sol8-intel-local.gz /usr/local/src
shell> cd /usr/local/src
shell> cp wget-1.8.1-sol8-intel-local.gz ..
shell> cd ..
shell> gzip -d wget-1.8.1-sol8-intel-local.gz
shell> pkgadd -d wget-1.8.1-sol8-intel-local
shell> rm wget-1.8.1-sol8-intel-local

Solaris 9 安裝方法:
shell> mv wget-1.9.1-sol9-intel-local.gz /usr/local/src
shell> cd /usr/local/src
shell> cp wget-1.9.1-sol9-intel-local.gz ..
shell> cd ..
shell> gzip -d wget-1.9.1-sol9-intel-local.gz
shell> pkgadd -d wget-1.9.1-sol9-intel-local
shell> rm wget-1.9.1-sol9-intel-local

測試:
shell> wget http://solaris.tophk.net/packages/apache-1.3.9-sol8-intel-local.gz
安裝 gcc Compiler (Solaris 8,9)
gcc Compiler 是一個非常重要的軟件,在安裝其他軟件時都會用到 cc 或 gcc Compiler。
有幾樣東西要特別注意的,在 Sun 購買回來的 Solaris x86 已經有 cc Compiler,但已我的經驗用這套 cc Compiler會有一些軟件 Compile 失敗,所以我通常都會另外安裝 gcc Compiler,而且還要欺騙電腦把 gcc Compiler 當成 cc Compiler用。每當軟件找尋及使用 cc Compiler 或 gcc Compiler 時便全都會使用了 gcc Compiler。
在 Sun 下載回來的 Solaris x86 是沒有任何 cc Compiler,所以一定要自行安裝。
我經常收到一些電郵問及有關在 Compile 時失敗,無法找到cc Compiler,而且又確定自己已經安裝了 gcc 2.9x or gcc 3.xx。
大部份主要原因是在 Path (路徑) 上的問題,因為當安裝軟件時,那些軟件會自行找尋 cc Compiler 和 gcc Compiler 在那裡。但是,如果你沒有設定 Path,那些軟件便無法找到 Compiler。

下載 : http://solaris.tophk.net/packages/gcc-2.95.3-sol8-intel-local.gz ( 建議你安裝這個版本比較可信,同時,它都適合 Solaris 8,9 )
以下是在 Bash Shell 進行
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/gcc-2.95.3-sol8-intel-local.gz
shell> cp gcc-2.95.3-sol8-intel-local.gz ..
shell> cd ..
shell> gzip -d gcc-2.95.3-sol8-intel-local.gz
shell> pkgadd -d gcc-2.95.3-sol8-intel-local
shell> rm gcc-2.95.3-sol8-intel-local
shell> whereis cc
cc: /usr/ucb/cc
shell> whereis gcc
gcc : /usr/local/bin/gcc
shell> cd /usr/ucb
shell> mv cc cc.orig
shell> ln -s /usr/local/bin/gcc cc



下載 : ( 因為有些程式在編譯時,是不可以沒有了一部份 gcc 3.3 的 libraries,因此,需要安裝這個 pkg )

http://solaris.tophk.net/packages/libgcc-3.3-sol8-intel-local.gz ( Solaris 8 )
http://solaris.tophk.net/packages/libgcc-3.3-sol9-intel-local.gz ( Solaris 9 )
Solaris 8 安裝方法:
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/libgcc-3.3-sol8-intel-local.gz
shell> cp libgcc-3.3-sol8-intel-local.gz ..
shell> cd ..
shell> gzip -d libgcc-3.3-sol8-intel-local.gz
shell> pkgadd -d libgcc-3.3-sol8-intel-local
shell> rm libgcc-3.3-sol8-intel-local

Solaris 9 安裝方法:
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/libgcc-3.3-sol9-intel-local.gz
shell> cp libgcc-3.3-sol9-intel-local.gz ..
shell> cd ..
shell> gzip -d libgcc-3.3-sol9-intel-local.gz
shell> pkgadd -d libgcc-3.3-sol9-intel-local
shell> rm libgcc-3.3-sol9-intel-local
安裝 less (Solaris 8,9)
less 跟 more 的用途差不多,但是 less 可以退後閱讀資料,more就不可以。安裝 less,必須要安裝 ncurese。
以下例子你可以試一試 : -
shell> ls -l /etc | more

shell> ls -l /etc | less

下載 :
( Solaris 8 )
http://solaris.tophk.net/packages/less-381-sol8-intel-local.gzhttp://solaris.tophk.net/packages/ncurses-5.3-sol8-intel-local.gz

( Solaris 9 )
http://solaris.tophk.net/packages/less-381-sol9-intel-local.gzhttp://solaris.tophk.net/packages/ncurses-5.3-sol9-intel-local.gz

以下是在 Bash Shell 進行
Solaris 8 安裝方法:
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/less-381-sol8-intel-local.gz
shell> wget http://solaris.tophk.net/packages/ncurses-5.3-sol8-intel-local.gz
shell> cp less-381-sol8-intel-local.gz ..
shell> cp ncurses-5.3-sol8-intel-local.gz ..
shell> cd ..
shell> gzip -d less-381-sol8-intel-local.gz
shell> pkgadd -d less-381-sol8-intel-local
shell> rm less-381-sol8-intel-local
shell> cp ncurses-5.3-sol8-intel-local.gz
shell> gzip -d ncurses-5.3-sol8-intel-local.gz
shell> pkgadd -d ncurses-5.3-sol8-intel-local
shell> rm ncurses-5.3-sol8-intel-local

Solaris 9 安裝方法:
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/less-381-sol9-intel-local.gz
shell> wget http://solaris.tophk.net/packages/ncurses-5.3-sol9-intel-local.gz
shell> cp less-381-sol9-intel-local.gz ..
shell> cp ncurses-5.3-sol9-intel-local.gz ..
shell> cd ..
shell> gzip -d less-381-sol9-intel-local.gz
shell> pkgadd -d less-381-sol9-intel-local
shell> rm less-381-sol9-intel-local
shell> cp ncurses-5.3-sol9-intel-local.gz
shell> gzip -d ncurses-5.3-sol9-intel-local.gz
shell> pkgadd -d ncurses-5.3-sol9-intel-local
shell> rm ncurses-5.3-sol9-intel-local

更改 BASH Shell
shell> cd ~root
shell> pico .bashrc
#!/usr/bin/bash
export PATH=$PATH:/opt/sfw/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb
export MANPATH=$MANPATH:/usr/man:/usr/local/man:/opt/man:/opt/sfw/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib:/usr/local/lib:/usr/lib
export PS1='\u@\h:\w#'
export EDITOR=/bin/pico
export PAGER=/usr/local/bin/less
(要加入這句)
安裝 Perl 5.8.4 (Solaris 7,8,9)
Solaris 8 x86 已經安裝了Perl 5.005_03,但希望使用 Perl 5.8.4 版本。
下載 : http://solaris.tophk.net/nopackages/perl-5.8.4.tar.gz
以下是在 Bash Shell 進行
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/nopackages/perl-5.8.4.tar.gz
shell> cp perl-5.8.4.tar.gz ..
shell> cd ..
shell> gzip -d perl-5.8.4.tar.gz
shell> tar -vxf perl-5.8.4.tar
shell> rm perl-5.8.4.tar
shell> cd perl-5.8.4
shell> rm -f config.sh Policy.sh
shell> sh Configure -de
shell> make
shell> make test
shell> make install
shell> rm -r perl-5.8.4
shell> cd /usr/bin
shell> mv perl perl.orig
shell> ln -s /usr/local/bin/perl perl

檢查 perl 是否已更新版本
shell> perl -v
This is perl, v5.8.3 built for i86pc-solaris
Copyright 1987-2003, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
安裝 top CPU工作管理 (Solaris 8,9)
top - 顯示最新有關CPU運作的資料。可以知道CPU現在進行什麼工作,那些工作量是很大的,記憶體使用情況。
這些資料是用來估計Server是否需要升級、加RAM。另外,還可以監看自己設計的軟件對CPU做成多少負載,如果太多負載的話,便可以從自己設計的軟件著手,把設計改良,減低CPU負載。
下載 : http://solaris.tophk.net/packages/top-3.5_12-pkg.zip
以下是在 Bash Shell 進行
shell> cd /usr/local/src
shell> wget http://solaris.tophk.net/packages/top-3.5_12-pkg.zip
shell> cp top-3.5_12-pkg.zip ..
shell> cd ..
shell> unzip top-3.5_12-pkg.zip
shell> rm top-3.5_12-pkg.zip
shell> pkgadd -d SFWtop
shell> rm SFWtop

測試
shell> top
安裝 tcp wrapper-7.6 (Solaris 8,9)
tcp wrapper 可以防止任何未經過批准的 IP Address 使用指定的 Deamon。
例如: telnet deamon, ftp deamon 等
換句話說,如果你想從遠端 Telnet 至伺服器,你就一定要在伺服器上的 tcp wrapper 設定為這個遠端的 IP Address 可以進入。
tcp wrapper 7.6 設定
Update Solaris x86 Patches (Solaris 8,9)
Sun Solaris x86 題供了一些 Patches 用來修補 Solaris 一般保安及升級上的問題。
http://www.sun.com/bigadmin/patches/index.html
已下例子是已 Solaris 8 為基礎, 但 Solaris 9 的方法也不多,只是下載時選 Solaris 9。

下載 : Patches > Recommended > Solaris 8_x86 或 Patches > Recommended > Solaris 9_x86

Solaris 8 安裝方法:
shell> mv 8_x86_Recommended.zip /usr/local/src
shell> cd /usr/local/src
shell> cp 8_x86_Recommended.zip ..
shell> cd ..
shell> unzip 8_x86_Recommended.zip
shell> rm 8_x86_Recommended.zip
shell> cd 8_x86_Recommended
shell> ./install_cluster

Solaris 9 安裝方法:
shell> mv 9_x86_Recommended.zip /usr/local/src
shell> cd /usr/local/src
shell> cp 9_x86_Recommended.zip ..
shell> cd ..
shell> unzip 9_x86_Recommended.zip
shell> rm 9_x86_Recommended.zip
shell> cd 9_x86_Recommended
shell> ./install_cluster
系統安全
系統安全,可是最後一步,也是最重要一步。只要你試過給人家Hack進來那種味道,你就知道安全是那麼重要。一點都不好受。
系統安全這一部份在之前是沒有寫的,因為我認為我做了很多東西,是可以被免受到人家的入侵,但最後我發現我是錯的。
幸好發現入侵的 Server 不是重要的 Server,但為什麼其他 Server 沒有事?都是因為做了一些安全工作,但只是一些也並不全面,所以我也不保證安全。
為了防止再有人入侵 Server,我看了很多有關安全方面的文件,而且也看了一篇很利害的入侵 Server 文件,真是全身冷汗都走出來。
在Solaris 裡,RPC 這東西真恐怖,差不多所有的入侵方法都是透過RPC來進行。需然可以下載 Patch來把問題解決,但RPC對我來說用途很少。
有些文件建議把 inetd.conf 內所有東西都關閉,只留下 telnetd 和 ftpd。我覺得都很有道理,當然也要看實際的情況。
建議你看下面三編文章,對你會有很大的啟發:
The Solaris安全FAQ
http://www.xfocus.net/articles/200005/38.html
Solaris 安全起點
http://solaris.tophk.net/security/security_start_point.html
網絡入侵實用戰術手冊(UNIX)
http://fanqiang.chinaunix.net/a5/b7/20010416/125556_b.html