“Modo avión” en OS X. ¿Comando alternativo para 'rfkill'?

8

Mac OS X no reconoce rfkill de su terminal, y estoy buscando un comando alternativo que tenga una funcionalidad similar (alternar "Modo avión").

NOTA: No deseo abrir un .app para alternar. Me gustaría ejecutar el comando desde la línea de comandos o dentro del script en Bash (o equivalentes).

Con "Modo avión", pretendía tomar prestado el término de la página de soporte de iOS aquí . Me gustaría deshabilitar todas las comunicaciones de red entrantes / salientes de mi sistema.

    
pregunta melvynkim 21.03.2013 - 23:01

2 respuestas

8

Cree una ubicación ad hoc denominada isolated o airplane donde estén todas las interfaces de red y desactivadas .

Cambie a esta ubicación de sordos con:

networksetup -switchtolocation isolated

Podría ser más interesante que rfkill ya que puedes protegerte desde un cable Ethernet inadvertido que podría estar escuchando a todos sus Comunicaciones (y son muchas): [. Para comprobar que todo está realmente apagado, ejecute:

ifconfig -a | grep '[<,]UP[,>]' | grep -v '[<,]LOOPBACK[,>]'

Si este comando no muestra nada, entonces todas sus interfaces están abajo , todo está bien.

Si este comando genera algo, como aquí:

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

significa que el nombre de la interfaz (aquí en1 , que es el inalámbrico uno en este Mac) está en donde no debería. Esta es la señal de que la configuración realizada está fallando o que algún caballo de Troya lo activó para llegar a su servidor de control a través de Internet.

    
respondido por el daniel Azuelos 24.03.2013 - 17:39
6

Dependiendo de mi objetivo (¿Debo preocuparme por cerrar también la interfaz de datos?), puedo elegir el plan en consecuencia:

Plan A para (1) Interfaces de red y (2) Interfaz de datos

Plan B para (1) Interfaces de red

(Plan A # 1) Obtenga información de las interfaces de hardware instaladas (incluidas las interfaces de datos):

Primero, me gustaría saber cuántas y qué tipos de interfaces debería preocuparme.

$ networksetup -listallhardwareports

Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A

Hardware Port: Ethernet
Device: en0
Ethernet Address: ff:ff:ff:ff:ff:ff

Hardware Port: FireWire
Device: fw0
Ethernet Address: ff:ff:ff:ff:ff:ff:ff:ff

Hardware Port: Wi-Fi
Device: en1
Ethernet Address: ff:ff:ff:ff:ff:f

(Plan A #?) (Opcional) Obtenga solo la lista de interfaces de red:

Este paso me facilita el grep .

$ networksetup -listallnetworkservices

An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi

(Plan A # 2) Obtenga el nombre del dispositivo de las interfaces de red.

Me gustaría saber qué interfaz (s) de red está / están activas.

$ ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff 
    media: autoselect (none)
    status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff 
    inet6 ffff::ffff:ffff:ffff:ffff%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.fff netmask 0xffffff00 broadcast 192.168.1.fff
    media: autoselect
    status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
    lladdr ff:ff:ff:ff:ff:ff:ff:ff 
    media: autoselect <full-duplex>
    status: inactive

(Plan B # 1) Localice el comando airport o configure el alias para el comando airport si no se reconoce:

Mi sistema no pudo reconocer el comando airport , así que tuve que agregar debajo de la línea a .bash_profile .

alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'

(Plan B # 2) Verifique el estado actual de AirPort:

$ ./airport -I

     agrCtlRSSI: -10
     agrExtRSSI: 0
    agrCtlNoise: -10
    agrExtNoise: 0
          state: running
        op mode: station 
     lastTxRate: 100
        maxRate: 100
lastAssocStatus: 0
    802.11 auth: open
      link auth: fffffffffffffffff
          BSSID: ff:ff:ff:ff:ff:ff
           SSID: MelvNetwork
            MCS: 15
        channel: 6 

(Plan A y B # 3) Activación / desactivación del AirPort:

# For OS X 10.7 and later
$ networksetup -setairportpower en1 on   # Turn on Airport
$ networksetup -setairportpower en1 off  # Turn off Airport

# for OS X 10.6 and below
$ networksetup -setairportpower on       # Turn on AirPort
$ networksetup -setairportpower off      # Turn off AirPort

(Plan A y B # 4) Activar / desactivar BlueTooth:

Descargue blueutil aquí .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

Script:

Ahora que tengo todos los ingredientes, ¡puedo escribir el script para OS X 10.7!

Últimos comentarios:

(1) Algunas de las salidas están enmascaradas con el carácter 'f'.

(2) Según $ man networksetup , puede configurar el proxy, TCP / IP, PPPoE también (no probado).

(3) La sugerencia de @ RichHomolka, networksetup --enableuserprofile está en desuso para OS X 10.7 (no probado en otras versiones).

(4) Si alguien que sigue el procedimiento anterior encuentra un problema, ¿podría resolverlo en el comentario (o en una respuesta por separado)?

    
respondido por el melvynkim 22.03.2013 - 05:40

Lea otras preguntas en las etiquetas