View Issue Details

IDProjectCategoryView StatusLast Update
0003276Kali LinuxGeneral Bugpublic2016-05-11 13:29
Reportersteev Assigned Tosbrun  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Fixed in Version2016.2 
Summary0003276: 73-special-net-names.rules causes all USB wifi devices to follow MAC based naming
Description

On my system, I recently noticed that my wifi device was no longer called wlan0 but instead some wlx.....

There have also been a lot of people asking in the kali irc channel because they've noticed as well.

Steps To Reproduce

Use a USB wifi device
Notice that the interface name is not wlanX

Follow the 3 steps from
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

and notice that none of them change the network interface name back to wlanX.

The issue is in the 73-special-net-names.rules file. The last line is:

Use MAC based names for network interfaces which are directly or indirectly

on USB and have an universally administered (stable) MAC address (second bit

is 0).

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", ATTR{address}=="?[014589cd]:*", IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

There is no way to override this rule aside from commenting it out (which then provides the proper wlanX interface names again)

Additional Information

This is definitely an upstream (debian, not systemd) bug.

Another way to check which rule was causing the issue is:

udevadm test /sys/class/net/wl*

Activities

rhertzog

rhertzog

2016-05-04 19:14

administrator   ~0005185

Yes, that's a change in udev 229-5 of a few days ago:

  • Set MAC based name for USB network interfaces only for universally
    administered (i. e. stable) MACs, not for locally administered (i. e.
    randomly generated) ones. Drop /lib/systemd/network/90-mac-for-usb.link
    (as link files don't currently support globs for MACAddress=) and replace
    with an udev rule in /lib/udev/rules.d/73-special-net-names.rules.
    (Closes: #812575, LP: #1574483)

So if we want to disable that, we will have to provide an empty /etc/udev/rules.d/73-special-net-names.rules and create it in live-build (in kali-config/common/hooks/live/kali-hacks.chroot in live-build-config).

--- a/kali-config/common/hooks/live/kali-hacks.chroot
+++ b/kali-config/common/hooks/live/kali-hacks.chroot
@@ -8,7 +8,8 @@ systemctl --user enable pulseaudio.service || true

Disable the udev rules renaming the network interfaces (can also be

achieved with kernel command line net.ifnames=0 but we don't have a nice

way to set it on the installed system)

-mkdir -p /etc/systemd/network
+mkdir -p /etc/systemd/network /etc/udev/rules.d
ln -sf /dev/null /etc/systemd/network/90-mac-for-usb.link
ln -sf /dev/null /etc/systemd/network/99-default.link
+echo > /etc/udev/rules.d/73-special-net-names.rules
update-initramfs -u

Can you test this out?

steev

steev

2016-05-04 19:40

manager   ~0005187

The only issue I have with this is that the 73-special-net-rules isn't just for usb based NICs; it also affects ibmveth and virtual NIC based on idrac.

I don't know of anyone using either of those, but I could be wrong. That said, I've tested the empty file here and it does give the desired wlanX interfaces again.

rhertzog

rhertzog

2016-05-09 10:14

administrator   ~0005209

I guess we should move our configuration to disable those funky names in kali-defaults as the hack in live-build-config does not help with upgraded systems.

We need /etc/systemd/network/99-default.link as a symlink to /dev/null and now /etc/udev/rules.d/73-special-net-names.rules as a copy of /lib/udev/rules.d/73-special-net-names.rules with the rules for USB network card dropped.

eanitro86

eanitro86

2016-05-09 22:18

reporter   ~0005226

https://www.youtube.com/watch?v=39yhxWT238w
Made a video to show how to fix or download my script at...
http://expirebox.com/download/3adf43d517a75d03c43c8541130d9c7c.html
Password protection is ON (password: abuRuXej)

steev

steev

2016-05-09 22:54

manager   ~0005227

@eanitro86 isn't it kind of pointless to password protect something and post the password publicly?

And the issue is more nuanced than just symlinking (if you read above we already mention that); the issue is that there are multiple (different) rules in the file so symlinking to /dev/null causes all of them to be disabled, not just the (wanted) wifi rules.

sbrun

sbrun

2016-05-11 13:29

manager   ~0005235

it's fixed with kali-defaults version 2016.2.2

Issue History

Date Modified Username Field Change
2016-05-04 18:53 steev New Issue
2016-05-04 19:14 rhertzog Note Added: 0005185
2016-05-04 19:14 rhertzog Assigned To => rhertzog
2016-05-04 19:14 rhertzog Status new => assigned
2016-05-04 19:40 steev Note Added: 0005187
2016-05-09 10:14 rhertzog Note Added: 0005209
2016-05-09 10:14 rhertzog Assigned To rhertzog => sbrun
2016-05-09 22:18 eanitro86 Note Added: 0005226
2016-05-09 22:54 steev Note Added: 0005227
2016-05-11 13:29 sbrun Note Added: 0005235
2016-05-11 13:29 sbrun Status assigned => resolved
2016-05-11 13:29 sbrun Resolution open => fixed
2016-05-11 13:29 sbrun Fixed in Version => 2016.2