WEB安全:Tomcat 只可经过域名访问,禁止经过 IP 访问

服务器为何要禁止经过IP直接访问?html

 

一、若公布于外网的服务器IP地址未备案,就有可能被工信部查封。这样备案的域名也会没法访问。web

二、若是AppScan经过ip访问扫描,会有“发现内部ip泄露模式”的低级别的警告安全风险apache

     - 可能会收集有关Web 应用程序的敏感信息,如用户名、密码、机器名/或敏感文件位置安全

 

Tomcat服务为例,可经过简单的配置屏蔽IP地址直接访问:服务器

  IP地址是 120.77.145.25,相应域名是 www.unicom-iot.netapp

 

  一、找到 conf/server.xml 的 Engine 节点webapp

 

    <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>

  修改成:spa

    <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>

 

  二、此时能够在webapps同级目录建立 ipapps 目录,再在 ipapps下建立一个 ROOT 目录下拷贝,.net

    同时在里面的 放个 index.html 文件修改为想要展现给用于的界面。code

 

  三、重启 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 文件夹下才能是虚拟目录继续有效。

相关文章
相关标签/搜索