Configure o usuário não-root 'tomcat' no Tomcat 8

1

Instalei o Tomcat 8 no Debian 8 e preciso endurecer o servidor da Web.

Estou seguindo o guia de documentação oficial do Tomcat e na seção de considerações de segurança recomenda criar outro usuário (chamado tomcat) e iniciar o processo do Tomcat com esse usuário:

Tomcat should not be run under the root user. Create a dedicated user for the Tomcat process and provide that user with the minimum necessary permissions for the operating system. For example, it should not be possible to log on remotely using the Tomcat user.

Eu criei o grupo e o usuário do tomcat como o guia sugere. Eu criei o arquivo /etc/systemd/system/tomcat.service com a seguinte configuração:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
#ExecStart=/opt/tomcat/bin/startup.sh
ExecStart=/usr/share/tomcat8/bin/startup.sh
#ExecStop=/opt/tomcat/bin/shutdown.sh
ExecStart=/usr/share/tomcat8/bin/shutdown.sh
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

Eu fiz um soflink para:

root@pc:/lib/systemd/system# ln -s tomcat.service /etc/systemd/system/tomcat.service

Eu habilitei o serviço no systemd:

root@pc:/lib/systemd/system# systemctl enable tomcat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /lib/systemd/system/tomcat.service.

Agora, quando verifiquei se o processo do tomcat estava em execução, não consegui encontrar o usuário do tomcat como proprietário do processo:

tomcat@labnet:/lib/systemd/system$ ps -aux | grep tomcat
tomcat8  18116  1.2  8.0 1662560 325140 ?      Sl   10:30   1:04 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.endorsed.dirs=/usr/share/tomcat8/endorsed -classpath /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp org.apache.catalina.startup.Bootstrap start

Existe outro usuário chamado tomcat8.

Usando o topo:

tomcat@pc:/lib/systemd/system$ top
PID   USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM   TIME+   COMMAND
18116 tomcat8   20   0 1662560 325140  21068 S   0,3  8,0   1:04.29 java

Eu verifiquei em / etc / groups, etc / passwd e ambos os usuários estão presentes:

tomcat@pc:/lib/systemd/system$ grep tomcat /etc/group
tomcat8:x:114:
tomcat:x:1005:tomcat

root@pc:/etc/tomcat8# grep tomcat /etc/passwd
tomcat8:x:108:114::/usr/share/tomcat8:/bin/false
tomcat:x:1005:1005:tomcat,,,:/home/tomcat:/bin/bash

O que devo mudar para usar o usuário do tomcat? Meu palpite é que poderia ser o novo usuário usado por padrão nesta versão para executar o processo do Tomcat.

    
por Rafa Moyano 07.07.2015 / 19:26

1 resposta

0

Você precisa executar o daemon-reload systemctl antes que o systemd tome conhecimento do seu novo serviço Tomcat.

    
por 14.06.2016 / 01:32