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