2015-11-03 16 views
6

Tôi đang cố gắng hạn chế tất cả các yêu cầu đối với người quản lý Tomcat của tôi không đến từ IP của tôi.Hạn chế quyền truy cập vào người quản lý Tomcat theo IP

Cho đến nay, tôi thấy rằng việc thêm một van để server.xml như thế này:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="IP"/> 

sẽ chặn tất cả các yêu cầu ngoại trừ những từ "IP" cho toàn Tomcat (bao gồm cả các ứng dụng web). Có ai biết làm thế nào để làm như vậy nhưng chỉ áp dụng cho người quản lý Tomcat?

Nhân tiện, tôi đang sử dụng Tomcat7.

Trả lời

16

Trong [tomcat]/conf/Catalina/[hostname] tạo tệp manager.xml.

Vì vậy, nếu tên máy của bạn là www.yourdomainname.com và tomcat là trong opt/tomcat7/ đó sẽ là:

/opt/tomcat7/conf/Catalina/www.yourdomainname.com/manager.xml 

Trong này mới được tạo ra manager.xml bạn đặt RemoteAddrValve trong bối cảnh:

<Context antiResourceLocking="false" privileged="true" docBase="${catalina.home}/webapps/manager"> 

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
    allow="127\.0\.0\.1|11\.22\.33\.44" denyStatus="404" /> 

</Context> 

Tách riêng từng adresses ip bởi một nhân vật ống.

Tôi chọn denyStatus=404 vì vậy những kẻ xâm nhập có thể sẽ không có manh mối nào thậm chí còn có người quản lý.

Khởi động lại Tomcat.

+0

hoạt động hoàn hảo! cũng tuyệt vời để từ chối tình trạng! – muilpp

+1

Tôi chỉ thử với Tomcat 7.0.64 và 8.0.36 mà không cần khởi động lại và chúng hoạt động. – LinuxDisciple

+0

làm thế nào để kiểm tra điều này? –

3

Trong Tomcat8 Tôi tìm thấy RemoteAddrValve đã có trong C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\manager\META-INF\context.xml, và tôi chỉ cần bỏ ghi chú nó ...

<Context antiResourceLocking="false" privileged="true" > 
    <!-- 
    Remove the comment markers from around the Valve below to limit access to 
    the manager application to clients connecting from localhost 
    --> 

    <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
     allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> 

</Context> 

tôi đã thêm gợi ý @ acdhirr để van để từ chối tình trạng denyStatus="404", và điều đó cũng làm việc.

Các vấn đề liên quan