ครับเดี๋ยวจะลองดูครับ ขอบคุณทุกท่านมากครับ
Announcement
Collapse
No announcement yet.
การใช้ pfSense บล๊อก Facebook และอนุญาติให้บาง IP กรุ๊ป,ช่วง IP ให้ใช้ Facebook ได้
Collapse
X
-
Originally posted by skaz- View Postเขียน shell วนลูปเช็ค ip จาก http , https จากนั้นโยน host นั้นเข้า iptables
เช่น
FB=`nslookup www.facebook.com | grep -v \#53| grep -i address | awk {'print $2'}`
for i in $FB
do
$IPTABLES -I INPUT -d $IPFACE -j DROP
done
มันเป็น package ของ local process จึงต้องใช้ input สั่งรันใน cron ทุกๆ 15 นาทีก็จบละ ถ้าจะใส่ลูกเล่นก็เขียนเพิ่มในลูปได้เลยครับเช่นยกเว้นบางไอพีหรือยกเว้นช่วงเวลาก็เขียนดัดแปลงเอาได้ครับ
ดัดแปลงจากของคุณ thaigqsoft ครับ
pfSense จะใช้พื้นฐานของ FreeBSD และบางส่วนของ OpenBSD โดยการใช้ pf และ ipfw (เช่น floating rules) เป็นแกนหลักในการรันกฎไฟร์วอลล์
ส่วน iptables นั้นจะเป็นของ Linux มันเอามาใช้กับ pfSense ไม่ได้เพราะว่ารูปแบบของ Syntax มันต่างกัน แต่ถ้าเอามาใช้โดยการ convert ไปเป็น pf และ ipfw นั้น ยังไม่มีใครทำเครื่องมือขึ้นมาใช้
หรือไม่คุณก็จะต้องไปนั่งแก้ไขระหว่าง iptables กับ pf และ ipfw ที่ละบรรทัด ซึ่งไม่มีใครทำเพราะว่ามันเสียเวลา
ส่วน Shell ของ Linux ที่ใช้กับ iptable ที่คุณว่ามานี้ ผมไม่แน่ใจว่า ณ. ตอนนี้และเวลานี้จะยังสามารถบล็อก facebook ได้ทั้งหมดหรือไม่ (ปิดการใช้ facebook ไปเลย) ซึ่งจะไม่เหมาะสำหรับนำมาใช้ที่เกี่ยวกับการ Block หรือ ไม่ Block ตามช่วงระยะเวลาที่เราต้องการกำหนดได้
ส่วนการใช้ Schedule ใน pfSense ค่าดีฟอลต์เดิมของ Cron มันจะติดตั้งช่วงเวลาไว้ให้แล้วทุก 15 นาที คือ 0, 15, 30, 45 แต่การที่เราติดตั้ง Cron Package เสริมเข้ามา ก็เพื่อใช้เป็นเครื่องมือในการแก้ไขช่วงเวลาที่เป็นค่าดีฟอลต์เดิมไปเป็นช่วงเวลาใหม่ตามที่เราต้องการที่จะกำหนดเท่านั้น
ส่วนการใช้ nslookup www.facebook.com ที่อยู่ใน Shell script ด้านบนที่คุณ post ไว้ มันจะเหมือนกับการใช้ Alias ในการกำหนดชื่อโฮสต์ให้กับ facebook.com หลังจากนั้นก็ไปกำหนด Host Overrides ที่เป็น 127.0.0.1 ตรงที่ส่วนของ Services > DNS Forwarder และก็ทำการกำหนดกฎการ Block การใช้ Facebook ทั้งหมดที่ไฟร์วอลล์
Noppadol S. ButerLast edited by Noppy; 13 Oct 2012, 20:05:55.
Comment
-
Originally posted by Noppy View PostpfSense จะใช้พื้นฐานของ FreeBSD และบางส่วนของ OpenBSD โดยการใช้ pf และ ipfw (เช่น floating rules) เป็นแกนหลักในการรันกฎไฟร์วอลล์
ส่วน iptables นั้นจะเป็นของ Linux มันเอามาใช้กับ pfSense ไม่ได้เพราะว่ารูปแบบของ Syntax มันต่างกัน แต่ถ้าเอามาใช้โดยการ convert ไปเป็น pf และ ipfw นั้น ยังไม่มีใครทำเครื่องมือขึ้นมาใช้
หรือไม่คุณก็จะต้องไปนั่งแก้ไขระหว่าง iptables กับ pf และ ipfw ที่ละบรรทัด ซึ่งไม่มีใครทำเพราะว่ามันเสียเวลา
ส่วน Shell ของ Linux ที่ใช้กับ iptable ที่คุณว่ามานี้ ผมไม่แน่ใจว่า ณ. ตอนนี้และเวลานี้จะยังสามารถบล็อก facebook ได้ทั้งหมดหรือไม่ (ปิดการใช้ facebook ไปเลย) ซึ่งจะไม่เหมาะสำหรับนำมาใช้ที่เกี่ยวกับการ Block หรือ ไม่ Block ตามช่วงระยะเวลาที่เราต้องการกำหนดได้
ส่วนการใช้ Schedule ใน pfSense ค่าดีฟอลต์เดิมของ Cron มันจะติดตั้งช่วงเวลาไว้ให้แล้วทุก 15 นาที คือ 0, 15, 30, 45 แต่การที่เราติดตั้ง Cron Package เสริมเข้ามา ก็เพื่อใช้เป็นเครื่องมือในการแก้ไขช่วงเวลาที่เป็นค่าดีฟอลต์เดิมไปเป็นช่วงเวลาใหม่ตามที่เราต้องการที่จะกำหนดเท่านั้น
ส่วนการใช้ nslookup www.facebook.com ที่อยู่ใน Shell script ด้านบนที่คุณ post ไว้ มันจะเหมือนกับการใช้ Alias ในการกำหนดชื่อโฮสต์ให้กับ facebook.com หลังจากนั้นก็ไปกำหนด Host Overrides ที่เป็น 127.0.0.1 ตรงที่ส่วนของ Services > DNS Forwarder และก็ทำการกำหนดกฎการ Block การใช้ Facebook ทั้งหมดที่ไฟร์วอลล์
timecheck=`date | awk {'print $4'} | cut -d: -f1`
tBLOCK="08"
tALLOW="15"
# เชคเวลาถ้าเท่ากับ 8 โมงให้บลอก facebook
if [ $timecheck == $tBLOCK ]; then
FB=`nslookup www.facebook.com | grep -v \#53| grep -i address | awk {'print $2'}`
for i in $FB
do
$IPTABLES -I INPUT -d $FB -j DROP
done
# ถ้า เวลาเท่ากับบ่าย3โมงให้ปลดบลอก
elif [ $timecheck == $tALLOW ]; then
FB=`nslookup www.facebook.com | grep -v \#53| grep -i address | awk {'print $2'}`
for i in $FB
do
$IPTABLES -I INPUT -d $FB -j ACCEPT
done
fi
ขอบคุณสำหรับคำชี้แนะและความรู้ใหม่ๆครับ ^^
Comment
-
สำหรับคุณ yesindeed
ผมยังสงสัยอยู่ว่าคุณพิมพ์ ไอพีแอดเดรสที่เป็นรูปแบบ CIDR ของ Facebook ที่ใช้กับ Alias ที่ละบรรทัดหรือเปล่าเพราะว่าอาจจะทำให้เกิดการผิดพาดขึ้นได้ระหว่าง ไอพีแอดเดรส กับ ค่าซับเน็ตมาส์ค
ซึ่งใน pfSense จะมีอยู่ Option หนึ่งที่อำนวยความสะดวกไว้ให้ เพียงแค่คุณทำการกอ๊ปปี้ CIDR-Network prefix ของ facebook ทั้งหมด ที่ผม post ไว้ด้านบนที่ผ่านมา แล้วก็เอาไปแปะลงในออ๊ปชั่นพิเศษของ pfSense ต่อจากนั้น คลิก Save เป็นอันว่าจบ และจะไม่มีข้อผิดพลาดที่เกี่ยวกับการพิมพ์ผิดพิมพ์ถูกของไอพีแอดเดรส กับ ค่าซับเน็ตมาส์ค ที่จะเกิดขึ้นด้วย
Noppadol S. ButerLast edited by Noppy; 17 Oct 2012, 20:42:42.
Comment
-
Originally posted by tompisut View Postมี CIDR network ของ youtube บ้างไหมครับ
ถ้าต้องการบล็อก YOUTUBE ด้วย CIDR Network range นั้นจะเป็นการอยากมากเพราะว่า YOUTUBE และ Google จะแชร์หรือใช้โดเมนร่วมกัน
ถ้าจะบล็อกให้อยู่ก็ต้องใช้ CIDR network ของ Google ร่วมด้วย แต่ว่าจะทำให้ใช้ Google ไม่ได้เลย แต่ถ้าต้องการและไม่สนใจเกี่ยวกับ Google ดังนั้นก็ให้ใช้ CIDR Network ข้างล่างนึ้ทดสอบดู ได้ผลยังไงช่วยแจ้งบอกให้ทราบด้วยนะ (ส่วนสำหรับอีกทางหนึ่งคือลองใช้ Squid+SquidGaurd แทน CIDR ดูนะแต่ผมก็ยังไม่ลองเหมือนกัน)
1.0.0.0/24
1.1.1.0/24
1.2.3.0/24
8.8.4.0/24
8.8.8.0/24
8.34.208.0/21
8.34.216.0/21
8.35.192.0/21
8.35.200.0/21
64.15.112.0/20
64.233.160.0/19
64.233.168.0/23
64.233.172.0/24
64.233.173.0/24
64.233.182.0/23
66.102.0.0/20
66.102.2.0/24
66.102.3.0/24
66.102.4.0/24
66.102.10.0/23
66.102.12.0/23
66.249.64.0/19
66.249.66.0/24
66.249.67.0/24
66.249.68.0/24
66.249.69.0/24
66.249.71.0/24
66.249.72.0/24
66.249.73.0/24
66.249.74.0/24
66.249.75.0/24
66.249.76.0/24
66.249.80.0/23
66.249.82.0/24
66.249.88.0/22
66.249.92.0/24
70.32.128.0/19
72.14.192.0/18
72.14.199.0/24
72.14.202.0/23
72.14.204.0/23
72.14.208.0/23
72.14.225.0/24
72.14.226.0/24
72.14.228.0/24
72.14.244.0/23
72.14.252.0/24
74.125.0.0/16
74.125.24.0/24
74.125.25.0/24
74.125.31.0/24
74.125.33.0/24
74.125.36.0/24
74.125.37.0/24
74.125.38.0/23
74.125.42.0/23
74.125.44.0/23
74.125.46.0/23
74.125.52.0/23
74.125.54.0/23
74.125.58.0/24
74.125.62.0/24
74.125.63.0/24
74.125.64.0/23
74.125.70.0/23
74.125.72.0/23
74.125.75.0/24
74.125.76.0/24
74.125.78.0/23
74.125.80.0/23
74.125.90.0/23
74.125.92.0/23
74.125.112.0/23
74.125.114.0/23
74.125.116.0/24
74.125.117.0/24
74.125.118.0/24
74.125.119.0/24
74.125.120.0/24
74.125.121.0/24
74.125.122.0/24
74.125.123.0/24
74.125.125.0/24
74.125.126.0/23
74.125.128.0/24
74.125.129.0/24
74.125.130.0/24
74.125.131.0/24
74.125.132.0/24
74.125.133.0/24
74.125.134.0/24
74.125.135.0/24
74.125.136.0/24
74.125.137.0/24
74.125.138.0/24
74.125.139.0/24
74.125.140.0/24
74.125.141.0/24
74.125.142.0/24
74.125.143.0/24
74.125.146.0/23
74.125.156.0/23
74.125.158.0/23
74.125.176.0/24
74.125.178.0/24
74.125.179.0/24
74.125.181.0/24
74.125.182.0/24
74.125.183.0/24
74.125.184.0/24
74.125.185.0/24
74.125.186.0/24
74.125.187.0/24
74.125.188.0/24
74.125.189.0/24
74.125.191.0/24
74.125.224.0/24
74.125.225.0/24
74.125.226.0/24
74.125.227.0/24
74.125.228.0/24
74.125.229.0/24
74.125.230.0/24
74.125.231.0/24
74.125.232.0/24
74.125.233.0/24
74.125.234.0/24
74.125.235.0/24
74.125.236.0/24
74.125.237.0/24
74.125.238.0/24
74.125.239.0/24
89.207.224.0/21
108.59.80.0/20
108.170.192.0/18
108.177.0.0/17
113.197.105.0/24
142.250.0.0/15
172.217.0.0/16
173.194.0.0/16
173.194.32.0/24
173.194.33.0/24
173.194.34.0/24
173.194.35.0/24
173.194.36.0/24
173.194.37.0/24
173.194.38.0/24
173.194.39.0/24
173.194.41.0/24
173.194.42.0/24
173.194.43.0/24
173.194.44.0/24
173.194.45.0/24
173.194.64.0/24
173.194.65.0/24
173.194.66.0/24
173.194.67.0/24
173.194.68.0/24
173.194.69.0/24
173.194.70.0/24
173.194.71.0/24
173.194.72.0/24
173.194.73.0/24
173.194.74.0/24
173.194.75.0/24
173.194.76.0/24
173.194.77.0/24
173.194.78.0/24
173.194.79.0/24
173.194.96.0/24
173.194.97.0/24
173.194.98.0/24
173.194.99.0/24
173.255.112.0/20
192.178.0.0/15
193.142.125.0/24
199.192.112.0/22
199.223.232.0/21
207.223.160.0/20
208.65.152.0/22
208.117.224.0/19
209.85.128.0/17
209.85.136.0/23
209.85.142.0/23
209.85.144.0/23
209.85.147.0/24
209.85.152.0/23
209.85.168.0/23
209.85.172.0/23
209.85.174.0/23
209.85.194.0/23
209.85.212.0/24
209.85.224.0/19
209.85.224.0/23
209.85.226.0/23
209.85.228.0/23
209.85.230.0/23
209.85.238.0/24
216.58.192.0/19
216.239.32.0/19
216.239.32.0/24
216.239.33.0/24
216.239.34.0/24
216.239.35.0/24
216.239.36.0/24
216.239.38.0/24
216.239.39.0/24
216.239.44.0/23Last edited by Noppy; 17 Oct 2012, 01:09:03.
Comment
-
Originally posted by tompisut View Postขอบคุณมากๆครับผม
Host : www
Domain: youtube.com
IP : 127.0.0.1
Description: Block Youtube
เสร็จแล้วคลิก Save
ต่อจากนั้นให้ทำการเคลียร์ State ของไฟร์วอลล์ ที่ Diagnostics > States > ที่แท็บ Reset States > คลิกที่ปุ่ม Reset.
That's it. then test your youtube with some web browser.
Noppadol S. ButerLast edited by Noppy; 17 Oct 2012, 04:23:21.
Comment
-
Originally posted by Noppy View Postแต่ถ้าจะใช้วิธีง่ายๆในการบล็อก Youtube ก็โดยการใช้ Host Overrides ที่อยู่ในส่วน Services > DNS forwarder หลังจากนั้นที่ส่วนของ Host Overrides ให้ทำการสร้างตามตัวอย่างข้างล่างดู
Host : www
Domain: youtube.com
IP : 127.0.0.1
Description: Block Youtube
เสร็จแล้วคลิก Save
ต่อจากนั้นให้ทำการเคลียร์ State ของไฟร์วอลล์ ที่ Diagnostics > States > ที่แท็บ Reset States > คลิกที่ปุ่ม Reset.
That's it. then test your youtube with some web browser.
Noppadol S. ButerLast edited by Noppy; 19 Oct 2012, 17:16:18.
Comment
-
Originally posted by tompisut View Postมี CIDR network ของ youtube บ้างไหมครับ
Comment
-
Originally posted by Noppy View Postถึง คุณ yesindeed,
Schedule +ไฟร์วอลล์ LAN + Floating rules + Capitve Portal + Local users (ตรงที Local User manager)
ผมทดสอบแล้วได้ผลครับ
แนะนำ
กรณีทดสอบไฟร์วอลล์ที่ใช้กับ Schedule นั้นให้ลองกำหนดช่วงระยะเวลาสั้นๆ เช่น ช่วงระยะเวลาของแต่ละช่วง 15 นาที เพื่อจะได้ไม่ต้องเสียเวลามานั่งสอบทั้งวัน
หลังจากนั้นเมื่อทดสอบได้ผลแล้วจึงค่อยกำหนดช่วงระยะเวลาของ Schedule ที่ต้องการใช้งานจริงๆอีกครั้ง
ขั้นตอนที่คุณจะต้องทำดังนี้
1. สร้าง Schedules ที่ต้องการ
2. สร้างกฎไฟร์วอลล์
ตั้งกฎไฟล์วอลล์ที่แท็บ LAN ตามที่กำหนดไว้ในรูปภาพข้างล่าง
[ATTACH=CONFIG]1974921[/ATTACH]
ตั้งกฎที่แท็บ Floating ตามที่กำหนดไว้ในรูปภาพข้างล่าง
[ATTACH=CONFIG]1974922[/ATTACH]
3. ติดตั้ง Cron
4. แก้ไข Cron จากตรงที่ 0,15,30, 45 ไปเป็นเครื่องหมาย *
5. ลองรีบูต pfSense ดูว่าหลังจากที่ทำการรีบูต pfSense แล้ว ลองดูค่าที่เปลี่ยนแปลงที่เป็นเครื่องหมาย * ยังอยู่เหมือนเดิมหรือเปล่า
6. ที่ Captive Portal ให้คุณเพียงแค่ยกเลิกการตัดเวลาที่คุณกำหนดไว้คือปล่อยว่างไว้ แล้วใช้เฉพาะ Schedule+Firewall LAN+Floating ในการตัดเวลาแทน
7. อ่านหัวข้อที่ผมบอกไว้ว่า "สรุปการทำงานของ Schedule" หลังจากที่เปลี่ยนแปลงค่าที่ Cron
สำหรับ User ที่กำลังเชื่อมต่อกับ facebook อยู่ พอถึงเวลาที่กำหนดไว้ Cron จะใช้เวลาประมาณ 1 หรือ 2 นาทีถัดมาในการตัดเวลาประมาณนั้น
ส่วนที่ facebook อย่างคลิกที่เกี่ยวกับรูปภาพ หรือ Photo album เปล่าเพราะว่ารูปภาพต่างๆมันจะถูกโหลดมาเก็บไว้ที่คุ๊กกี้หรือที่คอมพิวเตอร์ที่ใช้งานอยู่
สำหรับ Facebook คุณไม่จำเป็นต้อง Log out ดังนั้นให้คุณลองคลิกที่แท็บชื่อล็อกอินของคุณดู หรือแท็บ Find friends และแท็บ Home ว่ามีการบล็อก Facebook ได้อยู่หรือไม่
Comment
-
Originally posted by Noppy View Postไม่ทราบว่า คุณ yesindeed ทดสอบการใช้ไฟร์วอลล์กับ Schedule + Block Facebook เป็นบางเวลา ได้ผลเป็นยังไงบ้างครับ
Comment
Comment