SSH接続を介してのみディレクトリへのアクセスを制限するようにApacheを設定できますか?

SSH接続を介してのみディレクトリへのアクセスを制限するようにApacheを設定できますか?

複数のウェブサイトを実行する仮想マシンがあります。すべてのユーザーは、デバイスの外部IPアドレスを介してこのコンテンツにアクセスできます。私はこのコンピュータでDebian Stableを実行しています。

マシンにアクセスしsshて設定できるため、ブラウザをlocalhostポート/ phpmyadminに接続し、phpmyadminにアクセスできるように10080ローカルポートをに転送します。マイコンピュータはネットワークにあります。localhost:8010080192.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/

関連情報