Порт перенаправить трафик из ограниченной сети с домашним неограниченным

273
alete

Вот сценарий: у меня есть корпоративная электронная почта, чей SMTP-сервер прослушивает порт 2525. Я могу без проблем настроить почтовый клиент, такой как Thunderbird, в моем доме. У меня также есть другая работа, где большинство исходящих портов закрыты, включая 2525. Однако есть несколько портов, которые открыты для исходящего трафика.

Есть ли способ для меня использовать мою домашнюю неограниченную сеть и маршрутизатор (и систему Linux 24/7 там) для перенаправления трафика? Я когда-то делал что-то похожее с SSH-туннелированием, чтобы просматривать интернет без ограничений прокси, но это не так.

Что я имею в виду: в ограниченной сети: установите SMTP для моего домашнего статического IP-адреса на любом открытом порту, который я найду. в доме: перенаправить этот порт на (1) непосредственно настоящий SMTP на локальном сервере 2525 (2), а затем перенаправить как-то на SMTP на 2525

итак: как называется то, что я пытаюсь сделать? как вы думаете, я могу этого достичь?

Спасибо

0

1 ответ на вопрос

1
RedGrittyBrick

как называется то, что я пытаюсь сделать?

TCP-реле

как вы думаете, я могу этого достичь?

Сокат :

...

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

устанавливает простой перенаправитель TCP-порта. При использовании TCP4-LISTEN он прослушивает локальный порт «www» до тех пор, пока не будет установлено соединение, примет его, затем подключится к удаленному хосту (TCP4) и начнет передачу данных. Он не примет второе соединение.


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-портов, каждая сторона связана с другим локальным IP-адресом (bind). В этом примере обрабатывается почти произвольное количество параллельных или последовательных соединений путем разветвления нового процесса после каждого accept (). Это обеспечивает небольшую безопасность, позволяя никому не поддаваться после разветвления; он разрешает соединения только из частной сети 10 (диапазон); из-за reuseaddr, он позволяет немедленный перезапуск после завершения главного процесса, даже если некоторые дочерние сокеты не полностью закрыты. С -lmlocal2 socat регистрирует в stderr, пока не достигнет цикла приема. Дальнейшее ведение журнала направляется в системный журнал с помощью средства local2.


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

простой сервер, который принимает соединения (TCP4-LISTEN) и разветвляет новый дочерний процесс для каждого соединения; каждый ребенок действует как единое реле. Клиент должен соответствовать правилам для имени процесса-демона "script" в /etc/hosts.allow и /etc/hosts.deny, в противном случае ему будет отказано в доступе (см. "Man 5 hosts_access"). Для выполнения программы EXEC дочерний процесс обрабатывает chroot в / home / sandbox, su в пользовательскую песочницу, а затем запускает программу / home / sandbox / bin / myscript. Сокат и myscript общаются через псевдо-tty (pty); Стандер myscript перенаправляется на стандартный вывод, поэтому сообщения об ошибках передаются через socat подключенному клиенту.


socat EXEC:"mail.sh target@domain.com",fdin=3,fdout=4 \ TCP4:mail.relay.org:25,crnl,bind=alias1.server.org,mss=512 

mail.sh - это скрипт оболочки, распространяемый вместе с socat, который реализует простой SMTP-клиент. Он запрограммирован «говорить» по SMTP на своих FD 3 (вход) и 4 (выход). Опции fdin и fdout говорят socat использовать эти FD для связи с программой. Так как mail.sh наследует stdin и stdout, а socat не использует их, скрипт может читать тело письма из stdin. Socat делает alias1 вашим локальным адресом источника (связывание), заботится о правильном завершении сетевой линии (crnl) и отправляет не более 512 байтов данных на пакет (mss).

...

Замечательно. Отличная цитата из соката. Также спасибо за указание названия техники. Иногда (особенно для не говорящих по-английски) это просто отсутствие инструментов, чтобы что-то гуглить. alete 5 лет назад 0

Похожие вопросы