UVA maintains two wifi networks for students and faculty to connect to: the insecure wahoo
and the secure eduroam
.
I (Luther Tychonievich) wrote this information down because I wanted to remember it. It likely contains some errors. I do not work for UVA’s IT department, have no expertise in networking or security, and offer the following text as-is with no guarantee or support. Further, I my time at UVA is scheduled to come to an end in August 2022 and I have no knowledge of how long this webpage will still be hosted after that, nor am I likely to make updates after the next breaking change ITS makes to the networks here.
These instructions are current as of July 2022. I’ve been at UVA since 2008 and have had to change how this works 5 times (in 2011, 2014, 2018, 2021, and 2022), leading me to expect these will be valid for only a few years.
Using the Network Manager app1 (the default tool used for network connection in Cinnamon, MATE, Gnome, XFCE, LXDE, Ubuntu, etc.), most of the defaults should work; however, in Wi-Fi Security (which may be all you are shown depending on how you picked the eduroam SSID) you need
@virginia.edu
(all lower-case)
This will need to be a file on your computer.
In the summer of 2022, UVA stopped supporting most certificate authorities2 and started requiring their own custom certificate instead, but efforts to get that certificate from ITS without running a closed-source OS have so far failed. However, I obtained a copy of it you can use:
University of Virginia Device Root CA.cer
If you trust this website3, download that as any name you want somewhere you won’t delete it and then browse to its location for this field.
CA certificates expire; mine expires in March 2038. You’ll need a new CA certificate when the old one expires. You can find the expiration date with
The CA certificate file contains only a publicly-available signature and does not need to be protected in any particular way. However, it does tell your computer which network it can trust so you should only download it from sites you trust. Note that this website is not an official UVA site and is not backed by any kind of security guarantees.
This is the P12 personal digital certificate used for netbadge, etc. UVA issues personal certificates for 13 months, so you’ll be getting a new one every year. You can find the expiration date with
The password you set when you downloaded your personal digital certificate.
The network manager may disable this field, defaulting to the user key password field’s value instead
The same as the user certificate.
The network manager may disable this field, defaulting to the user certificate password field’s value instead
In theory, UVA provides instructions for this in multiple places. In practice, they have a few holes when it comes to Linux. I’ve found the following works around those holes:
Connect to the UVA WiFi Setup
network.
Navigate to any non-encrypted webpage to get redirected to the portal detector. Your browser may do this for you; mine prompts me to visit http://detectportal.firefox.com/canonical.html
None of the options they provide will work. Instead, edit the URL to replace standard
and anything that follows it (for me, standard/?device=Non-specific OS
) with just limited/
.
As of September 2021, the resulting URL is https://cloud.securew2.com/public/82116/limited/ but I have no idea how stable the 82116
bit will be over time.
Go to any netbadge site, such as https://netbadge.virginia.edu.
Click on the Get one now!
link, which currently goes to https://in.virginia.edu/installcert.
Expand the Firefox FAQ to find the UVA Network Setup Tool (Limited)
, which currently goes to https://cloud.securew2.com/public/82116/limited/.
The Firefox FAQ also describes how to use the certificate in your Gecko-based browser to simplify authentication.
If there’s no Sign in
button,
Sign inbutton.
In 2018 the source of this page detected Linux, then turned Linux into Unknown before finishing, which round-about pretending to not know your OS prevented the Sign in button from being generated. In 2021, they seem to have fixed this but I’m keeping the documented fix here in case it breaks again.
ip address
and look for the line beginning number: wsomething (e.g., mine is
3: wlp0s20f3
; the exact name varies by Linux distribution). The line after that should have link/ether
followed by six bytes in hex separated by colons. That’s the MAC address you want.e(e.g. mine is
2: enp0s31f6
); that device’s MAC address is what you’d need if you wanted eduroam to work for a cable plugged in to UVA network (I’ve not tried that though).This file gives anyone that owns it power to impersonate you. You should definitely store it such that only you can read it; I recommend storing it in a hidden directory with owner-only permissions, such as can be created via
Wahoo is an unencrypted wifi network with two forms security from the university’s perspective:
Find your wifi’s MAC address. From the command line,
ip address
number: wsomething (e.g., mine is
3: wlp0s20f3
; the exact name varies by Linux distribution).link/ether
followed by six bytes in hex separated by colons, potentially followed by brd
and more bytes. The bytes after link/ether
but before brd
are the MAC address you want.if ip address
returned this:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether ab:cd:ef:01:23:45 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 67:89:0a:bc:de:f1 brd ff:ff:ff:ff:ff:ff
4: eno2s5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 11:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
then the MAC address you want (also called a physicalor
hardwareaddress) is
67:89:0a:bc:de:f1
If you have more than one wireless card you are welcome to either try to figure out which one you’re using, or simply register them all.
Register the device with ITS
Register a device for network access
There is a way in the Network Manager app to connect to a hidden network, but the UI to find that option differs depending on how and when you installed Linux.
If you can’t find the hidden network option in the UI, try the following command-line actions:
nmcli device wifi rescan ssid wahoo
tells the Network Manager’s command-line interface to explicitly look for a Wi-Fi network with the SSID wahoo
nmcli device wifi connect wahoo
connects to the network foundThe default settings for the Network Manager on most systems will remember this network after you connect to it once, so you should only have to do the above two steps once per Linux installation.
Because wahoo
is unsecured, anyone within wifi range of your computer can inspect all of your network traffic. This includes all traffic to and from HTTP websites and the URLs and message sizes for all HTTPS websites. By contrast, if you are on eduroam
the same information is visible to UVA and all the computers engaged in your internet traffic routing, but not visible to random people near your computer.
For the most part, this is not a concern: websites that expect any kind of confidentiality use HTTPS, and the fact you visited a particular website is not usually particularly informative to attackers.
Because wahoo
is unsecured, it is also possible that the network you connected to is not in fact UVA’s wahoo
at all, but rather a different network using the same SSID. Connecting to a network you don’t trust can expose you to many different security problems.
The Network Manager also has a command-line interface via nmcli
, and can generally be installed without the app. For example, Arch and Manjaro make it available in the networkmanager
package. I have not tested using it purely from the command line, but I believe you can do the following:
use ip address
to find the name of your wifi device (see Registering Your Computer for more; in that example the device name is wlp3s0
)
as root,
create a connection with nmcli con add type "wifi" con-name "eduroam" ifname "
the name of your wifi device"
find the resulting config file, which will have eduroam
in the filename and be somewhere under /etc
; in a distribution-specific location; mine is /etc/NetworkManager/system-connections/eduroam.nmconnection
.
edit that file as follows:
[connection] id=leave this unchanged uuid=leave this unchanged type=leave this unchanged interface-name=leave this unchanged timestamp=run "date +%s" and put its output here [wifi] mode=infrastructure ssid=eduroam [wifi-security] key-mgmt=wpa-eap [802-1x] ca-cert=abslute path to where you downloaded the UVA Root .cer file client-cert=absolute path to your personal digital certificate .p12 file eap=tls; identity=your computing ID@virginia.edu private-key=same as client-cert above private-key-password=the password you created for your personal digital ceritficate when you downloaded it. [ipv4] method=auto [ipv6] addr-gen-mode=stable-privacy method=auto [proxy]
When you want to connet to the network, run nmcli device wifi connect eduroam
.
If it doesn’t find the network, tell the networkmanager to look for it with nmcli device wifi rescan ssid eduroam
Prior to that, you could use the trusted and widely-supported US Higher Education Root (USHER): http://h1.usherca.org/aia/ca.pem (download link from http://www.usherca.org/). That CA still works eduroam
at several other universities I have visited.↩︎
There is some reason not to trust this website given the number of users who can access its server. A slightly more secure copy is stored on a server with many fewer users can be found at https://kytos02.cs.virginia.edu/UVA-root-CA.cer↩︎