Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
[url=https://forum.dug.net.pl/viewtopic.php?pid=299496#p299496]W tym wątku[/url] został poruszony ciekawy temat dotyczący generowania losowego adresu MAC. W skrócie, generowanie losowego MAC sprowadza się do wpisania w terminalu tego poniższego:
macaddr=$(dd if=/dev/random bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/') echo $macaddr
Problem z tym losowym MAC jest taki, że jest on "zbyt losowy". xD I czasem przy przypisywaniu go dostaje się taki komunikat:
# echo $macaddr 07:d4:51:9f:50:6c # ip link set dev wlan0 address $macaddr RTNETLINK answers: Cannot assign requested address
Chodzi generalnie o to, że:
MAC addresses have two special bits in the first byte:
Bit 0 is the "multicast" bit, noting that the address is a multicast or broadcast address
Bit 1 is the "local" bit, indicating that the MAC address was not assigned by the vendor and might not be entirely unique.
You are trying to set an address that has the multicast bit set, which does not work because any reply to your host would be interpreted as a multicast packet.
-- http://superuser.com/questions/725467/set-mac-address-fails-rtnetlink-answers-cannot-assign-requested-address[/quote]
[img]http://i.stack.imgur.com/IxQEB.png[/img]
Zatem, jak powinno się tę powyższą linijkę od generowania adresu przepisać, by MAC zawsze był poprawny? xDOstatnio edytowany przez morfik (2016-05-02 10:24:24)
Offline
Ok mam: xD
#! /bin/sh macaddr=$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/') lastfive=$( echo "$macaddr" | cut -d: -f 2-6 ) firstbyte=$( echo "$macaddr" | cut -d: -f 1 ) # make sure bit 0 (broadcast) of $firstbyte is not set, # and bit 1 (local) is set. # i.e. via bitwise AND with 254 and bitwise OR with 2. firstbyte=$( printf '%02x' $(( 0x$firstbyte & 254 | 2)) ) newmac="$firstbyte:$lastfive" ip link set dev wlan0 address $newmac
Offline
Ale gimnastyka u Cieb xD
perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;'
Przy okazji, /dev/urandom nie generuje liczb losowych, tylko ujawnia tajne dane o ruchach myszki na monitorze. :DDD
Ostatnio edytowany przez Jacekalex (2016-04-29 17:46:50)
Offline
MAC nie jest żadnym krytycznym punktem, by generować go z /dev/random . Jest o wiele większe prawdopodobieństwo, że dopasują ruch sieciowy do ciebie właśnie po tych losowych adresach, bo sporo z nich nigdy nie miało przypisanego vendorID. Teraz taki ty się loguje 20 razy i co za problem powiązać takie adresy albo skutecznie okroić poszczególnych użytkowników? xD Jest w debianie macchanger, on ma kilka ciekawych ficzerów, min. potrafi generować losowy adres tego samego vendora. Może także generować MAC z tej samej klasy urządzeń, np. masz kartę wifi, to przydzieli ci vendorów, którzy produkują wifi i inne takie ciekawe rzeczy, które w o wiele lepszym stopniu nadają się do wykorzystania przy darmowych sieciach wifi. Także znowu sam losowy MAC czasem może tylko więcej szkody narobić niż pożytku. xD
Poza tym, przetestował ten twój nowy tasiemiec:
for i in `seq 1 10` do macaddr=$(perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;') ip link set dev wlan0 address $macaddr done exit 0
I co? xD
# /opt/skrypty/genmac RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address RTNETLINK answers: Cannot assign requested address
6 adresów z 10 jest nieprawidłowych. Ja wolę poćwiczyć jednak wygibasy xD
Offline
Fakt, ale to nie problem:
[b]cat `which genmac`[/b]
#!/bin/bash for i in `seq 1 10`; do macaddr=$(perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;'); ip link set dev lan address $macaddr 2>/dev/null && exit 0; done;
time genmac real 0m0.042s user 0m0.008s sys 0m0.012s
Chyba, że <0.1 sekundy to jakiś straszny problem. XD
SOA#1
Ostatnio edytowany przez Jacekalex (2016-04-29 19:55:14)
Offline
Na jedno wychodzi.
Przewaga mojego nad macchanger jest taka, że mac-addres jest całkowicie z dupy wzięty.
Odchodzi ryzyko, że przez pomyłkę ustawisz macchangera na vendora, który wyprodukował w swojej historii tylko jedną kartę wifi. xD
Offline
http://www.debian.pl/viewtopic.php?f=28&t=33748
apt-get install macchanger
polecenie które ustawią nam losowy adres MAC dla interfejsu eth0
ifdown eth0
macchanger -r eth0
ifup eth0[/quote]
Offline
tak z ciekawości - to generujecie maki losowo, potem czytacie dokumentację...
typowe przypadki studentów uczelni prywatnych...
do cholery, ja bym się nie tyle nie przyznawał co raczej wstydził... ale jak wam pasuje bycie głąbem co trzech literek typu rfc nie rozumie to życzę powodzenia.
Offline
@ethanak, no ale z czym masz problem? xD Ja tylko się zainteresowaniem tym tematem generowania losowych MAC, bo się przydaje. A, że na necie było szereg linijek generujących adresy, to ja to postanowiłem zweryfikować sobie. Okazało się, co się okazało, czyli wszystkie są do dupy. To próbowałem wymyślić jakieś rozwiązanie alternatywne. Wyszedł skrypt, potem zastąpiłem go przez macchanger i w sumie tylko dla interfejsów, które są dla publicznych sieci, np. ten wwan0. W sumie mam już coś takiego.
allow-hotplug wwan0 iface wwan0 inet dhcp dns-nameservers 127.0.0.1 pre-up macchanger -a $IFACE pre-up sleep 1 pre-up echo -e "AT+CFUN=1\r" > /dev/huawei-E3372-0 pre-up sleep 1 pre-up echo -e "AT^SYSCFGEX=\"03\",3FFFFFFF,1,2,800C5,,\r" > /dev/huawei-E3372-0 pre-up sleep 1 pre-up echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/huawei-E3372-0 pre-down echo -e "AT^NDISDUP=1,0\r" > /dev/huawei-E3372-0 pre-down sleep 1 pre-down echo -e "AT^SYSCFGEX=\"030201\",3FFFFFFF,1,2,800C5,,\r" > /dev/huawei-E3372-0 pre-down sleep 1 post-down echo -e "AT+CFUN=0\r" > /dev/huawei-E3372-0 post-down macchanger -p $IFACE
Także, kokodżambo i do przodu, nie ma się znowu co dąsać. xD
A i jeszcze, kluczowe [b]macchanger -a[/b] , a nie [b]macchanger -r[/b] .
Ostatnio edytowany przez morfik (2016-04-29 20:55:02)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00111 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.89.42' WHERE u.id=1 |
0.00079 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.89.42', 1732998363) |
0.00060 | SELECT * FROM punbb_online WHERE logged<1732998063 |
0.00075 | DELETE FROM punbb_online WHERE ident='18.119.125.240' |
0.00078 | DELETE FROM punbb_online WHERE ident='3.136.22.204' |
0.00101 | DELETE FROM punbb_online WHERE ident='3.144.109.159' |
0.00093 | DELETE FROM punbb_online WHERE ident='3.145.66.104' |
0.00073 | SELECT topic_id FROM punbb_posts WHERE id=301061 |
0.00019 | SELECT id FROM punbb_posts WHERE topic_id=28577 ORDER BY posted |
0.00084 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28577 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00251 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28577 ORDER BY p.id LIMIT 0,25 |
0.00099 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28577 |
Total query time: 0.01144 s |