顯示具有 電腦相關資訊百科 標籤的文章。 顯示所有文章
顯示具有 電腦相關資訊百科 標籤的文章。 顯示所有文章

2023年9月11日 星期一

TCP: SYN ACK FIN RST PSH URG 詳細解釋

TCP: SYN ACK FIN RST PSH URG 詳解

轉貼資訊:

TCP的三次握手是怎麼進行的了:發送端發送一個SYN=1,ACK=0標誌的數據包給接收端,請求進行連接, 這是第一次握手;接收端收到請求並且允許連接的話,就會發送一個SYN=1,ACK=1標誌的數據包給發送端,告訴它,可以通訊了,並且讓發送端發送一個確認數據包,這是第二次握手;最後,發送端發送一個SYN =0,ACK=1的數據包給接收端,告訴它連接已被確認,這就是第三次握手。之後,一個TCP連接建立,開始通訊。

*SYN:同步標誌
同步序列編號(Synchronize Sequence Numbers)欄有效。該標誌僅在三次握手建立TCP連接時有效。它提示TCP連接的服務端檢查序列編號,該序列編號為TCP連接初始端(一般是客戶端)的初始序列編號。在這裡,可以把TCP序列編號看作是一個範圍從0到4,294,967,295的32位計數器。通過TCP連接交換的數據中每一個字節都經過序列編號。在TCP報頭中的序列編號欄包括了TCP分段中第一個字節的序列編號。

*ACK:確認標誌
確認編號(Acknowledgement Number)欄有效。大多數情況下該標誌位是置位的。TCP報頭內的確認編號欄內包含的確認編號(w+1,Figure-1)為下一個預期的序列編號,同時提示遠端系統已經成功接收所有數據。

*RST:復位標誌
復位標誌有效。用於復位相應的TCP連接。

*URG:緊急標誌
緊急(The urgent pointer) 標誌有效。緊急標誌置位,

*PSH:推標誌
該標誌置位時,接收端不將該數據進行隊列處理,而是盡可能快將數據轉由應用處理。在處理telnet 或rlogin 等交互模式的連接時,該標誌總是置位的。

*FIN:結束標誌
帶有該標誌置位的數據包用來結束一個TCP回話,但對應端口仍處於開放狀態,準備接收後續數據。

================================================== ===========

三次握手Three-way Handshake
一個虛擬連接的建立是通過三次握手來實現的

1. (B) --> [SYN] --> (A)
假如服務器A和客戶機B通訊. 當A要和B通信時,B首先向A發一個SYN (Synchronize) 標記的包,告訴A請求建立連接.
注意: 一個SYN包就是僅SYN標記設為1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當A受到B發來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火牆丟棄所有的發往外網接口的SYN包,那麼你將不能讓外部任何主機主動建立連接。

2. (B) <-- [SYN/ACK] <--(A)
接著,A收到後會發一個對SYN包的確認包(SYN/ACK)回去,表示對第一個SYN包的確認,並繼續握手操作.
注意: SYN/ACK包是僅SYN 和ACK 標記為1的包.

3. (B) --> [ACK] --> (A)
B收到SYN/ACK 包,B發一個確認包(ACK),通知A連接已建立。至此,三次握手完成,一個TCP連接完成
Note: ACK包就是僅ACK 標記設為1的TCP包. 需要注意的是當三此握手完成、連接建立以後,TCP連接的每個包都會設置ACK位

這就是為何連接跟踪很重要的原因了. 沒有連接跟踪,防火牆將無法判斷收到的ACK包是否屬於一個已經建立的連接.一般的包過濾(Ipchains)收到ACK包時,會讓它通過(這絕對不是個好主意). 而當狀態型防火牆收到此種包時,它會先在連接表中查找是否屬於哪個已建連接,否則丟棄該包

================================================== =============================

四次握手用來關閉已建立的TCP連接

1. (B) --> ACK/FIN --> (A)
2. (B) <-- ACK <-- (A)
3. (B) <-- ACK/FIN <-- (A)
4 . (B) --> ACK --> (A)

注意: 由於TCP連接是雙向連接, 因此關閉連接需要在兩個方向上做。ACK/FIN 包(ACK 和FIN 標記設為1)通常被認為是FIN(終結)包.然而, 由於連接還沒有關閉, FIN包總是打上ACK標記. 沒有ACK標記而僅有FIN標記的包不是合法的包,並且通常被認為是惡意的

連接復位Resetting a connection
    四次握手不是關閉TCP連接的唯一方法. 有時,如果主機需要盡快關閉連接(或連接超時,端口或主機不可達),RST (Reset )包將被發送. 注意在,由於RST包不是TCP連接中的必須部分, 可以只發送RST包(即不帶ACK標記). 但在正常的TCP連接中RST包可以帶ACK確認標記請注意

RST包是可以不要收到方確認的?

無效的TCP標記Invalid TCP Flags
    到目前為止,你已經看到了SYN, ACK, FIN, 和RST 標記. 另外,還有PSH (Push) 和URG (Urgent)標記.
    最常見的非法組合是SYN/FIN 包. 注意:由於SYN包是用來初始化連接的, 它不可能和FIN和RST標記一起出現. 這也是一個惡意攻擊.
    由於現在大多數防火牆已知SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當網絡中出現這種包時,很你的網絡肯定受到攻擊了。
    別的已知的非法包有FIN (無ACK標記)和"NULL"包。如同早先討論的,由於ACK/FIN包的出現是為了關閉一個TCP連接,那麼正常的FIN包總是帶有ACK 標記。"NULL"包就是沒有任何TCP標記的包(URG,ACK,PSH,RST,SYN,FIN都為0)。
    到目前為止,正常的網絡活動下,TCP協議棧不可能產生帶有上面提到的任何一種標記組合的TCP包。當你發現這些不正常的包時,肯定有人對你的網絡不懷好意。

UDP (用戶數據包協議User Datagram Protocol)
TCP是面向連接的,而UDP是非連接的協議。UDP沒有對接受進行確認的標記和確認機制。對丟包的處理是在應用層來完成的。(or accidental arrival).

此處需要重點注意的事情是:在正常情況下,當UDP包到達一個關閉的端口時,會返回一個UDP復位包。由於UDP是非面向連接的, 因此沒有任何確認信息來確認包是否正確到達目的地。因此如果你的防火牆丟棄UDP包,它會開放所有的UDP端口(?)。

由於Internet上正常情況下一些包將被丟棄,甚至某些發往已關閉端口(非防火牆的)的UDP包將不會到達目的,它們將返回一個複位UDP包。

因為這個原因,UDP端口掃描總是不精確、不可靠的。

看起來大UDP包的碎片是常見的DOS (Denial of Service)攻擊的常見形式(這裡有個DOS攻擊的例子,http://grc.com/dos/grcdos.htm  ).

ICMP (網間控制消息協議Internet Control Message Protocol)
如同名字一樣, ICMP用來在主機/路由器之間傳遞控制信息的協議。ICMP包可以包含診斷信息(ping, traceroute - 注意目前unix系統中的traceroute用UDP包而不是ICMP),錯誤信息(網絡/主機/端口不可達network/host/port unreachable), 信息(時間戳timestamp,地址掩碼address mask request, etc.),或控制信息(source quench, redirect, etc.) 。

你可以在http://www.iana.org/assignments/icmp-parameters中找到ICMP包的類型。

儘管ICMP通常是無害的,還是有些類型的ICMP信息需要丟棄。

Redirect (5), Alternate Host Address (6), Router Advertisement (9) 能用來轉發通訊。
Echo (8), Timestamp (13) and Address Mask Request (17) 能用來分別判斷主機是否起來,本地時間和地址掩碼。注意它們是和返回的信息類別有關的。它們自己本身是不能被利用的,但它們洩露出的信息對攻擊者是有用的。

ICMP消息有時也被用來作為DOS攻擊的一部分(例如:洪水ping flood ping,死ping ?呵呵,有趣ping of death)?/p>

包碎片注意A Note About Packet Fragmentation

如果一個包的大小超過了TCP的最大段長度MSS (Maximum Segment Size) 或MTU (Maximum Transmission Unit),能夠把此包發往目的的唯一方法是把此包分片。由於包分片是正常的,它可以被利用來做惡意的攻擊。

因為分片的包的第一個分片包含一個包頭,若沒有包分片的重組功能,包過濾器不可能檢測附加的包分片。典型的攻擊Typical attacks involve in overlapping the packet data in which packet header is 典型的攻擊Typical attacks involve in overlapping the packet data in which packet header isnormal until is it overwritten with different destination IP (or port) thereby bypassing firewall rules。包分片能作為DOS 攻擊的一部分,它可以crash older IP stacks 或漲死CPU連接能力。

Netfilter/Iptables中的連接跟踪代碼能自動做分片重組。它仍有弱點,可能受到飽和連接攻擊,可以把CPU資源耗光。

握手階段:
序號方向seq ack
1 A->B 10000 0
2 B->A 20000 10000+1=10001
3 A->B 10001 20000+1=20001
解釋:
1:A向B發起連接請求,以一個隨機數初始化A的seq,這裡假設為10000,此時ACK=0 2:B收到A的連接請求後,也以一個隨機數初始化B的seq,

這裡假設為20000,意思是:你的請求我已收到,我這方的數據流就從這個數開始。B的ACK是A的seq加1,即10000+1=10001

3:A收到B的回復後,它的seq是它的上個請求的seq加1,即10000+1=10001,意思也是:你的回复我收到了,我這方的數據流就從這個數開始。A此時的ACK是B的seq加1,即20000+1=20001


數據傳輸階段:
序號方向seq ack size
23 A->B 40000 70000 1514
24 B->A 70000 40000+1514-54=41460 54
25 A->B 41460 70000+54-54=70000 1514
26 B->A 70000 41460+1514-54=42920 54
解釋:
23:B接收到A發來的seq=40000,ack=70000,size=1514的數據包
24:於是B向A也發一個數據包,告訴B,你的上個包我收到了。B的seq就以它收到的數據包的ACK填充,ACK是它收到的數據包的SEQ加上數據包的大小(不包括以太網協議頭,IP頭,TCP頭),以證實B發過來的數據全收到了。
25:A 在收到B發過來的ack為41460的數據包時,一看到41460,正好是它的上個數據包的seq加上包的大小,就明白,上次發送的數據包已安全到達。於是它再發一個數據包給B。這個正在發送的數據包的seq也以它收到的數據包的ACK填充,ACK就以它收到的數據包的seq(70000)加上包的size(54)填充,即ack=70000+54 -54(全是頭長,沒數據項)。

其實在握手和結束時確認號應該是對方序列號加1,傳輸數據時則是對方序列號加上對方攜帶應用層數據的長度.如果從以太網包返回來計算所加的長度,就嫌走彎路了.
另外,如果對方沒有數據過來,則自己的確認號不變,序列號為上次的序列號加上本次應用層數據發送長度.
=========================

在TCP層,有個FLAGS字段,這個字段有以下幾個標識:SYN, FIN, ACK, PSH, RST, URG.其中,對於我們日常的分析有用的就是前面的五個字段。

它們的含義是:

URG:Urget pointer is valid (緊急指針字段值有效)
SYN: 表示建立連接
FIN: 表示關閉連接
ACK: 表示響應
PSH: 表示有DATA數據傳輸
RST: 表示連接重置。


轉貼: https://www.cnblogs.com/dongzhiquan/archive/2013/03/04/2943617.html

2011年8月11日 星期四

ACPI共有六種狀態,分別是S0到S5,它們代表的含義分別是:

ACPI共有六種狀態,分別是S0到S5,它們代表的含義分別是:

S0 -- 實際上這就是我們平常的工作狀態,所有設備全開,功耗一般會超過80W;
S1 -- 也稱為POS(Power on Suspend),這時除了通過CPU時鐘控制器將CPU關閉之外,其他的部件仍然正常工作,這時的功耗一般在30W以下;(其實有些CPU降溫軟件就是利用這種工作原理)
S2 -- 這時CPU處於停止運作狀態,總線時鐘也被關閉,但其餘的設備仍然運轉;
S3 -- 這就是我們熟悉的STR(Suspend to RAM),這時的功耗不超過10W;
S4 -- 也稱為STD(Suspend to Disk),這時系統主電源關閉,但是硬盤仍然帶電並可以被喚醒;
S5 -- 這種狀態是最乾脆的,就是連電源在內的所有設備全部關閉,功耗為0。
我 們最常用到的是S3狀態,即Suspend to RAM(掛起到內存)狀態,簡稱STR。顧名思義,STR就是把系統進入STR前的工作狀態數據都存放到內存中去。在STR狀態下,電源仍然繼續為內存等 最必要的設備供電,以確保數據不丟失,而其他設備均處於關閉狀態,系統的耗電量極低。一旦我們按下Power按鈕(主機電源開關),系統就被喚醒,馬上從 內存中讀取數據並恢復到STR之前的工作狀態。內存的讀寫速度極快,因此我們感到進入和離開STR狀態所花費的時間不過是幾秒鐘而已;而S4狀態,即 STD(掛起到硬盤)與STR的原理是完全一樣的,只不過數據是保存在硬盤中。由於硬盤的讀寫速度比內存要慢得多,因此用起來也就沒有STR那麼快了。 STD的優點是只通過軟件就能實現,比如Windows 2000就能在不支持STR的硬件上實現STD。
注意,FAT32格式的硬盤無法實現硬盤的掛起功能(STD),而FAT16格式是可以的。
此外,硬件對ACPI的支持是必需的。機箱電源提供5伏電壓給主板的同時,必須使電流穩定在720毫安以上,才能夠使電腦在短時間裡從"睡眠"狀態醒來。同時,像顯卡等外設也必須完全支持ACPI和STR。

一些常見問題
1)如何判斷系統處於S1還是S3模式?
答:在ACPI的S1休眠模式下,只有CPU停止工作,其他設備仍處於加電狀態。在ACPI的S3模式(BIOS->電源管理-> Suspend to RAM設為Enable,除內存外其他設備均處於斷電狀態。因此,判斷系統是處於S1模式還是在S3模式最簡單的辦法是,仔細觀察系統的情況:在S3狀 態,所有設備均停止工作,即使按光驅上的彈出鈕也不能打開光驅門。在S1狀態,光驅門是可以打開的。另外,S3模式下,系統完全是安靜的,所有風扇也停 了。此時系統不能從鍵盤喚醒。手工喚醒的方法只能是按前面板上的電源按鈕。

2)以 Setup /PJ 命令重裝Win98系統後,如何取消ACPI模式?
答:Win98程序的幫助中並沒有提供"PJ"參數。這是一個隱藏的參數。之所以將其隱藏,是因為Win98的STR功能並不成熟,甚至可以說還存在許多問題。Win98也沒有提供卸載ACPI的功能。可以試著在主板BIOS中關閉STR功能,看能否解決問題。

3)為實現STR功能,為什麼關機後不能切斷電源?
答:STR功能是在關機時,將系統的運行信息保存在內存中,下一次開機時,直接讀取內存中的信息,並恢復到關機前的狀態。它的優點是啟動速度特別快,而且可以保留工作狀態。其缺點就是,即使在關機後,也不能斷開電腦電源。因為內存中的數據一旦切斷電源就會丟失。

4)在關閉Win2000時,會顯示"現在可以安全關機"、而不自動關閉ATX電源,怎麼辦?
答:可用試試下面的辦法:選擇"設置/控制面板/電源選項/高級電源管理",如果機器支持高級電源管理,則選中"啟用高級電源管理支持",然後在 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon 中置PowerdownAfterShutdown為1;如果機器不支持高級電源管理,則很不幸,只能在關閉系統時,顯示"現在可以安全關機?"時手動切 斷電源了。

5)不小心把"關閉Windows"對話框中的第一項"讓電腦進入睡眠狀態"給弄丟了,請問該如何恢復?
答:一般來講,這類問題只要重裝主板驅動程序,重新啟動以後都應該能夠解決問題,也可以將"控制面板/系統/設備管理器"中的"高級電源管理支持"刪掉,然後重新啟動機器,按照Win98系統的提示重新進行安裝也可以解決問題。

2007年7月6日 星期五

用磁碟映像檔部署的電腦無法加入AD網域

用磁碟映像檔部署的電腦無法加入AD網域
文/張明德 (記者) 2007-07-05


使用Ghost等系統備份軟體擷取已完成系統與應用程式安裝的電腦磁碟映像(Disk Image),再把磁碟映像部署到其他電腦時,為什麼新建好的系統無法加入AD網域?


利用已安裝好作業系統與應用程式的磁碟映像,是在大量電腦上部署軟體的簡便方法,由於複製內含系統的磁碟整個磁區,要比逐一複製檔案快速許多,因此使用者可免除完整安裝系統所耗費的大量時間。

但問題是每個複製出來的系統,都會具有與作為磁碟映像範本系統相同的電腦安全識別碼(Security Identifier,SID),在登入AD網域時,會出現「指定網域的名稱或安全性識別碼(SID)與該網域的信任資訊不一致。」的錯誤,相同SID在 登入網域時將發生衝突,以致被AD伺服器阻擋。

由於AD網域指認可唯一的SID,因此這個問題必須透過修改SID才能解決。但SID並不會隨著電腦或加入網域名稱的更改而變,故須使用特定工具程式,常用解決方式有兩種:

1.從Windows安裝片中找出\Support\Tools\Deploy.cab檔案,然後解壓縮出Sysprep.exe與setupcl程式並執行重新封裝,即可為該電腦產生新的SID,並登入網域。

從Windows光碟片中找出\Support\Tools\Deploy.cab檔案,解壓縮出Sysprep.exe與setupcl程式,執行重新封裝選項。

2.由於使用Sysprep重新封裝系統需耗費較多的時間,必要時還需輸入產品序號,使用上相當不方便,因此亦可使用專門的SID修改工具,如Sysinternals免費提供的NewSID直接更改系統的SID。

此工具程式可由此處下載,NewSID 最新版本為v4.10,可支援Windows NT/2000/XP與 Server 2003。NewSID 需要系統管理權限才能執行,具備變更電腦SID和電腦名稱的功能。NewSID會先為電腦產生隨機的SID,接著在系統登錄檔中找到的既有電腦的SID, 並以新產生的SID取代。

除Windows內附的Sysprep與免費的NewSID外,Symantec的SID Changer與Ghost Walker也都可以用來更改SID,不過這兩個程式都是需付費的商用軟體。

除了利用磁碟映像部署作業系統時會遭遇SID問題外,在使用虛擬機器(VM)由一個安裝完成做系統的VM複製出多個新VM時,也會遇到相同的SID問題,亦可使用前述方法解決。文⊙張明德

名詞解釋-SID

SID是安全識別碼的縮寫,為微軟作業系統指定給網域或本機電腦帳戶之唯一識別碼。在新帳戶建立時,系統即會依據電腦名稱、當前時間等參數賦予一個唯一的SID。

NT/2000以後的微軟作業系統都是透過SID來識別帳戶身分,且SID不隨帳號名稱而變,即使把系統管理員的帳號改為別的名稱,系統仍可依據SID識 別出此帳號是具有系統管理權限的帳戶。即使帳戶名稱相同,但SID仍不同,故作業系統不會混淆。就像每個人一出生去登記戶口時即會得到一個身分證字號,此 後更改姓名不會造成身分證字號的更動,或同名同姓的兩個人不會有相同身分證字號一樣

網路中若有兩臺電腦或兩個帳戶的SID重複時,則系統會把這兩個帳號視為同一個,並給與相同的存取權限,會產生嚴重的安全問題,故AD網域不允許相同SID的電腦加入。

2007年4月24日 星期二

如何幫我的自動安裝光碟瘦身呢

Space Saving Tips
Submitted by Alanoll

Fancy freeing up approximately 185 MB of space by deleting un-needed folders?

Folders considered safe to delete in your Windows Setup Source are:

DOCS, VALUEADD, and SUPPORT. This will free up 22.3 MB or so.

Let's go in further by navigating to the I386 directory with your Windows Setup Source. If you don't plan to use this CD to upgrade from a previous OS, you can delete the following folders:

WIN9XMIG, WIN9XUPG and WINNTUPG. This will free up 37.6 MB

If you have a localized language version of Windows in your own language, then you probably can also delete:

LANG. This will free up approximately 99 MB (This may vary)

As of Windows XP SP2, an extra folder known as cmpnents is added, with Tablet PC and .NET Framework 1.0 components which is also considered safe to delete (This folder may also contain Media Center components, which I'm unsure of as I don't personally use MCE).

cmpnents. This will free up 25.2 MB

If you are installing applications from the $OEM$ distribution folders, then you can run a search on your $OEM$ folders for any instmsia.exe and instmsiw.exe files. Delete any you find as you won't need them for Windows XP or 2003, because it already has an up-to-date version of Windows Installer 2.0.

» nLite - Further Reduction by Removing Additional Files

cliconfg.exe, cliconfg.dll - SQL Server Client Network Utility; I never even knew this existed
iexpress.exe - very obsolete Microsoft sfx-archive maker tool
moricons.dll - a dll containing icons in existence since Windows 3.1
powercfg.exe - command-line tool for modifying power management settings; the control panel is enough for most users
ssmypics.scr - My Images Screensaver
------------------------------------------
有個網頁有提到完整的瘦身
http://unattended.msfn.org/unattended.xp/view/web/57/

我把重點中文化一下

幫自動安裝光碟瘦身


最大可能可刪除到185MB


1.可安全刪除的目錄
「DOCS」、「VALUEADD」、「SUPPORT」 -> 22.3 MB

2.如果不會用自動安裝光碟以「升級」方式安裝舊版OS,就可以刪除
「I386」目錄下的「WIN9XMIG」、「WIN9XUPG」、「WINNTUPG -> 37.6 MB

3.如果Windows有你地區的語言,就可以刪除
「I386」目錄下的「LANG」 -> 99 MB

4.若XP光碟有另外被增加的「cmpnents」目錄,表示包含「Tablet PC」、「.NET Framework 1.0」或「Media Center」元件,也可以刪除
「cmpnents」目錄 -> 25.2 MB

5.如果「$OEM$」下有設定自動安裝AP,可搜尋並刪除「$OEM$」目錄下的「instmsia.exe」、「instmsiw.exe」,因已經有最新版本的Windows Installer 2.0

AD常用指令

●本機指令 ● AD 指令 ● PowerShell 指令 --------------------------------------------------- 抓取使用者在 AD 相關設定 Gpresult /R 抓取電腦本機在 AD 相關設定 Gpres...