- ประเด็นมีอยู่ว่าจะจำกัดการใช้งานเฉพาะ network ภายใน แต่วาง site บน public
Solved
- วิธีแรกแก้ไขสำหรับจำกัดทั้ง vhost ให้แก้ไฟล์ vhost นั้น ภายใน virtualhost tag ได้เลย
## /etc/apache2/site-available/vhost.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
.....
<Location />
Require all denied
Require ip 192.168.1.3
Require ip x.x.x.0/8
Require ip y.y.0.0/16
Require ip z.0.0.0/24
</Location>
</VirtualHost>
</IfModule>
- หรืออีกวิธี เพิ่ม .htaccess เอาวางไว้ที่ root ของ Vhost นั้นๆ อันนี้จะเหมือนวิธีแรก จำกัดทั้ง site(อันนี้ยังไม่ค่อยเข้าใจเท่าไหร่ ถ้าเข้าไป subfolder เข้าได้ซะงั้น)
Order Deny,Allow
Deny from all
Allow from 192.168.1.3
Allow from 192.168.1.0/8
Allow from 172.16.0.0/16
Allow from 10.0.0.0/24
- หรือ จำกัดบาง subfolder ที่เราตั้งค่าเป็น alias
Alias /site1 "/var/www/html/site1/"
<Directory "/var/www/html/site1">
#ErrorDocument 404 /site1/
Options -Indexes
# Allow from all
# Allow from 127.0.0.0/255.0.0.0 ::1/128
Deny from all
Allow from x.x.x.x
Allow from x.x.x.0/8
Allow from y.y.0.0/16
Allow from z.0.0.0/24
</Directory>
Ref
- https://dannyda.com/2021/12/08/how-to-limit-only-allow-certain-ip-addresses-to-access-the-website-hosted-on-apache-or-access-to-reverse-proxy-on-linux-debian-ubuntu-kali-linux/
- https://electrictoolbox.com/apache-allow-deny-ip-address/
- https://serverfault.com/questions/776252/allow-access-to-apache-server-from-only-one-ip-address