實驗一:安裝
1、從http://www.netfilter.org/downloads.html#iptables-1.2.9下載最新的iptables源代碼包,當前是iptables-1.2.9.tar.bz,下載后保存到/usr/local/src目錄。
2、進入/usr/local/src目錄,解開壓縮包,進入iptables源代碼目錄,
#cd /usr/local/src
#bunzip2 iptables-1.2.9.tar.bz
#tar xf iptables-1.2.9.tar
#cd iptables-1.2.9
3、使用下面蝗命令編譯和安裝iptables源代碼軟件包
#make PREFIX=/usr
#make PREFIX=/usr install
注:使用PREFIX=/usr參數指定iptables安裝相關的文件時以/usr目錄為最上層目錄,而不是默認的/usr/local,如iptables的文件會安裝在/usr/sbin,/usr/lib,/usr/man等目錄中,使用ls 命令查看這些目錄,能夠發現iptabels相關的可執行文件和庫文件,
4、安裝完成,使用默認安裝的iptables命令和新安裝的iptables命令,比較查看版本信息
#/sbin/iptables –v
5、為了使用新安裝的iptables工具,需要停掉系統啟動時執行的iptabels命令,把防火墻啟動腳本從系統啟動隊列中去掉,
#chkconfig –level 2345 iptables off
#chkconfig –list iptables
然后用reboot重新啟動系統。
實驗二:用iptables設置本機拒絕按特定類型的連接
使用最新安裝的iptables工具設置本機的防火墻。使本地防火墻能夠拒絕外部對本機的telnet.ftp的連接。
1、繼續上面的實驗,重啟后,以root用戶登錄。使用iptables命令查看當前的防火墻,顯示沒有防火墻設置,
#/usr/sbin/iptables –L
2、使用/etc/rc.d/init.d/vsftp腳本啟動vsftp服務器
#/etc/rc.d/init.d/vsftp start
3、在局域網中的他客戶端連接ftp服務器。顯示連接成功!
如不成功!需他細檢查以上的每一步驟是否正確。
4、使用vi命令編輯/etc/xinetd.d/telnet配置文件。將其中的“disable = yes” 更改為“disable = no”。存盤退出。重啟服務。
#/etc/rc.d/init.d/xinetd restart
在另一臺機中訪問本機的telnet服務,顯示連接成功。
如不成功!需他細檢查以上的每一步驟是否正確
5、使用下面的iptalbes命令設置禁止外部的telnet連接
#/usr/sbin/iptables –A INPUT –P tcp –dport telnet -j DROP
6、設置完成后,使用iptables的“-L”選項查看防火墻設置,能夠看到上面設置的防火墻規則在INPUT鏈中
#iptables –L
7、使用上現步驟中連接的外部主機telnet到本機,顯示連接被拒絕,
但使用ftp連接。外部連接仍然有效。
8、使用同樣的方法。設置拒絕FTP連接的防火墻規則
#/usr/sbin/iptables –A INPUT -p tcp ——dport ftp -j DROP
使用iptables命令查看防火墻,顯示剛才設置的防火墻規則已經被登記。
#iptables –L
9、使用iptables命令選項“-F”清除所有防火墻規則
#iptables –F
#iptables –L
實驗三:安裝squid
下載最新的squid源代碼。然后編譯安裝。并檢查安裝的文件夾。
1、從http://www.squid-cache.org/versions/v2/2.5/下載squid源碼,并把它保存在/usr/local/src目錄。
#cd /usr/local/src
#tar xzf squid-2.5STABLE5.tar.gz
#cd squid-2.5.STABLE5
#./configure –prefix=/usr/local/squid
#make
#make install
2、進入/usr/local/squid目錄。使用squid命令查看版本信息
#cd /usr/local/squid
#./sbin/squid –v
3、由于squid將配置為以非root身份運行。一般是Squid用戶,如果系統在安裝時選擇了代理服務器。 一般是squid用戶.如果系統在安裝時選擇了代理服務器,則會默認添加squid用戶和用戶組,如果系統中沒有該用戶和組,使用下面的命令既可同時添加squid用戶和組,
#sueradd squid
安裝完成.
實驗四:配置squid實現正向和反向緩存代理
將使用最新安裝的squid服務器,配置在局域 網中代理緩存其他客戶端的www瀏覽請求,即正向緩相存代理,然后 啟動本機的Apache服務器,并配置squed反向緩存局域網中對這個www服務器的訪問請求,
1、上面步驟安裝的squid服務器的配置文件在/usr/local/squid/etc/目錄中,使用vi命令修改編輯squid.conf配置文件,
去掉cache_mem前的注釋號,修改緩沖內存的大小,一般為主機內存的確1/3,這里設置為96M,
2、設置cache_dir。即緩存數據的保存目錄。在此接受默認設置,
3、去掉cache_effective_user前面的注釋號,并修改其值為squid用戶。添加cache_dffetcive_group squid項,設置緩存數據的存取用戶,
cache_effective_user squid
cache_effective_group squid
4、去除http_access配置項前面的注釋號,改變其設置為“allow all”,即允許任意客戶端訪問;
改變/usr/local/squid目錄的所有者為squid用戶和組,以便squid用戶能夠對該目錄進行打操作,
# chown –R squid.squid /usr/local/squid
5、使用squid –z 命令初如化緩存目錄,
#./sbin/squid –z
6、啟動squid后臺服務進程。使用“-D”參數避免squid服務器進行ip地址到域名的反查,
#/usr/local/squid/sbin/squid –D
7、用PS查看squid啟動進程信息。包括兩個squid進程,一個unlinked進程
正向代理服務器啟動完成,局域網中用戶可以在瀏覽呂中設置代理服務器該服務器的地址,端口默認的3128。
8、驗證完成后,使用squid命令關閉代理服務器,開始配置反向代理服務器,
#/usr/local/squid/sbin/squid –k shutdown
9、反向代理,須在系統中設置障礙Apache服務器,使用VI修改/etc/httpd/conf/httpd.conf文件,更改服務器在80端口監聽http請求。以使squid能夠在3128端口監聽客戶端的http請求。并為客戶端提代理,要修改配置文件夾下面的項目:
listen 80
servername 192.168.0.6
存盤退出。然后用/etc/rc.d/init.d/apachectl腳本啟動Apache服務器,并用ps查看。啟動的進程。
#/etc/rc.d/init.d/apachect1 start
#ps –ax | grep httpd
10、使用vi命令修改/usr/local/squid/etc/squid.conf,把下面的選項更改為后面所列的值,并去掉配置項前面的注釋號,
http_port 3128
#指定squid監聽瀏覽器客戶請求的端口號
icp_port 0
#指定squid從鄰居(neighbour)服務器緩沖內發送和接收ICP請求的端口號,這里設置為0,是因為配置squid為內部WEB服務器的加速器,所以不需要使用鄰居服務器的緩沖。
#emulate_httpd_log on
#使Squid仿照web服務器的格式創建訪問記錄。
Redirect_rewrites_host_header off
#因squid運行為加速器模式,不需要重定向特性,
httpd_accel_port 80
因為本機的WWW服務器在80端口監聽,所以配置squid連接服務器的80端口來從Apache獲取文件。
11、設置完畢后:存盤退出。然后啟動squid代理。則開始為apache服務提供反向代理服務。
#/usr/local/squid/sbin/squid –D
12、局域網內,用戶無需再去設置瀏覽器的代理選項,直接使用瀏覽器訪問192.168.0.6的地址,瀏覽器會訪問服務器的3128端口,即代理服務器監聽的端口,然后,代理服務器接收客戶端的請求,查找本地緩存中是否存在請求的數據,如果有,則直接向客戶端返回,如果沒有。則通過80端口向Apache服務器請求,對apache返回的數據首先保存中。然后客戶端返回請求數據。
|