欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux使用NetworkManager随机生成你的MAC地址

程序员文章站 2022-05-24 18:06:51
今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 wi-fi,就能通过网络与外界保持联系。但现在的 wi-fi 热点们大都能够通过 每张网卡对应的...

今时今日,无论在家里的沙发上,还是在外面的咖啡厅,只要打开笔记本电脑,连上 wi-fi,就能通过网络与外界保持联系。但现在的 wi-fi 热点们大都能够通过 每张网卡对应的唯一 mac 地址 来追踪你的设备。下面就来看一下如何避免被追踪。
现在很多人已经开始注重个人隐私这个问题。个人隐私问题并不仅仅指防止他人能够访问到你电脑上的私有内容(这又是另一个问题了),而更多的是指 可追踪性(legibility),也就是是否能够被轻易地统计和追踪到。大家都应该 对此更加重视 。同时,这方面的底线是,服务提供者在得到了用户的授权后才能对用户进行追踪,例如机场的计时 wi-fi 只有在用户授权后才能够使用。
因为固定的 mac 地址能被轻易地追踪到,所以应该定时进行更换,随机的 mac 地址是一个好的选择。由于 mac 地址一般只在局域网内使用,因此随机的 mac 地址也不大会产生冲突 。

networkmanager简介

networkmanager由一个管理系统网络连接、并且将其状态通过d-bus(是一个提供简单的应用程序 互相通讯的途径的*软件项目,它是做为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户 端程序。
networkmanager服务:networkmanager - linux networking made easy
networkmanager的优点:简化网络连接的工作,让桌面本身和其他应用程序能感知网络。
networkmanager的后台服务:对于gnome和xfce那就是nm-applet工具,而对于kde用户来说就是knetworkmanager。
早期版本的networkmanager(早期称为networkmangler,即网络磨肉机)使用很不方便,但是现在其已经成为了一个强大的工具,让管理网络不再痛苦。

networkmanager 新版本的改进和新功能

networkmanager 新版本支持更多的的网络设备有关。从0.8.1开始增加了用于gsm、umts和cdma卡等移动宽带设备modemmanager的支持。使用 modemmanager也有新的功能,比如信号强度显示和选择2g/3g模式的功能。还可以关掉漫游功能以避免产生额外的连接费用;
networkmanager 0.8.1后还支持使用蓝牙,不仅支持个人区域网络(pan)上网,也支持老的蓝牙拨号网络(dun)协议。所有(或者说最多)支持的设备可以在wiki上找到;
networkmanager支持ipv6的自动配置和静态ip;networkmanager 新版本还会带来ipv6的dhcp支持
networkmanager 新版本增强设备以及协议的支持,networkmanager 最新版有一个全新的漂亮的客户端界面。
命令行接口:networkmanager 最新版的最大特征:命令行工具命令,一个networkmanager的命令行接口。
networkmanager有自己的cli工具:nmcli。使用nmcli用户可以查询网络连接的状态,也可以用来管理。优点:原始;语法相对简单;在cli中使用networkmanager很容易掌握。

配置 networkmanager

要将随机的 mac 地址默认地用于所有的 wi-fi 连接,需要创建 /etc/networkmanager/conf.d/00-macrandomize.conf 这个文件:

[device]
wifi.scan-rand-mac-address=yes
[connection]
wifi.cloned-mac-address=stable
ethernet.cloned-mac-address=stable
connection.stable-id=${connection}/${boot}

然后重启 networkmanager :

systemctl restart networkmanager

以上配置文件中,将 cloned-mac-address 的值设置为 stable 就可以在每次 networkmanager 激活连接的时候都生成相同的 mac 地址,但连接时使用不同的 mac 地址。如果要在每次激活连接时也获得随机的 mac 地址,需要将 cloned-mac-address 的值设置为 random。

设置为 stable 可以从 dhcp 获取相同的 ip 地址,也可以让 wi-fi 的 强制主页 (captive portal)根据 mac 地址记住你的登录状态。如果设置为 random ,在每次连接的时候都需要重新认证(或者点击“我同意”),在使用机场 wi-fi 的时候会需要到这种 random 模式。可以在这篇 networkmanager 的 博客文章 中参阅到有关使用 nmcli 从终端配置特定连接的详细说明。

使用 ip link 命令可以查看当前的 mac 地址,mac 地址将会显示在 ether 一词的后面

$ ip link
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown mode default group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <no-carrier,broadcast,multicast,up> mtu 1500 qdisc fq_codel state down mode default group default qlen 1000
link/ether 52:54:00:5f:d5:4e brd ff:ff:ff:ff:ff:ff
3: wlp1s0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq state up mode dormant group default qlen 1000
link/ether 52:54:00:03:23:59 brd ff:ff:ff:ff:ff:ff

什么时候不能随机化 mac 地址

在某些情况下确实需要能被追踪到。例如在家用网络中,可能需要将路由器配置为对电脑分配一致的 ip 地址以进行端口转发;再例如公司的雇主可能需要根据 mac 地址来提供 wi-fi 服务,这时候就需要进行追踪。要更改特定的 wi-fi 连接,请使用 nmcli 查看 networkmanager 连接并显示当前设置:

$ nmcli c | grep wifi
amtrak_wifi 5f4b9f75-9e41-47f8-8bac-25dae779cd87 wifi --
stapleshotspot de57940c-32c2-468b-8f96-0a3b9a9b0a5e wifi --
myhome e8c79829-1848-4563-8e44-466e14a3223d wifi wlp1s0
...
$ nmcli c show 5f4b9f75-9e41-47f8-8bac-25dae779cd87 | grep cloned
802-11-wireless.cloned-mac-address: --
$ nmcli c show e8c79829-1848-4563-8e44-466e14a3223d | grep cloned
802-11-wireless.cloned-mac-address: stable

这个例子在 amtrak 使用完全随机 mac 地址(使用默认配置)和 myhome 的永久 mac 地址(使用 stable 配置)。永久 mac 地址是在硬件生产的时候分配到网络接口上的,网络管理员能够根据永久 mac 地址来查看 设备的制造商 id 。

更改配置并重新连接活动的接口:

$ nmcli c modify 5f4b9f75-9e41-47f8-8bac-25dae779cd87 802-11-wireless.cloned-mac-address random
$ nmcli c modify e8c79829-1848-4563-8e44-466e14a3223d 802-11-wireless.cloned-mac-address permanent
$ nmcli c down e8c79829-1848-4563-8e44-466e14a3223d
$ nmcli c up e8c79829-1848-4563-8e44-466e14a3223d
$ ip link
...

你还可以安装 networkmanager-tui ,就可以通过可视化界面菜单来编辑连接。

当你走在路上时,你要留意周围的环境,并警惕可能的危险。同样,在使用公共互联网资源时也要注意你自己的可追踪性。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接