樓主您
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、做網(wǎng)站、彭山網(wǎng)絡(luò)推廣、小程序制作、彭山網(wǎng)絡(luò)營銷、彭山企業(yè)策劃、彭山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供彭山建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
禮
我專業(yè)IDC服務(wù)器工作員我?guī)蛶湍?/p>
確設(shè)置磁盤安全性,具體(虛擬機安全設(shè)置我asp程序例)重點:
1、系統(tǒng)盤權(quán)限設(shè)置
C:區(qū)部:
c:\
administrators 全部(該文件夾文件夾及文件)
CREATOR OWNER 全部(文件及文件)
system 全部(該文件夾文件夾及文件)
IIS_WPG 創(chuàng)建文件/寫入數(shù)據(jù)(該文件夾)
IIS_WPG(該文件夾文件夾及文件)
遍歷文件夾/運行文件
列文件夾/讀取數(shù)據(jù)
讀取屬性
創(chuàng)建文件夾/附加數(shù)據(jù)
讀取權(quán)限
c:\Documents and Settings
administrators 全部(該文件夾文件夾及文件)
Power Users (該文件夾文件夾及文件)
讀取運行
列文件夾目錄
讀取
SYSTEM全部(該文件夾文件夾及文件)
C:\Program Files
administrators 全部(該文件夾文件夾及文件)
CREATOR OWNER全部(文件及文件)
IIS_WPG (該文件夾文件夾及文件)
讀取運行
列文件夾目錄
讀取
Power Users(該文件夾文件夾及文件)
修改權(quán)限
SYSTEM全部(該文件夾文件夾及文件)
TERMINAL SERVER USER (該文件夾文件夾及文件)
修改權(quán)限
2、網(wǎng)站及虛擬機權(quán)限設(shè)置(比網(wǎng)站E盤)
說明:我假設(shè)網(wǎng)站全部E盤wwwsite目錄并且每虛擬機創(chuàng)建guest用戶用戶名vhost1...vhostn并且創(chuàng)建webuser組所vhost用戶全部加入webuser組面便管理
E:\
Administrators全部(該文件夾文件夾及文件)
E:\wwwsite
Administrators全部(該文件夾文件夾及文件)
system全部(該文件夾文件夾及文件)
service全部(該文件夾文件夾及文件)
E:\wwwsite\vhost1
Administrators全部(該文件夾文件夾及文件)
system全部(該文件夾文件夾及文件)
vhost1全部(該文件夾文件夾及文件)
3、數(shù)據(jù)備份盤
數(shù)據(jù)備份盤指定特定用戶完全操作權(quán)限
比F盤數(shù)據(jù)備份盤我指定管理員完全操作權(quán)限
4、其權(quán)限設(shè)置
請找c盤些文件安全性設(shè)置特定管理員完全操作權(quán)限
列些文件允許administrators訪問
net.exe
net1.exet
cmd.exe
t
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.com
5.刪除c:\inetpub目錄刪除iis必要映射建立陷阱帳號更改描述
第三招:禁用必要服務(wù)提高安全性系統(tǒng)效率
Computer Browser 維護網(wǎng)絡(luò)計算機新列表及提供列表
Task scheduler 允許程序指定間運行
Routing and Remote Access 局域網(wǎng)及廣域網(wǎng)環(huán)境企業(yè)提供路由服務(wù)
Removable storage 管理移媒體、驅(qū)程序庫
Remote Registry Service 允許遠程注冊表操作
Print Spooler 文件加載內(nèi)存便打印要用打印機朋友能禁用項
IPSEC Policy Agent 管理IP安全策略及啟ISAKMP/OakleyIKE)IP安全驅(qū)程序
Distributed Link Tracking Client 文件網(wǎng)絡(luò)域NTFS卷移發(fā)送通知
Com+ Event System 提供事件自發(fā)布訂閱COM組件
Alerter 通知選定用戶計算機管理警報
Error Reporting Service 收集、存儲向 Microsoft 報告異應(yīng)用程序
Messenger 傳輸客戶端服務(wù)器間 NET SEND 警報器服務(wù)消息
Telnet 允許遠程用戶登錄計算機并運行程序
第四招:修改注冊表讓系統(tǒng)更強壯
1、 隱藏重要文件/目錄修改注冊表實現(xiàn)完全隱藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL鼠標右擊 CheckedValue選擇修改數(shù)值由1改0
2、啟系統(tǒng)自帶Internet連接_blank"防火墻設(shè)置服務(wù)選項勾選Web服務(wù)器
3、防止SYN洪水攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值名SynAttackProtect值2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
4. 禁止響應(yīng)ICMP路由通告報文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值名PerformRouterDiscovery 值0
5. 防止ICMP重定向報文攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableICMPRedirects 值設(shè)0
6. 支持IGMP協(xié)議
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值名IGMPLevel 值0
7.修改終端服務(wù)端口
運 行regedit找[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp]看右邊PortNumber十進制狀態(tài)改想要端口號吧比7126類要與其沖突即
2、 第二處HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp同記改端口號面改行
8、禁止IPC空連接:
cracker 利用net use命令建立空連接進入侵net viewnbtstat些都基于空連接禁止空連接打注冊表找Local_Machine\System\ CurrentControlSet\Control\LSA-RestrictAnonymous 值改1即
9、更改TTL值
cracker根據(jù)pingTTL值致判斷操作系統(tǒng):
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
實 際自更改:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十進制,默認值128)改莫名其妙數(shù)字258起碼讓些菜鳥暈半放棄入侵定哦
10. 刪除默認共享
問我機共享所盤改重啟變共享事2K管理設(shè)置默認共享必須通修改注冊表式取消: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters: AutoShareServer類型REG_DWORD值改0即
11. 禁止建立空連接
默認情況任何用戶通通空連接連服務(wù)器進枚舉帳號猜測密碼我通修改注冊表禁止建立空連接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 值改1即
第五招:其安全手段
1.禁用TCP/IPNetBIOS
網(wǎng)鄰居-屬性-本連接-屬性-Internet協(xié)議(TCP/IP)屬性-高級-WINS面板-NetBIOS設(shè)置-禁用TCP/IPNetBIOScracker用nbtstat命令讀取NetBIOS信息網(wǎng)卡MAC址
2. 賬戶安全
首 先禁止切賬戶除自呵呵Administrator改名我呢順手建Administrator賬戶權(quán)限都沒 種打記事本陣亂敲復(fù)制粘貼密碼呵呵破密碼吧~破完才發(fā)現(xiàn)低級賬戶看崩潰
創(chuàng)建2管理員用帳號
雖 點看面點些矛盾事實服面規(guī)則 創(chuàng)建般權(quán)限帳號用收信及處理些*事物另擁Administrators 權(quán)限帳戶需要候使用讓管理員使用 RunAS 命令執(zhí)行些需要特權(quán)才能作些工作便管理
3.更改C:\WINDOWS\Help\iisHelp\common\404b.htm內(nèi)容改 錯自轉(zhuǎn)首頁
4. 安全志
我遇情況臺主機別入侵系統(tǒng)管理員請我追查兇手我登錄進看:安全志空倒請記住:Win2000默認安裝任何安全審核請本安全策略-審核策略打相應(yīng)審核推薦審核:
賬戶管理 功 失敗
登錄事件 功 失敗
象訪問 失敗
策略更改 功 失敗
特權(quán)使用 失敗
系統(tǒng)事件 功 失敗
目錄服務(wù)訪問 失敗
賬戶登錄事件 功 失敗
審核項目少缺點萬想看發(fā)現(xiàn)沒記錄點都沒轍;審核項目太僅占用系統(tǒng)資源且導(dǎo)致根本沒空看失審核意義
5. 運行防毒軟件
我 見Win2000/Nt服務(wù)器沒見安裝防毒軟件其實點非重要些殺毒軟件僅能殺掉些著名病毒能查殺量木馬 門程序黑客使用些名木馬毫用武要忘經(jīng)升級病毒庫,我推薦mcafree殺毒軟件+ blackice_blank"防火墻
6.sqlserver數(shù)據(jù)庫服務(wù)器安全serv-u ftp服務(wù)器安全配置更改默認端口管理密碼
7.設(shè)置ip篩選、用blackice禁止木馬用端口
般禁用端口
135 138 139 443 445 4000 4899 7626
8.本安全策略組策略設(shè)置,設(shè)置本安全策略設(shè)置錯恢復(fù)默認值.
打 %SystemRoot%\Security文件夾,創(chuàng)建 "OldSecurity"目錄,%SystemRoot%\Security所.log文件移新建文件夾.
%SystemRoot%\Security\database\找"Secedit.sdb"安全數(shù)據(jù)庫并其改名,改"Secedit.old".
啟"安全配置析"MMC管理單元:"始"-"運行"-"MMC",啟管理控制臺,"添加/刪除管理單元","安全配置析"管理單元添加.
右擊"安全配置析"-"打數(shù)據(jù)庫",瀏覽"C:\WINNT\security\Database"文件夾,輸入文件名"secedit.sdb",單擊"打".
系統(tǒng)提示輸入模板,選擇"Setup Security.inf",單擊"打".
系統(tǒng)提示"拒絕訪問數(shù)據(jù)庫",管.
發(fā)現(xiàn)"C:\WINNT\security\Database"文件夾重新新安全數(shù)據(jù)庫,
"C:\WINNT\security"文件夾重新log文件.安全數(shù)據(jù)庫重建功.
高興您解答明白歡迎與我咨詢海騰數(shù)據(jù)---尉
樓主您
禮
我專業(yè)IDC服務(wù)器工作員我?guī)蛶湍?/p>
確設(shè)置磁盤安全性,具體(虛擬機安全設(shè)置我asp程序例)重點:
1、系統(tǒng)盤權(quán)限設(shè)置
C:區(qū)部:
c:\
administrators 全部(該文件夾文件夾及文件)
CREATOR OWNER 全部(文件及文件)
system 全部(該文件夾文件夾及文件)
IIS_WPG 創(chuàng)建文件/寫入數(shù)據(jù)(該文件夾)
IIS_WPG(該文件夾文件夾及文件)
遍歷文件夾/運行文件
列文件夾/讀取數(shù)據(jù)
讀取屬性
創(chuàng)建文件夾/附加數(shù)據(jù)
讀取權(quán)限
c:\Documents and Settings
administrators 全部(該文件夾文件夾及文件)
Power Users (該文件夾文件夾及文件)
讀取運行
列文件夾目錄
讀取
SYSTEM全部(該文件夾文件夾及文件)
C:\Program Files
administrators 全部(該文件夾文件夾及文件)
CREATOR OWNER全部(文件及文件)
IIS_WPG (該文件夾文件夾及文件)
讀取運行
列文件夾目錄
讀取
Power Users(該文件夾文件夾及文件)
修改權(quán)限
SYSTEM全部(該文件夾文件夾及文件)
TERMINAL SERVER USER (該文件夾文件夾及文件)
修改權(quán)限
2、網(wǎng)站及虛擬機權(quán)限設(shè)置(比網(wǎng)站E盤)
說明:我假設(shè)網(wǎng)站全部E盤wwwsite目錄并且每虛擬機創(chuàng)建guest用戶用戶名vhost1...vhostn并且創(chuàng)建webuser組所vhost用戶全部加入webuser組面便管理
E:\
Administrators全部(該文件夾文件夾及文件)
E:\wwwsite
Administrators全部(該文件夾文件夾及文件)
system全部(該文件夾文件夾及文件)
service全部(該文件夾文件夾及文件)
E:\wwwsite\vhost1
Administrators全部(該文件夾文件夾及文件)
system全部(該文件夾文件夾及文件)
vhost1全部(該文件夾文件夾及文件)
3、數(shù)據(jù)備份盤
數(shù)據(jù)備份盤指定特定用戶完全操作權(quán)限
比F盤數(shù)據(jù)備份盤我指定管理員完全操作權(quán)限
4、其權(quán)限設(shè)置
請找c盤些文件安全性設(shè)置特定管理員完全操作權(quán)限
列些文件允許administrators訪問
net.exe
net1.exet
cmd.exe
t
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.com
5.刪除c:\inetpub目錄刪除iis必要映射建立陷阱帳號更改描述
第三招:禁用必要服務(wù)提高安全性系統(tǒng)效率
Computer Browser 維護網(wǎng)絡(luò)計算機新列表及提供列表
Task scheduler 允許程序指定間運行
Routing and Remote Access 局域網(wǎng)及廣域網(wǎng)環(huán)境企業(yè)提供路由服務(wù)
Removable storage 管理移媒體、驅(qū)程序庫
Remote Registry Service 允許遠程注冊表操作
Print Spooler 文件加載內(nèi)存便打印要用打印機朋友能禁用項
IPSEC Policy Agent 管理IP安全策略及啟ISAKMP/OakleyIKE)IP安全驅(qū)程序
Distributed Link Tracking Client 文件網(wǎng)絡(luò)域NTFS卷移發(fā)送通知
Com+ Event System 提供事件自發(fā)布訂閱COM組件
Alerter 通知選定用戶計算機管理警報
Error Reporting Service 收集、存儲向 Microsoft 報告異應(yīng)用程序
Messenger 傳輸客戶端服務(wù)器間 NET SEND 警報器服務(wù)消息
Telnet 允許遠程用戶登錄計算機并運行程序
第四招:修改注冊表讓系統(tǒng)更強壯
1、 隱藏重要文件/目錄修改注冊表實現(xiàn)完全隱藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL鼠標右擊 CheckedValue選擇修改數(shù)值由1改0
2、啟系統(tǒng)自帶Internet連接_blank"防火墻設(shè)置服務(wù)選項勾選Web服務(wù)器
3、防止SYN洪水攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值名SynAttackProtect值2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
4. 禁止響應(yīng)ICMP路由通告報文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值名PerformRouterDiscovery 值0
5. 防止ICMP重定向報文攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableICMPRedirects 值設(shè)0
6. 支持IGMP協(xié)議
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值名IGMPLevel 值0
7.修改終端服務(wù)端口
運 行regedit找[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp]看右邊PortNumber十進制狀態(tài)改想要端口號吧比7126類要與其沖突即
2、 第二處HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp同記改端口號面改行
8、禁止IPC空連接:
cracker 利用net use命令建立空連接進入侵net viewnbtstat些都基于空連接禁止空連接打注冊表找Local_Machine\System\ CurrentControlSet\Control\LSA-RestrictAnonymous 值改1即
9、更改TTL值
cracker根據(jù)pingTTL值致判斷操作系統(tǒng):
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
實 際自更改:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十進制,默認值128)改莫名其妙數(shù)字258起碼讓些菜鳥暈半放棄入侵定哦
10. 刪除默認共享
問我機共享所盤改重啟變共享事2K管理設(shè)置默認共享必須通修改注冊表式取消: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters: AutoShareServer類型REG_DWORD值改0即
11. 禁止建立空連接
默認情況任何用戶通通空連接連服務(wù)器進枚舉帳號猜測密碼我通修改注冊表禁止建立空連接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 值改1即
第五招:其安全手段
1.禁用TCP/IPNetBIOS
網(wǎng)鄰居-屬性-本連接-屬性-Internet協(xié)議(TCP/IP)屬性-高級-WINS面板-NetBIOS設(shè)置-禁用TCP/IPNetBIOScracker用nbtstat命令讀取NetBIOS信息網(wǎng)卡MAC址
2. 賬戶安全
首 先禁止切賬戶除自呵呵Administrator改名我呢順手建Administrator賬戶權(quán)限都沒 種打記事本陣亂敲復(fù)制粘貼密碼呵呵破密碼吧~破完才發(fā)現(xiàn)低級賬戶看崩潰
創(chuàng)建2管理員用帳號
雖 點看面點些矛盾事實服面規(guī)則 創(chuàng)建般權(quán)限帳號用收信及處理些*事物另擁Administrators 權(quán)限帳戶需要候使用讓管理員使用 RunAS 命令執(zhí)行些需要特權(quán)才能作些工作便管理
3.更改C:\WINDOWS\Help\iisHelp\common\404b.htm內(nèi)容改 錯自轉(zhuǎn)首頁
4. 安全志
我遇情況臺主機別入侵系統(tǒng)管理員請我追查兇手我登錄進看:安全志空倒請記?。篧in2000默認安裝任何安全審核請本安全策略-審核策略打相應(yīng)審核推薦審核:
賬戶管理 功 失敗
登錄事件 功 失敗
象訪問 失敗
策略更改 功 失敗
特權(quán)使用 失敗
系統(tǒng)事件 功 失敗
目錄服務(wù)訪問 失敗
賬戶登錄事件 功 失敗
審核項目少缺點萬想看發(fā)現(xiàn)沒記錄點都沒轍;審核項目太僅占用系統(tǒng)資源且導(dǎo)致根本沒空看失審核意義
5. 運行防毒軟件
我 見Win2000/Nt服務(wù)器沒見安裝防毒軟件其實點非重要些殺毒軟件僅能殺掉些著名病毒能查殺量木馬 門程序黑客使用些名木馬毫用武要忘經(jīng)升級病毒庫,我推薦mcafree殺毒軟件+ blackice_blank"防火墻
6.sqlserver數(shù)據(jù)庫服務(wù)器安全serv-u ftp服務(wù)器安全配置更改默認端口管理密碼
7.設(shè)置ip篩選、用blackice禁止木馬用端口
般禁用端口
135 138 139 443 445 4000 4899 7626
8.本安全策略組策略設(shè)置,設(shè)置本安全策略設(shè)置錯恢復(fù)默認值.
打 %SystemRoot%\Security文件夾,創(chuàng)建 "OldSecurity"目錄,%SystemRoot%\Security所.log文件移新建文件夾.
%SystemRoot%\Security\database\找"Secedit.sdb"安全數(shù)據(jù)庫并其改名,改"Secedit.old".
啟"安全配置析"MMC管理單元:"始"-"運行"-"MMC",啟管理控制臺,"添加/刪除管理單元","安全配置析"管理單元添加.
右擊"安全配置析"-"打數(shù)據(jù)庫",瀏覽"C:\WINNT\security\Database"文件夾,輸入文件名"secedit.sdb",單擊"打".
系統(tǒng)提示輸入模板,選擇"Setup Security.inf",單擊"打".
系統(tǒng)提示"拒絕訪問數(shù)據(jù)庫",管.
發(fā)現(xiàn)"C:\WINNT\security\Database"文件夾重新新安全數(shù)據(jù)庫,
"C:\WINNT\security"文件夾重新log文件.安全數(shù)據(jù)庫重建功.
高興您解答明白歡迎與我咨詢海騰數(shù)據(jù)---尉
你說關(guān)公和秦瓊那個厲害?張飛和徐達那個厲害?
------------------------------------------------------------
恭喜你!總算知道我要說什么了!不是一個時期的東西呀!
LINQ TO SQL 只是 一種理念.一種ORM模型, 在CLR運行時進行轉(zhuǎn)化,可以轉(zhuǎn)化為IL, LINQ TO SQL 就可以轉(zhuǎn)化為SQL報文!然后發(fā)送給數(shù)據(jù)庫! 這種技術(shù)比較新! 07年開始盛行!
cs 代碼寫 CRUD也是 借用ADO.NET等技術(shù). LINQ TO SQL 底層也是這個!只是高層封裝了一些理念. ADO.NET本身也不錯!可以直接調(diào)用指令, linq to sql 調(diào)用原始sql 指令比較麻煩. 有類型轉(zhuǎn)化和安全的限制,所以linq to sql 技術(shù)是有弊病的!
cs 借助 ado.net寫代碼有歷史沉積!所以資源多!穩(wěn)定性也高!
存儲過程是數(shù)據(jù)庫提供的技術(shù),跟CLR一點關(guān)系也沒有. 這個歷史更久了! 比net都早!
總結(jié)一下吧:
Linq to sql本質(zhì)實現(xiàn)也是ADO.NET,是一種ORM技術(shù)!是一種理念.當然 linq to xml 等是借助CLR集合操作等技術(shù)實現(xiàn). Linq to sql 運行時轉(zhuǎn)化 成SQL報文 .然后發(fā)送.
代碼中 的CRUD就是 ADO.NET等系列技術(shù)實現(xiàn),代碼發(fā)送SQL報文
存儲過程的實現(xiàn)SQL封存在數(shù)據(jù)庫,所以向數(shù)據(jù)庫發(fā)送的只是調(diào)用指令. 速度體現(xiàn)在SQL計劃編譯,
指令網(wǎng)絡(luò)傳輸.
到底那個優(yōu)秀要看你的需要了! 比如你的數(shù)據(jù)庫機器維護成本高!你不可能總讓外圍指令傳入吧!
至少中間有個緩沖層吧! 比如報盤軟件,1秒讀取數(shù)據(jù)庫 500萬次! 靠存儲過程提速那就喝西北風(fēng)去吧!
存儲過程如果有bug 那就是數(shù)據(jù)庫災(zāi)難,你可知道sqlserver時間類型轉(zhuǎn)化出錯后,日志可是不能恢復(fù)的.
所以寫程序找好層次也是很重要的事情!
以上都是本人所寫,沒有COPY任何網(wǎng)站的數(shù)據(jù). 原稿原創(chuàng)!
設(shè)置和管理賬戶
1、系統(tǒng)管理員賬戶最好少建,更改默認的管理員帳戶名(Administrator)和描述,密碼最好采用數(shù)字加大小寫字母加數(shù)字的上檔鍵組合,長度最好不少于14位。
2、新建一個名為Administrator的陷阱帳號,為其設(shè)置最小的權(quán)限,然后隨便輸入組合的最好不低于20位的密碼
3、將Guest賬戶禁用并更改名稱和描述,然后輸入一個復(fù)雜的密碼,當然現(xiàn)在也有一個DelGuest的工具,也許你也可以利用它來刪除Guest賬戶,但我沒有試過。
4、在運行中輸入gpedit.msc回車,打開組策略編輯器,選擇計算機配置-Windows設(shè)置-安全設(shè)置-賬戶策略-賬戶鎖定策略,將賬戶設(shè)為“三次登陸無效”,“鎖定時瀋櫛?0分鐘”,“復(fù)位鎖定計數(shù)設(shè)為30分鐘”。
5、在安全設(shè)置-本地策略-安全選項中將“不顯示上次的用戶名”設(shè)為啟用
6、在安全設(shè)置-本地策略-用戶權(quán)利分配中將“從網(wǎng)絡(luò)訪問此計算機”中只保留Internet來賓賬戶、啟動IIS進程賬戶。如果你使用了Asp.net還要保留Aspnet賬戶。
7、創(chuàng)建一個User賬戶,運行系統(tǒng),如果要運行特權(quán)命令使用Runas命令。
三、網(wǎng)絡(luò)服務(wù)安全管理
1、禁止C$、D$、ADMIN$一類的缺省共享
打開注冊表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右邊的窗口中新建Dword值,名稱設(shè)為AutoShareServer值設(shè)為0
2、 解除NetBios與TCP/IP協(xié)議的綁定
右擊網(wǎng)上鄰居-屬性-右擊本地連接-屬性-雙擊Internet協(xié)議-高級-Wins-禁用TCP/IP上的NETBIOS
3、關(guān)閉不需要的服務(wù),以下為建議選項
Computer Browser:維護網(wǎng)絡(luò)計算機更新,禁用
Distributed File System: 局域網(wǎng)管理共享文件,不需要禁用
Distributed linktracking client:用于局域網(wǎng)更新連接信息,不需要禁用
Error reporting service:禁止發(fā)送錯誤報告
Microsoft Serch:提供快速的單詞搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服務(wù)和Microsoft Serch用的,不需要禁用
PrintSpooler:如果沒有打印機可禁用
Remote Registry:禁止遠程修改注冊表
Remote Desktop Help Session Manager:禁止遠程協(xié)助
四、打開相應(yīng)的審核策略
在運行中輸入gpedit.msc回車,打開組策略編輯器,選擇計算機配置-Windows設(shè)置-安全設(shè)置-審核策略在創(chuàng)建審核項目時需要注意的是如果審核的項目太多,生成的事件也就越多,那么要想發(fā)現(xiàn)嚴重的事件也越難當然如果審核的太少也會影響你發(fā)現(xiàn)嚴重的事件,你需要根據(jù)情況在這二者之間做出選擇。
推薦的要審核的項目是:
登錄事件 成功 失敗
賬戶登錄事件 成功 失敗
系統(tǒng)事件 成功 失敗
策略更改 成功 失敗
對象訪問 失敗
目錄服務(wù)訪問 失敗
特權(quán)使用 失敗
五、其它安全相關(guān)設(shè)置
1、隱藏重要文件/目錄
可以修改注冊表實現(xiàn)完全隱藏:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠標右擊“CheckedValue”,選擇修改,把數(shù)值由1改為0
2、啟動系統(tǒng)自帶的Internet連接防火墻,在設(shè)置服務(wù)選項中勾選Web服務(wù)器。
3、防止SYN洪水攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名為SynAttackProtect,值為2
4. 禁止響應(yīng)ICMP路由通告報文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters \Interfaces\interface
新建DWORD值,名為PerformRouterDiscovery 值為0
5. 防止ICMP重定向報文的攻擊
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
將EnableICMPRedirects 值設(shè)為0
6. 不支持IGMP協(xié)議
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名為IGMPLevel 值為0
7、禁用DCOM:
運行中輸入 Dcomcnfg.exe。 回車, 單擊“控制臺根節(jié)點”下的“組件服務(wù)”。 打開“計算機”子文件夾。
對于本地計算機,請以右鍵單擊“我的電腦”,然后選擇“屬性”。選擇“默認屬性”選項卡。
清除“在這臺計算機上啟用分布式 COM”復(fù)選框。
注:3-6項內(nèi)容我采用的是Server2000設(shè)置,沒有測試過對2003是否起作用。但有一點可以肯定我用了一段的時間沒有發(fā)現(xiàn)其它副面的影響。
六、配置 IIS 服務(wù):
1、不使用默認的Web站點,如果使用也要將 將IIS目錄與系統(tǒng)磁盤分開。
2、刪除IIS默認創(chuàng)建的Inetpub目錄(在安裝系統(tǒng)的盤上)。
3、刪除系統(tǒng)盤下的虛擬目錄,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
4、刪除不必要的IIS擴展名映射。
右鍵單擊“默認Web站點→屬性→主目錄→配置”,打開應(yīng)用程序窗口,去掉不必要的應(yīng)用程序映射。主要為.shtml, .shtm, .stm
5、更改IIS日志的路徑
右鍵單擊“默認Web站點→屬性-網(wǎng)站-在啟用日志記錄下點擊屬性
6、如果使用的是2000可以使用iislockdown來保護IIS,在2003運行的IE6.0的版本不需要。
7、使用UrlScan
UrlScan是一個ISAPI篩選器,它對傳入的HTTP數(shù)據(jù)包進行分析并可以拒絕任何可疑的通信量。目前最新的版本是2.5,如果是2000Server需要先安裝1.0或2.0的版本。下載地址見頁未的鏈接
如果沒有特殊的要求采用UrlScan默認配置就可以了。
但如果你在服務(wù)器運行ASP.NET程序,并要進行調(diào)試你需打開要%WINDIR%\System32\Inetsrv\URLscan
文件夾中的URLScan.ini 文件,然后在UserAllowVerbs節(jié)添加debug謂詞,注意此節(jié)是區(qū)分大小寫的。
如果你的網(wǎng)頁是.asp網(wǎng)頁你需要在DenyExtensions刪除.asp相關(guān)的內(nèi)容。
如果你的網(wǎng)頁使用了非ASCII代碼,你需要在Option節(jié)中將AllowHighBitCharacters的值設(shè)為1
在對URLScan.ini 文件做了更改后,你需要重啟IIS服務(wù)才能生效,快速方法運行中輸入iisreset
如果你在配置后出現(xiàn)什么問題,你可以通過添加/刪除程序刪除UrlScan。
8、利用WIS (Web Injection Scanner)工具對整個網(wǎng)站進行SQL Injection 脆弱性掃描.
下載地址:VB.NET愛好者
七、配置Sql服務(wù)器
1、System Administrators 角色最好不要超過兩個
2、如果是在本機最好將身份驗證配置為Win登陸
3、不要使用Sa賬戶,為其配置一個超級復(fù)雜的密碼
4、刪除以下的擴展存儲過程格式為:
use master
sp_dropextendedproc '擴展存儲過程名'
xp_cmdshell:是進入操作系統(tǒng)的最佳捷徑,刪除
訪問注冊表的存儲過程,刪除
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自動存儲過程,不需要刪除
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
5、隱藏 SQL Server、更改默認的1433端口
右擊實例選屬性-常規(guī)-網(wǎng)絡(luò)配置中選擇TCP/IP協(xié)議的屬性,選擇隱藏 SQL Server 實例,并改原默認的1433端口。
八、如果只做服務(wù)器,不進行其它操作,使用IPSec
1、管理工具—本地安全策略—右擊IP安全策略—管理IP篩選器表和篩選器操作—在管理IP篩選器表選項下點擊
添加—名稱設(shè)為Web篩選器—點擊添加—在描述中輸入Web服務(wù)器—將源地址設(shè)為任何IP地址——將目標地址設(shè)為我的IP地址——協(xié)議類型設(shè)為Tcp——IP協(xié)議端口第一項設(shè)為從任意端口,第二項到此端口80——點擊完成——點擊確定。
2、再在管理IP篩選器表選項下點擊
添加—名稱設(shè)為所有入站篩選器—點擊添加—在描述中輸入所有入站篩選—將源地址設(shè)為任何IP地址——將目標地址設(shè)為我的IP地址——協(xié)議類型設(shè)為任意——點擊下一步——完成——點擊確定。
3、在管理篩選器操作選項下點擊添加——下一步——名稱中輸入阻止——下一步——選擇阻止——下一步——完成——關(guān)閉管理IP篩選器表和篩選器操作窗口
4、右擊IP安全策略——創(chuàng)建IP安全策略——下一步——名稱輸入數(shù)據(jù)包篩選器——下一步——取消默認激活響應(yīng)原則——下一步——完成
5、在打開的新IP安全策略屬性窗口選擇添加——下一步——不指定隧道——下一步——所有網(wǎng)絡(luò)連接——下一步——在IP篩選器列表中選擇新建的Web篩選器——下一步——在篩選器操作中選擇許可——下一步——完成——在IP篩選器列表中選擇新建的阻止篩選器——下一步——在篩選器操作中選擇阻止——下一步——完成——確定
6、在IP安全策略的右邊窗口中右擊新建的數(shù)據(jù)包篩選器,點擊指派,不需要重啟,IPSec就可生效.
九、建議
如果你按本文去操作,建議每做一項更改就測試一下服務(wù)器,如果有問題可以馬上撤消更改。而如果更改的項數(shù)多,才發(fā)現(xiàn)出問題,那就很難判斷問題是出在哪一步上了。
十、運行服務(wù)器記錄當前的程序和開放的端口
1、將當前服務(wù)器的進程抓圖或記錄下來,將其保存,方便以后對照查看是否有不明的程序。
2、將當前開放的端口抓圖或記錄下來,保存,方便以后對照查看是否開放了不明的端口。當然如果你能分辨每一個進程,和端口這一步可以省略。
改3389
將下列兩個注冊表鍵中的 PortNumber 均改成自定義的端口即可:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\Tds\Tcp
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
要了解三次握手四次揮手的過程,就需要對TCP的報頭以及有限狀態(tài)機的概念有所了解,本文將介紹TCP報頭的字段的含義,以及有限狀態(tài)機各個狀態(tài)的意義,最后對三次握手和四次揮手的過程做介紹
TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義。在簡化的計算機網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能,用戶數(shù)據(jù)報協(xié)議(UDP)是同一層內(nèi)另一個重要的傳輸協(xié)議。在因特網(wǎng)協(xié)議族(Internet protocol suite)中,TCP層是位于IP層之上,應(yīng)用層之下的中間層。不同主機的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。
這里將介紹TCP報頭的特性以及TCP報頭各個字段的含義
.工作在傳輸層面向連接協(xié)議
.全雙工協(xié)議
.半關(guān)閉
.錯誤檢查
.將數(shù)據(jù)打包成段,排序
.確認機制
.數(shù)據(jù)恢復(fù),重傳
.流量控制,滑動窗口
.擁塞控制,慢啟動和擁塞避免算法
.源端口、目標端口 :計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數(shù)為2^16個
. 序列號 :表示本報文段所發(fā)送數(shù)據(jù)的第一個字節(jié)的編號。在TCP連接中所傳送的字節(jié)流的每一個字節(jié)都會按順序編號。由于序列號由32位表示,所以每2^32個字節(jié),就會出現(xiàn)序列號回繞,再次從0 開始
. 確認號 :表示接收方期望收到發(fā)送方下一個報文段的第一個字節(jié)數(shù)據(jù)的編號。也就是告訴發(fā)送發(fā):我希望你(指發(fā)送方)下次發(fā)送的數(shù)據(jù)的第一個字節(jié)數(shù)據(jù)的編號是這個確認號
. 數(shù)據(jù)偏移 :表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出TCP 報文段的數(shù)據(jù)起始處距離TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節(jié)為計算單位),4位二進制最大表示15,所以數(shù)據(jù)偏移也就是TCP首部最大60字節(jié)
. URG :表示本報文段中發(fā)送的數(shù)據(jù)是否包含緊急數(shù)據(jù)。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效
. ACK :表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段才有效。TCP規(guī)定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段
. PSH :提示接收端應(yīng)用程序應(yīng)該立即從TCP接收緩沖區(qū)中讀走數(shù)據(jù),為接收后續(xù)數(shù)據(jù)騰出空間。如果為1,則表示對方應(yīng)當立即把數(shù)據(jù)提交給上層應(yīng)用,而不是緩存起來,如果應(yīng)用程序不將接收到的數(shù)據(jù)讀走,就會一直停留在TCP接收緩沖區(qū)中
. RST :如果收到一個RST=1的報文,說明與主機的連接出現(xiàn)了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f明上次發(fā)送給主機的數(shù)據(jù)有問題,主機拒絕響應(yīng),帶RST標志的TCP報文段稱為復(fù)位報文段
. SYN :在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段
. FIN :表示通知對方本端要關(guān)閉連接了,標記數(shù)據(jù)是否發(fā)送完畢。如果FIN=1,即告訴對方:“我的數(shù)據(jù)已經(jīng)發(fā)送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結(jié)束報文段
. 窗口大小 :表示現(xiàn)在充許對方發(fā)送的數(shù)據(jù)量,也就是告訴對方,從本報文段的確認號開始允許對方發(fā)送的數(shù)據(jù)量
. 校驗和 :提供額外的可靠性
. 緊急指針 :標記緊急數(shù)據(jù)在數(shù)據(jù)字段中的位置
. 選項部分 :其最大長度可根據(jù)TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節(jié)
常見選項 :
.最大報文段長度:MaxiumSegment Size,MSS
.窗口擴大:Windows Scaling
.時間戳:Timestamps
.a 最大報文段長度
指明自己期望對方發(fā)送TCP報文段時那個數(shù)據(jù)字段的長度。默認是536字節(jié)。數(shù)據(jù)字段的長度加上TCP首部的長度才等于整個TCP報文段的長度。MSS不宜設(shè)的太大也不宜設(shè)的太小。若選擇太小,極端情況下,TCP報文段只含有1字節(jié)數(shù)據(jù),在IP層傳輸?shù)臄?shù)據(jù)報的開銷至少有40字節(jié)(包括TCP報文段的首部和IP數(shù)據(jù)報的首部)。這樣,網(wǎng)絡(luò)的利用率就不會超過1/41。若TCP報文段非常長,那么在IP層傳輸時就有可能要分解成多個短數(shù)據(jù)報片。在終點要把收到的各個短數(shù)據(jù)報片裝配成原來的TCP報文段。當傳輸出錯時還要進行重傳,這些也都會使開銷增大。因此MSS應(yīng)盡可能大,只要在IP層傳輸時不需要再分片就行。在連接建立過程中,雙方都把自己能夠支持的MSS接入這一字段。MSS只出現(xiàn)在SYN報文中。即:MSS出現(xiàn)在SYN=1的報文段中
.b 窗口擴大
為了擴大窗口,由于TCP首部的窗口大小字段長度是16位,所以其表示的最大數(shù)是65535。但是隨著時延和帶寬比較大的通信產(chǎn)
生(如衛(wèi)星通信),需要更大的窗口來滿足性能和吞吐率,所以產(chǎn)生了這個窗口擴大選項
.c 時間戳
可以用來計算RTT(往返時間),發(fā)送方發(fā)送TCP報文時,把當前的時間值放入時間戳字段,接收方收到后發(fā)送確認報文時,把這個時間戳字段的值復(fù)制到確認報文中,當發(fā)送方收到確認報文后即可計算出RTT。也可以用來防止回繞序號PAWS,也可以說可以用來區(qū)分相同序列號的不同報文。因為序列號用32為表示,每2^32個序列號就會產(chǎn)生回繞,那么使用時間戳字段就很容易區(qū)分相同序列號的不同報文
2.3 TCP協(xié)議PORT
.傳輸層通過port號,確定應(yīng)用層協(xié)議
.Port number:
. tcp :0-65535,傳輸控制協(xié)議,面向連接的協(xié)議;通信前需要建立虛擬鏈路;結(jié)束后拆除鏈路.
. udp :0-65535,User Datagram Protocol,無連接的協(xié)議.
. IANA :互聯(lián)網(wǎng)數(shù)字分配機構(gòu)(負責域名,數(shù)字資源,協(xié)議分配)
0-1023:系統(tǒng)端口或特權(quán)端口(僅管理員可用) ,眾所周知,永久的分配給固定的系統(tǒng)應(yīng)用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用戶端口或注冊端口,但要求并不嚴格,分配給程序注冊為某應(yīng)用使用,1433/tcp(SqlServer),1521/tcp(oracle),
3306/tcp(mysql),11211/tcp/udp(memcached)
49152-65535:動態(tài)端口或私有端口,客戶端程序隨機使用的端口
其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range
有限狀態(tài)機,(英語:Finite-state machine, FSM),又稱有限狀態(tài)自動機,簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。
常見的計算機就是使用有限狀態(tài)機作為計算模型的:對于內(nèi)存的不同狀態(tài),CPU通過讀取內(nèi)存值進行計算,更新內(nèi)存中的狀態(tài)。CPU還通過消息總線接受外部輸入設(shè)備(如鍵盤、鼠標)的指令,計算后更改內(nèi)存中的狀態(tài),計算結(jié)果輸出到外部顯示設(shè)備(如顯示器),以及持久化存儲在硬盤。
TCP協(xié)議也存在有限狀態(tài)機的概念,TCP 協(xié)議的操作可以使用一個具有 11 種狀態(tài)的有限狀態(tài)機來表示
.CLOSED 沒有任何連接狀態(tài)
.LISTEN 偵聽狀態(tài),等待來自遠方TCP端口的連接請求
.SYN-SENT 在發(fā)送連接請求后,等待對方確認
.SYN-RECEIVED 在收到和發(fā)送一個連接請求后,等待對方確認
.ESTABLISHED 代表傳輸連接建立,雙方進入數(shù)據(jù)傳送狀態(tài)
.FIN-WAIT-1 主動關(guān)閉,主機已發(fā)送關(guān)閉連接請求,等待對方確認
.FIN-WAIT-2 主動關(guān)閉,主機已收到對方關(guān)閉傳輸連接確認,等待對方發(fā)送關(guān)閉傳輸連接請求
.TIME-WAIT 完成雙向傳輸連接關(guān)閉,等待所有分組消失
.CLOSE-WAIT 被動關(guān)閉,收到對方發(fā)來的關(guān)閉連接請求,并已確認
.LAST-ACK 被動關(guān)閉,等待最后一個關(guān)閉傳輸連接確認,并等待所有分組消失
.CLOSING 雙方同時嘗試關(guān)閉傳輸連接,等待對方確認
.客戶端通過connect系統(tǒng)調(diào)用主動與服務(wù)器建立連接connect系統(tǒng)調(diào)用首先給服務(wù)器發(fā)送一個同步報文段,使連接轉(zhuǎn)移到SYN_SENT狀態(tài)。
.此后connect系統(tǒng)調(diào)用可能因為如下兩個原因失敗返回:
.1、如果connect連接的目標端口不存在(未被任何進程監(jiān)聽),或者該端口仍被處于TIME_WAIT狀態(tài)的連接所占用(見后文),則服務(wù)器將給客戶端發(fā)送一個復(fù)位報文段,connect調(diào)用失敗。
.2、如果目標端口存在,但connect在超時時間內(nèi)未收到服務(wù)器的確認報文段,則connect調(diào)用失敗。
.connect調(diào)用失敗將使連接立即返回到初始的CLOSED狀態(tài)。如果客戶端成功收到服務(wù)器的同步報文段和確認,則connect調(diào)用成功返回,連接轉(zhuǎn)移至ESTABLISHED狀態(tài)
.當客戶端執(zhí)行主動關(guān)閉時,它將向服務(wù)器發(fā)送一個結(jié)束報文段FIN,同時連接進入FIN_WAIT_1狀態(tài)。若此時客戶端收到服務(wù)器專門用于確認目的的確認報文段,則連接轉(zhuǎn)移至FIN_WAIT_2狀態(tài)。當客戶端處于FIN_WAIT_2狀態(tài)時,服務(wù)器處于CLOSE_WAIT狀態(tài),這一對狀態(tài)是可能發(fā)生半關(guān)閉的狀態(tài)。此時如果服務(wù)器也關(guān)閉連接(發(fā)送結(jié)束報文段),則客戶端將給予確認并進入TIME_WAIT狀態(tài)
.客戶端從FIN_WAIT_1狀態(tài)可能直接進入TIME_WAIT狀態(tài)(不經(jīng)過FIN_WAIT_2狀態(tài)),前提是處于FIN_WAIT_1狀態(tài)的服務(wù)器直接收到帶確認信息的結(jié)束報文段(而不是先收到確認報文段,再收到結(jié)束報文段)
注意,客戶端先發(fā)送一個FIN給服務(wù)端,自己進入了FIN_WAIT_1狀態(tài),這時等待接收服務(wù)端的報文,該報文會有三種可能:
a 只有服務(wù)端的ACK,只收到服務(wù)器的ACK,客戶端會進入FIN_WAIT_2狀態(tài),后續(xù)當收到服務(wù)端的FIN時,回應(yīng)發(fā)送一個ACK,會進入到TIME_WAIT狀態(tài),這個狀態(tài)會持續(xù)2MSL(TCP報文段在網(wǎng)絡(luò)中的最大生存時間,RFC 1122標準的建議值是2min).客戶端等待2MSL,是為了當最后一個ACK丟失時,可以再發(fā)送一次。因為服務(wù)端在等待超時后會再發(fā)送一個FIN給客戶端,進而客戶端知道ACK已丟失
b 只有服務(wù)端的FIN,回應(yīng)一個ACK給服務(wù)端,進入CLOSING狀態(tài),然后接收到服務(wù)端的ACK時,進入TIME_WAIT狀態(tài)
c 同時收到服務(wù)端的ACK和FIN,直接進入TIME_WAIT狀態(tài)
.收到服務(wù)器ACK后,客戶端處于FIN_WAIT_2狀態(tài),此時需要等待服務(wù)器發(fā)送結(jié)束報文段,才能轉(zhuǎn)移至TIME_WAIT狀態(tài),否則它將一直停留在這個狀態(tài)。如果不是為了在半關(guān)閉狀態(tài)下繼續(xù)接收數(shù)據(jù),連接長時間地停留在FIN_WAIT_2狀態(tài)并無益處。連接停留在FIN_WAIT_2狀態(tài)的情況可能發(fā)生在:客戶端執(zhí)行半關(guān)閉后,未等服務(wù)器關(guān)閉連接就強行退出了。此時客戶端連接由內(nèi)核來接管,可稱之為孤兒連接(和孤兒進程類似)。
.Linux為了防止孤兒連接長時間存留在內(nèi)核中,定義了兩個內(nèi)核參數(shù):
./proc/sys/net/ipv4/tcp_max_orphans 指定內(nèi)核能接管的孤兒連接數(shù)目
./proc/sys/net/ipv4/tcp_fin_timeout指定孤兒連接在內(nèi)核中生存的時間
TCP協(xié)議中的三次握手和四次揮手
客戶機端的三次握手和四次揮手
服務(wù)器端的三次握手和四次揮手
1 client 首先發(fā)送一個連接試探,此時ACK=0,表示確認號無效,SYN=1表示這是一個請求連接或連接接受報文,同時表示這個數(shù)據(jù)包不攜帶數(shù)據(jù),seq=x表示此時client自己數(shù)據(jù)的初始序號是x,這時候client進入syn_sent狀態(tài),表示客戶端等等服務(wù)器的回復(fù)
2 server 監(jiān)聽到連接請求報文后,如同意建立連接,則向client發(fā)送確認,將TCP報文首部的SYN和ACK都置為1,因為client上一個請求連接的報文中seq=x,所以服務(wù)器端這次就發(fā)ack=x+1,表示服務(wù)器端希望客戶端下一個報文段的第一個數(shù)據(jù)字節(jié)序號是x+1,同時表示x為止的所有數(shù)據(jù)都已經(jīng)正確收到了,其中,此時服務(wù)器端發(fā)送seq=y表示server自己的初始序號是y,這時服務(wù)器進入了SYN_RCVD狀態(tài),表示服務(wù)器已經(jīng)收到了客戶端的請求,等待client的確認。
3 client收到確認后還要再次給服務(wù)器端發(fā)送確認,同時攜帶要發(fā)給server的數(shù)據(jù)。ACK=1表示確認號ack=y+1有效,client這時的序號seq為x+1
一旦client確認后,這個TCP連接的client 和 server 都直接進入到established狀態(tài),可以發(fā)起http請求了
4.2 四次揮手詳解
第一次揮手:client向server,發(fā)送FIN報文段,表示關(guān)閉數(shù)據(jù)傳送,此時ACK=0,seq=u,表示客戶端此時數(shù)據(jù)的報文序號是u,此時,client進入FIN_WAIT_1狀態(tài),表示沒有數(shù)據(jù)要傳輸了
第二次揮手:server收到FIN報文段后進入CLOSE_WAIT狀態(tài)(被動關(guān)閉),然后發(fā)送ACK確認,表示同意你關(guān)閉請求了,主機到主機的數(shù)據(jù)鏈路關(guān)閉,同時發(fā)送seq=v,表示此時server端的數(shù)據(jù)包字節(jié)序號是v,ack=u+1,表示希望client發(fā)送的下一個包的序號是u+1,表示確認了序號u之前的包都已經(jīng)收到,客戶端收到server的ACK報文后,進入FIN_WAIT_2狀態(tài)
第三次揮手:server等待client發(fā)送完數(shù)據(jù),發(fā)送FIN=1,ACK=1到client請求關(guān)閉,server進入LAST_ACK狀態(tài)。此時發(fā)送的seq有變化,因為上一個ACK的后server端可能又發(fā)送了一些數(shù)據(jù),說以數(shù)據(jù)字節(jié)序號發(fā)送了變化,為w,但是ack還是保持不變
第四次揮手:client收到server發(fā)送的FIN后,回復(fù)ACK確認到server,client進入TIME_WAIT狀態(tài)。發(fā)送ack=w+1,表示希望服務(wù)器下個發(fā)送的報文的字節(jié)序號是w+1,確認了服務(wù)器之前發(fā)送的w字節(jié)都已經(jīng)正確收到,發(fā)送seq=u+1表示當前client的字節(jié)序號是u+1.server收到client的ACK后就關(guān)閉連接了,狀態(tài)為CLOSED。client等待2MSL,仍然沒有收到server的回復(fù),說明server已經(jīng)正常關(guān)閉了,client關(guān)閉連接。
其中,MSL(Maximum Segment Lifetime):報文最大生存時間,是任何報文段被丟棄前在網(wǎng)絡(luò)內(nèi)的最長時間。當client回復(fù)server的FIN后,等待(2-4分鐘),即使兩端的應(yīng)用程序結(jié)束。
TIME_WAIT狀態(tài)需要經(jīng)過2MSL(最大報文段生存時間)才能返回到CLOSE狀態(tài)的原因是如果client直接進入CLOSED狀態(tài),由于IP協(xié)議不可靠性或網(wǎng)絡(luò)問題,導(dǎo)致client最后發(fā)出的ACK報文未被server接收到,那么server在超時后繼續(xù)向client重新發(fā)送FIN,而client已經(jīng)關(guān)閉,那么找不到向client發(fā)送FIN的連接,server這時收到RST并把錯誤報告給高層,不符合TCP協(xié)議的可靠性特點。如果client直接進入CLOSED狀態(tài),而server還有數(shù)據(jù)滯留在網(wǎng)絡(luò)中,當有一個新連接的端口和原來server的相同,那么當原來滯留的數(shù)據(jù)到達后,client認為這些數(shù)據(jù)是新連接的。等待2MSL確保本次連接所有數(shù)據(jù)消失。
當客戶端等待2MSL后服務(wù)器端沒有再次發(fā)送確認的報文后,client認為該次斷開連接已經(jīng)正常結(jié)束,client進入closed狀態(tài)。四次揮手正式結(jié)束