
Proxy HTTP / HTTPS sobre SSH.
Instalação
- Máquina local:
go get github.com/justmao945/mallory/cmd/mallory
- Servidor remoto: precisa do nosso velho amigo sshd
configuração de configueração
O caminho padrão é$HOME/.config/mallory.json
, pode ser definido quando o programa é iniciado.
mallory -config path/to/config.json
Conteúdo:
id_rsa
é o caminho para o nosso arquivo de chave privada, pode ser gerado porssh-keygen
local_smart
é o endereço local para servir o proxy HTTP com detecção inteligente do host de destinolocal_normal
é semelhante,local_smart
mas envia todo o tráfego através do servidor SSH remoto sem detecção de host de destinoremote
é o endereço remoto do servidor SSHblocked
é uma lista de domínios que precisam usar proxy, qualquer outro domínio se conectará diretamente ao servidor
{
"id_rsa": "$HOME/.ssh/id_rsa",
"local_smart": ":1315",
"local_normal": ":1316",
"remote": "ssh://user@vm.me:22",
"blocked": [
"angularjs.org",
"golang.org",
"google.com",
"google.co.jp",
"googleapis.com",
"googleusercontent.com",
"google-analytics.com",
"gstatic.com",
"twitter.com",
"youtube.com"
]
}
A lista bloqueada no arquivo de configuração será recarregada automaticamente quando atualizada, e você pode fazer isso manualmente:
# send signal to reload
kill -USR2 <pid of mallory>
# or use reload command by sending http request
mallory -reload
Configuração do sistema
- Defina o proxy HTTP e HTTPS como
localhost
com porta1315
para usar com a lista de bloqueios - Defina env var
http_proxy
ehttps_proxy
comolocalhost:1316
para uso do terminal
Obter o nome do sufixo correto para um domínio
mallory -suffix www.google.com
Um comando simples para encaminhar todo o tráfego para a porta especificada
# install it: go get github.com/justmao945/mallory/cmd/forward
# all traffic through port 20022 will be forwarded to destination.com:22
forward -network tcp -listen :20022 -forward destination.com:22
# you can ssh to destination:22 through localhost:20022
ssh root@localhost -p 20022
FAÇAM
- retorna erro http quando não é possível discar
- adicionar host à lista automaticamente quando não for possível discar
- suporta múltiplos servidores remotos