Pertama, saya akan menganggap maksud Anda Apache 2.4 terlepas dari tag "apache-2.2" karena sintaks yang Anda posting berasal dari 2.4.
Dari dokumentasi Apache:
ip.address adalah alamat IP, alamat IP parsial, pasangan jaringan / netmask, atau spesifikasi CIDR jaringan / nnn.
Saya berasumsi bahwa Anda bermaksud mengizinkan / 24 karena Kelas D adalah alamat Multicast, dan jaringan classful mati pada tahun 90-an. Untuk mengizinkan / 24, Anda dapat menggunakan salah satu dari yang berikut:
Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24
Secara pribadi, saya menemukan yang terakhir menjadi kurang ambigu daripada yang pertama, dan lebih mudah dibaca daripada yang kedua.
Anda dapat menemukan bagian dokumentasi ini berguna: http://httpd.apache.org/docs/2.4/howto/access.html#host
Require
memiliki dukungan terbatas di Apache 2.2, Apache 2.2 tidak mendukungRequire ip
atau<RequireAny>
. Seperti dicatat dalam Ikhtisar fitur baru di Apache HTTP Server 2.4 , "Logika otorisasi lanjutan sekarang dapat ditentukan menggunakanRequire
arahan dan arahan wadah terkait, seperti<RequireAll>
." Yang pertama adalah beberapa perbaikan yang ditambahkan ke Apache 2.4.Di Apache 2.2 dan di bawah, Anda dapat bekerja dengan:
di .htacess Anda, langsung di tingkat dasar (tidak ada dalam
<directive>
).Pada Apache 2.4 dan lebih tinggi, ini dia:
(semua angka fiksi, jangan khawatir ;-).
Saya menggunakan ini selama bertahun-tahun sekarang, untuk melindungi folder backend saya terhadap 99% pengguna potensial. (Bekerja dengan sangat baik, kecuali jika Anda adalah blogger yang rajin bepergian. Jika Anda adalah pengguna gmail: "aktivitas akun terakhir" Tautan di bagian paling bawah adalah cara yang nyaman untuk mengetahui "kebiasaan IP" Anda sendiri).
sumber
Require ip 2a02:4126:2aa4::/48
danRequire ip 2a02:4126:2aa4::
? Keduanya tidak menghasilkan kesalahan sintaksis untuk saya, tetapi hanya yang sebelumnya berfungsi.Memperhatikan bahwa Anda sekarang telah mengonfirmasi menggunakan Apache 2.2 , Apache 2.2 tidak mendukung
Require ip
atau<RequireAny>
. Seperti dicatat dalam Ikhtisar fitur baru di Apache HTTP Server 2.4 , "Logika otorisasi lanjutan sekarang dapat ditentukan menggunakanRequire
arahan dan arahan wadah terkait, seperti<RequireAll>
." Yang pertama adalah beberapa perbaikan yang ditambahkan ke Apache 2.4.Untuk mengatasinya di Apache 2.2, Anda mungkin perlu melakukan sesuatu seperti:
yang akan mendapatkan seluruh rentang yang ditentukan.
sumber
Catatan: Saya meninggalkan ini di sini karena orang lain mungkin mendapat manfaat darinya; itu bukan jawaban langsung untuk pertanyaan itu.
Sebagai contoh:
Membutuhkan ip 192.168.100.0/22
bekerja, sementara
Membutuhkan ip 192.168.100.0/22 #localnetwork
gagal!
Restart output httpd:
Pekerjaan untuk httpd.service gagal karena proses kontrol keluar dengan kode kesalahan. Lihat "systemctl status httpd.service" dan "journalctl -xe" untuk detailnya.
Jadi, sepertinya tidak ada komentar yang diizinkan pada baris itu .
sumber
Arahan Membutuhkan Apache digunakan selama fase otorisasi untuk memastikan bahwa pengguna diizinkan atau ditolak akses ke sumber daya. mod_authz_host memperluas jenis otorisasi dengan ip, host, forward-dns dan lokal. Jenis otorisasi lain juga dapat digunakan tetapi mungkin mengharuskan modul otorisasi tambahan dimuat.
Penyedia otorisasi ini memengaruhi host mana yang dapat mengakses area server. Akses dapat dikontrol oleh nama host, Alamat IP, atau rentang Alamat IP.
Sejak v2.4.8, ekspresi yang didukung di dalam host memerlukan arahan. Membutuhkan ip
Penyedia ip memungkinkan akses ke server untuk dikendalikan berdasarkan alamat IP dari klien jarak jauh. Ketika Membutuhkan ip ip-address ditentukan, maka permintaan diizinkan mengakses jika alamat IP cocok.
Alamat IP lengkap:
Alamat IP dari host dapat mengakses
Alamat IP parsial:
1 hingga 3 byte pertama dari alamat IP, untuk pembatasan subnet.
Pasangan jaringan / netmask:
Jaringan abcd, dan netmask wxyz Untuk pembatasan subnet yang lebih halus.
Spesifikasi CIDR jaringan / nnn:
Mirip dengan kasus sebelumnya, kecuali netmask terdiri dari nnn orde tinggi 1 bit.
Perhatikan bahwa tiga contoh terakhir di atas sama persis dengan host yang sama.
Alamat IPv6 dan subnet IPv6 dapat ditentukan seperti yang ditunjukkan di bawah ini:
Catatan: Karena alamat IP diuraikan saat startup, ekspresi tidak dievaluasi pada waktu permintaan.
Sumber: https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html
sumber