Всем доброго времени суток.
Для начала поясню суть проблемы. Имеется 80% машин в домене, 10% без домена постоянные клиенты и еще 10% всякие начальники которые приезжают с новыми девайсами (соответсвенно за маками не уследишь) и нужен вай-фай. Из-за такой схемы, закрыть доступ всем кроме белого списка маков, мягко говоря не удобно.
Нужно реализовать ограничение скорости (в том числе и на 443 порту, поэтому сквид не вариант, проксирование прозрачное) на всех открытых портах для всех MAC адресов в сети кроме белого списка. После анализа access логов... хочется максимально высвободить канал для тех кто занимается работой на работе.
Подскажите как это реализовать по средствам iptables, белых маков будет не больше 20, думаю это не проблема для NAT.
iptables-save прилагаю:
# Generated by iptables-save v1.4.21 on Fri Feb 27 19:33:31 2015
*mangle
:PREROUTING ACCEPT [1551886:1285641365]
:INPUT ACCEPT [482547:396991269]
:FORWARD ACCEPT [1069022:888622551]
:OUTPUT ACCEPT [480833:459736800]
:POSTROUTING ACCEPT [1543423:1346816540]
COMMIT
# Completed on Fri Feb 27 19:33:31 2015
# Generated by iptables-save v1.4.21 on Fri Feb 27 19:33:31 2015
*nat
:PREROUTING ACCEPT [53710:4966060]
:INPUT ACCEPT [4776:237972]
:OUTPUT ACCEPT [9179:552697]
:POSTROUTING ACCEPT [9329:560231]
-A PREROUTING -s 192.168.111.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -s 192.168.111.0/24 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128
-A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.111.2:3389
-A PREROUTING -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.111.2:1723
-A POSTROUTING -s 192.168.111.0/24 ! -d 192.168.111.0/24 -j SNAT --to-source ВНЕШНИЙ_БЕЛЫЙ_IP
COMMIT
# Completed on Fri Feb 27 19:33:31 2015
# Generated by iptables-save v1.4.21 on Fri Feb 27 19:33:31 2015
*filter
:INPUT DROP [33802:2414679]
:FORWARD DROP [6432:1542811]
:OUTPUT ACCEPT [480842:459738280]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -s 192.168.111.1/32 -j ACCEPT
-A INPUT -s 192.168.111.0/24 -i eth1 -p tcp -m multiport --dports 53 -m state --state NEW -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.111.0/24 -i eth1 -p tcp -m multiport --dports 22 -m state --state NEW -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.111.0/24 -i eth1 -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name radiator --mask 255.255.255.255 --rsource
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --update --seconds 10800 --hitcount 3 --name radiator --mask 255.255.255.255 --rsource -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -j ULOG
-A INPUT -s 192.168.111.0/24 -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p tcp -m multiport --dports 20,21,25,80,110,123,465,515 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dports 20,21,25,80,110,123,465,515 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p tcp -m multiport --dports 631,666,993,995,443,5222,5223,8080 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dports 631,666,993,995,443,5222,5223,8080 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p udp -m multiport --dports 53,123,137,138,465,995,4080 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -p udp -m multiport --dports 53,123,137,138,465,995,4080 -j ACCEPT
-A FORWARD -s 192.168.111.101/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.111.101/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.111.249/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.111.249/32 -o eth0 -j ACCEPT
-A FORWARD -j ULOG
COMMIT
# Completed on Fri Feb 27 19:33:31 2015