Мои пользователи используют Ubuntu на корпоративных ноутбуках. У них нет разрешений sudo. Политика информационной безопасности запрещает подключения к открытым сетям WiFi. Как настроить Network Manager, чтобы запретить подключения к этим сетям и разрешить подключения только к зашифрованным беспроводным сетям?
Пользователи будут подключаться к случайному Wi-Fi. Я не хочу ограничивать соединения только с известными сетями Wi-Fi.
Существует каталог /etc/network/if-up.d
. Сценарии в этом каталоге являются выполнениями, когда новое соединение устанавливается. Я пишу сценарий, который проверяет режим соединения сети Wi-Fi и если это Открыто, или соединение 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
Я вижу единственный один способ сделать это.
можно отключить Администратора сети и установить определенные беспроводные сети в /etc/network/interfaces
.
при установке интерфейса там NM прекратит управлять интерфейсом автоматически.
cpufreq
и подобные утилиты. Я don' t используют их, хотя так не может отправить подходящий ответ на них.
– WinEunuuchs2Unix
25 November 2016 в 14:07
я думал, что лучшее должно использовать пред сценарий, которые имеют всю переменную, в которой Вы нуждаетесь:
/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