TeamForge5.2 System Administrator Guide
TeamForge5.2 System Administrator Guide
TeamForge5.2 System Administrator Guide
2
System Administrator Guide
Contents
Legal fine print......................................................................................................................7
CollabNet, Inc. Trademark and Logos.....................................................................................................7
AppendixA:FrequentlyaskedquestionsaboutCollabNetTeamForgesystemadministration.55
What does it take to install CollabNet TeamForge 5.2?.........................................................................56 Do I need an advanced TeamForge 5.2 install?..........................................................................56 How many servers do I need to run a CollabNet TeamForge 5.2 site?......................................56 Which application runs on which server?..................................................................................57 How does CollabNet TeamForge 5.2 handle third-party applications?......................................57 Which ports should I keep open?...............................................................................................58 What does it mean to run CollabNet TeamForge 5.2 on a virtual machine?..........................................59 Why won't my CollabNet TeamForge 5.2 virtual machine installation start?........................................59 Why does my CollabNet TeamForge 5.2 site show a different time than the host machine it is running on?.59
How does CollabNet TeamForge 5.2 manage security?.........................................................................60 How does CollabNet TeamForge 5.2 help protect data access?.................................................60 What user activities are tracked?................................................................................................60 How does CollabNet TeamForge 5.2 help protect my data?......................................................61 Does CollabNet TeamForge 5.2 work with LDAP?...................................................................61 J2EE Architecture and security..................................................................................................61 What security tools come with CollabNet TeamForge 5.2?.......................................................62 What is a CERT advisory?.........................................................................................................63 What is a patch?.....................................................................................................................................63 Does CollabNet TeamForge 5.2 support merge tracking?.....................................................................64 Should I move my TeamForge database to its own server?...................................................................64 Should I move my source control application to its own server?...........................................................64
This list will be updated from time to time to reflect additional trademarks and changes in registration status. If you have questions or would like further information regarding CollabNet's trademarks, please contact the CollabNet, Inc., Legal Department at trademarks@collab.net. Subversion is a registered trademark of the Subversion Corporation. All other trademarks, logos, brand names, or product names belong to their respective holders.
Chapter
1
Set up a CollabNet TeamForge 5.2 site
Topics: Install a dedicated CollabNet TeamForge 5.2 site Install an advanced CollabNet TeamForge 5.2 site Install CollabNet TeamForge 5.2 without Internet access Install CollabNet TeamForge 5.2 on a virtual machine Upgrade a CollabNet SourceForge Enterprise 5.1 site to CollabNet TeamForge 5.2 Upgrade a CollabNet SourceForge Enterprise 5.1 site to CollabNet TeamForge 5.2 on a virtual machine Upgrade to TeamForge 5.2 without Internet access Install a different build of the same release
You can set up CollabNet TeamForge 5.2 automatically or in a more complex custom configuration. For guidance on choosing between a dedicated install and an advanced install, see Do I need an advanced TeamForge 5.2 install? on page 56 Note: If you are installing the trial version of CollabNet TeamForge 5.2 on VMware, use the instructions at Install CollabNet TeamForge 5.2 on a virtual machine on page 20 instead of these instructions.
You must have root-level access to the machine where you are installing CollabNet TeamForge 5.2 Important: Only CollabNet TeamForge 5.2 should be using the TeamForge database and source control services. If any other application is dependent on the same database application or source control service, follow the configuration instructions at Install an advanced CollabNet TeamForge 5.2 site on page 12. 1. Install the operating system according to the instructions from the OS provider. On Red Hat 5.3 or CentOS 5.2, do not customize your installation. Take the default settings only. On Red Hat 4.7 or CentOS 4.7, select the Minimal installation option.
2. Make sure port 80 is open. Tip: For detailed firewall requirements, see Which ports should I keep open? on page 58 3. Disable SELinux. 4. Verify that the machine name is resolvable on the network. a) Use the hostname command to verify the name of the machine.
hostname bigbox.supervillain.org
b) Use the nslookup command to verify that your hostname maps to the right IP address.
Your server is ready. You can now set up the software environment in which you will install CollabNet TeamForge 5.2.
sh yum-install.sh
2. Create the directory where you will save the TeamForge installer. Tip: You can put the installer anywhere, but for simplicity we recommend /opt/collabnet/teamforge-installer. All the examples given in these instructions use that path.
mkdir -p /opt/collabnet/teamforge-installer
3. Download the TeamForge installer from the location provided by your CollabNet representative. 4. Deploy the installation package.
/opt/collabnet/teamforge-installer/5.2.0.0/conf/site-options.conf
2. Uncomment and rename the HOST_localhost token, replacing localhost with the name of the machine on which your TeamForge site will run. For example, suppose your organization, SuperVillain Inc., has a machine called appbox.supervillain.org available for its site to run on.
DOMAIN_<host_name>=<domain_name>
For example, suppose SuperVillain Inc. wants the domain name worlddomination.supervillain.org for its development site, which will be hosted on a machine called appbox.supervillain.org.
DOMAIN_appbox.supervillain.org=worlddomination.supervillain.org
Tip: If this is an evaluation site only, you can skip this step. The site's URL will then be the same as the server's host name. You should configure this variable only if you want the domain name with which users will reach your site to be different from the host name of the server where the application is running.
Your CollabNet TeamForge 5.2 site will be visible at the URL you selected. Tip: You can customize many other aspects of CollabNet TeamForge 5.2. For more detailed instructions, see Install an advanced CollabNet TeamForge 5.2 site on page 12.
cd /opt/collabnet/teamforge-installer/5.2.0.0 ./install.sh -a -b -V
3. Start the application services.
2 5 : s u p e r v i l l a i n i n c : 1 4 4 . 1 6 . 1 1 6 . 2 5 . : 3 0 2 D 0 2 1 5 0 0 8 0 D 7 8 5 3 D B 3 E 5 C 6 F 6 7 E A B C 6 5 B D 3 A C 1 7 D 4 D 3 5 C B 3 Z 0 0 2 1 4 1 4 1 D 7 0 4 5 5 B 1 8 5 8 3 B F 0 A 5 0 0 0 C A 5 6 B 3 4 8 1 7 A D F 8 D B F I 3 2 3 5 3 A 6 E 6 5 7 4 9 2 6 1 7 3 6 9 6 3 3 A 3 8 3 7 2 E 3 1 3 9 3 4 2 E 3 1 3 6 1 0 2 E 3 1 3 2 2 E
Tip: save this license key in case you need to reinstallCollabNet TeamForge 5.2. 6. Click Save. 7. Verify that the new value for Licensed Number of Users matches the total number of licensed users in your contract.
You can configure each CollabNet TeamForge service to fit your site's particular needs. Each TeamForge service can run on its own server or share a server with one or more other services.
You must have root-level access to the machine where you are installing CollabNet TeamForge 5.2 If you anticipate heavy use of your site, you may want to consider installing the database or the source control service on a separate server. See Set up the database for your CollabNet TeamForge 5.2 site on a separate server on page 38 or Set up Subversion on its own server on page 38. 1. Install the operating system according to the instructions from the OS provider. On Red Hat 5.3 or CentOS 5.2, do not customize your installation. Take the default settings only. On Red Hat 4.7 or CentOS 4.7, select the Minimal installation option.
2. Make sure port 80 is open. Tip: For detailed firewall requirements, see Which ports should I keep open? on page 58 3. Verify that the machine name is resolvable on the network. a) Use the hostname command to verify the name of the machine.
hostname bigbox.supervillain.org
b) Use the nslookup command to verify that your hostname maps to the right IP address.
Your server is ready. You can now set up the software environment in which you will install CollabNet TeamForge 5.2.
sh yum-install.sh
2. Create the directory where you will save the TeamForge installer. Tip: You can put the installer anywhere, but for simplicity we recommend /opt/collabnet/teamforge-installer. All the examples given in these instructions use that path.
mkdir -p /opt/collabnet/teamforge-installer
3. Download the TeamForge installer from the location provided by your CollabNet representative. 4. Deploy the installation package.
The installer is now on your server at /opt/collabnet/teamforge-installer/5.2.0.0 and you are ready to configure your site.
DOMAIN_<host_name>=<domain_name>
For example, suppose SuperVillain Inc. wants the domain name worlddomination.supervillain.org for its development site, which will be hosted on a machine called appbox.supervillain.org.
DOMAIN_appbox.supervillain.org=worlddomination.supervillain.org
Tip: If this is an evaluation site only, you can skip this step. The site's URL will then be the same as the server's host name. You should configure this variable only if you want the domain name with which users will reach your site to be different from the host name of the server where the application is running. 4. Under "Database tokens," configure the site to use the database application. If you are using a PostgreSQL database, keep the value of the DATABASE_TYPE variable at the default value, postgresql. If you are using an Oracle database: Set the value of the DATABASE_TYPE variable to oracle. Set the value of the DATABASE_PORT variable to 1521.
postmaster@supervillain.org.
Tip: The email accounts specified in the SYSTEM_EMAIL, ADMIN_EMAIL, and JAMES_POSTMASTER_EMAIL variables do not necessarily have to be different from each other. JAMES_GATEWAY_HOST: A mail server with Internet access. This assures delivery of site email to users if your TeamForge server cannot connect to a DNS server or cannot get outside connections over port 25. Note: Any email account you specify for the site must be hosted on a separate server from the TeamForge site server. 7. Review the rest of the variables in the site-options.conf file to make sure their values are right for your installation, then save the file. Your site's special requirements are now reflected in its configuration. You can install the software.
tail -f /var/log/yum.log
1. Verify that the sendmail service is stopped. If it is running, stop it.
cd /opt/collabnet/teamforge-installer/5.2.0.0 ./environment_check.sh
The environment checking utility compares your system environment with the list of packages required by the CollabNet TeamForge 5.2 installer, and reports on which required packages are installed, missing, or out of version tolerance. A package that is out of version tolerance triggers a WARNING message. In this case, you have three choices: 1. Remove the package and its dependencies. 2. Have the versions fixed automatically by running the prepare-environment script.
./prepare-environment.sh
The TeamForge installer automatically installs the versions that TeamForge needs. 3. If you can't have packages changed automatically (for example, if some other application depends on the same Subversion or PostgreSQL installation on your application server, or the prepare-environment.sh script finds a package conflict it cannot resolve automatically), you can do the upgrade yourself. Use these versions: Subversion 1.5.5 (FSFS): To upgrade, see the instructions in Version Control with Subversion.
3. Run environment_check.sh again until no WARNING messages appear. Important: Do not move on to the next step until all WARNING messages are resolved. 4. Run the installer.
./install.sh -a -V
Important: Do not delete the teamforge-install directory. You will need it for future maintenance or upgrades.
su postgres
Note: Replace postgres with the value you selected for DATABASE_USERNAME in the site-options.conf file, if you changed it from the default. Your password is the value of the DATABASE_PASSWORD in the site-options.conf file. 2. In the /var/lib/pgsql/data/pg_hba.conf file, make sure the host entry points to your CollabNet TeamForge 5.2 server. The table should look like this:
#TYPE DATABASE USER CIDR-ADDRESS # "local" is for Unix domain socket connections only local all all # IPv4 local connections: host all all 127.0.0.1/32 # IPv6 local connections: host <DATABASE_NAME> <DATABASE_USERNAME> <app_host_ip>/32 where:
<DATABASE_NAME> is the value of the DATABASE_NAME variable in the site-options.conf file. <DATABASE_USERNAME> is the value of the DATABASE_USERNAME variable in the site-options.conf file. <app_host_ip> is the IP address of the main TeamForge application server (that is, the server to which the app parameter is assigned in the site-options.conf file).
3. In the /var/lib/pgsql/data/postgresql.conf file, under CONNECTIONS AND AUTHENTICATION, make sure the listen_addresses variable points to your database server.
listen_addresses = '127.0.0.1,<database_host_ip>'
where <database_host_ip> is the IP address of the the server to which the database parameter is assigned in the site-options.conf file.
Note: If your database is running on the same machine as the main TeamForge application, point the variable to your application server. 4. Log out of PostgreSQL and restart it.
exit
Your database is now ready to manage the work products your users produce. Tip: For recommendations on optimizing your PostgreSQL database to fit the particular requirements of your CollabNet TeamForge 5.2 site, see this wiki page.
SQL> create user <sf user> identified by <sf passwd> default tablespace <your tablespace> temporary tablespace <temporary tablespace>; User created.
4. Grant permissions to the user that you just created.
SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL>
grant grant grant grant grant grant grant grant grant grant
unlimited tablespace to <sf user>; create snapshot to <sf user>; create cluster to <sf user>; create database link to <sf user>; create procedure to <sf user>; create sequence to <sf user>; create synonym to <sf user>; create trigger to <sf user>; create type to <sf user>; create view to <sf user>;
query rewrite to <sf user>; alter session to <sf user>; create table to <sf user>; create session to <sf user>;
Note: The CollabNet TeamForge installer creates the tables and default values for you.
./bootstrap-data.sh
2. Update your Apache configuration. a) Back up your existing /etc/httpd/conf/httpd.conf file.
mv httpd.conf.cn_new httpd.conf
3. Start the application services.
3. Click Admin License Key . If you have entered a license before, the IP address and current licensed number of users on your site are listed on the License Key page. Verify that the IP address is the same as the one you entered in your order form. 4. Click Enter License Key. 5. Copy your new license key from the confirmation email and paste it into the Enter License Key field. A license key string looks like this:
2 5 : s u p e r v i l l a i n i n c : 1 4 4 . 1 6 . 1 1 6 . 2 5 . : 3 0 2 D 0 2 1 5 0 0 8 0 D 7 8 5 3 D B 3 E 5 C 6 F 6 7 E A B C 6 5 B D 3 A C 1 7 D 4 D 3 5 C B 3 Z 0 0 2 1 4 1 4 1 D 7 0 4 5 5 B 1 8 5 8 3 B F 0 A 5 0 0 0 C A 5 6 B 3 4 8 1 7 A D F 8 D B F I 3 2 3 5 3 A 6 E 6 5 7 4 9 2 6 1 7 3 6 9 6 3 3 A 3 8 3 7 2 E 3 1 3 9 3 4 2 E 3 1 3 6 1 0 2 E 3 1 3 2 2 E
Tip: save this license key in case you need to reinstallCollabNet TeamForge 5.2. 6. Click Save. 7. Verify that the new value for Licensed Number of Users matches the total number of licensed users in your contract.
sh yum-install.sh
4. Install the TeamForge installer.
umount /media/RHEL_5.3\ i386\ DVD/ cd /media/ mkdir cdrom mount /dev/cdrom ./cdrom/
Note: Replace RHEL_5.3 with the correct release identifier, if necessary. Tip: If there are any spaces in the automount, unmount it first and mount it as a filepath, with no spaces. 6. Create a yum repository for the CD contents in /etc/yum.repos.d/
cat /etc/yum.repos.d/cdrom.repo
Copy these lines into the file: [RHEL-CDROM] name=RHEL CDRom baseurl=file:///media/cdrom/Server/ gpgfile=file:///media/cdrom/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1 7. Create a Disconnected directory and copy the contents of disconnected.tgz into it.
cat /etc/yum.repos.d/collabnet.repo
Copy these lines into the file: [CollabNet] name=collabnet baseurl=file:///root/Disconnected/5.2/5/$basearch gpgkey=file:///root/Disconnected/RPM-GPG-KEY-collabnet enabled=1 gpgcheck=1 9. Check to make sure that your configuration files are correct. Run these commands:
./install.sh -a -V
11. Under "Location of Help Files" in the site-options.conf file, change the value of the HELP_AVAILABILITY token to local. This makes TeamForge use the copy of the online help that is installed on the local host. When users click a Help link in the application, the resulting help content is served from the application server instead of over the Web. You can now continue your installation according to the instructions at Configure your CollabNet TeamForge 5.2 site on page 14.
2. Unzip the TeamForge_5_2-DL1.zip file. 3. Install the VMware player. On Windows, double-click the VMware-player-2.5.1-126130.exe file. On Linux, run this command:
4. Start the VMware player. On Windows, click Start Programs VMware VMware Player . On Linux, run the vmplayer executable. Note: You don't have to update the VMware player, but you can. 5. In the Commands section, click Open. 6. In the file window, browse to TeamForge_5_2-DL1\teamforge\image_files\TeamForge.vmx Note: Starting the VMware image may take a few minutes, depending on the speed of your system.
The networking for TeamForge is restarted. 7. Specify your outgoing email (SMTP) server. For a one-person evaluation, accept the default value.
If you have a CollabNet TeamForge 5.2 license and intend to send email outside of your firewall, use the SMTP server settings provided by your network administrator. Note: Depending on your corporate email configuration, your system administrator may need to permit TeamForge to send mail to the corporate mail server.
8. Choose whether to run CollabNet TeamForge 5.2 at startup. Choose Yes to start CollabNet TeamForge 5.2 automatically whenever you start the TeamForge VMware image. Choose No to require a manual CollabNet TeamForge 5.2 startup whenever you start the TeamForge VMware image.
9. At the prompt, click Enter to start your CollabNet TeamForge 5.2 site. Note: Startup can take several minutes, depending on the speed of the host system. On some slower systems, you may get a false failure message from JBoss, like this: jboss (app) (localhost:8080) ............................failed to start in 240 seconds, giving up now. Please check the log: /opt/collabnet/teamforge/log/apps/service.log FAILED This can safely be ignored. 10. Log into your new site. The URL for your site is the IP address or domain name provided in the Linux console at the end of the installation process. Any user with access to the network where the host system is running can now get to your site via a Web browser.
2 5 : s u p e r v i l l a i n i n c : 1 4 4 . 1 6 . 1 1 6 . 2 5 . : 3 0 2 D 0 2 1 5 0 0 8 0 D 7 8 5 3 D B 3 E 5 C 6 F 6 7 E A B C 6 5 B D 3 A C 1 7 D 4 D 3 5 C B 3 Z 0 0 2 1 4 1 4 1 D 7 0 4 5 5 B 1 8 5 8 3 B F 0 A 5 0 0 0 C A 5 6 B 3 4 8 1 7 A D F 8 D B F I 3 2 3 5 3 A 6 E 6 5 7 4 9 2 6 1 7 3 6 9 6 3 3 A 3 8 3 7 2 E 3 1 3 9 3 4 2 E 3 1 3 6 1 0 2 E 3 1 3 2 2 E
Tip: save this license key in case you need to reinstallCollabNet TeamForge 5.2. 6. Click Save. 7. Verify that the new value for Licensed Number of Users matches the total number of licensed users in your contract.
To upgrade from CollabNet SourceForge Enterprise 5.0 or from any version of SourceForge Enterprise Edition, first upgrade your site to CollabNet SourceForge Enterprise 5.1 and start it up. Then follow the steps for upgrading to CollabNet TeamForge 5.2.
sh yum-install.sh
2. Create the directory where you will save the TeamForge installer. Tip: You can put the installer anywhere, but for simplicity we recommend /opt/collabnet/teamforge-installer. All the examples given in these instructions use that path.
mkdir -p /opt/collabnet/teamforge-installer
3. Download the TeamForge installer from the location provided by your CollabNet representative. 4. Deploy the installation package.
cd /opt/collabnet/teamforge-installer/5.2.0.0/conf cp /usr/local/csfe-install/csfe-install-5.1.0.0.126.i386-redhat-5/conf/site-options.conf .
Note: If you are moving your site to new hardware, use scp instead.
cd /opt/collabnet/teamforge-installer/5.2.0.0 ./environment_check.sh
The environment checking utility compares your system environment with the list of packages required by the CollabNet TeamForge 5.2 installer, and reports on which required packages are installed, missing, or out of version tolerance. A package that is out of version tolerance triggers a WARNING message. In this case, you have three choices: 1. Remove the package and its dependencies. 2. Have the versions fixed automatically by running the prepare-environment script.
./prepare-environment.sh
The TeamForge installer automatically installs the versions that TeamForge needs. 3. If you can't have packages changed automatically (for example, if some other application depends on the same Subversion or PostgreSQL installation on your application server, or the prepare-environment.sh script finds a package conflict it cannot resolve automatically), you can do the upgrade yourself. Use these versions: Subversion 1.5.5 (FSFS): To upgrade, see the instructions in Version Control with Subversion. PostgreSQL 8.2.12: To upgrade, see the instructions at postgresql.org.
./install.sh -a -V
4. Verify that your database is running. If not, start it.
/etc/init.d/postgresql start
5. Convert your old site's data.
cd /usr/local/sourceforge/runtime/scripts ./migrate.py
The migrate.py script locates the existing site data and modifies it to work with CollabNet TeamForge 5.2.
This includes configuration data for LDAP and the James mail server. Any modifications that you have applied to these components on your CollabNetSourceForge Enterprise 5.1 site are reproduced on your CollabNet TeamForge 5.2 site. 6. Update your Apache configuration. a) Back up your existing /etc/httpd/conf/httpd.conf file.
mv httpd.conf.cn_new httpd.conf
7. If you are moving your site to a new machine as part of your upgrade, you must update the file permissions on your site's data. Use this command to do it automatically:
/opt/collabnet/sourceforge/runtime/scripts/fix_data_permissions.sh
8. Start the application services.
This is the address that appears in the From field of messages automatically sent to users from your site.
Upgrade a CollabNet SourceForge Enterprise 5.1 site to CollabNet TeamForge 5.2 on a virtual machine
You can upgrade to CollabNet TeamForge 5.2 from a VMware installation of CollabNet SourceForge Enterprise 5.1. To upgrade from CollabNet SourceForge Enterprise 5.0 or from any version of SourceForge Enterprise Edition, first upgrade your site to CollabNet SourceForge Enterprise 5.1 and start it up. Then follow the steps for upgrading to CollabNet TeamForge 5.2.
2. Log into your VMware instance as root. 3. In your VMware player, create a directory called /opt/collabnet/teamforge-install. 4. Copy the upgrade package into the /opt/collabnet/teamforge-install directory in your VMware image. Tip: A good way to do this is to open a connection to your site's IP address from your local machine with an FTP or SCP client, such as WinSCP. Use the ifconfig command from inside your VMware server to find your site's IP address. 5. Unpack the upgrade package.
unzip updater-vmware-4_4-5_1.zip
cd /opt/collabnet/teamforge-install/updater-vmware-4_4-5_1/update_4.4-sp1 ./update-4.4_SP1.sh
3. Apply the 5.1 update.
cp httpd.conf httpd.conf.old
b) Rename httpd.conf.cn_new to httpd.conf.
mv httpd.conf.cn_new httpd.conf
2. Create the runtime environment.
./install.sh -V -r -d /opt/collabnet/teamforge
3. Start the application services.
killall java
4. Log into the site and verify that things are working. By default, the URL to log into is the machine name of the server on which your site is installed. If you provided a value for the DOMAIN variable in the site-options.conf file, then go to that domain to log in. The initial administrator username is admin and the password is admin. You are required to change the password the first time you log in. It's a good idea to stop CollabNet TeamForge 5.2 and reboot the machine to make sure all services come up at startup.
5. Advise your site's users to refresh their browser cache the first time they log into the new site. Use language like this: "Welcome to your newly upgraded CollabNet TeamForge 5.2 site. This release comes with significant look and feel improvements designed to make your experience more productive and intuitive. To make sure you are able to view all the new UI elements, please start by pressing Ctrl-F5 to refresh your browser." Tip: You can use your site's Project News feature to do this. See Post a news item. 6. If you are upgrading to CollabNet TeamForge 5.2 from CollabNet TeamForge 5.0, you must update your site's customizations. a) With a source control client such as TortoiseSVN or Subclipse, check out the branding repository from the site's look project. b) Remove the menu_bar.vm file from your local working copy. c) Commit the changes.
The CollabNet TeamForge 5.2 installer automatically connects to the Internet and downloads the software packages needed to run CollabNet TeamForge 5.2. However, on some highly secure networks, the install cannot reach the Internet. In such cases, you must supply the necessary packages by some other means, such as a CD. Note: These steps describe only the basic procedure for upgrading without Internet access. You may need to adapt these steps to fit your organization's security policies. 1. Get on a machine outside your secure network segment. 2. Download the TeamForge installer from the location provided by your CollabNet representative. 3. Download the TeamForge support packages from the location provided by your CollabNet representative. 4. Download the migration package from the location provided by your CollabNet representative. 5. Copy the installer, support packages and migration packages to a CD or other portable medium. 6. Log on as root to the machine where you will install CollabNet TeamForge 5.2. 7. Create the directory where you will save the TeamForge installer. Tip: You can put the installer anywhere, but for simplicity we recommend /opt/collabnet/teamforge-installer. All the examples given in these instructions use that path.
mkdir -p /opt/collabnet/teamforge-installer
8. Deploy the installation package.
/opt/collabnet/teamforge-installer/5.2.0.0/downloads directory.
Note: Don't generate a new one with the generate-site-options.sh script. 3. Uninstall CollabNet TeamForge 5.2.
Chapter
2
Support CollabNet TeamForge users
Topics: Authenticate users with LDAP Let users see what's in a project template
USE_EXTERNAL_USER_AUTHENTICATION=false
and change its value to true. b) Tell CollabNet TeamForge 5.2 where to look for your LDAP configuration settings. Uncomment this line:
LOGIN_CONFIG_XML_FILE={__DATA_DIR__}/etc/login-config.xml
Note: DATA_DIR is usually mapped to the <SITE_DIR>/var directory. You may want to check the SITE_DIR and DATA_DIR variables. c) Check that the MINIMUM_PASSWORD_LENGTH variable matches the limit used on the LDAP server. If your LDAP server does not enforce a minimum password length, set MINIMUM_PASSWORD_LENGTH to 0 (zero). Note: If a password is used in LDAP that is shorter than the minimum allowable password length in CollabNet TeamForge 5.2, you will not be able to create the user in CollabNet TeamForge 5.2. 4. In the <SITE_DIR>/var/etc/login-config.xml file, modify the SourceForge application-policy block to enable CollabNet TeamForge 5.2 to authenticate against your LDAP server. Tip: The application-policy block begins on line 113 of the login-config.xml file. a) Replace the SourceForge application-policy block with the code listed in the sample application-policy block in login-config.xml on page 80. b) Replace principalDNPrefix with your LDAP username parameter. In the example application-policy block, the username is stored in LDAP as the uid parameter. Note: Make sure to include the trailing = in the prefix. c) Replace principalDNSuffix with the LDAP domain in which usernames are stored. Note: Make sure to include the leading comma in the suffix if one is needed.
d) Replace java.naming.provider.url with the URL of your LDAP server. In the example application-policy block, the URL of the LDAP server is ldap://util.dev.sf.net:389/. Note: Make sure to include ldap:// at the beginning of the URL. 5. Save all the files you have edited and change their ownership back to sf-admin.
./install.sh -V -r -d <SITE_DIR>
2. Verify that /etc/openldap/cacerts exists. Note: In RHEL 4, installation of openldap may not create this directory, which is required by openldap to start. 3. In the /etc/openldap/slapd.conf file, change the following values:
Tip: To supply an encrypted password instead of clear text for rootpw, run the command
slappasswd
You are prompted for a password, and a string that looks like the following is displayed:
{SSHA} 7hC2H5OoEZOaT6rL3hAvyxy11jrZYB2
Use that string instead of the sfee used in the rootpw example. 4. Configure the LDAP service to start on boot.
5. Make sure the ldap database directory is clean and has the correct permissions.
/etc/init.d/ldap start
7. Create an initial LDIF (LDAP Interchange Format) file for your groups. Important: Make sure no lines in the ldif content start with white space. Refer to the following for ldif content:
dn: dc=CollabNet TeamForge 5.2,dc=com dc: CollabNet TeamForge 5.2 objectClass: top objectClass: domain dn: ou=Users,dc=CollabNet TeamForge 5.2,dc=com ou: Users objectClass: organizationalUnit dn: ou=Groups,dc=CollabNet TeamForge 5.2,dc=com ou: Groups objectClass: organizationalUnit dn: cn=sfee,ou=Groups,dc=CollabNet TeamForge 5.2,dc=com cn: sfee objectClass posixGroup gidNumber: 30000
8. Add the ldif information.
10. Configure the server to authenticate from LDAP. Tip: On RHES, you can use the authconfig command. If you have a valid display defined, this command will pop up an X window. Otherwise you can use the command line interface. a) Select Use LDAP. b) Specify the base DN and server. Note: Do not select Use TLS. c) Click Next. d) Select Use LDAP Authentication. Fill in the DlDAP basedn and host information. e) Click OK. This program modifies some /etc/pam.d entries and writes out a valid /etc/ldap.conf file. 11. Restart sshd.
/etc/init.d/sshd restart
12. In /etc/nsswitch.conf, verify that the passws, shadow, and group entries look like this:
nss_base_passwd ou=Users,dc=CollabNet TeamForge 5.2,dc=com?one nss_base_shadow ou=Users,dc=CollabNet TeamForge 5.2,dc=com?one nss_base_group ou=Groups,dc=CollabNet TeamForge 5.2,dc=com?one pam_filter objectClass=posixAccount pam_login_attribute uid
14. Log onto the integration server. 15. To configure the CollabNet TeamForge integration server to update LDAP, add these entries to /conf/site-options.conf:
Value localhost 389 Example: ou=Users,dc=CollabNet TeamForge 5.2,dc=com) Example: ou=Groups,dc=CollabNet TeamForge 5.2,dc=com 30000
Description The host of the LDAP server. The port of the LDAP server. Schema address that users are added into.
CVS_LDAP_GROUPS_DN
CVS_LDAP_USERS_STARTID
The numeric userid to start counting from when creating new users. The numeric groupid to start counting from when creating new groups. The "root dn" for the LDAP server. This must be the value specified in slapd.conf. The password for the root dn.
linux_ldap sfee
,ou=People,dc=dev,dc=sf,dc=net
Important: Be sure to include the leading comma in the suffix if one is needed. 3. Replace java.naming.provider.url with the URL of your LDAP server. In the example application-policy block, the URL of the LDAP server is:
ldap://util.dev.sf.net:389/
Note: Be sure to include ldap:// at the beginning of the URL. Important: To complete your CollabNet TeamForge 5.2 configuration and enable your CollabNet TeamForge 5.2 JBoss installation to authenticate against your corporate LDAP server, you must restart CollabNet TeamForge 5.2.
./install.sh -V -r -d <SITE_DIR>
Chapter
3
Grow your CollabNet TeamForge installation
Topics: Set up Subversion on its own server Set up the database for your CollabNet TeamForge 5.2 site on a separate server
HOST_codebox.supervillain.org=subversion
Note: You can specify subversion, cvs, or perforce. 5. Edit the existing HOST variable to reflect the fact that your source control service is no longer running on that machine. For example, suppose your organization, SuperVillain Inc., has a machine called appbox.supervillain.org available for its site to run on and a machine called codebox.supervillain.org for its Subversion services. Your site-options.conf file will now look like this:
Set up the database for your CollabNet TeamForge 5.2 site on a separate server
If you expect your site to have a high rate of user traffic, you may want to run the site's database on its own server. The database is where users' project pages, documents, tracker artifacts, tasks, discussions and other work products are stored and accessed.
To run your TeamForge site's database on its own server, you must install the database and configure TeamForge to work with it. The advantage of hosting a service on a separate server is that it does not share CPU, RAM or I/O bandwidth with the server that is hosting the main TeamForge application. Note: Each TeamForge site can have only one database server.
HOST_databox.supervillain.org=database
5. Under "Database tokens," configure the site to use the database application. If you are using a PostgreSQL database, keep the value of the DATABASE_TYPE variable at the default value, postgresql. If you are using an Oracle database: Set the value of the DATABASE_TYPE variable to oracle. Set the value of the DATABASE_PORT variable to 1521.
HOST_databox.supervillain.org=database
3. Under "Database tokens," configure the site to use the database application.
If you are using a PostgreSQL database, keep the value of the DATABASE_TYPE variable at the default value, postgresql. If you are using an Oracle database: Set the value of the DATABASE_TYPE variable to oracle. Set the value of the DATABASE_PORT variable to 1521.
SQL> create user <sf user> identified by <sf passwd> default tablespace <your tablespace> temporary tablespace <temporary tablespace>; User created.
8. Grant permissions to the user that you just created.
SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL>
grant grant grant grant grant grant grant grant grant grant grant grant grant grant exit
unlimited tablespace to <sf user>; create snapshot to <sf user>; create cluster to <sf user>; create database link to <sf user>; create procedure to <sf user>; create sequence to <sf user>; create synonym to <sf user>; create trigger to <sf user>; create type to <sf user>; create view to <sf user>; query rewrite to <sf user>; alter session to <sf user>; create table to <sf user>; create session to <sf user>;
Note: The CollabNet TeamForge installer creates the tables and default values for you.
Chapter
4
Protect your CollabNet TeamForge site
Topics: Set up SELinux Protect Apache with SSL Protect integrations with SSL Set up SSH tunneling
Set up SELinux
If SELinux is running, modify it to allow the services that CollabNet TeamForge 5.2 requires. 1. Enable Apache (running on port 80) to proxy traffic to JBoss (running on port 8080).
setsebool -P httpd_can_network_connect 1
Note: If you are installing on CentOS 4.6, skip this step. 2. Change the context for your Subversion source code service.
SSL_CERT_FILE=www.example.com.crt
c) Set the value of the SSL_KEY_FILE variable to the location of the file that contains your site's RSA private keys.
SSL_KEY_FILE=www.example.com.key
Important: Select a location for your cert file and your key file that is permanent across restarts. Don't use a temp directory that can be wiped out. 3. Recreate the runtime environment.
./install.sh -V -r -d <SITE_DIR>
4. Rename the httpd.conf.cn_new file to httpd.conf and restart the Apache service. When you point your browser at CollabNet TeamForge 5.2, it should now automatically redirect to HTTPS traffic.
Regardless of which option you select, the process is almost identical. 1. Know the fully qualified domain name (FQDN) of the website for which you want to request a certificate. If you want to access your site through https://www.example.com, then the FQDN of your website is www.example.com. Note: This is also known as your common name. 2. Generate the key with the SSL genrsa command.
openssl x509 -req -days 370 -in www.example.com.csr -signkey www.example.com.key -out www.example.com.crt
This command will generate a self-signed certificate in www.example.com.crt. You will now have an RSA private key in www.example.com.key, a Certificate Signing Request in www.example.com.csr, and an SSL certificate in www.example.com.crt. The self-signed SSL certificate that you generated will be valid for 370 days.
apachectl restart
./install.sh -V -r -d <SITE_DIR>
3. Set the tunnel password.
passwd tunnel
4. Generate the SSH key.
Chapter
5
Maintain your CollabNet TeamForge installation
Topics: Monitor services on your site Get information about a CollabNet TeamForge 5.2 site Patch CollabNet TeamForge 5.2 Specify DNS servers Optimize PostgreSQL with vacuum Change the location of a log file Back up and restore CollabNet TeamForge 5.2 data
export BBHOME=/opt/bb/bb
b) Install the Big Brother client at that location. 2. Copy the script for the service you want to monitor into the BBHOME/ext directory. 3. Add an entry about this script in the BBHOME/etc/bb-bbexttab file. Such an entry will look like this:
<SITE_DIR>/runtime/scripts/snapshot.py
Snapshot gathers data from several processes running on the system, including: JBoss Tomcat James PostgreSQL Apache
The information is written to LOG_DIR/runtime/snapshot.log and LOG_DIR/apps/server.log. Note: LOG_DIR is the directory you defined as the logging directory in the site-options.conf file.
Note: For convenience, this is referred to as the installation source directory. By default, the installation source directory is /opt/collabnet/teamforge-installer/5.2.0.0. If necessary, download the installer from the CollabNet web site and unpack it in this directory.
./upgrade-site.sh -d /opt/collabnet/teamforge -l 1
b) Use the manifest option to point to a manifest file that specifies the patch level you want.
Contrariwise, if you just upgraded from patch level 1 to patch level 3, you can use the rollback option to revert to patch level 1. 1. Change to the /opt/collabnet/teamforge-installer/5.2.0.0 directory.
cd /opt/collabnet/teamforge-installer/5.2.0.0
2. Stop CollabNet TeamForge 5.2. Note: If your site is running on multiple machines, stop all of them.
./upgrade-site.sh -d <SITE_DIR> -r
where <SITE_DIR> is the installation directory where the application is already installed. 4. Start CollabNet TeamForge 5.2 on all the machines in the group.
Remove a patch
Use the uninstall option of the upgrade-site.sh script to decrement the patch level to the next lowest version. For example, use this procedure if your site has patch level 3 and you want to bring it back to patch level 2. 1. Stop CollabNet TeamForge 5.2. Note: If CollabNet TeamForge 5.2 is running on multiple machines, stop all of them.
./upgrade-site.sh -d <SITE_DIR> -u
3. Start CollabNet TeamForge 5.2 on all machines in the group.
Troubleshoot patches
You may encounter problems like these when applying or removing a patch.
Error message: "The patch file <package name> could not be found in the patch directory. Please verify the patch and try again."
1. Check that the RPMs in the install list are present in the upgrade component directory. 2. If you receive this message you should verify that you have received and unpacked the whole Component Upgrade bundle.
./install.sh -V -r -d <SITE_DIR>
3. Restart CollabNet TeamForge 5.2.
./install.sh -V -r -d <SITE_DIR>
4. Start the site.
CollabNet TeamForge 5.2 creates the directory and stores the following data in it, in compressed format: Subversion repositories CVS repositories The data directory ( /var) The CollabNet TeamForge 5.2 database.
for i in `echo "\d" | psql sf | awk {'print $3'}` do echo "ALTER TABLE $i OWNER TO $SFUSER;" | psql sf done
See the PostgreSQL pg_restore man page for additional examples and information.
Appendix
A
Frequently asked questions about CollabNet TeamForge system administration
Topics: What does it take to install CollabNet TeamForge 5.2? What does it mean to run CollabNet TeamForge 5.2 on a virtual machine? Why won't my CollabNet TeamForge 5.2 virtual machine installation start? Why does my CollabNet TeamForge 5.2 site show a different time than the host machine it is running on? How does CollabNet TeamForge 5.2 manage security? What is a patch? Does CollabNet TeamForge 5.2 support merge tracking? Should I move my TeamForge database to its own server? Should I move my source control application to its own server?
56 | CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration
Source control Here are some reasons why you might want to customize the configuration of your site's source control service: You need to provide more than one Subversion server. You plan to run your source control service on a separate standalone server. You need to provide other source control services. (CVS and Perforce are supported.)
Security If you intend to have users access your site via SSL (using a URL that starts with https), you will need to edit the site configuration file. See Protect Apache with SSL on page 42 for information. If your site requires SELinux, you must configure your Apache service. See Set up SELinux on page 42 for information.
CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration | 57
Subversion
Subversion can be used to provide source control functionality. It uses the Tomcat and Apache services. A site can have zero, one, or more than one instances of the svn application, running on an arbitrary number of machines. CVS can be used to provide source control functionality. It uses the Tomcat service. A site can have zero, one, or more than one instances of the cvs application, running on an arbitrary number of machines.
CVS
Here are some examples of common one-host and multi-host arrangements, as expressed in the site-options.conf file. One host In this example, all applications are running on one server named worlddomination.supervillain.net. HOST_worlddomination.supervillain.net=app database subversion cvs Two hosts In this example, one host is running the core functionality and the database, while another host provides Subversion for source control. HOST_itchy.springfield.com=app database HOST_scratchy.springfield.com=subversion Three hosts In this example, one Subversion server runs on its own box while another Subversion server shares a machine with the core CollabNet TeamForge 5.2 application. HOST_athos.musketeers.net=app subversion HOST_aramis.musketeers.net=cvs database HOST_porthos.musketeers.net=subversion Four hosts In this example, one instance of each application runs on its own host. HOST_hearts.rummy.org=app HOST_spades.rummy.org=database HOST_clubs.rummy.org=subversion HOST_diamonds.rummy.org=cvs
58 | CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration
CollabNet TeamForge 5.2 integrates with additional third party applications, such as Microsoft Office 2003 and XP, and Microsoft Project 2002 and 2003. Support will always make an effort to provide assistance in using third party applications with CollabNet TeamForge 5.2. However, for complete, end-to-end support, customers should consult with the application vendor, as the vendor is best equipped to provide the depth and breadth of support necessary to use their products. CVS CollabNet CollabNet TeamForge 5.2 Technical Support provides best-effort support for Subversion and CVS client usage issues. CollabNet TeamForge 5.2 does not ship any source control functionality. (Neither the server daemon nor the client ships with CollabNet TeamForge 5.2.) For best results, customers should contact the vendor that supplied the source control server and client that they are using for assistance. The CVS RPM that ships with RedHat Linux Enterprise Server 3 and RedHat Advanced Server 2.1 has a known bug that prevents users who have access to 32 or more CVS repositories from accessing the repositories that are alphabetically after the 31st. This is currently RedHat bug #131124 ( https://bugzilla.RedHat.com/bugzilla/show_bug.cgi?id=131124 ). Customers are advised to contact RedHat for a solution to this bug if they have CollabNet TeamForge 5.2 users who are members of 32 or more CVS repositories on a CollabNet TeamForge 5.2 CVS server. Discussion forum threading For CollabNet TeamForge 5.2 discussion forums to properly thread posts sent in via email, the email message must include either the References or In-Reply-To header. Email received without both of those headers cannot be threaded accurately and will most likely be treated as a new topic or thread in the discussion. While the lack of either of the headers is not an explicit RFC violation, the inclusion of such headers is considered compliance with section 3.6.4 of RFC 2822. Microsoft Outlook and Lotus Notes are prone to sending mail without at least one of the required headers. There is evidence that Lotus Notes versions 6.5 and newer are capable of sending email that includes at least one of the two required headers. However, older versions of Lotus Notes either do not include the headers, or require special reconfiguration in order to do so. Microsoft Outlook on its own does include the In-Reply-To header. However, mail is sent through a Microsoft Exchange server, that header is stripped off. There are no known versions of Microsoft Exchange server that do not strip these RFC headers from outbound email, and therefore there are no known workarounds. Contact your IT group or the vendor of your email client with questions or concerns.
The following operating system level ports must be exposed. All other ports can be firewalled off to maintain security. 22 (ssh) 25 (smtp) Port 22 is the default port for the secure shell (ssh). This is required for basic ssh functionality and for CVS, as all CVS transactions occur over ssh. Port 25 is the default port smtp (email). CollabNet TeamForge 5.2 discussion forums include mailing list functionality that allows users to send email to the CollabNet TeamForge 5.2 server. The James mail server included with CollabNet TeamForge 5.2 listens on port 25 to accept this mail for processing. Port 80 is the default port for Web data transfer. Port 443 is the default port for encrypted Web data transfer (https). The Apache web server should be configured to encrypt all data so that it cannot be compromised by a third party with malicious intent. Apache can be configured to force all traffic to be sent over https, even when a request is sent via port 80 (http).
CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration | 59
Important: If you are running the SCM (CVS, Subversion, or Perforce) integration server on a separate physical server from the CollabNet TeamForge 5.2 standalone application server, you must expose a port on the SCM integration server on which the application server can communicate with the SCM integration server. The default is port 7080.
To purchase additional licenses, visit http://www.collab.net/products/sfee/buyit.html . You are attempting to run CollabNet TeamForge 5.2 on an unsupported VMware product. The following legacy VMware product versions are not supported: VMware ESX Server 2.x VMware GSX Server 3.x VMware ACE 1.x VMware Workstation 4.x
For more information about VMware Player and similar products, see http://www.vmware.com/products/player/
Why does my CollabNet TeamForge 5.2 site show a different time than the host machine it is running on?
In some cases it is possible for the clock in the CollabNet TeamForge 5.2 VMware image to drift from that of the host machine. If you notice this issue, you can set the CollabNet TeamForge 5.2 VMware image to synchronize time with an external NTP server. A script is provided to enable you to configure time synchronization easily. The configure-ntp.sh script sets up a manual periodic time sync once per hour between the VMware image and the NTP server. Important: Before running this script, your virtual machine must be able to access an external NTP server. If your virtual machine is running inside a firewall, and is unable to access an external public NTP server, you may need to talk to your system administrator to find an accessible NTP server within your network. While logged into the virtual machine, run /root/configure-ntp.sh <ntp server>. If you do not enter an NTP server, the script will try to use pool.ntp.org, a publicly available time service, by default.
60 | CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration
Note: VMware advises against setting up the VMware image to use NTP directly because it can interfere with VMware's own built-in time syncing mechanism. For detailed information about timekeeping in VMware, see http://www.vmware.com/pdf/vmware_timekeeping.pdf
The web server must have access to the application server (typically port 8080). Note: This port is not exposed outside the firewall.
The web server must have access to the SCM server for repository browsing functionality. The application server must have access to the backend (SCM, database, mail, etc.) servers. The SCM server must be able to access CollabNet TeamForge 5.2 for commit notifications. The mail server must be able to deliver messages across the firewall.
Authentication and authorization To secure sensitive data, CollabNet TeamForge 5.2 provides access control tools to restrict unauthenticated and non-member access. User authentication is supported through verification of username and password during login. Project administrators can completely restrict access to authenticated members by marking projects as gated communities or private. A gated community is only accessible to unrestricted users, while a private project is only accessible to its members. CollabNet TeamForge 5.2 provides fine-grained access control through RBAC (Role-based access control). Users can be restricted to accessing specific application tools, object groups (trackers, task groups, etc) or they may be restricted to specific operations (such as the ability to view tracker artifacts but not create or update them). Project administrators can manage user access to projects using the administration tools provided by CollabNet TeamForge 5.2.
CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration | 61
Typically web servers log every page (or URL) being accessed, including the IP address of the user, date and time of access, etc. These logs are very useful in tracking the source of any security violations that may occur. CollabNet TeamForge 5.2 application also audits every change made to application objects (trackers, artifacts, documents, etc.) within the system. Administrative actions such as adding a new user and assigning permissions to members are also tracked. Every change is recorded with the exact changes made to specific properties of objects within the system, the user making the change, the date and time the change was made, etc. CollabNet TeamForge 5.2 auditing tools are a powerful way to track unwanted and/or unauthorized changes within the system.
Data storage Sensitive data, such as credit card numbers, financial information, etc., must be stored securely. Usually this is done by encryption. In the context of an application like CollabNet TeamForge 5.2, sensitive data includes user passwords. CollabNet TeamForge 5.2 encrypts no other data. Since user passwords are used for authentication purpose only, CollabNet TeamForge 5.2 only stores password digests with an MD5 based cryptographic hash to guarantee adequate data protection. MD5 is a one-way hash function that is used to verify data integrity through the creation of a 128-bit digest from data input. A one-way hash function is designed in such a way that it is hard to reverse the process, that is, to find a string that hashes to a given value. MD5 is currently a standard, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1321. According to the standard, it is "computationally infeasible" that any two messages that have been input to the MD5 algorithm could have as the output the same message digest, or that a false message could be created through apprehension of the message digest.
62 | CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration
In a multi-tier architecture, access to each tier is restricted to the tier above it, effectively securing the tiers behind the firewall. For example, while clients (users accessing the system through a web) access the web server, they neither have access to the application and backend servers nor are they aware of their existence. Similarly, the web server itself does not have access to the backend servers (database, SCM, mail etc.) Exceptions to this rule include: Direct client access provided to the SCM servers. SCM servers are accessed across the firewall typically through SSH protocol (for CVS), or HTTP or HTTPS (for Subversion). SCM server data is also accessible in a view only mode through the web interface. Clients must have access to the mail server for posting messages to mailing lists. Mail server must have access to deliver messages across the firewall.
Clients can also access the SOAP APIs through the web server. The web server in turn forwards SOAP requests to the application server for processing.
Cookies CollabNet TeamForge 5.2 requires browsers to support cookies. Cookies are used for the sole purpose of managing user sessions. CollabNet TeamForge 5.2 uses session cookies for storing session ID information. A transient cookie, sometimes called a session cookie, contains information about a user that disappears when the user's browser is closed. Unlike a persistent cookie, a transient cookie is not stored on your hard drive but is only stored in temporary memory that is erased when the browser is closed. Session management CollabNet TeamForge 5.2 runs on the JBoss Application Server, with TomCat as the JSP/Servlet engine. The JSP/Servlet engine is used for serving dynamic web pages and managing HTTP sessions. Servlet engines generate session IDs that are exchanged with the client browser as session (or transient) cookies. TomCat generates Session IDs using the java.security.SecureRandom class. The java documentation for this class says: This class provides a cryptographically strong pseudo-random number generator (PRNG). A cryptographically strong pseudo-random number minimally complies with the statistical random number generator tests specified in FIPS 140-2, Security Requirements for Cryptographic Modules, section 4.9.1. Additionally, SecureRandom must produce non-deterministic output and therefore it is required that the seed material be unpredictable and that output of SecureRandom be cryptographically strong sequences as described in RFC 1750: Randomness Recommendations for Security. A user session is established after CollabNet TeamForge 5.2 authenticates a user's login information. A session is invalidated when one of following events occur: The user explicitly logs out of CollabNet TeamForge 5.2 . When the user's session times out.
Dismissing the browser leaves the session unusable until it is eventually timed out and invalidated.
CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration | 63
Passwords CollabNet TeamForge 5.2 only stores password digests with an MD5-based cryptographic hash to guarantee adequate data protection. MD5 is a one-way hash function. A one-way hash function is designed in such a way that it is hard to reverse the process, that is, to find a string that hashes to a given value. Administrators can force CollabNet TeamForge 5.2 to reject passwords that do not meet a minimum password length. This feature is useful to help stop people from using trivial passwords where security is an issue. By default, CollabNet TeamForge 5.2 does not perform any kind of password strength checking (e.g. CollabNet TeamForge 5.2 does not identify and reject dictionary-words/common names, does not expire passwords, does not enforce upper/lower case/special character combinations.) CollabNet's Professional Services organization can install add-ons which enforce password expiration and other policies. Cross-site scripting (XSS) protection CollabNet TeamForge 5.2 is designed to protect the application against cross-site scripting (XSS) attacks. User-supplied text is encoded by clearing HTML markup before rendering it. Constant code reviews are performed to ensure that all fields are secured appropriately. High priority is given to fixing any oversights and issuing security patches as necessary.
What is a patch?
A patch is a package of code that fixes or adds to the functionality of a CollabNet product. Patches are also known as "component upgrades." Things to know about patches Patches are cumulative. You don't need to apply multiple patches sequentially to get to the desired patch level. You can move up (or down) one or more patch levels with a single operation. The Level option ( -l) allows you to downgrade or upgrade to any patch level (within the maximum available in the cumulative patch). The Rollback option (-r) allows you to revert the site to the previous patch level it was at, before the current patch was applied. The Uninstall option (-u) allows you to downgrade the patch level on the site by one. When a patch installation fails you can use the Force option (-F) to proceed, without manually uninstalling previous patches. The system displays a summary of what happens during the patch installation. Before proceeding with the patch installation, you can use the "dry run" mode (-t option) to see the summary of actions that will be performed during the installation.
Best practices Before applying a patch, note the following principles. The upgrade scripts are usable only with an existing installation. No data migration will occur if any changes have been made to the database schema. You must use the sudo command or have an account that is equivalent to root in order to complete a patch installation successfully. Important: Before installing a patch, verify that it has been fully tested and qualified.
64 | CollabNet TeamForge 5.2 | Frequently asked questions about CollabNet TeamForge system administration
Shared TeamForge-database server Daily users Daily discussion forum entries Fewer than 1000 Fewer than 1000
Shared TeamForge-SCM server Daily source code commits Fewer than 1000
Appendix
B
Reference information for CollabNet TeamForge system administration
Topics: Install reference Scripts Log files Configuration files
66 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
Install reference
This reference information includes details to support installing the application.
Required hard drive capacity depends on the estimated amount of document and file release uploads. Note: We strongly recommend running the CollabNet TeamForge 5.2 application and its database on separate physical servers. Each server should meet the same dual-processor, 2-GHz standard.
Operating system Red Hat Enterprise Linux Red Hat Enterprise Linux Red Hat Enterprise Linux CentOS CentOS CentOS
Important: Red Hat Enterprise Linux 5.3 machines must have access to the Red Hat Network or equivalent (satellite server, spacewalk, or RHN proxy). For more information, see www.redhat.com.
Databases These database products have been tested with CollabNet TeamForge 5.2: PostgreSQL 8.2.12 Oracle 10.2
Browsers These browsers have been tested with CollabNet TeamForge 5.2: Mozilla Firefox 3.0.x Microsoft Internet Explorer 6.0.x Microsoft Internet Explorer 7.0.x
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 67
Software configuration management tools These software configuration management (SCM) tools have been tested with CollabNet TeamForge 5.2: CVS 1.11.x Subversion 1.5.5 (FSFS) Perforce 2006.2
Java SDK Java SDK 1.5.0_12 has been tested with CollabNet TeamForge 5.2. Oracle client Oracle 10gR2 - 10.2.0.1.0 Standard Edition has been tested with CollabNet TeamForge 5.2. Note: The Express Edition is not supported.
Microsoft applications These Microsoft applications have been tested with CollabNet TeamForge 5.2: Microsoft Project 2002 (with Service Pack 1) on WinXP Service Pack 2 and Win20002 Service Pack 4 Microsoft Project 2003 (with Service Pack 1) on WinXP Service Pack 2 and Win20002 Service Pack 4 Microsoft Office XP (with Service Pack 3) on WinXP Service Pack 2 and Win20002 Service Pack 4 Microsoft Office 2003 (with Service Pack 1) on WinXP Service Pack 2 and Win20002 Service Pack 4
LDAP (Lightweight Directory Access Protocol) application OpenLDAP 2.3.27-5 has been tested with CollabNet TeamForge 5.2.
Package Python-curl httpd Jdk Postgres Neon Subversion Mod_dav_svn CVS Python-Chardet ZSI Python-fpconst
Shipped with OS Required for TeamForge 5.2 N/A 2.2.3 N/A 8.1.4 0.25.5 1.4.2 N/A 1.11.22-5 N/A N/A N/A 7.15.5-1.2 2.2.3 1.5.0_12 8.2.12 0.27.2 1.5.5 1.5.4 1.11.22-5 1.0-1 1.7-2 0.7.2-3
Tolerance Should be compatible with the python installed. 2.2.3-*. Should be compatible with apr installed >= 1.5 8.3.* >=0.27.2 1.6.* Should be compatible with the subversion installed. 1.11.22-5 1.0-1 1.7-2 0.7.2-3
68 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
Shipped with OS Required for TeamForge 5.2 N/A 1.2.7 1.2.7 0.11.6-3 1.2.7 1.2.7
Tolerance 0.11.6-3 >= 1.2.7 Should be compatible with the apr installed.
Package Python-curl httpd Jdk Postgres Neon Subversion Mod_dav_svn CVS Python-Chardet ZSI Python-fpconst SOAPpy apr Apr-util
Shipped with OS Required for TeamForge 5.2 N/A 2.0.52 N/A 7.4.13 0.24.7 1.1.4 1.1.4 1.11.17 N/A N/A N/A N/A 0.9.4 0.9.4 7.12.1-1.2 >=2.0.52 1.5.0_12 8.2.12 0.27.2 1.5.5 1.5.4 1.11.17 1.0-1 1.7-2 0.7.2-3 0.11.6-3 0.9.12 0.9.12
Tolerance Should be compatible with the python installed. 2.0.52-*. Should be compatible with apr installed >= 1.5 8.3.* >=0.27.2 1.6.* Should be compatible with the subversion installed. >=1.11.17 1.0-1 1.7-2 0.7.2-3 0.11.6-3 >= 0.9.12 Should be compatible with the apr installed.
Package Python-curl
Tolerance
Compiled by CollabNet
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 69
httpd Jdk Postgres Neon Subversion Mod_dav_svn CVS Python-Chardet ZSI Python-fpconst SOAPpy apr Apr-util
2.0.52 N/A 7.4.13 0.24.7 1.1.4 1.1.4 1.11.17 N/A N/A N/A N/A 0.9.4 0.9.4
>=2.0.52 1.5.0_12 8.2.12 0.27.2 1.5.5 1.5.4 1.11.17 1.0-1 1.7-1 0.7.2-3 0.11.6-3 0.9.12 0.9.12
2.0.52-*. Should be compatible with apr installed >= 1.5 8.3.* >=0.27.2 1.6.* Should be compatible with the subversion installed. >=1.11.17
No No No No No No No
1.0-1. Should be compatible with the Yes python installed 1.7-1 Yes
0.7.2-3. Should be compatible with the Yes python installed 0.11.6-3. Depends on python-fpconst Yes >= 0.9.12 Should be compatible with the apr installed. No No
Hardware and software requirements for the CollabNet TeamForge 5.2 download
To run the CollabNet TeamForge 5.2 system must meet some minimal requirements. An operating system that VMware Player can run on. For Windows and Linux versions supported by VMware Player, see the VMware Player documentation. 2GB system RAM 8GB available disk space 2 Ghz Pentium 4 or equivalent processor Note: CollabNet TeamForge 5.2 may also run on some other VMware products, such as VMware Workstation 5.5. However, these instructions are only for using VMware Player.
70 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
Scripts
System administrators can use these utilities to control the behavior of the application.
bootstrap-data.sh
The bootstrap-data.sh script prepares application and database data for new installations. Preparing application and database data is referred to as "bootstrapping" the data. Overview Important: This script is only for new installations. If you run it on a site that already has data, all data will be wiped. This script resides in the <installation_source> directory and calls the wrapper-bootstrap-data.py script when run. The [log_file_directory]/runtime/bootstrap.log file is created when this script is run. All success and error messages from this script are written to this log file. Usage Run this script as follows:
./bootstrap-data.sh -n -F -V -d <SITE_DIR>
Options The following options are available for the bootstrap-data.sh script: -d | --directory -h | --help -n | --non-interactive Specify installation directory. This argument is required. Provides a list of all available options for this script. Runs the script in a non-interactive mode. The script will fail with an error message when used with this option if an existing [DATA_DIR] is located. You can use the -F option to force bootstrapping on sites that have an existing [DATA_DIR]. This option is only valid when the -n option is used. This option forces the bootstrapping of data when a [DATA_DIR] exists. Writes all script actions to the screen. Without this option the script runs silently and logs messages to the [log_file_directory]/runtime/bootstrap.log file. Do not show script output. Points to the site-options.conf configuration file for the site. This argument is optional.
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 71
Overview You can use this script to start or stop the application as a whole or to start and stop an individual service. You can also use it to determine the status of an individual service. Important: On production sites, this script must be invoked by the root user.
Prints this message and exits. Perform the command for the service serviceName Print debug messages
log/runtime/service.log: The master service log. log/{service}/service.log: Log entries from starting up individual services end up in the service.log file of the corresponding service log folder (e.g. log/apps/service.log)
environment_check.sh
The environment_check.sh script verifies whether all environment packages required for installing CollabNet TeamForge are present. Overview Use the environment_check.sh script to verify that you have all required environment packages for installing SourceForge. Note: You may be prompted to manually remove any older packages identified on your system before running the install.sh script.
72 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
./environment_check.sh
install.sh
The install.sh script handles all operations related to installing and removing the application. Options
-r | --runtime Create the runtime instance using the site configuration file -R | --internalruntime Create the internal runtime instance using the site configuration file -F | --force Force the operation that is performed wherever appropriate (eg. install/uninstall) -i | --install Install application packages -u | --uninstall Uninstall application packages -S | --startnow Start application services after completing the other operations (if possible) -s | --startup Start application services on reboot and start it now: equivalent to -I -S -d | --directory type='str', argname='installation_base_dir', Path where the site would get installed -f | --siteoptionsfile Path to the site configuration file (default: ./conf/site-options.conf) -c | --conf-file The environment configuration file (usually of the form environment-<platform>.conf), used to identify the platform. Note: This is not to be confused with the the site-options.conf file. -I | --initscript Start application services on reboot -V | --verbose Show all output in noninteractive mode -E | --check_environment Check if the system environment is suitable for this installation -a | --all Performs these operations in sequence - Install, create runtime and setup initscripts (equivalent to: -I -r -i) -D | --debug Displays traceback errors if any
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 73
-C | --cleanup Stop/Kill the application processes, wipes out application packages and site directory. Caution: THIS OPTION WILL WIPE OUT THE SITE DATA. -n | --noninteractive Used to run the installer in non-interactive mode
pbl.py
The pbl.py utility enables you to upload files to the Project Build Library and perform various operations on them. Options
Print out a help message and exit. Your TeamForge Lab Management login name. Required for all upload operations. Your TeamForge Lab Management API key. Required for all upload operations. The URL to the TeamForge Lab Management API's. Will generally be https://$external_host/cubit_api/1. Required for all upload operations. Print out a comment on this operation. The comment is always optional. The comment string will be logged in the audit log, but is not recorded in the PBL. For example, if you are deleting some files, you might want to use a comment to explain why you were deleting those files, for future auditing purposes. Print out more detail on what the pbl.py is doing. server and presents the results to you in nicely formatted text. If you'd like to instead see the raw XML returned from the server, select this option.
--verbose|-v
--xml-server-output|--xml If this option is not specified, the pbl.py client reads in the XML returned from the
--no-auth-cache
As a convenience, the pbl.py function caches the value of the --api-user and --api-key parameters in your home directory, in a subdirectory named .TeamForge Lab Management , the first time a successful authentication is performed against the server. This is analogous to the Subversion client's use of the .subversion directory to store authentication credentials. Selecting the --no-auth-cache option turns off this caching. The TeamForge Lab Management project in which the file you are operating on is located. The visibility type of the file, either pub (the file is in the public area of the PBL) or priv (the file is in the private area of the PBL). The remote path on the server, excluding the base directory, the project, and the visibility type. Examples are below.
snapshot.py
Use this script as a debugging tool to troubleshoot system errors. It records a snapshot of the current state of the machine. Overview Run this script manually to generate debugging information before restarting the instance. Usage Run this script as follows:
74 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
<SITE_DIR>/runtime/scripts/snapshot.py
Options The following options are available for the snapshot.py script: -h|--help --extra Provides information on using the script. An arbitrary command whose output should be placed in the generated log file. For example, you can have snapshot.py execute the lsof command like this:
Note: The output from snapshot.py is written to a log file in the [LOG_DIR]/runtime directory. Use the output (snapshot.log) to troubleshoot any system or CollabNet related errors.
Cluster location Important: The snapshot.py script generates a log file for the node on which it is run. When a CollabNet site is deployed on a cluster and you need information to troubleshoot problems, it is recommended that you run this script on all the nodes.
upgrade-site.sh
With this script, you can perform a cumulative patch upgrade or downgrade on a running instance. Overview This is a wrapper for the upgrade.py script. The script verifies the following: The user invoking the script is the equivalent of a root user. The specified directory has a valid SourceForge installation.
It performs the following actions depending on the options specified: Displays a summary of what would happen during the patch installation. Downgrades or upgrades the site to the specified patch level. Reverts the site to the previous patch level it was at, before the current patch was applied. Downgrades the patch level on the site by one. Starts SourceForge after successfully installing the patch. Allows a test "dry run" of the patch installation.
./upgrade-site.sh -d <INSTALL_DIR> [-r] [-u] [-t] [-l level] [-f file] [-n] [-h] [-V] [v]
Example To perform a component upgrade from a base SourceForge installation (patch level 0) to patch level 2, use this command:
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 75
Options -f [manifest] | --file [manifest] The manifest file with the appropriate information for this upgrade.
-d [INSTALLATION_DIR] | The directory where the application is installed. --directory [INSTALLATION_DIR] Note: This option is required.
-r | --rollback
Rolls back the previous (most recently applied) patch. For example, if you upgrade the site from patch level 1 to patch level 4, and then run upgrade-site.sh with this option, the resulting patch level on the site is patch 1. The patch level to which the SourceForge site must be upgraded (or downgraded). Displays script output including traceback errors. If this option is not used, the script displays error messages but not the actual traceback errors. Displays the script version. Non-interactive mode. Displays a summary of the actions that will be performed as part of the upgrade or downgrade. Use this option to view a description of what would take place during a patch upgrade (or downgrade) before you actually apply the patch. Note: You must use this option along with the l, r, u, or f options.
-u | --uninstall
Decrements the patch level on the site by one. For example, if you upgrade the site from patch level 1 to patch level 4, and then run upgrade-site.sh with this option, the resulting patch level on the site is patch 3. Prints usage information.
-h | --help
Note: Do not use the following combinations of options in the same command: -u (uninstall) with -r (rollback) -f (manifest) with -l (level) any combination of -u, -r, -l, -f
Log files
System administrators can use logs to debug problems and ensure that the application is performing to expectations.
JBoss logs
The JBoss application server writes several different logs under the <INSTALL_DIR>/log directory.
boot.log localhost_access
Lgs the JBoss startup and shut down notifications. This log is overwritten each time JBoss is (re)started. The Records access to the application from a remote host, similar to the Apache access_log. This log is rotated each day, and the files have a date stamp appended to their name, such as localhost_access2004-11-26.log. Logs all the activities of the application server, including any exceptions. This log is the best place to begin debugging CollabNet TeamForge 5.2 server error exception ids (exid). Records when new sessions are created. This log is overwritten each time JBoss is (re)started.
server.log session-info.log
76 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
vamessages.log
Records CollabNet TeamForge 5.2-specific actions, including some SQL queries that are sent to the backend database. This log is rotated each time it reaches 100MB in size. When rotated the older files have a number appended to the end, such as vamessages.log.1 and vamessages.log.2.
Oracle logging
The most important Oracle log is the alert log, which is found in
$ORACLE_HOME/admin/$SID/bdump/alert_$SID.log .
An Oracle database performs logging on a wide array of functionality. The majority of the logs that are generated are stored under $ORACLE_HOME/admin/$SID/. Many logs are stored under this directory hierarchy, but alert is the most important. This log records all database activity, including serious problems. The alert log is not rotated or overwritten, and can become quite large over time, especially on an active database. Additional logs are created under the same directory hierarchy, for specific incidents. If a problem is recorded in the alert log, the other logs should be inspected for additional details. For more information, as well as support in the maintenance of an Oracle database, contact Oracle Support or Oracle's Metalink site.
catalina.out
This log contains information on the startup and runtime activities of the Tomcat server. This log is not rotated, nor is it overwritten, and is appended continuously over the lifetime of the server. This log contains a record of CVS or Subversion browsing URL construction. When a user attempts to browse a CVS or Subversion repository in his or her web browser, the URL construction process is documented in this log. This log is rotated for each date that there is activity. This log contains a record of the initial startup and deployment of the managed integration server. A new date stamped log is generated each time the integration server is started. integration server. This log is stored in <install_dir>/log.
localhost_log
localhost_admin_log
vaexternalintegration.log This log contains information on the operations that are being executed by the managed
Email logs
Both the CollabNet TeamForge 5.2 email and search backends are managed from a parent daemon known as Phoenix. If the mail backend is not operating properly, the first troubleshooting step is to check the phoenix.log to see if it encountered difficulties starting up. Overview The Phoenix daemon logs its activities to the phoenix.log file, which is stored under install_dir/james/james-2.2.0/logs. This log is overwritten each time Phoenix is (re)started. Phoenix is run as part of the CollabNet TeamForge 5.2 standalone server init script. CollabNet TeamForge 5.2 email is handled by the JAMES server. JAMES logs all of its activities under install_dir/james/james-2.2.0/apps/james/logs. A new log is created for each date when there is activity, and additional logs are created if james is restarted on a date when there is activity. The date is embedded in the log name (such as james-2005-04-28-01-00.log).
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 77
Active logs Sixteen different logs are created by james for different components of its functionality. This topic describes only the ones that are used actively by CollabNet TeamForge 5.2.
The James log records the overall mail handling behavior of the James server. The mailet log records how each piece of email is handled. If there is a mail delivery problem, this log is the best place to begin investigation. The mailstore log records the behavior of mail spools, and the storage of mail. This log should normally not contain errors unless James is unable to write or read mail to or from the file system. The smtpserver log records all inbound mail handling results. If email to discussion forums is not posting, or is getting rejected, this log would be the best place to begin investigation. The spoolmanager log records the processing of mail spools. This log could be of value in troubleshooting mail delivery or handling problems.
smtpserver-$date.log spoolmanager-$date.log
Search logs
Both the CollabNet TeamForge 5.2 search and email backends are managed from a parent daemon known as Phoenix. If the search backend is not operating properly, the first troubleshooting step is to check the phoenix.log file to see if it encountered difficulties starting up. The Phoenix daemon logs its activities to the phoenix.log file, which is stored under install_dir/james/james-2.2.0/logs. This log is overwritten each time Phoenix is (re)started. Phoenix is run as part of the CollabNet TeamForge 5.2 standalone server init script. Once started successfully, the search server waits for new content to be indexed or searches to be performed. The search server logs its activities under install_dir/james/james-2.2.0/apps/search/logs. The logs that are created are all named default with the date stamp appended to them (such as default-20041126.log). A new log is created for each date that there is indexing activity. If the search server is not running, or expected search results are not being provided, the default log is the best place to investigate further.
Getting there On the project home page, click Build Library in the left navigation bar and select the Audit Log tab.
78 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
Access This screen is accessible for all users who have at least the view permission for the project.
Access This screen is accessible to all users who have at least the Domain Administrator role. Getting there On the Administration tab, click User Audit Logs in the left navigation bar.
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 79
Configuration files
Edit these configuration files to get the behavior you want.
Contents The manifest file contains these tokens: PATCH_LEVEL The patch level which this patch provides. Note: The PATCH_LEVEL value is used (along with information in
[DISTRIBUTION_DIR]/version/core-version.txt ) to fill in [DISTRIBUTION_DIR]/conf/patches with the current release and patch level. If [DISTRIBUTION_DIR]/conf/patches does not exist, it is created.
PATCH_DESCRIPTION UNINSTALL_LIST INSTALL_LIST A description of the patch. A list of RPMs to uninstall (using relative paths, comma separated). A list of RPMs to install (using relative paths, comma separated).
Note: Comments in the manifest file are identified by a leading hash (#).
80 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
login-config.xml
This is the sample application-policy block that you can copy into your login-config.xml file to support LDAP authentication. Notes Replace the default application-policy block of the login-config.xml file with this code, then make the modifications specified in Set up LDAP integration for the CollabNet TeamForge 5.2 server on page 32. Option values that must be modified are highlighted in bold. When the username is passed to the login module from SourceForge, it is translated into a DN for lookup on the LDAP server. The DN that is sent to the LDAP server is <principalDNPrefix><username><principalDNSuffix>. In this example application-policy block, the username is stored in the People organizational unit in the dev.sf.net domain. This is represented as ,ou=People,dc=dev,dc=sf,dc=net This example contains a single login-module section. If you are authenticating against multiple LDAP servers, include one login-module section per LDAP server, with the required option values modified appropriately for each one. If the same username exists in more than one LDAP server, the instance on the first LDAP server will be used.
Sample code <application-policy name="SourceForge"> <authentication> <login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="sufficient" > <module-option name="allowEmptyPasswords">false</module-option> <module-option name="principalDNPrefix">uid=</module-option> <module-option name="principalDNSuffix">,ou=People,dc=dev,dc=sf,dc=net</module-option> <module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option> <module-option name="java.naming.provider.url">ldap://util.dev.sf.net:389/</module-option> <module-option name="java.naming.security.authentication">simple</module-option> </login-module> </authentication> </application-policy>
httpd.conf
These are the changes you must make to the /etc/httpd/conf/httpd.conf file.
## # SFEE configuration ## # mod_deflate for improving performance DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n {%{ratio}n%%}' deflate <Location /> AddOutputFilterByType DEFLATE text/html # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex won't work. You can use the following # workaround to get the desired effect: BrowserMatch \bMSI[E] no-gzip
CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration | 81
# Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location> # mod_expires for even better performance ExpiresActive On ExpiresDefault "access plus 0 seconds" ExpiresByType image/gif "access plus 1 days" ExpiresByType image/jpeg "access plus 1 days" ExpiresByType image/png "access plus 1 days" ExpiresByType text/css "access plus 7 days" ExpiresByType text/javascript "access plus 7 days" ExpiresByType application/x-javascript "access plus 7 days" ExpiresByType image/x-icon "access plus 7 days" # SFEE rewrites to make the app 'live' on port 80 and not 8080 RewriteEngine on RewriteLog logs/rewrite RewriteLogLevel 1 # Added to supress http trace for security reasons RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] # make '/' redirect to SFEE RewriteRule ^/$ http://%{SERVER_NAME}/sf/ [R] # now pass the URL to the actual SFEE application server RewriteRule ^/sf$ http://localhost:8080/sf [P] RewriteRule ^/sf/(.*) http://localhost:8080/sf/$1 [P] # Pass ScmListener SOAP requests RewriteCond %{REQUEST_URI} ^/sf-soap/services/ScmListener RewriteRule ^/sf-soap/(.*) http://localhost:8080/sf-soap/$1 [P] #Pass all non-listeners SOAP requests. Delete next 4 lines if you don't use SOAP APIs. RewriteCond %{REQUEST_URI} !^/sf-soap/services/[^/]*Listener RewriteRule ^/sf-soap/(.*) http://localhost:8080/sf-soap/$1 [P] RewriteRule ^/sf-soap42/(.*) http://localhost:8080/sf-soap42/$1 [P] RewriteRule ^/sf-soap43/(.*) http://localhost:8080/sf-soap43/$1 [P] # route SCM requests to the SFEE integration server RewriteCond %{REQUEST_URI} !^/integration/services RewriteCond %{REQUEST_URI} !^/integration/servlet RewriteRule ^/integration/(.*) http://localhost:7080/integration/$1 [P] ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://localhost:7080/ ## # end SFEE configuration ##
iptables
This is the /etc/sysconfig/iptables output that will enforce the recommended security configuration.
# Firewall configuration written by redhat-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0]
82 | CollabNet TeamForge 5.2 | Reference information for CollabNet TeamForge system administration
-A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT