Provided by: iwd_1.5-1_amd64 bug

NAME

       iwd.network - Network configuration for wireless daemon

SYNOPSIS

       Network configuration files .open, .psk and .8021x

DESCRIPTION

       iwd  stores  information  on  known  networks,  and  reads  information on pre-provisioned
       networks, from small text configuration files.  Those files live in  the  state  directory
       specified  by  the  environment  variable  $STATE_DIRECTORY, which is normally provided by
       systemd.  In the absence of such an environment variable it defaults to $LIBDIR/iwd, which
       normally  is  set  to  /var/lib/iwd.   You  can create, modify or remove those files.  iwd
       monitors the directory for changes and will update its state accordingly.  iwd  will  also
       modify  these  files  in  the  course  of  network connections or as a result of D-Bus API
       invocations.

FILE FORMAT

       The syntax is similar to that of GNOME keyfile  syntax  (which  is  based  on  the  format
       defined         in        the        Desktop        Entry        Specification,        see
       http://freedesktop.org/Standards/desktop-entry-spec).  The recognized groups  as  well  as
       keys and values in each group are documented here.  Defaults are written in bold.

       For  completeness  we  include the description of the file syntax here. This is the syntax
       that the ell library's l_settings class implements. The syntax is based on lines and lines
       are delimited by newline characters.

       Empty  lines  are  ignored  and whitespace at the beginning of a line is ignored.  Comment
       lines have # as their first non-whitespace character.

       Key-value lines contain a setting key, an  equal  sign  and  the  value  of  the  setting.
       Whitespace  preceding the key, the equal sign or the value, is ignored.  The key must be a
       continuous string of alphanumeric and underscore characters and  minus  signs  only.   The
       value  starts at the first non-whitespace character after the first equal sign on the line
       and ends at the end of the line and must be correctly UTF-8-encoded. A boolean  value  can
       be  true  or  false  but  0 or 1 are also allowed.  Integer values are written in base 10.
       String values, including file paths and hexstrings, are written  as  is  except  for  five
       characters  that  may  be  backslash-escaped: space, \t, \r, \n and backslash itself.  The
       latter three must be escaped.  A space character must  be  escaped  if  it  is  the  first
       character in the value string and is written as \s.

       Settings  are interpreted depending on the group they are in.  A group starts with a group
       header line and contains all settings until the next group's header line.  A group  header
       line  contains  a [ character followed by the group name and a ] character.  Whitespace is
       allowed before the [ and after the ].  A group name consists of printable characters other
       than [ and ].

NAMING

       File  names  are  based  on  the  network's SSID and security type: Open, PSK-protected or
       802.1x. The name consist of the encoding of the SSID followed by .open,  .psk  or  .8021x.
       The SSID appears verbatim in the name if it contains only alphanumeric characters, spaces,
       underscores or minus signs.  Otherwise it is encoded as an  equal  sign  followed  by  the
       lower-case hex encoding of the name.

SETTINGS

       The  settings  below  are  split  into several sections and grouped into broad categories.
       Each category has a group associated with it which is  given  at  the  beginning  of  each
       sub-section.  Recognized keys and valid values are listed following the group definition.

   General Settings
       The group [Settings] contains general settings.

                            ┌────────────┬──────────────────────────────────┐
                            │AutoConnect │ Values: true, false              │
                            │            │                                  │
                            │            │ Whether   the   network  can  be │
                            │            │ connected to automatically       │
                            ├────────────┼──────────────────────────────────┤
                            │Hidden      │ Values: true, false              │
                            │            │                                  │
                            │            │ Whether the network  is  hidden, │
                            │            │ i.e.  its  SSID must be included │
                            │            │ in an active scan request        │
                            └────────────┴──────────────────────────────────┘

   Network Authentication Settings
       The  group  [Security]  contains  settings   for   Wi-Fi   security   and   authentication
       configuration.

               ┌───────────────────────────┬────────────────────────────────────────────┐
               │Passphrase                 │ 8..63 character string                     │
               │                           │                                            │
               │                           │ Passphrase   to   be  used  when           │
               │                           │ connecting    to    WPA-Personal           │
               │                           │ networks.      Required     when           │
               │                           │ connecting   to    WPA3-Personal           │
               │                           │ (SAE)  networks.   Also required           │
               │                           │ if  the  PreSharedKey   is   not           │
               │                           │ provided.   If  not  provided in           │
               │                           │ settings,  the  agent  will   be           │
               │                           │ asked   for  the  passphrase  at           │
               │                           │ connection time.                           │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │PreSharedKey               │ 64 character hex string                    │
               │                           │                                            │
               │                           │ Processed  passphrase  for  this           │
               │                           │ network   in   the   form  of  a           │
               │                           │ hex-encoded 32  byte  pre-shared           │
               │                           │ key.    Must   be   provided  if           │
               │                           │ Passphrase is omitted.                     │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-Method                 │ one of the following methods:              │
               │                           │                                            │
               │                           │ AKA, AKA', GTC,  MD5,  MSCHAPV2,           │
               │                           │ PEAP, PWD, SIM, TLS, TTLS                  │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-Identity               │ string                                     │
               │                           │                                            │
               │                           │ Identity  string  transmitted in           │
               │                           │ plaintext.  Depending on the EAP           │
               │                           │ method,   this   value   can  be           │
               │                           │ optional  or  mandatory.    GTC,           │
               │                           │ MD5,  MSCHAPV2,  PWD  require an           │
               │                           │ identity, so  if  not  provided,           │
               │                           │ the  agent  will be asked for it           │
               │                           │ at connection time.   TLS  based           │
               │                           │ methods  (PEAP, TLS, TTLS) might           │
               │                           │ still require an EAP-Identity to           │
               │                           │ be  set, depending on the RADIUS           │
               │                           │ server configuration.                      │
               └───────────────────────────┴────────────────────────────────────────────┘

               │EAP-Password               │ string                                     │
               │                           │                                            │
               │                           │ Password  to  be  provided   for           │
               │                           │ WPA-Enterprise   authentication.           │
               │                           │ If not provided, the agent  will           │
               │                           │ be  asked  for  the  password at           │
               │                           │ connection time.   Required  by:           │
               │                           │ GTC, MD5, MSCHAPV2, PWD.                   │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-Password-Hash          │ hex string                                 │
               │                           │                                            │
               │                           │ Some  EAP  methods  can accept a           │
               │                           │ pre-hashed   version   of    the           │
               │                           │ password.   For  MSCHAPV2, a MD4           │
               │                           │ hash  of  the  password  can  be           │
               │                           │ given here.                                │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TLS-CACert,            │ absolute  file  path or embedded           │
               │EAP-TTLS-CACert,           │ pem                                        │
               │EAP-PEAP-CACert            │                                            │
               │                           │ Path to  a  PEM-formatted  X.509           │
               │                           │ root certificate list to use for           │
               │                           │ trust   verification   of    the           │
               │                           │ authenticator.               The           │
               │                           │ authenticator's         server's           │
               │                           │ certificate    chain   must   be           │
               │                           │ verified by at least one  CA  in           │
               │                           │ the  list for the authentication           │
               │                           │ to succeed.   If  omitted,  then           │
               │                           │ authenticator's      certificate           │
               │                           │ chain will not be verified  (not           │
               │                           │ recommended.)                              │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TLS-ClientCert         │ absolute  file  path or embedded           │
               │                           │ pem                                        │
               │                           │                                            │
               │                           │ Path to a  PEM-formatted  client           │
               │                           │ X.509 certificate or certificate           │
               │                           │ chain to send on server request.           │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TLS-ClientKey          │ absolute file path  or  embedded           │
               │                           │ pem                                        │
               │                           │                                            │
               │                           │ Path  to  a PEM-formatted client           │
               │                           │ PKCS#8 private key corresponding           │
               │                           │ to  the  public  key provided in           │
               │                           │ EAP-TLS-ClientCert.                        │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TLS-                   │ string                                     │
               │ClientKeyPassphrase        │                                            │
               │                           │ Decryption key  for  the  client           │
               │                           │ private  key file.  This is used           │
               │                           │ if  the  private  key  given  by           │
               │                           │ EAP-TLS-ClientKey  is encrypted.           │
               │                           │ If not provided, then the  agent           │
               │                           │ is  asked  for the passphrase at           │
               │                           │ connection time.                           │
               └───────────────────────────┴────────────────────────────────────────────┘

               │EAP-TLS-ServerDomainMask,  │ string                                     │
               │EAP-TTLS-ServerDomainMask, │                                            │
               │EAP-PEAP-ServerDomainMask  │ A  mask  for  the  domain  names           │
               │                           │ contained    in   the   server's           │
               │                           │ certificate. At least one of the           │
               │                           │ domain   names  present  in  the           │
               │                           │ certificate's            Subject           │
               │                           │ Alternative Name extension's DNS           │
               │                           │ Name fields or the  Common  Name           │
               │                           │ has  to match at least one mask,           │
               │                           │ or  authentication  will   fail.           │
               │                           │ Multiple   masks  can  be  given           │
               │                           │ separated  by  semicolons.   The           │
               │                           │ masks are split into segments at           │
               │                           │ the dots.  Each segment  has  to           │
               │                           │ match its corresponding label in           │
               │                           │ the  domain  name.  An  asterisk           │
               │                           │ segment  in the mask matches any           │
               │                           │ label.  An asterisk  segment  at           │
               │                           │ the   beginning   of   the  mask           │
               │                           │ matches one or more  consecutive           │
               │                           │ labels from the beginning of the           │
               │                           │ domain string.                             │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TTLS-Phase2-Method     │ The following values are allowed:          │
               │                           │   Tunneled-CHAP,                           │
               │                           │   Tunneled-MSCHAP,                         │
               │                           │   Tunneled-MSCHAPv2,                       │
               │                           │   Tunneled-PAP or                          │
               │                           │   a valid EAP method name (see EAP-Method) │
               │                           │                                            │
               │                           │                                            │
               │                           │ Phase  2  authentication  method           │
               │                           │ for EAP-TTLS.  Can be either one           │
               │                           │ of  the  TTLS-specific   non-EAP           │
               │                           │ methods (Tunneled-*), or any EAP           │
               │                           │ method  documented  here.    The           │
               │                           │ following  two settings are used           │
               │                           │ if any of the non-EAP methods is           │
               │                           │ used.                                      │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TTLS-Phase2-Identity   │ The  secure  identity/username  string for │
               │                           │ the TTLS non-EAP Phase 2 methods.  If  not │
               │                           │ provided  iwd  will  request a username at │
               │                           │ connection time.                           │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TTLS-Phase2-Password   │ Password string for the TTLS non-EAP Phase │
               │                           │ 2   methods.  If  not  provided  IWD  will │
               │                           │ request a passphrase at connection time.   │
               ├───────────────────────────┼────────────────────────────────────────────┤
               │EAP-TTLS-Phase2-*          │ Any settings to be used for the inner  EAP │
               │                           │ method    if    one   was   specified   as │
               │                           │ EAP-TTLS-Phase2-Method,  rather   than   a │
               │                           │ TTLS-specific     method.    The    prefix │
               │                           │ EAP-TTLS-Phase2- replaces the EAP-  prefix │
               │                           │ in  the  setting  keys  and their usage is │
               │                           │ unchanged.   Since  the   inner   method's │
               │                           │ negotiation   is   encrypted,   a   secure │
               │                           │ identity string can be provided.           │
               └───────────────────────────┴────────────────────────────────────────────┘

               │EAP-PEAP-Phase2-*          │ Any settings to be used for the inner  EAP │
               │                           │ method  with EAP-PEAP as the outer method. │
               │                           │ The prefix EAP-PEAP-Phase2-  replaces  the │
               │                           │ EAP-  prefix in the setting keys and their │
               │                           │ usage  is  unchanged.  Since   the   inner │
               │                           │ method's   negotiation   is  encrypted,  a │
               │                           │ secure identity string can be provided.    │
               └───────────────────────────┴────────────────────────────────────────────┘

   Network Configuration Settings
       The group [IPv4]  contains  settings  for  Internet  Protocol  version  4  (IPv4)  network
       configuration with the static addresses.

                            ┌───────────┬──────────────────────────────────┐
                            │Address    │ IPv4 address string              │
                            │           │                                  │
                            │           │ The IPv4 address to assign. This │
                            │           │ field is required for the static │
                            │           │ configuration.                   │
                            ├───────────┼──────────────────────────────────┤
                            │Gateway    │ IPv4 address string              │
                            │           │                                  │
                            │           │ The  IPv4 address of the gateway │
                            │           │ (router). This field is required │
                            │           │ for the static configuration.    │
                            ├───────────┼──────────────────────────────────┤
                            │DNS        │ IPv4 address string              │
                            │           │                                  │
                            │           │ The  IPv4  address of the Domain │
                            │           │ Name System (DNS). This field is │
                            │           │ optional.  DNS  setting  can  be │
                            │           │ used to override the DNS entries │
                            │           │ received from the DHCP server.   │
                            ├───────────┼──────────────────────────────────┤
                            │Netmask    │ IPv4 address string              │
                            │           │                                  │
                            │           │ The  IPv4 address of the subnet. │
                            │           │ This    field    is    optional. │
                            │           │ 255.255.255.0 is used as default │
                            │           │ Netmask.                         │
                            ├───────────┼──────────────────────────────────┤
                            │Broadcast  │ IPv4 address string              │
                            │           │                                  │
                            │           │ The IPv4 address to be used  for │
                            │           │ the  broadcast.  This  field  is │
                            │           │ optional.                        │
                            ├───────────┼──────────────────────────────────┤
                            │DomainName │ string                           │
                            │           │                                  │
                            │           │ The DomainName is  the  name  of │
                            │           │ the  local Internet domain. This │
                            │           │ field  is  optional.  DomainName │
                            │           │ setting  can be used to override │
                            │           │ the  DomainName  value  obtained │
                            │           │ from the DHCP server.            │
                            └───────────┴──────────────────────────────────┘

   Embedded PEMs
       Rather  than including an absolute path to a PEM file (for certificates and keys), the PEM
       itself can be included inside the settings file and referenced directly. This allows  IEEE
       802.1x  network provisioning using a single file without any references to certificates or
       keys on the system.

       An embedded PEM can appear anywhere in the settings file using the following format  (this
       example the PEM is named 'my_ca_cert'):

          [@pem@my_ca_cert]
          ----- BEGIN CERTIFICATE -----
          <PEM data>
          ----- END CERTIFICATE -----

       After  this  special  group  tag  its  as  simple  as  pasting in a PEM file including the
       BEGIN/END tags. Now 'my_ca_cert' can be used to reference the certificate elsewhere in the
       settings file by prefixing the value with 'embed:'

       EAP-TLS-CACert=embed:my_ca_cert

       This is not limited to CA Certificates either. Client certificates, client keys (encrypted
       or not), and certificate chains can be included.

EXAMPLES

       The following are some examples of common configurations

   Open Network (Hidden)
          [Settings]
          Hidden=true

   Pre-Shared Key (PSK)
          [Security]
          Passphrase=secret123

   PWD
          [Security]
          EAP-Method=PWD
          EAP-Identity=user@domain.com
          EAP-Password=secret123

   TLS
          [Security]
          EAP-Method=TLS
          EAP-TLS-ClientCert=/certs/client-cert.pem
          EAP-TLS-ClientKey=/certs/client-key.pem
          EAP-TLS-CACert=/certs/ca-cert.pem
          EAP-TLS-ServerDomainMask=*.domain.com

   TTLS + PAP
          [Security]
          EAP-Method=TTLS
          EAP-Identity=open@identity.com
          EAP-TTLS-CACert=/certs/ca-cert.pem
          EAP-TTLS-Phase2-Method=Tunneled-PAP
          EAP-TTLS-Phase2-Identity=username
          EAP-TTLS-Phase2-Password=password
          EAP-TTLS-ServerDomainMask=*.domain.com

   PEAP + MSCHAPv2
          [Security]
          EAP-Method=PEAP
          EAP-Identity=open@identity.com
          EAP-PEAP-CACert=/certs/ca-cert.pem
          EAP-PEAP-Phase2-Method=MSCHAPV2
          EAP-PEAP-Phase2-Identity=username
          EAP-PEAP-Phase2-Password=password
          EAP-PEAP-ServerDomainMask=*.domain.com

SEE ALSO

       iwd(8), iwd.config(5)

AUTHOR

       Marcel  Holtmann  <marcel@holtmann.org>,   Denis   Kenzior   <denkenz@gmail.com>,   Andrew
       Zaborowski  <andrew.zaborowski@intel.com>,  Tim Kourt <tim.a.kourt@linux.intel.com>, James
       Prestwood <prestwoj@gmail.com>

COPYRIGHT

       2013-2019 Intel Corporation