r8 - 18 Jul 2008 - 17:22:49 - JimBodieYou are here: TWiki >  Help Web  >  AdminStuff > BinfordLog
Tags:
create new tag
, view all tags

Summary

binford is Jim's utility machine. Its original purpose is to be a terminal server for the new name servers, but its use can be expanded to just about any need including a file server for patches a backup print, license, or JumpStart server. It could also be names frankenstein as it was built from parts of several other machines.

This is a change log that will also serve as an install document for Solaris on binford. This document will probably not be of interest to the end user.

  • Hardware
    • Sun Ultra 10
    • Serial number FW92460273
    • 512 MB RAM
    • 40 GB hard drive
  • Major Software Installs
    • Solaris 9
    • Sun Studio 11
    • OpenGL 1.5
    • Java 1.6

18 Jul 2008 - Update IPSec

IPSec was updated to reflect the need for binford to mount and be mountable by both machines in the server group and those outside the server group. The standard /etc/inet/ike/config file, which was the same as the config.server_shared file has been replaced with its own file called config.binford.

The major change was to add a rule for each system in the Server Shared group and a rule for each of the shared groups apart from the Server Shared group. Effectively, binford can mount any other system using IPSec that allows it, and any IPsec using system can mount binford if binford allows it.

09 Jul 2008 - Sun Patch Installation and Software Update

Solaris System Patches

The Solaris 9 Recommended patch cluster was installed as well as any patches that were recommended by patchdiag.

Sun Studio 11 Patches

2 Sun Studio 11 Patches were applied. They were:

Studio 11 Patches
120760-20
121017-15

Java 1.6 Update 7

Java 1.6 Update 7 was installed by installing these packages:

Package Name Package Description
SUNWj6rt JDK 6.0 Runtime Env. (1.6.0_07)
SUNWj6rtx JDK 6.0 64-bit Runtime Env. (1.6.0_07)
SUNWj6cfg JDK 6.0 Host Config. (1.6.0_07)
SUNWj6dev JDK 6.0 Dev. Tools (1.6.0_07)
SUNWj6dvx JDK 6.0 64-bit Dev. Tools (1.6.0_07)
SUNWj6man JDK 6.0 Man Pages (1.6.0_07)
SUNWj6dmo JDK 6.0 Demo Programs (1.6.0_07)
SUNWj6dmx JDK 6.0 64-bit Demo Programs (1.6.0_07)

Solaris Package Updates

17 of the CIS packages either required updating or were installed. The packages that were updated or installed are:

Package Name Name and Version
CIScurl curl 7.18.2
CISexpect expect 5.43.0
CISfirefox firefox 2.0.0.15
CISfontconfig fontconfig 2.6.0
CISfreetype freetype 2.3.6
CISgnum4 gnum4 1.4.11
CISgnutar gnutar 1.20
CISimmagick immagick 6.4.1-10
CISlibpng libpng 1.2.29
CISlibxml2 libxml2 2.6.32
CISlsof lsof 4.80
CISnetpbm netpbm 10.26.55
CISopenssl openssl 0.9.8h
CISpcre pcre 7.7
CISrsync rsync 3.0.2
CISsudo sudo 1.6.9p16
CIStcltk tcltk 8.5.2

09 Jun 2008 - Security Configuration

IPsec Configuration

binford will be going in the ike Server Shared group. There's no real reason for them to get their own ike keys and they will likely only be mounting, or be mounted by other systems in the Server Shared group or the systems that have their own keys (i.e. drizzt, pegasus, and saturn).

Removing Exceptions

On several servers, drizzt, and js to be exact, there was an exception in their /etc/inet/ipsecinit.conf file for binford to be able to mount their drives without using IPsec. That exception was in place to allow the system to mount the drives, get on with the configuration and other work and not have to initially worry about setting up IPsec. Be sure to unmount any mounts to those systems. The exception looks like:

    # Permit binford to not require IPSec for NFS
    { rport 2049 raddr 129.21.57.99 dir both } bypass { }
    { lport 2049 raddr 129.21.57.99 dir both } bypass { }

Remove the exception on those machines and restart IPSec with:

    ipsecconf -f
    ipsecconf -a /etc/inet/ipsecinit.conf

At this point, binford will not be able to NFS mount any of those servers until IPSec is setup.

Adding binford to the IPSec and IKE Config Files

The Server Shared group is designed to not require every possible combination key pairs, one for each possible pair of servers in that group. That is why it is a shared key. The members all have the same key. Once the Server Shared keys were distributed to the necessary machines, a restart of the IPSec and iked programs is not necessary on most systems. Unfortunately due to the servers sharing the same subnets as nonserver systems, the machines that needs to share ike keys with Server Shared and other systems, must have configuration entries for both.

In the ike repository directory (name and path left out on purpose, trust me, Jim knows where it is), make the following changes to integrate heckyl:

In the file config.drizzt, in the appropriate section, add:

{
        label "drizzt to binford"
        local_id_type dn
        local_id "C=US, O=RIT, OU=CIS, CN=drizzt.cis.rit.edu"
        local_addr 129.21.57.69
        remote_id "C=US, O=RIT, OU=CIS, CN=CIS Server Shared Certificate"
        remote_addr 129.21.57.99

        p1_xform
                {auth_method rsa_sig oakley_group 2 auth_alg md5 encr_alg 3des}
}

Do the same thing in config.pegasus and config.saturn. Change the hostname and ip address as appropriate.

Because it is a server shared key, that only is shared among servers, that is all that needs to change to add the new system.

Distribute the Updated Files

A number of files need to be copied to binford and some to the other servers in order to implement IPSec. These commands were executed from the ike repository directory:

    scp server_shared.ipsecinit.conf root@binford:/etc/inet/ipsecinit.conf
    scp config.server_shared root@binford:/etc/inet/ike/config
    scp server_shared.private.cert root@binford:/etc/inet/secret/ike.privatekeys/0
    scp server_shared.public.cert root@binford:/etc/inet/ike/publickeys/0
    scp drizzt.public.cert root@binford:/etc/inet/ike/publickeys/1
    scp pegasus.public.cert root@binford:/etc/inet/ike/publickeys/2
    scp saturn.public.cert root@binford:/etc/inet/ike/publickeys/3
    scp cis_shared.public.cert root@binford:/etc/inet/ike/publickeys/4
    scp cluster_shared.public.cert root@binford:/etc/inet/ike/publickeys/5
    scp lias_shared.public.cert root@binford:/etc/inet/ike/publickeys/6

    scp config.drizzt root@drizzt:/etc/inet/ike/config
    scp config.pegasus root@pegasus:/etc/inet/ike/config
    scp config.saturn root@saturn:/etc/inet/ike/config

(Re)start iked and ipsec on binford:

    pkill in.iked
    /usr/lib/inet/in.iked
    ipsecconf -f
    ipsecconf -a /etc/inet/ipsecinit.conf

08 Jun 2008 - 09 Jun 2008 - Initial Setup and System Configuration

From Many Come One

Several Ultra 10s were used to put the machine together. The 40 GB disk came from the old archaic, the 333 MHz processor came from another machine (as the one from archaic was damaged), the memory came from a couple different systems and the SCSI card came from yet another system. Once a working setup was found, it was setup and cabled on the big table in the middle of the main server room.

Solaris Install

Using the format command, the boot disk was partitioned as follows:

Slice Tag File System Start - End Cyl. Size (cyl) Size
0 root / 515 - 5656 5142c 10.00 G
1 swap swap 0 - 514 515c 1.00 G
3 unassigned /local 5657 - 19155 13499c 26.26 G

Solaris 9 was installed from CD. JumpStart was not used as this machine is not designed to be a general use system. During the system configuration, as many services and software packages as possible were removed. Software packages such as samba, ssh, perl, and java were as stripped down as possible as newer versions were going to be installed after the Solaris install.

After Solaris was installed, the Solaris 9 Recommended patch cluster was installed as well as any patches that were recommended by patchdiag.

After the installation, a local account, jim was created just like all the other local jim accounts. This is to allow remote access.

usrlocal

We are going to follow the usual /usr/local setup. Create the usual directories:

    cd /usr
    mkdir -m 0755 local
    cd /usr/local
    for I in bin doc etc include info lib libexec man misc sbin; do
        mkdir -m 0755 $I
    done

Jim's Scripts

The standard set if tools and utility files that Jim developed were installed in the usual places. The scripts are installed in /usr/local/sbin and any relating resources files were installed in /usr/local/etc. The current list and brief description:

  • Patch Tools
    • dopatchdiag - Runs patchdiag and generates a report
    • unzippatches - Glorified wrapper to unzip
    • wgetpatches - Gets a list of patches from sunsolve
    • wgetxref - Gets the xref file from sunsolve
  • System Admin Tools
    • cmpfiles - Compares a list of files to the ones on the system
    • finddups - Finds duplicate files based on a set of tests
    • killuser - Terminates all of a user's process
    • purgefiles - Cleans files in a given directory tree based on a date criteria and optional exception list
    • stopservices - Renames the init scripts of undesired services
    • sysepage - Modular paging program, also has resource file in /usr/local/etc
    • time2UTC - Cute Perl/Tk program that converts time back and forth, requires Perl/Tk
    • verbackup - Program to manage versioned backups of files

patchdiag

Downloaded patchdiag 1.0.4 from Sun into /tmp/patchdiag_1.0.4.tar.Z Unpacked and installed under //usr/local/misc as you see here.

    cd /usr/local/misc
    zcat /tmp/patchdiag_1.0.4.tar.Z | tar xf -
    ln -s /usr/local/misc/patchdiag-1.0.4 /usr/local/misc/patchdiag
    ln -s /usr/local/misc/patchdiag/patchdiag /usr/local/bin/patchdiag
    cd /usr/local/misc/patchdiag
    ./patchdiag_setup    (Enter /usr/local/misc/patchdiag as the path for the xref file)

Execute the wgetxref command to download the patchdiag.xref file. Add the following crontab entry:

    00 01 * * * /usr/local/sbin/wgetxref -P /usr/local/misc/patchdiag-1.0.4

The crontab entry will ensure that a new patchdiag.xref is downloaded daily.

Sun Software and Patch Installation

The following unbundled Sun software was installed. Note: The following lists the package names, and patch number at the time the software was installed. Newer revisions of the patches or software packages may be installed at a later date with less detail added to this file.

Java 1.6 Update 5

Java 1.6 Update 5 was installed by installing these packages:

Package Name Package Description
SUNWj6rt JDK 6.0 Runtime Env. (1.6.0_05)
SUNWj6rtx JDK 6.0 64-bit Runtime Env. (1.6.0_05)
SUNWj6cfg JDK 6.0 Host Config. (1.6.0_05)
SUNWj6dev JDK 6.0 Dev. Tools (1.6.0_05)
SUNWj6dvx JDK 6.0 64-bit Dev. Tools (1.6.0_05)
SUNWj6man JDK 6.0 Man Pages (1.6.0_05)
SUNWj6dmo JDK 6.0 Demo Programs (1.6.0_05)
SUNWj6dmx JDK 6.0 64-bit Demo Programs (1.6.0_05)

Sun OpenGL 1.5

OpenGL 1.5 was installed by running the shell archive file with the command: sh ogl15_rt.shar. Patch 120812-24 was installed after the archive was finished.

Sun Studio 11

The js.updsunstudio11 script was used to install Sun Studio 11. While that script is technically designed to update Studio 11, it can also perform a fresh install of the software and patches.

The installed Sun Studio 11 packages are:

SPROcc SPROgcx SPROl90sx SPROmride SPROprfan SPROstl4y
SPROcmpl SPROgvim SPROl90x SPROmripl SPROprfax SPROsunms
SPROcpl SPROhtbas SPROlang SPROmrmp SPROprfgn SPROsvc
SPROcplx SPROhtstd SPROlangx SPROmrpan SPROprflb SPROtdemo
SPROctags SPROhttl7 SPROlcxs SPROmrpgn SPROprflx SPROtl7x
SPROctsrc SPROhtxd SPROlgc SPROmrpl SPROrdbkb SPROtlbn7
SPROdbx SPROidext SPROlgcx SPROmrsbe SPROrdbks SPROtll7
SPROdbxui SPROipl SPROlklnt SPROmrstd SPROrdbkx SPROtll7x
SPROdbxx SPROiplg SPROm9xpx SPROmrtcv SPROsbe SPROupdck
SPROdemo SPROiplx SPROm9xs SPROmrxd SPROsbld SPROutool
SPROdmake SPROjdbx SPROm9xsx SPROmrxm SPROsbldx SPROxdplg
SPROdwrfb SPROjdbxx SPROmr3m SPROnbreg SPROscl SPROxmbin
SPROdwrfs SPROjnsnb SPROmrcc SPROpl SPROsclx SPROxmshr
SPROdwrfx SPROjnsrt SPROmrcom SPROplck SPROsmpx SPROxmsrc
SPROf90 SPROjnsup SPROmrcpl SPROplg SPROsmsx SUNWexted
SPROfd SPROl77s SPROmrdbx SPROpls SPROstl4a SUNWnbcpp
SPROfdxd SPROl77sx SPROmrdmk SPROplsx SPROstl4h SUNWnbide
SPROftool SPROl90 SPROmrdwf SPROplx SPROstl4o SPROgc
SPROl90s SPROmrftn SPROpnsn SPROstl4x    

The installed Sun Studio 11 patches are:

Studio 11 Patches
120760-19
120761-03
121015-06
121017-14
121021-07
121019-10
121023-06
122135-03
122142-03
122149-01
124862-02

Root Account Changes

The root user account was changed in 2 ways. The home directory of root was changed from / to /root and the default shell was changed to /bin/ksh. All dot files were moved into /root. The standard SSH keys and environment files were copied to root's home directory.

xaccess

Installed a new Xaccess file with the contents below as /etc/dt/config/Xaccess.

# Only allow Direct XDMCP connections from other CIS machines.  Do
# not allow indirect or other connections.
*.cis.rit.edu

xservers

The /etc/dt/config/xservers file was copied from another system. The important line in this file is the one that sets the default color depth to 24. That line looks like:

   :0   Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner -dev /dev/fb defdepth 24

xhost

Patched xhost per the usual CIS hackery to prevent lazy users from using xhost + when they should know better. The patch is applied, but due to the very limited number of users, all of which know better, this will likely never be an issue.

Quite frankly, on binford this is REALLY unnecessary, but it was done out of habit.

The CIS hackery is to rename /usr/openwin/bin/xhost to /usr/openwin/bin/CISxhost and create a script that will complain and exit if xhost + is ever tried.

system

Created a /etc/issue file that gives the usual unauthorized use message:


Unauthorized connections are prohibited; all activity may be logged.
Disconnect immediately if you object to this policy.

Created a /etc/motd file that references BinfordLog. The file looks like:

        Chester F. Carlson Center for Imaging Science
        Rochester Institute of Technology
        Node: binford
        See http://wiki.cis.rit.edu/bin/view/Help/BinfordLog

Limited max number of processes per user to 512 via maxuprc in /etc/system. This will take effect after a reboot:

    * Limit user processes to 512.  Prevents "fork bombs"
    set maxuprc=512

Set RFC 1948 TCP sequence number generation via TCP_STRONG_ISS in /etc/default/inetinit:

    TCP_STRONG_ISS=2

disable execution of code located on user stack

Though this is the default for all 64 bit Solaris kernels, I added the following code to /etc/system in the event that the system is ever booted with a 32 bit kernel. Okay, this is silly, we will never boot a 32 bit kernel on binford but in the name of the RIT server standard and in the mode better safe than sorry...

    * Prevent buffer overflow attacks from getting anywhere past a DoS
    set noexec_user_stack=1

Remember, it will not take effect until the next reboot.

dns

NIS is not used on binford as it is a limited access server. To help DNS and other network services in the case of minor network issues, the IP addresses of leeloo, air, earth, water, and tron were added to /etc/hosts.

printers

Configure the usual set of printers. Set up the queues first, referencing the printers using different duplexing options. Use the PPD file when we can. Set sailfish as the default printer.

cd /usr/lib/lp/model/ppd/Xerox
gzip -dc Xerox-DocuPrint_N32-Postscript.ppd.gz > Xerox-DocuPrint_N32-Postscript.ppd

lpadmin -p sailfish -s printer!sailfish-long -T PS -I postscript -n /usr/lib/lp/model/ppd/Xerox/Xerox-DocuPrint_N32-Postscript.ppd
lpadmin -p sailfish-1 -s printer!sailfish-1 -T PS -I postscript -n /usr/lib/lp/model/ppd/Xerox/Xerox-DocuPrint_N32-Postscript.ppd
lpadmin -p dolphin -s printer!dolphin-long -T PS -I postscript -n /usr/lib/lp/model/ppd/Xerox/Xerox-DocuPrint_N32-Postscript.ppd
lpadmin -p dolphin-1 -s printer!dolphin-1 -T PS -I postscript -n /usr/lib/lp/model/ppd/Xerox/Xerox-DocuPrint_N32-Postscript.ppd
lpadmin -p tang -s printer!tang-long -T PS -I postscript
lpadmin -p tang-1 -s printer!tang-1 -T PS -I postscript
lpadmin -p guppy -s guppy -T PS -I postscript
lpadmin -d sailfish

CIS Packages

A subset of the available CIS packages was installed. The ones that were skipped include ones that are related to the web server or database services as they are not needed on this machine. The list of CIS packages that were installed is:

Package Name Name and Version
CISacrobat acrobat 7.0.9
CISbison bison 2.3
CISctwm ctwm 3.5
CIScurl curl 7.18.0
CISdiffutils diffutils 2.8.1
CISenscript enscript 1.6.1
CISexpat expat 2.0.1
CISfirefox firefox 2.0.0.13
CISflex flex 2.5.35
CISfontconfig fontconfig 2.5.0
CISfreetype freetype 2.3.5
CISgd gd 2.0.35
CISghostscript ghostscript 8.62
CISghostview ghostview 1.5
CISglut glut 3.7
CISgnuindent gnuindent 2.2.9
CISgnum4 gnum4 1.4.10
CISgnumake gnumake 3.81
CISgnupatch gnupatch 2.5.4
CISgnupg gnupg 1.4.9
CISgnutar gnutar 1.19
CISgv gv 3.5.8
CISimmagick immagick 6.4.0
CISlibjpeg libjpeg 6b
CISlibpng libpng 1.2.25
CISlibssh2 libssh 0.18
CISlibtiff libtiff 3.8.2
CISlibtool libtool 1.5.26
CISlibxml2 libxml2 2.6.31
CISlsof lsof 4.78
CISmhash mhash 0.9.2
CISnetpbm netpbm 10.26.52
CISopenssh OpenSSH 5.0p1
CISopenssl OpenSSL 0.9.8g
CISpcre pcre 7.6
CISperl perl 5.8.8 with optional modules
CISpine pine 4.64
CISrcs rcs 5.7
CISrsync rsync 3.0.0
CISsamba Samba 3.0.28a
CISscreen screen 4.0.2
CISsudo sudo 1.6.9p15
CIStcltk tcl and tk 8.5.1
CIStcpwrappers tcpwrappers 7.6
CISthunderbird thunderbird 2.0.0.9
CIStop top 3.7
CISwget wget 1.10.2
CISxaw3d xaw3d 1.5
CISzlib Zlib 1.2.3

Undesired Services Disabled

The /usr/local/sbin/stopservices script was run to disable the undesired services. This should be run after each installation of Solaris patches as they sometimes reenable services.

sendmail

The automatic starting of Sendmail was disabled by the stopservices script.

Disabled the network operation of sendmail, by creating /etc/default/sendmail with these contents:

    MODE=

The fixsubmitcf JumpStart update script was run to fix the sendmail resource files so that mail could be sent from binford.

syslog

Patched up syslog to send data to tron. This is a simplified version of what we used to do throughout CIS, which was inspired by the OSF/1 approach to syslog. Now, we use a single file instead, we still support sending things to tron, and we have a simpler rollover file.

This is the /etc/syslog.conf file:

# Be careful; this file is processed by m4, so take care with quotes
# and other text that might match reserved m4 words.

# The usual stuff...
*.err;kern.notice;auth.notice           /dev/sysmsg
*.info;kern.debug;mail.crit             /var/adm/messages
*.alert;kern.err;daemon.err             operator
*.alert                                 root
*.emerg                                 *

# ... and select messages are forwarded to tron
*.notice                                @tron

Need to tweak the existing logadm facility.

Edited /etc/logadm.conf

Replaces the old text:

    /var/log/syslog -C 8 -P 'Tue Jun 10 07:10:00 2008' -a 'kill -HUP `cat /var/run/syslog.pid`'
    /var/adm/messages -C 4 -P 'Tue Jun 10 07:10:00 2008' -a 'kill -HUP `cat /var/run/syslog.pid`'
    /var/cron/log -c -s 512k -t /var/cron/olog
    /var/lp/logs/lpsched -C 2 -N -t '$file.$N'
    /var/adm/pacct -C 0 -N -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never

With this new text:

    /var/log/syslog -C 21 -P 'Tue Jun 10 07:10:00 2008' -a 'kill -HUP `cat /var/run/syslog.pid`'
    /var/adm/messages -C 21 -z 1 -p 1d -P 'Tue Jun 10 07:10:00 2008' -a 'kill -HUP `cat /var/run/syslog.pid`'
    /var/cron/log -c -s 512k -t /var/cron/olog
    /var/lp/logs/lpsched -C 2 -N -t '$file.$N'
    /var/adm/pacct -C 21 -N -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never

When done, run logadm -V and make sure the output is correct.

Note: The use of 21 for the -C option, as the number of days to retain log files is a result of the RIT Gold Server Standard.

-- JimBodie - 11 Jun 2008

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r8 < r7 < r6 < r5 < r4 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback