Announcement

Collapse
No announcement yet.

การใช้ pfSense บล๊อก Facebook และอนุญาติให้บาง IP กรุ๊ป,ช่วง IP ให้ใช้ Facebook ได้

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    ครับเดี๋ยวจะลองดูครับ ขอบคุณทุกท่านมากครับ

    Comment


    • #47
      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. Buter
      Last edited by Noppy; 13 Oct 2012, 20:05:55.

      Comment


      • #48
        Originally posted by Noppy View Post
        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 ทั้งหมดที่ไฟร์วอลล์
        ออ จริงด้วยครับ ถ้า pfSense มันพัฒนามาจาก freebsd มันไม่เหมือนกันอยู่แล้ว iptables ก็คงจะใช้ไม่ได้ด้วยเช่นกัน ขออภัยด้วยครับ ผมลืมเรื่องนี้ไปสนิทเลย ส่วนการหา ip facebook นั้น ผมใช้ nslookup ในการหา ip เสร็จแล้วจึงนำมาสร้าง rule เพื่อจัดการบลอกมัน ซึ่งมันจะเก็บค่า ip ทั้งหมดของ facebook ลงใน array แล้วนำเข้า chain ของ iptables ครับ โดยส่วนตัวแล้วผลการทดสอบก็สามารถบลอกได้ครับ หรือเราจะสามารถพลิกแพลงออกมาให้มีลูกเล่นนิดหน่อยเช่น

        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


        • #49
          สำหรับคุณ yesindeed

          ผมยังสงสัยอยู่ว่าคุณพิมพ์ ไอพีแอดเดรสที่เป็นรูปแบบ CIDR ของ Facebook ที่ใช้กับ Alias ที่ละบรรทัดหรือเปล่าเพราะว่าอาจจะทำให้เกิดการผิดพาดขึ้นได้ระหว่าง ไอพีแอดเดรส กับ ค่าซับเน็ตมาส์ค

          ซึ่งใน pfSense จะมีอยู่ Option หนึ่งที่อำนวยความสะดวกไว้ให้ เพียงแค่คุณทำการกอ๊ปปี้ CIDR-Network prefix ของ facebook ทั้งหมด ที่ผม post ไว้ด้านบนที่ผ่านมา แล้วก็เอาไปแปะลงในออ๊ปชั่นพิเศษของ pfSense ต่อจากนั้น คลิก Save เป็นอันว่าจบ และจะไม่มีข้อผิดพลาดที่เกี่ยวกับการพิมพ์ผิดพิมพ์ถูกของไอพีแอดเดรส กับ ค่าซับเน็ตมาส์ค ที่จะเกิดขึ้นด้วย



          Noppadol S. Buter
          Last edited by Noppy; 17 Oct 2012, 20:42:42.

          Comment


          • #50
            แจ้งข่าว Syslog-ng แพ็กเก็จ สำหรับ pfSense 2.0.x และ 2.1 ยังเป็น Alpha เวอร์ชั่นอยู่ ถ้ายังไงก็ช่วยกันทดสอบหน่อยเพื่อช่วยกันหา Bug ให้กับ pfSense Developers.

            Noppadol S. Buter

            Comment


            • #51
              มี CIDR network ของ youtube บ้างไหมครับ

              Comment


              • #52
                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/23
                Last edited by Noppy; 17 Oct 2012, 01:09:03.

                Comment


                • #53
                  ขอบคุณมากๆครับผม

                  Comment


                  • #54
                    Originally posted by tompisut 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. Buter
                    Last edited by Noppy; 17 Oct 2012, 04:23:21.

                    Comment


                    • #55
                      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. Buter
                      testing
                      Last edited by Noppy; 19 Oct 2012, 17:16:18.

                      Comment


                      • #56
                        test
                        Last edited by Noppy; 19 Oct 2012, 17:15:04.

                        Comment


                        • #57
                          Originally posted by tompisut View Post
                          มี CIDR network ของ youtube บ้างไหมครับ
                          block youtube ลง squid กับ squidGuard แล้วตั้งค่าที่ service --> proxy filter -- > Target categories แล้วเพิ่ม domain ไปเลยครับ แล้วก็สร้าง Groups Access Control List (ACL) ว่าจะ block ช่วงไหน เวลาไหนครับ ลองดู

                          Comment


                          • #58
                            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 ได้อยู่หรือไม่
                            ไม่ทราบว่า คุณ yesindeed ทดสอบการใช้ไฟร์วอลล์กับ Schedule + Block Facebook เป็นบางเวลา ได้ผลเป็นยังไงบ้างครับ

                            Comment


                            • #59
                              Originally posted by Noppy View Post
                              ไม่ทราบว่า คุณ yesindeed ทดสอบการใช้ไฟร์วอลล์กับ Schedule + Block Facebook เป็นบางเวลา ได้ผลเป็นยังไงบ้างครับ
                              ไม่หลุดครับ user ยังสามารถเล่นต่อได้ แต่ถ้ากด logout ออก ก็จะเข้าไปใหม่ไม่ได้ จนกว่าจะถึงเวลาที่อนุญาตครับ กำลังงมอยู่ครับ เดี๋ยวเอาภาพมาให้ดูครับ

                              Comment


                              • #60
                                รูปครับ


                                เวลาที่ทดสอบช่วง 15 นาทีครับ








                                Comment

                                Working...
                                X