#!/bin/bash
# ------------------------------
# MikroTik Auto-Block Script
# ------------------------------
ROUTER_IP="192.168.88.1"
ROUTER_USER="admin"
ROUTER_PASSWORD="Tr!ckyP@ssword." # use sshpass Alt use keys(had trouble trying to use a key)
WHITELIST="whitelist.txt"
LOG_FILE="blocked_devices.log"
INTERVAL=60 # check every 60 seconds
# List connected clients
CMD="/interface wireless registration-table print terse"
while true; do
echo "==== Checking connected clients ===="
# Fetch connected clients
clients=$(sshpass -p "$ROUTER_PASSWORD" ssh -o StrictHostKeyChecking=no $ROUTER_USER@$ROUTER_IP "$CMD" 2>/dev/null)
# Extract MAC addresses of connected devices
connected_macs=$(echo "$clients" | grep -ioP 'mac-?address=\K[0-9A-F:]{17}')
# Fetch current access-list MACs
blocked_macs=$(sshpass -p "$ROUTER_PASSWORD" ssh -o StrictHostKeyChecking=no $ROUTER_USER@$ROUTER_IP "/interface wireless access-list print terse" 2>/dev/null | grep -ioP 'mac-?address=\K[0-9A-F:]{17}')
# Block any connected MAC not in whitelist
for mac in $connected_macs; do
if ! grep -iq "$mac" "$WHITELIST"; then
if ! echo "$blocked_macs" | grep -iq "$mac"; then
sshpass -p "$ROUTER_PASSWORD" ssh -o StrictHostKeyChecking=no $ROUTER_USER@$ROUTER_IP "/interface wireless access-list add mac-address=$mac comment='Blocked unknown device' disabled=no"
echo "$(date '+%Y-%m-%d %H:%M:%S') - BLOCKED $mac" | tee -a "$LOG_FILE"
fi
fi
done
# Remove any blocked MAC that is not in whitelist
for mac in $blocked_macs; do
if ! grep -iq "$mac" "$WHITELIST"; then
# Remove MAC from access list
sshpass -p "$ROUTER_PASSWORD" ssh -o StrictHostKeyChecking=no $ROUTER_USER@$ROUTER_IP "/interface wireless access-list remove [find mac-address=$mac]"
echo "$(date '+%Y-%m-%d %H:%M:%S') - REMOVED $mac (illegal)" | tee -a "$LOG_FILE"
fi
done
echo "==== Sleeping for $INTERVAL seconds ===="
sleep $INTERVAL
done
< /code>
#curourly я запускаю сценарий из ящика, подключенного к одной и той же сети, но я буду знать, смогу ли я запустить сценарий из другой сети и сказать через VPS #в том, что я знаю, что его запуск, даже если машина выключена (настройка Cronjob для #Script), я не хочу, чтобы я использовал # # # # # # # # Ключ ранее
#i Перфорированные атаки Deauthentication сначала (несанкционированные MAC -адреса просто #Reconnect) также теперь пытается сделать его немного более "белым воротником"
Подробнее здесь: https://stackoverflow.com/questions/797 ... ine-script