一、硬盤分區與操作系統的安裝
- 硬盤分區
總的來講在硬盤分區上面沒什麼值得深入剖析的地方,無非就是一個在分區前做好規劃知道要去放些什麼東西,如果實在不知道。那就只一個硬盤只分一個區,分區要一次性完成,不要先分成FAT32再轉成NTFS。一次性分成 NTFS格式,以我個人習慣,系統盤一般給12G。建議使用光盤啓動完成分區過程,不要加載硬盤軟件。 - 系統安裝
以下內容均以2003爲例
安裝過程也沒什麼多講的,安裝系統是一個以個人性格爲參數的活動,我建議在安裝路徑上保持默認路徑,好多文章上寫什麼安裝路徑要改成什麼呀什麼的,這是沒必要的。路徑保存在註冊表裏,怎麼改都沒用。在安裝過程中就要選定你需要的服務,如一些DNS、DHCP沒特別需要也就不要裝了。在安裝過程中網卡屬性中可以只保留TCP/IP 這一項,同時禁用NETBOIS。安裝完成後如果帶寬條件允許可用系統自帶在線升級。
二、系統權限與安全配置
前面講的都是屁話,潤潤筆而已。(俺也文人一次)
話鋒一轉就到了系統權限設置與安全配置的實際操作階段
系統設置網上有一句話是"最小的權限+最少的服務=最大的安全"。此句基本上是個人都看過,但我好像沒有看到過一篇講的比較詳細稍具全面的文章,下面就以我個人經驗作一次教學嘗試!
2.1 最小的權限如何實現?
NTFS系統權限設置
在使用之前將每個硬盤根加上 Administrators 用戶爲全部權限(可選加入SYSTEM用戶)
刪除其它用戶,進入系統盤:權限如下
- C:/WINDOWS Administrators SYSTEM用戶全部權限 Users 用戶默認權限不作修改
- 其它目錄刪除Everyone用戶,切記C:/Documents and Settings下All Users/Default User目錄及其子目錄
如C:/Documents and Settings/All Users/Application Data 目錄默認配置保留了Everyone用戶權限
C:/WINDOWS 目錄下面的權限也得注意,如 C:/WINDOWS/PCHealth、C:/windows/Installer也是保留了Everyone權限. - 刪除C:/WINDOWS/Web/printers目錄,此目錄的存在會造成IIS里加入一個.printers的擴展名,可溢出攻擊
- 默認IIS錯誤頁面已基本上沒多少人使用了。建議刪除C:/WINDOWS/Help/iisHelp目錄
- 刪除C:/WINDOWS/system32/inetsrv/iisadmpwd,此目錄爲管理IIS密碼之用,如一些因密碼不同步造成500 錯誤的時候使用 OWA 或 Iisadmpwd 修改同步密碼,但在這裏可以刪掉,下面講到的設置將會杜絕因系統設置造成的密碼不同步問題。
- 打開C:/Windows 搜索
net.exe;cmd.exe;tftp.exe;netstat.exe;regedit.exe;at.exe;attrib.exe;cacls.exe;format.com;
修改權限,刪除所有的用戶只保存Administrators 和SYSTEM爲所有權限
regsvr32.exe;xcopy.exe;wscript.exe;cscript.exe;ftp.exe;telnet.exe;arp.exe;edlin.exe;
ping.exe;route.exe;finger.exe;posix.exe;rsh.exe;atsvc.exe;qbasic.exe;runonce.exe;syskey.exe
關閉445端口
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/netBT/Parameters
新建 "DWORD值"值名爲 "SMBDeviceEnabled" 數據爲默認值"0"
禁止建立空連接
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa
新建 "DWORD值"值名爲 "RestrictAnonymous" 數據值爲"1" [2003默認爲1]
禁止系統自動啓動服務器共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters
新建 "DWORD值"值名爲 "AutoShareServer" 數據值爲"0"
禁止系統自動啓動管理共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters
新建 "DWORD值"值名爲 "AutoShareWks" 數據值爲"0"
通過修改註冊表防止小規模DDOS攻擊
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
新建 "DWORD值"值名爲 "SynAttackProtect" 數據值爲"1"
禁止dump file的產生
dump文件在系統崩潰和藍屏的時候是一份很有用的查找問題的資料。然而,它也能夠給黑客提供一些敏感信息比如一些應用程序的密碼等。控制面板>系統屬性>高級>啓動和故障恢復把寫入調試信息 改成無。
關閉華醫生Dr.Watson
在開始-運行中輸入"drwtsn32",或者開始-程序-附件-系統工具-系統信息-工具-Dr Watson,調出系統裏的華醫生Dr.Watson ,只保留"轉儲全部線程上下文"選項,否則一旦程序出錯,硬盤會讀很久,並佔用大量空間。如果以前有此情況,請查找user.dmp文件,刪除後可節省幾十MB空間。
本地安全策略配置
開始 > 程序 > 管理工具 > 本地安全策略
- 賬戶策略 > 密碼策略 > 密碼最短使用期限改成0天[即密碼不過期,上面我講到不會造成IIS密碼不同步]
- 賬戶策略 > 賬戶鎖定策略 >賬戶鎖定閾值 5 次 賬戶鎖定時間 10分鐘 [個人推薦配置]
- 本地策略 > 審覈策略 >
- 賬戶管理 成功 失敗
- 登錄事件 成功 失敗
- 對象訪問 失敗
- 策略更改 成功 失敗
- 特權使用 失敗
- 系統事件 成功 失敗
- 目錄服務訪問 失敗
- 賬戶登錄事件 成功 失敗
- 本地策略 > 安全選項 > 清除虛擬內存頁面文件 更改爲"已啓用"
-
- > 不顯示上次的用戶名 更改爲"已啓用"
- > 不需要按CTRL+ALT+DEL 更改爲"已啓用"
- > 不允許 SAM 賬戶的匿名枚舉 更改爲"已啓用"
- > 不允許 SAM 賬戶和共享的匿名枚舉 更改爲"已啓用"
- > 重命名來賓賬戶 更改成一個複雜的賬戶名
- > 重命名系統管理員賬號 更改一個自己用的賬號 [同時可建立一個無用戶組的Administrat賬戶]
組策略編輯器
運行 gpedit.msc 計算機配置 > 管理模板 > 系統 顯示"關閉事件跟蹤程序" 更改爲已禁用
刪除不安全組件
WScript.Shell 、Shell.application 這兩個組件一般一些ASP木馬或一些惡意程序都會使用到。
- 方案一:
regsvr32 /u wshom.ocx 卸載WScript.Shell 組件
如果按照上面講到的設置,可不必刪除這兩個文件
regsvr32 /u shell32.dll 卸載Shell.application 組件 - 方案二:
刪除註冊表 HKEY_CLASSES_ROOT/CLSID/{72C24DD5-D70A-438B-8A42-98424B88AFB8} 對應 WScript.Shell
刪除註冊表 HKEY_CLASSES_ROOT/CLSID/{13709620-C279-11CE-A49E-444553540000} 對應 Shell.application
用戶管理
建立另一個備用管理員賬號,防止特殊情況發生。
安裝有終端服務與SQL服務的服務器停用TsInternetUser, SQLDebugger這兩個賬號
用戶組說明
在將來要使用到的IIS中,IIS用戶一般使用Guests組,也可以再重新建立一個獨立的專供IIS使用的組,但要將這個組賦予C:/Windows 目錄爲讀取權限[單一讀取] 個人不建議使用單獨目錄,太小家子氣。
二、系統權限與安全配置
2.2最少的服務如果實現
黑色爲自動 綠色爲手動 紅色爲禁用
- Alerter
- Application Experience Lookup Service
- Application Layer Gateway Service
- Application Management
- Automatic Updates [Windows自動更新,可選項]
- Background Intelligent Transfer Service
- ClipBook
- COM+ Event System
- COM+ System Application
- Computer Browser
- Cryptographic Services
- DCOM Server Process Launcher
- DHCP Client
- Distributed File System
- Distributed Link Tracking Client
- Distributed Link Tracking Server
- Distributed Transaction Coordinator
- DNS Client
- Error Reporting Service
- Event Log
- File Replication
- Help and Support
- HTTP SSL
- Human Interface Device Access
- IIS Admin Service
- IMAPI CD-Burning COM Service
- Indexing Service
- Intersite Messaging
- IPSEC Services [如果使用了IP安全策略則自動,如無則禁用,可選操作]
- Kerberos Key Distribution Center
- License Logging
- Logical Disk Manager [可選,多硬盤建議自動]
- Logical Disk Manager Administrative Service
- Messenger
- Microsoft Search
- Microsoft Software Shadow Copy Provider
- MSSQLSERVER
- MSSQLServerADHelper
- Net Logon
- NetMeeting Remote Desktop Sharing
- Network Connections
- Network DDE
- Network DDE DSDM
- Network Location Awareness (NLA)
- Network Provisioning Service
- NT LM Security Support Provider
- Performance Logs and Alerts
- Plug and Play
- Portable Media Serial Number Service [微軟反盜版工具,目前只針對多媒體類]
- Print Spooler
- Protected Storage
- Remote Access Auto Connection Manager
- Remote Access Connection Manager
- Remote Desktop Help Session Manager
- Remote Procedure Call (RPC)
- Remote Procedure Call (RPC) Locator
- Remote Registry
- Removable Storage
- Resultant Set of Policy Provider
- Routing and Remote Access
- Secondary Logon
- Security Accounts Manager
- Server
- Shell Hardware Detection
- Smart Card
- Special Administration Console Helper
- SQLSERVERAGENT
- System Event Notification
- Task Scheduler
- TCP/IP NetBIOS Helper
- Telephony
- Telnet
- Terminal Services
- Terminal Services Session Directory
- Themes
- Uninterruptible Power Supply
- Upload Manager
- Virtual Disk Service
- Volume Shadow Copy
- WebClient
- Windows Audio [服務器沒必要使用聲音]
- Windows Firewall/Internet Connection Sharing (ICS)
- Windows Image Acquisition (WIA)
- Windows Installer
- Windows Management Instrumentation
- Windows Management Instrumentation Driver Extensions
- Windows Time
- Windows User Mode Driver Framework
- WinHTTP Web Proxy Auto-Discovery Service
- Wireless Configuration
- WMI Performance Adapter
- Workstation
- World Wide Web Publishing Service
以上操作完成以後是否就"最小的權限+最少的服務=最大的安全"呢?其實不然,任何事物都是相對的
依我個人而見,以上設置也只是最基本的一些東西而已,如有遺漏,稍後補上!
三、IIS、終端服務、FTP、SQL的配置
3.1 IIS配置
IIS6與IIS5有着很多不同之處,不一一列舉,也不是我一個腦袋可以裝下的東西。都在資料上!IIS6有一個非常不方便的東西,就是他限制了在線上傳不得大於200K,如何修改,請看:
首先停用IIS服務,> 服務 > iis admin service > 停用
C:/windows/system32/inetsrv/ metabase.xml 文件用記事本打開它
找到 ASPMaxRequestEntityAllowed 處。默認爲 204800 即 204800字節(200K)
修改爲想要的數字如: 2048000 [2M] 保存,重啓IIS服務即可!
設置基本參數
打開IIS管理器 > 網站 > 屬性 >
網站 > 啓動日誌記錄 > 關閉
主目錄 > 配置 > 應用程序擴展 > 只保留 asp,asa
主目錄 > 配置 > 選項 > 啓用父目錄
主目錄 > 配置 > 調試 > 向客戶端發送文本錯誤消息
網站 > 自定義錯誤 > 全部改成默認值 [上一章已經刪除IIS使用的錯誤信息頁面]
IIS管理器 > WEB服務擴展 > 啓用 Active Server Pages
注:停用IIS默認站點,切勿刪除,有可能會造成IIS的不穩定。
站點的建立將在第四節中詳細介紹。
IIS支持PHP的配置
http://www.php.net/downloads.php 以 PHP 5.1.1 爲例
下載php-5.1.1-Win32.zip 解壓到 D:/php 或任意目錄賦予該目錄IIS用戶組讀取權限
將ext目錄中的所有文件複製到 C:/Windows/System32目錄下面
以記事本打開php.ini-dist文件
查找 extension_dir = "./" 更改爲 extension_dir = "D:/php/ext"
查找 ; Windows Extensions 更改下面的參數
如要開通GD庫支持 則將;extension=php_gd2.dll 前面的冒號刪除
依此類推,更多設置參考PHP.INI中文版。完成設置好另存在C:/Windows/php.ini
爾後在IIS設置中 IIS管理器 > 網站 > 屬性 > 主目錄 > 配置 > 映射
添加 D:/php/php5isapi.dll 擴展名.php
其次在WEB服務擴展中 添加一個新的擴展名 PHP 執行位置 D:/php/php5isapi.dll 設爲允許即可
由於WIN平臺對MYSQL與PHP的組合無法體現性能優勢。個人建議WIN平臺PHP程序要使用數據庫建議遠程
或搭配文本數據庫。
終端服務配置
開始 > 程序 > 管理工具 > 終端服務配置 > 連接
選擇右側列出的連接 屬性 > 權限 刪除所有用戶組添加單一的允許使用的管理員賬戶,這樣即使服務器
被創建了其它的管理員.也無法使用終端服務。
另外在會話設置中可以進一步設置斷開、註銷等一些參數。
FTP的配置
目前大多數服務器使用Serv-U Server 爲FTP SYSTEM。這裏同時建議使用此軟件
以 Serv-U FTP Server 6.1.0.5 final [最新版]爲例,這裏建議使用漢化版本.http://www.hanzify.org/
安裝原版至D:/Serv-U_3434999fdaf [複雜無規則的目錄名可有效防止黑客的猜解]
爾後退出Serv-U,安裝漢化包。
運行SERV-U管理器 IP地址可爲空、安裝爲系統服務設置密碼防止溢出
PASV設置
Serv-U管理器 > <<本地服務器>> > 設置 > 高級
PASV端口範圍 這裏SERV-U只允許 50個端口範圍 端口的設置範圍 如 1025 - 1075 [1024以前的端口爲系統使用]
更多個人化設置參考以下文檔
SERV-U 技巧 |
現在很多的朋友都用SERV-U做個人FTP的服務器,有關如何使用SERV-U架設服務器的文章很多了,這兒我就不多說了。不過大家不知道注意到了沒有,當你登陸很多FTP的時候,會顯示一些歡迎信息,比如說顯示你的IP,告訴你目前有多少人在使用FTP,帶寬是多少等等。。。看起來就比較的專業樣子。其實你自己也是可以做的,SERV-U這個軟件本身就有這個功能。下面我就說明以下如何在自己的FTP裏面加上這些信息。 第一、先建立一個文本文件,隨便取一個名字。我們這兒就取message.txt吧。 第二、這個這個文本文件裏面加上這些文字 ------------------------------------ 歡迎來到XXX的FTP服務器 你的IP地址是:%IP 目前服務器所在的時間是 %time 已經有 %u24h 個用戶在最近24小時訪問過本FTP 本FTP服務器已經運行了 %ServerDays 天,%ServerHours 小時 和 %ServerMins 分。 服務器的運行情況: 所有登陸用戶數量: %loggedInAll total 當前登陸用戶數量: %Unow 已經下載字節數: %ServerKbDown Kb 已經上傳字節數: %ServerKbUp Kb 已經下載文件數: %ServerFilesDown 已經上傳文件數: %ServerFilesUp 服務器平均帶寬: %ServerAvg Kb/sec 服務器當前帶寬: %ServerKBps Kb/sec ------------------------------------ 其中XXX可以改成你的名字 你也可以加上一些你自己認爲喜歡的文字,不過要注意的是每行最好不要超過80個字符 其中以%開頭的都是一些變量,下面是SERV-U能支持的變量 時間和*期 %Time - 顯示你的計算機當前時間 %Date - 顯示你的計算機當前*期 服務器的統計信息 %ServerDays - 顯示服務器已經運行的天數 %ServerHours - 顯示服務器已經運行的小時數 %ServerMins - 顯示服務器已經運行的分鐘數 %ServerSecs - 顯示服務器已經運行的秒數 %ServerKbUp - 顯示自從服務器運行以來已經上傳的字節數 %ServerKbDown - 顯示自從服務器運行以來已經下載的字節數 %ServerFilesUp - 顯示自從服務器運行以來已經上傳的文件數 %ServerFilesDown - 顯示自從服務器運行以來已經下載的文件數 %LoggedInAll - 顯示自從服務器運行以來已經登陸的用戶數 %ServerAvg - 顯示服務器的平均帶寬 %ServerKBps - 顯示服務器的當前帶寬 服務器的設定信息 %MaxUsers - 顯示服務器能同時登陸的最大用戶數量 %MaxAnonymous - 顯示服務器能同時登陸的最大匿名用戶數量 用戶信息 %Name - 顯示登陸的用戶名 %IP - 顯示登陸的用戶IP地址 %Dir - 顯示登陸的用戶的當前目錄 %Disk - 顯示登陸的用戶的當前磁盤 %DFree - 顯示登陸的用戶的當前磁盤空間,單位是MB %FUp - 顯示登陸的用戶上傳的文件數量 %FDown - 顯示登陸的用戶下載的文件數量 %FTot - 顯示登陸的用戶上傳和下載的總的文件數量 %BUp - 顯示登陸的用戶上傳的字節數,單位是KB %Bdown - 顯示登陸的用戶下載的字節數,單位是KB %BTot - 顯示登陸的用戶上傳和下載的總字節數,單位是KB %TconM - 顯示登陸用戶連接時間,單位是分鐘 %TconS - 顯示登陸用戶連接時間,單位是秒,要和%TconM一起使用 %RatioUp - 顯示登陸用戶的上傳流量限制 %RatioDown - 顯示登陸用戶的下載流量限制 %RatioCredit - 顯示登陸用戶還有多少credit可以上傳和下載,這個是針對有些FTP是要上傳多少文件,才能下載多少文件而設置的 %QuotaUsed - 顯示登陸用戶的已經使用了多少空間,單位是KB %QuotaLeft - 顯示登陸用戶的還有多少空間可以使用,單位是KB %QuotaMax - 顯示登陸用戶的的最大空間,單位是KB 後面3個是針對有磁盤限制的用戶設置的 用戶數量 %UNow - 顯示當前有多少用戶連接 %UAll - 顯示從服務器運行以來一共有多少用戶連接過 %U24h - 顯示最近24小時有多少用戶 %UAnonAll - 顯示當前總的匿名用戶數量 %UAnonThisIP - 顯示所有匿名登陸的用戶數 %UNonAnonAll - 顯示所有當前非匿名登陸用戶數 %UNonAnonThisIP - 顯示所有非匿名登陸用戶數 %UThisName - 顯示所有使用這個名字登陸的用戶數 自己在先建立一個.txt文件,輸入你想要顯示的文字,具體參數看上面的內容,然後在Serv_u內的server設置裏面,加入這個.txt文件就可以了! 下面我已經做了幾個!喜歡就把名字等改改OK了!呵呵 ------------------------------------ 歡迎來到***A 網***的FTP服務器 你的IP地址是:%IP 目前服務器所在的時間是 %time 已經有 %u24h 個用戶在最近24小時訪問過本FTP 本FTP服務器已經運行了 %ServerDays 天,%ServerHours 小時 和 %ServerMins 分。 服務器的運行情況: 所有登陸用戶數量: %loggedInAll total 當前登陸用戶數量: %Unow 已經下載字節數: %ServerKbDown Kb 已經上傳字節數: %ServerKbUp Kb 已經下載文件數: %ServerFilesDown 已經上傳文件數: %ServerFilesUp 服務器平均帶寬: %ServerAvg Kb/sec 服務器當前帶寬: %ServerKBps Kb/sec ------------------------------------ 你的信息 用戶名: %Name IP地址: %IP 當前目錄: %Dir 當前磁盤: %Disk 磁盤空間:%DFree 連接時間: %TconM 分 和 %TconS 秒 上傳流量限制: %RatioUp 下載流量限制: %RatioDown ------------------------------------ ★★★★★★★★★★★★★★★★★★★★★★★★★ 來自%IP的朋友您好,歡迎來到+a網+的個人FTP服務器 本地時間是%Date %Time 服務器已連續工作:%ServerDays天%ServerHours小時%ServerMins分%ServerSecs秒 本站開通以來已接通%UAll位使用者。 過去24小時總共有%U24h次連接。 匿名用戶上限爲%MaxAnonymous人。每個ip只能開兩個進程 目前有%UNow位使用者在線。 其中匿名用戶有%UAnonAll人在線。 ★★★★★★★★★★★★★★★★★★★★★★★★★ 自本站開通以來共上傳/下載 |%ServerKbUpKB/%ServerKbDownKB 自本站開通以來共上傳/下載 |%ServerFilesUp個/%ServerFilesDown個 服務器當前流量|%ServerKBps Kb/sec 服務器平均流量|%ServerAvg Kb/sec ★★★★★★★★★★★★★★★★★★★★★★★★★ 你目前的空間容量爲 |%QuotaMax/KB 你目前總共使用了 |%QuotaUsed/KB 你目前的空間剩餘 |%QuotaLeft/KB |
Jmail 組件的安裝
建議使用 w3 JMail Personal V4.3 這裏爲免費版 http://www.skycn.net/soft/5555.html
默認安裝至 D:/w3JMail4_35434fnald [同樣,複雜的目錄名]
安裝完成後只需單一設置 jmail.dll 權限,加入IIS用戶組默認權限即可!
SQL Server 2000 的安裝與配置
目前SQL Server 2000 + SP4 在我看來已算比較安全,已沒有SP3等版本會因爲 sqlstp.log, sqlsp.log而泄露
安裝信息的問題。當然也建議在安全後 檢查 <systemdrive>:/Program Files/Microsoft SQL Server/MSSQL/Install
目錄中是否存在有 sqlstp.log, sqlsp.log, setup.iss文件,如果有,則備份至其它位置。
數據庫的建立這裏就不多講了。更多設置可以參考SQL SERVER 2000幫助文檔!
四、站點的建立
站點的建立有一定的操作標準,當然這都是些屁話,能運行就行了。
上面講到的設置已經爲下面的建立站點創造了一個良好的條件,只需要嚴格按照控制每個站點的權限
就足夠了,不要因爲時間緊而不設置站點FSO或將目錄權限開到最大。操作上的疏忽偶爾會帶來一點小
麻煩。
建立站點前 首先在用戶管理中建立一個站點所需要使用的用戶名。
比如我們要建立一個名爲 HostNew的站點 綁定域名hostnew.com
建立一用戶Iusr_hostnew.com [對IIS用戶增加統一的前綴方便將來的管理] 設置一個複雜的密碼
修改該用戶所屬用戶組爲Guests 或你準備好的IIS用戶組。刪除默認的Users用戶組.
爾後給站點需要使用的目錄加上這個用戶爲讀取、寫入權限。不要是默認權限,默認權限擁有運行權限
那麼站點就可以通過FSO來執行或利用其它方式來執行一些惡意程序破壞服務器配置。
爾後打開IIS管理器 > 網站 > 新建站點 設置好後
打開新站點屬性 > 目錄安全性 > 身份驗證和訪問控制 > 編輯 > 選擇剛纔建立的用戶[Iusr_hostnew.com]
輸入該用戶的密碼.確認.應用.即可,此時該站點的權限已控制在該站點目錄!
其實這一切都是相對比較簡單的.也沒有什麼可值得稱道的地方.
如果該站點不使用ASP/PHP/CGI等腳本 在該站點屬性 > 主目錄裏面 > 執行權限 裏面選擇 無
如果要執行ASP等腳本 則選擇純腳本.如果PHP/CGI等腳本使用的是EXE文件執行方式.則選擇腳本和可執行文件