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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-05-24 13:14:23

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Losowy hostname w DHCP

Część osób pewnie korzysta z mniej lub bardziej losowego adresu MAC w trosce o swoją prywatność w sieciach WiFi ale pewnie zapomina o tym, że linuxowy klient DHCP przesyła standardowo hostname do serwera DHCP i w ten sposób zmiana adresu MAC jest pozbawiona sensu. Przesyłanie hostname można wyłączyć w konfiguracji dhclienta i to nie problem. Ja jednak chciałbym by mój system w sieciach WiFi generował na czas podłączenia "losowy" hostname. Oczywiście on nie może być do końca losowy, np. "HDA291JS1", bo to się rzuca w oczy. Mi by zależało na generowaniu tego hostname w oparciu o jakieś imiona + "-Komputer", czyli wynikowa nazwa miałyby postać "Rysiek-Komputer". Nie wiem czy dhclient pozwala na tego typu operacje ale przy pomocy jego skryptów można by przestawić globalny hostname na ten losowy tuż przed wysłaniem zapytania o adresacje do serwera DHCP i po jej otrzymaniu przestawić hostname z powrotem na starą nazwę. Nadal nie wiem jak najlepiej wygenerować taką nazwę hosta. Ktoś ma może jakiś pomysł? Wystarczy jakaś shellowa linijka.

Offline

 

#2  2016-05-24 13:41:41

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Losowy hostname w DHCP

Metoda słownikowa

Kod:

#changing hostname to random word from dictionary

FILE=/usr/share/dict/american-english
WORD=$(sort -R $FILE | head -1)

printf “%s\nChanging Hostname…\n”
OLDHOST=$(hostname)
hostname $WORD
if [ $? == 0 ]; then
printf “%sPrevius Hostname: $OLDHOST \n”
printf “%sRandom Hostname: $WORD \n”
else
printf “%sScript encounter an error, sorry…\n”
exit 1
fi

Offline

 

#3  2016-05-24 14:07:59

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

Ja wykombinowałem coś takiego:

Kod:

# rm -f /var/lib/dhcp/dhclient.* && \
sed "s=$(hostname)=REPLACEME=g" -i /etc/hosts && \
hostname "$(shuf -n 1 /home/morfik/Desktop/names)-Komputer" && \
sed "s=REPLACEME=$(hostname)=g" -i /etc/hosts


# rm -f /var/lib/dhcp/dhclient.* && \
sed "s=$(hostname)=REPLACEME=g" -i /etc/hosts && \
hostname "morfikownia" && \
sed "s=REPLACEME=$(hostname)=g" -i /etc/hosts

Tzn, ta pierwsza zwrotka jest dla ustawienia losowej nazwy, druga przywraca. Teraz wystarczy znaleźć jakiś słownik polskich imion bez polskich znaków. xD

Offline

 

#4  2016-05-24 14:14:18

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Losowy hostname w DHCP

znajdz z polskimi znakami i przepuść przez konwerta. iconv z //TRANSLIT tez powinien dac rade.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#5  2016-05-24 18:22:16

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

Słownik wygenerowałem ze 100 najpopularniejszych imion (zarówno z dużych jak i małych liter pisane):

Kod:

# iconv -f utf-8 -t ASCII//TRANSLIT a > b
# cat b | tr '[:upper:]' '[:lower:]' > c

Tylko ten cały mechanizm generowania losowego hostname nie działa za bardzo tak jak ja bym tego chciał. Niby zarówno skrypty dhclient jak i /etc/network/interfaces działają tylko w przypadku pierwszego zapytania o adres via DHCP. To jest okres między PREINIT i BOUND . Na ten czas można bez problemu zmienić hostname i to on zostanie wysłany przez sieć. Problem pojawia się z RENEW. Niby dhclient ma taki "powód" zdefiniowany i można skrypt wykonać przed jak i po nim ale odnowienie lease dokonuje się po skrypcie tak czy inaczej. I nie da rady w ten sposób tego hostname na chwilę zmienić tak by podczas RENEW był ten losowy.

W taki sposób albo lepiej już nie wysyłać żadnego horname albo przez cały okres od PREINIT do RELEASE (ifup, ifdown) jechać na wybranej nazwie. Problem w tym, że mój system nie lubi innej nazwy niż morfikownia. xD Nie działa sudo, a xserver ma problemy z DISPLAY i ciasteczkami. xD Także to chyba nie jest dobry pomysł by te hostname zmieniać na stałe. Gdyby można było je zmieniać tak na chwilę, jak ja chciałem, to ten sposób mógłby się sprawdzić. A tak to mi pozostaje jedynie uciszyć dhclient, by nazwy hosta nie słał w zapytaniach DHCP.

Może coś jeszcze wymyślę ale raczej wątpię.

Offline

 

#6  2016-05-24 19:24:49

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Losowy hostname w DHCP

Spróbuj generować tą losową nazwę do konfiguracji klienta dhcp pod opcje:

Kod:

send host-name "nazwahosta"
supersede host-name "nazwahosta"

Z tego co wyczytałem, wtedy pozostaje dla innych usług hostname z /etc/hostaname a jedynie dhclient zgłasza swoją z własnego pliku konfiguracyjnego.

Ostatnio edytowany przez arecki (2016-05-24 19:28:37)

Offline

 

#7  2016-05-24 19:42:39

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

No tak, tylko ja chce losową nazwę hosta z tych 200 imion (100 z małych liter, 100 z dużych) i chcę aby ta nazwa była ustawiana tylko na czas kontaktu z serwerem DHCP. Póki co nie mam pojęcia jak takie coś zrobić.

Offline

 

#8  2016-05-24 20:01:20

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Losowy hostname w DHCP

Nie wiem z czym masz problem.
Zamiast zmieniać hostname zmieniaj te opcje w pliku konfiguracyjnym klienta dhcp.

Offline

 

#9  2016-05-24 20:06:16

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

I mam tak ciągle zmieniać je? xD

Offline

 

#10  2016-05-24 20:12:18

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Losowy hostname w DHCP

Tak samo jak to robisz swoim skryptem.

Offline

 

#11  2016-05-24 20:16:40

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

Tylko ten skrypt jest wołany bezpośrednio przez dhclient i mam dostępne w nim całe środowisko, przykładowo:

Kod:

Tue May 24 20:09:32 CEST 2016: entering /etc/dhcp/dhclient-enter-hooks.d, dumping variables.
reason='PREINIT'
interface='wwan0'
--------------------------
Tue May 24 20:09:32 CEST 2016: entering /etc/dhcp/dhclient-exit-hooks.d, dumping variables.
reason='PREINIT'
interface='wwan0'
--------------------------
Tue May 24 20:09:41 CEST 2016: entering /etc/dhcp/dhclient-enter-hooks.d, dumping variables.
reason='BOUND'
interface='wwan0'
new_ip_address='10.143.56.87'
new_network_number='10.143.56.80'
new_subnet_mask='255.255.255.240'
new_broadcast_address='10.143.56.95'
new_routers='10.143.56.81'
new_domain_name_servers='89.108.195.20 89.108.202.20'
old_ip_address='10.143.90.72'
old_network_number='10.143.90.64'
old_subnet_mask='255.255.255.240'
old_broadcast_address='10.143.90.79'
old_routers='10.143.90.65'
old_domain_name_servers='89.108.195.20 89.108.202.20'

Już widzisz, czemu z tych skryptów korzystam? xD

Offline

 

#12  2016-05-24 20:25:19

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Losowy hostname w DHCP

Z takiej metody nie korzystałem.

Offline

 

#13  2016-05-25 05:29:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Losowy hostname w DHCP

Albo domyślny localhost - sporo linuxów takiego używa, min 90% buntów.
:D

Ostatnio edytowany przez Jacekalex (2016-05-25 05:30:04)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2016-05-25 09:57:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

To nadal za mało. xD

Offline

 

#15  2016-05-25 10:12:37

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: Losowy hostname w DHCP

[quote=Jacekalex]Albo domyślny localhost - sporo linuxów takiego używa, min 90% buntów.
:D[/quote]
No to może być mylące, ktoś myśli sobie że to *buntu i Debiany w domyślnej konfiguracji, a przy próbie włamania napotyka szyfrowanie, cgroupy, regułki i inne pamy.

Offline

 

#16  2016-05-25 10:59:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Losowy hostname w DHCP

Mogę w sumie dodać 100 pozycji z localhost do listy nazw. Zrobić też ten Rysiek-Komputer, bo takie coś chyba jest na windowsach ale nadal potrzebuje jakiegoś sposobu na zmianę nazwy hosta na czas RENEW. xD

A i jeszcze taki bajer, ten hostname podczas RENEW musi pasować do tego wcześniejszego. xD To akurat nie problem. Trzeba będzie podczas PREINIT zapisać gdzieś ustawianą nazwę hosta i później wykorzystać ją w RENEW, to chyba dam radę zrobić.

Kod:

# shuf -n 1 /etc/dhcp/names
localhost

# shuf -n 1 /etc/dhcp/names
sebastian-Komputer

# shuf -n 1 /etc/dhcp/names
Hubert

# shuf -n 1 /etc/dhcp/names
localhost

# shuf -n 1 /etc/dhcp/names
Nina-komputer

Chyba wtapiam się w tłum wystarczająco teraz. xD

Ostatnio edytowany przez morfik (2016-05-25 11:08:42)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.018 seconds, 13 queries executed ]

Informacje debugowania

Time (s) Query
0.00020 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00210 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.145.44.22' WHERE u.id=1
0.00098 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.44.22', 1732739547)
0.00058 SELECT * FROM punbb_online WHERE logged<1732739247
0.00116 DELETE FROM punbb_online WHERE ident='3.135.214.175'
0.00360 DELETE FROM punbb_online WHERE ident='52.14.209.100'
0.00052 SELECT topic_id FROM punbb_posts WHERE id=301846
0.00082 SELECT id FROM punbb_posts WHERE topic_id=28654 ORDER BY posted
0.00076 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=28654 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00157 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=28654 ORDER BY p.id LIMIT 0,25
0.00111 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28654
Total query time: 0.01353 s