Ostatnio Na Forum
Logowanie

Polityka prywatno?ci

Portal openrouter.info stosuje pliki cookies ("ciasteczka") pozwalające na dostosowanie zawartości portalu do indywidualnych potrzeb. Korzystanie z portalu bez zmiany ustawień dotyczących ciasteczek oznacza akceptację umieszczenia ich na urządzenia użytkownika. Zmianę ustawień pliku ciasteczek można wykonać zmieniając opcję w ustawieniach przeglądarki internetowej. Więcej informacji można znaleźć w Polityce prywatności.

Zapobieganie przed zmian? ip przez u?ytkownika w OpenWrt

Email Drukuj

Przedstawi? prost? metod? zapobiegania zmiany przyznanego adresu IP przez u?ytkownika. Ca?a konfiguracja wykonana i testowana pod OpenWrt Backfire 10.03.x pod WR1043ND oraz WRT54GL. W aplikacji wykorzystano opcje programu dnsmasq, ktra powoduje wywo?anie zewn?trznego skryptu (opcja dhcp-script). Po wi?cej odsy?am do dokumentacji dnsmasq. Skrypt odpowiednio przekonfigurowuje firewall. Aby nie miesza? w domy?lnych ?a?cuchach openwrt tworzony jest nowy ?a?cuch "forwarding_dnsmasq" i to tam zachodz? wszelkie zmiany. Domy?lnie skrypt tak naprawd? blokuje forward na routerze, jednak?e nic nie stoi na przeszkodzie aby sobie odpowiednio dostosowa? skrypt.

Instalacja:

Podmieniamy zmodyfikowany przeze mnie plik /etc/init.d/dnsmasq:

cp /etc/init.d/dnsmasq /root
rm /etc/init.d/dnsmasq
wget http://rpc.one.pl/pliki/openwrt/backfire/10.03.x/dnsmasq/dnsmasq -O /etc/init.d/dnsmasq

Musimy doda? trzy poni?sze linie na pocz?tku pliku /etc/firewall.user:

iptables -N forwarding_dnsmasq
iptables -I zone_lan_forward -j forwarding_dnsmasq
iptables -A forwarding_dnsmasq -j REJECT

Nale?y utworzy? plik w katalogu /etc:

wget http://rpc.one.pl/pliki/openwrt/backfire/10.03.x/dnsmasq/dnsmasq.script -O /etc/dnsmasq.script
chmod +x /etc/dnsmasq.script

Nale?y w??czy? nasz? funkcjonalno?? w dnsmasq:

uci set dhcp.@dnsmasq[0].dhcpscript=/etc/dnsmasq.script
uci commit dhcp

Na koniec nale?y naszym hostom zdefiniowa? adresy IP przez przypisanie ich poprzez adres MAC karty sieciowej

echo "00:11:22:33:44:57 192.168.1.100" >> /etc/ethers

I to w zasadzie wszystko. Wykonujemy tylko restart dns/dhcp

/etc/init.d/dnsmasq restart

Co zosta?o zrobione:

Zosta? utworzony nowy plik wykonywalny (chmod +x) /etc/dnsmasq.script o zawarto?ci:

#!/bin/sh

#Zabezpieczenie przed zmiana adresu IP w OpenWrt
#Nalezy dopisac na poczatku pliku /etc/firewall.user trzy ponizsze wiersze
#iptables -N forwarding_dnsmasq
#iptables -I zone_lan_forward -j forwarding_dnsmasq
#iptables -A forwarding_dnsmasq -j REJECT
#
#zalozenie to takie, iz siec wewnetrzna nazywa sie "lan"
#Jezeli nie to nalezy zwrocic uwage czy istnieje lancuch "zone_lan_forward" w iptables -L -v
#created Rafal Cichosz

zm=`iptables -L forwarding_dnsmasq -n | awk /ACCEPT/'{print $4":"$7}' | tr "[A-F]" "[a-f]"`

case $1 in
"add"|"old") [ "$3:$2" != "$zm" ] && iptables -I forwarding_dnsmasq --src $3 -m mac --mac-source $2 -j ACCEPT ;;
"del") [ "$3:$2" = "$zm" ] && iptables -D forwarding_dnsmasq --src $3 -m mac --mac-source $2 -j ACCEPT ;;
esac

Blokada polega na utworzeniu nowego ?a?cucha forwarding_dnsmasq i odpowiednie dodanie adresw ip i adresw MAC loguj?cych si? klientw. Je?eli kto? ustawi sobie statycznie adres ip to nie uzyska po??czenia z internetem. Je?eli jednak chcemy aby mg? pracowa? to nale?y go doda? r?cznie w openwrt np.:

iptables -A forwarding_rule --src 192.168.1.10 -j ACCEPT

Wa?ne w tym wszystkim jest to gdzie umie?ci si? nasz ?a?cuch forwarding_dnsmasq. Ja umie?ci?em go w ?a?cuchu zone_lan_forward. Mo?na go umie?ci? w innej regule nawet g?wnej FORWARD.

Do pliku /etc/init.d/dnsmasq dodano poni?sze wiersze:

Index: package/dnsmasq/files/dnsmasq.init
===================================================================
--- package/dnsmasq/files/dnsmasq.init (wersja 21896)
+++ package/dnsmasq/files/dnsmasq.init (kopia robocza)
@@ -99,6 +99,10 @@

config_get hostsfile "$cfg" dhcphostsfile
[ -e "$hostsfile" ] && append args "--dhcp-hostsfile=$hostsfile"
+
+ config_get dhcpscript "$cfg" dhcpscript
+ [ -n "$dhcpscript" ] && append args "-6 $dhcpscript"
+
}

czyli dodano now? opcj? dhcpscript, ktra to jest odpowiednikiem opcji dhcp-script (-6) programu dnamasq. Dzi?ki temu uzyskujemy obs?ug? poprzez UCI w openwrt.

dhcp.@dnsmasq[0].dhcpscript=/etc/dnsmasq.script



Najaktualniejsz? wersj? tego dokumentu znajdziesz zawsze pod adresem http://rpc.one.pl

 
Share
designed by digi-led.pl
góra
...Copyright © 2010-2013, Ekipa openrouter.info