Як я можу вимкнути Інтернет для сусідів по кімнаті, які не сплатили рахунок цього місяця?


56

У мене є кілька сусідів по кімнаті, які розбивали зі мною щомісяця рахунок за Інтернет. Іноді вони забувають платити мені, і я мушу їх забирати за гроші.

Якщо через 3 дні дозволу вони все ще не заплатили, я створюю правило брандмауера в моєму маршрутизаторі на базі Unix, який блокує трафік на їхню mac-адресу. Це виявляється дуже ефективним у примусовому стані сусідів по сусідству з сусідами, щоб заробити гроші.

Як я можу автоматизувати додавання / видалення адреси mac до правила брандмауера 3 числа кожного місяця? Я хотів би простий спосіб розблокувати їх на решту місяця, коли вони заплатять.

Зараз я використовую pfsense. Незважаючи на те, що існує портальний модуль , він не підтримує регулювання доступу на користувача / місяць.

Як я міг автоматизувати блокування / розблокування доступу до Інтернету по кімнаті?


14
Те, що ти зараз робиш, звучить як найефективніший спосіб - я не можу уявити, що захоплене рішення порталу - це щось більше, ніж повний надмір. Якщо що-небудь, ви можете зробити простий скрипт оболонки, щоб автоматизувати додавання правила.
NReilingh

8
MAC-адреса дуже, дуже, легко змінюється і не повинна використовуватися для формування будь-якої міри безпеки. Windows вимагає одного редагування реєстру. Для Linux потрібна одна команда. За допомогою однієї команди в Linux він навіть міг скопіювати вашу MAC-адресу. Мені здається, що кращим рішенням буде автоматична зміна пароля раз на місяць. Обмежте доступ на основі своїх знань, а не його відсутність.
Марк Лопес

3
@Nikolay Ви маєте рацію, зміна MAC-адреси може стати більш актуальною темою. Однак я просто хотів підкреслити, що для довідок нашої потомки - фільтрація MAC недостовірна. Крім того, фільтрація MAC у більшості випадків - не найкраще рішення. Я хочу витіснити численні навчальні посібники в Інтернеті, які кажуть, що фільтрація MAC - це хороша практика безпеки.
Марк Лопес

6
Майте на увазі, всі, це ситуація ВІДПОВІДА. Замість того, щоб намагатися блокувати їх адреси MAC, @spuder, я б рекомендував ВІДБУДИТИ лише свої MAC адреси та виключити всі інші. Якщо у вас є 4 пристрої, ви дозволяєте лише ці пристрої. Усі інші MAC-адреси (навіть підроблені) будуть виключені. Запам'ятайте це ТІЛЬКИ квартиру, правда? Потім, коли ваші лукаві кімнатні спробують перетворити на MAC addy spoof ... і це не спрацює ... ви посміхаєтесь. Пам’ятайте дітей: Іноді варто «перевернути» своє мислення ...
Лео Борг

11
Я здивований, що ще ніхто не згадав про перевернутий тернець . Шлях веселіше, ніж просто блокування.
SQB

Відповіді:


33
  1. Створіть bash-скрипт, який додає обмежувальне правило iptables.
  2. Покладіть цей сценарій у щомісячний крон.
  3. Всередині скрипту bash введіть умову - якщо файл ~/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 - це безперечно шлях!
Роб

14

Це може бути більше, ніж ви шукаєте, але чи розглядали ви, як налаштувати бездротові облікові дані, використовуючи аутентифікацію 802.1x проти RADIUS як бекенда?

RADIUS може бути налаштований так, щоб перевірити будь-який валідатор, який ви хочете (те, що вам, ймовірно, доведеться сценаріювати і зберігати в базі даних чи щось таке), щоб побачити, чи платили оренди ваші кімнати. Коли вони аутентифікуються та сплатили їх, RADIUS засвідчує їх. Інакше це не так. Позитивним аспектом цього є те, що ви не покладаєтесь на фільтрацію за MAC-адресами. Таким чином, якщо у вас є кмітливі кімнатні кімнати, вони не зможуть легко обійти контрольні елементи, які ви встановили.


найкраще рішення для реального життя. і легко адаптується до нових / більше сусідів по кімнаті чи інших людей, як-от додавання ваших значущих інших, щоб вони не заблокували їх
PsychoData

звучить досить просто, краще, ніж mac фільтрація та простіша за портал
MDT Гай

1

Перевірте, чи ваш банківський рахунок чи інше рішення для транзакцій, яке ви можете використовувати (PayPal?), Надають будь-який спосіб автоматичного сповіщення платежів, наприклад:

  • сповіщення електронною поштою за транзакцію
  • щоденний підсумок електронної пошти
  • якийсь гідний API

Якщо такий метод доступний, все, що залишилося, - це написання простого сценарію, який би контролював платежі. Ви можете просто проаналізувати електронні листи банку, які шукають щомісячні платежі від своїх друзів. Вам знадобиться файл конфігурації, в якому зберігаються номер або номер облікового запису кожного друга, сума до оплати (може бути глобальною константою) та MAC-адреса.

Потім сценарій буде коригувати записи брандмауера відповідно до статусу щомісячного платежу.

Згодом повідомте своїх друзів про доступні варіанти оплати та - налаштовуючи брандмауер - не забудьте надати своїм друзям доступ до механізму оплати, щоб вони все ще могли платити, коли пропустили 3-денний пільговий період :)


так, але тоді йому доведеться платити збори за обробку, оскільки гес в коледжі це не добре
iamkrillin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.