幾乎所有的發(fā)行包都帶有imap服務器軟件(一般是華盛頓大學版本),最好的辦法是用你的發(fā)行包安裝IMAP服務器。事實上,我個人覺得IMAP服務器很少被使用。下載最常規(guī)的IMAP服務器源碼地址是:ftp://ftp.cac.washington.edu/imap/imap.tar.Z
|
(如果不行依次試驗一下其他你覺得可能的系統(tǒng)類型,用vi看一下Makefile中列的名稱)
然后配置/etc/inetd.conf,讓inetd允許imap服務。[本節(jié)內(nèi)容沒有試驗成功,編譯總是過不去]
(8)安裝squid服務器
SQUID是一個優(yōu)秀的代理服務器軟件,它可以很靈活的被配置為各種應用形式,其中包括正向代理,反向加速模式和透明代理等。但是SQUID目前只能代理HTTP協(xié)議,代理FTP協(xié)議需要配置瀏覽器仿真主動FTP協(xié)議。下面的步驟是安裝SQUID的過程。
1、下載反向代理服務器軟件采用squid,下載地址:http://www.squid-cache.org/
下載后存放在/usr/local/src目錄里,文件名是squid-2.4.STABLE2-src.tar.gz
2、tar zxvf squid-2.4.STABLE2-src.tar.gz 解壓縮
3、cd /usr/local/src/squid-2.4.STABLE2 進入目錄
4、./configure --PRefix=/usr/local/squid --enable-heap-replacement --disable-internal-dns建立環(huán)境,把squid安裝/usr/local/squid中。第二個參數(shù)是指定使用更先進的緩沖算法。第三個參數(shù)是取消內(nèi)部DNS解析(如果使用在遠程高速緩存模式,比如GSLB,需要增加選項:--disable-internal-dns,目的是關閉內(nèi)部DNS.否則內(nèi)部DNS不理睬你在etc/hosts中的設定,直接尋找域名服務器,這樣就會造成轉發(fā)循環(huán)。就是cache發(fā)送給物理服務器的更新請求(因為用域名)也會被用戶的GSLN設備解析回來而形成循環(huán)。)
5、make 開始編譯
6、make install 安裝到剛才--prefix=指定的路徑當中
7、安裝完成后,會在您指定的安裝路徑里產(chǎn)生一個squid目錄,squid目錄下有四個目錄:bin/ etc/ libexec/ logs/。其中etc里面是配置文件,bin里面是執(zhí)行文件,logs里面是日志文件。
8、安裝結束后就是調試服務器,使其按照您的要求工作。Squid的配置文件只有一個,在etc目錄里,名字是squid.conf,所有的配置選項都在這個文件里面。而且每個配置項目都有注釋說明。首先,在squid文件里面找到下列配置項:
cache_mem ---這里可以添上您準備給squid作為高速緩存使用的內(nèi)存大小。注意,如果您的機器有N兆內(nèi)存,那么,推薦您在這里添的數(shù)字是N/3。
cache_dir /usr/local/squid/cache 100 16 256 這里的第一個數(shù)字100是您準備給squid作為cache使用的硬盤空間大小,單位是兆。如果您想劃100M空間當作cache,那么這里就寫100。
cache_mgr webmaster@test.com.cn這里填寫cache管理員的Email地址,系統(tǒng)出錯會自動提醒cache管理員。
cache_replacement_policy和memory_replacement_policy的參數(shù)由于使用了--enable-heap-replacement編譯參數(shù),就不能使用缺省的lru算法了,你可以在下列三種里面選一個:
heap GDSF : Greedy-Dual Size Frequency
heap LFUDA: Least Frequently Used with Dynamic Aging
heap LRU : LRU policy implemented using a heap
例如:
|
下面設定ACL訪問控制列表:為了簡單起見,我們在這里開放所有的權限。ACL分為兩個部分:ACL定義部分,和http_access部分。在access_http部分用到前面的定義。前面定義了:
|
我們注釋掉所有的http_access行加一句:
http_access allow all ---注意:all是前面acl定義的。
這樣就開放了所有的權限。以后有需要的,再繼續(xù)往上加各種限制即可。
9、以root身份創(chuàng)建組nogroup :
|
10、進行目錄/usr/local ,以root身份執(zhí)行下面的命令,改變整個Squid目錄的所有者為nobody.nogroup
|
11、su 作為nobody,進行/usr/local/squid/bin目錄,執(zhí)行#squid -z 創(chuàng)建cache交換目錄
|
12、成功后,測試一下:/usr/local/squid/bin/squid -NCd1 該命令正式啟動Squid。如果一切正常,你會看到一行輸出 :Ready to serve requests.
13、用ctrl-c退出前臺測試。
14、把squid作為守護進程啟動就直接運行:/usr/local/squid/bin/squid
15、檢查狀態(tài)用squid –k check
16、停止squid用squid -k shutdown
如果是配置基本的正向代理,上面的已經(jīng)可以使用了。下面的步驟用于配置支持多域名的反向代理服務器。還好,SQUID的所有配置都在/usr/local/squid/etc下面,和反向代理有關的幾項介紹如下:
17、http_port 80 “http_port”參數(shù)指定Squid監(jiān)聽瀏覽器客戶請求的端口號。
18、icp_port 0 “icp_port”參數(shù)指定Squid從鄰居(neighbour)服務器緩沖內(nèi)發(fā)送和接收ICP請求的端口號。這里設置為0是因為這里配置Squid為內(nèi)部Web服務器的加速器,所以不需要使用鄰居服務器的緩沖。
19、emulate_httpd_log on 打開“emulate_httpd_log”選項,將使Squid仿照Web服務器的格式創(chuàng)建訪問記錄。如果希望使用Web訪問記錄分析程序,就需要設置這個參數(shù)。
20、redirect_rewrites_host_header off 缺省地,Squid將改寫任何重定向請求的主機頭部。若系統(tǒng)運行Squid為加速器模式,則這時不需要重定向特性。該參數(shù)在負載過重的情況下要旁路重定向器時才打開
21、httpd_accel_host vartual 此處設置反向代理的主機名,如果對后面多個域名進行緩沖,請使用虛擬主機模式(如此)。
22、httpd_accel_port 80 此處設置反向代理的WEB服務端口號。
23、#httpd_accel_with_proxy off 把這行注釋掉,此處設置開反向代理的同時,是否開普通代理緩存服務。如果這行不注釋掉,就沒有高速緩存功能。
24、定義訪問控制列表:
|
25、完成后,用squid –k reconfigure重新裝載配置文件。
(9)安裝SSH
---
(10)配置linux為路由器
---
(11)配置Linux網(wǎng)關和安裝ipchains/iptables防火墻
在Linux上面的防火墻,最最常用的是ipchains,而且通常情況下是作為網(wǎng)關的附加部分安裝的。Ipchains的規(guī)則是很復雜的,靈活性也很強,可以配制成各種五花八門的樣子。這些都需要和你自己的實際情況相結合。這里,我們只介紹一種基于網(wǎng)關的簡單配置。
安裝IPCHAINS一般都不用你操心,因為幾乎所有的Linux發(fā)行包都把該軟件作為必須安裝的卻省配置。另一個原因是ipchains是跟內(nèi)核(kernel)有很大的關系,因此最好在安裝系統(tǒng)的時候選上相關選項(如果有)。在標題里面我們還提到了iptables,這個工具在表面上等同于ipchains,只不過是用于2.4內(nèi)核的(2.4內(nèi)核在這方面的代碼幾乎是重新寫過的,功能有了長足的提高)。關于iptables工具的配置我們在后面介紹。你只需要記住2.2核心下使用ipchains,2.4核心下使用iptables即可。
首先,你的服務器需要兩塊網(wǎng)卡(或更多),這種機器叫做“多宿主主機”,是專門的用于做網(wǎng)關或路由器的。這里插一句:一般情況下,作為普通服務器的主機即使負載再重就需要一塊網(wǎng)卡就夠了,只有做網(wǎng)關或路由器的時候才需要多宿主主機。這并不象一般人認為得那樣增加一塊網(wǎng)卡可以增加一份帶寬,事實上,一塊網(wǎng)卡就可以提供足夠的帶寬。并且,還有人錯誤的把兩塊網(wǎng)卡接在同一個交換機上分配兩個地址,這更是錯誤的,因為這樣產(chǎn)生了額外的循環(huán)路由,會產(chǎn)生大量的內(nèi)部警告錯誤,某些系統(tǒng)就會報警。
1、制作一個雙界面(雙宿主)的主機。
通常,現(xiàn)在的發(fā)行包的安裝程序都可以識別兩塊網(wǎng)卡,這樣就省事了。但是也有不少發(fā)行包只識別第一塊網(wǎng)卡(也許是出于前面說的原因),或者你要在一臺在用的機器上加一塊網(wǎng)卡(因為你不愿意重裝系統(tǒng)),那么就按照下面的辦法處理。
1.1、我們就說PCI網(wǎng)卡。安裝前首先看看網(wǎng)卡芯片,記住芯片的型號(希望你自己攢過機器)。
1.2、安裝MAN手冊(用發(fā)行包)
1.3、在/usr/doc/HOWTO/english/txt/Ethernet-HOWTO文件(如果是壓縮的就釋放)中搜索你的網(wǎng)卡型號,找到對應的驅動模塊名稱。
1.4、如果模塊沒有,還需要重新編譯核心。在menuconfig網(wǎng)絡設備一欄選中你的型號然后標記為*或M,編譯完核心后別忘了編譯模塊:make modules;make modules_install。(不會的話再仔細溫習一下前面編譯內(nèi)核的部分)
1.5、用depmod –a命令建立/etc/modules.conf(如果已經(jīng)有就不用了),也有的發(fā)行包叫做conf.modules
1.6、編輯該文件加上一行:alias eth1 XXXX,其中XXXX是你剛才查到的模塊名稱。一般該模塊文件位于:/lib/modules/內(nèi)核版本號/net…中的XXXX.o文件。這個文件是你編譯內(nèi)核模塊的時候產(chǎn)生的,你在內(nèi)核配置的時候,凡是標記為M的都會被編譯成.o文件放在這里。同樣的,你選擇的網(wǎng)卡驅動也是會編譯成模塊在這里的。
1.7、運行modprobe eth1使模塊有效。
1.8、修改/etc/sysconfig/network文件中需要修改的部分。
1.9、建立或修改/etc/sysconfig/network-script/ifcfg-eth1文件(照抄那個eth0的即可),設定地址是你的真實情況,比如設為eth1要接的網(wǎng)段。這兩個文件(eth0/eth1是啟動的時候的腳本參數(shù)文件)
1.10、重新啟動一下網(wǎng)絡:/etc/rc.d/init.d/network restart
1.11、用ifconfig看看是否eth0/eth1都啟動了。
1.12、大功告成
2、調整和編譯核心:如果作為網(wǎng)關,有些核心選項需要配置。注意:這里的內(nèi)核編譯選項僅僅適合于2.2.X版本,2.4版本完全不同。
2.1、在/usr/src/linux中運行make menuconfig配置核心下列選項:
|
具體選項不同版本的內(nèi)核不盡相同,你看著差不多就可以了。編譯成模塊
2.2、按照前面說的編譯內(nèi)核,重新啟動后就具有網(wǎng)關功能了。啟動后驗證一下文件:/proc/sys/net/ipv4/ip_forward內(nèi)容是否為1。(別告訴我不知道怎么看8-))
3、設置ipchains
本來這項工作是非常復雜的,但是我們這里講的簡單,讓網(wǎng)關通了就行。
3.1、先看一下目前我們目前的假想環(huán)境:你的機器有兩塊網(wǎng)卡,一塊連接在內(nèi)網(wǎng)交換機配內(nèi)部網(wǎng)絡地址,另一塊在外網(wǎng)交換機配公網(wǎng)地址。在這個機器ping 內(nèi)網(wǎng)和外網(wǎng)的機器應該都能通。并且在內(nèi)網(wǎng)的機器ping 該機器的外網(wǎng)地址也通,在外網(wǎng)的機器ping該機器內(nèi)網(wǎng)的地址也同樣通。這說明轉發(fā)功能是有效的。
3.2、再試驗一下:在內(nèi)部網(wǎng)絡把網(wǎng)關設為你的機器的內(nèi)網(wǎng)地址,然后ping 外網(wǎng)的任一臺機器(不是這臺機器的外網(wǎng)地址),結果是不通。原因是ICMP包發(fā)出去后外網(wǎng)的機器不知道怎么回答,那里沒有合適的路由,因為這個包的回應地址是內(nèi)網(wǎng)。
3.3、現(xiàn)在設置ipchains:(ipchains軟件適用2.2.X的內(nèi)核,在2.4.X的內(nèi)核中不適用。2.4.X的內(nèi)核推薦使用iptables,關于該軟件的用法在下面介紹)
|
黑體部分是內(nèi)網(wǎng)地址。這句話的意思是,把所有內(nèi)網(wǎng)發(fā)送的包都偽裝成外部網(wǎng)的地址(那個機器的外網(wǎng)地址),這樣,外部其他機器回應的時候就會發(fā)送到這臺機器,經(jīng)過轉發(fā)就回來內(nèi)網(wǎng)了。好了,一個簡單的網(wǎng)關做好了。如果你需要實現(xiàn)防火墻(包過濾功能),則需要配置更加復雜的過濾規(guī)則,這些規(guī)則應該同時作用于input/output/forward鏈。
3.4、自動啟動:設定了復雜的鏈,需要保存。在/etc/rc.d中建立一個文件:rc.ipfwadm把你的鏈腳本加進去就可以了。最后給這個文件+x屬性(chmod +x rc.ipfwadm)。
4.在2.4.X內(nèi)核中使用iptables建立Linux防火墻(網(wǎng)關)。
4.1 說明和下載
前面已經(jīng)提到過2.4 內(nèi)核中要使用iptables來做類似于ipchains在2.2內(nèi)核中實現(xiàn)的事情。事實上,在2.4內(nèi)核中的iptables包含了兩個完全不同的部分:包過濾和地址轉換。這兩個功能在邏輯上是分開的,考慮到操作習慣上的問題才集成在一個配置程序(iptables)上。如果你安裝了帶有2.4內(nèi)核的發(fā)行包,那么一般都帶有iptables,并且在內(nèi)核配置上也配置好了。如果要編譯新的內(nèi)核或者原來的內(nèi)核沒有支持iptables,需要選上相關的選項。使用make menuconfig 配置內(nèi)核的時候操作:進入:Networking Options至少選擇上:
|
逐級返回上面菜單后保存配置,然后按照編譯內(nèi)核的那一套程序進行即可(參見前面的內(nèi)容)。這里需要說明的是,內(nèi)核支持了iptables功能,還需要有外部程序才行。如果你是直接安裝的帶有2.4內(nèi)核的發(fā)行包,應該已經(jīng)帶有iptables實用程序了。但是如果你是從2.2核心的發(fā)行包直接升級到2.4內(nèi)核,盡管按照上面的做法配置的核心,但是還不能使用iptables。還必須下載和編譯iptables外部程序才能使用iptables功能。下載的地址是:http://www.netfilter.org ,下載的文件是iptables-1.2.6a.tar.bz2或更新的版本。
4.2 安裝:
這個.bz2文件比較奇怪吧?把文件復制到/usr/local/src中,然后用下列命令釋放編譯和安裝: bzip2 -dc iptables-1.1.2.tar.bz2 |tar vxf - (最后那個‘- ’別忘了)
你的系統(tǒng)可能沒有bzip2工具,如果沒有,你就去下一個:
進入新生成的目錄 :cd iptables-1.2.6a 編譯和安裝:make ; make install
4.3 配置
如果你需要配置一個簡單的網(wǎng)關,你僅僅需要配置一個轉發(fā)加地址轉換功能即可,我提供的參考腳本如下:
|
其中3行modprobe是當你在內(nèi)核中把iptables相關功能編譯成模塊(選成
好了,要配置出更靈活的、更強大的防火墻功能,全靠你自己了。我推薦你兩個手冊:《Linux 2.4 Packet Filter HOWTO》和《Linux 2.4 NAT HOWTO》。這兩個文檔是iptables的原作者寫的,相當經(jīng)典。英文不好?沒關系,這兩個文檔都有中文版本。推薦你到:永遠的UNIX(http://www.fanqiang.com)下載。
新聞熱點
疑難解答
圖片精選