以下是在Ubuntu上使用Apache2限制访问权限的常见方法:
基于IP地址限制
.htaccess文件,添加以下内容限制IP访问:Order deny,allow
Deny from all
Allow from 192.168.1.1 192.168.1.2 # 允许的IP地址
/etc/apache2/sites-available/的虚拟主机配置中添加:<Directory "/var/www/html/restricted">
Require ip 192.168.1.1 192.168.1.2 # Apache 2.4+语法
</Directory>
基于身份验证限制
.htpasswd认证:
sudo htpasswd -c /etc/apache2/.htpasswd username(替换username)。.htaccess或配置文件中添加:AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
使用模块控制
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.1$
RewriteRule ^ - [F] # 拒绝非指定IP访问
系统防火墙限制
ufw或iptables限制端口访问:sudo ufw allow from 192.168.1.1 to any port 80 # 允许特定IP访问HTTP
sudo ufw deny 80 # 拒绝所有HTTP访问(谨慎使用)
注意:修改配置后需重启Apache服务:sudo systemctl restart apache2。
优先使用Require指令(Apache 2.4+)或.htaccess,结合文件权限(chown -R www-data:www-data)确保安全。