tomcat禁止IP訪問


服務器為什么要禁止通過IP直接訪問?

 

1、若公布於外網的服務器IP地址未備案,就有可能被工信部查封。這樣備案的域名也會無法訪問。

2、如果AppScan通過ip訪問掃描,會有“發現內部ip泄露模式”的低級別的警告安全風險

     - 可能會收集有關Web 應用程序的敏感信息,如用戶名、密碼、機器名/或敏感文件位置

 

Tomcat服務為例,可通過簡單的配置屏蔽IP地址直接訪問:

  IP地址是 120.77.145.25,相應域名是 www.unicom-iot.net

 

  1、找到 conf/server.xml 的 Engine 節點

 

復制代碼
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
       <Context path="/iot/file" docBase="/UIOT_FILE/" reloadable="true" />
      </Host>
    </Engine>
復制代碼

  修改為:

復制代碼
    <Engine name="Catalina" defaultHost="www.unicom-iot.net">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="www.unicom-iot.net"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      <Context path="/iot/file" docBase="/UIOT_FILE/" reloadable="true" />
      </Host>
 
      <Host name="120.77.145.25"  appBase="ipapps"  
            unpackWARs="true" autoDeploy="true"  
            xmlValidation="false" xmlNamespaceAware="false"/>  

    </Engine>
復制代碼

 

  2、此時可以在webapps同級目錄創建 ipapps 目錄,再在 ipapps下創建一個 ROOT 目錄下拷貝,

    同時在里面的 放個 index.html 文件修改成想要展示給用於的界面。

 

  3、重啟 Tomcat 即可。

 

  POINTS:

 

  1. Engine 節點配置的 defaultHost 表明缺省訪問的Host。defaultHost 對應的名稱必須存在於 Engine 節點下配置的 host 節點中。

    當一台機器有多個 IP,而按照規定只允許通過一個指定的域名訪問時很有用。此時,把 defaultHost 指定為非域名對應的 host,

    這樣不通過域名訪問時就都定位到指定的非域名 HOST 。

 

  2. Host 節點 name 對應IP地址,以及域名。一個Host只有指定一個IP或域名。

 

  3. Host 節點的 appBase ,對應的是存放web應用的目錄。這里輸入的目錄相對於 %TOMCAT_HOME% ,

    如上面的 www.myTest.com 對應的目錄是 %TOMCAT_HOME%/webapps,而 120.77.145.25 對應的目錄是 %TOMCAT_HOME%/ipapps。

 

 

  4.修改 localhost 為 www.unicom-iot.net 后,在 %TOMCAT_HOME%/conf/Catalina/localhost 下配置的虛擬目錄會失效。

    因為配置虛擬目錄的元素節點 Context 是 server.xml 下 Host 節點下的子節點,Catalina 下的文件夾名字是根據 host 節點的 name 屬性來的。

    現在 Host 的 name 已經改 www.unicom-iot.net 那么需要在 %TOMCAT_HOME%/conf/Catalina 新建一個 www.unicom-iot.net 的文件夾,

    然后把 localhost 下的 myTest.xml 文件拷貝到 www.unicom-iot.net 文件夾下才能是虛擬目錄繼續有效。

本文摘抄至:https://www.cnblogs.com/linnuo/p/10529346.html

只是為了自己看着方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM