[RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置
生活随笔
收集整理的這篇文章主要介紹了
[RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
企業(yè)環(huán)境 公司搭建一臺代理服務(wù)器,需要提高內(nèi)網(wǎng)訪問互聯(lián)網(wǎng)速度并能夠?qū)?nèi)部員工的上網(wǎng)行為進(jìn)行限制,采用squid代理服務(wù)器軟件,對內(nèi)部網(wǎng)絡(luò)進(jìn)行優(yōu)化。 需求分析 提高用戶訪問速度,需要對squid服務(wù)器進(jìn)行優(yōu)化并且需要使用acl對訪問行為進(jìn)行相應(yīng)限制。 解決方案 1、路由及NAT設(shè)置 設(shè)置網(wǎng)卡IP地址 eth0:192.168.8.188 netmask:255.255.255.0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 eth1:dhcp獲取 vim /etc/sysconfig/network-scripts/ifcfg-eth1 開啟內(nèi)核路由功能 echo 1?> /proc/sys/net/ipv4/ip_forward 配置iptables設(shè)定nat,即透明代理 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 如果只設(shè)置下面一句而上面一句不設(shè)置,客戶端也可以上網(wǎng),只是不通過squid哈~ iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 保存iptables設(shè)置 service iptables save 2、修改selinux設(shè)置 setsebool -P squid_disable_trans on 注意: 如果配置squid透明代理,要開啟selinux的squid_disable_trans,否則squid不能啟動哈~ ? 3、添加squid系統(tǒng)用戶和組 [root@rhel5 ~]# groupadd squidadmin
[root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin 4、建立相應(yīng)目錄 [root@rhel5 ~]# mkdir /usr/local/squid
[root@rhel5 ~]# mkdir /usr/local/squid/cache
[root@rhel5 ~]# mkdir /usr/local/squid/var
[root@rhel5 ~]# mkdir /usr/local/squid/var/logs
5、改變目錄的所有者 為了保證服務(wù)正常啟動并可以寫入緩存、日志等信息,我們更改目錄所有者為squidadmin哈~ [root@rhel5 ~]# chown -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/var/logs
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/var/logs 6、修改squid配置文件 vim /etc/squid/squid.conf 設(shè)置監(jiān)聽地址和端口 http_port 3128 transparent 紅色部分是支持透明代理,這是squid新版本的改進(jìn) 注意: 好多資料說透明代理設(shè)置為 httpd_accel_host virtual
httpd_accel_port 80??
httpd_accel_with_proxy on
httpd_accel_uses_host_header on 實際上透明代理只是在普通代理的基礎(chǔ)上加上了http_port 3128 transparent及IPTABLES的端口轉(zhuǎn)發(fā)功能,使用Iptables或者Ipchains實現(xiàn),即把用戶對外部www站點的訪問轉(zhuǎn)到Squid的端口上去,相對用用戶來講是“透明”的,不需在瀏覽器中指明代理服務(wù)器的IP和端口。 而對于反向代理來說,從squid2.6開始squid.conf已經(jīng)沒有httpd_accel字段了哈~Squid 2.6與3.0一樣哈~相對于2.5的accel模式下配置要簡單許多,只要設(shè)置不同的后端,cache_peer parent originserver就可以進(jìn)行反向代理,而不再需要httpd_accel系列參數(shù)的配置.配置squid時最好制定內(nèi)部dns,或者修改/etc/hosts文件,否則squid可能會回環(huán)訪問其自身而出現(xiàn)問題哈~ udp_incoming_address 0.0.0.0 設(shè)置squid內(nèi)存大小及cahce目錄 cache_mem 512 MB cache_dir ufs /usr/local/squid/cache 10240 16 256 設(shè)置日志文件和pid文件位置 access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none emulate_httpd_log on 使Squid按照Web服務(wù)器的格式創(chuàng)建訪問記錄,Web訪問記錄分析程序,就需要設(shè)置這個參數(shù) pid_filename /usr/local/squid/var/logs/squid.pid ? 配置訪問控制 acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.8.0/255.255.255.0 http_access allow mynet
http_access deny all 設(shè)置運行時的用戶和組權(quán)限 設(shè)置squid進(jìn)程所有者 cache_effective_user squidadmin 設(shè)置squid進(jìn)程所屬組 cache_effective_group squidadmin 設(shè)置管理信息 設(shè)置squid可見主機名 visible_hostname 192.168.8.188 swap性能微調(diào) half_closed_clients off cache_swap_low 80
cache_swap_high 100 maximum_object_size 1024 KB squid配置邏輯是自上而下,滿足條件即不再和下面匹配。 7、檢查squid.conf配置文件 當(dāng)更改過配置文件后最好驗證一下配置文件:squid -k parse 8、squid服務(wù)初始化 在第一次啟動squid服務(wù)之前,一定要使用squid -z命令來使squid在硬盤緩存中建立cache目錄,或者重新設(shè)置了cache_dir字段的值之后也要使用此命令來重新建立硬盤緩存目錄哈~ 如果我們要觀察此過程,我們可以加個-X參數(shù)哈~ squid -zX 注意:在cache目錄激活后永遠(yuǎn)不要改變L1和L2的值哈~ 9、啟動squid服務(wù) service squid start 10、測試 squid -D檢查squid服務(wù)有沒啟動 客戶端只要設(shè)置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)及DNS就可以直接上網(wǎng)了哈~ 測試http網(wǎng)站 測試https網(wǎng)站 測試郵箱網(wǎng)站 [url]http://ipid.shat.net/[/url],檢測你的代理是否成功哈~~~ ? tail /usr/local/squid/var/logs/access.log 我們會發(fā)現(xiàn)訪問的記錄都在access.log中哈~~~ cat /usr/local/squid/var/logs/cache.log 此外我們還可以使用acl和http_access deny組合來禁止指定IP、指定網(wǎng)段、屏蔽訪問指定網(wǎng)站及指定固定時間上網(wǎng)等等哈~~~ #################Michael分割線####################### ?著作權(quán)歸作者所有:來自51CTO博客作者redking的原創(chuàng)作品,謝絕轉(zhuǎn)載,否則將追究法律責(zé)任 Linux Squid iptables Linux/Unix
[root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin 4、建立相應(yīng)目錄 [root@rhel5 ~]# mkdir /usr/local/squid
[root@rhel5 ~]# mkdir /usr/local/squid/cache
[root@rhel5 ~]# mkdir /usr/local/squid/var
[root@rhel5 ~]# mkdir /usr/local/squid/var/logs
5、改變目錄的所有者 為了保證服務(wù)正常啟動并可以寫入緩存、日志等信息,我們更改目錄所有者為squidadmin哈~ [root@rhel5 ~]# chown -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/var/logs
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/var/logs 6、修改squid配置文件 vim /etc/squid/squid.conf 設(shè)置監(jiān)聽地址和端口 http_port 3128 transparent 紅色部分是支持透明代理,這是squid新版本的改進(jìn) 注意: 好多資料說透明代理設(shè)置為 httpd_accel_host virtual
httpd_accel_port 80??
httpd_accel_with_proxy on
httpd_accel_uses_host_header on 實際上透明代理只是在普通代理的基礎(chǔ)上加上了http_port 3128 transparent及IPTABLES的端口轉(zhuǎn)發(fā)功能,使用Iptables或者Ipchains實現(xiàn),即把用戶對外部www站點的訪問轉(zhuǎn)到Squid的端口上去,相對用用戶來講是“透明”的,不需在瀏覽器中指明代理服務(wù)器的IP和端口。 而對于反向代理來說,從squid2.6開始squid.conf已經(jīng)沒有httpd_accel字段了哈~Squid 2.6與3.0一樣哈~相對于2.5的accel模式下配置要簡單許多,只要設(shè)置不同的后端,cache_peer parent originserver就可以進(jìn)行反向代理,而不再需要httpd_accel系列參數(shù)的配置.配置squid時最好制定內(nèi)部dns,或者修改/etc/hosts文件,否則squid可能會回環(huán)訪問其自身而出現(xiàn)問題哈~ udp_incoming_address 0.0.0.0 設(shè)置squid內(nèi)存大小及cahce目錄 cache_mem 512 MB cache_dir ufs /usr/local/squid/cache 10240 16 256 設(shè)置日志文件和pid文件位置 access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none emulate_httpd_log on 使Squid按照Web服務(wù)器的格式創(chuàng)建訪問記錄,Web訪問記錄分析程序,就需要設(shè)置這個參數(shù) pid_filename /usr/local/squid/var/logs/squid.pid ? 配置訪問控制 acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.8.0/255.255.255.0 http_access allow mynet
http_access deny all 設(shè)置運行時的用戶和組權(quán)限 設(shè)置squid進(jìn)程所有者 cache_effective_user squidadmin 設(shè)置squid進(jìn)程所屬組 cache_effective_group squidadmin 設(shè)置管理信息 設(shè)置squid可見主機名 visible_hostname 192.168.8.188 swap性能微調(diào) half_closed_clients off cache_swap_low 80
cache_swap_high 100 maximum_object_size 1024 KB squid配置邏輯是自上而下,滿足條件即不再和下面匹配。 7、檢查squid.conf配置文件 當(dāng)更改過配置文件后最好驗證一下配置文件:squid -k parse 8、squid服務(wù)初始化 在第一次啟動squid服務(wù)之前,一定要使用squid -z命令來使squid在硬盤緩存中建立cache目錄,或者重新設(shè)置了cache_dir字段的值之后也要使用此命令來重新建立硬盤緩存目錄哈~ 如果我們要觀察此過程,我們可以加個-X參數(shù)哈~ squid -zX 注意:在cache目錄激活后永遠(yuǎn)不要改變L1和L2的值哈~ 9、啟動squid服務(wù) service squid start 10、測試 squid -D檢查squid服務(wù)有沒啟動 客戶端只要設(shè)置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)及DNS就可以直接上網(wǎng)了哈~ 測試http網(wǎng)站 測試https網(wǎng)站 測試郵箱網(wǎng)站 [url]http://ipid.shat.net/[/url],檢測你的代理是否成功哈~~~ ? tail /usr/local/squid/var/logs/access.log 我們會發(fā)現(xiàn)訪問的記錄都在access.log中哈~~~ cat /usr/local/squid/var/logs/cache.log 此外我們還可以使用acl和http_access deny組合來禁止指定IP、指定網(wǎng)段、屏蔽訪問指定網(wǎng)站及指定固定時間上網(wǎng)等等哈~~~ #################Michael分割線####################### ?著作權(quán)歸作者所有:來自51CTO博客作者redking的原創(chuàng)作品,謝絕轉(zhuǎn)載,否則將追究法律責(zé)任 Linux Squid iptables Linux/Unix
4
微博 QQ 微信收藏
上一篇:RHCE課程-RH253Linu... 下一篇:[RHEL5企業(yè)級Linux服務(wù)... redking374篇文章,647W+人氣,51粉絲
關(guān)注轉(zhuǎn)載于:https://blog.51cto.com/redking/146981
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的[RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。