Criando um túnel HTTPS

2

Eu tenho um VPS. Como eu me conecto ao meu servidor através do protocolo HTTPS e redireciono as conexões do meu navegador para a conexão HTTPS?

Atualmente, uso o túnel SSH, mas é muito lento.

    
por hknik 06.04.2012 / 20:44

7 respostas

1

O apache do servidor https? Eu não entendo completamente sua situação, mas se você tiver o mod_proxy, você pode fazer o que quiser.

    
por 06.04.2012 / 21:44
1

Eu faço algo assim usando o OpenVPN. Meu laptop e celular podem se conectar ao meu servidor em casa usando SSL através de uma conexão TCP na porta 443. Isso é realmente útil quando estou em lugares indigestos que não permitem que você use qualquer porta além de 80 e 443. Aqui está uma configuração simples que realiza isso no servidor:

port 443
proto tcp
dev tun
server 10.44.3.0 255.255.255.0
ca ca.crt
cert cloud.crt
key cloud.key
dh dh2048.pem
script-security 2
push "redirect-gateway"

Em seguida, você diz ao servidor para realizar o NAT em pacotes provenientes de clientes VPN:

iptables -t nat -A POSTROUTING -s 10.44.3.0/24 -o eth0 -j MASQUERADE

Depois de me conectar, a rota de rede no meu dispositivo portátil é assim:

briankb@ubuntu:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.94.0.9       0.0.0.0         UG    0      0        0 tun0
192.79.68.0      0.0.0.0         255.255.255.128 U     1      0        0 eth0
10.94.0.1       10.94.0.9       255.255.255.255 UGH   0      0        0 tun0
10.94.0.9       0.0.0.0         255.255.255.255 UH    0      0        0 tun0
121.119.173.12   192.79.68.1      255.255.255.255 UGH   0      0        0 eth0

A primeira linha diz que o gateway padrão do cliente é o servidor VPN, então todo o tráfego é enviado por ele. A próxima linha é a sub-rede que estou usando atualmente (faculdade wifi). A terceira e quarta linha são a sub-rede / rota da VPN, e a última linha diz usar a interface WAN atual para enviar pacotes para o servidor VPN.

Para obter instruções sobre como configurar o OpenVPN, consulte o guia Como . p>     

por 13.04.2012 / 05:42
1

Estou usando o Squid como servidor proxy e Stunnel como wrapper SSL. Tem um desempenho muito bom devido ao armazenamento em cache.

Configuração do Squid

Após instalar o Squid, siga Documentações do Squid e configure-o. Aqui está a configuração de amostra:

http_port 3193 transparent

cache_dir ufs /var/cache/squid 128 16 128
cache_mem 1 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 1 MB

visible_hostname hostname.com

hierarchy_stoplist cgi-bin ?
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src 10.0.0.0/8     # RFC 1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC 1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

auth_param basic program /usr/libexec/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squidy
auth_param basic credentialsttl 4 hours

acl password proxy_auth REQUIRED

http_access allow manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow password
http_access allow localhost
http_access allow localnet
http_access deny all

via off
forwarded_for off

request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

Ele escuta a porta 3193 tcp . Em seguida, vêm as opções de cache, alguns comandos acl e auth_param para autenticação PAM (provavelmente você não deseja abrir proxy e perdeu seu VPS para relatórios de spam). request_header_access linhas não são necessárias. Eles te dão um melhor anonimato.

Configuração do Servidor Stunnel

Instale o stunnel no servidor. Aqui está a configuração de amostra:

setuid = stunnel
setgid = stunnel

CAfile = /etc/stunnel/certs.pem
CRLfile = /etc/stunnel/crls.pem

[proxy]
accept = 8888
connect = 127.0.0.1:3193

Provavelmente, arquivos de certificação feitos na instalação do stunnel. verifique o caminho do arquivo em CAfile . Ele simplesmente escuta a porta 8888 tcp e redireciona o fluxo decriptografado para o Squid. Então, tenha certeza que é alcançável:

iptables -I INPUT 1 -p tcp --dport 8888 -j ACCEPT

Você não precisa mais escutar a porta de escuta mais acessível.

Configuração do Cliente Stunnel

Instale o stunnel em sua máquina local e altere essa configuração de acordo com suas necessidades:

setuid = stunnel
setgid = stunnel
pid = /var/run/stunnel/stunnel.pid

[poxy]
accept = 8123
connect = server_ip:8888
client = yes
libwrap = no

Substitua server_ip pelo valor apropriado. então inicie o Squid no servidor e o Stunnel no cliente e no servidor. defina o proxy como localhost:8123 no seu navegador. Se tudo funcionar, você deve ser solicitado a fornecer nome de usuário e senha.

    
por 16.04.2012 / 00:40
0

Minha bola de cristal diz que você deve dar uma olhada no link

Caso a bola esteja errada, não vai doer de qualquer maneira.

    
por 10.04.2012 / 19:21
0

Eu nunca configurei nada em um host virtual, mas aqui estão algumas informações sobre HTTPS em geral:

O HTTPS usa uma combinação de HTTP e SSL (consulte o artigo da wikipedia aqui: link ). O HTTPS não é realmente o seu próprio protocolo, mas sim o HTTP normal em execução em um túnel SSL.

O HTTPS usa CA (Certificate Authories) e PKI (Public Key Infrastructure) para garantir que os usuários possam 'confiar' no site. Você deve criar um certificado de chave pública para seu servidor da Web e que deve ser assinado por uma CA confiável (como a VeriSign). Para obter um certificado confiável, pode custar-lhe uma taxa anual para manter.

Se você não passar por uma CA confiável, os usuários receberão um aviso quando tentarem se conectar ao seu site. Isso muitas vezes pode levar os usuários a se desviar do seu site, pois eles podem vê-lo como um risco de segurança.

Além disso, lembre-se de que, embora o HTTP use a porta 80 por padrão, o HTTPS usa 443, portanto, se você tiver algum encaminhamento de porta / bloqueio de porta, precisará garantir que esteja aberto para conexão. Para usar o HTTPS, você também precisará garantir que você o digite na URL quando navegar para o site, caso contrário, provavelmente usará HTTP.

EDIT: Aqui está uma boa introdução ao funcionamento do HTTPS: link

    
por 10.04.2012 / 19:35
0

Basta ativar HTTPS e mod_alias no Apache e adicionar uma regra de redirecionamento como a seguinte:

<VirtualHost *:80>
                 .
                 .
                 .
    Redirect permanent / https://yoursite.com/
</VirtualHost>

A configuração padrão varia entre sistemas operacionais / distribuições, então não posso ser mais específico do que isso. É melhor especificar suas versões de SO e software nas perguntas para que você possa obter respostas melhores; -).

    
por 13.04.2012 / 05:02
0

Conecte-se ao seu servidor por meio do SSH e configure o encaminhamento de porta: ssh -L 80:localhost:80 username@hostname . A porta remota 80 (seu servidor web) será tunelada via SSH para a porta 80 do seu PC. Agora, aponte seu navegador para o link

Você pode ter que estender uma linha em seu arquivo / etc / hosts: 127.0.0.1 hostname

    
por 13.04.2012 / 21:05