ฉันจะปิดอินเทอร์เน็ตสำหรับเพื่อนร่วมห้องที่ไม่ได้ชำระเงินในเดือนนี้ได้อย่างไร


56

ฉันมีเพื่อนร่วมห้องหลายคนที่แบ่งค่าใช้จ่ายอินเทอร์เน็ตของฉันกับฉันในแต่ละเดือน ในบางครั้งพวกเขาลืมจ่ายเงินให้ฉันและฉันต้องรบกวนพวกเขาเพื่อเงิน

หากหลังจาก 3 วันของการรบกวนพวกเขายังไม่ได้ชำระฉันสร้างกฎไฟร์วอลล์ในเราเตอร์ที่ใช้ระบบปฏิบัติการยูนิกซ์ที่บล็อกการรับส่งข้อมูลไปยังที่อยู่ mac ของพวกเขา สิ่งนี้พิสูจน์ให้เห็นว่ามีประสิทธิภาพมากในการพาเพื่อนร่วมห้องที่ค้างชำระเพื่อจ่ายเงินสด

ฉันจะเพิ่ม / ลบที่อยู่ mac ให้กับกฎไฟร์วอลล์ในวันที่ 3 ของทุกเดือนได้อย่างไร ฉันต้องการวิธีปลดบล็อกในช่วงที่เหลือของเดือนเมื่อพวกเขาจ่ายเงิน

ปัจจุบันฉันใช้ pfsense แม้ว่าจะมีโมดูลพอร์ทัลแบบ Captiveแต่ก็ไม่รองรับการควบคุมการเข้าถึงต่อผู้ใช้ / ต่อเดือน

ฉันจะทำให้การเชื่อมต่ออินเทอร์เน็ตของเพื่อนร่วมห้องโดยอัตโนมัติได้อย่างไร?


14
สิ่งที่คุณกำลังทำอยู่ตอนนี้ดูเหมือนจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในเรื่องนี้ - ฉันไม่สามารถจินตนาการได้ว่าโซลูชันพอร์ทัลที่เป็นเชลยนั้นเป็นอะไรที่มากกว่าการทำเกินความจำเป็นจนเสร็จสมบูรณ์ หากมีสิ่งใดคุณสามารถสร้างเชลล์สคริปต์แบบง่าย ๆ เพื่อให้กฎเพิ่มตัวเองโดยอัตโนมัติ
NReilingh

8
ที่อยู่ MAC นั้นง่ายมากเปลี่ยนแปลงได้ง่ายและไม่ควรใช้เพื่อวัดความปลอดภัย Windows ต้องการการแก้ไขรีจิสทรีหนึ่งรายการ Linux ต้องการหนึ่งคำสั่ง ด้วยคำสั่งเดียวใน Linux เขาสามารถคัดลอกที่อยู่ MAC ของคุณได้ ดูเหมือนว่าโซลูชันที่ดีกว่าจะเปลี่ยนรหัสผ่านอัตโนมัติเดือนละครั้ง จำกัด การเข้าถึงตามความรู้ของคุณมากกว่าที่เขาขาด
Mark Lopez

3
@Nikolay ถูกต้องการเปลี่ยนที่อยู่ MAC อาจเป็นหัวข้อที่ก้าวหน้ากว่านี้ อย่างไรก็ตามฉันแค่อยากจะเน้นว่าการอ้างอิงจากลูกหลานของเรา - การกรอง MAC นั้นไม่น่าเชื่อถือ นอกจากนี้การกรอง MAC ในกรณีส่วนใหญ่ไม่ใช่ทางออกที่ดีที่สุด ฉันต้องการแทนที่บทเรียนออนไลน์มากมายที่บอกว่าการกรอง MAC เป็นแนวปฏิบัติด้านความปลอดภัยที่ดี
Mark Lopez

6
โปรดจำไว้ว่าทุกคนนี่เป็นสถานการณ์ของ ROOMMATE แทนที่จะพยายามปิดกั้นที่อยู่ของพวกเขาโดย MAC @spuder ฉันขอแนะนำให้คุณอนุญาตเฉพาะที่อยู่ MAC ของคุณและยกเว้นที่อยู่อื่น ๆ ทั้งหมด หากคุณมีอุปกรณ์ 4 เครื่องคุณจะอนุญาตเฉพาะอุปกรณ์เหล่านั้นเท่านั้น ที่อยู่ MAC อื่น ๆ ทั้งหมด (แม้การปลอมแปลง) จะถูกยกเว้น จำได้ว่าเป็นอพาร์ทเมนท์เท่านั้นใช่ไหม จากนั้นเมื่อเพื่อนร่วมห้องเขี้ยวลากดินของคุณพยายามที่จะหลอก MAC เพิ่ม ... และมันไม่ทำงาน ... คุณยิ้ม โปรดจำไว้ว่าเด็ก: บางครั้งจะจ่ายให้ "กลับ" ความคิดของคุณ ...
สิงห์ของแอนเดอ

11
ฉันประหลาดใจที่ไม่มีใครพูดถึงUpside-Down-Ternetเลย วิธีที่สนุกมากขึ้นแล้วเพียงแค่ปิดกั้น
SQB

คำตอบ:


33
  1. สร้าง bash script ซึ่งเพิ่มกฎ iptables ที่ จำกัด
  2. ใส่สคริปต์นี้ใน cron รายเดือน
  3. ภายในสคริปต์ทุบตีทำให้เงื่อนไข - ถ้าไฟล์~/do_not_block_friendsมีอยู่และเวลาการแก้ไขของมันคือภายในระยะเวลาเดือน ( stat -c %y filename) - อย่าเรียกใช้สคริปต์
  4. touch ~/do_not_block_friendsเมื่อพวกเขาจ่ายเงินให้คุณทำ

สคริปต์จะทำงานและดูว่าdo_not_block_friendsมีการแก้ไขดังนั้นจะไม่เรียกใช้คำสั่ง iptables

หากพวกเขาไม่จ่ายเงินให้คุณ - สคริปต์จะบล็อกพวกเขา

เมื่อพวกเขาจ่ายเงินแล้วคุณก็เรียกใช้สคริปต์อื่น ๆ

นี่เป็นแผนทั่วไปที่ไม่มีรายละเอียดมากนัก แต่ฉันไม่คิดว่ามันจะยากที่จะคิดออกว่าส่วนที่เหลือของมัน

แก้ไข :

นี่เป็นวิธีที่ง่ายกว่าในการเขียนสคริปต์:

#!/bin/bash

count=`find ~ -maxdepth 1 -type f -name do_not_block_friends -mtime -31 | wc -l`

if [ "$count" -eq 1 ]; then

# Friends have paid. Do nothing;

else

# Friends have not paid. Run iptables command;

fi

เราใช้findคำสั่งด้วยตัวเลือกต่อไปนี้:

  • maxdepth 1 - อย่าค้นหาแบบเรียกซ้ำ
  • type f - ค้นหาไฟล์
  • name - ค้นหาชื่อนี้
  • mtime -31 - ค้นหาไฟล์ที่ถูกแก้ไขน้อยกว่า 31 วันที่ผ่านมา

wc -lจะนับจำนวนแถวที่สร้างโดยคำสั่ง มันจะเป็น0ถ้าเพื่อน ๆ ไม่ได้จ่ายเงิน (ไม่พบอะไรเลย) และมันจะเป็น1อย่างไรถ้าเพื่อน ๆ ได้จ่ายเงินและเราได้touchควบคุมไฟล์

สคริปต์นี้ไม่ได้คำนวณจำนวนวันในเดือนและค่าเริ่มต้นถึง 31 ฉันคิดว่าใช้ได้เพราะเราไม่ได้สร้างระบบการเรียกเก็บเงินเพื่อการค้า แต่ฉันเชื่อว่าแม้จะสามารถคำนวณได้ด้วยการทุบตี


งาน Cron เป็นวิธีที่จะไปอย่างแน่นอน!
Rob

14

อาจเป็นมากกว่าที่คุณกำลังมองหา แต่คุณพิจารณาที่จะตั้งค่าข้อมูลรับรองแบบไร้สายโดยใช้การตรวจสอบความถูกต้อง 802.1x กับ RADIUS เป็นแบ็คเอนด์หรือไม่

คุณสามารถตั้งค่า RADIUS เพื่อตรวจสอบตัวตรวจสอบความถูกต้องที่คุณต้องการ (สิ่งที่คุณอาจต้องใช้ในการเขียนสคริปต์และเก็บไว้ในฐานข้อมูลหรือบางอย่าง) เพื่อดูว่าเพื่อนร่วมห้องของคุณจ่ายค่าเช่าหรือไม่ เมื่อพวกเขาตรวจสอบและชำระเงิน RADIUS จะทำการตรวจสอบความถูกต้อง มิฉะนั้นจะไม่ ด้านบวกของสิ่งนี้คือคุณไม่ต้องพึ่งพาการกรองที่อยู่ MAC ด้วยวิธีนี้หากคุณมีเพื่อนร่วมห้องที่ชำนาญด้านเทคโนโลยีพวกเขาจะไม่สามารถข้ามการควบคุมที่คุณวางไว้ได้อย่างง่ายดาย


ทางออกที่ดีที่สุดสำหรับชีวิตจริง ได้อย่างง่ายดายและจะปรับให้เข้ากับเพื่อนร่วมห้องใหม่ / อื่น ๆ หรือคนอื่น ๆ เช่นการเพิ่มอย่างมีนัยสำคัญอื่น ๆ ของคุณจึง wouldnt ป้องกันพวกเขา
PsychoData

ฟังดูง่ายเพียงพอดีกว่าการกรอง mac และง่ายกว่าพอร์ทัล
MDT Guy

1

ตรวจสอบว่าบัญชีธนาคารของคุณหรือโซลูชันการทำธุรกรรมอื่นที่คุณอาจใช้ (PayPal?) มีวิธีการแจ้งเตือนการชำระเงินอัตโนมัติเช่น:

  • การแจ้งเตือนทางอีเมลต่อธุรกรรม
  • อีเมลสรุปธุรกรรมรายวัน
  • API ที่เหมาะสม

หากมีวิธีดังกล่าวเหลืออยู่กำลังเขียนสคริปต์ง่ายๆที่จะตรวจสอบการชำระเงิน คุณสามารถแยกอีเมลจากธนาคารที่กำลังมองหาการชำระเงินรายเดือนจากเพื่อนของคุณ คุณจะต้องใช้ไฟล์การกำหนดค่าที่เก็บหมายเลขบัญชีหรือ ID ของเพื่อนแต่ละคนรวมถึงการชำระเงิน (อาจเป็นค่าคงที่ทั่วโลก) และที่อยู่ MAC

สคริปต์จะปรับรายการไฟร์วอลล์ตามสถานะการชำระเงินรายเดือน

หลังจากนั้นแจ้งให้เพื่อนของคุณทราบถึงตัวเลือกการชำระเงินที่มีอยู่และ - ในขณะที่กำหนดค่าไฟร์วอลล์ของคุณ - อย่าลืมให้เพื่อนของคุณเข้าถึงกลไกการชำระเงินเพื่อให้พวกเขายังคงสามารถชำระเงินได้เมื่อพลาดระยะเวลาผ่อนผัน 3 วัน :)


อือ แต่แล้วเขาก็จะต้องจ่ายค่าดำเนินการตั้งแต่นะครับในวิทยาลัยไม่ดี
iamkrillin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.