GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memblokir akses ke file agar tidak dilayani oleh Tomcat?

Solusi 1:

Akses file Tomcat dikendalikan oleh bagian kendala keamanan WEB-INF/web.xml.

Anda dapat memblokir conf dengan cara ini:

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

Jika Anda menggunakan apache untuk menyajikan konten statis, ini tidak akan berfungsi karena apache akan menyajikan file conf sebelum kucing jantan mendapatkan URL. Dalam kasus tersebut, Anda perlu menyelesaikan ini melalui file konfigurasi http apache.

Solusi 2:

Halo untuk semua SysAdmin dan Pekerja TI di pos ini. Terima kasih atas tanggapan Anda. Banyak jawaban atas pertanyaan saya dapat diterima, tetapi yang ini paling cocok untuk lingkungan produksi kami.

Oke. Untuk memblokir direktori atau file dalam host virtual di server.xml, Anda hanya perlu menambahkan kode berikut ke server.xml di direktori Tomcat/conf.

Sebelumnya:

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

Setelah:

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

Jadi jawaban dari pertanyaan tersebut adalah tambahkan baris berikut:

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

Solusi 3:

Mengapa tidak menyimpannya di luar struktur direktori web Anda? Kami tidak pernah meletakkan apa pun di bawah /var/www/html/ yang kami tidak ingin ditemukan oleh pengguna.

Solusi 4:

Nasihat. Setelah Anda memperbaiki izin. Ubah semua kata sandi, dan pastikan tidak ada cache google untuk itu.

Solusi 5:

Biasanya informasi konfigurasi (seperti informasi koneksi basis data, ...) disimpan dalam file di bawah folder WEB-INF dari file WAR yang diterapkan ke Tomcat. File di bawah WEB-INF tidak dapat diakses oleh klien.


Linux
  1. Memblokir akses melalui file .htaccess

  2. Cara memblokir pengguna non-root dari membuat entri crontab di Linux

  3. Bagaimana install -c berbeda dari cp

  1. Bagaimana Cara Cat File Dari Awk?

  2. Bagaimana Cara Mengakses File Flash Dari Situs Web Streaming?

  3. Cara mengoptimalkan cache file statis Apache di Ubuntu 18.04

  1. Cara Mengaudit Akses File di Linux

  2. Ukur lalu lintas dari log akses apache

  3. Bagaimana cara membuat file di Linux dari jendela terminal?