1. 18 Feb, 2005 1 commit
  2. 11 Feb, 2005 1 commit
  3. 04 Feb, 2005 1 commit
  4. 24 Jan, 2005 1 commit
  5. 20 Jan, 2005 1 commit
  6. 14 Jan, 2005 1 commit
    • Russ Fish's avatar
      Work over the accounts and mounts part of the CygWinXP port. · 8c98fc4b
      Russ Fish authored
      Use cygrunsrv -i on sshd to "allow the service to interact with the desktop."
      Now that the sshd daemon has a desktop session context that is inherited by
      the client shell, remote home directories can work.  They start with a blank
      Windows mount context, but once a single Samba connection is made during
      login, it enables all UNC //machine/path mounts to work.  Hence the home
      directories are now CygWin mount points (no longer symlinks) to UNC paths, set
      up by rc.mounts and then shared through CygWin to all of the user logins.
      
      Get rid of the previous horrible (and fragile) hack to set up an auto-login by
      the swapin user which then automatically started a user sshd on port 2222.
      
      tmcd.c - Arrange for tmcd to provide the public key data when a special argument is
      given as "tmcc accounts pubkeys".
      
      rc.accounts - Due to permissions problems with remote-mounted authorized_keys
      files, sshd_config now uses "AuthorizedKeysFile /sshkeys/%u/authorized_keys",
      which is where rc.accounts puts the public key data.
      
      Since root, Administrator, and even SYSTEM can be locked out by permissions on
      NT, WINDOWS() variant logic to set ownership and modes on authorized_keys
      files had to be added to rc.accounts.  There is also a bug in the sshd
      "privilege separation" setreuid() dance that requires the authorized_keys
      files to be owned by SYSTEM (or be mode 644, which is slightly worse.)
      
      cygwinxp/liblocsetup.pm - Pay attention to the users' shell preferences in
      generating /etc/passwd.  Make warnings more uniform.
      8c98fc4b
  7. 07 Dec, 2004 1 commit
  8. 02 Dec, 2004 1 commit
  9. 22 Nov, 2004 1 commit
  10. 25 Oct, 2004 1 commit
  11. 25 Aug, 2004 1 commit
    • Mike Hibler's avatar
      Firewall support part III: client scripts. · b21e6942
      Mike Hibler authored
      Overview of simply firewall setup.
      
      Experimentor specifies in their ns file:
      
           set fw [new Firewall $ns]
           $fw style <open|closed|basic>
      
      to set up an "open" ("allow any"), "closed" ("deny any"), or "basic"
      (allow ICMP and ssh) firewall.  "basic is the default.  Additional rules
      can be added with:
      
           $fw add-rule <IPFW format rule>
           $fw add-numbered-rule <1-50000> <IPFW format rule>
      
      where the former implicitly numbers rules such that the firewall processes
      them in the order given in the NS file.  The latter allows explicit
      specification of the numbering.  Currently the rules are fixed strings,
      there is no variable substitution.  There is also no syntax checking done
      on the rules at parse time.
      
      We allocate an extra node to the experiment to serve as a firewall.
      Currently that node runs FreeBSD and uses IPFW.  In the initial configuration,
      all other nodes in the experiment will just be setup with a default route
      that points to the firewall node.  So all outbound traffic will pass through
      it.  Inbound traffic will still travel straight to the node.  This should
      prevent nodes from accidentally initiating attacks on the outside world.
      Long term we will of course enforce the firewall on all traffic, that should
      not have any effect on the NS syntax above.
      
      When a node boots, there will be an rc.firewall script that checks to see
      if there is a firewall for the experiment and if so, which node it is.
      This is done with the TMCD "firewallinfo" command which returns:
      
            TYPE=none
      
            TYPE=remote FWIP=N.N.N.N
      
            TYPE=<fwtype> STYLE=<fwstyle> IN_IF=<macaddr> OUT_IF=<macaddr>
            RULENO=<num> RULE="<ipfw command string>"
            RULENO=...
            ...
      
      In the case of no firewall we get back TYPE=none, and we continue as normal.
      Otherwise, there are two types of replies, one for a node that is being
      firewalled (TYPE=remote) and one for a node that is a firewall
      (TYPE=<fwtype> + RULES).
      
      In the TYPE=remote case, the firewall node indicated by FWIP.  This is
      the address we use for the default route.
      
      For TYPE=<fwtype>, we are the firewall, and we get STYLE and IN_IF/OUT_IF
      info.  Here TYPE indicates whether we should use ipfw or whatever.
      For now it is always ipfw.  IN_IF and OUT_IF may someday indicate the
      interfaces to use for the internal and external connections, right now
      both will indicate the control net interface.  So, after ensuring that
      the ipfw modules is loaded, we grab the provided RULE info, which includes
      both per-experiment and default rules, and setup ipfw.
      
      Issues to resolve:
             - synchronization: how to ensure firewall comes up first
             - how to better implement the firewalling
               (i.e., without the cooperation of the nodes)
             - support the equiv of linkdelays (on-node firewalling)?
             - allow firewalls within experiments?
               (ie., on experimental interfaces)
             - dynamic changing of firewall rules via events?
             - how to show firewall state in various web pages
      b21e6942
  12. 21 Aug, 2004 1 commit
  13. 26 Jun, 2004 1 commit
  14. 21 Jun, 2004 1 commit
  15. 12 May, 2004 1 commit
  16. 09 Apr, 2004 1 commit
    • Leigh B. Stoller's avatar
      First cut at client side configuration of wireless nodes. Redhat only, · c0dcd3b6
      Leigh B. Stoller authored
      no freebsd support.
      
      The primary change is that tmcd now sends down a list of setting to
      apply to each interface, and that list is turned into a hash table,
      and provided to rc.config, which passes them along to the machine
      dependent routine in liblocsetup.
      
      Then in the linux version of liblocsetup there is a bunch of new code
      to configure wireless links using iwconfig and iwpriv, using the
      settings array.
      
      All of this is bound to change once we get more experience with it.
      c0dcd3b6
  17. 17 Feb, 2004 1 commit
    • Leigh B. Stoller's avatar
      Medium size cleanup of the client side code. The main impetus behind · 069dc7d3
      Leigh B. Stoller authored
      this was to add soft reconfig support so that nodes could be
      reconfigured without having to reboot them. This appears to work, and
      has been tested with jails getting moved around. I've also tested the
      new code on the MFS, but still no testing has been done on PLAB nodes.
      
      The main change is that most of the code moved out of libsetup.pm, and
      was split into constituent rc scripts, each of which does its own
      thing, including cleaning up and preparing for making an image. Most
      of that central knowledge has been moved out into the scripts. Still more
      to do but this was a good start.
      069dc7d3
  18. 29 Jan, 2004 1 commit
  19. 21 Nov, 2003 1 commit
    • Mike Hibler's avatar
      Make sure we can hardwire speed/duplex on new Intel Pro/1000 (e1000) cards. · 5ad5ab99
      Mike Hibler authored
      Need to use ethtool instead of mii-tool to do this.  My comment:
      
        #
        # Linux is apparently changing from mii-tool to ethtool but some drivers
        # don't support the new interface (3c59x), some don't support the old
        # interface (e1000), and some (eepro100) support the new interface just
        # enough that they can report success but not actually do anything.  Sweet!
        #
      
      This requires that we load ethfind on the nodes, though the script will
      continue to work if it isn't (though will not work for e1000 cards).
      5ad5ab99
  20. 17 Sep, 2003 1 commit
  21. 15 Aug, 2003 1 commit
  22. 24 Jul, 2003 1 commit
  23. 06 Jun, 2003 1 commit
  24. 14 Mar, 2003 1 commit
  25. 15 Jan, 2003 1 commit
  26. 18 Dec, 2002 1 commit
  27. 27 Aug, 2002 1 commit
  28. 20 Aug, 2002 1 commit
  29. 14 Aug, 2002 1 commit
  30. 10 Jul, 2002 1 commit
  31. 07 Jul, 2002 1 commit
  32. 19 Jun, 2002 1 commit
  33. 17 May, 2002 1 commit
  34. 08 May, 2002 1 commit
    • Leigh B. Stoller's avatar
      Support for vnodes, plus some other changes: · 386c2778
      Leigh B. Stoller authored
      1) Merge in the accounts code that I did for ron. Instead of resetting
         the password file on each reboot, look at the node status to
         determine if the password/group file should be reset. If the
         node is free, reset it. Otherwise, we track changes to the password
         and group file now, so that users can change it and not have their
         changes wiped out at each reboot. I had to do this for the ron
         nodes so that the testbed software would not alter or delete
         already existing accounts; I keep a couple of little dbm files
         listing all the accounts/groups added. The only downside right now
         is if a node is reallocated before it is wiped clean; I plan to add
         an os_teardown phase to experiment termination asap.
      
      2) Add tunnels support. New DB table (tunnels) provides information
         for running vtund to link up to remote nodes. Creates a vtund.conf
         file on the fly, and fires them off. The complication is that you
         cannot do the ifconfigs or the routes until the tunnels are
         connected, so that stuff has to be configured within the vtund.conf
         file on a per tunnel basis. vtund.conf has some sections for
         running commands when tunnels are brought up or down.
      
      3) Damage the routing configuration code that Mike did. To support
         tunnels, as noted above, rc,route is no longer a simple list of
         commands, but a program that adds/dels routes based on the netmask,
         with a special "enable" section for the other stuff. This allows me
         to call it from vtund.conf for up/down on each tunnel'ed
         interfaces, as needed. Quite gross, but no way around it.
      
      4) For remote nodes, add a vnodesetup script, invoked from boss when
         experiments are setup/torndown. This gets the tunnel/route/trafgen
         configuration and runs them. It then goes into the background
         waiting for a death signal, at which time it brings them down and
         cleans out the vnode state.
      386c2778
  35. 16 Apr, 2002 1 commit
  36. 17 Jan, 2002 1 commit
  37. 27 Dec, 2001 1 commit
    • Leigh B. Stoller's avatar
      Another set of group changes. As discussed in email and meetings, · 8404af03
      Leigh B. Stoller authored
      group directories are now created in a different tree than the
      the project directory so that they can be exported independently of
      the project tree to the nodes in a group experiment. The tree is
      routed at /groups on boss/users and on nodes.
      
      1. mkgroup,rmgroup,mkproj - Minor changes to reflect new group
         directory location (/groups). We leave a symlink in the old spot to
         maintain compatability, and to reduce the number of different
         directories that a person needs to worry about. So, when a group is
         made, you get a real directory /groups/pid/gid, and a symlink
         /proj/pid/groups/gid that points to the former.
      
      2. tmcd/tmcd.c - Minor change to add the additional group directory mount
         in the mounts command. Only done when pid!=gid for the experiment.
      
      3. tmcd/libsetup.pm and friends - Minor changes to fix the fact that
         mkdir does not create subdirs along the way unless the -p option is
         specified. Needed to create the local directory for the mounts
         returned by tmcd for group dirs. Pushed them out to the sup trees,
         although 6.2 images older than the most recent one are not going to
         work right. No one is using those images though, and we should just
         flush the sup trees.
      
      4. exports_setup.in - Ah, the crux of the issue. I really dislike NFS
         at this point. The original idea was to export a third set of
         directories to nodes that were part of a group experiment. Those
         nodes would get /groups/pid/gid exported, and /proj/pid read-only.
         Well, no such luck. On users, /groups and /proj are both really on
         /q, and the old restriction of mountd not allowing an IP to
         specified more than once on the right hand side for any FS, reared
         its ugly head again. As far as mountd is concerned, /q/groups and
         /q/proj are the same thing, and so it bombed when I tried to export
         them on different lines, since that meant an IP was repeated twice.
         So, I reworked exports_setup, and now for any node that is part of
         a group experiment, it gets this:
      
      	/q/proj/pid /q/groups/pid/gid -maproot=root 155.101.132.26
      
         which at least allows the individual group dirs to be protected
         from each other, but does not allow /proj/pid to be exported read
         only. Sigh.
      8404af03
  38. 13 Dec, 2001 1 commit
    • Leigh B. Stoller's avatar
      Add "routing" support with new TMCD command that looks at the · 746f32c8
      Leigh B. Stoller authored
      routertype field in the nodes table. For eventual use when Mike is
      ready with gated stuff.
      
      Modify the dohostnames stuff as per dicussion with Rob and
      Mac. Instead semi-usless node-N names, set the name of the interface
      to node-LinkName, where the linkname comes from the virt_lans table,
      and is the name of the link/lan that interface is sitting on. This way
      the user can actually figure out the interface when doing his routing
      by assigning names to all links/lans in the NS file.
      
      One major bogousity is that in order to maintain backwards
      compatability, I've instituted a new hostnames commands (hostnamesV2).
      We need a good way to deal with versioning!
      746f32c8
  39. 30 Nov, 2001 1 commit
  40. 24 Sep, 2001 1 commit
    • Leigh B. Stoller's avatar
      The brave new world of client side configuration. Major highlights are · cedf74ed
      Leigh B. Stoller authored
      a "cleaner" separation of the OS independent and OS dependent parts.
      Lots of stuff moved to common libsetup.pm, shared by linux and
      freebsd. OS dependent stuff is in liblocsetup.pm in the subdirs.
      Other major change was to add "update" ability so that mounts and
      accounts can be updated on the fly, when directed to do so from boss.
      This is in support of shared experiments, so that as projects are
      added to the share list, the mounts and accounts can be updated
      without having to reboot.
      cedf74ed