ACL ကိုပဲျပန္ဆက္လိုက္ၾကရေအာင္ .. ပထမအေနနဲ႔ ဒီေနရာေလးမွာေဆြးေႏြးထားခဲ့ပါတယ္။
စလိုက္ရေအာင္ ဒီတစ္ခါ srcdomian, dstdomain, cache_host_domain ဆိုတဲ့ အရာသံုးခုကို ၾကည့္ရေအာင္။ဒီသံုးခုက Domain နဲ႔ပတ္သတ္ျပီးသံုးတာေတြၾကည့္ပါပဲ ။ ဒီေနရာမွာ တစ္ခုသတိထားေစခ်င္တယ္။ domain and subdomain ႏွစ္ခုၾကားကို ေသခ်ာေလး ဂရုစိုက္သင့္တယ္။ ဥပမာေအာက္မွာၾကည့္ပါ
acl ExAmple01 srcdomain mydomain.com
acl ExAmple01 srcdomain .mydomain.com
ဒီနွစ္ခုကို ေသခ်ာေလးၾကည့္ပါ ။ ပထမတစ္ခုမွာက mydomain.com ဆိုျပီးသံုးထားပါတယ္။ဒါဆို squid က သူ႔ကိုဘယ္လိုနားလည္မလည္းဆိုေတာ့ mydomain.com တစ္ခုပဲနားလည္မွာပါ။ ဒုတိယတစ္ခုျဖစ္တဲ့ .mydomain.com ကိုေတာ့ ဘယ္လိုနားလည္မလည္းဆိုေတာ့ www.mydomain.com Or mydomain.com Or mail.mydomain.com Or etc အစရွိသျဖင့္ ဘယ္ေနရာဘယ္ဒိုမိန္းကပဲျ့ဖစ္ပါေစ **.mydomain.com မွန္သမွ်ကို လက္ခံနားလည္ေပးမွာပါ။
dst နဲ႔ dstdomain မွာေတာ့ dst ဆိုတာကေတာ့ သူစစ္ေဆးမႈကိုတစ္ၾကိမ္ပဲျပဳလုပ္ျပိး dstdomain ကေတာ့ မၾကာခဏစစ္ေဆးမႈေတြျပဳလုပ္ေပးမွာပါ။ဒါေၾကာင့္ dstdomain ကိုပဲ အသံုးျပဳဖို အၾကံျပဳထားတာကို squid ဆိုဒ္ေတြမွာ ေတြ႔ျမင္ရမွာပါ။
ident, proxy_auth နဲ႔ပတ္သက္တာေတြကေတာ့
srcdom_regex,
dstdom_regex,
url_regex,
urlpath_regex,
browser,
referer_regex,
ident_regex,
proxy_auth_regex,
req_mime_type,
rep_mime_type
စတာေတြပဲျဖစ္ပါတယ္။
^http:// ဆိုတာကေတာ့ ပံုမွန္အသံုးျပဳေနက် http://. နဲ႔အစျပဳတာေတြကို ဆိုလိုတာပါ။
\.jpg$ ဆိုတာကေတာ့ .jpg ျဖစ္တဲ့ပံုဖိုင္တိုက္ေတြကို ကိုယ္စားျပဳေပးတာပါ။ ဒီေန႔ရာမွာ \ ကိုအပ္ေပးထားပါတယ္။ဘာလို႔လည္းဆိုေတာ့ \ ေနာက္က . က
အေပၚကလိုပဲ အားလံုးအတြက္ကိုယ္စားျပဳမယ့္ wildcard တစ္ခုျဖစ္လို႔ပါပဲ။
နမူနာေတြအေနနဲ႔ကေတာ့
Acls ဆိုတာကေတာ့ squid cache အတြက္ အေရးအပါဆံုးနဲ႔ အခက္ခဲဆံုးအပိုင္းတစ္ခုပါပဲ။ အေျခခံ Configuration ေတြက ကၽြန္ေတာ္တိုစိတ္ထဲအေတြးထဲမွာ ခ်က္ခ်င္းဆိုသလိုေပၚေပၚလာတတ္ပါတယ္ ။ ဒါေပမယ့္ acl ေတြကေတာ့ ကၽြန္ေတာ္တို အသံုးျပဳမယ့္ ေနရာဌာနပတ္၀န္းက်င္ကိုလိုက္ျပီးေျပာင္းလည္းေနတတ္ပါတယ္။ အခုဒီေနရာေလးမွာ ကၽြန္ေတာ္ ေဆြးေႏြးမွာကေတာ့ acl နဲ႔ acl-operator တို႔ကြာျခားခ်က္နဲ႔အသံုးျပဴပံုေလးေတြပါ
Access Class and Operator
ACL (Access Control Lists) မွာ Class and Operator ဆိုျပီးေတာ့ ၂ ပိုင္းရွိပါတယ္။ တစ္ခုျခင္းဆီကၽြန္ေတာ္တို႔ ရွင္းတာေပါ့။
squid server ကိုအင္္စေတာ့လုပ္ျပီး config ျပင္ျပီးတဲ့အေျခအေနတစ္ခုလို႔သက္မွတ္လိုက္မယ္။
ဒီေနရာမွာ နက္၀ါဒ့္တစ္ခုလံုးအတြက္ အိုင္ပီကို 10.0.0.3 ဆိုျပီး သတ္မွတ္ထားခဲ့လိုက္တယ္ဆိုပါေတာ့။
နက္၀ါဒ့္ကေနျပီးေတာ့ squid ကို connect လုပ္မယ္ဆိုရင္ squid က ဘာေတြ စလုပ္မလည္းဆိုေတာ့ HTTP connection ကို request and accept လုပ္မယ္။ http_access ထဲမွာရွိေနတဲ့ အိုင္ပီကိုစစ္ေဆးမႈလုပ္မယ္။ အဲ့ဒီစစ္ေဆးမႈကေန connect လုပ္လာတဲ့အိုင္ပီက http_access အိုင္ပီ တူေနတယ္ဆိုရင္ သူက Allowed လုပ္လိုက္ပါတယ္။ အကယ္လို မတူရင္ေတာ့ Deny လုပ္ေပးလိုက္ပါတယ္။ ဒါသမားရိုးက် အေျခခံအက်ဆံုး သူ႔ရဲ႔လုပ္ေဆာင္မႈပါပဲ
အကယ္လို႔မ်ား 10.0.0.xx နက္၀ါဒ့္မဟုတ္ပဲ တစ္ျခား (ဥပမာ 172.16.x.x.) ကေန၀င္လာမယ္ဆိုရင္ေတာ့ သူက ဘေလာဒ့္လုပ္မွာပါ။ 10.0.0.xx နက္၀ါဒ့္ကေန၀င္လာတာဆိုရင္ေတာ့ ပထမဆံုး Accept မွာတင္ သူက Cache တစ္ခုအေနနဲ႔ တည္ေဆာက္ျပီး သိမ္းထားလိုက္ပါတယ္။ ေနာက္တစ္ေယာက္က ဒီနက္၀ါဒ့္ကေနပဲ အိုင္ပီေနာက္တစ္မ်ိဳးနဲ႔ (10.0.0.22) ၀င္လာလို႔ သူေတာင္းဆိုလာတ့ဲ Accept ကို ခ်က္ျခင္းထုတ္မေပးပဲ ခုနက သိမ္းထားလိုက္တဲ့ cache directory ထဲမွာသြားရွာပါတယ္။ ဒါ SQUID ရဲ႕ Main အခ်က္ပါပဲ။ အဲ့လိုအေနအထားမွာ ဘယ္လိုျဖစ္သြားမလည္း .. ဟုတ္တယ္ .. ျမန္သြားတာေပါ့ ။ ဟို၀င္ဒီထြက္ ေစာင့္ေနစရာမလိုေတာ့ပဲ ရွိျပီးသား cache ထဲကေန ဆြဲယူသံုးခိုင္းလုိက္ေတာ့ နက္ပါဒ့္တစ္ခုလံုး ျမန္ဆန္သြားတာေပါ့ ။ ေနာက္တစ္ခုက အေျခခံ Configuration (squid.conf) ကိုသံုးေနတဲ့အခါမွာ
# And finally deny all other access to this proxy
http_access deny all
ဆိုတာေလးကို သတိမထားမိပဲ ထားခဲ့တတ္ပါတယ္ ။ အဲ့ဒါလံုး၀ သတိျပဳရမွာပါ ။ ဘယ္သူမွဘာမွလုပ္မရေတာ့ေအာင္ျဖစ္ကုန္လိမ့္မယ္။ ဒါ Squid ရဲ႕ အေျခခံလုပ္ေဆာင္မႈေပါ့။ သူ႔ကို acl ေလးေတြထည့္ျပီး အဆင့္ျမင့္တင္မႈေတြလုပ္ရေအာင္။
ခု ACL Lines ေတြကိုဆက္သြားမယ္။
သူ႔အတြက္ ပံုစံက ဒီလိုေလးပါ
acl name type (string|"filename") [string2] [string3] [string3] ["filename2"]
ေနာက္ သူ႔ကို ဘယ္လိုထပ္ျပိးခြဲလိုရေသးလည္းဆိုေတာ့ ေအာက္ကလိုေပါ့ (xD)
ကၽြန္ေတာ္ စာမေရးျဖစ္တာ ေတာ္ေတာ္ေလးၾကာခဲ့ျပီ .. အခ်ိန္ေတြ အမ်ားၾကီး တစ္ေနရာထဲမွာ ကုန္ဆံုးသြားတာ .ခု စိတ္ကိုဒီဘက္ျပန္ပို႔ထားလုိက္ဥိးမယ္ ... စကားမ်ားၾကည့္တာ .. ဘာစလုပ္မလည္း ဆိုေတာ့ Proxy ဆာဗာမွာနာမည္ရတဲ့ Squid ဆိုတာေလးကို စမ္းၾကည့္ရေအာင္ .. ကၽြန္ေတာ္က လင္းနစ္သမားဆိုေတာ့ ISA ကိုမသံုးျဖစ္ပါဘူး ... ဒီေကာင္ေလးကိုပဲ စမ္းတာေပါ့ .. အင္းစေတာ့ေတြ ဘာေတြ ေတာ့ေက်ာ္လုိက္ေတာ့မယ္ ..Configuration ေတြကိုပဲ ေဆြးေႏြးမယ္ဗ်ာ .... စိတ္နဲ့လူနဲ႔မကပ္ျဖစ္ေနတယ္ .. (LilBb ေလးကိုသတိရ လြမ္းေနမိလို႔ ) .. ^_^ ...
ပထမဆံုး မိမိ ဆာဗာအတြက္ Port and IP သတ္မွတ္မယ္ ျပင္မယ့္ေနရာကေတာ့ /etc/squid/squid.conf ဖိုင္ေလးပါ .. ဒီေနရာမွာတစ္ခုမွာခ်င္တာက . လုပ္ေနၾကထံူးစံအတိုင္းပါပဲ ...
ကၽြန္ေတာ္တိုအတြက္ အသက္ကယ္ေပးမယ့္ BackFile ေလးလုပ္တာပါ .... ခု squid.conf ေလးကို backup လုပ္ထားလိုက္ရေအာင္ (လိုအပ္ရင္ျပန္သံုးနိုင္ဖို႔)
#cp /etc/squid/squid.conf /etc/squid/squid.conf.SvP
ကဲ ဒါျပိးျပီဆိုေတာ့ စလုိက္ၾကတာေပါ့ .. အေပၚကေျပာသလိို Port နဲ႔ IP ကို သက္မွတ္ေပးမယ္
http_port 192.168.x.x:8080
icp_port 3130
icp(Internet Cache Protocol) ကေတာ့ တကယ္လုိ႕ Network မွာ multiple proxy ေတြထုိင္ၾကမယ္ ဆုိရင္ေတာ့ အသံုးျပဳပါတယ္။
cache_peer proxy.example.com parent 3128 0 no-query
တကယ္လုိ႕ မိမိ ISP ကယူတဲ့အင္တာနက္ဟာ proxy host and port ထည့္ရတဲ့ parent proxy မ်ိဳးဆိုရင္ အခုလို ထည့္ေပးရပါမယ္။ တကယ္လုိ႕ မိမိအင္တာနက္က တုိက္ရိုက္တန္းသံုးနုိင္တယ္ဆုိရင္ေတာ့ ဒါကုိ disable ေပးထားဖို႕ လိုပါမယ္။ ဒီေနရာမွာ proxy.example.com ေနရာမွာ မိမိ ISP က သတ္မွတ္ေပးထားတဲ့ host ကုိထည့္ရမွာျဖစ္ၿပီး 3128 ကေတာ့ ISP သတ္မွတ္ထားတဲ့ port ေပါ့။ 0 ကေတာ့ icp_port ပါ ။ မိမိက icp_port ကုိ အရင္ကတည္းက ေၾကာ္ျငာခဲ့ရင္ ဒီေနရာမွာ မိမိေၾကာ္ျငာထားသလုိ ထည့္ေပးရပါမယ္။ အေနာက္က no-query , default စသျဖင့္ အမ်ားႀကီးရွိပါတယ္။ေရးရင္ကုန္မွာမဟုတ္ပါဘူး ။ အၾကမ္းဖ်င္းေလာက္အျဖစ္ ဒီေနရာမွာ no-query သတ္္မွတ္ထားလိုက္ပါတယ္။ တကယ္လို႕ username and password ေတာင္းတဲ့အင္တာနက္ဆုိရင္ေတာ့ အခုလို ထည့္ေပးလိုက္ေပါ့။ ဒီလိုေလးျဖစ္မွာေပါ့ ..
cache_peer 172.16.x.x parent 1234 0 login=username:password no-query
အပိုင္း ၂ ကိုေနာက္မွဆက္ေရးေတာ့မယ္ .. လူက စိတ္နဲ႔မကပ္ပဲ ဘာေတြျဖစ္ေနမွန္းကိုမသိေတာ့လို႔ ..
အဆင္ေျပေပ်ာ္ရႊင္ပါေစ ...