Differences between revisions 4 and 7 (spanning 3 versions)
Revision 4 as of 2016-08-03 16:22:36
Size: 4305
Editor: KarlPinc
Comment: Clean up sentences and paragraphs. Add ssh connection docs
Revision 7 as of 2018-02-27 16:45:05
Size: 4581
Editor: JakeGordon
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<<TableOfContents>>
Line 2: Line 4:
==== Web Page Access ====
Many of Babase's web pages are available to the public without restriction. However, those pages which access database content or allow data to be changed are restricted to those with [[https://oit.duke.edu/email-accounts/netid/|Duke NetIDs]]. Before accessing these restricted pages, your Duke NetID and its password must be provided. On a future date, a [[https://idms-mfa.oit.duke.edu/mfa/help|second authentication check]] (a.k.a. multi-factor or two-step authentication) may also be required.
Line 3: Line 7:
Note that the systems described on this page are in the process of being implemented.

Implementation is expected to be complete by 2017.

==== Web Page Access ====

Many of Babase's web pages are available to the public without restriction. However,
those pages which access database content or allow data to be changed are
restricted to those with [[https://oit.duke.edu/email-accounts/netid/|Duke NetIDs]].
Before accessing restricted pages your Duke NetID, it's password, and a
[[https://idms-mfa.oit.duke.edu/mfa/help|second authentication check]]
must be performed.

If you do not have a Duke NetID contact the Lab for sponsorship.

[[https://idms-mfa.oit.duke.edu/|Setup your own]] 2nd level of authentication.
(Called multi-factor or two-step authentication.) The first step is to
login using your Duke NetID.
If you do not have a Duke NetID, contact the lab for sponsorship.
Line 25: Line 12:
For most people the Babase web interface (phpPgAdmin) is all that's needed. More advanced users, particularly the data managers, require access to the Unix command prompt using SSH.
Line 26: Line 14:
For most people the Babase web interface is all that's needed. More advanced
users, particularly the data managers, have access to the Unix command prompt
using SSH.
By default, SSH access is not available to everyone. You must explicitly be granted permission by the Duke data manager before you can SSH into the VM.
Line 30: Line 16:
==== The Duke VPN ==== ===== Be on Duke's network =====
To use SSH you must first be connected to Duke's network. Ways to do this:
Line 32: Line 19:
To use ssh you must first sign in to the Duke VPN. Most will use the Duke-supplied
VPN software but FOSS users may wish to use the Open Source [[http://www.infradead.org/openconnect/|openconnect]] program instead. '''openconnect''' is probably already packaged by your OS supplier
so try installing the OS supplied package first.
 * Be physically present at Duke
 * Set up the [[DukeVPN|Duke VPN]]
Line 36: Line 22:
===== Basic openconnect usage ===== ===== SSH-ing in =====
(This will only work if you are on the Duke network)
Line 38: Line 25:
The '''openconnect''' command must be run as root. From a Unix or Unix-like terminal (In macOS, use "Terminal". In Windows, you'll need to get some 3rd party software, but [[https://www.putty.org/|PuTTY]] is common), enter:
Line 40: Line 27:
The usual command for this is: {{{
ssh MYDUKENETID@papio.biology.duke.edu
}}}
and hit enter. You will be asked for your NetID's password; when entering it, the cursor on the screen will not move, but rest assured that it is still accepting input. Hit enter to send the password, and you're in.
Line 42: Line 32:
  openconnect -u ''YourDukeNetID'' --authgroup '-Default-' https://vpn.duke.edu/ ==== Transferring files to/from the VM with SCP ====
If you find a need to move files between your local computer and the VM, ideally you'd use [[https://en.wikipedia.org/wiki/Secure_copy|SCP]]. Feel free to Google up an SCP tutorial of your choice, if you aren't already familiar with it. However, there's a problem that you should be aware of.
Line 44: Line 35:
Supplying your NetID and the authgroup saves you a bit of typing later. Duke's OIT requires the use of "user private groups". If you're unfamiliar with this idiom, again feel free to Google it. Usually, you should leave it enabled, but this keeps SCP commands from functioning. So you must temporarily disable it.
Line 46: Line 37:
You will be prompted for a password. This is your Duke NetID password. ===== Disabling user private groups =====
There are lots of reasons why you might want to disable UPG. This is addressed here, related to SCP, because you need to disable UPG for SCP to work. If you have some other task that might be improved by disabling UPG, then you're likely an advanced-enough user that you know what you're doing and don't need this wiki to learn how.
Line 48: Line 40:
The Duke VPN uses TCP port 443 at the Duke end. It also uses UDP port 443
(although this is undocumented).
Your firewall will need to be configured to allow outbound traffic to these ports.
This will probably not be a problem.
TCP 443 is used for https connections and will typically already be open.
Most firewalls are not configured using the most secure "default deny" policy
and so allow users on the LAN to connect to any port at all at the remote end.
After SSH-ing into the VM, enter:
Line 56: Line 42:
The alternative to opening outbound connections to UDP port 443
is to use the '''--no-dtls''' argument. This will
also work should Duke change their configuration to use a different UDP port.
{{{
emacs ~/.bashrc
}}}
A file will open, which will include the following text:
Line 60: Line 47:
===== Advanced openconnect usage ===== {{{
# Turn on the user-private-group idiom to collaborate with others.
# See: https://security.ias.edu/how-and-why-user-private-groups-unix
# THIS SHOULD ALWAYS COME AFTER THE SOURCING OF GLOBAL DEFINITIONS;
# it effectively aborts and re-executes bash, but must not come before
# the sourcing of global definitions because the global definitions
# change the umask.
#
#echo 'Please consider editing ~/.bashrc and turning on collaboration'
# If you do this, scp and remote ssh commands BREAK. But if you don't
# anything you create, with scp or otherwise, will be editable only by
# you. The recommended approach is to turn UPG collaboration off
# whenever you scp, then scp into your home directory, then turn UPG
# back on and ssh in again and copy the data into the desired location
# for collaboration.
#
# To turn collaboration on, uncomment the line below and comment
# the "echo" above.
source /usr/local/bin/upg_enable
}}}
In this case, UPG--or "collaboration", as described above--is already enabled. To turn it off, add a "#" to the beginning of the "source" line. Normally, you'd also want to remove the "#" from the beginning of the "echo" line; removing that "#" ensures that you get a text alert that UPG is turned off. However, this text alert also breaks SCP.
Line 62: Line 69:
The problem with the above command, and the Duke supplied VPN software, is that
both the routing and the DNS server used by your box are changed. This can cause problems,
from not being able to connect to non-web-based email servers to problems accessing
local LAN services like X clients or printers. Fortunately there is a solution that
sets up what amounts to a local virtual machine, though which you then connect
to the Duke side of things. This is established using the '''vpnc-script-sshd'''
helper script as follows (note the \ line continuation character):
So, to disable UPG to allow SCP:
Line 70: Line 71:
  openconnect -u ''YourDukeNetID'' --script=/usr/share/vpnc-scripts/vpnc-script-sshd \
  --authgroup '-Default-' https://vpn.duke.edu/
 1. Comment out both the "echo" and "source" lines with "#"
 1. Save these changes by entering Ctrl-X, Ctrl-S
 1. Leave emacs by entering Ctrl-X, Ctrl-C
Line 73: Line 75:
The path to the '''vpnc-script-sshd''' script may vary on your system. The above
path is for Debian based systems.

The next step is to use the new virtual machine. (Really, this is a new network namespace
on your local box.)

==== Connecting with SSH ====

When connecting with SSH Duke requires you use 2-factor authentication. But it's not
always clear what sort of password must be entered where. These are the various prompts
and how to respond to them:

 * Password: This is a request for your Duke NetID password. You can skip this prompt
   by configuring ~/.ssh/authorized_keys, adding your public key to the file as documented
   in sshd_config(5).

 * Passcode or option ...: The options are fairly clear. The passcode requested is
   a one time password. These may be obtained from the Duke
   [[https://idms-mfa.oit.duke.edu/|multi-factor authentication site]] or generated by
   [[https://en.wikipedia.org/wiki/YubiKey|YubiKey]] hardware.
You will need to logout of Papio and back in if you want this UPG change to take effect in any already-active connection(s) you may have to the VM.

Accessing Duke's Systems and Logging In

Web Page Access

Many of Babase's web pages are available to the public without restriction. However, those pages which access database content or allow data to be changed are restricted to those with Duke NetIDs. Before accessing these restricted pages, your Duke NetID and its password must be provided. On a future date, a second authentication check (a.k.a. multi-factor or two-step authentication) may also be required.

If you do not have a Duke NetID, contact the lab for sponsorship.

Be sure to have cookies turned on for all of the above.

Access to the Unix prompt with SSH

For most people the Babase web interface (phpPgAdmin) is all that's needed. More advanced users, particularly the data managers, require access to the Unix command prompt using SSH.

By default, SSH access is not available to everyone. You must explicitly be granted permission by the Duke data manager before you can SSH into the VM.

Be on Duke's network

To use SSH you must first be connected to Duke's network. Ways to do this:

  • Be physically present at Duke
  • Set up the Duke VPN

SSH-ing in

(This will only work if you are on the Duke network)

From a Unix or Unix-like terminal (In macOS, use "Terminal". In Windows, you'll need to get some 3rd party software, but PuTTY is common), enter:

ssh MYDUKENETID@papio.biology.duke.edu

and hit enter. You will be asked for your NetID's password; when entering it, the cursor on the screen will not move, but rest assured that it is still accepting input. Hit enter to send the password, and you're in.

Transferring files to/from the VM with SCP

If you find a need to move files between your local computer and the VM, ideally you'd use SCP. Feel free to Google up an SCP tutorial of your choice, if you aren't already familiar with it. However, there's a problem that you should be aware of.

Duke's OIT requires the use of "user private groups". If you're unfamiliar with this idiom, again feel free to Google it. Usually, you should leave it enabled, but this keeps SCP commands from functioning. So you must temporarily disable it.

Disabling user private groups

There are lots of reasons why you might want to disable UPG. This is addressed here, related to SCP, because you need to disable UPG for SCP to work. If you have some other task that might be improved by disabling UPG, then you're likely an advanced-enough user that you know what you're doing and don't need this wiki to learn how.

After SSH-ing into the VM, enter:

emacs ~/.bashrc

A file will open, which will include the following text:

# Turn on the user-private-group idiom to collaborate with others.
# See: https://security.ias.edu/how-and-why-user-private-groups-unix
# THIS SHOULD ALWAYS COME AFTER THE SOURCING OF GLOBAL DEFINITIONS;
# it effectively aborts and re-executes bash, but must not come before
# the sourcing of global definitions because the global definitions
# change the umask.
#
#echo 'Please consider editing ~/.bashrc and turning on collaboration'
# If you do this, scp and remote ssh commands BREAK.  But if you don't
# anything you create, with scp or otherwise, will be editable only by
# you.  The recommended approach is to turn UPG collaboration off
# whenever you scp, then scp into your home directory, then turn UPG
# back on and ssh in again and copy the data into the desired location
# for collaboration.
#
# To turn collaboration on, uncomment the line below and comment
# the "echo" above.
source /usr/local/bin/upg_enable

In this case, UPG--or "collaboration", as described above--is already enabled. To turn it off, add a "#" to the beginning of the "source" line. Normally, you'd also want to remove the "#" from the beginning of the "echo" line; removing that "#" ensures that you get a text alert that UPG is turned off. However, this text alert also breaks SCP.

So, to disable UPG to allow SCP:

  1. Comment out both the "echo" and "source" lines with "#"
  2. Save these changes by entering Ctrl-X, Ctrl-S
  3. Leave emacs by entering Ctrl-X, Ctrl-C

You will need to logout of Papio and back in if you want this UPG change to take effect in any already-active connection(s) you may have to the VM.

DukeAuthentication (last edited 2025-01-22 21:55:04 by JakeGordon)

Wiki content based upon work supported by the National Science Foundation under Grant Nos. 0323553 and 0323596. Any opinions, findings, conclusions or recommendations expressed in this material are those of the wiki contributor(s) and do not necessarily reflect the views of the National Science Foundation.