<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>〈squid〉彙整頁面 - MIS 的流水年華</title>
	<atom:link href="https://jameschien.mooo.com/wordpress/tag/squid/feed/" rel="self" type="application/rss+xml" />
	<link>https://jameschien.mooo.com/wordpress/tag/squid/</link>
	<description>流水記事</description>
	<lastBuildDate>Fri, 28 Jun 2013 01:47:12 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>使用Squid 3.2 建立Fully Transparent Proxy（TPROXY4.1+）</title>
		<link>https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/</link>
					<comments>https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Fri, 07 Jun 2013 07:14:01 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[tproxy]]></category>
		<category><![CDATA[transparent]]></category>
		<guid isPermaLink="false">http://jameschien.no-ip.biz/wordpress/?p=105</guid>

					<description><![CDATA[<p>環境中有使用NLTM驗證 + IIS7.5的應用服務並且會檢查Client端IP位址. 原來的transpar &#8230; <a href="https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/" class="more-link">閱讀全文 <span class="screen-reader-text">使用Squid 3.2 建立Fully Transparent Proxy（TPROXY4.1+）</span></a></p>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/">使用Squid 3.2 建立Fully Transparent Proxy（TPROXY4.1+）</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></description>
										<content:encoded><![CDATA[<p>環境中有使用NLTM驗證 + IIS7.5的應用服務並且會檢查Client端IP位址. 原來的transparent proxy無法通過檢查, 需改成TPROXYv4.1+ (Fully Transparent Proxy), 如此一來伺服器看到Client的IP才不會是Proxy Server的IP.</p>
<p>安裝過程發現Squid 3.2.0的ntlm支援有問題, IE會不段重複跳出要求使用者輸入帳號密碼, 查了論壇發現該版本有bug, 改成3.2.7就解決了.</p>
<p>&nbsp;</p>
<p>系統：Centos 6.4</p>
<p>軟體：squid-3.2.7,bridge-utils,ebtables,libcap,libecap. Squid網路上都有包好的rpm檔,下載回來裝即可.若自行編譯核心或想自行編譯squid者請參考<a href="http://wiki.squid-cache.org/Features/Tproxy4">http://wiki.squid-cache.org/Features/Tproxy4</a>. 其他package使用yum安裝.</p>
<p>網路架構：IPv4,主機為bridge模式接在gateway後<br />
<img decoding="async" alt="" src="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2013/06/060713_0713_Squid32F1.png" /></p>
<p>軟體設定</p>
<ol>
<li>
<div>將主機設定為Bridge.記得先關閉NetworkManager以免設定衝突<br />
建立 /etc/sysconfig/network-scripts/ifcfg-br0 內容如下</div>
<p style="background: black;"><span style="color: #ffffff;">DEVICE=&#8221;br0&#8243;<br />
NM_CONTROLLED=&#8221;no&#8221;<br />
TYPE=&#8221;Bridge&#8221;<br />
BOOTPROTO=&#8221;none&#8221;<br />
IPADDR=&#8221;10.0.0.2&#8243;<br />
NETMASK=&#8221;255.255.255.0&#8243;<br />
BROADCAST=&#8221;10.0.0.255&#8243;<br />
NETWORK=&#8221;10.0.0.0&#8243;<br />
ONBOOT=&#8221;yes&#8221;<br />
GATEWAY=&#8221;10.0.0.1&#8243;<br />
DNS1=10.0.0.3<br />
DNS2=10.0.0.4<br />
DOMAIN=mydomain.com</span></p>
<div>外部網卡 /etc/sysconfig/network-scripts/ifcfg-eth0 內容如下</div>
<p style="background: black;"><span style="color: #ffffff;">DEVICE=&#8221;eth0&#8243;<br />
NM_CONTROLLED=&#8221;no&#8221;<br />
ONBOOT=&#8221;yes&#8221;<br />
TYPE=&#8221;Ethernet&#8221;<br />
BRIDGE=&#8221;br0&#8243;<br />
</span></p>
<div>內部網卡 /etc/sysconfig/network-scripts/ifcfg-eth1 內容如下</div>
<p style="background: black;"><span style="color: #ffffff;">DEVICE=&#8221;eth1&#8243;<br />
NM_CONTROLLED=&#8221;no&#8221;<br />
ONBOOT=&#8221;yes&#8221;<br />
TYPE=&#8221;Ethernet&#8221;<br />
BRIDGE=&#8221;br0&#8243;</span></p>
<div>設定完成後重新開機或重起network服務.</div>
</li>
<li>
<div>確認 /etc/sysctl.conf的相關設定包含下面幾行</div>
<p style="background: black;"><span style="color: #ffffff;">net.ipv4.ip_forward = 1<br />
net.bridge.bridge-nf-call-ip6tables = 01<br />
net.bridge.bridge-nf-call-iptables = 01<br />
net.bridge.bridge-nf-call-arptables = 01<br />
net.ipv4.conf.default.rp_filter = 01<br />
net.ipv4.conf.all.rp_filter = 01<br />
net.ipv4.conf.eth0.rp_filter = 01<br />
net.ipv4.conf.eth1.rp_filter = 01</span></p>
<div>執行以下指令使設定生效</div>
<p style="background: black;"><span style="color: #ffffff;">[root@centos6 etc]# sysctl –p</span></p>
</li>
<li>
<div>設定iptables及ebtables規則</div>
<p>建立執行檔 /usr/local/bin/tproxy.init</p>
<p style="background: black;"><span style="color: #ffffff;">#!/bin/bash<br />
# IPv4-only<br />
# 在lo介面上建立代號為100的路由表格給iptables比對fwmark<br />
ip -f inet rule add fwmark 1 lookup 100<br />
ip -f inet route add local default dev lo table 100<br />
# 以下是不需要進入squid的例外規則, 例如本機有提供web服務<br />
iptables -t mangle -A PREROUTING -d 127.0.0.1 -p tcp &#8211;dport 80 -j ACCEPT<br />
#加入Divert規則將TCP80埠的流量重導到TCP3129<br />
iptables -t mangle -N DIVERT<br />
iptables -t mangle -A DIVERT -j MARK &#8211;set-mark 1<br />
iptables -t mangle -A DIVERT -j ACCEPT<br />
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT<br />
iptables -t mangle -A PREROUTING -p tcp &#8211;dport 80 -j TPROXY &#8211;tproxy-mark 0x1/0x1 &#8211;on-port 3129<br />
# 將橋接模式的封包移到路由模式<br />
ebtables -t broute -A BROUTING -i eth1 -p ipv4 &#8211;ip-proto tcp &#8211;ip-dport 80 -j redirect &#8211;redirect-target DROP<br />
ebtables -t broute -A BROUTING -i eth0 -p ipv4 &#8211;ip-proto tcp &#8211;ip-sport 80 -j redirect &#8211;redirect-target DROP<br />
</span></p>
<div>賦予執行權限</div>
<p style="background: black;"><span style="color: #ffffff;">[root@centos6 bin]# chmod 755 tproxy.init</span></p>
<div>將上面檔案加入開機程序 /etc/rc.d/rc.local</div>
<p style="background: black;"><span style="color: #ffffff;">#!/bin/sh<br />
#<br />
# This script will be executed *after* all the other init scripts.<br />
# You can put your own initialization stuff in here if you don&#8217;t<br />
# want to do the full Sys V style init stuff.<br />
touch /var/lock/subsys/local<br />
/usr/local/bin/tproxy.init</span></p>
<p style="background: black;">
</li>
<li>
<div>修改squid設定檔 /etc/squid/squid.conf .確認下面2行存在</div>
<p style="background: black;"><span style="color: #ffffff;">#限定IPv4, 避免LOG有錯誤訊息<br />
http_port 0.0.0.0:3128<br />
http_port 0.0.0.0:3129 tproxy</span></p>
<div>重起squid服務.</div>
<p style="background: black;">
</li>
<li>
<div>雖然主機為橋接模式, 但為了讓Squid服務可以運作所以仍需給予伺服IP及相關路由, DNS以存取Web. 另外若使用selinux則另需以下設定：</div>
<p style="background: black;"><span style="color: #ffffff;">setsebool squid_connect_any=yes<br />
setsebool squid_use_tproxy=yes</span></p>
</li>
<li>檢查 /var/log/squid/access.log 若有client的瀏覽紀錄表示squid開始運作.</li>
</ol>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/">使用Squid 3.2 建立Fully Transparent Proxy（TPROXY4.1+）</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jameschien.mooo.com/wordpress/2013/06/07/%e4%bd%bf%e7%94%a8squid-3-2-%e5%bb%ba%e7%ab%8bfully-transparent-proxy%ef%bc%88tproxy4-1%ef%bc%89/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>mysar</title>
		<link>https://jameschien.mooo.com/wordpress/2010/12/31/mysar/</link>
					<comments>https://jameschien.mooo.com/wordpress/2010/12/31/mysar/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Fri, 31 Dec 2010 06:55:47 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[analyzer]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[mysar]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[分析]]></category>
		<guid isPermaLink="false">http://jameschien.no-ip.biz/wordpress/?p=45</guid>

					<description><![CDATA[<p>Squid3 安裝完成後接下來就是LOG分析.目前測試過比較即時的就是squidview跟mysar. squ &#8230; <a href="https://jameschien.mooo.com/wordpress/2010/12/31/mysar/" class="more-link">閱讀全文 <span class="screen-reader-text">mysar</span></a></p>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2010/12/31/mysar/">mysar</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></description>
										<content:encoded><![CDATA[<p>Squid3 安裝完成後接下來就是LOG分析.目前測試過比較即時的就是squidview跟mysar. squidview可在console即時觀看log及簡易統計但無資料庫功能, mysar雖然沒那麼即時但是具有較完整的分析功能. 因此這邊採用mysar做為分析工具. 在經過一段時間統計後發現squid會產生一些欄位不全的LOG, 以至於欄位錯亂. 官網開發幾乎停滯, 目前原作者才剛找到別的開發者接手, 暫時只好用三腳貓的工夫自己改, 加上內部有使用AD網域順便增加部門欄位, 讓importer連到AD取得電腦所屬的組織單位(OU)當作部門, 當然也可以自行在網頁上修改, 不過只能一台台修改就是. 另外加上中文體的樣版, 資料庫也改為UTF-8.</p>
<p><a href="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/12/mysar.jpg"><img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-47" title="mysar" src="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/12/mysar-300x277.jpg" alt="" width="300" height="277" srcset="https://jameschien.mooo.com/wordpress/wp-content/uploads/2010/12/mysar-300x277.jpg 300w, https://jameschien.mooo.com/wordpress/wp-content/uploads/2010/12/mysar.jpg 899w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Mysar 2.1.4 jccc修改版. 修改內容</p>
<ol>
<li>新增&#8221;部門&#8221;欄位, 可網頁主機資訊增加部門, 或由 myar-resolver.php取得(需有AD環境並開啟功能)</li>
<li>修改mysar-importer.php, 忽略有問題的 squid log 避免欄位錯亂</li>
<li>資料庫改為UTF-8</li>
<li>新增中文樣版並作為預設樣版</li>
</ol>
<p>PS: 資料庫預設語言修改所以只適用新安裝</p>
<p>下載: <a href="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/12/mysar-2.1.4jccc.tar.bz2">mysar-2.1.4jccc.tar.bz2</a></p>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2010/12/31/mysar/">mysar</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jameschien.mooo.com/wordpress/2010/12/31/mysar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Netscreen + Squid (Transparent) + c-icap + ClamAV</title>
		<link>https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/</link>
					<comments>https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/#respond</comments>
		
		<dc:creator><![CDATA[James]]></dc:creator>
		<pubDate>Wed, 03 Nov 2010 09:24:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[防火牆]]></category>
		<category><![CDATA[c-icap]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[netscreen]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[transparent]]></category>
		<category><![CDATA[防毒]]></category>
		<guid isPermaLink="false">http://jameschien.no-ip.biz/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/</guid>

					<description><![CDATA[<p>架構圖： 目的： 原始流往網際網路的WEB流量經過防火牆Netscreen-25重新導向內部的Squid pr &#8230; <a href="https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/" class="more-link">閱讀全文 <span class="screen-reader-text">Netscreen + Squid (Transparent) + c-icap + ClamAV</span></a></p>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/">Netscreen + Squid (Transparent) + c-icap + ClamAV</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></description>
										<content:encoded><![CDATA[<p>架構圖：</p>
<p><a href="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/11/squid.jpg"><img decoding="async" style="display: inline; border: 0px;" title="squid" src="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/11/squid_thumb.jpg" alt="squid" width="450" height="262" border="0" /></a></p>
<p>目的：<br />
原始流往網際網路的WEB流量經過防火牆Netscreen-25重新導向內部的Squid proxy伺服器並提供掃毒需求.</p>
<p>方法：<br />
透通式SQUID可以省去客戶端設定的麻煩, 但需將 TCP 80 流量重新導向. Netscreen 支援兩種導向方式, 介紹如下</p>
<ul>
<li>NAT-DST(DNAT)<br />
NETSCREEN NAT-DST的限制如下(來源：ScreenOS參考指南)<br />
「注意 : 原始目的地IP位址及已轉譯的目的地IP位址必須在相同的安全區內」<br />
由於向外WEB流量在untrust (any), 因此SQUID伺服器也必須在DMZ或有MIP, 且必須允許untrust介面IP流向SQUID位址DMZ/MIP TCP:3128流量. 另外內部流量向untrust的TCP:80封包必須DNAT到SQUID伺服器MIP位址的TCP:3128. 該方式會造成統計SQUID流量時看到的都是防火牆作NAT介面的外部IP, 無法統計實際流量. 原本想把SQUID 內部IP加進untrust-vr, 然後DNAT到內部IP 也是不可行. 此方式可以在舊版ScreenOS(5.4之前)使用.</li>
<li>PBR(Policy Base Routing. Screenos 5.4.0以上支援)<br />
此方法可以直接將特定服務流量到向指定的IP但是不支援PAT, 也就是可以轉寄流量但是不能更改目的埠, 因此需要搭配在SQUID主機上執行IPTABLES以達成目的埠轉換..</li>
</ul>
<p>考量流量分析精確性, Server安全性及架構, 這裡採用PBR以達到cache目的</p>
<ol>
<li>CentOS5主機安裝Squid 3.1<br />
上http://rpm.pbone.net搜尋下載squid3-3.1.8-1.el5.pp.i386.rpm<br />
[root@centos5]# rpm –Uvh squid3-3.1.8-1.el5.pp.i386.rpm<br />
修改 /etc/squid/squid.conf (只列出重點設定)</p>
<p style="background: black;"><span style="color: #ffffff;">#上層伺服器<br />
cache_peer proxy.hinet.net parent 80 0 no-query no-digest no-netdb-exchange</span></p>
<p>#將連到youtube.com要求轉發給上層伺服器<br />
cache_peer_domain proxy.hinet.net .youtube.com</p>
<p>#預設存取設定<br />
acl manager proto cache_object<br />
acl localhost src 127.0.0.1/32 ::1<br />
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1<br />
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network<br />
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network<br />
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network<br />
acl localnet src fc00::/7       # RFC 4193 local private network range<br />
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines</p>
<p># ACL for Youtube<br />
acl youtube dstdomain .youtube.com</p>
<p>acl SSL_ports port 443<br />
acl Safe_ports port 80          # http<br />
acl Safe_ports port 21          # ftp<br />
acl Safe_ports port 443         # https<br />
acl Safe_ports port 70          # gopher<br />
acl Safe_ports port 210         # wais<br />
acl Safe_ports port 1025-65535  # unregistered ports<br />
acl Safe_ports port 280         # http-mgmt<br />
acl Safe_ports port 488         # gss-http<br />
acl Safe_ports port 591         # filemaker<br />
acl Safe_ports port 777         # multiling http<br />
acl CONNECT method CONNECT</p>
<p># 讓Youtube 使用上層, 其餘由squid本身直接存取<br />
never_direct allow youtube<br />
http_access allow manager localhost<br />
http_access deny manager<br />
http_access deny !Safe_ports<br />
http_access deny CONNECT !SSL_ports<br />
http_access allow localnet<br />
http_access allow localhost</p>
<p># ssl代理<br />
ssl_bump deny localhost<br />
ssl_bump allow all<br />
http_access deny all</p>
<p># 透通代理http<br />
http_port 3128 intercept</p>
<p># 透通代理https.基本上不建議在透通模式下啟用.必須置換憑證以解密ssl流量, 因此需要正式憑證, 若使用測試憑證client端會跳出此網站不安全的訊息<br />
https_port 3129 intercept ssl-bump cert=/etc/pki/tls/certs/testcert.pem</p>
<p>hierarchy_stoplist cgi-bin ?</p>
<p># 將儲存區上限改為1gb.<br />
cache_dir ufs /var/cache/squid 1000 16 256<br />
coredump_dir /var/cache/squid<br />
refresh_pattern ^ftp:           1440    20%     10080<br />
refresh_pattern ^gopher:        1440    0%      1440<br />
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0<br />
refresh_pattern .               0       20%     4320</p>
<p>#ICAP設定<br />
icap_enable on<br />
icap_preview_enable on<br />
icap_preview_size 128<br />
icap_send_client_ip on<br />
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav<br />
icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav<br />
adaptation_access service_avi_req allow all<br />
adaptation_access service_avi allow all</p>
<p>#將錯誤顯示頁面設為中文<br />
error_default_language zh-tw</p>
<p>設定開機即啟用服務</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# chkconfig &#8211;add &#8211;level 2345 squid </span></p>
</li>
<li>設定iptables<br />
加入規則</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# iptables -A PREROUTING -i eth0 -p tcp -m tcp -m multiport tcp -d 10.0.0.2 &#8211;dport 80,443 -j ACCEPT<br />
[root@centos5]# iptables -A PREROUTING -i eth0 -p tcp -m tcp ! -d localhost &#8211;dport 80 -j REDIRECT &#8211;to-port 3128<br />
[root@centos5]# iptables -A PREROUTING -i eth0 -p tcp -m tcp ! -d localhost &#8211;dport 443 -j REDIRECT &#8211;to-port 3129 </span></p>
<p>Squid伺服器本身有提供Web服務, 因此第一行需放行目的為本機IP的TCP 80,443封包, 第二行將連往網際網路TCP 80的封包重新導向Squid服務的TCP 3128. 第三行則將連往網際網路TCP 443的封包重新導向Squid服務的TCP 3129.<br />
啟動並儲存規則</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# service iptables start<br />
[root@centos5]# iptables-save &gt; /etc/sysconfig/iptables<br />
[root@centos5]# chkconfig &#8211;add &#8211;level 2345 iptables </span></p>
</li>
<li>設定NetScreen<br />
PBR流程<br />
<a href="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/11/policy.jpg"><img decoding="async" style="display: inline; border: 0px;" title="policy" src="http://jameschien.no-ip.biz/wordpress/wp-content/uploads/2010/11/policy_thumb.jpg" alt="policy" width="406" height="156" border="0" /></a>3-1. 建立兩個acl存取名單. 第一組為來源IP是區域網路封包目標為網際網路網頁存取.第二組則為Squid伺服器本身的網際網路存取, 避免本身連向網路封包變成迴圈. CLI (指令模式)</p>
<p style="background: black;"><span style="color: #ffffff;">set access-list extended 1 src-ip 10.0.0.0/24 dst-port 80-80 protocol tcp entry 1<br />
set access-list extended 1 src-ip 10.0.0.0/24 dst-port 443-443 protocol tcp entry 2<br />
set access-list extended 2 src-ip 10.0.0.2/32 dst-port 80-80 protocol tcp entry 1<br />
set access-list extended 2 src-ip 10.0.0.2/32 dst-port 443-443 protocol tcp entry 2 </span></p>
<p>3-2. 第一組acl加入Http_Traffic群組(match-group), 第二組acl則加入Direct_Http_Traffic群組(match-group). CLI (指令模式)</p>
<p style="background: black;"><span style="color: #ffffff;">set match-group name Direct_Http_Traffic<br />
set match-group Direct_Http_Traffic ext-acl 2 match-entry 1<br />
set match-group name Http_Traffic<br />
set match-group Http_Traffic ext-acl 1 match-entry 1 </span></p>
<p>3-3. Tproxy的執行動作設定為當符合Http_Traffic群組的封包到達時直接送往Squid伺服器(10.0.0.2). Direct_Http則將符合Direct_Http_Traffic群組送往untrust介面(eth3). CLI (指令模式)</p>
<p style="background: black;"><span style="color: #ffffff;">set action-group name Tproxy<br />
set action-group Tproxy next-hop 10.0.0.2 action-entry 1<br />
set action-group name Direct_Http<br />
set action-group Direct_Http next-interface ethernet3 action-entry 1 </span></p>
<p>3-4. 建立政策(policy). 第一個先讓Squid本機連往網際網路, 若為其他客戶端則為順序2, 轉到Squid主機..</p>
<p style="background: black;"><span style="color: #ffffff;">set pbr policy name trust_policy<br />
set pbr policy trust_policy match-group Direct_Http_Traffic action-group Direct_Http 1<br />
set pbr policy trust_policy match-group Http_Traffic action-group Tproxy 2<br />
set pbr trust_policy<br />
exit </span></p>
<p>3-5. 將政策連結到trust介面(eth1).CLI (指令模式)</p>
<p style="background: black;"><span style="color: #ffffff;">set interface ethernet1 pbr trust_policy </span></p>
</li>
<li>安裝Clamav<br />
#搭配MailScanner 因此安裝 Clamd</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# yum install clamav clamav-db clamd </span></p>
</li>
<li>安裝c-icap<br />
上http://rpm.pbone.net搜尋下載c-icap , c-icap-modules的source rpm回來編譯</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# rpmbuild &#8211;rebuild c-icap-0.1.1-1.el5.pp.src.rpm </span></p>
<p>編譯完成後會有多個檔案主要安裝下面幾個<br />
c-icap-0.1.1-1.el5.pp.i386.rpm      # c-icap主程式<br />
c-icap-libs-0.1.1-1.el5.pp.i386.rpm   # library<br />
c-icap-progs-0.1.1-1.el5.pp.i386.rpm  # client程式<br />
c-icap-devel-0.1.1-1.el5.pp.i386.rpm  # 編譯c-icap-modules用<br />
下載的c-icap-modules並無開啟clamv, 需自行修改並編譯</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# rpmbuild -i c-icap-modules-0.1.1-1.el5.pp.src.rpm<br />
[root@centos5]# cd /usr/src/redhat/SPECS </span></p>
<p>更改c-icap-modules.spec檔案, 註釋掉」&#8211;without-clamav」</p>
<p style="background: black;"><span style="color: #ffffff;"> CFLAGS=&#8221;${RPM_OPT_FLAGS} -fno-strict-aliasing&#8221; \<br />
&#8211;enable-shared                                \<br />
&#8211;with-bdb<br />
#       &#8211;without-clamav  # Still not in RedHat/CentOS </span></p>
<p>重編</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# rpmbuild -bb c-icap-modules-0.1.1-1.el5.pp.src.rpm<br />
[root@centos5]# cd ../RPMS/i386<br />
[root@centos5]# rpm –Uvh c-icap-modules-0.1.1-1.el5.rpm </span></p>
<p>修改c-icap server設定 /etc/c-icap/c-icap.conf</p>
<p style="background: black;"><span style="color: #ffffff;">PidFile /var/run/c-icap/c-icap.pid<br />
CommandsSocket /var/run/c-icap/c-icap.ctl<br />
Timeout 300<br />
MaxKeepAliveRequests 100<br />
KeepAliveTimeout 600<br />
StartServers 3<br />
MaxServers 10<br />
MinSpareThreads     10<br />
MaxSpareThreads     20<br />
ThreadsPerChild     10<br />
MaxRequestsPerChild  0<br />
Port 1344<br />
ServerAdmin 你的管理員郵件<br />
ServerName 你的主機名稱<br />
TmpDir /var/tmp<br />
MaxMemObject 131072<br />
DebugLevel 1<br />
ModulesDir /usr/lib/c_icap<br />
ServicesDir /usr/lib/c_icap<br />
TemplateDir /usr/share/c_icap/templates/<br />
TemplateDefaultLanguage en<br />
LoadMagicFile /etc/c-icap/c-icap.magic<br />
RemoteProxyUsers off<br />
RemoteProxyUserHeader X-Authenticated-User<br />
RemoteProxyUserHeaderEncoded on<br />
#本機存取位址<br />
acl localhost src 127.0.0.1/255.255.255.255<br />
#所有位置<br />
acl all src 0.0.0.0/0.0.0.0<br />
#允許本機存取<br />
icap_access allow localhost<br />
#拒絕所有存取<br />
icap_access deny all<br />
#Log檔位置<br />
ServerLog /var/log/c-icap/server.log<br />
AccessLog /var/log/c-icap/access.log<br />
#以下三行設定病毒紀錄檔格式及位置<br />
acl VIRUS icap_resp_header{X-Infection-Found} /Type=.*/<br />
LogFormat viruslog &#8220;%tl, %&gt;a %im %iu %is %{X-Infection-Found}&lt;ih:&#8221;<br />
AccessLog /var/log/c-icap/viruses.log viruslog VIRUS<br />
Service echo srv_echo.so<br />
#開啟clamav模組掃瞄功能<br />
Include srv_clamav.conf </span></p>
<p>修改c-icap-modules設定, 基本上維持預設值即可</p>
<p style="background: black;"><span style="color: #ffffff;">Service antivirus_module srv_clamav.so<br />
ServiceAlias  avscan srv_clamav?allow204=on&amp;sizelimit=off&amp;mode=simple<br />
srv_clamav.ScanFileTypes TEXT DATA EXECUTABLE ARCHIVE GIF JPEG MSOFFICE<br />
srv_clamav.SendPercentData 5<br />
srv_clamav.StartSendPercentDataAfter 2M<br />
srv_clamav.MaxObjectSize  5M<br />
srv_clamav.ClamAvTmpDir /var/tmp<br />
srv_clamav.ClamAvMaxFilesInArchive 0<br />
srv_clamav.ClamAvMaxFileSizeInArchive 100M<br />
srv_clamav.ClamAvMaxRecLevel 5 </span></p>
<p>此rpm所提供的init script以c-icap身份啟動, 經測試無法正常啟動.改以root啟動卻無問題, 因此修改/etc/sysconfig/c-icap</p>
<p style="background: black;"><span style="color: #ffffff;">#改掉下面這行, 將使用者改為root<br />
#RUN_AS=&#8221;c-icap&#8221;<br />
RUN_AS=&#8221;root&#8221; </span></p>
<p>也可以到官網<a href="http://c-icap.sourceforge.net">http://c-icap.sourceforge.net</a> 下載最新0.1.2版自行安裝, 但原始package並未包含init script/syconfig/logrotate檔.<br />
設定開機啟動</p>
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# chkconfig &#8211;add &#8211;level 2345 c-icap </span></p>
</li>
<li>啟動相關服務
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# service c-icap start</span></p>
<p>[root@centos5]# service squid start</li>
<li>測試掃毒功能
<p style="background: black;"><span style="color: #ffffff;">[root@centos5]# c-icap-client -f /path_to_clamav/test/clam.exe -s &#8220;srv_clamav?allow204=on&amp;force=on&amp;sizelimit=off&amp;mode=simple&#8221;<br />
ICAP server:localhost, ip:127.0.0.1, port:1344<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;!&#8211;C-ICAP/0.1.2 srvClamAV module &#8211;&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;H1&gt;VIRUS FOUND&lt;/H1&gt; You try to upload/download a file that contain the virus&lt;br&gt;<br />
ClamAV-Test-File<br />
&lt;p&gt;This message generated by C-ICAP/0.1.2 srvClamAV/antivirus module<br />
&lt;!&#8211; And this is a silly HTML comment just to make this error bigger than 512 bytes<br />
is allowed to be displayed in IE. Yes, IE has a &#8220;feature&#8221; which does not allow<br />
error messages smaller than 512 bytes to be displayed, because they are not considered<br />
&#8220;friendly&#8221; enough.<br />
(Hmm&#8230;I think this stupid comment is better than embedding viruses or porn images in this error message like a bad guy suggested me!)&#8211;&gt; &lt;/body&gt;</span></p>
<p>顯示掃到毒(clamav原始package內附的樣本)</li>
<li>結論：大致上需要的功能皆已完成, Squid部份可以進行校調以增加cache命中率.</li>
</ol>
<p>〈<a href="https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/">Netscreen + Squid (Transparent) + c-icap + ClamAV</a>〉這篇文章最早發佈於《<a href="https://jameschien.mooo.com/wordpress">MIS 的流水年華</a>》。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jameschien.mooo.com/wordpress/2010/11/03/netscreen-squidtransparent-c-icap-clamav/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
