Доброго времени суток!
Имеется небольшая (устройств 50) сетка с плохим подключением к интернету. Устройства могут подключаться как через WiFi, так и через кабель. Из-за плохого подключения, невысокой технической грамотности пользователей и большого числа гостей (я даже не помню, кому из них я разрешал подключаться, т.к. он, может, год назад приезжал) с мобильниками с вайфаем приходится фильтровать доступ к инету на сервере. Сейчас фильтруется по IP с помощью IPSET. Но иногда хулиганы меняют IP и подставляют себе IP выключенных компов.
Пытаюсь ввести фильтрацию по MAC.
...
## Create new ip sets
$IPSET -N whitelist macipmap --network $LAN_IP_RANGE
$IPSET -N ipwhite iphash
## Set ip sets
# Whitelist
$IPSET -A whitelist 192.168.1.150,94:39:e5:66:90:df
#$IPSET -A ipwhite 192.168.1.150
$IPSET -A ipwhite 192.168.1.151
...
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE ! -d 192.168.1.44 -m set --match-set whitelist src -p tcp -m multiport --dport 80,2080,2082,8080 -j REDIRECT --to-port 3129
$IPTABLES -t nat -A PREROUTING -i $LAN_IFACE ! -d 192.168.1.44 -m set --match-set ipwhite src -p tcp -m multiport --dport 80,2080,2082,8080 -j REDIRECT --to-port 3129
...
# POSTROUTING chain
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -s $LAN_IP_RANGE -j SNAT --to-source $STATIC_IP
...
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p ALL -i $LAN_IFACE -m set --match-set whitelist src -j ACCEPT
$IPTABLES -A FORWARD -p ALL -i $LAN_IFACE -m set --match-set ipwhite src -j ACCEPT
$IPTABLES -A FORWARD -p ALL -i $LAN_IFACE -m set ! --match-set whitelist src -j LOG --log-level notice --log-prefix "IPT not WHITELIST request: "
$IPTABLES -A FORWARD -i $INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 1/hour --limit-burst 5 -j LOG --log-level notice --log-prefix "IPT FORWARD packet died: "
Jan 19 11:32:43 gw44 kernel: [166733.253113] IPT not WHITELIST request: IN=eth1 OUT=eth0 MAC=00:11:25:95:33:3f:94:39:e5:66:90:df:08:00 SRC=192.168.1.150 DST=213.180.204.3 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=29121 SEQ=27
Что за странный мак и как с этим бороться? Пробовал подставлять мак из логов в качества параметра IPSET, тогда ругается ещё IPSET.
Заранее благодарен за помощь!
P.S. Знаю, что mac тоже можно подменить. Но настолько грамотного пользователя я и так найду, их еденицы. Однако, если есть более подходящее решение, буду рад совету.