A porta 80 redireciona para o /cgi-sys/defaultwebpage.cgi do CPanel mesmo após o encaminhamento

3

Recentemente, assumi o gerenciamento de um site usando um servidor Tomcat 6 puro (isto é, sem combinação Tomcat + Apache) com o CPanel instalado, acessível somente na porta 8088 (ou seja, o URL da página principal é www.domain.com:8088 ) . Gostaria que o site estivesse acessível em www.domain.com , ou seja, na porta 80 . De acordo com este artigo , eu corri:

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

e, em seguida, reiniciado. No entanto, como antes, www.domain.com redireciona para www.domain.com/cgi-sys/defaultwebpage.cgi , a página da Web padrão do CPanel, localizada em /usr/local/cpanel/cgi-sys/defaultwebpage.cgi . Eu recebo um erro 404 ao acessar qualquer outra página em www.domain.com . Parece que o CPanel está interferindo no uso da porta 80 . O www.domain.com:8088 ainda funciona, no entanto.

Aqui estão os conteúdos de /usr/local/tomcat/apache-tomcat-6.0.26/conf/server.xml . Observe que eu adicionei proxyPort="80" seguindo port="8088" para que "aja como se as solicitações recebidas fossem direcionadas para a porta 80", de acordo com o artigo.

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector port="8088" proxyPort="80" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               keystoreFile="/usr/local/tomcat/apache-tomcat-6.0.26/.keystore" keystorePass="[redacted]"
               clientAuth="false" sslProtocol="TLS" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

      </Host>
    </Engine>
  </Service>
</Server>

Aqui estão as partes relevantes do meu arquivo iptables (obtido via less /etc/sysconfig/iptables | grep "80" ). Os endereços IP foram substituídos por # para privacidade.

-A PREROUTING -p tcp -m tcp --sport 80 -j TOS --set-tos 0x08
-A POSTROUTING -p tcp -m tcp --dport 80 -j TOS --set-tos 0x08
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8088 -j ACCEPT
-A acctboth -s ###.###.###.98 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ###.###.###.98 -i ! lo -p tcp -m tcp --sport 80
-A acctboth -s ###.###.###.99 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ###.###.###.99 -i ! lo -p tcp -m tcp --sport 80
-A acctboth -s ###.###.###.100 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ###.###.###.100 -i ! lo -p tcp -m tcp --sport 80
-A acctboth -s ###.###.###.101 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ###.###.###.101 -i ! lo -p tcp -m tcp --sport 80
-A acctboth -s ###.###.###.102 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ###.###.###.102 -i ! lo -p tcp -m tcp --sport 80
-A acctboth -s ##.###.###.2 -i ! lo -p tcp -m tcp --dport 80
-A acctboth -d ##.###.###.2 -i ! lo -p tcp -m tcp --sport 80
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8088

Como o sistema operacional é o CentOS 5.10, que não é baseado no Debian, authbind não está disponível, portanto, usando-o, conforme descrito em várias respostas Como posso acessar o site na porta 80 sem ser redirecionado para /cgi-sys/defaultwebpage.cgi ?

Editar: aqui está o resultado de iptables -L -nv | grep 80 . Todos os que possuem sinais numéricos vão para o meu site:

   37  1480 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:1433
  360 29735 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
 1600 92619 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
  701 59109 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8088
   55 18046 ACCEPT     all  --  *      *       0.0.0.0/0            <IP number 2>
  122  8401            tcp  --  !lo    *       ###.###.###.98       0.0.0.0/0           tcp dpt:80
  113 56481            tcp  --  !lo    *       0.0.0.0/0            ###.###.###.98      tcp spt:80
    0     0            tcp  --  !lo    *       ###.###.###.99       0.0.0.0/0           tcp dpt:80
    2    88            tcp  --  !lo    *       0.0.0.0/0            ###.###.###.99      tcp spt:80
    0     0            tcp  --  !lo    *       ###.###.###.100      0.0.0.0/0           tcp dpt:80
    2    88            tcp  --  !lo    *       0.0.0.0/0            ###.###.###.100     tcp spt:80
    0     0            tcp  --  !lo    *       ###.###.###.101      0.0.0.0/0           tcp dpt:80
    1    44            tcp  --  !lo    *       0.0.0.0/0            ###.###.###.101     tcp spt:80
    0     0            tcp  --  !lo    *       ###.###.###.102      0.0.0.0/0           tcp dpt:80
    0     0            tcp  --  !lo    *       0.0.0.0/0            ###.###.###.102     tcp spt:80
    0     0            tcp  --  !lo    *       <IP number 3>         0.0.0.0/0           tcp dpt:80
    0     0            tcp  --  !lo    *       0.0.0.0/0            <IP number 3>       tcp spt:80
    
por 1'' 12.04.2014 / 23:40

1 resposta

1

i.e. no combination Tomcat+Apache

Isso não é verdade porque netstat -anp | grep :80 retornou:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3827/httpd

Você pode desativá-lo se quiser que Tomcat seja seu servidor da Web principal.

Em seguida, execute sua regra de pré-layout do iptables:

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

E isso deve funcionar.

    
por 13.04.2014 / 05:18