SSH 연결을 통해서만 디렉토리에 대한 액세스를 제한하도록 Apache를 구성할 수 있습니까?

SSH 연결을 통해서만 디렉토리에 대한 액세스를 제한하도록 Apache를 구성할 수 있습니까?

여러 웹사이트를 실행하는 가상 머신이 있습니다. 모든 사용자는 기기의 외부 IP 주소를 통해 이 콘텐츠에 액세스할 수 있습니다. 저는 이 컴퓨터에서 Debian Stable을 실행하고 있습니다.

머신에 액세스 ssh하고 구성할 수 있으므로 브라우저를 localhost 포트 /phpmyadmin에 연결하고 phpmyadmin에 액세스할 수 있도록 10080로컬 포트를 로 전달합니다 . 내 컴퓨터가 네트워크 에 있습니다.localhost:8010080192.168.0.0/24

문제는 외부 웹사이트에서도 접근할 수 있다는 점입니다. 데비안이 이를 최상위 Apache 구성에 배치했기 때문입니다.

포트를 통해서만 ssh연결에 대한 액세스를 제한하고 싶습니다. 그러나 디렉토리에 해당하는 청취 지시문은 없는 것 같습니다.

그러나 IP_address의 권한이 있습니다. 터널을 통과할 때 Apache는 내가 어떤 IP 주소에 연결하고 있는지 생각합니다 ssh.

답변1

좋습니다. 이 문제는 해결하기가 비교적 간단합니다.

다음을 사용하여 서버에 액세스할 수 있습니다.

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

그런 다음 다음을 통해 phpmyadmin에 액세스합니다.

 http://localhost:5580/phpmyadmin/

데비안이 그것을 넣었기 때문에

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/

관련 정보