Иногда нужно бывает временно выпустить сервер из подсети которая не имеет выхода в интернет в интернет, например для установки пакетов.
Например 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
Например 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
Комментариев нет:
Отправить комментарий