Saya memiliki beberapa teman sekamar yang membagi tagihan internet saya dengan saya setiap bulan. Kadang-kadang mereka lupa membayar saya, dan saya harus mengganggu mereka untuk mendapatkan uang.
Jika setelah 3 hari mengganggu mereka masih belum membayar, saya membuat aturan firewall di router berbasis unix saya yang memblokir lalu lintas ke alamat mac mereka. Ini terbukti sangat efektif untuk mendapatkan teman sekamar nakal untuk menambah uang tunai.
Bagaimana saya bisa mengotomatiskan penambahan / penghapusan alamat mac ke aturan firewall pada tanggal 3 setiap bulan? Saya ingin cara sederhana untuk membuka blokir mereka selama sisa bulan setelah mereka membayar.
Saat ini saya menggunakan pfsense. Meskipun ada modul portal captive , modul ini tidak mendukung pengaturan akses per pengguna / per bulan.
Bagaimana saya mengotomatiskan pemblokiran / pemblokiran akses internet teman sekamar?
sumber
Jawaban:
~/do_not_block_friends
ada dan waktu modifikasinya dalam periode bulan (stat -c %y filename
) - jangan jalankan skrip.touch ~/do_not_block_friends
.Script akan berjalan dan melihat yang
do_not_block_friends
sudah dimodifikasi, sehingga tidak akan menjalankan perintah iptables.Jika mereka tidak membayar Anda - skrip akan memblokir mereka.
Setelah mereka membayar, Anda menjalankan skrip siap lain untuk membuka kunci mereka.
Ini adalah rencana umum tanpa banyak detail, tetapi saya rasa tidak akan sulit untuk mengetahui sisanya.
Edit :
Berikut ini cara yang lebih sederhana untuk menulis skrip tersebut:
Kami menggunakan
find
perintah dengan opsi berikut:maxdepth 1
- Jangan mencari rekursiftype f
- Cari filename
- Cari nama inimtime -31
- Temukan file yang diubah kurang dari 31 hari yang laluwc -l
akan menghitung jumlah baris yang dihasilkan oleh perintah. Itu akan terjadi0
jika teman belum membayar (tidak ada yang ditemukan) dan itu akan terjadi1
jika teman membayar dan kami memangtouch
mengontrol file.Script ini tidak menghitung jumlah hari dalam sebulan dan default ke 31, saya pikir itu baik-baik saja karena kita tidak membangun sistem penagihan komersial, tapi saya percaya bahkan itu dapat dihitung dalam bash.
sumber
Mungkin lebih dari yang Anda cari, tetapi apakah Anda mempertimbangkan untuk mengatur kredensial nirkabel menggunakan otentikasi 802.1x terhadap RADIUS sebagai backend?
RADIUS dapat diatur untuk memeriksa validator apa pun yang Anda inginkan (sesuatu yang Anda mungkin harus skrip dan simpan dalam database atau sesuatu) untuk melihat apakah roomies Anda telah membayar sewa mereka. Ketika mereka mengautentikasi dan telah membayar, RADIUS mengautentikasi mereka. Kalau tidak, tidak. Aspek positifnya adalah Anda tidak mengandalkan pemfilteran pada alamat MAC. Dengan begitu jika Anda memiliki roomies yang mengerti teknologi, mereka tidak akan dengan mudah dapat mem-bypass kontrol yang Anda buat.
sumber
Periksa apakah rekening bank Anda atau solusi transaksi lain yang dapat Anda gunakan (PayPal?) Memberikan cara pembayaran notifikasi otomatis, seperti:
Jika ada metode seperti itu tersedia, yang tersisa adalah menulis beberapa skrip sederhana yang akan memantau pembayaran. Anda dapat mem-parsing email dari bank untuk mencari pembayaran bulanan dari teman Anda. Anda memerlukan file konfigurasi yang menyimpan nomor akun atau ID setiap teman, jumlah yang harus dibayar (mungkin juga konstanta global) dan alamat MAC.
Script kemudian akan menyesuaikan entri firewall sesuai dengan status pembayaran bulanan.
Setelah itu, beri tahu teman-teman Anda tentang opsi pembayaran yang tersedia dan - saat mengonfigurasi firewall Anda - ingatlah untuk memberi teman Anda akses ke mekanisme pembayaran sehingga mereka masih bisa membayar ketika melewati masa tenggang 3 hari :)
sumber