LINUX.ORG.RU
ФорумAdmin

ipset && mac filter

 , macfilter


0

1

Доброго времени суток!

Имеется небольшая (устройств 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: "
Пользователи списка ipwhite проходят нормально. Но пользователи списка whitelist блокируются. В логи идёт такая ошибка:

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 тоже можно подменить. Но настолько грамотного пользователя я и так найду, их еденицы. Однако, если есть более подходящее решение, буду рад совету.

★★★★★

Последнее исправление: fractaler (всего исправлений: 1)

И, да, я несколько поскромничал. В пике число устройств возрастает где-то до 200. Из них доступ к Интернету должен быть где-то у 20.

fractaler ★★★★★
() автор топика

Упс, заметил помарку:

$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 -p ALL -i $LAN_IFACE -m set ! --match-set ipwhite src -j LOG --log-level notice --log-prefix "IPT not IPWHITE request: "
Ошибка изменилась на

Jan 19 13:33:17 gw44 kernel: [173966.695018] IPT not IPWHITE 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.193.3 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=29604 SEQ=9

fractaler ★★★★★
() автор топика
Ответ на: комментарий от fractaler

Разобрался, что за странный MAC:

00:11:25:95:33:3f - Destination MAC
94:39:e5:66:90:df - Source MAC
08:00 - Payload type (ETHTYPE)


Но это не облегчило мне понимание проблемы.

fractaler ★★★★★
() автор топика
Ответ на: комментарий от fractaler

дык в мане четко сказано

The bitmap:ip,mac type of sets require two src/dst parameters of the set match and SET target netfilter kernel modules and the second one must be src to match, add or delete entries because the set match and SET target have access to the source MAC address only.

vel ★★★★★
()
Ответ на: комментарий от vel

Угу. И ни одного примера. Зато куча примеров в сети с неправильной командой. Мой мозг не переварил тект мана src/dst в src,src. Мда, мне есть куда расти. Ну да ладно.

Ещё раз спасибо! Ты мне очень помог.

fractaler ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.