Claro que é possível! Verifique o seguinte link:
link
Eu estou querendo criar uma interface de rede a partir de um proxy SOCKS 5 no host local. Isso acabará sendo preenchido com uma interface sem fio que eu tenho que estará operando no modo AdHoc. Isso permitirá que todos os clientes nesta interface usem o proxy de meias, mesmo que eles não tenham suporte para SOCKS. Isto irá apoiar o meu iDevices, PSP, etc, quando estou em movimento. Ele vai sair do meu laptop. Alguém pode fornecer alguns recursos úteis em que me ajudará a obter uma configuração de interface de proxy SOCKS na minha máquina Ubuntu? Obrigado antecipadamente!
Claro que é possível! Verifique o seguinte link:
link
Você não pode fazer isso, porque o SOCKS não opera em uma camada baixa o suficiente - ele só pode fazer proxy de conexões TCP, não de pacotes IP brutos. Isso seria necessário para configurar o roteamento, com ou sem NAT; mas bridging (como em brctl
) requer ainda mais - a capacidade de enviar quadros Ethernet brutos.
Você deve procurar VPNs - o OpenVPN é bastante simples de configurar.
Você precisa do tun2socks, ele faz parte do projeto BadVPN ( link ). Já existe uma resposta aqui recomendando tun2socks, mas falta exemplos.
Você pode construir o tun2socks a partir do código-fonte ou instalar o pacote pré-compilado. Por exemplo, no Ubuntu:
sudo add-apt-repository ppa:hda-me/badvpn-tun2socks
sudo apt-get update
sudo apt-get install badvpn-tun2socks
ip tuntap add dev tun1 mode tun user nobody
ifconfig tun1 up 10.0.0.1/24
# --netif-ipaddr 10.0.0.2 is not a typo.
# It specifies the IP address of the virtual router inside the TUN device,
# and must be different than the IP of the TUN interface itself.
# This command assumes you have tor up and running on 127.0.0.1:9050.
# Of course, you can use any other SOCKS proxy instead.
badvpn-tun2socks --tundev tun1 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:9050
Em seguida, você precisa decidir se deseja rotear todo o tráfego via proxy ou apenas trafegar para alguns IPs ou hosts específicos. Se você tem essa lista (ou pode criar uma com uma quantidade razoável de esforço), esta é a solução mais eficiente.
# Here list of hosts or IPs to route through proxy is just an example.
# You need to specify your own list.
list_of_IPs_to_route_via_proxy="example.com 203.0.113.5"
for IP in $(echo $list_of_IPs_to_route_via_proxy); do
route add $IP gw 10.0.0.2; done
Se você precisar direcionar todo o tráfego via proxy, será um pouco mais complicado. Nesse caso, sugiro ler atentamente o link . A documentação oficial assume que você deseja usar localhost: 1080 como seu proxy e fornece instruções sobre como criar um servidor SOCKS local com o encaminhamento dinâmico SSH. Parte mais importante da documentação:
A documentação também tem exemplos para usar tun2socks para encaminhamento UDP, como rotear todo o tráfego por meio do Tor, como para obter suporte ao IPv6.Connect to the SSH server, passing -D localhost:1080 to the ssh command to enable dynamic forwarding. This will make ssh open a local SOCKS server which badvpn-tun2socks will use. If you use Putty, go to Connection->SSH->Tunnels, type 1080 in Source port, choose Dynamic and click Add.
All that remains is to route connections through the TUN device instead of the existing default gateway. This is done as follows:
Add a route to the SSH server through your existing gateway, with a lower metric than the original default route. If your DNS servers are in the Internet (rather than your local network), also add routes for them (like for the SSH server). This is needed because tun2socks does not forward UDP by default (see below). Add default route through the virtual router in the TUN device, with a lower metric than the original default route, but higher than the SSH and DNS routes.
This will make all external connections go through the TUN device, except for the SSH connection (else SSH would go through the TUN device, which would go through... SSH).
For example (assuming there are no existing default routes with metric <=6; otherwise remove them or change their metrics), in Linux:
route add <IP_of_SSH_server> gw <IP_of_original_gateway> metric 5 <same for DNS> route add default gw 10.0.0.2 metric 6
Tags ubuntu socks network-interface