2009年12月22日 星期二

[其他]Linux 禁止 [Ctrl]+[Alt]+[Delete] 重新啟動

將Linux下的[Ctrl]+[Alt]+[Delete] 重新啟動關閉 可能保險些

具體的作法如下:

1. 開啟 /etc/inittab

2. 找出其中一行:

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

3. 將這一行刪除,或者在這一行最開端加上 # 號。

4. 儲存檔案後重新啟動系統便會生效,如果不想重新啟動可以執行以下指令:

# init q

2009年12月15日 星期二

[Backup] Rsync + SSH -- 讓 Server 自動異地備援也加密

一.前言
自從911事件之後...異地備援這個名稱就常聽人提起...不過就是滿少看到大家在討論...剛好這次因為有需要...不得不研究這個東西...順便看看大家都是怎樣實作異地備援的...底下是個人的一點點心得...
這次主要分成三個部份...單向 Trusted SSH Authorized...Rsync...Crontab....姑且不論傳輸速度為何...以及無時差的異地備援...相信這樣的Solutions應該可以滿足一般人的需求吧

二.準備
測試系統: Red Hat Linux 7.3 to Red Hat 7.3 ...
Local 端需要啟動 Rsync...套件 openssh-3.4p1-1

** 假設: A (10.0.0.1) 要對 B (192.168.0.1) 做異地備援
PS:角色定位要明確...當然您要巔倒的來做也行...

參考網站 : http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html

三.開始實作


1.完成單向Trusted SSH Authorized﹕
我要 A (10.0.0.1) 要對 B (192.168.0.1) 做異地備援 ...所以我針對 A 讓它使用SSH連到 B 時...不需要輸入密碼...User 是 Root...SSH Version2的版本..首先要先在A(10.0.0.1)產生public/private dsa key pair..

[root@mondeo home]# cd /root/.ssh/
[root@mondeo .ssh]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): <-- 此處不打passphrase..下次才不會詢問password
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66 root@mondeo.adj.idv.tw
[root@mondeo .ssh]#

這時會在系統下看到兩個檔案...id_dsa與id_dsa.pub 現在要把id_dsa.pub丟到192.168.0.1 並且更名為 authorized_keys2

[root@mondeo .ssh]# scp id_dsa.pub 192.168.0.1:/root/.ssh/authorized_keys2
root@192.168.0.1's password:
id_dsa.pub 100% |***************************************************************************| 612 00:00
[root@mondeo .ssh]#


現在您可以執行ssh 192.168.0.1 看看能否登入而不需要輸入密碼...

2.使用rsync 做Remote sync﹕
rsync特性簡介 :
rsync是unix-like系統下的數據鏡像備份工具,從命名上就可以看出來了remote sync。它的特性如下:
1、可以鏡像保存整個目錄樹和文件系統。
2、可以很容易做到保持原來文件的權限、時間等等。
3、無須特殊權限即可安裝。
4、優化的流程,文件傳輸效率高。
5、可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
6、支持匿名傳輸。

首先要先對B(192.168.0.1)把Rsync的Server on起來...
[root@linux /]#chkconfig --list rsync
rsync off
[root@linux /]#chkconfig rsync on

現在我先在A(10.0.0.1)上建一個 Backup directory...然後對B(192.168.0.1)的mysql跟html的目錄做異地備援...偶寫一個簡單的script如下:

[root@mondeo /]# mkdir backup
[root@mondeo backup]#vi sync

rsync -avlR --delete -e ssh 192.168.0.1:/var/lib/mysql /backup/
rsync -avlR --delete -e ssh 192.168.0.1:/var/www/html /backup/
[root@mondeo backup]#chmod 700 sync

參數意義如下﹕
-a, --archive
It is a quick way of saying you want recursion and want to preserve almost everything.
-v, --verbose
This option increases the amount of information you are given during the transfer.
-l, --links
When symlinks are encountered, recreate the symlink on the destination.
-R, --relative
Use relative paths. 保留相對路徑...才不會讓子目錄跟 parent 擠在同一層...
--delete
是指如果Server端刪除了一文件,那客戶端也相應把這一文件刪除,保持真正的一致。
-e ssh
建立起加密的連接。
參數的使用因人而異...您可以man rsync來使用更多的參數...

測試看看:
[root@mondeo backup]# ./sync
receiving file list ... done
.
.
.
done
wrote 16 bytes read 107 bytes 82.00 bytes/sec
total size is 0 speedup is 0.00
receiving file list ... done
.
.
.
done
wrote 16 bytes read 921 bytes 624.67 bytes/sec
total size is 308331 speedup is 329.06
[root@mondeo backup]#
看到沒詢問密碼....以及有把檔案copy過來就沒問題囉....當然你可以把遠端的資料做個變動...看是否真有同步啦....

3.使用crontab 來做自動排程﹕

現在設好之後...我希望每天的0點0分...夜深人靜的時後再來幫我做sync....當然您想要多久做 sync 看個人需求囉...
[root@mondeo backup]# crontab -e0 0 * * * /backup/sync

如此一來..算是大功告成了...原則上您已具備自動加密異地備援囉....趕緊找兩台機器來試試吧...
以上只是個人測試結果...如有錯誤...煩請指教!!!

出處

2009年12月2日 星期三

[其他]Linux下監看即時流量

轉載自http://portable.easylife.idv.tw/866
nload
http://www.roland-riegel.de/nload/index.html

netmonitor
http://netmonitor.sourceforge.net/

兩個軟體都是可以監看即時流量
看爽就好~覺得網站速度慢時的確可以當作判斷的一種方式

[Iptables] 參數設定

轉載自http://portable.easylife.idv.tw/1300

有關於 iptables 一些設定的進階文章,我覺得算是寫不錯了,話說已經很久沒有看到關於安全性的文章了,這次藍老大的主機被攻擊,我又開始找哩一些相關文章,意外中看到這一篇,還真的感覺不錯,來自
Cerebration 的文章,大家也可以看一看唷!

格式

參數名 參數類型
參數值(如無特別標註,內存類的單位為byte,關於時間的單位為秒)
官方詳細說明(skylove對該參數的個人心得或補充說明)

正文

ip_forward :BOOLEAN
0 - 關閉(默認值)
非0值 - 打開ip轉發
在網絡本地接口之間轉發數據報。該參數非常特殊,對該參數的修改將導致其它所有相關配置參數恢復其默認值(對於主機參閱RFC1122,對於路由器參見RFC1812)(在其他一些操作系統中,這個參數不是boolean型,而是INTEGER型,設置為0為不轉發,1為根據接口情形決定是否轉發,2是始終轉發)

ip_default_ttl :INTEGER
默認值為 64
表示IP數據報的Time To Live值(在網絡傳遞中,每經過一」跳」,該值減少1,當ttl為0的時候,丟棄該包.該值越大,即在網絡上可以經過的路由器設備的數量越多,但一個錯誤的包,也會越發浪費生存週期.根據目前的實際情形而看,設置為32已經足夠普通網絡訪問Internet的需求了)

ip_no_pmtu_discBOOLEAN
默認值為FALSE(0)
關閉路徑MTU探測(典型的瓶頸原理,一次成功的傳輸中,mtu是由網絡上最」窄」的位置決定的.如果IP層有一個數據報要傳,而且數據的長度比鏈路層的MTU還大,那麼IP層就需要進行分片(fragmentation),把數據報分成若干片,這樣每一片都小於MTU。
幾種常見網絡的MTU值:

超通道         65535
16Mb/ s令牌網(IBM)   17914
4Mb/ s令牌網(IEEE 802.5) 4464
FDDI          4352
以太網         1500
IEEE 802.3/802.2     1492
X.25          576
點對點(低延時)     296

ipfrag_high_thresh :INTEGER
默認值為262144
用來組裝分段的IP包的最大內存量。兩個文件分別表示用於重組IP分段的內存分配最低值和最高值,一旦達到最高內存分配值,其它分段將被丟棄,直到達到最低內存(ipfrag_low_thresh 見下文)分配值。(根據我個人理解,就是達到最高後,就」關門打狗」,直到處理到最低值的時候才又開門放分段的ip包進來處理.如果最高/最低差距過小,很可能很快又達到限制又開始丟棄包;而設置過大,又會造成某段時間丟包時間持續過久.因此需要適當地考慮,默認值中給出的最低/最高比率值為3/4.此外補充說明,kernel中,對內存的使用單位,都是以byte為單位的.當TCP數據包傳輸發生錯誤時,開始碎片整理。有效的數據包保留在內存,同時損壞的數據包被轉發我在1G內存的NAT機器上,分別設置最低為262144,最高為393216)


ipfrag_low_thresh :
INTEGER
默認值為196608
參見ipfrag_high_thresh。

ipfrag_timeINTEGER
默認值為30
保存一個IP分片在內存中的時間

inet_peer_thresholdINTEGER
默認值為65664
INET對端存儲器某個合適值,當超過該閥值條目將被丟棄。該閥值同樣決定生存時間以及廢物收集通過的時間間隔。條目越多﹐存活期越低﹐GC 間隔越短(GC=Grabage Collection 廢物收集?默認值65664=65536 + 128 是怎麼得來的呢?看include/net/inetpeer.h struct inet_peer的內容,是為了IP ROUTE更快,緩衝對方IP的信息,一個對方IP一個記錄.該值與
inet_peer_gc_maxtime
inet_peer_gc_mintime
inet_peer_maxttl
inet_peer_minttl
inet_peer_threshold
參數都是用來控制這個cache的大小的。似乎這個cache消耗比較大,在CU上有朋友提到過在一個26M的嵌入式Linux中,這個cache就用到了1M多內存)


inet_peer_minttlINTEGER
默認值為120

條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個最低存活期必須保證緩衝池容積是否少於 inet_peer_threshold。該值以 jiffies為單位測量。(每次整理的時候,會考慮小於inet_peer_minttl 的ip條目一定保存,而大於inet_peer_maxttl時間設置的ip條目會被釋放)

inet_peer_maxttlINTEGER
默認值為600

條目的最大存活期。在此期限到達之後﹐如果緩衝池沒有耗盡壓力的話(例如﹐緩衝池中的條目數目非常少)﹐不使用的條目將會超時。該值以 jiffies為單位測量。
inet_peer_gc_mintimeINTEGER
默認值為10
廢物收集(GC)通過的最短間隔。這個間隔會影響到緩衝池中內存的高壓力。 該值以 jiffies為單位測量。(如果長期不整理,會cache很多條目,而整理的時間太頻繁,又會給系統造成壓力,這個值就是確定最小整理週期間隔的)

inet_peer_gc_maxtimeINTEGER
默認值為120
廢物收集(GC)通過的最大間隔,這個間隔會影響到緩衝池中內存的低壓力。 該值以 jiffies ((Jiffie: 內核使用的內部時間單位,在i386系統上大小為1/100s,在Alpha中為1/1024S。在/usr/include/asm/param.h中的HZ定義有特定系統的值。))為單位測量。

====================TCP 參數================

tcp_syn_retriesINTEGER
默認值是5

對於一個新建連接,內核要發送多少個 SYN 連接請求才決定放棄。不應該大於255,默認值是5,對應於180秒左右時間。(對於大負載而物理通信良好的網絡而言,這個值偏高,可修改為2.這個值僅僅是針對對外的連接,對進來的連接,是由tcp_retries1 決定的)

tcp_synack_retriesINTEGER
默認值是5

對於遠端的連接請求SYN,內核會發送SYN + ACK數據報,以確認收到上一個 SYN連接請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這裡決定內核在放棄連接之前所送出的 SYN+ACK 數目。不應該大於255,默認值是5,對應於180秒左右時間。(可以根據上面的 tcp_syn_retries 來決定這個值)

tcp_keepalive_timeINTEGER
默認值是7200(2小時)
當keepalive打開的情況下,TCP發送keepalive消息的頻率。(由於目前網絡攻擊等因素,造成了利用這個進行的攻擊很頻繁,曾經也有cu的朋友提到過,說如果2邊建立了連接,然後不發送任何數據或者rst/fin消息,那麼持續的時間是不是就是2小時,空連接攻擊? tcp_keepalive_time就是預防此情形的.我個人在做nat服務的時候的修改值為1800秒)

tcp_keepalive_probes:INTEGER
默認值是9

TCP發送keepalive探測以確定該連接已經斷開的次數。(注意:保持連接僅在SO_KEEPALIVE套接字選項被打開是才發送.次數默認不需要修改,當然根據情形也可以適當地縮短此值.設置為5比較合適)

tcp_keepalive_intvlINTEGER
默認值為75
探測消息發送的頻率,乘以tcp_keepalive_probes就得到對於從開始探測以來沒有響應的連接殺除的時間。默認值75秒,也就是沒有活動的連接將在大約11分鍾以後將被丟棄。(對於普通應用來說,這個值有一些偏大,可以根據需要改小.特別是web類服務器需要改小該值,15是個比較合適的值)

tcp_retries1INTEGER
默認值是3
放棄回應一個TCP連接請求前﹐需要進行多少次重試。RFC 規定最低的數值是3﹐這也是默認值﹐根據RTO的值大約在3秒 - 8分鍾之間。(注意:這個值同時還決定進入的syn連接)

tcp_retries2INTEGER
默認值為15
在丟棄激活(已建立通訊狀況)的TCP連接之前﹐需要進行多少次重試。默認值為15,根據RTO的值來決定,相當於13-30分鍾(RFC1122規定,必須大於100秒).(這個值根據目前的網絡設置,可以適當地改小,我的網絡內修改為了5)

tcp_orphan_retriesINTEGER
默認值是7
在近端丟棄TCP連接之前﹐要進行多少次重試。默認值是7個﹐相當於 50秒 - 16分鍾﹐視 RTO 而定。如果您的系統是負載很大的web服務器﹐那麼也許需要降低該值﹐這類 sockets 可能會耗費大量的資源。另外參的tcp_max_orphans(事實上做NAT的時候,降低該值也是好處顯著的,我本人的網絡環境中降低該值為3)

tcp_fin_timeoutINTEGER
默認值是 60
對於本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開連接或一直不結束連接或不可預料的進程死亡。默認值為 60 秒。過去在2.2版本的內核中是 180 秒。您可以設置該值﹐但需要注意﹐如果您的機器為負載很重的web服務器﹐您可能要冒內存被大量無效數據報填滿的風險﹐FIN-WAIT-2 sockets 的危險性低於 FIN-WAIT-1 ﹐因為它們最多只吃 1.5K 的內存﹐但是它們存在時間更長。另外參考 tcp_max_orphans(事實上做NAT的時候,降低該值也是好處顯著的,我本人的網絡環境中降低該值為30)

tcp_max_tw_bucketsINTEGER
默認值是180000
系統在同時所處理的最大 timewait sockets 數目。如果超過此數的話﹐time-wait socket 會被立即砍除並且顯示警告信息。之所以要設定這個限制﹐純粹為了抵禦那些簡單的 DoS 攻擊﹐千萬不要人為的降低這個限制﹐不過﹐如果網絡條件需要比默認值更多﹐則可以提高它(或許還要增加內存)。(事實上做NAT的時候最好可以適當地增加該值)

tcp_tw_recycleBOOLEAN
默認值是0
打開快速 TIME-WAIT sockets 回收。除非得到技術專家的建議或要求﹐請不要隨意修改這個值。(做NAT的時候,建議打開它)

tcp_tw_reuseBOOLEAN
默認值是0
該文件表示是否允許重新應用處於TIME-WAIT狀態的socket用於新的TCP連接(這個對快速重啟動某些服務,而啟動後提示端口已經被使用的情形非常有幫助)

tcp_max_orphansINTEGER
缺省值是8192
系統所能處理不屬於任何進程的TCP sockets最大數量。假如超過這個數量﹐那麼不屬於任何進程的連接會被立即reset,並同時顯示警告信息。之所以要設定這個限制﹐純粹為了抵禦那些簡單的 DoS 攻擊﹐千萬不要依賴這個或是人為的降低這個限制(這個值Redhat AS版本中設置為32768,但是很多防火墻修改的時候,建議該值修改為2000)

tcp_abort_on_overflowBOOLEAN
缺省值是0
當守護進程太忙而不能接受新的連接,就像對方發送reset消息,默認值是false。這意味著當溢出的原因是因為一個偶然的猝發,那麼連接將恢復狀態。只有在你確信守護進程真的不能完成連接請求時才打開該選項,該選項會影響客戶的使用。(對待已經滿載的sendmail,apache這類服務的時候,這個可以很快讓客戶端終止連接,可以給予服務程序處理已有連接的緩衝機會,所以很多防火墻上推薦打開它)

tcp_syncookiesBOOLEAN
默認值是0
只有在內核編譯時選擇了CONFIG_SYNCOOKIES時才會發生作用。當出現syn等候隊列出現溢出時象對方發送syncookies。目的是為了防止syn flood攻擊。
注意:該選項千萬不能用於那些沒有收到攻擊的高負載服務器,如果在日誌中出現synflood消息,但是調查發現沒有收到synflood攻擊,而是合法用戶的連接負載過高的原因,你應該調整其它參數來提高服務器性能。參考:
tcp_max_syn_backlog
tcp_synack_retries
tcp_abort_on_overflow
syncookie嚴重的違背TCP協議,不允許使用TCP擴展,可能對某些服務導致嚴重的性能影響(如SMTP轉發)。(注意,該實現與BSD上面使用的tcp proxy一樣,是違反了RFC中關於tcp連接的三次握手實現的,但是對於防禦syn-flood的確很有用.)

tcp_stdurgBOOLEAN
默認值為0
使用 TCP urg pointer 字段中的主機請求解釋功能。大部份的主機都使用老舊的 BSD解釋,因此如果您在 Linux 打開它﹐或會導致不能和它們正確溝通。

tcp_max_syn_backlogINTEGER
對於那些依然還未獲得客戶端確認的連接請求﹐需要保存在隊列中最大數目。對於超過 128Mb 內存的系統﹐默認值是 1024 ﹐低於 128Mb 的則為 128。如果服務器經常出現過載﹐可以嘗試增加這個數字。警告﹗假如您將此值設為大於 1024﹐最好修改 include/net/tcp.h 裡面的 TCP_SYNQ_HSIZE ﹐以保持 TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ﹐並且編進核心之內。(SYN Flood攻擊利用TCP協議散布握手的缺陷,偽造虛假源IP地址發送大量TCP-SYN半打開連接到目標系統,最終導致目標系統Socket隊列資源耗盡而無法接受新的連接。為了應付這種攻擊,現代Unix系統中普遍採用多連接隊列處理的方式來緩衝(而不是解決)這種攻擊,是用一個基本隊列處理正常的完全連接應用(Connect()和Accept() ),是用另一個隊列單獨存放半打開連接。 這種雙隊列處理方式和其他一些系統內核措施(例如Syn-Cookies/Caches)聯合應用時,能夠比較有效的緩解小規模的SYN Flood攻擊(事實證明<1000p/s)加大SYN隊列長度可以容納更多等待連接的網絡連接數,所以對Server來說可以考慮增大該值.)

tcp_window_scalingINTEGER
缺省值為1

該文件表示設置tcp/ip會話的滑動窗口大小是否可變。參數值為布爾值,為1時表示可變,為0時表示不可變。tcp/ip通常使用的窗口最大可達到65535 字節,對於高速網絡,該值可能太小,這時候如果啟用了該功能,可以使tcp/ip滑動窗口大小增大數個數量級,從而提高數據傳輸的能力(RFC 1323)。(對普通地百M網絡而言,關閉會降低開銷,所以如果不是高速網絡,可以考慮設置為0

tcp_timestampsBOOLEAN
缺省值為1
Timestamps 用在其它一些東西中﹐可以防範那些偽造的 sequence 號碼。一條1G的寬帶線路或許會重遇到帶 out-of-line數值的舊sequence 號碼(假如它是由於上次產生的)。Timestamp 會讓它知道這是個 『舊封包』。(該文件表示是否啟用以一種比超時重發更精確的方法(RFC 1323)來啟用對 RTT 的計算;為了實現更好的性能應該啟用這個選項。)

tcp_sackBOOLEAN
缺省值為1

使用 Selective ACK﹐它可以用來查找特定的遺失的數據報— 因此有助於快速恢復狀態。該文件表示是否啟用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高性能(這樣可以讓發送者只發送丟失的報文段)。(對於廣域網通信來說這個選項應該啟用,但是這會增加對 CPU 的佔用。)

tcp_fackBOOLEAN
缺省值為1
打開FACK擁塞避免和快速重傳功能。(注意,當tcp_sack設置為0的時候,這個值即使設置為1也無效)

tcp_dsackBOOLEAN
缺省值為1
允許TCP發送」兩個完全相同」的SACK。

tcp_ecnBOOLEAN
缺省值為0
打開TCP的直接擁塞通告功能。

tcp_reorderingINTEGER
默認值是3
TCP流中重排序的數據報最大數量 。 (一般有看到推薦把這個數值略微調整大一些,比如5)

tcp_retrans_collapseBOOLEAN
缺省值為1
對於某些有bug的打印機提供針對其bug的兼容性。(一般不需要這個支持,可以關閉它)

tcp_wmem(3個INTEGER變量): min, default, max
min
:為TCP socket預留用於發送緩衝的內存最小值。每個tcp socket都可以在建議以後都可以使用它。默認值為4096(4K)

default:為TCP socket預留用於發送緩衝的內存數量,默認情況下該值會影響其它協議使用的net.core.wmem_default 值,一般要低於net.core.wmem_default的值。默認值為16384(16K)

max: 用於TCP socket發送緩衝的內存最大值。該值不會影響net.core.wmem_max,」靜態」選擇參數SO_SNDBUF則不受該值影響。默認值為131072(128K)(對於服務器而言,增加這個參數的值對於發送數據很有幫助,在我的網絡環境中,修改為了51200 131072 204800)

tcp_rmem (3個INTEGER變量): min, default, max
min:為TCP socket預留用於接收緩衝的內存數量,即使在內存出現緊張情況下tcp socket都至少會有這麼多數量的內存用於接收緩衝,默認值為8K

default:為TCP socket預留用於接收緩衝的內存數量,默認情況下該值影響其它協議使用的 net.core.wmem_default 值。該值決定了在tcp_adv_win_scaletcp_app_wintcp_app_win=0默認值情況下,TCP窗口大小為65535。默認值為87380

max:用於TCP socket接收緩衝的內存最大值。該值不會影響 net.core.wmem_max,」靜態」選擇參數 SO_SNDBUF則不受該值影響。默認值為 128K。默認值為87380*2 bytes。(可以看出,.max的設置最好是default的兩倍,對於NAT來說主要該增加它,我的網絡裡為 51200 131072 204800)

tcp_mem(3個INTEGER變量):low, pressure, high
low:當TCP使用了低於該值的內存頁面數時,TCP不會考慮釋放內存。(理想情況下,這個值應與指定給 tcp_wmem 的第 2 個值相匹配 - 這第 2 個值表明,最大頁面大小乘以最大並發請求數除以頁大小 (131072 * 300 / 4096)。 )

pressure:當TCP使用了超過該值的內存頁面數量時,TCP試圖穩定其內存使用,進入pressure模式,當內存消耗低於low值時則退出pressure狀態。(理想情況下這個值應該是 TCP 可以使用的總緩衝區大小的最大值 (204800 * 300 / 4096)。 )

high:允許所有tcp sockets用於排隊緩衝數據報的頁面量。(如果超過這個值,TCP 連接將被拒絕,這就是為什麼不要令其過於保守 (512000 * 300 / 4096) 的原因了。 在這種情況下,提供的價值很大,它能處理很多連接,是所預期的 2.5 倍;或者使現有連接能夠傳輸 2.5 倍的數據。 我的網絡裡為192000 300000 732000)

一般情況下這些值是在系統啟動時根據系統內存數量計算得到的。

tcp_app_win : INTEGER
默認值是31

保留max(window/2^tcp_app_win, mss)數量的窗口由於應用緩衝。當為0時表示不需要緩衝。

tcp_adv_win_scale : INTEGER
默認值為2

計算緩衝開銷bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale > 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。

tcp_rfc1337 :BOOLEAN
缺省值為0
這個開關可以啟動對於在RFC1337中描述的」tcp 的time-wait暗殺危機」問題的修復。啟用後,內核將丟棄那些發往time-wait狀態TCP套接字的RST 包.

tcp_low_latency : BOOLEAN
缺省值為0

允許 TCP/IP 棧適應在高吞吐量情況下低延時的情況;這個選項一般情形是的禁用(但在構建Beowulf 集群的時候,打開它很有幫助)

tcp_westwood :BOOLEAN
缺省值為0
啟用發送者端的擁塞控制算法,它可以維護對吞吐量的評估,並試圖對帶寬的整體利用情況進行優化;對於 WAN 通信來說應該啟用這個選項。

tcp_bic :BOOLEAN
缺省值為0
為快速長距離網絡啟用 Binary Increase Congestion;這樣可以更好地利用以 GB 速度進行操作的鏈接;對於 WAN 通信應該啟用這個選項。


==============IP、ICMP===========

ip_local_port_range: (兩個INTEGER)
定於TCP和UDP使用的本地端口範圍,第一個數是開始,第二個數是最後端口號,默認值依賴於系統中可用的內存數:
> 128Mb 32768-61000
< style="color: rgb(0, 128, 0);">1024-4999 or even less.
該值決定了活動連接的數量,也就是系統可以並發的連接數(做nat的時候,我將它設置為1024 65530 工作正常)

ip_nonlocal_bind : BOOLEAN
默認值是0
如果您想讓應用程式能夠捆綁到一個不屬於該系統的位址﹐就需要設定這裡。(當機器使
用非固定/動態的網絡連接的時候,或者離線調試程序的時候,當線路斷掉之後﹐該服務仍可啟動而且捆綁到特定的位址之上。)

ip_dynaddr : BOOLEAN
默認值是0
假如甚至為0值,那麼將支持動態地址.如果是設置為>1的值,將在動態地址改寫的時候發一條內核消息。(如要用動態界面位址做 dail-on-demand ﹐那就設定它。一旦請求界面起來
後﹐所有看不到回應的本地 TCP socket 都會重新捆綁(rebound)﹐以獲得正確的位址。
假如遇到該網絡界面的連線不工作﹐但重新再試一次卻又可以的情形﹐設定這個可解決這
個問題。)

icmp_echo_ignore_allBOOLEAN
icmp_echo_ignore_broadcastsBOOLEAN
默認值是0

如果任何一個設置為true(>0)則系統將忽略所有發送給自己的ICMP ECHO請求或那些廣播地址的請求。(現在網絡上很多病毒/木馬自動發起感染攻擊是先用icmp的echo方式判斷對方是否存活,因此開啟該值,會降低一些被騷擾的可能性。但由於禁止了icmp,就無法ping到該機器了,因此網絡管理員也沒有辦法判斷機器是否存活了,所以可以考慮用netfilter/iptables來完成該工作會更有所選擇針對性.icmp_echo_ignore_all 是禁止所有的icmp包,而icmp_echo_ignore_broadcasts是禁止了所有的廣播包)

icmp_ratelimit : INTEGER
默認值是100 Jiffie
限制發向特定目標的匹配icmp_ratemask的ICMP數據報的最大速率。0表示沒有任何限制,否則表示jiffies數據單位中允許發送的個數。(如果在icmp_ratemask進行相應的設置Echo Request的標誌位掩碼設置為1,那麼就可以很容易地做到ping回應的速度限制了)

icmp_ratemask : INTEGER
在這裡匹配的ICMP被icmp_ratelimit參數限制速率.
匹配的標誌位: IHGFEDCBA9876543210
默認的掩碼值: 0000001100000011000 (6168)
關於標誌位的設置,可參考 源程序目錄/include/linux/icmp.h

0 Echo Reply
3 Destination Unreachable *
4 Source Quench *
5 Redirect
8 Echo Request
B Time Exceeded *
C Parameter Problem *
D Timestamp Request
E Timestamp Reply
F Info Request
G Info Reply
H Address Mask Request
I Address Mask Reply

* 號的被默認限速(見上表mask)

icmp_ignore_bogus_error_responses : BOOLEAN
默認值是0
某些路由器違背RFC1122標准,其對廣播幀發送偽造的響應來應答。這種違背行為通常會被以告警的方式記錄在系統日誌中。如果該選項設置為True,內核不會記錄這種警告信息。(我個人而言推薦設置為1)

===========網絡接口界面(比如lo,eth0,eth1)參數===========

/proc/sys/net/ipv4/conf/{interface}/* :
/proc/sys/net/ipv4/conf/ 下可以發現類似 all,eth0,eth1,default,lo 等網絡接口界面,每一個都是目錄,他們下屬的文件中,每個文件對應該界面下某些可以設置的選項設置.(all/是特定的,用來修改所有接口的設置,default/ 表示缺省設置,lo/表示本地接口設置,eth0/表示第一塊網卡,eth1/表示第2塊網卡.注意:下面有的參數,是需要all和該界面下同時為ture才生效,而某些則是只需要該界面下為true即可,注意區別!!)

log_martians : BOOLEAN
記錄帶有不允許的地址的數據報到內核日誌中。all/ 或者{interface}/至少有一個True即可生效.

accept_redirects : BOOLEAN
對於主機來說默認為True,對於用作路由器時默認值為False
收發接收ICMP重定向消息。all/{interface}/兩者同時True方可生效.
(如果不熟悉所在網絡的結構.推薦不修改,因為在有多個出口的網絡的時候,如果有2個出口路由器,由於作為主機的時候默認只指認一個網關,出口路由可能有策略設置轉到另一個路由器上.)

forwarding : BOOLEAN
在該接口打開轉發功能 (在3塊或以上的網卡的時候很實用,有時候只想讓其中一外一內,另一塊做服務,就可以讓這塊做服務的網卡不轉發數據進出)

mc_forwarding :BOOLEAN
是否進行多播路由。只有內核編譯CONFIG_MROUTE並且有路由服務程序在運行該參數才有效。

medium_id :INTEGER
默認值是0
通常,這個參數用來區分不同媒介.兩個網絡設備可以使用不同的值,使他們只有其中之一接收到廣播包.默認值為0表示各個網絡介質接受他們自己介質上的媒介,值-1表示該媒介未知。 通常,這個參數被用來配合proxy_arp實現:proxy_arp的特性即是允許arp報文在兩個不同的網絡介質中轉發.(第一段 Integer value used to differentiate the devices by the medium they
are attached to. Two devices can have different id values when
the broadcast packets are received only on one of them.
The default value 0 means that the device is the only interface
to its medium, value of -1 means that medium is not known.
沒讀懂,去cu問人,以後更正)


proxy_arp : BOOLEAN
打開arp代理功能。all/ 或者{interface}/至少有一個True即可生效

shared_media : BOOLEAN
默認為True

發送(路由器)或接收(主機) RFC1620 共享媒體重定向。覆蓋ip_secure_redirects的值。all/ 或者{interface}/至少有一個True即可生效

secure_redirects : BOOLEAN
默認為True

僅僅接收發給默認網關列表中網關的ICMP重定向消息,默認值是TRUE。all/ 或者{interface}/至少有一個True即可生效。 (這個參數一般情形請不要修改,可以有效地防止來自同網段的非網關機器發出惡意ICMP重定向攻擊行為)

send_redirects : BOOLEAN
默認為True
如果是router,允許發送重定向消息.all/ 或者{interface}/至少有一個True即可生效。(根據網絡而定,如果是做NAT,並且網內只有此一個網關的時候,其實是可以關閉掉它的,事實上目前而言,IP Redirects是TCP/IP協議產生早期為瞭解決網絡持續性而提出的一種方法,後來事實證明這種措施不太實用而且具有很大的安全風險,可能引起各種可能的網絡風險產生 - 拒絕服務攻擊,中間人攻擊,會話劫持等等,所以很多安全文檔是推薦關閉它.)

bootp_relay : BOOLEAN
默認為False

接收源地址為0.b.c.d,目的地址不是本機的數據報。用來支持BOOTP轉發服務進程,該進程將捕獲並轉發該包。目前還沒有實現。

accept_source_route : BOOLEAN
對於主機來說默認為False,對於用作路由器時默認值為True
接收帶有SRR選項的數據報。all/{interface}/兩者同時True方可生效.(IP源路由選項,也是TCP/IP協議早期的一個實現缺陷,允許IP包自身攜帶路由選擇選項,這將允許攻擊者繞過某些安全檢驗的網關,或者被用來探測網絡環境。 在企業網關上強烈建議設置關閉或過綠丟棄IP源路由選項數據包。這個功能在調試網絡的時候很有用,但是在真正的實際應用中,有可能造成一些麻煩和危險)

rp_filter : BOOLEAN
默認值為False

1 - 通過反向路徑回溯進行源地址驗證(在RFC1812中定義)。對於單穴主機和stub網絡路由器推薦使用該選項。
0 - 不通過反向路徑回溯進行源地址驗證。
默認值為0,但某些發佈在啟動時自動將其打開。 (router默認會路由所有東西﹐就算該封包』顯然』不屬於我們的網路的。常見的例子﹐莫過於將私有 IP 洩漏到 internet 上去。假如某個界面﹐其上設定的網絡地址段為
195.96.96.0/24﹐那麼理論上不會有212.64.94.1 這樣的地址段封包會到達這個界面上。許多人都不想轉發非本網段的數據包﹐因此核心設計者也打開了方便之門。在 /proc 裡面有些檔案﹐透過它們您可以讓核心為您做到這點。此方法被稱為 「逆向路徑過濾(Reverse Path Filtering)」。基本上﹐假如對此封包作出的回應﹐不是循其進入的界面送出去﹐那它就被置之不理。)

arp_filter : BOOLEAN
默認值為False
1 -允許多個網絡介質位於同一子網段內,每個網絡界面依據是否內核指派路由該數據包經過此界面來確認是否回答ARP查詢(這個實現是由來源地址確定路由的時候決定的),換句話說,允許控制使用某一塊網卡(通常是第一塊)回應arp詢問。(做負載均衡的時候,可以考慮用
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
這樣的方式就可以解決,當然 利用
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
兩條命令配合使用更好,因為arp_announcearp_ignore 似乎是對arp_filter的更細節控制的實現。)

0 -默認值,內核設置每個網絡界面各自應答其地址上的arp詢問。這項看似會錯誤的設置卻經常能非常有效,因為它增加了成功通訊的機會。在Linux主機上,每個IP地址是網絡界面獨立的,而非一個復合的接口。只有在一些特殊的設置的時候,比如負載均衡的時候會帶來麻煩。
all/ 或者{interface}/至少有一個True即可生效。(簡單來說,就是同一Linux上,如果有某些原因,有2塊網卡必須設置為同一網段,那麼默認情況下,會有一塊工作,而另外一塊不工作或者內核頻繁報告錯誤,這個時候就需要打開這個選項了)

arp_announce : INTEGER
默認為0

對網絡接口上本地IP地址發出的ARP回應作出相應級別的限制:

確定不同程度的限制,宣佈對來自本地源IP地址發出Arp請求的接口
0 - (默認) 在任意網絡接口上的任何本地地址
1 -儘量避免不在該網絡接口子網段的本地地址. 當發起ARP請求的源IP地址是被設置應該經由路由達到此網絡接口的時候很有用.此時會檢查來訪IP是否為所有接口上的子網段內ip之一.如果改來訪IP不屬於各個網絡接口上的子網段內,那麼將採用級別2的方式來進行處理.
2 - 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP數據包的源地址並嘗試選擇與能與該地址通信的本地地址.首要是選擇所有的網絡接口的子網中外出訪問子網中包含該目標IP地址的本地地址. 如果沒有合適的地址被發現,將選擇當前的發送網絡接口或其他的有可能接受到該ARP回應的網絡接口來進行發送

all/{interface}/兩者同時比較,取較大一個值生效.

提高約束級別有益於從指定的目標接受應答,而降低級別可以給予更多的arp查詢者以反饋信息(關於arp代理這一段我普遍翻譯地不好,去啃一下tcp/ip bible的卷一,然後再翻譯吧)

arp_ignore : INTEGER
默認為0
定義對目標地址為本地IP的ARP詢問不同的應答模式

0 - (默認值): 回應任何網絡接口上對任何本地IP地址的arp查詢請求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那麼即使eth0收到來自10.1.1.2這樣地址發起的對10.1.1.1 的arp查詢也會回應–而原本這個請求該是出現在eth1上,也該有eth1回應的)

1 - 只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那麼即使eth0收到來自10.1.1.2這樣地址發起的對192.168.0.1的查詢會回答,而對10.1.1.1 的arp查詢不會回應)
2 -只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到來自10.1.1.2這樣地址發起的對192.168.0.1的查詢不會回答,而對192.168.0.2發起的對192.168.0.1的arp查詢會回應
3 - 不回應該網絡界面的arp請求,而只對設置的唯一和連接地址做出回應(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻譯地似乎不好,這個我的去問問人)
4-7 - 保留未使用
8 -不回應所有(本地地址)的arp查詢

all/{interface}/兩者同時比較,取較大一個值生效.

tag : INTEGER
默認為0
你可以寫一些,可以視需要而定.(沒有明白這個是什麼作用,以後補充)

[Apache]如何不讓 apache 洩漏你 server 的資訊?

1. 在 httpd.conf 任意位置加入一行
代碼:
ServerTokens Prod

註:ServerTokens 的參數有 Min[imal], OS, Prod[uctOnly], Full 四種

2. 重新啟動 apache 就可以了


以下是在 httpd.conf 中的設定值,及 Apache 在 header 的回應

ServerTokens Full
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b PHP/4.1.2

ServerTokens OS
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)

ServerTokens Min
Server: Apache/1.3.27

ServerTokens Prod
Server: Apache

所以設定成 ServerTokens Prod 應該是比較好的選擇


參考
http://www.apacheref.com/ref/http_core/ServerTokens.html

Apache Reference: http_core, ServerTokens

ServerTokens
Control Tokens Displayed in HTTP Server Header Field
Syntax: ServerTokens A
Example: ServerTokens min
Since: Apache 1.3

This directive controls whether the HTTP Server response header field, which is sent back to clients, includes a description of the generic operating system type of the server (if type is ``os'') as well as information about compiled-in modules (if type is ``full''). With a type of ``min'', only the server version is included. This setting applies to the entire server, and it cannot be enabled or disabled on a per- virtual-host basis.


建議再加上 ServerSignature Email
或 ServerSignature Off

*ServerSignature On
用法:ServerSignature 選項
(可用的選項有︰On,Off 以及 Email)

ServerSignature 指令用來選擇,當 Apache/2 遇到如錯誤訊息等情形而產生一份
告知使用者目前情形的網頁時,是否要附加上一些提示使用者的資訊。
如果設定為 "Off",就是除了內定告知使用者的資訊以外,不再附加其他資訊。
如果設定為 "On",則表示在該網頁加上 ServerName 指令所指定的伺服器名稱;
如果設定為 "Email",則在該告知網頁上,附加 ServerAdmin 後面所指定的電子郵件位址。

如果有使用 php 的話
建議再修改 php.ini
改 expose_php (預設是 On)
expose_php = Off

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
;expose_php = On

[Windows] 當機 藍色畫面 解讀

windows當機藍色畫面解讀

0 0x0000 作業完成。
1 0x0001 不正確的函數。
2 0x0002 系統找不到指定的檔案。
3 0x0003 系統找不到指定的路徑。
4 0x0004 系統無法開啟檔案。
5 0x0005 拒絕存取。
6 0x0006 無效的代碼。
7 0x0007 儲存體控制區塊已毀。
8 0x0008 儲存體空間不足,無法處理這個指令。
9 0x0009 儲存體控制區塊位址無效。
10 0x000A 環境不正確。
11 0x000B 嘗試載入一個格式錯誤的程式。
12 0x000C 存取碼錯誤。
13 0x000D 資料錯誤。
14 0x000E 儲存體空間不夠,無法完成這項作業。
15 0x000F 系統找不到指定的磁碟機。
16 0x0010 無法移除目錄。
17 0x0011 系統無法將檔案移到其他的磁碟機。
18 0x0012 沒有任何檔案。
19 0x0013 儲存媒體為防寫狀態。
20 0x0014 系統找不到指定的裝置。
21 0x0015 裝置尚未就緒。
22 0x0016 裝置無法識別指令。
23 0x0017 資料錯誤 (cyclic redundancy check)
24 0x0018 程式發出一個長度錯誤的指令。
25 0x0019 磁碟機在磁碟找不到特定的磁區或磁軌。
26 0x001A 指定的磁碟或磁片無法存取。
27 0x001B 磁碟機找不到要求的磁區。
28 0x001C 印表機沒有紙。
29 0x001D 系統無法將資料寫入指定的磁碟機。
30 0x001E 系統無法讀取指定的裝置。
31 0x001F 連接到系統的某個裝置沒有作用。
32 0x0020 The process cannot access the file because it is being used by another process.
33 0x0021 檔案的一部份被鎖定, 現在無法存取。
34 0x0022 磁碟機的磁片不正確。 請將 %2 (Volume Serial Number: %3) 插入磁碟機%1。
36 0x0024 開啟的分享檔案數量太多。
38 0x0026 到達檔案結尾。
39 0x0027 磁碟已滿。
50 0x0032 不支援這種網路要求。
51 0x0033 遠端電腦無法使用。
52 0x0034 網路名稱重複。
53 0x0035 網路路徑找不到。
54 0x0036 網路忙碌中。
55 0x0037 The specified network resource or device is no longer available.
56 0x0038 The network BIOS command limit has been reached.
57 0x0039 網路配接卡發生問題。
58 0x003A 指定的伺服器無法執行要求的作業。
59 0x003B 網路發生意外錯誤。
60 0x003C 遠端配接卡不相容。
61 0x003D 印表機佇列已滿。
62 0x003E 伺服器的空間無法儲存等候列印的檔案。
63 0x003F 等候列印的檔案已經刪除。
64 0x0040 指定的網路名稱無法使用。
65 0x0041 拒絕存取網路。
66 0x0042 網路資源類型錯誤。
67 0x0043 網路名稱找不到。
68 0x0044 超過區域電腦網路配接卡的名稱限制。
69 0x0045 超過網路 BIOS 作業階段的限制。
70 0x0046 遠端伺服器已經暫停或者正在起始中。
71 0x0047 由於連線數目已達上限,此時無法再連線到這台遠端電腦。
72 0x0048 指定的印表機或磁碟裝置已經暫停作用。
80 0x0050 檔案已經存在。
82 0x0052 無法建立目錄或檔案。
83 0x0053 INT 24 失敗
84 0x0054 處理這項要求的儲存體無法使用。
85 0x0055 近端裝置名稱已經在使用中。
86 0x0056 指定的網路密碼錯誤。
87 0x0057 參數錯誤。
88 0x0058 網路發生資料寫入錯誤。
89 0x0059 此時系統無法執行其他行程。
100 0x0064 無法建立其他的系統 semaphore。
101 0x0065 屬於其他行程專用的 semaphore 。
102 0x0066 semaphore 已經設定,而且無法關閉。
103 0x0067 無法指定 semaphore 。
104 0x0068 在岔斷時間無法要求專用的 semaphore 。
105 0x0069 此 semaphore 先前的擁有權已經結束。
106 0x006A 請將磁片插入 %1。
107 0x006B 因為代用的磁片尚未插入,所以程式已經停止。
108 0x006C 磁碟正在使用中或被鎖定。
109 0x006D Pipe 已經中止。
110 0x006E 系統無法開啟指定的裝置或檔案。
111 0x006F 檔名太長。
112 0x0070 磁碟空間不足。
113 0x0071 沒有可用的內部檔案識別字。
114 0x0072 目標內部檔案識別字不正確。
117 0x0075 由應用程式所執行的 IOCTL 呼叫不正確。
118 0x0076 寫入驗證參數值不正確。
119 0x0077 系統不支援所要求的指令。
120 0x0078 此項功能僅在 Win32 模式有效。
121 0x0079 semaphore 超過逾時期間。
122 0x007A 傳到系統呼叫的資料區域太小。
123 0x007B 檔名、目錄名稱或儲存體標籤語法錯誤。
124 0x007C 系統呼叫層次不正確。
125 0x007D 磁碟沒有設定標籤。
126 0x007E 找不到指定的模組。
127 0x007F 找不到指定的程序。
128 0x0080 沒有子行程可供等待。
129 0x0081 %1 這個應用程式無法在 Win32 模式下執行。
130 0x0082 Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O.
131 0x0083 嘗試將檔案指標移至檔案開頭之前。
132 0x0084 無法在指定的裝置或檔案,設定檔案指標。
133 0x0085 JOIN 或 SUBST 指令 無法用於 內含事先結合過的磁碟機。
134 0x0086 嘗試在已經結合的磁碟機,使用 JOIN 或 SUBST 指令。
135 0x0087 嘗試在已經替換的磁碟機,使用 JOIN 或 SUBST 指令。
136 0x0088 系統嘗試刪除 未連結過的磁碟機的連結關係。
137 0x0089 系統嘗試刪除 未替換過的磁碟機的替換關係。
138 0x008A 系統嘗試將磁碟機結合到已經結合過之磁碟機的目錄。
139 0x008B 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。
140 0x008C 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。
141 0x008D 系統嘗試將磁碟機 SUBST 成已結合的磁碟機 目錄。
142 0x008E 系統此刻無法執行 JOIN 或 SUBST。
143 0x008F 系統無法將磁碟機結合或替換同一磁碟機下目錄。
144 0x0090 這個目錄不是根目錄的子目錄。
145 0x0091 目錄仍有資料。
146 0x0092 指定的路徑已經被替換過。
147 0x0093 資源不足,無法處理這項指令。
148 0x0094 指定的路徑這時候無法使用。
149 0x0095 嘗試要結合或替換的磁碟機目錄,是已經替換過的的目標。
150 0x0096 CONFIG.SYS 檔未指定系統追蹤資訊,或是追蹤功能被取消。
151 0x0097 指定的 semaphore事件 DosMuxSemWait 數目不正確。
152 0x0098 DosMuxSemWait 沒有執行;設定太多的 semaphore。
153 0x0099 DosMuxSemWait 清單不正確。
154 0x009A 您所輸入的儲存媒體標 元長度限制。
155 0x009B 無法建立其他的執行緒。
156 0x009C 接收行程拒絕接受信號。
157 0x009D 區段已經被捨棄,無法被鎖定。
158 0x009E 區段已經解除鎖定。
159 0x009F 執行緒識別碼的位址不正確。
160 0x00A0 傳到 DosExecPgm 的引數字串不正確。
161 0x00A1 指定的路徑不正確。
162 0x00A2 信號等候處理。
164 0x00A4 系統無法建立執行緒。
167 0x00A7 無法鎖定檔案的部份範圍。
170 0x00AA 所要求的資源正在使用中。
173 0x00AD 取消範圍的鎖定要求不明顯。
174 0x00AE 檔案系統不支援自動變更鎖定類型。
180 0x00B4 系統發現不正確的區段號碼。
182 0x00B6 作業系統無法執行 %1。
183 0x00B7 檔案已存在,無法建立同一檔案。
186 0x00BA 傳送的旗號錯誤。
187 0x00BB 指定的系統旗號找不到。
188 0x00BC 作業系統無法執行 %1。
189 0x00BD 作業系統無法執行 %1。
190 0x00BE 作業系統無法執行 %1。
191 0x00BF 無法在 Win32 模式下執行 %1。
192 0x00C0 作業系統無法執行 %1。
193 0x00C1 %1 不是正確的 Win32 應用程式。
194 0x00C2 作業系統無法執行 %1。
195 0x00C3 作業系統無法執行 %1。
196 0x00C4 作業系統無法執行 這個應用程式。
197 0x00C5 作業系統目前無法執行這個應用程式。
198 0x00C6 作業系統無法執行 %1。
199 0x00C7 作業系統無法執行這個應用程式。
200 0x00C8 程式碼的區段不可以大於或等於 64KB。
201 0x00C9 作業系統無法執行 %1。
202 0x00CA 作業系統無法執行 %1。
203 0x00CB 系統找不到輸入的環境選項。 \r
205 0x00CD 在指令子目錄下,沒有任何行程有信號副處理程式。
206 0x00CE 檔案名稱或副檔名太長。
207 0x00CF ring 2 堆疊使用中。
208 0x00D0 輸入的通用檔名字元 * 或 ? 不正確, 或指定太多的通用檔名字元。
209 0x00D1 所傳送的信號不正確。
210 0x00D2 無法設定信號處理程式。
212 0x00D4 區段被鎖定,而且無法重新配置。
214 0x00D6 附加到此程式或動態連結模組的動態連結模組太多。
215 0x00D7 Can't nest calls to LoadModule.
230 0x00E6 The pipe state is invalid.
231 0x00E7 所有的 pipe instances 都在忙碌中。
232 0x00E8 The pipe is being closed.
233 0x00E9 No process is on the other end of the pipe.
234 0x00EA 有更多可用的資料。
240 0x00F0 作業階段被取消。
254 0x00FE 指定的延伸屬性名稱無效。
255 0x00FF 延伸的屬性不一致。
259 0x0103 沒有可用的資料。
266 0x010A 無法使用 Copy API。
267 0x010B 目錄名稱錯誤。
275 0x0113 延伸屬性不適用於緩衝區。
276 0x0114 在外掛的檔案系統上的延伸屬性檔案已經毀損。
277 0x0115 延伸屬性表格檔滿。
278 0x0116 指定的延伸屬性代碼無效。
282 0x011A 外掛的這個檔案系統不支援延伸屬性。
288 0x0120 意圖釋放不屬於叫用者的 mutex。
298 0x012A semaphore 傳送次數過多。
299 0x012B 只完成 Read/WriteProcessMemory 的部份要求。
317 0x013D 系統找不到位於訊息檔 %2 中編號為 0x%1 的訊息。
487 0x01E7 嘗試存取無效的位址。
534 0x0216 運算結果超過 32 位元。
535 0x0217 通道的另一端有一個行程在接送資料。
536 0x0218 等候行程來開啟通道的另一端。
994 0x03E2 存取延伸的屬性被拒。
995 0x03E3 由於執行緒結束或應用程式要求,而異常終止 I/O 作業。
996 0x03E4 重疊的 I/O 事件不是設定成通知狀態。
997 0x03E5 正在處理重疊的 I/O 作業。
998 0x03E6 對記憶體位置的無效存取。
999 0x03E7 執行 inpage 作業發生錯誤。
1001 0x03E9 遞迴太深,堆疊滿溢。
1002 0x03EA 視窗無法用來傳送訊息。
1003 0x03EB 無法完成這項功能。
1004 0x03EC 旗號無效。
1005 0x03ED 儲存媒體未含任何可辨識的檔案系統。 請確定以載入所需的系統驅動程式,而且該儲存媒體並未毀損。
1006 0x03EE 儲存該檔案的外部媒體發出警告, 表示該已開啟檔案已經無效。
1007 0x03EF 所要求的作業無法在全螢幕模式下執行。
1008 0x03F0 An attempt was made to reference a token that does not exist.
1009 0x03F1 組態系統登錄資料庫毀損。
1010 0x03F2 組態系統登錄機碼無效。
1011 0x03F3 無法開啟組態系統登錄機碼。
1012 0x03F4 無法讀取組態系統登錄機碼。
1013 0x03F5 無法寫入組態系統登錄機碼。
1014 0x03F6 系統登錄資料庫中的一個檔案必須使用記錄或其他備份還原。已經還原成功。
1015 0x03F7 系統登錄毀損。其中某個檔案毀損、或者該檔案的系統映對記憶體內容毀損、會是檔案無法復原。
1016 0x03F8 系統登錄起始的 I/O 作業發生無法復原的錯誤。 系統登錄無法讀入、寫出或更新,其中的一個檔案內含系統登錄在記憶體中的內容。
1017 0x03F9 系統嘗試將檔案載入系統登錄或將檔案還原到系統登錄中, 但是, 指定檔案的格式不是系統登錄檔的格式。
1018 0x03FA 嘗試在標示為刪除的系統登錄機碼,執行不合法的操作。
1019 0x03FB 系統無法配置系統登錄記錄所需的空間。
1020 0x03FC 無法在已經有子機碼或數值的系統登錄機碼建立符號連結。
1021 0x03FD 無法在臨時機碼下建立永久的子機碼。
1022 0x03FE 變更要求的通知完成,但資訊 並未透過呼叫者的緩衝區傳回。呼叫者現在需要自行列舉檔案,找出變更的地方。
1051 0x041B 停止控制已經傳送給其他服務 所依峙的一個服務。
1052 0x041C 要求的控制對此服務無效
1053 0x041D The service did not respond to the start or control request in a timely fashion.
1054 0x041E 無法建立服務的執行緒。
1055 0x041F 服務資料庫被鎖定。
1056 0x0420 這種服務已經在執行。
1057 0x0421 帳戶名稱錯誤或者不存在。
1058 0x0422 指定的服務暫停作用,無法啟動。
1059 0x0423 指定循環服務從屬關係。
1060 0x0424 指定的服務不是安裝進來的服務。
1061 0x0425 該服務項目此時無法接收控制訊息。
1062 0x0426 服務尚未啟動。
1063 0x0427 無法連線到服務控制程式。
1064 0x0428 處理控制要求時,發生意外狀況。
1065 0x0429 指定的資料庫不存在。
1066 0x042A 服務傳回專屬於服務的錯誤碼。
1067 0x042B The process terminated unexpectedly.
1068 0x042C 從屬服務或群組無法啟動。
1069 0x042D 因為登入失敗,所以沒有啟動服務。
1070 0x042E 在啟動之後,服務在啟動狀態時當機。
1071 0x042F 指定服務資料庫鎖定無效。
1072 0x0430 指定的服務已經標示為刪除。
1073 0x0431 指定的服務已經存在。
1074 0x0432 系統目前正以上一次執行成功的組態執行。
1075 0x0433 從屬服務不存在,或已經標示為刪除。
1076 0x0434 目前的啟動已經接受上一次執行成功的 控制設定。
1077 0x0435 上一次啟動之後,就沒有再啟動服務。
1078 0x0436 指定的名稱已經用於服務名稱或服務顯示名稱。
1100 0x044C 已經到了磁帶的最後。
1101 0x044D 到了檔案標示。
1102 0x044E 遇到磁帶的開頭或分割區。
1103 0x044F 到了檔案組的結尾。
1104 0x0450 磁帶沒有任何資料。
1105 0x0451 磁帶無法製作分割區。
1106 0x0452 存取多重容體的新磁帶時,發現目前區塊大小錯誤。
1107 0x0453 載入磁帶時,找不到磁帶分割區資訊。
1108 0x0454 無法鎖住儲存媒體退帶功能。
1109 0x0455 無法解除載入儲存媒體。
1110 0x0456 磁碟機中的儲存媒體已經變更。
1111 0x0457 已經重設 I/O 匯流排。
1112 0x0458 磁碟機沒有任何儲存媒體。
1113 0x0459 目標 multi-byte code page,沒有對應 Unicode 字元。
1114 0x045A 動態連結程式庫 (DLL) 起始常式失敗。
1115 0x045B 系統正在關機。
1116 0x045C 無法中止系統關機,因為沒有關機的動作在進行中。
1117 0x045D 因為 I/O 裝置發生錯誤,所以無法執行要求。
1118 0x045E 序列裝置起始失敗,會取消載入序列驅動程式。
1119 0x045F 無法開啟裝置。這個裝置與其他裝置共用岔斷要求 (IRQ)。至少已經有一個使用同一IRQ 的其他裝置已經開啟。
1120 0x0460 A serial I/O operation was completed by another write to the serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)
1121 0x0461 因為已經過了逾時時間,所以序列 I/O 作業完成。(IOCTL_SERIAL_XOFF_COUNTER 不是零。)
1122 0x0462 在磁片找不到任何的 ID 位址標示。
1123 0x0463 磁片磁區 ID 欄位與磁片控制卡追蹤位址不符。
1124 0x0464 軟式磁碟機控制卡回報了一個軟式磁碟機驅動程式無法識別的錯誤。
1125 0x0465 軟式磁碟機控制卡傳回與暫存器中不一致的結果。
1126 0x0466 存取硬碟失敗,重試後也無法作業。
1127 0x0467 存取硬碟失敗,重試後也無法作業。
1128 0x0468 存取硬碟時,必須重設磁碟控制卡,但是連重設的動作也失敗。
1129 0x0469 到了磁帶的最後。
1130 0x046A 可用伺服器儲存空間不足,無法處理這項指令。
1131 0x046B 發現潛在的鎖死條件。
1132 0x046C 指定的基本位址或檔案位移沒有適當對齊。
1140 0x0474 嘗試變更系統電源狀態,但其他的應用程式或驅動程式拒絕。
1141 0x0475 系統 BIOS 無法變更系統電源狀態。
1150 0x047E 指定的程式需要新的 Windows 版本。
1151 0x047F 指定的程式不是 Windows 或 MS-DOS 程式。
1152 0x0480 指定的程式已經啟動,無法再啟動一次。
1153 0x0481 指定的程式是為舊版的 Windows 所寫的。
1154 0x0482 執行此應用程式所需的程式庫檔案之一毀損。
1155 0x0483 沒有應用程式與此項作業的指定檔案建立關聯。
1156 0x0484 傳送指令到應用程式發生錯誤。
1157 0x0485 找不到執行此應用程式所需的程式庫檔案。
1200 0x04B0 指定的裝置名稱無效。
1201 0x04B1 裝置現在雖然未連線,但是它是一個記憶連線。
1202 0x04B2 嘗試記憶已經記住的裝置。
1203 0x04B3 提供的網路路徑找不到任何網路提供程式。
1204 0x04B4 指定的網路提供程式名稱錯誤。
1205 0x04B5 無法開啟網路連線設定檔。
1206 0x04B6 網路連線設定檔壞掉。
1207 0x04B7 無法列舉非容器。
1208 0x04B8 發生延伸的錯誤。
1209 0x04B9 指定的群組名稱錯誤。
1210 0x04BA 指定的電腦名稱錯誤。
1211 0x04BB 指定的事件名稱錯誤。
1212 0x04BC 指定的網路名稱錯誤。
1213 0x04BD 指定的服務名稱錯誤。
1214 0x04BE 指定的網路名稱錯誤。
1215 0x04BF 指定的資源分享名稱錯誤。
1216 0x04C0 指定的密碼錯誤。
1217 0x04C1 指定的訊息名稱錯誤。
1218 0x04C2 指定的訊息目的地錯誤。
1219 0x04C3 所提供的條件與現有的條件組發生衝突。
1220 0x04C4 嘗試與網路伺服器連線,但是 與該伺服器的連線已經太多。
1221 0x04C5 其他網路電腦已經在使用這個工作群組或網域名稱。
1222 0x04C6 網路沒有顯示出來或者沒有啟動。
1223 0x04C7 使用者已經取消作業。
1224 0x04C8 要求的作業無法在已經開啟使用者對應區段的檔案執行。
1225 0x04C9 遠端系統拒絕網路連線。
1226 0x04CA 關閉網路連線。
1227 0x04CB 網路傳輸端點已經有相關連的位址。
1228 0x04CC 位址尚未有相關的網路端點。
1229 0x04CD 嘗試在不存在的網路連線作業。
1230 0x04CE 在作用中的網路連線上執行無效的作業。
1231 0x04CF 無法傳輸到遠端網路。
1232 0x04D0 無法連線到遠端系統。
1233 0x04D1 遠端系統不支援傳輸通訊協定。
1234 0x04D2 遠端系統的目的地網路端點沒有作何執行中的服務。
1235 0x04D3 要求已經中止。
1236 0x04D4 進端系統已經中斷網路連線。
1237 0x04D5 無法完成作業,請重試。
1238 0x04D6 無法與伺服器連線,原因是這個帳戶已經到達同時連線數目的上限。
1239 0x04D7 嘗試在這個帳戶未授權的時間登入網路。
1240 0x04D8 這個帳戶無法從這個地方登入網路。
1241 0x04D9 網路位址無法用於這個要求的作業。
1242 0x04DA 服務已經登記。
1243 0x04DB 指定的服務不存在。
1244 0x04DC 作業無法執行,原因是使用者尚未授權使用。
1245 0x04DD 要求的作業無法執行,原因是使用者尚未登入網路。 指定的服務不存在。
1246 0x04DE 傳回要求呼叫者繼續工作的訊息。
1247 0x04DF 在完成起始作業之後,嘗試再執行起始作業。
1248 0x04E0 沒有其他的近端裝置。
1300 0x0514 並未指定所有的參照權限給呼叫者。
1301 0x0515 帳戶名稱與安全識別碼之間尚有未執行完成的連線。
1302 0x0516 此帳戶並未設定特別的系統配額限制。
1303 0x0517 沒有可用的加密機碼。傳回一個已知的加密機碼。
1304 0x0518 NT 密碼太複雜,無法轉換成 LAN Manager 密碼。傳回的LAN Manager 密碼是一個空字串。
1305 0x0519 修正層次不詳。
1306 0x051A 表示兩個修訂階層不相容。
1307 0x051B 此安全識別碼無法指定為這個物件的擁有者。
1308 0x051C 此安全識別碼無法指定為主要的物件群組。
1309 0x051D An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client.
1310 0x051E 不可以關閉群組。
1311 0x051F 目前沒有可登入的伺服器,所以無法處理登入要求。
1312 0x0520 指定登入作業階段不存在。該作業階段可能已經結束。
1313 0x0521 指定的權限不存在。
1314 0x0522 用戶端未列出要求的權限。
1315 0x0523 所提供的名稱格式與帳戶名稱不符。
1316 0x0524 指定的使用者已經存在。
1317 0x0525 指定的使用者不存在。
1318 0x0526 指定的群組已經存在。
1319 0x0527 指定的群組不存存。
1320 0x0528 指定的使用者帳戶已經是指定群組的成員,或指定的群組因為內含成員而無法刪除。
1321 0x0529 指定的使用者帳戶不是指定的群組帳戶成員。
1322 0x052A 上一次留下來的管理帳戶無法關閉或刪除。
1323 0x052B 無法更新密碼。所輸入的密碼不正確。
1324 0x052C 無法更新密碼。所輸入的新密碼內含不符合密碼規定。
1325 0x052D 因為違反密碼更新規則,所以無法更新密碼。
1326 0x052E 登入失敗: 無法辨識的使用者名稱或密碼錯誤。
1327 0x052F 登入失敗: 使用者帳戶限制。
1328 0x0530 登入失敗: 違反帳戶登入時間限制。
1329 0x0531 登入失敗: 使用者不可登入這部電腦。
1330 0x0532 登入失敗: 指定的帳戶密碼過期。
1331 0x0533 登入失敗: 帳戶目前無效。
1332 0x0534 帳戶名稱與帳戶識別碼不符。
1333 0x0535 一次要求太多的近端使用者識別碼 (local user identifiers,LUIDs)。
1334 0x0536 沒有可用的近端使用者識別碼 (local user identifiers ,LUIDs)。
1335 0x0537 安全識別碼的轉授權部份對這個特殊用法無效。
1336 0x0538 無效的存取控制清單結構。
1337 0x0539 安全識別碼結構無效。
1338 0x053A 安全敘述子結構無效。
1340 0x053C 無法建立繼承的存取控制清單或存取控制項目。
1341 0x053D 伺服器目前無效。
1342 0x053E 伺服器目前可以使用。
1343 0x053F 所提供的值是無效的識別碼授權值。
1344 0x0540 沒有可供安全資訊更新使用的記憶體。
1345 0x0541 指定的屬性無效,或指定的屬性與整個群組的屬性不相容。
1346 0x0542 Either a required impersonation level was not provided, or the provided impersonation level is invalid.
1347 0x0543 Cannot open an anonymous level security token.
1348 0x0544 所要求的認可資訊類別無效。
1349 0x0545 The type of the token is inappropriate for its attempted use.
1350 0x0546 無法在沒有相關連安全性的物件執行安全作業。
1351 0x0547 指示無法連到 Windows NT 伺服器,或網域中的物件受到保護,所以無法擷取所需的物件。
1352 0x0548 安全帳戶管理程式或區域安全授權伺服器狀態不正確,所以無法執行安全作業。
1353 0x0549 網域狀態錯誤,所以無法執行安全作業。
1354 0x054A 只有網域的主網域控制器才能使用這項作業。
1355 0x054B 指定的網域不存在。
1356 0x054C 指定的網域已經存在。
1357 0x054D 嘗試超過每個伺服器的網域數目限制。
1358 0x054E 因為磁碟上發生嚴重的儲存媒體錯誤或是資料結構毀損, 所以無法完成所要求的作業。
1359 0x054F 安全帳戶資料庫內有內部不一致的狀況。
1360 0x0550 通用的存取類型包含在某一存取遮罩中, 這個遮罩已經對應到非通用的類型。
1361 0x0551 安全敘述子的格式不正確 (absolute or self-relative)。
1362 0x0552 所要求的動作只能給登入使用。 而目前呼叫該動作的處理並未登錄為登入。
1363 0x0553 無法利用已經在使用的識別碼來啟動新的作業階段。
1364 0x0554 無法識別指定的確認包裝。
1365 0x0555 登入作業階段不是在與要求的作業一致的狀態。
1366 0x0556 登入作業階段識別碼已經在使用中。
1367 0x0557 登入要求包含無效的登入類型值。
1368 0x0558 Unable to impersonate via a named pipe until data has been read from that pipe.
1369 0x0559 The transaction state of a Registry subtree is incompatible with the requested operation.
1370 0x055A 內部安全資料庫毀損。
1371 0x055B 無法在內建帳戶執行這項作業。
1372 0x055C 無法在這個內建的特殊群組執行這項操作。
1373 0x055D 無法在這個內建的特殊使用者執行這項作業。
1374 0x055E 因為群組目前是使用者的主要群組,所以不能從群組移除使用者。
1375 0x055F The token is already in use as a primary token.
1376 0x0560 指定的區域群組不存在。
1377 0x0561 指定的帳戶名稱不是區域群組的成員。
1378 0x0562 指定的帳戶名稱已經是區域群組的成員。
1379 0x0563 指定的區域群組已經存在。
1380 0x0564 登入失敗: 使用者無權在這部電腦以要求的登入類型登入。
1381 0x0565 The maximum number of secrets that may be stored in a single system has been exceeded.
1382 0x0566 The length of a secret exceeds the maximum length allowed.
1383 0x0567 本區安全性授權資料庫內含的資料不一致。
1384 0x0568 在登入時,使用者的安全內容累積太多的安全識別碼。
1385 0x0569 登入失敗: 使用者尚未被許可在這個台腦使用要求的登入類型。
1386 0x056A 交叉加密的密碼需要變更使用者的密碼。
1387 0x056B 因為成員不存在,所以無法將新的成員新增到區域群組。
1388 0x056C 因為成員的帳號類型不正確,所以無法新增到區域群組。
1389 0x056D 指定的安全 ID 太多。
1390 0x056E 需要用到交互加密的密碼才能變更這個使用者的密碼。
1391 0x056F 表示存取控制清單沒有可繼承的元件
1392 0x0570 檔案或目錄已毀,無法讀取資料。
1393 0x0571 磁碟結構已毀無法讀取。
1394 0x0572 沒有指定之登入作業階段的使用者作業階段機碼。
1395 0x0573 正在存取的服務僅授權特定數目的連線。 而目前連線數目已達上限,所以無法再建立服務連線。
1400 0x0578 視窗代碼無效。
1401 0x0579 功能表識別碼無效。
1402 0x057A 游標控制碼無效。
1403 0x057B 加速鍵表格控制碼無效。
1404 0x057C Invalid hook handle.
1405 0x057D 無效的多重視窗位置結構控制。
1406 0x057E 無法建立最上層的子視窗。
1407 0x057F 找不到 window class。
1408 0x0580 無效的視窗,屬於其他的執行緒。
1409 0x0581 快速鍵已經登記。
1410 0x0582 Class 已經存在。
1411 0x0583 Class 不存在。
1412 0x0584 Class 仍然有開啟的視窗。
1413 0x0585 無效的索引。
1414 0x0586 圖示控制碼無效。
1415 0x0587 使用專用的 DIALOG 視窗文字。
1416 0x0588 清單方塊識別碼找不到。
1417 0x0589 找不到任何通配字元。
1418 0x058A 執行緒 (thread) 沒有開啟剪貼簿。
1419 0x058B 快速鍵沒有登記。
1420 0x058C 不是有效的對話視窗。
1421 0x058D Control ID 找不到。
1422 0x058E 清單方塊的訊息無效,因為沒有任何的編輯控制碼。
1423 0x058F 視窗不是一個清單方塊。
1424 0x0590 高度必須小於 256。
1425 0x0591 裝置範圍 (DC) 控制碼無效。
1426 0x0592 鎖定程序類型無效。
1427 0x0593 鎖定程序無效。
1428 0x0594 沒有模組控制碼就不能設定非本區的鎖定。
1429 0x0595 This hook procedure can only be set globally.
1430 0x0596 The journal hook procedure is already installed.
1431 0x0597 The hook procedure is not installed.
1432 0x0598 無效的單一選擇清單方塊訊息。
1433 0x0599 LB_SETCOUNT 傳送到 non-lazy 清單方塊。
1434 0x059A 這個清單方塊不支援跳格停駐。
1435 0x059B 不可毀損由其他執行緒所建立的物件。
1436 0x059C 子視窗不能有功能表。
1437 0x059D 視窗沒有系統功能表。
1438 0x059E 無效的訊息方塊樣式。
1439 0x059F 無效的 system-wide (SPI_*) 參數。
1440 0x05A0 螢幕已經鎖定。
1441 0x05A1 All handles to windows in a multiple-window position structure must have the same parent.
1442 0x05A2 視窗不是子視窗。
1443 0x05A3 GW_* 指令無效。
1444 0x05A4 執行緒識別碼無效。
1445 0x05A5 無法處理多重文件介面視窗的訊息。
1446 0x05A6 即現式功能表已在作用中。
1447 0x05A7 視窗沒有捲軸。
1448 0x05A8 捲軸範圍不可以大於 0x7FFF。
1449 0x05A9 無法以指定的方式顯示或移除視窗。
1450 0x05AA 系統資源不足,無法完成所要求的服務。
1451 0x05AB 系統資源不足,無法完成所要求的服務。
1452 0x05AC 系統資源不足,無法完成所要求的服務。
1453 0x05AD 配額不足,無法完成所要求的服務。
1454 0x05AE 配額不足,無法完成所要求的服務。
1455 0x05AF 這項作業的 paging 檔太小,無法完成作業。
1456 0x05B0 找不到功能表項目。
1500 0x05DC 事件記錄檔壞掉。
1501 0x05DD 無法開啟事件記錄檔,因此事件記錄服務沒有啟動。
1502 0x05DE 事件記錄檔已滿。
1503 0x05DF 事件記錄檔已經變更。
1700 0x06A4 字串連結錯誤。
1701 0x06A5 連結控制碼 (binding handle) 的類型錯誤。
1702 0x06A6 連結控制碼 (binding handle) 無效。
1703 0x06A7 不支援 RPC 通訊協定順序。
1704 0x06A8 RPC 通訊協定順序無效。
1705 0x06A9 字串 universal unique identifier (UUID) 無效。
1706 0x06AA 端點格式錯誤。
1707 0x06AB 網路位址無效。
1708 0x06AC 找不到端點。
1709 0x06AD 逾時數值無效。
1710 0x06AE 找不到物件的 universal unique identifier (UUID)。
1711 0x06AF 物件的 universal unique identifier (UUID) 已經登記。
1712 0x06B0 類型的 universal unique identifier (UUID) 已經登記。
1713 0x06B1 RPC 伺服器已經在聽候。
1714 0x06B2 沒有登記通訊協定順序。
1715 0x06B3 RPC 伺服器沒有聽候指令。
1716 0x06B4 管理員類型不詳。
1717 0x06B5 介面不詳。
1718 0x06B6 沒有連線。
1719 0x06B7 沒有通訊協定順序。
1720 0x06B8 無法建立端點。
1721 0x06B9 資源不足,無法完成作業。
1722 0x06BA RPC 伺服器無法使用。
1723 0x06BB RPC 伺服器太忙,無法完成這項作業。
1724 0x06BC 網路選項無效。
1725 0x06BD 這個執行緒 (thread) 沒有任何執行的遠端程序呼叫。
1726 0x06BE 遠端程序呼叫失敗。
1727 0x06BF 遠端程序呼叫失敗,所以沒有執行。
1728 0x06C0 遠端程序呼叫 (remote procedure call,RPC) 通訊協定發生錯誤。
1730 0x06C2 RPC 伺服器不支援轉送語法。
1732 0x06C4 不支援 universal unique identifier (UUID) 的類型。
1733 0x06C5 封籤 (tag) 無效。
1734 0x06C6 陣列無效。
1735 0x06C7 連結中沒有項目名稱。
1736 0x06C8 名稱語法無效。
1737 0x06C9 名稱語法不被支援。
1739 0x06CB 沒有任何網路位址可以用來建立全球唯一的識別碼 (UUID)。
1740 0x06CC 端點重複。
1741 0x06CD 授權類型不詳。
1742 0x06CE 呼叫次數的上限太小。
1743 0x06CF 字串太長。
1744 0x06D0 找不到 RPC 通訊協定順序。
1745 0x06D1 程序號碼超出範圍。
1746 0x06D2 連結中沒有包含任何確認資訊。
1747 0x06D3 確認服務不詳。
1748 0x06D4 確認層次不詳。
1749 0x06D5 安全內容無效。
1750 0x06D6 確認服務不詳。
1751 0x06D7 項目無效。
1752 0x06D8 伺服器端點無法執行這個作業。
1753 0x06D9 端點對應程式沒有其他的端點。
1754 0x06DA 沒有匯出任何的介面。
1755 0x06DB 項目名稱不完整。
1756 0x06DC 版本選項無效。
1757 0x06DD 沒有其他的成員。
1758 0x06DE 沒有任何資料可以取消匯出。
1759 0x06DF 介面找不到。
1760 0x06E0 項目已經存在。
1761 0x06E1 項目找不到。
1762 0x06E2 名稱服務無法使用。
1763 0x06E3 網路位址系列無效。
1764 0x06E4 要求的作業不受支援。
1765 0x06E5 沒有可用來模擬的安全內容。
1766 0x06E6 遠端程序呼叫 (RPC) 發生內部錯誤。
1767 0x06E7 RPC 伺服器嘗試用整數除以 0。
1768 0x06E8 RPC 伺服器發生位址設定錯誤。
1769 0x06E9 RPC 伺服器的浮點作業導致除以 0 的運算。
1770 0x06EA RPC 伺服器發生浮點 underflow。
1771 0x06EB RPC 伺服器發生浮點 overflow。
1772 0x06EC 清單中可供連結自動代碼 的 RPC 伺服器已經用完。
1773 0x06ED 無法開啟字元轉換表檔案。
1774 0x06EE 包含字元轉換表的檔案少於 512 位元組。
1775 0x06EF 在遠端程序呼叫時,將空的 context 代碼從用戶端傳送到主電腦。
1777 0x06F1 在遠端程序呼叫時內容處理改變。
1778 0x06F2 傳送給遠端程序呼叫的連結代碼不符。
1779 0x06F3 The stub is unable to get the remote procedure call handle.
1780 0x06F4 A null reference pointer was passed to the stub.
1781 0x06F5 The enumeration value is out of range.
1782 0x06F6 位元組計數太小。
1783 0x06F7 The stub received bad data.
1784 0x06F8 所提供的使用者緩衝區對要求的作業無效。
1785 0x06F9 無法辨識磁碟儲存媒體。磁碟儲存媒體可能還沒有製作格式。
1786 0x06FA The workstation does not have a trust secret.
1787 0x06FB The SAM database on the Windows NT Server does not have a computer account for this workstation trust relationship.
1788 0x06FC The trust relationship between the primary domain and the trusted domain failed.
1789 0x06FD The trust relationship between this workstation and the primary domain failed.
1790 0x06FE 網路登入失敗。
1791 0x06FF 遠端程序呼叫已經在這個執行緒進行中。
1792 0x0700 嘗試登入,但網路登入服務尚未啟動。
1793 0x0701 使用者的帳戶已經過期。
1794 0x0702 The redirector is in use and cannot be unloaded.
1795 0x0703 指定的印表機驅動程式已經安裝。
1796 0x0704 指定的連接埠無法識別。
1797 0x0705 印表機驅動程式無法識別。
1798 0x0706 列印處理器不詳。
1799 0x0707 指定的分隔檔無效。
1800 0x0708 指定的優先順序無效。
1801 0x0709 印表機名稱無效。
1802 0x070A 印表機已經存在。
1803 0x070B 印表機指令無效。
1804 0x070C 指定的資料類型無效。
1805 0x070D 指定的 Environment 無效。
1806 0x070E 沒有其他的連結。
1807 0x070F 這是一個跨網域的信任帳戶。請用您的全域性使用者帳戶或區域性使用者帳戶來存取伺服器。
1808 0x0710 這是一個電腦帳戶。請使用您的全域性使用者帳戶或區域性使用者帳戶來存取這個伺服器。
1809 0x0711 這是一個伺服端信任帳戶。請用您的全域性使用者帳戶或區域性使用者帳戶來存取伺服器。
1810 0x0712 指定的網域名稱或安全識別碼與網域信用資訊不符。
1811 0x0713 伺服器正在使用中,無法卸載。
1812 0x0714 指定的影像檔案沒有有包含資源區段。
1813 0x0715 在影像檔找不到指定的資源類型。
1814 0x0716 在影像檔找不到指定的資源名稱。
1815 0x0717 在影像檔找不到指定的資源語系識別碼。
1816 0x0718 可用的配額不足,無法處理這項指令。
1817 0x0719 登錄任何介面。
1818 0x071A 處理這項呼叫的時候,伺服器發生變更。
1819 0x071B 連結代碼沒有包含所有必須的資訊。
1820 0x071C 通訊失敗。
1821 0x071D 要求的認證層次不被支援。
1822 0x071E 沒有登記任何主要的名稱。
1823 0x071F 指定的錯誤不是有效的 Windows RPC 錯誤碼。
1824 0x0720 A UUID that is valid only on this computer has been allocated.
1825 0x0721 發生安全包裝指定錯誤。
1826 0x0722 沒有取消執行緒 (THREAD)
1827 0x0723 針對編碼/解碼的代碼進行無效的作業。
1828 0x0724 Incompatible version of the serializing package.
1829 0x0725 不相容的 RPC stub 版本。
1898 0x076A 找不到群組成員。
1899 0x076B 無法建立 endpoint mapper 資料庫。
1900 0x076C The object universal unique identifier (UUID) is the nil UUID.
1901 0x076D 指定的項目無效。
1902 0x076E 指定表單名稱錯誤。
1903 0x076F 指定的表單大小錯誤。
1904 0x0770 指定的印表機控制碼已經在等候。
1905 0x0771 指定的印表機已經刪除
1906 0x0772 印表機的狀態錯誤。
1907 0x0773 使用者在第一次登入之前,必須先變更它的密碼。
1908 0x0774 找不到這個網域的網域控制器。
1909 0x0775 參照的帳戶目前被鎖定,無法登入。
2000 0x07D0 像素格式無效。
2001 0x07D1 指定的驅動程式無效。
2002 0x07D2 視窗樣式或 class 屬性對這項作業無效。
2003 0x07D3 不支援所要求的中繼檔作業。
2004 0x07D4 不支援要求的傳輸作業。
2005 0x07D5 不支援要求的剪輯作業。
2202 0x089A 指定的使用者名稱無效。
2250 0x08CA 網路連線不存在。
2401 0x0961 這個網路連線已經開啟檔案或者要求暫停。
2402 0x0962 現行的連線仍然存在。
2404 0x0964 裝置正在使用中,無法中斷連線。
3000 0x0BB8 指定的印表機監視器不詳。
3001 0x0BB9 指定的印表機驅動程式正在使用中。
3002 0x0BBA 找不到排存檔。
3003 0x0BBB 沒有發出 StartDocPrinter 呼叫。
3004 0x0BBC 沒有發出 AddJob 呼叫。
3005 0x0BBD 指定的列印處理器已經安裝。
3006 0x0BBE 指定列印監控程式已經安裝。
4000 0x0FA0 在處理指令時,WINS 發生錯誤。
4001 0x0FA1 無法刪除區域的 WINS。
4002 0x0FA2 The importation from the file failed.
4003 0x0FA3 製作備份失敗。以前執行過完整的備份嗎 ?
4004 0x0FA4 無法製作備份,請檢查目錄。
4005 0x0FA5 名稱不在 WINS 資料庫中。。
4006 0x0FA6 不可用未設定的印表機來取代。
6118 0x17E6 這個工作群組的服務清單目前無法使用。

[Apache] 限制下載流量與連線數

分成二個部份
一個是流量限制的部份
由於我們是用 FreeBSD,可以使用很方便的 ports 來安裝
cd /usr/ports/www/mod_bandwidth
make install clean

檢查一下你的 httpd.conf 裡有沒有增加了這樣的設定

LoadModule bandwidth_module libexec/apache/mod_bandwidth.so
AddModule mod_bandwidth.c

如果有的話就接著下去設定


BandWidthModule on
BandWidthDataDir "/home"



BandWidth all 512000


在這個範例裡頭
我設定的 BandWidthDataDir "/home"
所以我要在 /home 裡頭做這些設定
mkdir master
chmod 777 master
mkdir link
chmod 777 link

接著就可以做測試了
利用 flashget 去抓檔
會發現被鎖在 50 Bytes/sec
不過 flashget 有一個特性
就是一次可以發出多個連線
結果我們就發現
每一個連線都被限制在 50 Bytes
所以我們還需要限制每一個 IP 的連線數
cd /usr/ports/www/mod_limitipconn
make install clean

檢查一下 httpd.conf 裡有沒有這樣的設定
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c

如果有的話就再接下去設定


MaxConnPerIP 1



ExtendedStatus On

重新啟動 apache 之後
我們就會發現
flashget 連線數只有一個
而且被限制在 50 Bytes

要特別注意
我看到 mod_limitipconn 的說明是設定 Location
但是我設好了之後
完全不 work
後來改用 Directory 後才生效
=======================
Linux+Apache 的穩定性、安全性和性能以及低廉的價格正在贏得越來越多的市場份額,使用Linux+Apache作網站伺服器的朋友也越來越多,而Apache作為一種 http服務,相比FTP總是不容易控制,特別是當網站以http方式提供軟體/音樂下載時,若是每個用戶都開啟多個線程並沒有帶寬的限制,將很快達到 http的最大連接數或者造成網路壅塞,使得網站的許多正常服務都無法運行。不過,Apache的使用者們早已開發出了 mod_limitipconn和mod_bandwidth兩個模組,來控制http的併發連接數和用戶所能夠使用的帶寬,下面將以RedHat Linux 7.3+Apache 1.3.7來說明它們的使用方法。

一、使用mod_limitipconn限制Apache的併發連接數

mod_limitipconn 可以控制每個IP地址同時連接伺服器某一個目錄的併發連接數,是一個非常有用的模組,其官方網頁是http: //dominia.org/djao/limitipconn.html,最新版本為for Apache 1.3.7的0.04,並且還有支援Apache 2.x的模組下載,由於本人使用Apache 1.3.7版本,所以請使用2.x版本Apache的朋友到其官方網站察看具體的使用方法。

mod_limitipconn for Apache 1.3x提供三種安裝方式,分別是tar包、rpm安裝文件和rpm源文件,由於rpm包只能用在 RedHat 7.x 版本,並且不支援檢測代理伺服器,所以我們一般都使用tar包的安裝方式。

以 管理員方式登陸伺服器,然後在伺服器上運行wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz將 mod_limitipconn的tar包下載到伺服器,然後按照再運行tar zxvf mod_limitipconn-0.04.tar.gz將tar包解壓縮,會在當前目錄下生成mod_limitipconn-0.04目錄,然後cd mod_limitipconn-0.04進入此目錄,下一步就是使用apxs將目錄中的mod_limitipconn.c編譯。這時,我們需要確定自 己的Apache安裝在那個目錄,並且找到apxs命令放在哪。

通過命令whereis apxs,我們可以確定apxs命令的路徑,如我的apxs命令所在為/usr/sbin/apxs,則輸入/usr/sbin/apxs -c -i -a mod_limitipconn.c對mod_limitipconn.c進行編譯,此命令會自動在你Apache的配置文件httpd.conf中加入 需要的資訊,並且將生成的mod_limitipconn.so模組拷貝到Apache的模組目錄。不過為了確認此命令是否正常運作,請首先檢查自己的 Apache模組目錄(我的是/usr/lib/apache),看內部是否含有mod_limitipconn.so文件,沒有的話請將 mod_limitipconn-0.04目錄中生成的文件拷貝到此處。

剛才命令自動生成的httpd.conf可能有些錯誤,在我的系 統中,它將LoadModule limitipconn_module modules/mod_limitipconn.so放在了LoadModule python_module modules/mod_python.so之間,而將AddModule mod_limitipconn.c放在了

AddModule mod_python.c之間,直接造成了mod_limitipconn模組不能正常運行,所以請將這兩行分別移動到沒有的相應行中,然後請確認 mod_status模組已經載入,並且在mod_status下添加了ExtendedStatus On這一行。這時我們的mod_limitipconn模組就安裝完畢,下一步就是對某個目錄進行併發連接數的設置了。

mod_limitipconn可以對全局和虛擬主機進行不同的限制,其語法結構都是



  #所限制的目錄所在,此處表示主機的根目錄
  MaxConnPerIP 3 #所限制的每個IP併發連接數為3個
  NoIPLimit image/* #對圖片不做IP限制
 

#所限制的目錄所在,此處表示主機的/mp3目錄
  MaxConnPerIP 1 #所限制的每個IP併發連接數為1個
  OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的文件




當 對全局進行限制時,將這段代碼放在httpd.conf文件沒有VirtualHost的地方,若是對某個虛擬主機進行限制,請將其放在和之間,我們可以 通過更改Location以及MaxConnPerIP方便的控制所限制的目錄和併發連接數。最後,只要重新啟動Apache服務,併發連接數的限制就可 以生效。

2009年11月10日 星期二

[系統] Linux fstab 設定錯誤 導致無法開始 出現 /dev/hdxx

因為不小心設定錯誤 /etc/fstab or hdd 出現問題時大致上會出現

Give root password for maintenance
輸入root 的密碼

提示 (repair filesystem) 1 #
就會進入 lever 1模式 ,進行修復動作....
此模式下,是唯讀模式,不可以修改檔案.....

所以要輸入 mount -n -o remount,rw /
重新載入 / ,並給於 寫入讀取權限,再將所設定錯誤的檔案修改回來。

由於此例子,是winner 將強制將 ext3 使用 xp 開機光碟,轉換成 NTFS
所以所導致 /etc/fstab 讀取錯誤。
所以應該先將 /etc/fstab 中的 hdb1 錯誤partition 給先拿掉,不要讀取它。

vi /etc/fstab 拿掉 hdb1 拿掉.....
:wq 存檔離開....並重新開機

參考文獻:http://linux.vbird.org/linux_basic/0510osloader.php#solution_config
電子檔下載


因設定錯誤而無法開機:

如果因為設定錯誤導致無法開機時,要怎麼辦啊?這就更簡單了! 最容易出錯的設定而導致無法順利開機的步驟,通常就是 /etc/fstab 這個檔案了, 尤其是使用者在 實作 Quota 時,最容易寫錯參數, 又沒有經過 mount -a 來測試掛載,就立刻直接重新開機,真要命,無法開機成功怎麼辦? 不要緊啦!利用上個小節提到的以 run level 1 的方法進入 Linux 系統,然後:
  • 利用『 mount -n -o remount,rw / 』重新掛載根目錄, 之後將剛剛設定錯誤的地方修改一下,就可以重新開機啦!
但萬一是因為不正常關機,導致開機時進行 fsck 無法成功,而出現類似這樣的幾行字:

/home contains a file system with errors,check blocks.
/home:Group 81's inode table at 2654219 conflicts with some other fs blocks.
/home: UNEXPECTED INCONSISTENCY ; RUN fsck MANUSLLY
(i.e. , without –a or –p options)
*** An error occurred during the file system check.
*** Dropping you to a shrll ; the system will reboot
*** when you to leave shell....
Give root password for maintenance(or type Control-D for normal startup):


這表示你的 filesystem 可能有磁區錯亂的情況,一般來說,這樣的磁區錯亂應該不是實體硬碟錯誤, 比較可能是由於不正成關機造成filesystem 的不一致 (Inconsistent) 所造成的。 造成這個問題之後,我們必須要輸入 root 的密碼,進入 run level 1 , 然後以 fsck /dev/hd[a-d][1-16] 來修復磁碟。例如,假設上面的案例中, /home 掛載在/dev/hda6 上面,那我就『 fsck /dev/hda6 』,不要加上任何參數。 等到系統發現錯誤,並且出現『clear[Y/N]』時,輸入『 y 』吧!

這個過程可能會很長,而且如果你的 partition 上面的 filesystem 有過多的資料損毀時, 即使 fsck完成後,可能因為傷到系統槽,導致某些關鍵系統檔案資料的損毀,那麼依舊是無法進入 Linux
的。此時,就好就是將系統當中的重要資料複製出來,然後重新安裝,並且檢驗一下, 是否實體硬碟有損傷的現象才好!不過一般來說,不太可能會這樣啦~
通常都是 fsck 處理完畢後,就能夠順利再次進入 Linux 了。

轉載地: http://blog.yam.com/invite19/article/10622880

[系統] MRTG安裝

環境:CentOs 5.3
需要套件:httpd、freetype、libjpeg、libpng、gd、mrtg、net-snmp
為避免安裝上困擾及套件相依性問題,用yum一次解決上述套件安裝問題
#yum -y install httpd freetype libjpeg libpng gd mrtg net-snmp
開啟監控本機網路功能 (依個人需求)

由於預設只監控router,所以需要若要開啟此功能則須修改/etc/snmp/snmpd.conf,修改如下
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2 (增加此行)
view systemview included .1.3.6.1.2.1.25.1.1
重新啟動snmp
# service snmpd restart
修改Apache預設語系
由於至目前為止MRTG好像尚未支援產生UTF-8的網頁,所以必須將Apache修改成big5
# vi /etc/httpd/conf/httpd.conf
找到AddDefaultCharset UTF-8修改成AddDefaultCharset big5,重新啟動apache
修改及產生mrtg.cfg檔案
#cfgmaker public@192.168.0.10 > /etc/mrtg/mrtg.cfg
(public是本機預設的snmp名稱,監控其他設備不見得都是public,要看設備上定義的snmp名稱
例如:cfgmaker router@192.168.0.1 >> /etc/mrtg/mrtg.cfg
有多台設備時要用>>符號,用>會將之前的設定蓋過去)
接著修改/etc/mrtg/mrtg.cfg
Created by
# /usr/bin/cfgmaker public@192.168.0.10
### Global Config Options
# for UNIX
WorkDir: /var/www/mrtg (修改這行)
# or for NT
# WorkDir: c:\mrtgdata
### Global Defaults
# to get bits [...]

文章出處

[系統] 移除舊有的kernel

每次更新完kernel都進去用圖形介面刪除舊的kernel,
一時間忘了怎麼從文字介面去刪除,原來方法很簡單,
# cat /boot/grub/menu.lst
這樣可以show出現有的所有kernel版本,例如:title CentOS (2.6.18-128.2.1.el5)
只要直接用rpm加上kernel版本就可以很簡單的移除了
# rpm -e kernel 2.6.18-128.2.1.el5

文章出處

[postfix] Postfix加上灰名單過濾信件

這也是使用Postfix比較可悲的地方,像exchange一次將MTA的相關功能都整合在一起,以exchange 2007來說,還有個Edge Server這個角色(就是Mail Gateway),
一次通通都做好,不像使用Postfix的我們,
要一一的將這些額外的功能附加上去,比較常見的有MailScanner(郵件過濾)、Spamassassin(垃圾郵件偵測)、SPF(偽裝信件防堵)
現在再加上這一個灰名單(Greylist),它的原理也不算太難,就是利用郵件重送機制來防堵垃圾郵件,
在對方第一次寄信時,送出請對方重新寄送的請求,主要是抓住垃圾郵件主機「大都」不會做重送的盲點,
不過個人經驗發現,現在的垃圾郵件也學聰明了,會做重送的動作,不過即使如此,
還是很推薦裝上這個,因為可以檔掉大部份的垃圾郵件,其餘的就交給Spamassassin來判斷吧。
=====================================================================
需求軟體:
Postgrey (http://postgrey.schweikert.ch/)
Perl-BerkeleyDB
Perl-IO-Multiplex
Perl-Net-Server
********* perl相關套件*********
# perl -MCPAN -e shell
# cpan> install Net::Server
# cpan> install IO::Multiplex
# cpan> install BerkeleyDB
******************************
*********安裝 Postgrey*********
# tar -zxvf postgrey-1.27.tar.gz
# cd postgrey-1.27
# cp postgrey /usr/local/sbin
# mkdir /var/spool/postfix/postgrey
# chown postfix:postfix /var/spool/postfix/postgrey
# cp postgrey_whitelist_clients postgrey_whitelist_recipients /etc/postfix/
**********************************************************************
*********修改Postfix設定檔*********
# vi /etc/postfix/main.cf
# smtpd_recipient_restrictions =permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023
**********************************
*********開機自動執行*********
# vi /etc/rc.d/rc.local
# /usr/local/sbin/postgrey –inet=10023 –user=postfix –group=postfix [...]

文章出處

[系統] 在Linux下做msn監聽

說真的~這個監聽的動作~基本上已經涉及個人隱私問題~所以如果真的要做的話~也低調一點比較好~
小弟我公司的老闆是沒特別要求對這部分做監聽~但我先做起來以防不時之需~
謎之音:其實是想滿足你自己的偷窺慾吧~
呵~好吧~那只是小小的一部份~~
首先要先有個認知~這這監聽要裝在NAT或是Bridge上才有意義,要不然等於沒做
使用的套件為msniff
需要三個程式
下載點如下:
http://shh.thathost.com/pub-unix/files/msniff-0.2.0.tar.gz
http://shh.thathost.com/pub-unix/files/shhmsg-1.4.1.tar.gz
http://shh.thathost.com/pub-unix/files/shhopt-1.1.7.tar.gz
解完壓縮後直接做make && make install

之後在安裝libpcap
沒有的話直接 yum install libpcap 安裝它
或者是下載http://www.tcpdump.org/release/libpcap-0.9.8.tar.gz
解壓後安裝
./configure
make install

都ok了最後裝msniff-0.2.0.tar.gz
解壓msniff-0.2.0.tar.gz後進入目錄
make
會產生一個msniff的執行檔,這樣應該就ok了
P.S~這裡有個小插曲~由於我的libpcap是用yum install的方式安裝的~並不是用原始碼編譯後安裝的~
所以在安裝msniff時~make始終都過去不去~會出現pcap.h: No such file or directory這個錯誤~
可以更改更改 Makefile 裡的 INCDIR, 將它指向 pcap.h 的正確路徑,或是用yum安裝libpcap-devel套件

msniff 指令用法
./msniff eth0 ANY 1863
eth0 : 要監聽的介面
ANY : 要監聽的pc ,可以打 ip 192.168.x.x
1863 : 要監聽的 port , msn 預設 1863
轉為文字檔
msniff eth0 ANY 1863 >> /var/log/msn/msn.log &
>> : 附加符號
& : 轉為背景執行
該文字檔為 UTF-8 格式
要轉為big5 可以這樣轉檔:
iconv -f utf-8 -t [...]


文章出處

[iptables ] 一個 IP 一小時只許建立(或嘗試)三次 SSH 連線

iptables recent module 操作備忘

  • 同一個 IP 來源在一個小時內只允許建立(或嘗試)五次 SSH 連線
  • 建立解除封鎖的後門
  • /proc/net/ipt_recent/* 清單

同一個 IP 來源在一個小時內只允許建立(或嘗試)三次 SSH 連線

iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 3600 --hitcount 3 --rttl --name SSH --rsource -j DROP

iptables -A INPUT -p tcp --dport 22 --syn -m recent --set --name SSH --rsource -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

註: 請注意 rule 順序: 先設置 recent 條件 -j DROP, 再設置 recent --set -j ACCEPT

建立解除封鎖的後門

#留下解鎖的記錄
iptables -A INPUT -p tcp --dport 1600 --syn -j LOG --log-prefix "SSH_CONN_UNLOCKED "

iptables -A INPUT -p tcp --dport 1600 --syn -m recent --remove --name SSH --rsource -j REJECT --reject-with icmp-host-unreachable

使用方法: telnet linux.host 1600

註: 以上 tcp 1600 port 可以改成任一個未使用的 tcp port

/proc/net/ipt_recent/* 清單

若未設定 --name 則預設為 DEFAULT

#把某 IP 加入 DEFAULT 記錄清單
echo xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT

#把某 IP 從 DEFAULT 清單移除
echo -xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT

#清空 DEFAULT 清單
echo clear > /proc/net/ipt_recent/DEFAULT

[windows] 讓Office 2000、XP、2003也可以開啟Office 2007的檔案

連到微軟的下載中心:
MicrosoftOffice(Word, Excel, PowerPoint 2007)檔案格式相容性套件


下載安裝即可開啟Office 2007的檔案

2009年11月9日 星期一

[mail] OpenWebMail

系統使用CentOS 5.1


OpenWebMail為一功能強大的網頁郵件程式,可提供使用在無郵件軟體時,可以瀏覽器收發郵件。

1.安裝apache2
yum install httpd mod_ssl
chkconfig httpd on
service httpd start

2.安裝相關元件
yum install perl-suidperl gcc gcc-c++ elinks

3.下載openwebmail元件
cd /var/www
elinks turtle.ee.ncku.edu.tw/openwebmail/download/current
下載openwebmail-current.tar.gz

cd /usr/local/src
elinks turtle.ee.ncku.edu.tw/openwebmail/download/packages
下載CGI.pm-3.05.tar.gz
MIME-Base64-3.01.tar.gz
Text-Iconv-1.2.tar.gz
libiconv-1.9.1.tar.gz
libnet-1.19.tar.gz

4.安裝CGI.pm套件
cd /usr/local/src
tar -zxvf CGI.pm-3.05.tar.gz
cd CGI.pm-3.05
perl Makefile.PL
make
make install

5.安裝MIME-Base64套件
cd /usr/local/src
tar -zxvf MIME-Base64-3.01.tar.gz
cd MIME-Base64-3.01
perl Makefile.PL
make
make install

6.安裝libnet套件
cd /usr/local/src
tar -zxvf libnet-1.19.tar.gz
cd libnet-1.19
perl Makefile.PL (詢問時回答no)
make
make install

7.安裝Text-Iconv-1.2套件
cd /usr/local/src
tar -zxvf libiconv-1.9.1.tar.gz
cd libiconv-1.9.1
./configure
make
make install

cd /usr/local/src
tar -zxvf Text-Iconv-1.2.tar.gz
cd Text-Iconv-1.2
perl Makefile.PL
make
make test
make install

8.解壓縮openwebmail
cd /var/www
tar -zxvBpf openwebmail-current.tar.gz
mv data/openwebmail html/
rm -rf openwebmail-current.tar.gz data

9.修改openwebmail密碼檔
cd /var/www/cgi-bin/openwebmail
cp etc/defaults/auth_unix.conf etc/auth_unix.conf
vim etc/auth_unix.conf

passwdfile_encrypted /etc/shadow
passwdmkdb none

10.修改openwebmail安裝設定檔
vim etc/openwebmail.conf

mailspooldir /var/spool/mail
ow_cgidir /var/www/cgi-bin/openwebmail

ow_htmldir /var/www/html/openwebmail
ow_htmlurl /openwebmail

spellcheck /usr/bin/ispell

11.初始化openwebmail
cd /var/www/cgi-bin/openwebmail/
cp etc/defaults/dbm.conf etc/
vim etc/dbm.conf

dbm_ext .db
dbmopen_ext .db
dbmopen_haslock no

/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
cp /var/www/cgi-bin/openwebmail/misc/patches/iconv.pl.fake /var/www/cgi-bin/openwebmail/shares/iconv.pl

chown -R root:root /var/www/html/
chown -R root:root /var/www/cgi-bin/
chmod -R 777 /var/www/cgi-bin/openwebmail/etc/sessions

12.修改suidperl
cd /var/www/cgi-bin/openwebmail
perl misc/tools/wrapsuid/wrapsuid.pl /var/www/cgi-bin/openwebmail/
chmod 4555 /usr/bin/suidperl

13.新增openwebmail log
touch /var/log/openwebmail.log
chown root:apache /var/log/openwebmail.log

14.重新啟動apache2
service httpd restart

15.修改index
cp /var/www/html/openwebmail/redirect.html /var/www/html/index.html

文章轉載處: MIS先生

[系統] Webmin

Linux管理好工具:Webmin

系統使用CentOS 5.1

1.安裝elinks
yum install elinks

2.下載webmin到/usr/local/src
cd /usr/local/src
elinks www.webmin.com/download.html
下載webmin-1.420-1.noarch.rpm

3.安裝webmin
rpm -Uvh webmin-1.420-1.noarch.rpm

4.安裝相關元件
yum install gcc openssl openssl-devel

5.使用瀏覽器連線http://主機IP:10000,輸入root帳號密碼登入即可。

備註:
◎使用SSL加密
1.安裝SSL
Webmin Webmin Configuration SSL Encryption download and install make and install
2.啟動SSL
Webmin Webmin Configuration SSL Encryption
設定
Enable SSL if available? Yes (啟動SSL)
Redirect non-SSL requests to SSL mode? Yes (自動轉換HTTP網頁到HTTPS)
Save儲存設定

◎變更連接Port
Webmin Webmin Configuration Ports and Addresses
Listen on port 10000更改為想要使用的Port
Save儲存設定

◎變更使用語言
Webmin Webmin Configuration Language
Display in language更改為Traditional Chinese或想使用的語系
Change Language儲存設定

文章轉載處:MIS先生