git-svn-id: http://webgoat.googlecode.com/svn/branches/webgoat-6.0@485 4033779f-a91e-0410-96ef-6bf7bf53c507
		
			
				
	
	
		
			114 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!-- Start Instructions -->
 | |
| <h1>How To Configure Tomcat</h1><br><br>
 | |
| <h2>Introduction</h2>
 | |
| <p>WebGoat comes with default configurations for Tomcat. This page will explain these configurations
 | |
| and other possible configurations for Tomcat. This is just 
 | |
| a short description which should be enough in most cases. For more advanced tasks please 
 | |
| refer to the Tomcat documentation. Please note that all solutions
 | |
| are written for the standard configurations on port 80. If you use another port you have 
 | |
| to adjust the solution to your configuration.</p>
 | |
| 
 | |
| <h2>The Standard Configurations</h2>
 | |
| <p>There are two standard Tomcat configurations. In the basic configurations you use the server on your localhost.
 | |
| 	Both are identically with the only difference
 | |
| 	that in one tomcat is running on port 80 and 443 (SSL) and in the other tomcat is running on port 8080 and 8443. In Linux you have
 | |
| 	to start WebGoat as root or with sudo if you want to run it on port 80 and
 | |
| 	443.
 | |
| 	As running software as root is dangerous we strongly advice to use
 | |
| the port 8080 and 8443. In Windows you can
 | |
| run WebGoat.bat to run it on port 80 and WebGoat_8080.bat to run it on port 8080. In Linux you
 | |
| can use webgoat.sh and run it with webgoat.sh start80 or webgoat.sh start8080. The user in these
 | |
| configurations is guest with password guest
 | |
| </p>
 | |
| 
 | |
| <h2>Server Configurations</h2>
 | |
| <p>
 | |
| If you are a single user of WebGoat the standard configurations should be
 | |
| enough but if you want to use WebGoat in laboratory or in class there
 | |
| might be the need to change the configurations. Before changing
 | |
| the configurations we recommend doing a backup of the files you change.
 | |
| </p>
 | |
| 
 | |
| <h3>Change Ports</h3>
 | |
| <p>
 | |
| To change the ports open the server_80.xml which you find in tomcat/conf and change the 
 | |
| non-SSL port. If you want to use it on port 8079 for example:
 | |
| </p>
 | |
| 
 | |
| <pre>
 | |
| 	<!-- Define a non-SSL HTTP/1.1 Connector on port 8079 --> 
 | |
| 	<Connector address="127.0.0.1" port="8079"...
 | |
| </pre>
 | |
| <p>
 | |
| You can also change the SSL connector to another port of course.
 | |
| In this example to port 8442:
 | |
| </p>
 | |
| <pre>
 | |
| 	<!-- Define a SSL HTTP/1.1 Connector on port 8442 --> 
 | |
| 	<Connector address="127.0.0.1" port="8442"... 
 | |
| </pre>
 | |
| <br>
 | |
| 
 | |
| <h3>Make WebGoat Reachable From Another Client</h3>
 | |
| <p>THIS MAKES IT POSSIBLE TO REALLY ATTACK YOUR SERVER! DO NOT DO THIS
 | |
| 	UNTIL YOU KNOW WHAT YOU ARE DOING. THIS CONFIGURATION SHOULD BE ONLY USED IN 
 | |
| SAFE NETWORKS!</p>
 | |
| <p>By its default configurations WebGoat is only
 | |
| reachable within the localhost. In a laboratory or a class
 | |
| there is maybe the need of having a server and a few clients. 
 | |
| In this case it is possible to make WebGoat reachable.
 | |
| </p>
 | |
| <p>The reason why WebGoat is only reachable within the localhost is
 | |
| the parameter address in the connectors for the non-SSL and SSL connection in server_80.xml. It is set
 | |
| to 127.0.0.1. The applications only listens on the port of this address for
 | |
| incoming connections if it is set. If you remove this parameter the server listens on all IPs on the
 | |
| specific port.</p>
 | |
| 
 | |
| <h3>Permit Only Certain Clients Connection</h3>
 | |
| <p>
 | |
| If you have made WebGoat reachable it is reachable for
 | |
| all clients. If you want to make it reachable only for certain clients specified
 | |
| by there IP you can archive this by using a 'Remote Address Filter'.
 | |
| The filter can be set in a whitebox or blackbox approach. Here is
 | |
| only discussed the whitebox approach. You have to add following lines to the Host section of web_80.xml:
 | |
| </p>
 | |
| <pre>
 | |
| 	<Valve className="org.apache.catalina.valves.RemoteAddrValve"
 | |
| 	allow="127.0.0.1,ip1,ip2"/>
 | |
| </pre>
 | |
| <p>In this case only localhost, ip1 and ip2 are permitted to connect.</p>
 | |
| 
 | |
| <h2>WebGoat Default Users and Roles for Tomcat</h2>
 | |
| <p>
 | |
| WebGoat requires the following users and roles to be configured in order for the application to run.
 | |
| <br/>
 | |
|   <pre>
 | |
|   >role rolename="webgoat_basic"/<
 | |
|   >role rolename="webgoat_admin"/<
 | |
|   >role rolename="webgoat_user"/<
 | |
|   >user username="webgoat" password="webgoat" roles="webgoat_admin"/<
 | |
|   >user username="basic" password="basic" roles="webgoat_user,webgoat_basic"/<
 | |
|   >user username="guest" password="guest" roles="webgoat_user"/<
 | |
|   </pre>
 | |
| </p>
 | |
| <h2>Adding Users</h2>
 | |
| <p>
 | |
| Usually using WebGoat you just use the user guest with the password guest.
 | |
| But maybe in laboratory you have made a setup with one server and a lot of
 | |
| clients. In this case you might want to have a user for every client
 | |
|  and you have to alter tomcat-users.xml 
 | |
| in tomcat/conf as the users are stored there. <b>We recommend not to use real passwords 
 | |
| as the passwords are stored in plain text in this file!</b>
 | |
| </p>
 | |
| <h3>Add User</h3>
 | |
| <p>
 | |
| Adding a user is straight forward. You can use the guest entry as an example. The added
 | |
| users should have the same role as the guest user. Add lines like this to the file:
 | |
| </p>
 | |
| <pre>
 | |
| 	<user name="student1" password="password1" roles="webgoat_user"/>
 | |
| 	<user name="student2" password="password2" roles="webgoat_user"/>
 | |
| 	...
 | |
| </pre>
 | |
| 
 | |
| <!-- Stop Instructions --> |