2017-03-03 1 views
1

내 서버에 대한 액세스는 일부 원격 호스트로 제한되어야하며 Uptimetobot이 내 서버를 최소화 할 수있게하고 싶습니다.Tomcat 8 RemoteHostValve가 작동하지 않습니다.

현재 uptimerobot은 항상 403 금지되어 있습니다.

<Server .........> 
    <Service name="Catalina"> 
     <Engine> 
     <Value className="org.apache.catalina.valves.RemoteHostValve" allow=".*\.uptimerobot\.com" /> 
     </Engine> 
    </Service> 

이 목록 UptimeRobot Whitelist

에서 모든 호스트를 일치하지만 여전히, 서버 아무것도 변경되지 (403)

를 다시 시작한 후 :

나는 server.xml에이 모양 추가 나는 또한 이와 같이 와일드 카드없이 도메인 이름을 사용하려고 시도했다 :

나는 <Connector 태그에

enableLookups="true" 

를 추가로는 HostnameLookups 수 있도록 노력

하지만 여전히 403

allow="engine19\.uptimerobot\.com" 
allow="engine19.uptimerobot.com" 
, 그러나 다시 효과 없음.

그러나 내 기록에서 내 RemoteHost-Pattern과 일치하는 "engine19.uptimerobot.com"으로 액세스가 해결되었음을 알았습니다.

어떤 아이디어입니까, 왜 아직도 금지되어 있습니까?

편집 :

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="63\.143\.42\.244"/> 

와 IP를 통해

접근 노력하고 있습니다. 하지만 나는 거기에 ips의 전체 목록을 추가하고 싶지 않습니다. RemoteAddrValveRemoteHostValve이 서로를 방해 할 수 있습니까?

답변

0

이 시도하고이 (server.xml의 내부) 커넥터 true로 나를 위해

설정 useIPVHosts을했다.

내가 HTTP 커넥터를 사용하고 있습니다 및

<Connector port="8080" protocol="HTTP/1.1" 
    connectionTimeout="20000" 
    redirectPort="8443" 
    enableLookups="true" 
    useIPVHosts="true" /> 

Details of attributes can be found here

0

확인 바람둥이/로그를 따를 때 보이는/local_access_log ... 내가 발견 (403)

에 사용되는 어떤 호스트 이름을 확인합니다 우리 회사의 DNS는 모두 대문자로 된 이름과 소문자로 된 이름을보고합니다. (? i)는 사용 정규식은 대소 문자를 구분해야합니다 : 당신이 모두 RemoteHostValve 및 RemoteAddValve이있는 경우

allow="(?i)engine19\.uptimerobot\.com" 

이 모두 수신 호스트를 허용해야합니다. 둘 중 하나라도 허용되지 않으면 403이 반환됩니다.

관련 문제