이번 달 청구서를 지불하지 않은 룸메이트를 위해 인터넷을 끄려면 어떻게해야합니까?


56

매달 인터넷 요금을 나눠주는 룸메이트가 여러 명 있습니다. 때때로 그들은 나를 지불하는 것을 잊어 버리고, 나는 돈을 위해 그들을 괴롭혀야합니다.

페스터 링한지 3 일이 지났는데도 지불하지 않으면, 유닉스 기반 라우터에서 맥 주소로의 트래픽을 차단하는 방화벽 규칙을 만듭니다. 이것은 체납 룸메이트가 현금을 조장하는 데 매우 효과적입니다.

매월 3 일에 방화벽 규칙에 mac 주소 추가 / 제거를 자동화하려면 어떻게해야합니까? 일단 지불하면 나머지 달 동안 차단을 해제하는 간단한 방법을 원합니다.

현재 pfsense를 사용하고 있습니다. 캡 티브 포털 모듈 이 있지만 사용자 별 / 월별 액세스 조절은 지원하지 않습니다.

룸메이트 인터넷 액세스를 차단 / 차단 해제하려면 어떻게해야합니까?


14
지금하고있는 일이 가장 효율적인 방법 인 것 같습니다. 포로 포털 솔루션이 완전한 오버 킬 이상이라고 생각할 수는 없습니다. 무엇이든 규칙을 자동화하는 간단한 셸 스크립트를 만들어 추가 할 수 있습니다.
NReilingh 2019 년

8
MAC 주소는 변경하기 매우 쉽고 보안 수준을 높이기 위해 사용해서는 안됩니다. Windows는 하나의 레지스트리 편집이 필요합니다. 리눅스는 하나의 명령이 필요합니다. 리눅스에서 하나의 명령으로 그는 당신의 MAC 주소를 복사 할 수도있었습니다. 더 나은 솔루션은 한 달에 한 번 암호 변경을 자동화하는 것 같습니다. 그의 지식이 부족하기보다는 지식을 바탕으로 액세스를 제한하십시오.
Mark Lopez

3
@Nikolay 당신이 맞아, MAC 주소 변경은 더 진보 된 주제 일 수 있습니다. 그러나 나는 우리의 후손이 참조 할 수 있도록 MAC 필터링을 신뢰할 수 없다는 것을 강조하고 싶었습니다. 또한 대부분의 경우 MAC 필터링이 최상의 솔루션이 아닙니다. MAC 필터링이 좋은 보안 관행이라고하는 수많은 자습서를 온라인으로 바꾸고 싶습니다.
Mark Lopez

6
모두 염두에 두십시오. 이것이 ROOMMATE 상황입니다. @spuder의 MAC로 주소를 차단하는 대신 MAC 주소 허용 하고 다른 주소는 모두 제외하는 것이 좋습니다 . 장치가 4 개인 경우 장치 만 허용합니다. 다른 모든 MAC 주소 (스푸핑조차도)는 제외됩니다. 아파트 만 기억하세요? 그런 다음 교활한 넓은 룸메이트가 MAC addy spoof를 시도 할 때 작동하지 않습니다. 아이들을 기억하십시오 : 때때로 그것은 당신의 생각을 "반전시키는"비용을 지불합니다 ...
leo of borg

11
아무도 Upside-Down-Ternet을 아직 언급하지 않은 것에 놀랐습니다 . 웨이 더 재미는 바로 차단.
SQB

답변:


33
  1. 제한적인 iptables 규칙을 추가하는 bash 스크립트를 만드십시오.
  2. 이 스크립트를 매월 cron에 넣으십시오.
  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입니다. 상용 청구 시스템을 구축하지 않았기 때문에 괜찮다고 생각하지만 bash로 계산할 수도 있습니다.


크론 직업은 확실히 갈 길입니다!
Rob

14

원하는 것 이상일 수도 있지만 RADIUS에 대한 802.1x 인증을 백엔드로 사용하여 무선 자격 증명을 설정하려고하십니까?

RADIUS는 원하는 유효성 검사기 (데이터베이스 또는 무언가를 스크립트로 작성하여 저장해야 할 항목)를 검사하여 룸메이트가 임대료를 지불했는지 확인할 수 있습니다. 이들이 인증하고 지불하면 RADIUS가 인증합니다. 그렇지 않으면 그렇지 않습니다. 이에 대한 긍정적 인 측면은 MAC 주소 필터링에 의존하지 않는다는 것입니다. 그렇게하면 기술에 정통한 룸메이트가 있으면 배치 한 컨트롤을 쉽게 우회 할 수 없습니다.


실생활을위한 최고의 솔루션. 쉽게 주요 인물을 추가하는 등 새로운 / 더 룸메이트 또는 다른 사람에 적용 할 것입니다 것은 그들을 차단을 wouldnt 있도록
PsychoData

맥 필터링보다 더 간단하고 포털보다 더 간단하게 들립니다
MDT Guy

1

은행 계좌 또는 사용 가능한 다른 거래 솔루션 (PayPal?)이 다음과 같은 자동 결제 알림 방법을 제공하는지 확인하십시오.

  • 거래 당 전자 메일 알림
  • 일일 거래 요약 이메일
  • 괜찮은 API

그러한 방법을 사용할 수 있다면 남은 것은 지불을 모니터링하는 간단한 스크립트를 작성하는 것입니다. 당신은 당신의 친구로부터 매달 지불을 찾고 은행에서 전자 메일을 구문 분석 할 수 있습니다. 각 친구의 계정 번호 또는 ID, 지불 할 합계 (전역 상수 일 수도 있음) 및 MAC 주소를 저장하는 구성 파일이 필요합니다.

그러면 스크립트는 월별 지불 상태에 따라 방화벽 항목을 조정합니다.

그런 다음 친구에게 사용 가능한 지불 옵션을 알려주고 방화벽을 구성하는 동안 3 일의 유예 기간을 놓친 경우에도 지불 할 수 있도록 지불 메커니즘에 액세스 할 수 있도록 친구에게 제공해야합니다. :)


그래,하지만 그는 대학에
다니기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.