tl; dr - У меня есть Linux-сервер с root-правами, на котором я хочу запустить Tomcat в качестве сервера (без веб-сервера Apache), как бы вы это сделали, чтобы избежать распространенных ошибок безопасности?
Я написал приложение Grails, которое хочу запустить на арендуемом VPS. У VPS очень мало памяти, и я использую его исключительно для запуска этого приложения, поэтому мне не нужен веб-сервер apache.
Это мое первое предприятие по администрированию серверов, и я обязательно попаду в несколько хорошо известных ловушек.
Надеюсь, вам будет легко! Любой, кто сможет перейти по ссылке на учебник, несомненно, станет личным героем, предназначенным для великих дел.
Гав
Запустите tomcat от имени пользователя tomcat. Я не думаю, что вам когда-либо следует запускать tomcat от имени root. Это подвергает потенциальной опасности больший риск для безопасности, чем запуск от имени непривилегированного пользователя.
HTTP-серверу Tomcat немного не хватает для некоторых вещей, поэтому я всегда предлагаю вам использовать http-сервер в качестве интерфейса. Если вам не нужен apache, всегда есть Nginx. Это особенно актуально, если вам нужна HTTP-аутентификация Basic или Digest.
Я бы посоветовал вам начать с настроек памяти Tomcat по умолчанию, а затем настроить их по мере необходимости. Не зная профиля памяти приложения, трудно дать точные и точные цифры.
Если вы используете Ubuntu на своем vps, вы можете просто apt-get install tomcat6, и он должен работать "из коробки". Даже на Centos5.4 пакет tomcat5 от yum работает с минимальными изменениями конфигурации.
Я серьезно советую вам использовать легкий сервер перед вашим экземпляром tomcat. Это дает вам лучший детальный контроль над безопасностью, чем Tomcat "Security Manager"
У меня Tomcat6 работает на виртуальной машине, на которой работает мой сервер Hudson CI, я думаю, что дал ему около 256 МБ ОЗУ, и он полностью счастлив.
Даже если у вас недостаточно места для запуска полноценного веб-сервера перед Tomcat, вы можете рассмотреть возможность запуска обратного прокси, например фунт. По крайней мере, он может быстро остановить случайные подключения к вашему серверу, если он настроен правильно. Просто укажите фунт на внутренний порт 8080, который прослушивает Tomcat.