Posso configurar o apache para limitar o acesso a um diretório apenas da minha conexão ssh?

1

Eu tenho uma máquina virtual executando vários sites. Todos os usuários têm acesso a eles através do endereço IP externo da máquina. Estou executando o Debian Stable nesta máquina.

Eu posso acessar a máquina via ssh e organizá-la para encaminhar minha porta 10080 local para localhost:80 para que eu possa conectar meu navegador à porta localhost 10080 / phpmyadmin e obter acesso ao phpmyadmin. Minha máquina está em uma rede 192.168.0.0/24

O problema é que você também pode acessá-lo através de qualquer um dos sites externos - porque o Debian o colocou na configuração de alto nível do Apache.

Gostaria de limitar o acesso a apenas conexões por meio da ssh port. Mas parece não haver o equivalente a uma diretiva de escuta para um diretório.

No entanto, há Permitir de IP_address. Qual endereço IP o apache acha que eu conectei quando chego no túnel ssh .

    
por akc42 25.03.2014 / 22:31

1 resposta

0

OK, isso é relativamente simples de resolver.

Você acessa seu servidor com

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

e você acessa seu phpmyadmin via

 http://localhost:5580/phpmyadmin/

because Debian has placed it

Se você tiver M $, você pode dizer isso, mas você tem o Debian, então você pode mudar os padrões que você precisa. : -)

However there is Allow from IP_address. What IP address does apache think I connected on when I come over the ssh tunnel.

O mesmo que você já usou: localhost

A solução mais simples aqui, você já disse

# /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>

Outra solução seria ouvir em uma porta adicional para ter acesso exclusivo ao phpmyadmin:

Arquivos a serem alterados:

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

e

# /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>

Eventualmente

 apache2ctl configtest
 apache2ctl restart

O comando de redirecionamento

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

e conecte-se a

 http://localhost:5580/phpmyadmin/
    
por 26.03.2014 / 15:41