Bialy wrote:
witam. przesylam info dla korzystajacych ze skryptu lms-makemacs (lms w wersji 1.9.8 Idos).
odpalilem go sobie w preroutingu, prawie na samym poczatku drogi pakietu, za pomoca polecen:
lms-makemacs -q /usr/sbin/iptables -t nat -N MACS > /dev/null /usr/sbin/iptables -t nat -I PREROUTING -j MACS > /dev/null /etc/rc.d/rc.macs > /dev/null
efekt jak na rysunku: http://img528.imageshack.us/img528/8125/macsyi1.jpg
dziala poprawnie, gdy cos nie gra z macami/ip, to juz na samym poczatku user jest blokowany. niestety pojawil sie problem. domyslnie generowane przez srypt regulki iptables nie uwzgledniaja interfejsu wejsciowego (opcja -i dla iptables), co owocuje brakiem dostepu z poziomu interfejsu zewnetrznego. wiadomo, ze nikt nie bedzie wpisywal wszystkich mozliwych miejsc, z ktorych moze sie polaczyc z zewnatrz serwerem i macow komputerow, wiec zmodyfikowalem lekko skrypt aby, bez zbednego dlubania, wyciagal z bazy interfejs lokalny (wartosc 'interface' z tabeli 'networks') i zawieral go w generowanych regulkach, tak by brane byly pod uwage powiazania mac/ip jedynie dla userow z sieci lokalnej. moze sie komus przyda, ponizej patch:
--- lms-makemacs-org 2007-10-08 17:05:07.000000000 +0200 +++ lms-makemacs 2007-10-08 17:08:57.000000000 +0200 @@ -238,6 +238,17 @@
$dbq->finish();
+$dbq = $dbase->prepare("SELECT interface FROM networks"); +$dbq->execute(); +my $iface;
+while (my $row = $dbq->fetchrow_hashref()) +{
- $iface = $row->{'interface'};
+}
+$dbq->finish();
dzięki za patcha, ale to zapytanie jest nadmiarowe, poza tym można po prostu zrobić
/usr/sbin/iptables -t nat -I PREROUTING -i eth0 -j MACS > /dev/null
/usr/sbin/iptables -t nat -I PREROUTING -i eth1 -j MACS > /dev/null
ale zgadzam się, że lepiej zrobić to podobnie do twojego rozwiązania, chociażby dlatego aby nie trzeba było grzebać w plikach w przypadku zmiany interfejsów, wystarczy wyklikać w sieciach.