Tráfego de encaminhamento de porta de rede restrita com casa sem restrições

0

Aqui está o cenário: Eu tenho um e-mail corporativo cujo servidor SMTP escuta na porta 2525. Eu posso configurar um cliente de e-mail como o thunderbird em minha casa sem nenhum problema. Eu também tenho outro trabalho, onde a maioria das portas de saída estão fechadas, incluindo 2525. No entanto, existem algumas portas que estão abertas para o tráfego de saída.

Existe uma maneira de eu usar minha rede e roteador irrestrito doméstico (e um sistema linux 24/7 lá) para redirecionar o tráfego? Eu fiz uma vez algo parecido com tunelamento SSH para navegar na internet sem restrições de proxy, mas isso é diferente.

O que tenho em mente: na rede restrita: defina o SMTP para o IP estático da minha casa em qualquer porta aberta que eu encontrar. em casa: redirecionar essa porta para (1) SMTP diretamente real em 2525 (2) servidor local e, em seguida, redirecionar de alguma forma para SMTP em 2525

então: qual é o nome do que estou tentando fazer? como você acha que eu posso conseguir isso?

Obrigado

    
por alete 16.05.2018 / 00:57

1 resposta

1

what's the name of what I'm trying to do?

TCP relay

how do you think I can achieve that?

socat :

...

socat TCP4-LISTEN:www TCP4:www.domain.org:www

installs a simple TCP port forwarder. With TCP4-LISTEN it listens on local port "www" until a connection comes in, accepts it, then connects to the remote host (TCP4) and starts data transfer. It will not accept a second connection.


socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \
TCP4:www.domain.org:80,bind=myaddr2

TCP port forwarder, each side bound to another local IP address (bind). This example handles an almost arbitrary number of parallel or consecutive connections by fork'ing a new process after each accept() . It provides a little security by su'ing to user nobody after forking; it only permits connections from the private 10 network (range); due to reuseaddr, it allows immediate restart after master process's termination, even if some child sockets are not completely shut down. With -lmlocal2, socat logs to stderr until successfully reaching the accept loop. Further logging is directed to syslog with facility local2.


socat TCP4-LISTEN:5555,fork,tcpwrap=script \
EXEC:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr

a simple server that accepts connections (TCP4-LISTEN) and fork's a new child process for each connection; every child acts as single relay. The client must match the rules for daemon process name "script" in /etc/hosts.allow and /etc/hosts.deny, otherwise it is refused access (see "man 5 hosts_access"). For EXEC'uting the program, the child process chroot's to /home/sandbox, su's to user sandbox, and then starts the program /home/sandbox/bin/myscript. Socat and myscript communicate via a pseudo tty (pty); myscript's stderr is redirected to stdout, so its error messages are transferred via socat to the connected client.


socat EXEC:"mail.sh [email protected]",fdin=3,fdout=4 \
TCP4:mail.relay.org:25,crnl,bind=alias1.server.org,mss=512

mail.sh is a shell script, distributed with socat, that implements a simple SMTP client. It is programmed to "speak" SMTP on its FDs 3 (in) and 4 (out). The fdin and fdout options tell socat to use these FDs for communication with the program. Because mail.sh inherits stdin and stdout while socat does not use them, the script can read a mail body from stdin. Socat makes alias1 your local source address (bind), cares for correct network line termination (crnl) and sends at most 512 data bytes per packet (mss).

...

    
por 16.05.2018 / 15:42