GNU/Linux >> Znalost Linux >  >> Linux

Jak zablokovat přístup k souboru, aby nebyl obsluhován službou Tomcat?

Řešení 1:

Přístup k souborům Tomcat je řízen sekcí bezpečnostních omezení WEB-INF/web.xml.

Můžete zablokovat conf tímto způsobem:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTP-Protected-Resource-1</web-resource-name>
        <description>Description here</description>
        <url-pattern>/conf/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>NOSOUPFORYOU</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>DEFAULT</auth-method>
    <realm-name>NOACCESSFORANYONE</realm-name>
</login-config>
<security-role>
    <role-name>NOSOUPFORYOU</role-name>
</security-role>

Pokud používáte apache k poskytování statického obsahu, nebude to fungovat, protože apache obslouží soubory conf dříve, než tomcat získá adresu URL. V těchto případech byste to museli vyřešit pomocí http konfiguračních souborů Apache.

Řešení 2:

Zdravím všechny SysAdmin a IT pracovníky v tomto příspěvku. Děkuji za vaše odpovědi. Mnoho odpovědí na mé otázky bylo přijatelných, ale tato byla pro naše produkční prostředí nejvhodnější.

OK. Chcete-li zablokovat adresář nebo soubor ve virtuálním hostiteli v server.xml, stačí přidat následující kód do souboru server.xml v adresáři tomcat/conf.

Před:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Po:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Takže odpověď na otázku je přidat následující řádky:

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

Řešení 3:

Proč jej neukládat mimo strukturu webových adresářů? Do /var/www/html/ nikdy nevkládáme nic, co bychom nechtěli, aby uživatel objevil.

Řešení 4:

Slovo rady. Po opravě oprávnění. Změňte všechna hesla a ujistěte se, že neexistuje mezipaměť google.

Řešení 5:

Normálně jsou konfigurační informace (jako jsou informace o připojení k databázi, ...) uloženy v souborech ve složce WEB-INF souboru WAR nasazeného na Tomcat. Soubory pod WEB-INF nejsou klientům přístupné.


Linux
  1. Jak zablokovat uživatele bez oprávnění root ve vytváření záznamu crontab v Linuxu

  2. Změřte provoz z protokolu přístupu Apache

  3. Jak vytvořit soubor v Linuxu z okna terminálu?

  1. Blokování přístupu prostřednictvím souboru .htaccess

  2. Jak vykopat soubor z Awk?

  3. Jak získat přístup k souborům Flash ze streamovaných webových stránek?

  1. Jak optimalizovat ukládání statických souborů Apache do mezipaměti na Ubuntu 18.04

  2. Jak auditovat přístup k souborům v systému Linux

  3. Jak se install -c liší od cp