『壹』 如何在 Linux 下大量屏蔽惡意 IP 地址
很多情況下,你可能需要在Linux下屏蔽IP地址。比如,作為一個終端用戶,你可能想要免受間諜軟體或者IP追蹤的困擾。或者當你在運行P2P軟體時。你可能想要過濾反P2P活動的網路鏈接。如果你是一名系統管理員,你可能想要禁止垃圾IP地址訪問你們的公司郵件伺服器。或者你因一些原因想要禁止某些國家訪問你的web服務。在許多情況下,然而,你的IP地址屏蔽列表可能會很快地增長到幾萬的IP。該如何處理這個?
Netfilter/IPtables 的問題
在Linux中,可以很簡單地用netfilter/iptables框架禁止IP地址:
$ sudo iptables -A INPUT -s 1.1.1.1-p TCP -j DROP
如果你想要完全屏蔽一個IP地址段,你可以用下面的命令很簡單地做到:
$ sudo iptables -A INPUT -s 1.1.2.0/24-p TCP -j DROP
然而,當你有1000個獨立IP地址,且不帶CIDR(無類別域間路由)前綴,你該怎麼做?你要有1000條iptable規則!這顯然這並不適於大規模屏蔽。
$ sudo iptables -A INPUT -s 1.1.1.1-p TCP -j DROP
$ sudo iptables -A INPUT -s 2.2.2.2-p TCP -j DROP
$ sudo iptables -A INPUT -s 3.3.3.3-p TCP -j DROP
....
什麼是IP集?
這時候就是IP集登場了。IP集是一個內核特性,它允許多個(獨立)IP地址、MAC地址或者甚至是埠號被編碼和有效地存儲在點陣圖/哈希內核數據結構中。一旦IP集創建之後,你可以創建一條iptables規則來匹配這個集合。
你馬上就會看見IP集合的好處了,它可以讓你用一條iptable規則匹配多個ip地址!你可以用多個IP地址和埠號的方式來構造IP集,並且可以動態地更新規則而沒有性能影響。
在Linux中安裝IPset工具
為了創建和管理IP集,你需要使用稱為ipset的用戶空間工具。
要在Debian、Ubuntu或者Linux Mint上安裝:
$ sudo apt-get install ipset
Fedora或者CentOS/RHEL 7上安裝:
$ sudo yum install ipset
使用IPset命令禁止IP
讓我通過簡單的示例告訴你該如何使用ipset命令。
首先,讓我們創建一條新的IP集,名為banthis(名字任意):
$ sudo ipset create banthis hash:net
第二個參數(hash:net)是必須的,代表的是集合的類型。IP集有多個類型。hash:net類型的IP集使用哈希來存儲多個CIDR塊。如果你想要在一個集合中存儲單獨的IP地址,你可以使用hash:ip類型。
一旦創建了一個IP集之後,你可以用下面的命令來檢查:
$ sudo ipset list
這顯示了一個可用的IP集合列表,並有包含了集合成員的詳細信息。默認上,每個IP集合可以包含65536個元素(這里是CIDR塊)。你可以通過追加"maxelem N"選項來增加限制。
$ sudo ipset create banthis hash:net maxelem 1000000
現在讓我們來增加IP塊到這個集合中:
$ sudo ipset add banthis 1.1.1.1/32
$ sudo ipset add banthis 1.1.2.0/24
$ sudo ipset add banthis 1.1.3.0/24
$ sudo ipset add banthis 1.1.4.10/24
你會看到集合成員已經改變了。
$ sudo ipset list
以上圖片上傳到紅聯Linux系統教程頻道中。
現在是時候去創建一個使用IP集的iptables規則了。這里的關鍵是使用"-m set --match-set "選項。
現在讓我們創建一條讓之前那些IP塊不能通過80埠訪問web服務的iptable規則。可以通過下面的命令:
$ sudo iptables -I INPUT -m set--match-set banthis src -p tcp --destination-port 80-j DROP
如果你願意,你可以保存特定的IP集到一個文件中,以後可以從文件中還原:
$ sudo ipset save banthis -f banthis.txt
$ sudo ipset destroy banthis
$ sudo ipset restore -f banthis.txt
上面的命令中,我使用了destory選項來刪除一個已有的IP集來看看我是否可以還原它。
自動IP地址禁用
現在你應該看到了IP集合的強大了。維護IP黑名單是一件繁瑣和費時的工作。實際上,有很多免費或者收費的服務可以來幫你完成這個。一個額外的好處是,讓我們看看如何自動將IP黑名單加到IP集中。
首先讓我們從https://www.iblocklist.com/lists.php得到免費的黑名單,這個網站有不同的免費和收費的名單。免費的版本是P2P格式。
接下來我要使用一個名為iblocklist2ipset的開源python工具來將P2P格式的黑名單轉化成IP集。
首先,你需要安裝了pip。
使用的下面命令安裝iblocklist2ipset。
$ sudo pip install iblocklist2ipset
在一些發行版如Fedora,你可能需要運行:
$ sudo python-pip install iblocklist2ipset
現在到https://www.iblocklist.com/lists.php,抓取任何一個P2P列表的URL(比如"level1"列表)。
粘帖URL到下面的命令中。
$ iblocklist2ipset generate \
--ipset banthis "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz" \
> banthis.txt
上面的命令運行之後,你會得到一個名為banthis.txt的文件。如果查看它的內容,你會看到像這些:
create banthis hash:net family inet hashsize 131072 maxelem 237302
add banthis 1.2.4.0/24
add banthis 1.2.8.0/24
add banthis 1.9.75.8/32
add banthis 1.9.96.105/32
add banthis 1.9.102.251/32
add banthis 1.9.189.65/32
add banthis 1.16.0.0/14
你可以用下面的ipset命令來載入這個文件:
$ sudo ipset restore -f banthis.txt
現在可以查看自動創建的IP集:
$ sudo ipset list banthis
在寫這篇文章時候,「level1」類表包含了237,000個屏蔽的IP列表。你可以看到很多IP地址已經加入到IP集中了。
最後,創建一條iptables命令來屏蔽這些壞蛋!
總結
這篇文章中,我描述了你該如何用強大的ipset來屏蔽不想要的IP地址。同時結合了第三方工具iblocklist2ipset,這樣你就可以流暢地維護你的IP屏蔽列表了。那些對ipset的性能提升好奇的人,下圖顯示了iptables在使用和不使用ipset的基準測試結果(注意時間坐標軸)。
『貳』 網路術語解釋Ⅰ(高分)
FTP是英文File Transfer Protocol的縮寫,意思是文件傳輸協議。它和HTTP一樣都是Internet上廣泛使用的協議,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈上用PORT命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈上用PASV命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。
第二個 : HTTP是什麼?
當我們想瀏覽一個網站的時候,只要在瀏覽器的地址欄里輸入網站的地址就可以了,例如www.microsoft.com,但是在瀏覽器的地址欄裡面出現的卻是:http://www.microsoft.com ,你知道為什麼會多出一個「http」嗎?
一、HTTP協議是什麼
我們在瀏覽器的地址欄里輸入的網站地址叫做URL (Uniform Resource Locator,統一資源定位符)。就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接時,URL就確定了要瀏覽的地址。瀏覽器通過超文本傳輸協議(HTTP),將Web伺服器上站點的網頁代碼提取出來,並翻譯成漂亮的網頁。因此,在我們認識HTTP之前,有必要先弄清楚URL的組成,例如:http://www.microsoft.com/china/index.htm。它的含義如下:
1. http://:代表超文本傳輸協議,通知microsoft.com伺服器顯示Web頁,通常不用輸入;
2. www:代表一個Web(萬維網)伺服器;
3. Microsoft.com/:這是裝有網頁的伺服器的域名,或站點伺服器的名稱;
4. China/:為該伺服器上的子目錄,就好像我們的文件夾;
5. Index.htm:index.htm是文件夾中的一個HTML文件(網頁)。
我們知道,Internet的基本協議是TCP/IP協議,然而在TCP/IP模型最上層的是應用層(Application layer),它包含所有高層的協議。高層協議有:文件傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和HTTP協議等。
HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)是用於從WWW伺服器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。這就是你為什麼在瀏覽器中看到的網頁地址都是以http://開頭的原因。
自WWW誕生以來,一個多姿多彩的資訊和虛擬的世界便出現在我們眼前,可是我們怎麼能夠更加容易地找到我們需要的資訊呢?當決定使用超文本作為WWW文檔的標准格式後,於是在1990年,科學家們立即制定了能夠快速查找這些超文本文檔的協議,即HTTP協議。經過幾年的使用與發展,得到不斷的完善和擴展,目前在WWW中使用的是HTTP/1.0的第六版。
二、HTTP是怎樣工作的
既然我們明白了URL的構成,那麼HTTP是怎麼工作呢?我們接下來就要討論這個問題。
由於HTTP協議是基於請求/響應範式的(相當於客戶機/伺服器)。一個客戶機與伺服器建立連接後,發送一個請求給伺服器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。伺服器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括伺服器信息、實體信息和可能的內容。
許多HTTP通訊是由一個用戶代理初始化的並且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在用戶代理和伺服器之間通過一個單獨的連接來完成。在Internet上,HTTP通訊通常發生在TCP/IP連接之上。預設埠是TCP 80,但其它的埠也是可用的。但這並不預示著HTTP協議在Internet或其它網路的其它協議之上才能完成。HTTP只預示著一個可靠的傳輸。
這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯系(HTTP是通過TCP/IP),當然我們也可以通過傳真,只要商家那邊也有傳真。
以上簡要介紹了HTTP協議的宏觀運作方式,下面介紹一下HTTP協議的內部操作過程。
在WWW中,「客戶」與「伺服器」是一個相對的概念,只存在於一個特定的連接期間,即在某個連接中的客戶在另一個連接中可能作為伺服器。基於HTTP協議的客戶/伺服器模式的信息交換過程,它分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。這就好像上面的例子,我們電話訂貨的全過程。
其實簡單說就是任何伺服器除了包括HTML文件以外,還有一個HTTP駐留程序,用於響應用戶請求。你的瀏覽器是HTTP客戶,向伺服器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級鏈接時,瀏覽器就向伺服器發送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進行必要的操作後回送所要求的文件。在這一過程中,在網路上發送和接收的數據已經被分成一個或多個數據包(packet),每個數據包包括:要傳送的數據;控制信息,即告訴網路怎樣處理數據包。TCP/IP決定了每個數據包的格式。如果事先不告訴你,你可能不會知道信息被分成用於傳輸和再重新組合起來的許多小塊。
也就是說商家除了擁有商品之外,它也有一個職員在接聽你的電話,當你打電話的時候,你的聲音轉換成各種復雜的數據,通過電話線傳輸到對方的電話機,對方的電話機又把各種復雜的數據轉換成聲音,使得對方商家的職員能夠明白你的請求。這個過程你不需要明白聲音是怎麼轉換成復雜的數據的。
TCP/IP的通訊協議
這部分簡要介紹一下TCP/IP的內部結構,為討論與互聯網有關的安全問題打下基礎。TCP/IP協議組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層協議(例如T1和X.25、乙太網以及RS-232串列介面)之上。確切地說,TCP/IP協議是一組包括TCP協議和IP協議,UDP(User Datagram Protocol)協議、ICMP(Internet Control Message Protocol)協議和其他一些協議的協議組。
TCP/IP整體構架概述
TCP/IP協議並不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。這4層分別為:
應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網路遠程訪問協議(Telnet)等。
傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,並且確定數據已被送達並接收。
互連網路層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。
網路介面層:對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送數據。
TCP/IP中的協議
以下簡單介紹TCP/IP中的協議都具備什麼樣的功能,都是如何工作的:
1. IP
網際協議IP是TCP/IP的心臟,也是網路層中最重要的協議。
IP層接收由更低層(網路介面層例如乙太網設備驅動程序)發來的數據包,並把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP並沒有做任何事情來確認數據包是按順序發送的或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好象是從路徑上的最後一個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那麼,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。
2. TCP
如果IP數據包中有已經封好的TCP數據包,那麼IP將把它們向『上』傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名資料庫),但使用UDP傳送有關單個主機的信息。
3.UDP
UDP與TCP位於同一層,但對於數據包的順序錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網落時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
4.ICMP
ICMP與IP位於同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的『Redirect』信息通知主機通向其他系統的更准確的路徑,而『Unreachable』信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接『體面地』終止。PING是最常用的基於ICMP的服務。
5. TCP和UDP的埠結構
TCP和UDP服務通常有一個客戶/伺服器的關系,例如,一個Telnet服務進程開始在系統上處於空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息並發出響應,客戶程序讀出響應並向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統間的多重Telnet連接是如何相互確認並協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址---發送包的IP地址。
目的IP地址---接收包的IP地址。
源埠---源系統上的連接的埠。
目的埠---目的系統上的連接的埠。
埠是一個軟體結構,被客戶程序或服務進程用來發送和接收信息。一個埠對應一個16比特的數。服務進程通常使用一個固定的埠,例如,SMTP使用25、Xwindows使用6000。這些埠號是『廣為人知』的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
什麼是DNS?
這次教你一個對上網蠻重要的東西,它叫DNS(Domain Name System)。呵呵,光看名字就有點莫名其妙是吧?其實,DNS的作用和我們電話的114查號台一樣,它的作用就是把域名和IP地址聯系在一起。事實上,每一個網站在網路上的識別標志是我們平常聽到的IP地址,而不是什麼www.sohu.com之類的域名,但因為IP地址為純數字的,很難記,所以就有專業的伺服器將一個個域名和特定的伺服器的IP地址聯起來,這樣,在我們上網查找網頁的時候,就可以輸入容易記憶的域名了。
DNS的由來
你可能會很奇怪,為什麼需要DNS這樣一種東西?為什麼不一開始就使用文字形式的網路地址。其實這里有個「歷史遺留問題」。在早起的網路世界裡,每台電腦都只用IP地址來表示,那時的電腦主機很少,所以記憶起來也不難。不久,僅僅用腦子和紙筆記憶這些IP地址就太麻煩了,於是一些UNIX(一種操作系統,主要用於伺服器)的使用者就建立一個hosts對應表(這個我後面再解釋),將IP地址和主機名稱對應起來。這樣,用戶只需輸入電腦名字就可以代替IP來進行溝通了。
DNS時如何工組的
DNS使用的時階層式工作方式,很像電腦的目錄樹結構,在最高層是根目錄,然後下面分為很多子目錄,子目錄裡面還有子目錄(什麼,不懂什麼是目錄樹?按住有windows徽標的那個鍵,然後按R,輸入cmd,在打開的那個黑色的屏幕里輸入tree,看看吧,這個就是目錄樹)。例如,yahoo.com.cn這個網站,這個域名可不是憑空來的,而是從com.cn分配下來的,com.cn又是從cn分配而來的,猜猜.cn是從哪裡來的?告訴你,是從「.」來的,這個就是「根域」(root domain)。根域是域名的最高層,而「.」這層是由INIC(Internet Network Information Center,互聯網信息中心)所管理。全世界的域名就是這樣,一層一層的解釋,我們的電腦就是通過問掌管不同域的DNS伺服器,從而最終得到這個網站的IP地址。而平常我們不輸「yahoo.com.cn.」是我們可以省略「.」。(世界上有很多主幹DNS伺服器,其中最重要的是13台路由伺服器。如果路由伺服器無法正常運行,那麼INTENET就會陷入癱瘓。這13台伺服器的名字分別為「A」至「M」,其中10台設置在美國,另外各有一台設置在英國、瑞典和日本。
『叄』 怎麼樣在Redhat Linux 下配置FTP,Web,MySql服務(要具體的,最好完整的)
1,Linux下架FTP!!
Linux下一般最常用的工具wu-ftpd.
wu-ftpd的安裝非常容易,大多數版本的Linux中都包含了wu-ftpd的rpm軟體包,你可以在安裝Linux時指定裝入。如果你想自行編譯源代碼,也可以到ftp://ftp.wu-ftpd.org下載最新版本的源代碼包。
安裝好以後,可以用ckconfig命令來檢查是否已經正確安裝。友手在/etc/passwd中可以指定ftp用戶的登入目錄。
wu-ftpd主要有以下6個配置文件:
ftpaccess(主要配置文件,控制存取許可權)
ftpconvertions(配置文件壓縮/解壓逗罩縮轉換)
ftpgroups(設定ftp自己定義的群組)
ftphosts(設定個別的用戶許可權)
ftpservers(設定不同IP/Domain Name以對應到不同的虛擬主機)
ftpusers(設定哪些帳號不能用ftp連線)
下面我們來一一介紹。
⒈/etc/ftpaccess(wu-ftpd的主要配置文件)
class--定義群組,用法如下:
class<種類>;<用戶地址>;[<用戶地址>;……]
由class定義的群組用戶才可以連線進來,可以使用多層式的class來規范哪些群組的用戶能夠從哪些地方上來。這里有三個重要的種類,real、anonymous個guest。real如果沒有列在定義中,那麼這台機器中任何真實的一般用戶都無法用自己的帳號連上來。anonymous如果沒有在定義,就表示不讓沒有帳號的的人連上來。如果有定義guest,那麼guest群組的人就可以上來。另外<用戶地址>;是指ftp上來的用戶會用到的IP地址,則可自行設定。以下是一些例子:
class all real,guest,anonymous *
定義了一個名為all的class,包含三種人,所有IP的連線用戶(也就是所有人都包括了)
class local real localhost loopback
local這個class說,只有real的用戶可以從本機機器連上來
class remote guest,anonymous *
remote這個class包含了從任何地方上來的guest和anonymous用戶,但是real用戶不算
class rmtuser real !*.example.com
rmtuser這個class包含了從外面來的(除了example.com)真實用戶
autogroup--自動對應群組,用法如下:
autogroup[……]
當你定義好的那些同屬於一個class的用戶,一旦連線上來就會被對應到一個相應的群組下面,這樣你就可以用Unix的文件許可權對某一群人做限制。
deny--拒絕某些地址連線,用法如下:
deny<拒絕連線的地址>;<信息文件>;
禁止某些機器連線,並顯示<信息文件>;。例如:
deny 210.62.146.*:255.255.255.254 /etc/reject.msg
guestgroup--設定訪客群
guestuser--設定訪客帳號
realgroup--設定真實群組
realuser--設定真實帳號
nice--設定給某些class多少優先權,用法如下:
nice
在Linux中,nice的值是-20(最優先)到19(最後處理),這里你可以指定負的值來提高某class的優先順序。
defumask--設定某class的umask,用法如下:
defumask[]
umask是建立文件時該文件的的許可權掩碼
tcpwindow--設定tcpwindow的大小
keepalive--設定是否使用TCP SO_KEEPALIVE來控制斷線情形
timeout--設定連線超時,用法如下:
timeout accept<秒>;
接受連線超時,預設120秒
timeout connect<秒>;
連線建立超時,預設120秒
timeout data<秒>;
數據傳送超時,預設1200秒
timeout idle<秒好指嫌>;
用戶發呆超時,預設900秒
file-limit--限制某class只能傳幾個文件,用法如下:
file-limit[][]
對某個class限制存取文件的數目,包含了in(上傳)、out(下載),total raw代表整個傳輸的結果,不光是數據文件。例如:
file-limit out 20 lvfour
限制lvfour這個class的用戶最多隻能下載20個文件
byte-limit--限制某class只能傳幾個位元組,用法跟file-limit相似
limit-time--限制一個連線只能持續多久,用法如下:
limit-time{*|anonymous|guest}<分鍾>;
為了避免有人掛在站上不下來,可以用這個方法限制用戶的上線時間,例如:
limit-time guest 5
讓guest帳號的用戶只能用5分鍾
limit--限制某class能同時幾人上線,用法如下:
limit<連線數目>;<時間區段>;<額滿信息文件>;
設定某個class在某一時間區段內最多能夠幾人同時上線,後面是當超過連線數目時要顯示的信息。例如:
limit all 32 Any /home/ftp/etc/toomanyuser.msg
限制所有連線在任何時間只能有32個用戶,超過則拒絕連線並顯示信息
limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg
限制levellone這個class的用戶在23:00到6:00這段時間內只能有5人連線
noretrieve--設定哪些文件不可下載
noretrieve[absolute/relative][class=]…[-][<文件名>;…]
absolute或relative指文件是用絕對路徑還是相對路徑
allow=retrieve--設定哪些文件可以下載
allow[absolute/relative][class=]…[-][<文件名>;…]
loginfails--設置登入錯誤可嘗試的次數
當用戶連線時可能打錯ID或密碼,這個設定可以讓他打錯幾次以後就斷線,避免有人用窮舉法猜測密碼。
private--設定線上是否可以執行SITE GROUP/SITE GPASS
當開放SITE GROUP與SITE GPASS指令時,可以用這兩個指令切換到/etc/ftpgroup的群組。一般而言我們不會用到這個功能,以避免安全漏洞。
greeting--顯示Server的版本信息,用法如下:
greeting
當用戶登入畫面顯示的server信息,full是預設值,包含版本號以及hostname,brief只有hostname,而terse只有「FTP server ready」的信息。
barnner--設定未進入Login畫面之前用戶看到的信息,用法如下:
banner<文件路徑>;
這里敘述了在用戶登入時,在還沒打ID/Password之前要出現的信息。文件路徑指的是相對於真實的路徑,而不是相對於ftp的根目錄。
host--設定ftp主機名
email--指定ftp管理者的email地址
message--信息文件的設定,用法如下:
message<文件>;{<何時>;{……}}
這里的文件的路徑是相對於ftp的根目錄的,「何時」是指當你做了什麼動作之後的反應,有幾個選擇:
login(登入時)
cwd=<目錄>;(進入某目錄時)
class 名稱是前面已經定義過的,允許你的信息只對哪些人發出。
而信息文件的內容除了文字以外,還可以使用以下一些事先定義好的代號:
%T(本機時間)
%F(目前分區所剩餘的空間)
%C(目前所在的目錄)
%E(管理者的E-mail)
%R(客戶端主機名稱)
%L(本機主機名稱)
%U(用戶名稱)
%M(與我相同class用戶允許多少人連線)
%N(與我相同class用戶目前有多少人連線)
%B(絕對磁碟限制大小,目前分區(單位blocks))
%b(preferred磁碟限制大小,目前分區(單位blocks))
%Q(目前已使用的blocks)
%I(最大可使用的inodes(+1))
%i(Preferred inodes限制)
%q(目前使用的indoes)
%H(超量使用磁碟空間的時間限制)
%h(超量使用文件數目的時間限制)
readme--通知用戶哪些README文件已經更新
log commands--記錄用戶所使用過的命令,用法如下:
log commands<用戶種類>;
log transfers--記錄用戶所傳輸的文件,用法如下:
log transfers<用戶種類>;<傳輸方向>;
設定有哪些類型的用戶傳輸文件需要記錄,包含了inbound(用戶上傳)和outbound(用戶下載),例如:
log transfers anonymous,guest inbound,outbound
log security--記錄安全性,用法如下:
log security<用戶種類>;
特別用於記錄某類用戶關於noretrive、notar等有關安全性的記錄
log syslog--記錄到系統的syslog文件
alias--設定目錄別名,用法如下:
alias<別名字元串>;<目錄>;
cdpath--設定cd更換目錄搜索順序
compress,tar--設定是否自動壓縮,用法如下:
compress[……]
tar[……]
定義哪些人可以執行壓縮以及tar
shutdown--通知用戶要關站了
shutdown<信息文件>;
如果信息文件存在的話,當這個文件指定的某時間以後,就會拒絕連線並切斷已有的連線,等時間一到就關機。這個信息文件的格式如下:
<年>;<月>;<日>;<時>;<分>;<拒絕倒數>;<斷線倒數>;<文字>;
daemon address--指定只監聽某個IP地址,用法如下:
daemon address
當你有許多IP的時候,使用這個選項將會取消其它任何虛擬FTP主機的設定。不設定的話,監聽所有IP。
virtual--設定虛擬FTP站台
wu-ftpd提供了虛擬主機的功能,也就是說,在同一台機器上提供了不同FTP站台,以主機名稱或IP來區分;當然你要用名稱的話,還需要跟DNS配合才行。virtual有很多個設定:
virtual
<路徑>;
可以是主機名或IP地址
root指的是ftp的根目錄,banner是歡迎信息,logfile指的是這個虛擬站台的log文件
以下是一些例子:
virtual virtual.com.bj root /home/ftp2
virtual virtual.com.bj banner /etc/vftpbanner.2
virtual virtual.com.bj logfile /etc/viftplog.2
virtual
<字母>;
用戶可以查到hostname跟管理者email,以下是一些例子:
virtual 210.62.146.50 hostname virtual.site.com.bj
virtual vritual.site.com.bj email [email protected]
virtual
allow<用戶>;[<用戶>;……]
virtual
deny<用戶>;[<用戶>;……]
很明顯,以上兩個選項是設定是否允許連線的,以下是一些例子:
virtual virtual.site.com.bj allow *
virtual virtual.site.com.bj deny badman
virtual
private
本虛擬站台拒絕anonymous用戶
defaultserver deny <用戶>;[<用戶>;……]
defaultserver allow <用戶>;[<用戶>;……]
當我們使用了虛擬主機,原先的deny,allow設定不知道要設哪個server,所以會無效,用defaultserver代表原來的主機
defaultserver private
主站台拒絕anonymous用戶
passive address--轉換IP數值
passive address<外部IP>;/cidr
passive ports--passive的ports范圍
passive ports
pasv-allow--允許使用pasv
pasv-allow[<地址>;……]
port-allow--允許使用port
port-allow[<地址>;……]
mailserver--指定Upload通知的mail伺服器
incmail--指定anonymous upload的email通知地址
virtual incmail--指定虛擬主機anonymous upload的email通知地址
defaultserver incmail--指定預設主機anonymous upload的email通知地址
mailfrom--通知的寄信人upload
virtual mailfrom--虛擬主機upload通知的寄信人
defaultserver mailfrom--預設主機upload通知的寄信人
chmod--設定是否可以改變文件許可權
delete--設定是否可以刪除文件
overwrite--覆蓋文件
rename--重命名文件
umask--允許設定umask
passwd-check--設定anonymous FTP的密碼檢查程度,用法如下:
passwd-check()
設定對anonymous ftp用戶的密碼是否檢查,none表示不檢查,trivial為包含@的任意密碼,rfc822則表示密碼要遵循RFC822格式,enforce表示密碼檢查不過不允許進入,warn表示密碼檢查不過只出現警告信息。
deny=email--拒絕特定的email當密碼
path-filer--攝定哪些文件名不可使用
path-filer<錯誤信息文件>;<允許字元>;<不允許字元>;
upload--設定upload許可權
upload[absloute/relative][class=]…[-]<設定的目錄>; >;[dirs/nodirs][d_mode]
用來對我們要設定的目錄做許可權設定:
absoulte/relative使用絕對路徑或是相對路徑
class=指定某個class
root-dir指的是對哪些root-dir的人,也就是chroot後的登入目錄,應用這個規則
設定的目錄指的就是我們要限制的目錄
yes/no指得是能否在此目錄下開新文件
owner,group指出是開出來的文件擁有者及群組
Mode指的是文件許可權
dirs/nodirs指的是能否開新目錄
d_mode設定建立新目錄時目錄的許可權,如果不設定會根據mode來設定
thoughput--控制下載速度
thoughput<子目錄列表>;<文件>;<遠端地址列表>;
對遠端的地址,控制他抓某個子目錄下的某些文件時的速度,例如:
thoughput /e/ftp * * oo - *
thoughput /e/ftp /sw* * 1024 0.5 *
thoughput /e/ftp sw* readme oo - *
thoughput /e/ftp sw* * oo - *.foo.com
以上的設定你是否能夠看出來呢?「oo」表示不限制bytes/sec,「-」或是「1.0」都是代表一倍。第一行的意思是說,在/e/ftp下面的文件不限制下載速度;第二行說,在/sw*下面的任何文件限速為1024bytes/sec*
0.5=512bytes/sec;第三行又把readme文件的限速取消;最後一行則對*.foo.com開放全速。
anonymous-root--對某class設定匿名用戶的根目錄
anonymous-root[]
guest-root--預設一個guest用戶根目錄
guest-root[]
其中用於指定uid的范圍
deny-uid,deny-gid--拒絕某段UID(GID)范圍
allow-uid,allow-gid--允許某段UID(GID)范圍
restricted-uid,restricted-gid--限制用戶不能離開他的登錄目錄
unrestricted-uid,unrestricted-gid--用戶可以離開他的登錄目錄
dns refuse_mismatch--設定DNS查到名稱與用戶設定不符的動作
dns refuse_mismatch<信息文件>;[override]
當用戶使用未注冊IP時,拒絕他的連線,override則是不理會錯誤而讓他連線,信息文件則是我們要給用戶看的。
dns refuse_no_reverse--設定無反查記錄拒絕連線
dns refuse_no_reverse<信息文件>;[override]
當用戶的IP反查無記錄時,拒絕他的連線
dns resolveoptions--設定DNS解析選項
dns resolveoptions[options]
這里可以設定DNS解析選項
⒉/etc/ftphosts
ftphosts文件其實跟ftpaccess裡面的access,deny很像,它是特別用來設定某些ID的連線,它沒有class定義,所以必須是真實用戶。
allow|deny<用戶>;<地址>;[<地址>;……]
以下是一些例子:
allow rose 140.0.0/8
deny jack 140.123.0.0:255.255.0.0
允許rose從140.*.*.*進來,拒絕jack從140.123.*.*上來
⒊/etc/ftpservers
這個文件控制了當你有不同的IP/hostname的時候,進來的連線使用哪一個配置文件。例如:
10.196.145.10 /etc/ftpd/ftpaccess.somedomain/
10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
some.domain internal
10.196.145.20 /etc/ftpd/config/faqs.org/
ftp.some.domain /etc/ftpd/config/faqs.org/
⒋/etc/ftpusers
在這個文件里記錄的用戶禁止使用FTP
⒌/etc/ftpgroups
給SITE GROUP指令使用,線上切換group。SITE EXEC容易造成安全漏洞,一般我們都不開放。
⒍/etc/ftpconversions
用來做tar、compress、gzip等動作指令配置文件,只要用預設即可,如果你不開放即時壓縮打包,也可以把內容清除。
2,Linux操作系統近幾年有了蓬勃的發展,在整個世界范圍內得到了越來越多公司和團體的支持,尤其是最近IBM公司的鼎力支持,更是使Linux伺服器如虎添翼,更上一層樓
Linux操作系統近幾年有了蓬勃的發展,在整個世界范圍內得到了越來越多公司和團體的支持,尤其是最近IBM公司的鼎力支持,更是使Linux伺服器如虎添翼,更上一層樓。而在國內,Linux的應用也是方興未艾,眾多公司已經投入到Linux系統的研發和推廣工作中。一些優秀的Linux操作系統相繼出現,比如紅旗Linux等。但是我國的Linux應用水平還很低,熟悉Linux的人員嚴重缺乏,Linux專業人才的缺乏已成為Linux在國內應用和普及的瓶頸問題。據《開放系統世界》2003年第八期介紹,中國五年內Linux人才需求量將會超過120萬。而「1+1+1」工程的實施,也是間接地告訴我們這個問題的嚴重性。如此大好時機,我們干嗎還愣著不動呢!如果你是一位Linux愛好者,你可能已經掌握了基本的Linux的知識與操作,毫無疑問,你並不會去滿足這樣小小的成就。Linux為何如此的流行?其最大的特點莫過於功能強大,性能穩定的伺服器應用了。像WWW,MAIL,FTP,DNS和SMB等。在這篇文章中,我將以Redhat Linux 9為藍本,從Web伺服器的一些最基本的操作入手,從初學者使用的態度,讓讀者正確充分的認識Apache。好,現在就讓我們一起踏上征服Apache的自由之路吧。
Apache的主要特徵是:
. 可以運行上所有計算機平台;
. 支持最新的HTTP 1.1協議;
. 簡單而強有力的基於文件的配置;
. 支持通用網關介面CGI;
. 支持虛擬主機;
. 支持HTTP認證;
. 集成Perl腳本編程語言;
. 集成的代理伺服器;
. 具有可定製的伺服器日誌;
. 支持伺服器端包含命令(SSI)
. 支持安全Socket層(SSL)
. 用戶會話過程的跟蹤能力;
. 支持FastCGI;
. 支持Java Servlets。
安裝Apache
下面我們就開始漫漫征服Apache之旅,通過循序漸進的需求實例,一步步地學習使用Apache,從入門到精通。
系統需求
運行Apache不需要太多的計算資源。它在有6-10MB硬碟空間和8MB RAM的Linux系統上運行得很好。然而,只運行Apache可能不是你想做的事情。更可能的是,你想運行Apache來提供WWW服務、啟動CGI進程以及充分利用所有WWW能夠提供的令人驚奇的功能。在這種情況下,你需要提供反映負載要求的額外的磁碟空間和內存空間。也就是說,如果僅僅是啟動WWW服務並不需要太多的系統資源,但是想要能為大量的客戶提供服務就需要更多的系統資源。
獲取軟體
你可以在http://www.apache.org中獲得Apache的最新版。而幾乎所有的Linux發行版中均包含有Apache軟體包,你也可以直接使用它。
需要注意的是,Apache軟體包有兩種:一種是源代碼,下載後需要自己重新編譯;另一種是可執行文件,下載後只需解壓就可以使用。
安裝軟體
你可以通過以下三種方法安裝Apache伺服器。
1.如果你安裝的Linux版本中帶用Apache的話,就在選擇所要安裝的伺服器的時候,將httpd這個服務選上,Linux安裝程序將自動完成Apache的安裝工作,並做好基本的配置。
2.使用可執行文件軟體包,這比較適合那些對編譯工作不是太熟悉的初級用戶,因為它相對比較簡單。
下載軟體包apache_1.2.4.e.tar.gz
tar xvzf apache_1.2.4.e.tar.gz
這就完成了安裝工作,簡單吧!
如果你使用的是RedHat Linux的話,你也可以下載apache_1.2.4.rpm軟體安裝包,然後使用rpm -ivh apache_1.2.4.rpm命令安裝。
3.如果你想把Apache伺服器充分利用起來的話,就一定要自己編譯Apache定製其功能。
下載包含Apache源代碼的軟體包apache_1.2.4.tar.gz; 然後用tar命令將它解開; 將當前目錄改變為Apache源代碼發行版的src目錄; 將配置樣本文件(Configuration.tmpl)復制為Configuration文件;
編輯Configuration文件中的配置選項:
Makefile配置選項:一些編譯選項:
. "CC="一行指定用什麼編譯軟體編譯,一般為"CC=gcc";
. 如果需要將額外的標志(參數)指定給C編譯軟體,可以使用:
EXTRA_CFLAGS=
EXTRA_LFLAGS=
. 如果系統需要特殊的庫和包含文件,可以在這里指定它們:
EXTRA_LIBS=
EXTRA_INCLUDES=
. 如果你要改變代碼優化設置的話,你須將下面一句去掉注釋,然
後改成你所需要的值:
#OPTIM=-O2
Rule配置選項:用來決定需要什麼功能,一般情況下無需改變。
模塊配置:模塊是Apache的組成部分,它為Apache內核增加新功能。通過使用模塊配置,可以自定義在Apache伺服器中需要什麼功能,這個部分也是Apache靈活性的表現。模塊配置行如下所示:
AddMole moles/standard/mod_env.o
如果你需要Apache伺服器具備什麼功能,就將那個模塊用AddMole語句加到配置文件Configuration中去。
3,一、 MYSQL的基本概念
1、MYSQL的定義
MYSQL一種多用戶、多任務的資料庫伺服器軟體
2、MYSQL的特點
支持多平台,沒有內存漏洞,分布式處理
支持JAVA、PHP、PERL、支持數據類型
支持ODBC,支持SQL查詢
二、 安裝MYSQL的伺服器
1、 RPM方式MYSQL
#RPM –ivh MYSQL-3。23-3.i386.rpm
#RPM –ivh MYSQL-client-3.23-33.i386.rpm
#RPM-ivh MYSQL-Shared.3.23-33.i386.rpm
#Tpm -ivh MYSQL –server.3.23-33.i386.rpm
2.編譯安裝方式
#tar -xvzf mysql 3.23.tar.gz
# cd mysql-3.23
#/configure --prdfix=/usr/local
#make
#malke install
# cd/usr/local/bin/
#/mysql-install-db 初始資料庫系統。
系統庫作用:記錄伺服器的設置參數,存放用戶庫信息
安全選項
#safe-mysqld
『肆』 什麼是bgp伺服器
BGP伺服器 採用多線路融合技術,包含電信 網通 移動 集成於一個ip 能夠輕松實現單ip高速訪問!
1.BGP線路的伺服器只有一個IP,用戶的訪問路線由路由器根據訪客實際訪問速度選擇最優訪問路徑,來選擇訪問,而且不佔用任何的伺服器資源。
2.伺服器的上行和下行都是有路由器來選擇最佳的路線,所以這樣能夠真正地做到各運營商之間都達到最佳的訪問速度實現真正的BGP效果。
3.由於BGP協議本身具有冗餘備份、消除環路的特點,所以當你託管或者租用的伺服器出現故障時,能實現互相備份。同時自動切換到其它線路去,並且不影響正常訪問。
4.BGP伺服器租用還有較好的拓展性和融合性,可以實現和其它運營商互聯互通,輕松實現單IP多線路。國內有單線、多線之分,如果租用了單線機房的伺服器,那南北互訪困難的問題就比較嚴重,所以,建議租用BGP多線伺服器就沒有這種問題了。
磐石雲-簡單好用、安全穩定、便宜的高防雲伺服器,提供多線BGP高防、DDoS單機防禦、無視cc等高性價比的雲計算服務,免費注冊會員即可試用。