Portál AbcLinuxu, 12. května 2025 18:24
#!/bin/sh # Nastaveni implicitni politiky - Input a Forward mazat, Output prijmout $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -N MACADR $IPTABLES -A MACADR -m mac --mac-source 00:C0:9F:0D:52:CC -s 192.168.65.124 -j ACCEPT # NOTEBOOK HP - XE4400 (ethernet) $IPTABLES -A MACADR -s 192.168.65.3 -j ACCEPT # Retezec FORWARD $IPTABLES -A FORWARD -i $INET_IFACE -p ICMP -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -j MACADR $IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -s 192.168.0.0/16 -j REJECT # Retezec INPUT $IPTABLES -A INPUT -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 23 -j ACCEPT #Abych se dostal na ovise :) $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 80 -j ACCEPT #WWW rozhrani ovise $IPTABLES -A INPUT -i $INET_IFACE -p ICMP -j ACCEPT $IPTABLES -A INPUT -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -s $INET_IP -j ACCEPT $IPTABLES -A INPUT -i $LAN1_IFACE -j ACCEPT $IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_BCAST -j ACCEPT $IPTABLES -A INPUT -d 192.168.100.252 -j ACCEPT $IPTABLES -A INPUT -i $INET_IFACE -s 192.168.0.0/16 -j REJECT
# IP adresa a rozhrani vnejsi site (192.168.65.0/25) INET_IP="192.168.65.4" INET_IFACE="wlan0" # IP, broadcast adresa a rozhrani vnitrni site (192.168.65.176/28) LAN1_IP="192.168.65.180" LAN1_BCAST="192.168.65.191" LAN1_IFACE="eth0" # Lokalni loopback rozhrani LO_IFACE="lo" LO_IP="127.0.0.1/8"
$IPTABLES -A MACADR -s 192.168.65.3 -j ACCEPT
a ve FORWARD paket (z 65.124) zamítnete pravidlem
$IPTABLES -A FORWARD -i $INET_IFACE -s 192.168.0.0/16 -j REJECT
Jestli jsem to nepochopil, pak řekněte, co vlastně děláte...
$IPTABLES -A MACADR -m mac --mac-source 00:C0:9F:0D:52:CC -s 192.168.65.124 -j ACCEPTPri pouziti tohoto pravidla dojde k tomu, ze kdyz vznesu pozadavek (z 65.124) na INPUT (65.4), tak jej prijme a v pripade, ze vznesu pozadavek na FORWARD (65.176/28 ktery je za 65.4) tak jej implicitne DROPne.
$IPTABLES -A FORWARD -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -j MACADRrika, ze bud se INPUT i FORWARD DROPne nebo ACCEPTuje. Proc tedy jedno ACCEPT a druhe DROP? To po logicke strance preci neni mozne.
$IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -N MACADR $IPTABLES -A MACADR -m mac --mac-source 00:C0:9F:0D:52:CC -s 192.168.65.124 -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -j MACADR
$IPTABLES -A INPUT -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $LAN1_IFACE -j ACCEPTtakže pakety, které nejsou potvrzeny v MACADR, jsou následně po akceptovány v dalším řádku. To by si musel napsat:
$IPTABLES -N MACADR $IPTABLES -A MACADR -m mac --mac-source 00:C0:9F:0D:52:CC -s 192.168.65.124 -j ACCEPT $IPTABLES -A MACADR -j DROP
$IPTABLES -A INPUT -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -s $INET_IP -j ACCEPT
$INET_IFACE != $LAN1_IFACEA hlavne, kdybych doplnil jak rikas (za to doplneni dekuju, pac je pravda ze jinak by toho vyhovovalo moc)
$IPTABLES -A MACADR -j DROPTak to nema vliv na funkcnost (pokud se nemylim). Dulezite v tom je, ze
$IPTABLES -A FORWARD -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -j MACADRTudiz - vyhovuje-li neco INPUT (pres overeni MACADR) musi to vyhovovat i ve FORWARD.
$IPTABLES -A FORWARD -i $INET_IFACE -j MACADRtoto by melo to forwardovani (pokud bude zdrojem pozadavku 65.124) povolit, pokud se mylim a je treba dopsat jeste nejake pravidlo, tak mi napiste jake? Pokud je ma domenka spravna, proc INPUT jede a FORWARD ne, kdyz to pravidlo vypada uplne stejne, akorat s tim, ze se zameni za INPUT FORWARD.?
[root@rozinka root]# ip ro ls 192.168.65.192/29 dev wlan0 proto kernel scope link src 192.168.65.192 192.168.65.160/28 via 192.168.65.3 dev wlan1 192.168.65.176/28 via 192.168.65.4 dev wlan1 192.168.65.128/27 dev eth0 proto kernel scope link src 192.168.65.129 192.168.5.128/26 dev eth1 proto kernel scope link src 192.168.5.162 192.168.65.0/25 dev wlan1 proto kernel scope link src 192.168.65.1 default via 192.168.5.129 dev eth1Router 192.168.65.3:
[root@server100 root]# ip ro ls 192.168.65.160/28 dev eth0 scope link 192.168.65.0/25 dev wlan0 scope link 169.254.0.0/16 dev wlan0 scope link 127.0.0.0/8 dev lo scope link default via 192.168.65.1 dev wlan0Router(ovisek 1120) 192.168.65.4:
~ # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.65.176 * 255.255.255.240 U 0 0 0 eth0 192.168.65.0 * 255.255.255.128 U 0 0 0 wlan0 192.168.100.0 * 255.255.255.0 U 0 0 0 eth0 default rozinka-msec-wl 0.0.0.0 UG 0 0 0 wlan0Vazne, tady chybu nehledejte. Vypnu-li ve firewallu overovani pres MAC, vse bezi, jak ma. Vedu hledam v tom, proc kdyz overuju pres MAC input prijme a forward ne.
$IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -N MACADR $IPTABLES -A MACADR -m mac --mac-source 00:C0:9F:0D:52:CC -s 192.168.65.124 -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -j MACADR $IPTABLES -A INPUT -i $INET_IFACE -j MACADR
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.