NanoSoftTech
 
*
Welcome, Guest. Please login or register. September 07, 2010, 12:42:32 pm


Login with username, password and session length


  Print  

Author Topic: Block bittorrent with iptable  (Read 1749 times)

0 Members and 1 Guest are viewing this topic.

Offline NanoSoftTech

  • NanoSoftTech
  • Administrator
  • Newbie
  • *****
  • Posts: 1,228
  • Karma: 0
    • NanoSoftTech
Block bittorrent with iptable
« on: April 05, 2009, 11:53:34 am »
หัวข้อ: มา Block Bittorrent กันที่ต้นเหตุกันดีกว่า
เริ่มหัวข้อโดย: jusmin ที่ 12 มกราคม 2009, 01:32:46
ช่วง นี้ผมว่างก็เลย ลองไปเรื่อยๆ ครับ .. ผมก็เลยอยากจะ block bittorrent ให้ได้อย่างจริงจังครับ... แต่ผมเองก็เสียเวลาไปกับการ conplie kernel ให้ support พวก ipp2p l7-filter ipset  แต่ก็เหมือนกับ เสียเวลาเปล่าๆ เพราะว่าไปเจอตอ ก็คือ bittorprent encryption  .. ก็หลุดซะแล้ว.. ก็เลยลองมานั่งคิดว่าจะทำไงดีหนอ... เลยมี idea บ้าๆๆ ว่าก็เราจะ block มันแล้วนี่หน่า. ทำไมต้องยอมให้เขา download file torrent มาก่อนล่ะ....
อีกอ ย่าง.. bittorrent นั้น ถูกพัฒนามาจาก peer to peer เก่าๆ ที่ใช้ DHT (distribute hash table) ซึ่งใช้การ Flooding บน network ทำให้เปลื่อง backwidth ในการ หา peer ใน swarm  bittorrent ก็เลยมี tracker คือตัวกลางเข้ามาเก็บข้อมูล ของ peer ต่างๆ ที่กำลัง load file นั้นอยู่..

ก่อน ที่จะทำการ download นั้น ตัว bittorrent client ก็ต้อง ทำการ connect ไปที่ tracker ก่อนว่า มี peer ไหนอยู่ใน swarm บ้าง.. พอเจอแล้วก็จึงเข้าไป connect โดยตรง....

ไอ้โปรแกรมพวก  ipp2p l7-filter มันไปพยายามที่จะไป block หลังจาก peer ติดต่อกับ tracker แล้ว...

ผมก็เลยคิดว่า เราต้องหาทาง block ก่อนที่จะไป ติดต่อกับ tracker เพื่อให้ได้ peer list มาดีกว่า...

ตอน แรกก็กะว่าใช้ squid ช่วยดีกว่า  ในการ filter kerword เพราะบางที่ใช้ transparent proxy แต่ ดูๆๆ แล้ว ถ้า tracker ไม่ไดใช้ port 80 ล่ะ.. มันก็ไร้ประโยชน์

ก็เลยไปใช้ iptable ช่วยดีก่า...

ลอง sniff data มาว่าเวลา bit client ติดต่อไปยัง tracker request อะไรบ้าง.. ก็ได้มา..ดังนี้

http://tracker.xxxx.com:1234/announce.php?passkey=176b50b80b73143c7c2c7bb081790755/&info_hash=%03s%13%ACO%DBk%F8%285%3F%89%BCP%29%00%2D%14%FD%0A&peer_id=%2DBC0070%2D%AD%AEe2%5F%B0%3C%BC%AA%3C%AC%00&port=18109&uploaded=0&downloaded=0&left=1437961276&numwant=200&compact=1&no_peer_id=1&key=3317&event=started

มันมี หลาย keyword มากที่เราสามารถจะ filter ได้... ผมก็เลย เอา สัก 2-3 key มา จับ block ซะเลย... เหอๆๆๆ  แบบว่าป่าเถื่อนมาก.. อิอิ 
แล้วผมก็เลยลองทำดูโดยใช้ code ตามข้างล่างนี้

====================================================

iptables -I INPUT -s 0.0.0.0/0 -m string --string "torrent" --algo bm -j DROP     <<<=== กะว่าจะ block ไม่ให้  download .torrent เลย.. แต่ถ้า download มาอีกทอด ก็ต้องเจอ policy ข้อต่อไป..

iptables -I INPUT -s 0.0.0.0/0 -m string --string "announce"  --algo bm -j DROP  <<< = ถ้าหลุดมาก็ต้องเจอ.นี่ announce อ่ะ tracker มันต้อง มีซิ.. คิดว่างั้น....

iptables -I INPUT -s 0.0.0.0/0 -m string --string "info_hash" --algo bm -j DROP   <<< ==== ถ้าหลุดอีกหรอ.... มันก็ต้องมี การ ส่งค่า hash file มาแน่ๆๆ เลย.

ถ้าหลุดจากนี้อีก ก็ต้องใช้ sniffer หรือ wireshark จับดู parameter ที่ส่งมาเองนะครับ.. อิอิ

====================================================

ลอง แล้ว เด็ดมากๆๆๆ block ได้จริงๆๆ เลย.. 555 ไม่ต้องเสียเวลาไป recomplie kernel ให้เมื่อยมือ.. แต่ถ้าต้องการ block พวก p2p แบบเก่าเช่น kazza หรือพวก gnutella ก็ต้อง complie เพราะมันใช้ DHT มันไม่ได้มาต่อกับ tracker หรือเปิดเว็บ...

อีกอย่าง  bittorrent encrpytion ยังไม่ได้เริ่มทำงานด้วยซ้ำ.. อิอิ


 ปล.  วิธี นี้จะใช้ไม่ได้กับ Tracker Less หรือ DHT นะครับ......  http://www.thaiadmin.org/board/index.php?action=printpage%3Btopic=94866.0   
ฝากให้ อีกอัน.. กันเหนียว...iptables -I INPUT -s 0.0.0.0/0 -m string --string "passkey=" --algo bm -j DROP   

Love like fine sand. Grasp it and it will quickly slip through your fingers. Cup it gently and it will fill the voids of your soul as sand seek ti fill the spaces in your hands.
ความรักก็เหมือนเม็ดทราย เมื่อใดที่รีบคว้ามันไว้ เม็ดทรายนั้นจะไหลออกทางร่องนิ้ว. แต่เมื่อค่อยๆประคองมันไว้ มันก็จะอยู่ในมือของคุณ และถ้าคุณทนุถนอมความรัก มันก็อยู่ในทุกช่องว่างในหัวใจ เช่นเดียวกับเม็ดทรายที่อยู่ในกำมือ.

  Print  
 
 

Powered by MySQL Powered by PHP Powered by SMF 2.0 RC3 | SMF © 2006–2010, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.11 seconds with 19 queries.