Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Connector[@port="${bio-custom.http.port}"]/@connectionTimeout' - Expected result: connectionTimeout="60000" If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to each of the <Connector> nodes. Configure each <Connector> node with the value: connectionTimeout="60000"
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Executor[@name="tomcatThreadPool"]/@maxThreads' - Expected result: maxThreads="300" If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to the <Executor> mode with the name of "tomcatThreadPool" and configure with the value: 'maxThreads="300"' Note: The <Executor> node should be configured as follows: <Executor maxThreads="300" minSpareThreads="50" name="tomcatThreadPool" namePrefix="tomcat-http--" />
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Connector[@port="${bio-custom.http.port}"]/@maxPostSize' - Expected result: XPath set is empty If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to each of the <Connector> nodes. Remove any configuration for "maxPostSize".
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/http-only' - Expected result: <http-only>true</http-only> If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Navigate to the <session-config> node and configure it as follows: <session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session-config>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Engine/Host/Valve[@className="org.apache.catalina.valves.AccessLogValve"]'/@pattern - Expected result: pattern="%h %{X-Forwarded-For}i %l %u %t &quot;%r&quot; %s %b &quot;%{User-Agent}i&quot;" If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Inside the <Host> node, add the "AccessLogValve" <Valve> node entirely if it does not exist or update the existing pattern to match the following line: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %{X-Forwarded-For}i %l %u %t "%r" %s %b "%{User-Agent}i"" resolveHosts="false" prefix="localhost_access_log" suffix=".txt" />
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep "1catalina.org.apache.juli.FileHandler" /usr/lib/vmware-sso/vmware-sts/conf/logging.properties Expected result: handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 1catalina.org.apache.juli.FileHandler.bufferSize = -1 If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/logging.properties. Ensure that the "handlers" and ".handlers" lines are configured as follows: handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler Ensure that the following lines are present: 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 1catalina.org.apache.juli.FileHandler.bufferSize = -1
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # find /storage/log/vmware/sso/ -xdev -type f -a '(' -perm -o+w -o -not -user root -o -not -group root ')' -exec ls -ld {} \; If any files are returned, this is a finding.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following commands: # chmod o-w <file> # chown root:root <file> Note: Substitute <file> with the listed file.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # rpm -V vmware-identity-sts|grep "^..5......"|grep -E "\.war|\.jar|\.sh|\.py" If there is any output, this is a finding.
Connect to the PSC, whether external or embedded. Reinstall the VCSA or roll back to a snapshot. Modifying the Security Token Service installation files manually is not supported by VMware.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # ls /usr/lib/vmware-sso/vmware-sts/webapps/*.war Expected result: /usr/lib/vmware-sso/vmware-sts/webapps/ROOT.war If the result of this command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. For each unexpected file returned in the check, run the following command: # rm /usr/lib/vmware-sso/vmware-sts/webapps/<NAME>.war Restart the service with the following command: # service-control --restart vmware-stsd
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep UserDatabase /usr/lib/vmware-sso/vmware-sts/conf/server.xml If the command produces any output, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Remove the <Realm> nodes returned in the check.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep "package.access" /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties Expected result: package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper. If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties. Ensure that the "package.access" line is configured as follows: package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep -En '(x-csh<)|(x-sh<)|(x-shar<)|(x-ksh<)' /usr/lib/vmware-sso/vmware-sts/conf/web.xml If the command produces any output, this is a finding.
Connect to the PSC, whether external or embedded. Open /usr/lib/vmware-sso/vmware-sts/conf/web.xml in a text editor. Remove the parent <mime-mapping> node of any line returned from the check. Example: <mime-mapping> <extension>csh</extension> <mime-type>application/x-csh</mime-type> </mime-mapping>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/servlet-mapping/servlet-name[text()="jsp"]/parent::servlet-mapping' - Expected result: <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping> If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Inside the <web-app> parent node, add the following: <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep -n 'webdav' /usr/lib/vmware-sso/vmware-sts/conf/web.xml If the command produces any output, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Find the <servlet-name>webdav</servlet-name> node and remove the entire parent <servlet> block. Find the <servlet-name>webdav</servlet-name> node and remove the entire parent <servlet-mapping> block.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep JreMemoryLeakPreventionListener /usr/lib/vmware-sso/vmware-sts/conf/server.xml Expected result: <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to the <Server> node. Add '<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>' to the <Server> node.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # find /usr/lib/vmware-sso/vmware-sts/webapps/ -type l -ls If the command produces any output, this is a finding.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following commands: Note: Replace <file_name> for the name of any files that were returned. # unlink <file_name> Repeat the commands for each file that was returned.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # find /usr/lib/vmware-sso/vmware-sts/ -xdev -type f -a '(' -not -user root -o -not -group root ')' -exec ls -ld {} \; If the command produces any output, this is a finding.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # chown root:root <file_name> Repeat the command for each file that was returned. Note: Replace <file_name> for the name of the file that was returned.
Connect to the PSC, whether external or embedded. At the command line, execute the following command: # grep EXIT_ON_INIT_FAILURE /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties Expected result: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties. Add or change the following line: org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Connector[@port="${bio-custom.http.port}"]/@acceptCount' - Expected result: acceptCount="100" If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to the <Connector> configured with port="${bio-custom.http.port}". Add or change the following value: acceptCount="100"
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Connector[@port="${bio-custom.http.port}"]/@URIEncoding' - Expected result: URIEncoding="UTF-8" If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to each of the <Connector> nodes. Configure each <Connector> node with the value 'URIEncoding="UTF-8"'.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/filter-mapping/filter-name[text()="setCharacterEncodingFilter"]/parent::filter-mapping' - Expected result: <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> If the output is does not match the expected result, this is a finding. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/filter/filter-name[text()="setCharacterEncodingFilter"]/parent::filter' - Expected result: <filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> <async-supported>true</async-supported> </filter> If the output is does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Configure the <web-app> node with the child nodes listed below: <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> <async-supported>true</async-supported> </filter>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/welcome-file-list' - Expected result: <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Add the following section under the <web-apps> node: <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="listings"]/parent::init-param' - Expected result: <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Set the <param-value> to "false" in all <param-name>listing</param-name> nodes. Note: The setting should look like the following: <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/server.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/Server/Service/Engine/Host/Valve[@className="org.apache.catalina.valves.ErrorReportValve"]' - Expected result: <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false"/> If the output does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Locate the following Host block: <Host appBase="webapps" ...> ... </Host> Inside this block, add the following on a new line: <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep allowTrace /usr/lib/vmware-sso/vmware-sts/conf/server.xml If "allowTrace" is set to "true", this is a finding. If no line is returned, this is NOT a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/server.xml. Navigate to and locate: 'allowTrace="true"' Remove the 'allowTrace="true"' setting.
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '//param-name[text()="debug"]/parent::init-param' - Expected result: <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> If the output of the command does not match the expected result, this is a finding. If no lines are returned, this is not a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Navigate to all <debug> nodes that are not set to "0". Set the <param-value> to "0" in all <param-name>debug</param-name> nodes. Note: The debug setting should look like the following: <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param>
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep -v "^#" /etc/vmware-syslog/stig-services-sso.conf Expected result: input(type="imfile" File="/var/log/vmware/sso/*.log" Tag="vmidentity" PersistStateInterval="200" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/sso/sts-runtime.log.*" Tag="sts-runtime" PersistStateInterval="200" Severity="info" Facility="local0") If the file does not exist, this is a finding. If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /etc/vmware-syslog/stig-services-sso.conf. Create the file if it does not exist. Set the contents of the file as follows: input(type="imfile" File="/var/log/vmware/sso/*.log" Tag="vmidentity" PersistStateInterval="200" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/sso/sts-runtime.log.*" Tag="sts-runtime" PersistStateInterval="200" Severity="info" Facility="local0")
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep 'bio' /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties Expected result: bio-custom.http.port=7080 bio-custom.https.port=8443 bio-ssl-localhost.https.port=7444 If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties. Navigate to the ports specification section. Set the Security Token Service port specifications according to the following list: bio-custom.http.port=7080 bio-custom.https.port=8443 bio-ssl-localhost.https.port=7444
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # grep 'base.shutdown.port' /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties Expected result: base.shutdown.port=-1 If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Open /usr/lib/vmware-sso/vmware-sts/conf/catalina.properties in a text editor. Add or modify the following setting: base.shutdown.port=-1
Connect to the PSC, whether external or embedded. At the command prompt, execute the following command: # xmllint --format /usr/lib/vmware-sso/vmware-sts/conf/web.xml | sed '2 s/xmlns=".*"//g' | xmllint --xpath '/web-app/session-config/cookie-config/secure' - Expected result: <secure>true</secure> If the output of the command does not match the expected result, this is a finding.
Connect to the PSC, whether external or embedded. Navigate to and open /usr/lib/vmware-sso/vmware-sts/conf/web.xml. Navigate to the /<web-apps>/<session-config>/<cookie-config> node and configure it as follows: <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config>
STS Tomcat 6.7 is no longer supported by the vendor. If the system is running STS Tomcat 6.7, this is a finding.
Upgrade to a supported version.