提高IIS的FTP安全性 管理員的九陰真經
原創【51CTO特稿】《九陰真經》是很多武林高手蒙昧以求的武林秘籍,在系統管理員這個武林中也有很多類似《九陰真經》一樣的秘籍。在這里就向大家介紹一下有關提高IIS的FTP安全性的實用技巧。
推薦專題:IIS服務“講武堂”
對廣大直面各種網絡攻擊的網絡安全工程師來說,工作中必然會遇到會遇到各種各樣的FTP攻擊,普通管理員會認為Windows 下FTP服務安全性比較弱,安全性無法保證,所以在Windows server加裝了第三方FTP 程序,以滿足自己的要求。
經過筆者多年研究發現,其實利用IIS 下的FTP服務器,經過和系統配合設置就能很好的瞞住您的要求。所謂維護型安全FTP是指不公開使用或者很少公開使用的,一般只供網絡管理員或者安全工程師在維護服務器時使用的FTP系統。這樣的系統在工作中非常需要,但是因為本身是不公開的,所以安全性往往得不到足夠的重視,成為很多攻擊者喜歡攻擊的目標。本文講述了不為大家熟知九種技巧來教授如何使用大家都不看好的IIS FTP Server來構建足夠網絡管理員維護使用的FTP服務器,而且安全性足夠高。
真經基礎階段
真經第一重易筋鍛骨篇—— 指定FTP IP地址并修改默認端口
1.使用專用IP進行FTP服務器搭建
以典型的Windows 2003 Server系統為例,安裝完成IIS以及FTP以后,依次選擇“開始->管理工具->Internet信息服務IIS管理器”,指向“FTP站點”
右擊并選擇“新建->FTP站點”,進入“FTP站點創建向導”。在此向導中,重點介紹為即將建立的安全的維護型FtP服務器指定IP地址并修改端口。
2.使用足夠隱蔽的端口進行通信
“端口”設置建議不使用默認端口,而是將默認端口設置成一個不常用的,大于10000、小于65535的端口號。之所以要設置大于10000,小于65535是因為很多端口掃描工具默認情況下都不會掃描這部分端口,而攻擊者如果手動設置掃描端口的話,出于時間和速度的考慮,也很少定義1-65535這樣的端口掃描規則,所以很容易迷惑攻擊者,讓他們根本不知道原來還有一個高端端口隱蔽在系統中發揮作用。
即使攻擊者用掃描器掃到了這個端口,往往也會因為這個陌生的端口而不明白具體運行的服務,需要詳細探測才有可能發現是FTP服務。接下來,將對此新建的FTP服務器進行詳細的安全配置。#p#
真經第二重療傷篇——定制詳細的FTP日志記錄相關信息
IIS的FTP系統有非常完善、豐富的日志記錄系統,使用日志系統來時刻記錄FTP服務器的運行狀態是非常重要的。
1.啟用FTP服務器的日志記錄功能
在默認情況下,IIS管理器下FTP站點中的某個站點的FTP日志系統默認是啟用的。
2.FTP服務器的高級日志配置
和普通的FTP服務器要求不同,如果需要建立足夠安全的FTP服務器,需要對日志系統進行詳細的高級定義,定義的內容就是設置攻擊者或者可能發生的攻擊可能存在的典型特征。
詳細需要定制的高級規則如下:
“新日志計劃”:此選項控制每個日志文件的生成規則,默認是每天生成一份新的FTP日志。
假定攻擊者繞過了種種限制,對某目標FTP服務器進行了大批量的分布式暴力破解攻擊,如果FTP日志是按默認的記錄方式記錄的,則會產生無比龐大的單一文件有時候日志記錄文件可能達到數十GB的大小,甚至撐破系統盤的空間,導致系統的正常運行出現問題。
所以這里需要首先確定FTP的日志按照文件大小來生成,選擇“新日志計劃”下的“當文件大小達到20MB”時開始生成新的日志記錄文件,方便分析和調用;
“日志文件目錄”:此選項是非常重要的選項,定義FTP日志的存放地址,默認是存放在“C:\WINDOWS\system32\LogFiles”下。
對于任何被攻擊者廣泛了解的默認選項,都應該進行相關的在可允許范圍內修改。同時,出于對操作系統所在盤的保護,建議將FTP的日志系統定義到每個FTP用戶單獨使用的文件夾下,但不能賦予該用戶對此日志記錄文件的訪問權限。
3.定義FTP服務器日志的詳細記錄規則
在配置好日志文件的生成規則和路徑以后,需要對日志文件記錄信息的類型進行詳細配置。一個能記錄絕大多數攻擊者和使用者行為的日志文件應該包含以下記錄信息:
日期(非默認選中,需要手動選中);
時間(默認選中);
客戶端IP地址(默認選中);
用戶名(非默認選中,需要手動選中)
方法(默認選中);
URL資源(默認選中);
協議狀態(默認選中);
Win32狀態(默認選中);
所用時間(非默認選中,需要手動選中);
用戶代理(非默認選中,需要手動選中);
需要注意的是,并不是日志系統記錄的信息越多就越好,因為日志系統記錄FTP用戶(攻擊者或者正常用戶)的訪問畢竟需要消耗資源,而且生成的日志記錄同樣需要存放空間。如果記錄項目過多,可能引起系統資源消耗日志文件占用空間大的問題。#p#
真經第三重點穴篇——取消匿名訪問
匿名訪問是FTP服務器的默認設置,此設置可以很好地支持普通用戶的FTP訪問,但是要建立安全性足夠的FTP服務器的話,此項設置必須去除。
去除FTP服務器的匿名訪問功能很簡單,只需要指向IIS管理器下的需要修改的FIP站點,右擊并選擇“屬性”,進入“安全賬戶”標簽,取消“允許匿名連接”前的√即可。#p#
真經第四重摧心掌——強制安全密碼規則
在有意無意之中,一些用戶的FTP賬號密碼設置得過于簡單,為了提高FTP服務器的安全性,特別是需要建立安全性足夠強的維護型FTP服務器,必須強制用戶設置復雜的賬號密碼。
1.組策略簡介
在Windows系統中,密碼的規則設置是由組策略所控制的。簡單地說,組策略設置就是在修改注冊表中的配置。當然,組策略使用了萄託每的管理組織方法,可以對各種對象中的設置進行管理和配置,遠比手工修改注冊表方便、靈活,功能也更加強大。
依次指向“開始一運行”,輸入“gpedit.msc”進入Windows 2003 Server系統的組策略選項。進入組策略選項以后,在左方快速鏈接欄中依次指向“計算機配置一〉Windows設置一〉賬戶策略一〉密碼策略”,這里可以設置很多密碼的相關安全規則。
2.啟用密碼復雜性要求策略
在右側礦體中找到“密碼必須符合復雜性要求”項,然后雙擊打開后,選中“已啟用”按鈕,最后單擊確定使之生效。
如果啟用“密碼必須符合復雜性要求”策略,在更改或創建賬戶(密碼)時就會執行復雜性策略檢查,密碼必須符合下列最低要求:
a.密碼不能包含賬戶名:
b.密碼不能包含用戶名中超過兩個連續字符的部分:
c.密碼至少有6個字符長度;
d.策略包含以下4類字符中的至少3類字符:英文大寫字母(A-Z)、英文小“.寫字母(a-z)、10個基本數字(0-9)、特殊字符(例如!、$、#、%)
3.啟用密碼長度最小值策略
另外,更具安全密碼規則中密碼長度的要求,可以雙擊“密碼長度最小值”進行最小密碼長度的設置。例如把最小長度設置為8個字符,經過這樣的設置,FTP用戶(乃至系統用戶)的密碼安全性就大大地提高了,系統安全性也就大大增強了。#p#
真經第五重蛇行貍翻之術——使用專用賬戶訪問FTP服務
維護型的FTP服務器使用者一般是網絡管理員,所以不存在大量用戶使用的問題,一般都是機構管理員在分別使用。
針對這樣的情況,如果采用IIS下的FIP Server構建服務器的話,首先應該考慮的是去掉默認FTP服務器中的匿名訪問,然后建立專用的FTP賬戶,最后為專用的FTP賬戶指派訪問目錄。
1.建立專用FTP賬戶
假定有5個管理員需要對服務器進行經常性的維護,而且各自的工作職能不同,那就需要建立至少5個專用FTP賬戶。
Net user ft01 pass11@! wd /add
重復上述用戶建立設置,依次建立ftp01~ftp05等幾個賬戶。
2.建立專用賬戶對應的FTP文件夾
建立好FTP專用賬戶以后,需要為專用賬戶指派FTP目錄,以系統管理員身份找到n(y的根文件夾,分別為每個用戶建立一個對應的文件夾,例如用戶ftp01就對應ftp01文件夾、ftp02用戶對應ftp02文件夾。#p#
真經高手階段
上述幾個步驟只是簡單地建立了幾個可用賬戶,遠遠沒有達到實現安全FTP的目的,下述內容將進行詳細設置。
真經第六重九陰白骨爪——使用NTFS約束FTP用戶權限
在管理員各自對應的FTP用戶建立好之后,并不能直接使用,需要對各賬戶進行詳細的權限設置。
1.將FTP用戶權限限定為Guest組
使用“net user”命令建立的系統用戶默認是屬于“user”組,在系統中具有一定的權限。首先需要做的是刪除這些Fl
P用戶的“user”組權限,并將它指派成Guest用戶組中的一員。
使用如下命令刪除剛剛建立的各賬戶的“user”組權限:
Net localgroupusers ftp01 /del
然后使用如下命令將該賬戶指派到系統的“Guest”用戶組:
Net localgroup guests ftp01 /add
現在的各個FTP賬戶都處于“Guest”用戶組,權限非常低。刪除并更改完FTP用戶的所屬用戶組以后,需要對各個FTP用戶對應的文件夾進行權限設置。
2.刪除各FTP文件夾繼承權限
以ftp01賬戶對應的ftp01文件夾為例,以系統管理員身份登錄,選中文件夾并右鍵選擇“安全”選項卡,默認情況下這里有非常多的已經繼承于上級文件夾的權限,
我們需要做的是刪掉這些默認的權限,但是在刪除的時候會出現系統提示:
因為“SYSTEM”從其父系繼承權限,您無法刪除此對象。要刪除“SYSTEM
“必須阻止對象繼承權限。關閉繼承權限的選項,然后重試刪除“SYSTEM”
因為權限是繼承上級文件夾的,所以不能直接刪除,需要單擊“高級”按鈕,進入此文件夾的“高級安全設置”,
3.為FTP用戶指派文件夾訪問權限
此時的文件夾是系統中很多用戶都不能直接使用的,拄即使是管理員也無法直接打開。這時候需要為FTP賬戶指派訪問權限。選中文件夾“安全”選項卡下的“添加”,分別選擇“高級-立即查找”,選中上述建立的FTP專用用戶即可。此時ftp01默認已經有部分權限,包括“讀取和運行”、“列出文件夾目錄”、“讀取”3種。作為系統管理員們使用的維護型FTP,顯然需要經常使用上傳功能,所以這里需要選中“寫入”權限。
上述各選項均為基本的FTP設置選項,完成以后具有一定安全性的維護型FTP服務器就建立好了,但是要要做到高安全性還是不夠,需要進行其他一些設置。#p#
真經第七重白蠎鞭——強制密碼更改時間與強制密碼歷史策略
如果遇到構造巧妙的暴力破解攻擊,管理員是很難受的。一個安全的、少數人使用的FTP服務器中,每個用戶應當經常性(在用戶可以承受的日期以內)地修改密碼,以縮短被暴力破解的時間,保護密碼安全是需要重點注意的。在Windows 2003 Server系統中,組策略可以使用“強制密碼更改時間”和“強制密碼歷史”策略做到這一點。具體來說,如何在盡量不影響用戶正常使用的前提下,盡量限制暴力破解的時間呢?在Windows系統下,可以使用強制密碼更改時間策略實現;如何避免很多用戶(包括管理員)習慣使用2,3個固定密碼進行循環得非安全機制呢?可以使用強制密碼歷史策略。
1.啟用強制密碼更改時間策略
為了大大縮短暴力破解攻擊可以發起的時間,極度減低暴力破解的成功率,在不影響用戶的正常使用的前提下,強制性地要求用戶定期修改自己的FTP密碼是非常重要的一個安全措施—組策略可以完成這樣的策略指派。
使用“gpedit.msc”命令打開組策略編輯器,在“計算機配置”下的“安全設置”、“賬戶策略”、“密碼策略”下,可以看到“密碼最短使用期限”和“密碼最長使用期限”。
“密碼最長使用期限”這個安全設置是確定系統要求用戶更改密碼之前可以使用該密碼的時間(單位為天),也就是說這個時間控制用戶必須在多少天之內修改密碼,
管理員可以將密碼的過期天數設置在1~999天之間。具體來說,分為以下3種情況:
如果將天數設置為0,則指定密碼永不過期;
如果密碼最長使用期限在1~999天之間,那么“密碼最短使用期限”必須小于密碼最長使用期限;
如果密碼最長使用期限設置為0,則密碼最短使用期限可以是1~998天之間的任何值。
兼顧到正常用戶的使用,這里建議設置的密碼過期天數是30~90天。這是一種實際證明比較優秀的安全策略。通過這種方式,攻擊者只能夠在有限的時間內破解用戶密碼。這個策略應該和上面的最長使用期限相配合,合理的設置應該是30天左右。
2.啟用強制密碼歷史策略
“強制密碼歷史”策略是指用戶在重新使用舊密碼之前,該用戶所使用的新密碼必須不能與自己所使用的最近的舊密碼一樣。該策略通過確保舊密碼不能在某段時間內重復使用,使用戶賬戶更安全,需要說明的是,如果管理員希望“強制密碼歷史”安全策略選項設置有效,需要將“密碼最短有效期限”配置為大于0。如果沒有密碼最短有效期限,則FTP用戶可以重復循環通過密碼規則的密碼,直到獲得喜歡的舊密碼。
默認設置不遵從這種推薦方法,因此管理員可以為用戶指定密碼,然后要求當用戶登錄時更改管理員定義的密碼。
如果將該密碼的歷史記錄設置為0,則用戶不必選擇新密碼。因此,一般情況下將密碼歷史記錄設置為1。#p#
真經第八重移魂大法——錯誤鎖定策略指派
通過上文的一些設置,現在的密碼安全策略已經有了保障,但是面對頭疼的暴力破解攻擊,如何讓維護型的FTP服務器具有強悍的防御能力呢?這就需要使用錯誤鎖定策略。
1.定義賬戶鎖定閥值
“錯誤鎖定”策略在組策略“計算機配置”中的“安全設置”、“賬戶策略”、“密碼策略”下。雙擊打開“賬戶鎖定閥值”,
這個安全策略確定導致FTP用戶賬戶被鎖定的登錄嘗試失敗的次數,在管理員重置鎖定賬戶或賬戶鎖定時間期滿之前,無法使用該鎖定賬戶。也就是說,如果達到管理員設置的登陸錯誤次數,則該賬戶將被鎖定。管理員可以將登錄嘗試失敗次數設置為介于0~999之間的值,如果將值設置為0,則永遠不會鎖定賬戶。
一般情況下,為了對暴力破解(或者社會工程學猜解)攻擊的防御,設置賬號登錄的最大次數在5~10次左右,如果攻擊者嘗試登錄該賬戶超過此數值,賬號會被自動鎖定。
2.定義賬戶鎖定時間
設置完“錯誤鎖定”策略后,打開“賬戶鎖定時間”策略,這里設置FTP賬號被鎖定的時間,賬號一旦被鎖定,超過這個時間值,才能重新使用,界面如圖
#p#
真經第九重大伏魔拳——啟用目錄安全性杜絕大多數各類FTP 攻擊
經過上述設置,一個安全性足夠、使用效率很高的FTP服務器已經架設成功,但是作為一個專門為管理員服務的維護型FTP服務器,如果能做到下面的一個設置,將把整體的安全性提高至少2個檔次!
不管是什么樣的FTP攻擊,能登錄是最基本的一個步驟,也是絕大部分攻擊發起的目標成果,如果系統管理員采用“一招制敵”的方式,直接掐斷非法用戶的FTP登錄功能,讓攻擊者無法使用(或者非常難使用)暴力破解攻擊,讓攻擊者得到FTP賬戶密碼也沒有登錄權限的話,就能解決起碼90%以上的攻擊!
在IIS的FTP Server中,“目錄安全性”可以實現這個功能,不過根據管理員不同的環境,策略會有些許變化。
依次指向IIs管理器的FTP站點,右擊并選擇“ftp屬性”,打開“目錄安全性”,在界面中選擇“拒絕訪問”,然后單擊“添加”按鈕定義允許訪問的單一計算機、多臺計算機,設置好的界面“目錄安全性”是通過FTP用戶的登錄IP進行判斷的一種機制,上圖中的“拒絕訪問”代表默認拒絕所有IP的FTP使用請求,除非請求登錄FTP的計算機IP地址包含在“下面列出的除外”列表框中。
通過這個設置,管理員可以控制唯一的,或者是極少的絕對信任IP可以使用P)(y功能。例如,在一個大型的公司網絡中,全部員工都是使用的固定IP連接網絡(或使用固定IP地址的出口網關上網),管理員可以定義只允許此IP地址的計算機(或計算機群)進行FTP服務器的使用,其他所有的I1)地址均不能訪問FTP服務器。
經過這樣的設置,所有的外部攻擊者都被阻擋在FTP服務器以外了。不過這個功能在兩種情況下可能存在缺陷:
第一種
情況是攻擊者使用了IP偽造技術,不但成功欺騙了互聯網,還成功欺騙了服務器,讓服務器以為攻擊者就是被允許訪問中的一員,從而讓攻擊者達到攻擊網[y服務器的目的。不過這樣的攻擊難度實在太大,相信沒有幾個攻擊者愿意嘗試。
第二種
情況是攻擊者通過滲透攻擊等方式,控制了和服務器管理員同IP的計算機,比如管理員的同事等,然后在管理員同事的計算機上進行FTP攻擊。當然,這樣的滲透攻擊本身就難于FTP攻擊,所以現實中存在的類似攻擊也是相當少。
真經總卷:對配置后的服務器進行最后的演練
有防御就有攻擊,任何安全工程師都不可能說自己構建的防御體系是完美的,是不可能被攻破的。所以下面將針對上述的各項安全措施防御的維護型FTP服務器,進行理論化的高級攻防演練:
如果攻擊者采用傳統的暴力破解技術,那無疑是不能直接對上述加固后的FTP服務器進行窮舉的,因為FTP服務器不但有IP限制策略,也就是目錄安全性策略,就算攻擊者成功地獲得了一臺允許使用FTP服務器的計算機(或某IP),丕有很大幾率會卡在FTP服務器的端口隱藏策略、密碼安全策略、密碼更換策略、賬戶登錄錯誤鎖定策略等相關安全策略之中。
就現在的網絡技術而言,一般情況下要對上述的安全FTP服務器進行暴力破解,成功率接近于零。如果攻擊者想采用漏洞攻擊,先不說目錄安全性策略是否能繞過,就目前存在的、公布的漏洞來看,這樣的漏洞還沒有可用的(當然,不排除有非常牛的攻擊者研究出了IIS下的FTP驚天漏洞而未公布)。如果攻擊者采用嗅探技術獲得上述FTP服務器的密碼,那么接著需要解決的就是目錄安全性的問題(也就是IP策略)、可能遇到的密碼定期更改問題等。
總的來說,上述IIS下FTP服務器可能隨著攻防技術的不斷進步而產生漏洞,但就目前的技術水平來看,單就FTP服務本身而言(不包括服務器其他方面的服務出現漏洞等情況),安全性有了顯著提高。
【51CTO專家特稿 轉載請標明出處與作者】
【編輯推薦】