<!-- Start Instructions -->
<h1>Настройка Tomcat</h1><br><br>
<h2>Введение</h2>
<p>WebGoat распространяется с конфигурацией Tomcat по умолчанию. На данной странице вы найдёте её короткое описание и
список возможных вариантов различных настроек. В случаях когда данное описание вам не помогает обращайтесь к официальной
документации Tomcat.
Кроме того, нужно сказать что всё нижеописанное относится к стандартной конфигурации сервера работающего на 80-ом порту.
Если вы используете для сервера другой порт, то вам необходимо будет изменить конфигурацию соответствующим образом.
</p>
<h2>Стандартная конфигурация</h2>
<p>Здесь имеется две стандартных конфигурации Tomcat. При их использовании доступ к серверу можно получить обращаясь к хосту localhost.
Они полностью идентичны, за исключением того что в первом случае сервисы Tomcat запускаются на портах 80 и 443 (SSL), а во втором -
на портах 8080 и 8443. В Linux вы должны запустить WebGoat как root или с использованием sudo если хотите чтоб он работал на портах
80 и 443.
Помните, что запуск ПО из под root`а очень опасное занятие, поэтому мы настоятельно рекомендуем использовать порты 8080 и 8443.
В Windows вы можете запустить WebGoat.bat для работы на 80-ом порту, или же WebGoat_8080.bat для работы на порту 8080.
В Linux ту же самую работу выполняет скрипт WebGoat.sh и для того же результата его необходимо запустить либо командой
"webgoat.sh start80", либо "webgoat.sh start8080". Пользователь, для доступа к приложению,
в стандартной конфигурации - guest с паролем guest.
</p>
<h2>Настройка сервера</h2>
<p>
Если вы единственный кто будет использовать WebGoat, то стандартной конфигурации вам
будет вполне достаточно. Если же вы будете запускать его в лаборатории или классе, то конфигурацию
нужно будет менять. Перед этим советуем вам сделать её резервную копию.
</p>
<h3>Изменение портов</h3>
<p>
Для изменения портов откройте файл server_80.xml, котрый можно найти в tomcat/conf, и измените
не-SSL порт. Например, если вы хотите использовать порт 8079:
</p>
<pre>
<!-- Define a non-SSL HTTP/1.1 Connector on port 8079 -->
<Connector address="127.0.0.1" port="8079"...
</pre>
<p>
Конечно же вы можете изменить и порт SSL-соединения. Вот пример переноса SSL на порт 8442:
</p>
<pre>
<!-- Define a SSL HTTP/1.1 Connector on port 8442 -->
<Connector address="127.0.0.1" port="8442"...
</pre>
<br>
<h3>Делаем WebGoat доступным для нескольких клиентов.</h3>
<p>ЭТО ОТКРЫВАЕТ ВАШ СЕРВЕР ДЛЯ РЕАЛЬНЫХ АТАК ИЗ ВНЕ! НЕ ДЕЛАЙТЕ ЭТОГО ЕСЛИ ВЫ НА 100%
НЕ УВЕРЕНЫ В НЕОБХОДИМОСТИ ДАННОГО ШАГА. ЭТА КОНФИГУРАЦИЯ МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ТОЛЬКО
В ДОВЕРЕННЫХ СЕТЯХ.
</p>
<p>По умолчанию WebGoat доступен только при обращении к хосту localhost. В лаборатории или классе
у вас может возникнуть необходимость организовать сервер с множеством клиентов. В данном случае
вы можете настроить WebGoat соответствующим образом.
</p>
<p>Причина того что WebGoat доступен только на localhost - параметр address тега Connector в файле server_80.xml.
Изначально его значение установлено в 127.0.0.1 . При запуске приложение начинает проверять прописанные в настройках порты
только на этом адресе и принимает соединения если они появляются. Если вы удалите данный параметр, то приложение
начнёт прослушивать соответствующие порты на всех доступных IP-адресах.
</p>
<h3>Разрешение соединений только от определённых клиентов</h3>
<p>
Выше описывался способ разрешения соединений с WebGoat для любых клиентов.
Если вы хотите разрешить доступ к приложению только с определённых адресов, воспользуйтесь
фильтром удалённых адресов (Remote Address Filter). Для этого добавьте следующюю строку
в файл web_80.xml:
</p>
<pre>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1,ip1,ip2"/>
</pre>
<p>В этом случае только localhost, ip1 и ip2 смогут устанавливать соединения с сервером.</p>
<h2>Стандартные пользователи WebGoat и роли для Tomcat</h2>
<p>
WebGoat`у для нормальной работы необходимо наличие следующих пользователей и ролей:
<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>Добавление пользователей</h2>
<p>
Обычно для нормальной работы с WebGoat вам достаточно будет пользователя guest с паролем guest.
Но когда вы развернёте его в лоборатории или классе может возникнуть необходимость создания отдельного
пользователя для каждого клиента. Для этого вам необходимо изменить файл tomcat-users.xml, которых находится в tomcat/conf.
<b>Мы настоятельно не рекомендуем хранить реальные действующие пароли в данном файле т.к.
там они прописываются в виде простого текста!</b>
</p>
<h3>Добавление пользователя</h3>
<p>
Процедура добавления пользователя очень проста. В качестве наглядного примера вы можете использовать
строку с пользователем guest. Помните что каждый вновь добавляемый пользователь должен иметь определённую роль.
Для добавления новых аккаунтов впишите в вышеуказанный файл строки типа этих:
</p>
<pre>
<user name="student1" password="password1" roles="webgoat_user"/>
<user name="student2" password="password2" roles="webgoat_user"/>
...
</pre>
<!-- Stop Instructions -->