我可以将 apache 配置为限制仅通过 ssh 连接访问目录吗?

我可以将 apache 配置为限制仅通过 ssh 连接访问目录吗?

我有一个运行多个网站的虚拟机。所有用户都可以通过机器的外部 IP 地址访问这些内容。我在这台机器上运行 Debian Stable。

我可以通过访问机器ssh并对其进行组织,因此我将本地10080端口转发到,localhost:80以便我可以将浏览器连接到本地主机端口10080/phpmyadmin 并获得对 phpmyadmin 的访问权限。我的机器在192.168.0.0/24网络上

问题是,您还可以通过任何外部网站访问它 - 因为 Debian 已将其放置在顶级 Apache 配置中。

我想限制仅通过ssh端口的连接的访问​​。但似乎没有相当于目录的监听指令。

但是,有来自 IP_address 的允许。当我通过隧道时,apache 认为我连接的是哪个 IP 地址ssh

答案1

好的,这个问题解决起来比较简单。

您可以使用以下方式访问您的服务器

 ssh -L 5580:localhost:80 www.servername.tld

然后你通过以下方式访问你的 phpmyadmin

 http://localhost:5580/phpmyadmin/

因为 Debian 已将其放置在

如果你有 M$,你可以这么说,但你有 Debian,所以你可以根据需要更改默认值。 :-)

但是,有来自 IP_address 的允许。当我通过 ssh 隧道时,apache 认为我连接的是哪个 IP 地址。

与您已经使用过的相同:localhost

最简单的解决方案在这里,你已经说过了

# /etc/phpmyadmin/apache.conf 
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>

  ...
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

另一个解决方案是侦听附加端口以独占访问 phpmyadmin:

要更改的文件:

 # /etc/apache2/ports.conf
 Listen localhost:8880

# /etc/phpmyadmin/apache.conf 
<VirtualHost *:8880>
  ServerName localhost
  Alias /phpmyadmin /usr/share/phpmyadmin
  <Directory /usr/share/phpmyadmin>

     ...
     Allow from 127.0.0.0/255.0.0.0 ::1/128
  </Directory>    
</VirtualHost>

最终

 apache2ctl configtest
 apache2ctl restart

重定向命令

 ssh -L 5580:localhost:8880 www.servername.tld

并连接到

 http://localhost:5580/phpmyadmin/

相关内容