[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

no way to compare when less than two revisions

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


pt-br:howtos:network_services:tunnel_interfaces [2020/06/26 23:01 (UTC)] (atual) – criada slackjeff
Linha 1: Linha 1:
 +====== Tunnel Interfaces ======
 +Se você deseja estabelecer um túnel SSH entre duas redes e tratar o túnel como uma interface, isso pode ajudar.
  
 +  * Primeiro, eu recomendaria ativar o rc.ip_forward no /etc/rc.d/ (nas máquinas local e de destino)<code bash>
 +root@darkstar:~# chmod +x /etc/rc.d/rc.ip_forward
 +</code> or for a temporary (lose at reboot) way use <code bash>
 +root@darkstar:~# echo "1" > /proc/sys/net/ipv4/ip_forward
 +</code>
 +
 +  * Quase esqueci que você precisará ativar o tunelamento em /etc/ssh/sshd_conf. Encontre esta parte //#PermitTunnelno// remova o comentário e mude para yes (na máquina de destino), você pode usar o vi para editar ou tentar o código abaixo:
 +
 +<code bash>
 +root@darkstar:~# /usr/bin/sudo /bin/sed -e "s/#PermitTunnel\ no/PermitTunnel\ yes\ #changed\ `date '+%Y%m%d' \
 +`\ by\ `/bin/whoami`/" -i.stock_slackware-`/bin/awk '{print $2}' /etc/slackware-version` /etc/ssh/sshd_config
 +</code>
 +
 +  * Em seguida, estou usando o autossh encontrado em [[http://slackbuilds.org/result/?search=autossh|slackbuilds.org]] . O script abaixo exige isso (há um método alternativo mencionado na parte inferior. Substitua a linha 20.)
 +
 +  * Você também desejará ter conexões ssh não interativas configuradas. Significado [[howtos:security:sshkeys|authorized_keys configuração com chaves públicas/privadas]].  
 +  
 +  * Supondo também que você tenha privilégios de sudo e usuário na máquina remota (usando a opção ''NOPASSWD: ALL'' em ''/etc/sudoers'')) \\ Exemplo: como tipo de raiz "''visudo''" e adicione o seu usuário assim
 +
 + <code bash>
 +rich ALL=(ALL) NOPASSWD: ALL
 +</code>
 +
 +  * Em seguida, estou usando um script bash simples que explicarei depois de espreitar. 
 +
 +<file bash rc.tunnel>
 +#!/bin/bash
 +
 +###########################################################
 +#
 +#Enter the ip of the target you wish to make a tunnel with.
 +#By ip address or hostname
 +#
 +target=74.79.121.210
 +port=22
 +#
 +###########################################################
 +# suggestions contact rich at lehcar.duckdns.org
 +# with thanks to Billy T (for idea and assistance)
 +###########################################################
 +#load module
 +/usr/bin/sudo /sbin/modprobe tun
 +#load remote module
 +/usr/bin/ssh -p $port $target "/usr/bin/sudo /sbin/modprobe tun"
 +/bin/sleep 1
 +
 +/usr/bin/sudo /usr/bin/autossh -p $port -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -fw 0:0 $target /bin/true
 +/bin/sleep 4
 +/usr/bin/ssh -p $port $target "/usr/bin/sudo /sbin/ifconfig tun0 192.168.5.2 pointopoint 192.168.5.1 netmask 255.255.255.252 broadcast 192.168.5.3"
 +/usr/bin/sudo /sbin/ifconfig tun0 192.168.5.1 pointopoint 192.168.5.2 netmask 255.255.255.252 broadcast 192.168.5.3
 +/usr/bin/sudo /usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 +/usr/bin/sudo /usr/sbin/iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 +/usr/bin/sudo /usr/sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
 +
 +/usr/bin/ssh -p $port $target "/usr/bin/sudo /usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE"
 +/usr/bin/ssh -p $port $target "/usr/bin/sudo /usr/sbin/iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT"
 +/usr/bin/ssh -p $port $target "/usr/bin/sudo /usr/sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT"
 +
 +</file>
 +
 +  * Para direcionar o tráfego pelo túnel, tente: 
 +
 +<code bash>
 +user@darkstar:~$ sudo /sbin/route add -net 74.125.131.0 netmask 255.255.255.0 dev tun0
 +</code>
 +
 +  * Para substituir o ssh normal em vez de autossh, substitua esta linha abaixo pela linha com autossh (linha 20)
 +
 +<code bash>
 +/usr/bin/sudo /usr/bin/ssh -p $port -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -fw 0:0 $target /bin/true
 +</code>
 +
 +Para recapitular algumas das opções: "''-fw 0: 0''" bifurca o processo ssh em segundo plano/abre um túnel e "''0: 0''" escolhe as interfaces local e remota (ou seja, tun0 e tun0 ) As opções "''-o''" são usadas para especificar parâmetros para o openSSH.   
 +
 +==== Resultados ====
 +
 +Agora você pode acessar o computador remoto usando "''192.168.5.2''" e suas comunicações passarão pelo túnel ssh. No script acima, você pode modificar a rede e a máscara para atender às suas necessidades. Eu escolhi "''192.168.5''", mas sua configuração provavelmente será diferente.
 +
 +Não vou conseguir elaborar as regras do iptables sou um newbie nesta questão, mas elas funcionam.
 +
 +**Aqui estão alguns exemplos de uso.**  
 +Direcionando o tráfego para a interface do túnel. primeiro exemplo 10.10.132.0-255 segundo 10.10.182.15
 +
 +<code bash>
 +/sbin/route add -net 10.10.132.0 netmask 255.255.255.0 dev tun0
 +/sbin/route add -net 10.10.182.15 netmask 255.255.255.255 dev tun0
 +</code>
 +
 +====== Sources ======
 +<!-- If you are copying information from another source, then specify that source -->
 +<!-- * Original source: [[http://some.website.org/some/page.html]] -->
 +<!-- Authors are allowed to give credit to themselves! -->
 +  * Originally written by [[wiki:user:ricky_cardo | ricky_cardo]] 
 +<!-- * Contributions by [[wiki:user:yyy | User Y]] -->
 +  *  --- //[[wiki:user:slackjeff|slackjeff]] 2020/06/23 18:31 (BRT)//
 +
 +<!-- Please do not modify anything below, except adding new tags.-->
 +{{tag>howtos tunnel tun0 author_ricky_cardo}}
 pt-br:howtos:network_services:tunnel_interfaces ()