Создание обратного ssh тоннеля на примере проброса http трафика.

Иногда нужно бывает временно выпустить сервер из подсети которая не имеет выхода в интернет  в интернет, например для установки пакетов.
Например Server 1 имеет выход в интернет, нам нужно выпустить в интернет Server 2
Надо сделать некоторые настройки на стороне  Server1
1. На сервере Server1 к которому будет подсоединяться сервер Server2 устанавливаем прокси-сервер, например squid.

$sudo apt-get install squid

2. Настраиваем прокси сервер на Server1 и запускаем его.

$ sudo cat /etc/squid3/squid.conf
#################################
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT  
acl localnets src 192.168.0.0/24
########################################
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow localnets
########################################
http_port 3128

coredump_dir /var/spool/squid3
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

3.   И на конец пишем скрипт который будет запускать обратный ssh - тоннель:
$cat /opt/bin/setrevtun.sh
#!/bin/bash
/usr/bin/ssh -fNvR 31280:localhost:3128 root@SERVER2

4.  Чтобы каждый раз не вводить пароль копируем ключ авторизации на Server2

$ssh-copy-in Server2 

5.  Стартуем скрипт на сервере Server1.

 $ /opt/bin/setrevtun.sh

6. Идем на  Server2 

$sudo netstat -tapn|grep 3128 

tcp        0      0 127.0.0.1:31280             0.0.0.0:*                   LISTEN      2614/sshd           
tcp        0      0 ::1:31280                   :::*                        LISTEN      2614/sshd   

Все тоннель поднялся.

6. Настраиваем нужные программы на Server2  работать через прокси http://127.0.0.1:31280
  







Комментариев нет:

Отправить комментарий