informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Daftar isi
Tambahkan langkah-langkah operasi modul secara dinamis
Langkah-langkah untuk menginstal ulang Apache
Konfigurasikan lingkungan eksperimental anti-hotlink
Contoh hotlinking gambar lokal
Kecepatan akses suatu situs web ditentukan oleh banyak faktor, termasuk kecepatan respons aplikasi, bandwidth jaringan, kinerja server, kecepatan transmisi jaringan dengan klien, dll. Salah satu faktor yang paling penting adalah daya tanggap dari Apache itu sendiri. Anda dapat menggunakan kompresi web untuk meningkatkan kecepatan aplikasi Anda. Lebih penting lagi, ini tidak memerlukan biaya apa pun, dan hanya akan sedikit meningkatkan penggunaan CPU server sebesar satu atau dua poin persentase atau kurang.
Kompresi halaman web melalui modul deflate
Jika Anda telah menginstal Apache melalui paket kode sumber, jika Anda masih menyimpan paket kode sumber, Anda dapat mengkonfigurasi ulang, mengkompilasi, dan menginstalnya. Menginstal ulang Apache tidak akan mempengaruhi parameter sebelumnya.
Atau jika Anda telah mengonfigurasi fungsi memuat modul secara dinamis selama instalasi terakhir, Anda dapat menggunakan alat apxs untuk menambahkan modul secara dinamis tanpa menginstal ulang.
Tambahkan modul deflate secara dinamis tanpa menginstal ulang Apache
cd ke server HTTP Apache untuk menyimpan kode modul yang terkait dengan filter
Gunakan alat apxs untuk mengoperasikannya
Terakhir, gunakan perintah apachectl dengan pipa dan grep untuk memeriksa apakah modul deflate berhasil dimuat.
- [root@localhost filters]# cd /root/httpd-2.4.25/modules/filters/
- [root@localhost filters]# apxs -i -c -a mod_deflate.c
- [root@localhost filters]# apachectl -t -D DUMP_MODULES | grep deflate
- deflate_module (shared)
Aktifkan modul mod_deflate di file konfigurasi httpd
- [root@localhost filters]# vim /usr/local/httpd/conf/httpd.conf
- 在末行模式下搜索:/deflate
- LoadModule deflate_module modules/mod_deflate.so # 去掉开头注释
- <IfModule mod_deflate.c>
- # 对指定的类型应用deflat进行压缩(文本、样式表、图像)
- AddOutputFilterByType DEFLATE text/html text/css text/jpg text/png text/gif
- DeflateCompressionLevel 9 # 指定了压缩级别为9,表示最高级别的压缩(压缩比最高,但消耗CPU资源较多)
- SetOutputFilter DEFLATE # 指定默认的输出过滤器为deflate进行输出内容的压缩
- </IfModule>
Tambahkan modul deflate dengan langsung menginstal ulang Apache
Gunakan duluapachectl -t -D DUMP_MODULES | grep mengempiskanPerintah untuk memeriksa apakah Apache saat ini memiliki modul deflate
Jika Apache diaktifkan, gunakansystemctl hentikan httpdTutup layanan
Masuk ke direktori dekompresi paket kode sumber, tentukan direktori instalasi, dan aktifkan beberapa fungsi. Modul deflate digunakan untuk kompresi halaman web.
./konfigurasiSetelah diproses, gunakanmembuat && membuat instalPerintah untuk mengkompilasi dan menginstal
- [root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate
- [root@localhost httpd-2.4.25]# make && make install
Gunakan perintah ll untuk memeriksa apakah modul deflate diaktifkan. Anda dapat melihat bahwa file mod_deflate.so ada.
- [root@localhost httpd-2.4.25]# ll /usr/local/httpd/modules/mod_deflate.so
- -rwxr-xr-x 1 root root 53096 7月 10 20:43 /usr/local/httpd/modules/mod_deflate.so
Tapi gunakanapachectl -t -D DUMP_MODULES | grep mengempiskanPerintah ini tidak dapat ditanyakan karena tidak diaktifkan di file konfigurasi Apache.
Edit file konfigurasi utama httpdModul Muatpernyataan, kami akan menambahkan pernyataan pemuatan modul baru di bawah LoadModules ini.
Di bagian kedua dari pernyataan pemuatan modul, Anda dapat menggunakan jalur absolut atau jalur relatif. Karena saat menginstal Apache, aturan awalan (awalan) ditentukan melalui skrip ./configure, jadi Anda ingin menentukan yang tertentu di dalamnya. file konfigurasi Apache. Jalur ke file, jalur awalan dapat dihilangkan
Tag IfModule digunakan untuk memuat konfigurasi modul secara kondisional. Fungsinya adalah untuk memeriksa apakah modul yang ditentukan dimuat di lingkungan Apache saat ini. Hanya ketika modul dimuat, instruksi konfigurasi yang dibungkus dalam tag IfModule akan berlaku.
- [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
-
- LoadModule deflate_module modules/mod_deflate.so
- <IfModule mod_deflate.c> # 只有当 mod_deflate 模块加载时才会执行下面的配置
- DeflateCompressionLevel 6 # 压缩级别,数字越大压缩比就越大
- SetOutputFilter DEFLATE # 启用deflate模块
- # 告诉服务器对哪些文件进行压缩,如果是已经压缩过的,就不再压缩
- AddOutputFilterByType DEFLATE text/html text/plain text/xml text/csstext/javascript application/x-javascript application/javascript application/json
- SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
- SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
- SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
- AddOutputFilterByType DEFLATE text/*
- AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
- AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
- </IfModule>
Simpan dan keluar, Anda dapat menggunakanhttpd-tUntuk mendeteksi apakah ada kesalahan sintaks pada file konfigurasi. Jika diminta Sintaks OK, berarti tidak ada kesalahan.
Karena httpd perlu memuat ulang file konfigurasi yang dimodifikasi agar konfigurasi yang baru ditambahkan dapat diterapkan, mulai ulang layanan.
Saat ini, akses server web di browser, tekan F12 pada keyboard untuk membuka alat pengembang, pilih alamat IP server web, dan Anda dapat melihat di header respons bahwa teknologi kompresinya adalah gzip
Eksperimen berakhir
Caching halaman web adalah untuk men-cache beberapa halaman yang sering tidak berubah atau jarang berubah. Saat browser mengakses halaman tersebut lagi, tidak perlu mendownload halaman tersebut lagi, sehingga meningkatkan kecepatan akses pengguna. Modul mod_expires Apache akan secara otomatis menghasilkan tag Kedaluwarsa dan tag Kontrol Cache di informasi header halaman, Berdasarkan tag tersebut, browser klien memutuskan untuk mendapatkan halaman di cache mesin lokal untuk kunjungan berikutnya, tanpa membuat permintaan lain ke sana. server. Kurangi frekuensi dan jumlah akses klien untuk mencapai tujuan mengurangi lalu lintas yang tidak perlu dan meningkatkan kecepatan akses.
Menerapkan cache halaman web
Buka file konfigurasi utama httpd, aktifkan modul expired dan tambahkan, lalu mulai ulang layanan.
- [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
- 在末行模式搜索:/expires_module
- 将前面的注释去掉,开启expires模块
- LoadModule expires_module modules/mod_expires.so
- <IfModule mod_expires.c>
- ExpiresActive On # 开启缓存功能
- ExpiresDefault "access plus 60 seconds" # 缓存时间设置为60秒
- </IfModule>
-
- 检测语法正确性,重启服务
- [root@localhost httpd-2.4.25]# httpd -t
- Syntax OK
- [root@localhost httpd-2.4.25]# systemctl restart httpd
Setelah memulai ulang layanan, buka browser untuk mengakses server web, dan Anda dapat melihat ada dua baris informasi lagi di header respons.
Informasi kerentanan perangkat lunak terkait dengan versi tertentu, sehingga nomor versi sangat berguna bagi penyerang. Di alat pengembang di browser, Anda dapat melihat informasi versi Apache di item server di header respons.
Jika penyerang jaringan memperoleh informasi versi Apache, ia akan melakukan serangan yang ditargetkan dan menyebabkan kerugian pada situs web. Oleh karena itu, dalam lingkungan produksi sebenarnya, nomor versi Apache harus disembunyikan untuk mengurangi risiko serangan.
- [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
- 在末行模式下搜索:/httpd-default
- 将Include语句前的注释去掉,表示包含Include语句后面指定的文件在当前文件中(相当于把指定文件的内容复制粘贴到当前文件的当前Include语句的位置)
- # Various default settings
- Include conf/extra/httpd-default.conf
Simpan dan keluar, buka file httpd.default
- [root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/extra/httpd-default.conf
- 在第55行就可以设置隐藏版本信息,这里改为Prod
- ServerTokens Prod
Anda dapat melihat bahwa opsi disediakan di komentar:Diatur ke salah satu dari: Penuh | OS | Kecil | Minimal | Utama | Prod
Pilihan | menjelaskan |
ServerTokens Penuh | Mengembalikan informasi server paling detail, termasuk jenis sistem operasi dan daftar modul yang dikompilasi. Misalnya: Apache/2.4.41 (Unix) OpenSSL/1.1.1d PHP/7.3.11 |
Sistem Operasi ServerTokens | Hanya jenis sistem operasi yang dikembalikan. Misalnya: Apache/2.4.41 (Unix) |
ServerTokens Kecil | Mengembalikan nomor versi mayor dan minor. Misalnya: Apache/2.4 |
Token Server Minimal | Mengembalikan nomor versi utama. Misalnya: Apache/2 |
ServerTokens Utama | Hanya nomor versi utama yang dikembalikan. Misalnya: Apache/2 |
Token Server Produksi | Mengembalikan informasi minimal, hanya menampilkan Apache, menghilangkan nomor versi. Misalnya: Apache |
Simpan dan keluar, mulai ulang layanan.Akses server web
Anda dapat melihat bahwa informasi versi hanya menampilkan satu Apache
Hotlinking Apache adalah tindakan perlindungan yang mencegah situs web lain atau pihak ketiga yang tidak berwenang untuk secara langsung menautkan ke gambar, video, audio, atau sumber daya lain di situs web Anda.
Ketika sebuah situs web menggunakan sumber daya langsung dari situs Anda, mereka sebenarnya menghabiskan bandwidth dan sumber daya server Anda, mungkin tanpa izin Anda.
nama CPU | nama domain | alamat IP | sistem operasi | Perangkat lunak dan versi utama |
apache1 | www.e1.com | 192.168.10.101 | Bahasa Indonesia: Bahasa Indonesia: CentOS7.9 | httpd-2.4.25.tar.gz |
Bahasa Inggris: apache2 | www.e2.com | 192.168.10.201 | Bahasa Indonesia: Bahasa Indonesia: CentOS7.9 | httpd-2.4.25.tar.gz atau instalasi yum |
klien | Windows 10 | Peramban |
Kloning server pertama secara langsung atau gunakan yum -y install httpd untuk menginstal httpd, dan ubah alamat IP menjadi 192.168.10.102
Ubah nama host kedua server
- 101主机
- [root@localhost ~]# hostname apache1
- [root@localhost ~]# bash
- [root@apache1 ~]#
- 201主机
- [root@localhost ~]# hostname apache2
- [root@localhost ~]# bash
- [root@apache2 ~]#
Ubah file host dari dua server web sehingga dapat menentukan nama domain yang sesuai.
Ikuti langkah yang sama di bawah ini untuk memodifikasi host 201
- [root@apache1 ~]# vim /etc/hosts
- 在hosts文件末尾追加
- 192.168.10.101 www.e1.com
- 192.168.10.201 www.e2.com
Untuk file host dari host klien Win10, di bawah C:WindowsSystem32driversetc, klik dua kali file host untuk membukanya dengan Notepad.
Matikan firewall dan mekanisme keamanan kernel kedua server Web, aktifkan layanan httpd, dan coba lihat apakah Anda dapat mengakses dua server Web di host klien.
- 在两个Web服务器操作
- [root@apache1 ~]# systemctl start httpd
- [root@apache1 ~]# setenforce 0
101 host adalah situs saya dan saya perlu mencuri gambar di server web 201 host.
Artinya, www.e1.com mencuri link gambar www.e2.com
Datanglah ke tuan rumah 201
Masuk ke direktori tempat httpd menyimpan file halaman web, seret gambar, dan edit file index.html.
- [root@apache2 ~]# cd /usr/local/httpd/htdocs/
- 在该目录下从宿主机拖入一张图片
- [root@apache2 htdocs]# vim index.html
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>标题</title>
- </head>
- <body>
- <h1>原图网站</h1>
- <img src="logo.jpg" /> # 如果图片文件是在网页文件同一目录下,可以不用加路径
- </body>
- </html>
Simpan dan keluar. Saat ini, gunakan browser untuk mengunjungi www.e2.com di mesin host dan Anda dapat melihat ada gambar di halaman web.
Jika Anda ingin mencuri gambar dari situs web lain, Anda memerlukan tautan ke gambar tersebut. Klik kanan gambar di browser dan pilih Salin Tautan Gambar.
Datanglah ke 101 Host
Tambahkan tautan ke gambar di beranda server 101Web
- [root@apache1 ~]# cd /var/www/html # 使用yum安装httpd的存放网页文件的目录
- [root@apache1 html]# vim index.html
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>标题</title>
- </head>
- <body>
- <h1>盗图网站</h1>
- <img src="http://www.e2.com/logo.jpg" />
- </body>
- </html>
Simpan dan keluar, buka host klien Win10 dan kunjungi dua URL www.e1.com dan www.e2.com
Gunakan F12 untuk membuka alat pengembang. Anda dapat melihat di jaringan bahwa URL permintaan dan tautan gambar www.e2.com adalah milik www.e2.com.
URL permintaan www.e1.com adalah www.e1.com, tetapi permintaan gambar adalah IP host www.e2.com + tautan gambar
Sejauh ini, hotlinking gambar lokal sederhana telah direalisasikan.
Jika host lain mencuri link gambar dari host 201, hanya gambar tetap yang akan ditampilkan, bukan gambar yang ingin dicuri pihak lain.
Impor gambar lain (error.jpg) ke direktori htdocs dari host 201 (www.e2.com) yang menyediakan gambar asli untuk eksperimen anti-lintah.
Kemudian edit file konfigurasi httpd dan aktifkan modul rewrite (penulisan ulang alamat). Tujuan penulisan ulang adalah jika seseorang meminta logo.jpg saya, arahkan permintaan tersebut ke error.jpg.
Dengan fungsi penulisan ulang alamat, permintaan dapat ditinjau dan dinilai. Jika permintaan diawali dengan www.e2.com, akses akan diizinkan. Jika awalan permintaan bukan www.e2.com, akses ke gambar akan tidak diperbolehkan.
- [root@apache2 htdocs]# vim /usr/local/httpd/conf/httpd.conf
- 在末行模式下搜索:/rewrite
- LoadModule rewrite_module modules/mod_rewrite.so # 将开头注释去掉,启用rewrite模块
-
- 在末行模式下搜索:/htdocs
- 在<Directory "/usr/local/httpd/htdocs">标签内往下翻
- 找到AllowOverride参数的行,修改内容为下方内容
- AllowOverride None
- RewriteEngine On
- RewriteCond %{HTTP_REFERER} !^http://e2.com$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://e2.com/.*$ [NC]
-
-
- RewriteCond %{HTTP_REFERER} !^http://www.e2.com$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://www.e2.com/.*$ [NC]
- RewriteRule .*.(gif|jpg|swf)$ http://www.e2.com/error.png
parameter | menjelaskan |
IzinkanOverride SEMUA | Izinkan RewriteEngine dan aturan penulisan ulang lainnya di file .htaccess. SEMUA: Mengizinkan semua jenis arahan penulisan ulang ditimpa oleh aturan dalam file .htaccess. Tidak Ada: Melarang penggunaan file .htaccess di direktori ini untuk mengesampingkan konfigurasi server |
Tulis Ulang Mesin Hidup | Aktifkan penulisan ulang, ini adalah langkah pertama untuk mengaktifkan aturan penulisan ulang |
Tulis UlangKond | Tentukan kondisi penulisan ulang |
%{HTTP_REFERER} | Ini adalah variabel bawaan Apache. Variabel ini dapat memperoleh URL di informasi header pesan permintaan ketika pengguna mengakses. Cocokkan nilai Referer dalam permintaan |
!^http://www.e2.com/.*$ | File apa pun di bawah URL (.*: cocok dengan satu atau beberapa karakter apa pun) Menunjukkan bahwa ini tidak cocok dengan string yang dimulai dengan http://www.e2.com/ dan diakhiri dengan satu atau beberapa karakter |
[NC] | Pemfilteran tidak peka huruf besar-kecil |
Aturan Penulisan Ulang | Tentukan aturan penulisan ulang |
.*.(gif|jpg|swf)$ http://www.e2.com/error.png | Jika kondisi penulisan ulang sebelumnya cocok, jika URL yang diminta diakhiri dengan .gif, .jpg, atau .swf Kemudian permintaan akan diarahkan ke http://www.e2.com/error.png .*: cocok dengan sejumlah karakter apa pun .: Titik yang di-escape oleh karakter escape, berikut arti dari titik sederhana |
Simpan dan keluar, mulai ulang layanan.
Terakhir, kami datang ke host klien (Win10) untuk menguji agar gambar tidak di-cache oleh browser, jadi gunakan tombol pintas Ctrl + Shift + Delete untuk menghapus cache browser.
Kemudian kunjungi www.e2.com dan semuanya berfungsi dengan baik
Saat mengunjungi www.e1.com, tautan gambar yang dicuri menjadi gambar error.png yang dialihkan.