วิธีการกรองเว็บไม่พึงประสงค์ที่ใช้ผ่าน Squid Proxy โดยใช้โปรแกรม SquidGuard

http://www.itwizard.info/technology/linux/squid_web_filter.html

วิธีการกรองเว็บไม่พึงประสงค์ที่ใช้ผ่าน Squid Proxy โดยใช้โปรแกรม SquidGuard

แนะนำ SquidGuard
squidGuard ทำงานร่วมกับ Squid Proxy เพื่อบล็อคการเข้าถึงไซต์ต่าง ๆ โดยการบล็อคสามารถบล็อคด้วยค่าของ โดเมน IP Address หรือแม้แต่ keyword นอกจากนี้สามารกกำหนดได้ว่าจะบล็อดในช่วงเวลาไหนของแต่ละวันและสามารถกำหนดกลุ่มในการบล็อคได้ แต่ในที่นี้จะเป็นตัวอย่างการบล็อคที่เป็นการบล็อคโดเมน และ URL ครับ

โปรแกรมที่ต้องติดตั้ง
1. Squid
2. BerkeleyDB
3. squidGuard

การติดตั้งและคอนฟิก squid
ดูตัวอย่างการติดตั้งได้จาก http://www.itwizard.info/technology/linux/squid_install_and_config.html

การติดตั้ง BerkeleyDB
ดาวน์โหลดได้จาก http://www.sleepycat.com มาไว้ในตำแหน่งที่เหมาะสม
ในที่นี้ผมดาวโหลดมาติดตั้งไว้ที่ /root (db-4.2.52.tar.gz)
ให้เข้าไปยังตำแหน่งที่ได้ดาวน์โหลดมาแล้วใช้คำสั่งดังนี้

# tar xvfz db-4.2.52.tar.gz
# cd db-4.2.52/dist
# ./configure –prefix=/usr/local/BerkeleyDB สั่ง configure ก่อนที่จะคอมไพล์
# make
# make install ติดตั้ง Berkeley DB library
# echo “/usr/local/BerkeleyDB/lib” >> /etc/ld.so.conf
# ldconfig บรรทัดนี้ถ้าไม่ใส่จะไม่สามารถ compile squidGuard ได้
การติดตั้ง squidGuard
ดาวน์โหลดได้จาก http://www.squidguard.org มาไว้ในตำแหน่งที่เหมาะสม จากนั้นก็ให้เข้าไปยังตำแหน่งที่ดาวน์โหลดมาแล้ว

# tar xvfz squidGuard-1.2.0.tar.gz
# cd squidGuard-1.2.0
#./configure เพื่อจะติดตั้ง squidGuard executable เป็น /usr/local/bin/squidGuard
# make
# make install
การคอนฟิก squidGuard
หลังจากคอมไพล์ squidGuard แล้วก็ต้องทำการสร้างไฟล์ squidGuard.conf ขึ้นมาเองดังนี้

# cd /usr/local/
# mkdir /usr/local/squidGuard
# vi squidGuard.conf เป็นการสร้างไฟล์ config ของ squidGuard โดยเนื่อหาไฟล์สามารถจะเป็นได้หลาย ๆ แบบ
ซึ่งในที่นี้จะขอยกตัวอย่างการคอนฟิกเพื่อบล็อก site ที่ไม่เหมาะสม (Blocking inappropriate sites) ซึ่งจะมีเนื้อหาของไฟล์ดังนี้ :

——————————– start ————————————-
logdir /usr/local/squidGuard/log
dbhome /usr/local/squidGuard/db

dest porn {
domainlist porn/domains
urllist porn/urls
}

acl {
default {
pass !porn all
redirect
http://www.itwizard.info/blocked.php?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&url=%u
}
}
——————————– End ————————————-
อธิบายเพิ่มเติม
เมื่อมีการเรียกใช้งานไปยังเว็บไซต์ที่เราบล็อก ก็จะ redirect ไปยัง url ที่เราได้กำหนดไว้ โดยส่งค่าตัวแปรต่าง ๆ ไปด้วย ดังนี้
- clientaddr
- clientname
- clientuser
- clientgroup
- url
หมายเหตุ
%a เป็น IP ของเครื่อง Client ที่เข้าเว็บนั้น ๆ
%u เป็น url ที่เครื่อง client เรียกใช้งาน

ตัวอย่าง php script file บน Web Server ที่ถูก redirect ไป
echo ”

“;
echo “”;
echo “เว็บนี้ ($url) เป็นเว็บต้องห้าม
“;
echo “This is prohibitive URL ($url)”;
echo “”;
echo ”
“;
?>

สร้างตำแหน่งเก็บ log file และสร้างฐานข้อมูล web ที่ไม่ต้องการให้เรียกใช้งาน

# cd /usr/local/squidGuard/
# mkdir log สร้างตำแหน่งเก็บ log
# mkdir db
# mkdir db/porn สร้างตำแหน่งที่เก็บฐานข้อมูล web
# cd db/porn
# vi domains สร้างไฟล์ที่ใช้เก็บค่าของ domain ที่ถูกบล็อก โดยอาจะมีเนื้อหาดังนี้
porn.com
sex.com

# vi urls # สร้างไฟล์ที่ใช้เก็บค่าของ url ที่ถูกบล็อค โดยอาจจะมีข้อมูลดังนี้
foo.com/~porn
bar.com/img/sex

ความหมายคือเครื่อง Client สามารถเรียกใช้งาน foo.com และ bar.com ได้ (ไม่ได้บล็อคโดเมน) แต่ไม่สามารถเรียกใช้งาน
foo.com/~porn และ bar.com/img/sex ได้ (บล็อค url)
เสร็จแล้วก็สร้างฐานข้อมูลจากไฟล์ domains และ urls ที่ได้เตรียมไว้โดยใช้คำสั่ง

# /usr/local/bin/squidGuard –C all
# chown –R nobody:nobody /usr/local/squidGuard

แก้ไขคอนฟิกของ squid

# vi /usr/local/squid/etc/squid.conf สำหรับการติดตั้ง Squid จากไฟล์ประเภท tar.gz หรือ
# vi /etc/squid/squid.conf สำหรับการติดตั้ง Squid จากไฟล์ประเภท RPM
โดยเพิ่มบรรทัดต่อไปนี้
redirect_program /usr/local/bin/squidGuard
และเอาเครื่องหมาย # หน้าบรรทัดต่อไปนี้ออก
redirect_children 5

สุดท้ายก็ให้ restart squid โดยใช้คำสั่งดังนี้ครับ

# /usr/local/squid/bin/squid –k reconfigure (ท่านอาจจะติดตั้ง squid ไว้ตำแหน่งอื่น ก็ให้ใช้คำสั่งนี้ตรงกับตำแหน่งที่ติดตั้งครับ)
เส็จแล้วก็ลองเข้า www.porn.com หรือ www.sex.com ดูครับ

หมายเหตุ ทุกครั้งที่คุณแก้ไฟล์ไฟล์ domains, urls ต้องทำการเพิ่มเข้าไปในฐานข้อมูทุกครั้งด้วย โดยใช้คำสั่ง :
# /usr/local/bin/squidGuard –C all
# chown –R nobody:nobody /usr/local/squidGuard

หมายเหตุ ชื่อของโดเมนและชื่อ URL (รวมถึง Blacklist อื่น ๆ) ที่เป็นที่ไม่พึงประสงค์สามารถดาวน์โหลดไดจาก
http://www.squidguard.org/blacklist

Share this article: You can download this plugin at e4share.com
  • Zickr
  • Duocore
  • Kudd
  • Lunlala
  • Dunweb
  • Techkr
  • Bogtor
  • Kez6
  • JeedZa
  • Left Hit
  • Siam Collective
  • del.icio.us
  • Digg
  • Google
  • Technorati
  • Thai Health
  • YahooMyWeb
อ่าน :171

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
ส่งบทความให้เพื่อน ส่งบทความให้เพื่อน
หัวข้อที่น่าจะเกี่ยวข้อง
    No related posts

1 Comment so far »

  1. POOM said,

    Wrote on July 13, 2007 @ 3:17 pm

    # ./configure –prefix=/usr/local/BerkeleyDB
    checking build system type… i386-unknown-freebsd4.5
    checking host system type… i386-unknown-freebsd4.5
    checking if building in the top-level or dist directories… yes
    configure: error: Berkeley DB should not be built in the top-level or dist direc
    tories.
    #

    ตอนติดตั้ง BerkeleyDB ของผมขึ้น error อย่างนี้ครับ ไม่ทราบว่าต้องแก้ปัญหายังไง

Comment RSS · TrackBack URI

Leave a Comment

Name: (Required)

E-mail: (Required)

Website:

Comment: