Odczyt MAC adresu przez inny serwer

Konfiguracja serwerów, usług, itp.
Najkon
Posty: 20
Rejestracja: 29 lipca 2007, 14:43
Lokalizacja: Polska / Szczecin

Odczyt MAC adresu przez inny serwer

Post autor: Najkon »

Witam.

Mam taki problem w drobnej sieci.
Jest nowy klient wpina się w sieć i pobiera adresację dla nowych klientów oraz jego ruch dla www (80) zostaje przekierowany regułką iptables na drugi komputer (serwer), który to wyświetla mu informację przez WWW.

Rozrysowując to tekstowo:
Klient -- Serwer(1-dhcp) - 192.168.130.1
-- Serwer(2-www) - 10.0.0.254 - Komunikaty WWW

Kod: Zaznacz cały

$IPTABLES -A PREROUTING -t nat -s $NOAUTH -p tcp --dport 80 -j DNAT --to-destination 10.0.0.254:202
Reszta -j DROP


Teraz jak uzyskać, aby serwer 2-www mógł uzyskać MAC Adres karty sieciowej/urządzenia klienta, który to jest na serwerze 1-dhcp?
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Nie może, adres MAC jest w 2 warstwie OSI więc nie jest widziany przez maszyny znajdujące się w innej sieci. Jedynie komputer znajdujący się w sieci 192.168.130.0 może pobrać jego MAC.
Możesz co najwyżej napisać sobie skrypt, który po podpięciu nowego klienta w puli NOAUTH będzie gdzieś zapisywał jego MAC i wysyłał do serwera z WWW.
Ale i tak nie bardzo wiem po co Ci to.

Jeśli po to, żeby podął ci ten adres przez telefon czytając go ze strony, to szybciej będzie jak go sobie odczytasz sam.

Chyba, że sieci 10.0.0.0 i 192.168.130.0 są w tej samej sieci fizycznej tylko z inną adresacją, to wtedy jest inna rozmowa.
Najkon
Posty: 20
Rejestracja: 29 lipca 2007, 14:43
Lokalizacja: Polska / Szczecin

Post autor: Najkon »

Cześć.

Dziękuję za odpowiedź. Trochę czasu minęło.

Pytasz po co mi to - ano po to, aby nowy klient mógł podać telefonicznie swój adres MAC, czy też mógł wpisać poprawny poprzez panel klienta.

Obecnie jest to tak, że dzwoni i trzeba go prowadzić krok po kroku gdzie ma szukać. Niektórzy są cierpliwi i dają się pokierować, a niektórzy już nie i rzucają słuchawkami.

Tak więc, chciałem to w jakiś sposób zautomatyzować, aby posłużyć się klientem, który musi tylko przeczytać to co mu na stronie się wyświetliło. A to każdy głupi już potrafi.

Możesz rozwinąć myśl odnośnie opcji ze skryptem. W czym to można byłoby napisać i jak wysyłać na drugi serwer, aby ten poprawnie wyświetlał przy komunikacie WWW dla NOAUTH ich faktyczny adres MAC?
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Obecnie staram się rozwiązać ten sam problem, ale nie bardzo mi idzie, wpadłem na ten sam pomysł, żeby sieć NOAUTH przekierować na adres serwera www z komunikatem co i jak oraz umożliwić klientom korzystanie z panelu gdzie mają swoje dane dostępne.
Pojawił się natomiast problem adresu MAC. Niby mogę zamieścić na stronie instrukcję jak go wyświetlić, ale ta instrukcja nie działa, jeśli klient podpiął router...
Rozmawiałem z naszymi programistami, twierdzą, że wyciągnięcie adresu MAC z komputera przez jakiś skrypt, np. javy jest możliwe, ale ciężkie do zrobienia i w dalszym ciągu pojawia się problem routera.
Zastanawiam się, czy nie przepuścić ruchu przez jakieś proxy i tam nie sprawdzać adresu, zakładam, że da się to wyciągnąć na tym etapie.
Na dzień dzisiejszy nie mam pomysłów, ale jak na coś wpadnę to się podzielę.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Taki pomysł:
  1. Logi z DHCP wysyłać na maszynę która wyświetli komunikat (w czasie rzeczywistym - remote syslog)
  2. Wspomniany serwer wyświetlający komunikat parsuje sobie taki plik logu i wyszukuje po numerze IP mac adres klienta.

    W php:
    [php]$_SERVER['REMOTE_ADDR'];[/php]

    W teorii jest to do zrealizowania, w praktyce ja chwilowo nie mam czasu, a i środowiska coby potestować.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Myślałem nad tym, ale też nie mam na to teraz czasu, jakiś, wymyślił sobie inwentaryzację i zamiast robić co mam robić robię spis sprzętu. Dużo sprzętu, w rozległej sieci.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Drążąc temat, dla maszyn w tej samej sieci można:
[php]
<?php
$user_mac = exec('/usr/sbin/arp -an '.$_SERVER['REMOTE_ADDR']);
//var_dump($user_mac);
echo substr($user_mac, strpos($user_mac,'at ')+3, '17');
?>
[/php]
Nie mam niestety jak sprawdzić przy opcji z rutingiem.

LordRuthwen, masz na myśli wszelkie przełączniki, rutery, punkty dostępu i temu podobne? Nie uda Ci się zaprząc do pomocy np. czegoś z snmp?
Dla stacji roboczych polecam OCSInventory.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

mariaczi, to co się dało nie wstając zza biurka już mam, problem z tym, czego się tak nie da sprawdzić.
To dla sieci lokalnej, ale problem pojawia się z serwisem www poza siecią lokalną.
Najkon
Posty: 20
Rejestracja: 29 lipca 2007, 14:43
Lokalizacja: Polska / Szczecin

Post autor: Najkon »

Wypytałem w wielu różnych środowiskach i wielu podpowiada, aby podpiąć uruchomienie programu w perlu na serwerze dhcp w momencie przydziału noauth to program może zapisać IPi MAC do bazy danych mysql serwera.
A później na serwerze WWW wrzucić tylko odpowiednie zapytanie do bazy i mamy wszystko.
Jestem w trakcie dogadywania szczegółów. Także jak coś więcej będę na ten temat wiedzieć podzielę się.
ODPOWIEDZ