iptables - filtrowanie dostępu do sieci po adresach MAC
: 04 października 2011, 10:08
Głównym celem poniższej konfiguracji jest zapewnienie dostępu do Internetu tylko tym komputerom, których adresy IP zostały powiązane z adresem MAC.
Poniżej znajduje się uproszczona wersja skryptu (eth1 -> LAN, eth0 -> WAN)
Problem: Jeżeli mam komputer o adresie IP 192.168.1.102 i adresie MAC 40:61:86:AE:FE:0A to regułka
zezwala użytkownikowi na komunikację tylko po porcie 80,443 i działa super.
Jeżeli powyższego wpisu nie będzie, lub użytkownik ustawi sobie IP ręcznie na dowolny inny, wolny ma ruch po dowolnym porcie.
Jak zablokować ruch w sieci komputerom, które nie zostały ręcznie dodane do konfiguracji?
Poniżej znajduje się uproszczona wersja skryptu (eth1 -> LAN, eth0 -> WAN)
Problem: Jeżeli mam komputer o adresie IP 192.168.1.102 i adresie MAC 40:61:86:AE:FE:0A to regułka
Kod: Zaznacz cały
$IPTABLES -I FORWARD -i eth1 -s 192.168.1.102 -p tcp -m multiport --dport 80,443 -m mac --mac-source 40:61:86:AE:FE:0A -j ACCEPT
Jeżeli powyższego wpisu nie będzie, lub użytkownik ustawi sobie IP ręcznie na dowolny inny, wolny ma ruch po dowolnym porcie.
Jak zablokować ruch w sieci komputerom, które nie zostały ręcznie dodane do konfiguracji?
Kod: Zaznacz cały
echo "Starting firewall..."
IPTABLES=/sbin/iptables
$IPTABLES -t filter -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
[B]##### USERS[/B]
#jan.kowalski
$IPTABLES -I FORWARD -i eth1 -s 192.168.1.102 -p tcp -m multiport --dport 80,443 -m mac --mac-source 40:61:86:AE:FE:0A -j ACCEPT
$IPTABLES -I FORWARD -i eth1 -s 192.168.1.102 -p udp --dport 53 -m mac --mac-source 40:61:86:AE:FE:0A -j ACCEPT
(...)
(...)
(...)
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o eth0 -s [url=http://192.168.1.0/24]192.168.1.0/24[/URL] -j MASQUERADE
[B]echo "Firewall started..."[/B]