概要
- https通信が1000パケット届いたら1分間パケット転送を無効化し、通信を遮断する。
- 1分経過したら、パケット転送を有効化し、通信を再開する。
効果
- 子供のYouTube、ゲームの熱中がとても心配である。
- なのでこのスクリプトを仕掛けておき、一定の通信量を検知したら通信を遮断する。
TrafficGuard.sh
#!/bin/bash
# インターフェースと条件を設定
INTERFACE="any"
PACKET_THRESHOLD=1000
# tcpdumpでパケットをキャプチャし、awkでフィルタリング
tcpdump -i $INTERFACE port 443 -l | awk -v threshold=$PACKET_THRESHOLD '
{
count++;
if (count >= threshold) {
system("echo \"パケット数が" count "を超えました\"")
system("echo \"net.ipv4.ip_forward = 0\" > /etc/sysctl.d/net.ipv4.ip_forward.conf")
system("sysctl -p /etc/sysctl.d/net.ipv4.ip_forward.conf")
system("sleep " 60) #1min sleep
count = 0; # カウントをリセット
system("echo \"net.ipv4.ip_forward = 1\" > /etc/sysctl.d/net.ipv4.ip_forward.conf")
system("sysctl -p /etc/sysctl.d/net.ipv4.ip_forward.conf")
}
fflush(stdout);
}'