我的用户在公司笔记本电脑上使用 Ubuntu。他们没有 sudo 权限。IT 安全策略拒绝连接开放 WiFi 网络。如何设置网络管理器以拒绝连接到该网络并仅允许连接到加密无线网络?
用户将连接到随机 wifi。我不想将连接限制在已知的 wifi 网络。
答案1
有一个目录/etc/network/if-up.d
。此目录中的脚本在建立新连接时运行。我编写了脚本来检查 wifi 网络的连接模式以及它是开放的还是 WEP 连接断开。
#!/bin/bash
encryption=$(wpa_cli status | grep pairwise_cipher | cut -d "=" -f 2)
wifiname=$(wpa_cli status | grep -w ssid | cut -d "=" -f 2)
interface=$(wpa_cli status | grep interface | cut -d " " -f 3 | tr -d "'")
if [[ $encryption == WEP* ]]; then
nmcli device disconnect $interface
fi
if [[ $encryption == NONE ]]; then
nmcli device disconnect $interface
fi
答案2
- 更改网络管理器的访问权限
- 从配置中删除所有打开的 wifi
- 检查自动连接到您的 wifi 配置,并通过添加您的 ap 的 mac 地址来强制执行配置。
答案3
我认为只有一种方法可以做到这一点。
您可以禁用网络管理器并在其中设置特定的无线网络/etc/network/interfaces
。
如果您在那里设置了接口,NM 将自动停止管理该接口。
答案4
我认为最好的方法是使用包含您需要的所有变量的预脚本:
/etc/network/if-pre-up.d/
例如检查:
/etc/network/if-pre-up.d/wireless-tools
遗憾的是,NetworkManager/dispatcher 尚未实现它。请参阅:
/etc/NetworkManager/dispatcher.d/01ifupdown
# pre-up/pre-down not implemented. See # https://bugzilla.gnome.org/show_bug.cgi?id=387832 # pre-up) # export MODE="start" # export PHASE="pre-up" # run-parts /etc/network/if-pre-up.d # ;; # pre-down) # export MODE="stop" # export PHASE="pre-down" # run-parts /etc/network/if-down.d # ;;
无论如何,我看到你已经使用了
/etc/network/if-up.d
。它没有你想要的所有信息,比如加密类型,但它有一些信息,比如接口名称和 WiFi SSID。你可以最大限度地减少外部调用。您可以使用如下简单脚本来研究任何环境:
#!/bin/sh #myuser logfile=/home/myuser/Desktop/wireless-pre-up.log touch $logfile echo args: $@ >> $logfile env >> $logfile echo == >> $logfile
输出(wireless-pre-up.log):
args: wlan0 up DHCP4_REQUESTED_NTP_SERVERS=1 DHCP4_REQUESTED_TIME_OFFSET=1 DHCP4_SUBNET_MASK=255.255.255.0 DHCP4_REQUESTED_DOMAIN_SEARCH=1 DHCP4_REQUESTED_HOST_NAME=1 DHCP4_REQUESTED_MS_CLASSLESS_STATIC_ROUTES=1 CONNECTION_UUID=35821fc8-d6ce-4fb2-bb5d-ac4a52aa931e DHCP4_REQUESTED_SUBNET_MASK=1 DEVICE_IFACE=wlan0 IP4_NAMESERVERS=192.168.1.1 DHCP4_DHCP_SERVER_IDENTIFIER=192.168.1.1 DHCP4_REQUESTED_NETBIOS_NAME_SERVERS=1 DHCP4_REQUESTED_DOMAIN_NAME=1 DHCP4_DHCP_LEASE_TIME=86400 DHCP4_EXPIRY=1441408529 DHCP4_NETWORK_NUMBER=192.168.1.0 IP4_NUM_ADDRESSES=1 DHCP4_ROUTERS=192.168.1.1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin IP4_NUM_ROUTES=0 IP4_ADDRESS_0=192.168.1.4/24 192.168.1.1 DEVICE_IP_IFACE=wlan0 DHCP4_REQUESTED_ROUTERS=1 DHCP4_REQUESTED_STATIC_ROUTES=1 DHCP4_BROADCAST_ADDRESS=192.168.1.255 DHCP4_IP_ADDRESS=192.168.1.4 DHCP4_NEXT_SERVER=0.0.0.0 DHCP4_REQUESTED_INTERFACE_MTU=1 DHCP4_DHCP_MESSAGE_TYPE=5 DHCP4_REQUESTED_BROADCAST_ADDRESS=1 DHCP4_DOMAIN_NAME_SERVERS=192.168.1.1 CONNECTION_ID=MyWifiName DHCP4_REQUESTED_WPAD=1 PWD=/ DHCP4_REQUESTED_DOMAIN_NAME_SERVERS=1 DHCP4_REQUESTED_NETBIOS_SCOPE=1 DHCP4_REQUESTED_RFC3442_CLASSLESS_STATIC_ROUTES=1