Tuesday, April 11, 2023

Limit/Only allow certain IP addresses to access the website hosted on Apache on Ubuntu

  • ประเด็นมีอยู่ว่าจะจำกัดการใช้งานเฉพาะ 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

Popular Posts