


構(gòu)建高性能的Linux雙效防火墻
包過濾和WEB代理雙效合一。由iptables 實(shí)現(xiàn)包的過濾,由Linux下大名鼎鼎的squid結(jié)合NAT來實(shí)現(xiàn)透明WEB代理。SQUID代理的性能本身已經(jīng)是代理服務(wù)器中的佼佼者,本系統(tǒng)將其性能發(fā)揮的極至:通過ramdisk技術(shù),讓SQUID把網(wǎng)頁cahce到內(nèi)存中,這樣,你所訪問的網(wǎng)頁,除了第一次需要到網(wǎng)絡(luò)上取,以后都將來自內(nèi)存!下面介紹如何用Redhat來實(shí)現(xiàn)的方法和步驟。
(1)選擇一臺(tái)比較穩(wěn)定的計(jì)算機(jī),裝上兩塊網(wǎng)卡,256MB或512MB內(nèi)存,硬盤10GB(注意:第一塊網(wǎng)卡接內(nèi)網(wǎng),第二塊網(wǎng)卡接外網(wǎng))。
(2)安裝RedHat,安裝時(shí)選擇服務(wù)器模式,自動(dòng)分區(qū)。
(3)大概在10-15分中后系統(tǒng)安裝完畢,重啟后進(jìn)入系統(tǒng),開始配置系統(tǒng)。
1、開啟包轉(zhuǎn)發(fā)
編輯/etc/sysctl.conf,將net.ipv4.ip_forward=0 該為net.ipv4.ip_forward=1,保存修改。其目的是允許Linux內(nèi)核做IP包的轉(zhuǎn)發(fā):允許IP數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)接口穿越到另一個(gè)網(wǎng)絡(luò)接口,只有這樣,系統(tǒng)才具有充當(dāng)包過濾防火墻的條件。
2、激活RamDisk
修改/etc/grub.conf:
#boot=/dev/sdadefault=0timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztitle RedHat Linux (2.4.7-10) root (hd0,0) kernel /vmlinuz-2.4.7-10 ro root=/dev/sda6 ramdisk=268435 initrd /initrd-2.4.7-10.img<
其中ramdisk=268435 是我們要添加的內(nèi)容,目的是告訴系統(tǒng)默認(rèn)的 ramdisk的大小是268435KB,也就是256MB。注意千萬不可以直接寫256MB,這樣系統(tǒng)是不認(rèn)識(shí)的,必須要換成KB才行!(摸索了好幾個(gè)月的心得!),這樣設(shè)好,重新啟動(dòng)后就系統(tǒng)就回自動(dòng)生成一個(gè)256MB的虛擬盤了。當(dāng)然,你要根據(jù)自己的內(nèi)存大小來設(shè)置這個(gè)參數(shù),如果不運(yùn)行XWINDOWS,設(shè)你總內(nèi)存的一半都沒問題,因?yàn)長inux系統(tǒng)本身并不需要很多內(nèi)存的。
3、設(shè)置squid參數(shù)
編輯/etc/squid/squid.conf,在末尾加入以下條目:
httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header onhttp_access allow allcache_dir ufs /squid 256 16 256<
前面四條參數(shù)使squid提供透明代理提供基礎(chǔ)。“http_access allow all”表示允許所有的客戶機(jī)器都可以訪問代理;這里特別強(qiáng)調(diào)的是最后一條 “cache_dir ufs /squid 256 16 256”,squid默認(rèn)的cache_dir是“/var/spool/squid”,我們因?yàn)橐宻quid將內(nèi)容cache到內(nèi)存中,所以這里先改成/squid,接下來要將ramdisk影射到/squid目錄中。
4、建立ramdisk
用下面的兩條命令來完成:
(1)mkdir /squid 建立目錄“/squid”。
(2)mkfs /dev/ramdisk 創(chuàng)建文件系統(tǒng)。
(3)mount /dev/ramdisk /squid 將ramdisk 掛載到/squid目錄。
由于ramdisk在每次重啟后會(huì)消失,因此,為了讓系統(tǒng)啟動(dòng)時(shí)自動(dòng)建立好,我們可以建立一個(gè)自動(dòng)裝載ramdisk的批命令:
mkfs /dev/ramdiskmount /dev/ramdisk /squid<
將這兩條命令寫到一個(gè)文件中,我們暫且用myautoexec.bat作為文件名,為了方便起見,我們建立/admin目錄,然后將myautoexec.bat文件保存在/admin下,并加給可執(zhí)行的權(quán)限:chmod +x myautoexec.bat。但這樣系統(tǒng)啟動(dòng)時(shí)并不會(huì)被調(diào)用,所以我們還要做一件事:編輯/etc/rc.local 文件,在文件末尾插入一行:/admin/myautoexec.bat,這樣,系統(tǒng)就會(huì)自動(dòng)調(diào)用myautoexec.bat了。
5、初始化squid
還記得“cache_dir ufs /squid 256 16 256”這個(gè)參數(shù)嗎?初始化過程實(shí)際上就是squid在指定的cache_dir中建立指定的一級(jí)目錄(這里是16),然后在每個(gè)一級(jí)目錄中建立256個(gè)二級(jí)目錄。使用的命令是:“squid –z ”。但現(xiàn)在這時(shí)輸入命令系統(tǒng)會(huì)報(bào)告出錯(cuò),因?yàn)?squid現(xiàn)在的屬主是root, squid 沒有權(quán)限操作root的文件,所以還要先把/squid目錄指派給squid用戶,用“chown squid.squid /squid”。再一次運(yùn)行“squid –z ”,不到一秒鐘時(shí)間就可完成。如果這個(gè)過程是在磁盤上而不是在ramdisk上,一般要工作幾十秒鐘。
同樣,這步的設(shè)置也要把:
chown squid.squid /squidsquid –z<
兩條命令寫到myautoexec.bat中,最后加上一條“squid”,就是啟動(dòng)squid服務(wù)進(jìn)程。到這里,squid的設(shè)置全部完成。
6、設(shè)置NAT和防火墻規(guī)則
為了方便起見,建立文件/admin/myfirwall,將規(guī)則都寫到文件中:
#------初始化部分iptables -Fiptables -t nat -Fmodprobe ip_tablesmodprobe iptable_natmodprobe iptable_filtermodprobe ip_conntrack_ftpmodprobe ip_nat_ftpmodprobe ipt_state#——初始化結(jié)束#-START NAT<<<<<讓地址為10.27.0.0/16的內(nèi)部計(jì)算機(jī)可以偽裝上因特網(wǎng)。iptables -t nat -A POSTROUTING -o eth1 -s 10.3.37.0/24 -j MASQUERADE#>>>>>end NAT#端口轉(zhuǎn)換,將所有發(fā)到外網(wǎng)的請(qǐng)求端口為80的都轉(zhuǎn)到3128去,讓squid來處理,這一#--條是透明代理的關(guān)鍵<<<<<<iptables -t nat -A PREROUTING -i eth0 -d ! 10.27.0.0/16 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128#>>>>>>>end 端口轉(zhuǎn)換#防火墻規(guī)則<<<<<<< 這里要根據(jù)你的要求來定了iptables -A INPUT -i eth1 -s 0.0.0.0/0 -p ICMP -j DROPiptables –A INPUT –i eth1 –s 0.0.0.0/0 –p TCP –port ! 80 –j DROP<
以上兩條分別是將所有從外網(wǎng)進(jìn)來的ping包都統(tǒng)統(tǒng)丟棄,將所有由外網(wǎng)發(fā)起的非80端口的請(qǐng)求都統(tǒng)統(tǒng)丟棄,意思就是只不允許從外網(wǎng)向內(nèi)網(wǎng)發(fā)ping ,只允許外網(wǎng)訪問內(nèi)網(wǎng)的HTTP服務(wù)。完整的防火墻規(guī)則要根據(jù)你的網(wǎng)絡(luò)安全要求來制定,這里只做參考。
說明:所有以#開頭的行表示說明,不用寫入文件,保存為/admin/myfirewall,并用“chmod +x /admin/myfirewall”使其可以執(zhí)行。編輯/admin/myautoexec.bat,加入“/admin/myfirewall”在最后一行。到此為止,我們的好性能防火墻全部配置完成,運(yùn)行reboot 重啟后,可以工作了。
關(guān)鍵字:Linux 雙效 防火墻
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解