mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add helper script to block localhost ports
This commit is contained in:
committed by
Dan Christian Bogos
parent
0f5f65a71b
commit
ea7313a0b6
43
data/scripts/block-ports.sh
Executable file
43
data/scripts/block-ports.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage: $(basename "$0") -p PORT[,PORT...] [-d SECONDS]"
|
||||
echo "Example: $(basename "$0") -p 8021,2014 -d 300"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Set default duration
|
||||
DURATION=10
|
||||
|
||||
# Parse arguments
|
||||
while getopts "p:d:h" opt; do
|
||||
case $opt in
|
||||
p) IFS=',' read -r -a PORTS <<< "$OPTARG" ;;
|
||||
d) DURATION="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check required arguments
|
||||
[[ ${#PORTS[@]} -eq 0 ]] && usage
|
||||
|
||||
cleanup() {
|
||||
sudo tc qdisc del dev lo root 2>/dev/null
|
||||
echo "Traffic restored"
|
||||
}
|
||||
|
||||
# Set up cleanup on script exit
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
# Block ports
|
||||
echo "Blocking ports ${PORTS[*]} for $DURATION seconds..."
|
||||
|
||||
sudo tc qdisc add dev lo root handle 1: prio
|
||||
sudo tc qdisc add dev lo parent 1:3 handle 30: netem loss 100%
|
||||
|
||||
for port in "${PORTS[@]}"; do
|
||||
sudo tc filter add dev lo protocol ip parent 1:0 prio 3 u32 match ip dport "$port" 0xffff flowid 1:3
|
||||
sudo tc filter add dev lo protocol ip parent 1:0 prio 3 u32 match ip sport "$port" 0xffff flowid 1:3
|
||||
done
|
||||
|
||||
sleep "$DURATION"
|
||||
Reference in New Issue
Block a user