Como fazer com que o Tomcat 9 trabalhe com o authbind para ligar à porta 80?

3

Infelizmente, o uso do authbind pelo Tomcat não é documentado, o que torna um desafio vincular o Tomcat 9 à porta 80, quando não está sendo executado como root. Eu tentei o seguinte no Ubuntu 16.04:

1) Em server.xml, alterando a porta de atributo para 80 em < Connector >.

2) Instalando o authbind.

3) Adicionando AUTHBIND = yes para setenv.sh

4) Criando o arquivo / etc / authbind / byport / 80 com 777 permissões e o proprietário tomcat.

Se eu executar startup.sh como root, tudo funcionará bem. Mas se eu fizer isso como usuário não privilegiado "tomcat", o script exibirá "Tomcat iniciado" sem nenhuma mensagem de erro. Mas o navegador mostra "Não é possível conectar".

Se eu executar authbind startup.sh , o resultado será o mesmo. A falta de mensagem de erro do script de inicialização me deixa no escuro quanto à causa do problema.

Informações possivelmente relevantes: o tomcat foi instalado a partir do arquivo zip, não do repo.

Há algo mais que eu estou negligenciando sobre os truques para fazer isso funcionar? Isso está muito ausente nos documentos oficiais.

    
por ARX 21.12.2017 / 01:40

2 respostas

6

A instalação do Tomcat a partir do zip está ok.

Eu peço que você siga os passos abaixo para configurar o authbind e executar o tomcat no 80, estou pensando em instalar o authbind e o tomcat 9.

  1. Disponibilizar a porta 80 para authbind (você precisa ser root):

touch /etc/authbind/byport/80; chmod 500 /etc/authbind/byport/80; chown tomcat9 /etc/authbind/byport/80

* considerando o tomcat9 como um usuário não root para o tomcat

  1. crie o arquivo TOMCAT / bin / setenv.sh com o seguinte conteúdo:

CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

  1. Altere em "/usr/share/tomcat7/bin/startup.sh"

OLD : exec "$PRGDIR"/"$EXECUTABLE" start "$@

NEW : exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"

  1. faça alterações no arquivo TOMCAT / conf / server.xml para alterar a porta para 80 de 8080

Mais uma solução para rodar o tomcat no 80 é usando o iptables.

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Por favor, deixe-me saber se você tem alguma dúvida ou consulta que eu poderia ajudar.

Obrigado Nishant

    
por 05.01.2018 / 06:35
2

No meu servidor CENTOS 6 e no TOMCAT 7, tive que:

  • instale o authbind
 yum install authbind-2.1.1-0.x86_64.rpm 
  • crie os arquivos 80 para o usuário tomcat
touch /etc/authbind/byport/80; chmod 500 /etc/authbind/byport/80; chown tomcat /etc/authbind/byport/80
  • altere a porta 8080 para 80
vim /usr/share/tomcat/conf/server.xml
Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
  • altere a variável TOMCAT_SCRIPT no tomcat de serviço:
vim /etc/init.d/tomcat
TOMCAT_SCRIPT="${TOMCAT_SCRIPT:-/usr/local/bin/authbind -deep /usr/sbin/tomcat}"
  • em seguida, reinicie o tomcat
service tomcat restart
    
por 27.08.2018 / 21:59

Tags