security.txt 3.59 KB
Newer Older
1
This file contains notes about the security of the tesbed, and what should
2 3
be done to enhance it.  These notes are fairly old, so if there are
conflicts with more actively maintained files like setup*.*, believe
4 5
the latter.  For newer info, see the files "security-all.ppt" and
"build-operate.ppt" in http://www.cs.utah.edu/flux/testbed-docs/internals/
6 7 8 9 10

1) Switches/Infrastucture hardware:
  1.1) Rules need to be set up on the control switch to restrict the
    IP/MAC that can be used on each port
  1.2) SNMP on the switches, power contollers, and anything else that
11
    uses it should be restricted to boss's IP/switch port.
12 13 14 15

2) Firewalling:
  2.1) Block outgoing connections from testbed nodes to the CS network
    - This is because something on this network may have (misguided)
16
    trust in them (especially boss/ops) (note: This may be less
17 18
    important when we're on our own subnets, as CS shouldn't be trusting
    them at all)
19 20 21 22 23 24 25 26
  2.2) May want to block outgoing connections on specific ports to all
    IPs - for example, the SMTP port, to prevent people from using
    testbed nodes as spam mailhubs. Then again, this may be too
    restrictive, while giving few/no real advantages.

3) Filesystems:
  3.1) Home directories should be exported only to nodes currently
    running experiments that the user is involved in (will be secure
27
    because of item 1.1)
28 29
  3.2) Home directories on ops should be mounted with the 'nosuid'
    and 'nodev' options on ops and boss - users could, on their
30
    test nodes, create set-uid root programs, or make device nodes
31 32
    that they are allowed to read an write to. The same is true for
    whatever filesystem you place /proj on; it should be mounted nosuid.
33
  3.3) Remove suidperl binary on ops (doesn't get installed on
34
    latest FreeBSD versions anyway) - See FreeBSD mount manpage for
35
    reason. Related to item 3.2
36
  3.4) All testbed nodes, and ops (any maybe boss too?) should
37 38 39
    NOT be able to mount our NFS server(s) or CS's. Could happen
    either through firewalling or rules on the NFS servers.
    
40 41 42 43
4) Passwords
  4.1) Testbed node root passwords are problematic. Testbed nodes
    should definitely have a root password that is not used anywhere
    else. Maybe they should have no root password (an invalid hash,
44
    not a blank one) and just trust boss to login as root via ssh.
45 46 47 48
    If someone who has local_root for a project crack a node's root
    password, then they can get root on other project's nodes, or the
    same node later, when another project owns it. Then again, maybe 
    we don't need to set our security stanards quite that high.
49 50
  4.2) It would be reasonable to share a root password between boss
    and the Cisco's. Having root on boss will mean that someone will
51 52
    have access through SNMP, etc. to the ciscos, and having the
    enable passwork to the ciscos will allow someone to bypass our
53
    protections in section 1 and spoof boss, so they are essentailly
54
    equivalent.
55
  4.3) ops should have a unique root password - we don't want to
56
    have it the same as the testbed nodes (easy access to crack), but
57 58
    we want to make root compromise of ops not lead to the root
    compromise of boss.
59 60

5) User policies:
61 62 63 64 65 66
  5.1) Flux'ers accounts on ops and testbed nodes should not have
    standard passwords (people may be able to get encrypted string and
    crack).
  5.2) No accounts on ops should have 'special privileges' - we
    need to assume that any account on ops can be compromised
  5.3) NO special passwords should be typed on ops or the testbed
67 68
    nodes. This means don't telnet to the switches, ssh to any
    machines other than the testbed nodes, etc.