«Домашний Офис», Или Когда Не Нужно Идти На Работу



«Домашний офис», или когда не нужно идти на работу Я давно об этом мечтала, и вот это наконец произошло! Я могу работать дома и делать (почти) все, что обычно делаю в офисе.

И мне удалось это сделать благодаря тому, что я настроил Обратный SSH-туннель на моем домашнем сервере и научился управлять этим туннелем.

Продолжение… Вот что мне нужно сделать в офисе:

  1. работа с ORACLE (запросы, процедуры и т.п.

    ) - требуется подключение к серверам (порты 1521, 1527)

  2. работа с UNIX (скрипты, копирование файлов и т.п.

    ) - требуется соединение telnet или SSH

  3. офисная почта
  4. общение с коллегами
  5. просмотр Хабра и других интересных мест
Благодаря тому, что мой дом поставщик предоставляет мне прямой IP-адрес, и благодаря любезности наших сетевых администраторов на работе у меня есть доступ домой с моей рабочей машины.

Я использую эту возможность для доступа к домашним ноутбукам с работы (их у меня 3) путем ВНК , а также для копирования файлов на домашний сервер и обратно.

Конечно, у входа есть маршрутизатор с NAT и прочими наворотами, что позволяет мне красиво маршрутизировать входящие соединения.

Но у меня нет доступа из дома к моей рабочей машине.

Политика безопасности компании этого не позволяет. VPN и прочее недоступно (пока).

Мама, мама, что мне делать? Ку! Ставим задачу: обеспечить работу по пунктам (1-5) из дома.

На работе - винда, рабочий компьютер не выключается.

У меня есть сервер дома НСЛУ2 на базе Linux. На сервере работает Apache, его логи доступны для чтения и анализа.

Пункты 3, 4 и 5 доступны из дома с помощью телефона, браузера и чат-агента.

А вот 1 и 2 обычным способом - никак.

И тут на сцену выходит «сладкая парочка» — Шпаклевка со стороны рабочей машины (далее — клиента) и sshd со стороны домашнего сервера (далее — сервер).

Обычно клиент открывает соединение с сервером через SSH и устанавливает безопасный «туннель».

Инициатором подключения «там» всегда является клиент. Я не буду описывать все возможности SSH — нас интересует только одна из них.

Возможна установка так называемого «обратного туннеля» — это означает, что сервер передает данные на указанный порт клиента, а клиент может пересылать эти данные дальше по своей сети.

Что мы получим, установив «обратный туннель»? И мы получим через этот туннель доступ из домашней сети в рабочую, т.е.

возможность работы со всеми серверами, которые обычно доступны только из рабочей сети.

Просто нужно правильно настроить туннель - какие порты сервера ведут к каким адресам и портам клиентов.

Это делается в настройках Putty при описании подключения.

Постоянно содержать такой туннель невозможно: бывают отключения, и он не всегда нужен.

Решение — устанавливать туннель при необходимости (после того, как выпили кофе дома и наконец решили поработать).

Да, но на работе никого нет? Кто будет запускать Putty для поднятия соединения? Как кто? Дед Пихто, конечно.

Рабочий компьютер сам запустится, нужно его только попросить.

Но как? Рабочий компьютер должен прочитать мою мысль «Я хочу, чтобы установилось соединение» и выполнить ее.

Остается только научиться материализовать свои мысли и научить свой рабочий компьютер понимать их.

А дальше все просто.

Я решил материализовать свою мысль в обычный текстовый файл.

Да, мысль должна быть простой и короткой.

Вверх! И тигры сидели у моих ног.

— В смысле «UP» означает поднять связь.

«DN» — пропустить соединение.

Кратко и понятно.

Сценарий клиент-сервер выглядит следующим образом:

  1. Создаем файл (назовем его cmd-файл) с одной строкой текста (командой) и размещаем его на главной странице, чтобы рабочий компьютер мог прочитать и обработать команду.

  2. Ждем, пока рабочий компьютер прочитает команду (смотрим логи Apache).

    Когда приходит GET-запрос на загрузку cmd-файла с рабочего адреса, мы можем сказать, что наша команда получена.

  3. Рабочий компьютер выполняет команду UP (поднимает соединение) или DN (разъединяет его).

  4. После выполнения команды рабочий компьютер запрашивает с домашней страницы cmd-файл с дополнительным параметром «ЭANS».

    Получив GET, можно сказать, что наша команда выполнена успешно.

Остаётся только автоматизировать все процессы на стороне клиента (в офисе) и на стороне сервера (дома) — и всё, можно курить бамбук и работать из дома.

Клиентский скрипт состоит из внешний интерфейс (всегда работает) и задняя часть (запускается для выполнения команды), скрипт для управления всем со стороны сервера один .

Чтобы все заработало, вам нужно запустить фронтенд-скрипт на рабочем компьютере и можно идти домой.

Запустив скрипт дома на сервере и указав команду ВВЕРХ.

, через 1-2 минуты мы получим подтверждение о выполнении команды.

Вот и все, вы можете начать работать с рабочими серверами так, как если бы они находились в вашей домашней сети.

После завершения работы следует указать команду DN , и все выключится.

Если соединение разорвано, оно автоматически восстановится через пару минут с помощью рабочего компьютера.

Если соединение вроде бы есть, но не работает, то следует выполнить команду DN и через пару минут - команда ВВЕРХ.

.

В планы на будущее входит создание ТфОП.

<-> VoIP-шлюз, чтобы рабочий телефон был доступен и дома.

Ну и как обычно конечная цель — захват Вселенной.

Теги: #обратный ssh-туннель #PuTTY #vnc #домашний офис #автоматизация #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.