Узнать по ключевым словам позицию в поисковике. Бонус — схема проверки позиций в Торвизоре. Платные профессиональные сервисы
Существует три различных типа туннелирования, и все они используются для решения разных задач. Каждая задача предполагает использование SSH-сервера для перенаправления трафика из одного сетевого порта в другой. Трафик передается по зашифрованному SSH-соединению , поэтому его нельзя отследить или изменить в процессе передачи:
Туннелирование можно реализовать с помощью ssh-команды в Linux , Mac OS и операционных системах семейства UNIX . Для пользователей Windows , где нет встроенной ssh-команды , мы предлагаем бесплатный инструмент PuTTY . Он умеет подключаться к SSH-серверам . Он также поддерживает SSH-туннелирование .
Локальное перенаправление портов (port forwarding): получаем доступ к удалённым ресурсам на локальной системе
«Локальное перенаправление портов » позволяет осуществлять доступ к ресурсам, находящимся внутри локальной сети. Предположим, что нужно попасть на офисный сервер БД, сидя дома. В целях безопасности этот сервер настроен так, чтобы принимать подключения только с ПК, находящихся в локальной сети офиса. Но если у вас есть доступ к SSH-серверу , находящемуся в офисе, и этот SSH-сервер разрешает подключения из-за пределов офисной сети, то к нему можно подключиться из дома. Затем осуществить доступ к БД. Проще защитить от атак один SSH-сервер , чем защищать каждый ресурс локальной сети по отдельности.
Чтобы сделать это, вы устанавливаете SSH-соединение с SSH-сервером и говорите клиенту передать трафик с указанного порта на локальном ПК. Например, с порта 1234 на адрес сервера базы данных и его порт внутри офисной сети. Когда вы пытаетесь получить доступ к БД через порт 1234 на вашем ПК («localhost ») трафик автоматически «туннелируется » по SSH-соединению и отправляется на сервер БД.
SSH-сервер выступает посредником, пересылая трафик туда-сюда. При этом можно использовать любую командную строку или графический инструмент для осуществления доступа к базе данных, как вы обычно делаете это на локальном ПК.
Чтобы использовать локальное перенаправление, подключитесь к SSH-серверу с использованием вспомогательного аргумента -L . Синтаксис для туннелирования трафика будет следующим:
ssh -L local_port:remote_address:remote_port [email protected]
Предположим, что офисный сервер находится по адресу 192.168.1.111 . У вас есть доступ к SSH-серверу через адрес ssh.youroffice.com , и имя вашего аккаунта на SSH-сервере — bob . В таком случае необходимая команда будет выглядеть следующим образом:
ssh -L 8888:192.168.1.111:1234 [email protected]
Запустив эту команду, вы попадете на офисный сервер баз данных через порт 8888 на localhost . Если у СУБД есть веб-интерфейс, можно вписать в адресную строку браузера http://localhost:8888 . Если у вас инструмент командной строки, которому необходим сетевой адрес базы данных, то направьте его на localhost:8888 . Весь трафик, отправленный на порт 8888 на ПК, будет перенаправлен на 192.168.1.111:1234 внутри офисной сети:
Это слегка сбивает с толку, если надо подключиться к серверному приложению, запущенному в той же системе, где и сам SSH-сервер . К примеру, есть SSH-сервер , работающий на порте 22 на офисном ПК. Но у вас также есть сервер баз данных, работающий на порте 1234 в той же системе по тому же адресу. Вам нужно подключиться к БД из дома, но система принимает только SSH-подключение через 22 порт , и сетевой экран не пропускает любые внешние подключения. В таком случае можно запустить следующую команду:
ssh -L 8888:localhost:1234 [email protected]
При попытке подключиться к БД через 8888 порт на вашем ПК, трафик будет передаваться с помощью SSH-подключения . Когда он достигнет системы, в которой работает SSH , SSH-сервер отправит его на порт 1234 на «localhost », принадлежащий тому же ПК, на котором запущен SSH-сервер . То есть, «localhost » в приведённой выше команде означает «localhost » с перспективы удалённого сервера:
Чтобы сделать это в PuTTY на Windows , выберите опцию Connection > SSH > Tunnels . Далее опцию «Local ». В поле «Source Port » укажите локальный порт. В поле «Destination удалённый_адрес:удалённый_порт .
Например, если нужно настроить SSH-тоннель , как это сделано выше, то введите 8888 в качестве порта-источника и localhost:1234 в качестве целевого адреса. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение . До подключения SSH туннелирования нужно ввести адрес и порт самого SSH-сервера в разделе «Session »:
Дистанционное перенаправление портов: открываем доступ к локальным ресурсам на удалённой системе
«Дистанционное перенаправление портов » — ситуация, противоположная локальному перенаправлению, и используется не так часто. Она позволяет открывать доступ к ресурсам на локальном ПК через SSH-сервер . Предположим, что на локальном ПК настроен веб-сервер. Но ваш ПК защищён сетевым экраном, который не пропускает входящий трафик на сервер.
Если есть доступ к удалённому SSH-серверу , можно подключиться к этому SSH-серверу и использовать дистанционное перенаправление портов. Ваш SSH-клиент укажет серверу перенаправлять трафик с определённого порта – скажем, 1234 – на SSH-сервере на указанный адрес и порт на вашем ПК или внутри локальной сети. Когда кто-то подключается к порту 1234 на SSH-сервере , этот трафик автоматически «туннелируется » по SSH-соединению . Любой, кто подключается к SSH-серверу , сможет получить доступ к серверу, запущенному на вашем ПК. Это достаточно эффективный способ обхода фаерволов.
Чтобы воспользоваться дистанционным туннелированием IP , используйте ssh-команду с аргументом —R . Синтаксис здесь будет практически таким же, как и в случае с локальным перенаправлением:
ssh -R remote_port:local_address:local_port [email protected]
Предположим, что нужно создать серверное приложение, прослушивающее порт 1234 на вашем ПК. Оно доступно через порт 8888 на удалённом SSH-сервере . Адрес SSH-сервера ssh.youroffice.com , а ваше имя пользователя на SSH-сервере bob . Значит, команда будет следующей:
ssh -R 8888:localhost:1234 [email protected]
Затем кто-то может подключиться к SSH-серверу через порт 8888 , и это подключение будет туннелировано на серверное приложение, запущенное на порте 1234 ПК , с которого вы подключались:
Чтобы сделать это в PuTTY для Windows , выберите опцию Connection > SSH > Tunnels . Далее – опцию «Remote ». В поле «Source Port » укажите удалённый порт. В поле «Destination » введите целевой адрес и порт в формате локальный_адрес:локальный_порт .
Например, если нужно настроить SSH-тоннель , как это сделано выше, то укажите 8888 в качестве порта-источника и localhost:1234 в качестве целевого адреса. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение . До подключения нужно будет ввести адрес и порт самого SSH-сервера в разделе «Session ».
После этого пользователи смогут подключаться к порту 8888 на SSH-сервере и их трафик будет передаваться на порт 1234 на вашей локальной системе:
По умолчанию, удалённый SSH-сервер будет слушать только подключения с того же хоста. Другими словами, доступ будет только у людей из той же системы, на которой запущен SSH-сервер . При туннелировании трафика так делается в целях безопасности.
Нужно включить опцию «GatewayPorts » в sshd_config на удалённом SSH-сервере , если хотите изменить эти настройки.
Динамическое перенаправление портов: используем SSH-сервер в качестве прокси
Также существует «динамическое перенаправление портов », которое работает по тому же принципу что прокси или VPN-сервер . SSH-клиент создаёт SOCKS-прокси , который можно настраивать под собственные приложения. Весь трафик, отправляемый через прокси, будет отправляться через SSH-сервер . Принцип здесь схож с локальным перенаправлением – берётся локальный трафик, отправленный на определённый порт на вашем ПК, и перенаправляется через SSH-соединение на удалённый адрес.
Предположим, что вы используете общедоступную Wi-Fi сеть. Но хочется делать это безопасно. Если у вас есть доступ к SSH-серверу из дома, то можно подключиться к нему и использовать динамическое перенаправление. SSH-клиент создаст SOCKS-прокси на вашем ПК. Весь трафик, отправленный на этот прокси, будет отправляться через подключение к SSH-серверу . Никто из тех, кто использует общедоступную Wi-Fi сеть, не сможет отслеживать ваши перемещения в сети или закрывать доступ к сайтам. С перспективы сайтов, которые посещаете, будет казаться, что вы заходите на них с домашнего ПК.
Или же может понадобиться подключиться к медиа-серверу, находящемуся в вашей домашней сети. В целях безопасности, к интернету подключен только ваш SSH-сервер . При этом вы не разрешаете подключаться к медиа-серверу через интернет. В таком случае можно включить динамическое перенаправление портов, настроить SOCKS-прокси в браузере и затем подключаться к серверам, работающим в домашней сети, через браузер, как будто вы сидите дома.
Например, если медиа-сервер находится по адресу 192.168.1.123 в вашей домашней сети, то можно добавить адрес 192.168.1.123 в любое приложение при помощи SOCKS-прокси и получить доступ к медиа-серверу, как будто вы находитесь внутри домашней сети.
Чтобы воспользоваться динамическим перенаправлением, запустите ssh-команду с аргументом —D :
ssh -D local_port [email protected]
Предположим, что у вас есть доступ к SSH-серверу по адресу ssh.yourhome.com , а ваш логин на SSH-сервере – bob . Нужно использовать динамическое перенаправление для того, чтобы открыть SOCKS-прокси по порту 8888 на текущем ПК. Тогда команда для SSH туннелирования будет выглядеть следующим образом:
ssh -D 8888 [email protected]
После этого можно настроить браузер или другое приложение на использование локального IP-адреса (127.0.0.1) и порта 8888 . Весь трафик этого приложения будет перенаправляться через туннель:
Чтобы сделать это в PuTTY для Windows , выберите опцию Connection > SSH > Tunnels . Далее – опцию «Dynamic ». В поле «Source Port » укажите локальный порт.
Например, если вам нужно настроить SOCKS-прокси на порт 8888 , то введите 8888 в качестве порта-источника. После этого нажмите «Add » и затем «Open », чтобы открыть SSH-подключение .
Любому системному администратору приходится постоянно работать удаленно, но случаются ситуации, когда нужно срочно подключиться к узлам внутренней сети, доступ к которым снаружи закрыт. Хорошо если есть доступ на другие узлы данной сети, но бывает, что доступа из глобальной сети нет вообще, в этих случаях обычно используют TeamViewer или аналогичное ПО, но если к такой сети есть возможность подключиться через SSH или установить соединение с промежуточным SSH-сервером, то можно быстро и просто организовать доступ без привлечения стороннего ПО.
Очень часто, когда речь заходит об удаленном доступе к сетям с низким уровнем безопасности, первое что приходит на ум - это VPN, однако ради административных соединений поднимать VPN не всегда целесообразно, особенно если речь идет об аутсорсинге или "приходящем админе". Кроме того, не всегда условия связи позволяют поднять устойчивое VPN-соединение, особенно если приходится использовать мобильные сети.
При этом практически в любой сети можно найти устройство или сервер, к которому возможен доступ по SSH, либо имеется такой промежуточный сервер, например, VPS в глобальной сети. В таком случае отличным решением будут SSH-туннели, которые позволяют с легкостью организовывать безопасные каналы связи в том числе и через промежуточные узлы, что снимает проблему наличия выделенного IP-адреса.
Строго говоря, SSH-туннели не являются полноценными туннелями и это название следует рассматривать как сложившееся в профессиональной среде устойчивое наименование. Официальное название технологии - SSH Port Forwarding - это опциональная возможность протокола SSH, которая позволяет передать TCP-пакет с одной стороны SSH-соединения на другую и произвести в процессе передачи трансляцию IP-заголовка по заранее определенному правилу.
Также, в отличие от VPN-туннелей, которые позволяют передавать любой трафик в любом направлении, SSH-туннель имеет точку входа и может работать только с TCP-пакетами. По факту это больше всего похоже на проброс портов (о чем и говорит официальное название), только поверх протокола SSH.
Рассмотрим работу SSH-туннеля более подробно. В качестве примера возьмем классический случай обеспечения доступа к некоторому удаленному серверу по протоколу RDP.
Допустим, что в удаленной сети существует целевой сервер с адресом 192.168.0.105, но доступа к нему из внешней сети нет, единственное устройство к которому мы можем подключиться - это маршрутизатор с адресом 192.168.0.1 с которым мы можем установить SSH-соединение.
Остановимся на очень важном моменте: все параметры SSH-туннеля устанавливает инициатор подключения, он же SSH-клиент , вторым концом туннеля всегда является сервер, к которому мы подключаемся, он же SSH-сервер . В данном контексте следует понимать клиент и сервер сугубо как стороны соединения, например, в роли SSH-клиента может выступать VPS-сервер, а в роли SSH-сервера ноутбук админа.
Точка входа может располагаться с любой стороны соединения, там открывается TCP-сокет с указанными параметрами, который будет принимать входящие подключения. Точка выхода принимать соединения не может, а только маршрутизирует пакеты в соответствии с правилами трансляции.
Рассмотрим схему выше. Мы установили SSH-туннель с локальной машины к удаленному маршрутизатору, указав локальную точку входа 127.0.0.1:3389 и правило трансляции 192.168.0.105:3389 . Еще раз обращаем ваше внимание, что правило трансляции не указывает на точку выхода, а определяет узел, которому будут посланы пакеты по выходу из туннеля. Если вы укажете недействительный адрес, либо узел не будет принимать соединения, то SSH-туннель установится, но доступа к целевому узлу не будет.
Согласно указанной точке входа служба SSH создаст локальный TCP-сокет, который будет ожидать подключений на порт 3389. Поэтому в окне RDP-подключения указываем в качестве назначения localhost или 127.0.0.1 , RDP-клиент открывает динамический порт и отсылает пакет с адресом назначения 127.0.0.1:3389 и адресом источника 127.0.0.1:61256 , о реальном назначении получателя пакета ему ничего не известно.
С точки входа данный пакет будет отправлен на другую сторону SSH-туннеля, а адрес назначения согласно правила трансляции будет изменен на 192.168.0.105:3389 , и SSH-сервер примет дальнейшее решение согласно собственной таблицы маршрутизации, заменив адрес источника на свой собственный, в противном случае целевой сервер попытается отправить ответный пакет на локальный адрес.
Таким образом RDP-клиент работает с локальным сокетом и далее этого узла RDP-пакеты не уходят, внутри туннеля они передаются поверх протокола SSH в зашифрованном виде, а вот между SSH-сервером и RDP-сервером в сети 192.168.0.0 устанавливается обычное RDP-соединение, в открытом виде. Это следует учитывать при использовании небезопасных протоколов, твердо запомнив, что если правило трансляции указывает за пределы узла с точкой выхода, то такое соединение (между точкой выхода и узлом назначения) не защищается посредством SSH.
Разобравшись в общих чертах как работают SSH-туннели перейдем к практическим вариантам их использования, в качестве платформы мы будем рассматривать Linux-системы семейства Debian/Ubuntu, но все нижеизложенное с небольшими поправками будет справедливо для любой UNIX-подобной системы.
SSH-туннель с локальной точкой входа
Туннели с локальной точкой входа используются для получения доступа к узлам в удаленной сети при возможности установить SSH-соединение с одним из ее узлов, что предполагает наличие у удаленной сети выделенного IP-адреса.
Мы будем рассматривать все тот-же вариант, RDP-подключение к удаленному серверу, оранжевым пунктиром на схеме обозначено безопасное SSH-соединение, синими стрелками - обычное TCP-подключение.
В самом простом варианте мы просто устанавливаем соединение с клиентского ПК к маршрутизатору в удаленной сети, указывая в правиле трансляции целевой узел:
Ssh -L 127.0.0.1:3389:192.168.0.105:3389 [email protected]
Ключ -L указывает на то, что точка входа расположена локально, затем через двоеточие указываются адрес и порт точки входа и адрес, порт правила трансляции. Точкой выхода является узел, к которому мы подключаемся, т.е. rt.example.com .
Если в вашей сети также присутствует маршрутизатор (или иной Linux-сервер), то можно сделать точкой входа его, что позволит подключаться к удаленному серверу любому RDP-клиенту из локальной сети. В теории для этого следует поднять такой туннель:
Ssh -L 192.168.31.100:3389:192.168.0.105:3389 [email protected]
В таком случае служба SSH должна будет открыть TCP-сокет на интерфейсе 192.168.31.100, но на практике этого не произойдет. Это связано с особенностями реализации OpenSSH, который является стандартом для подавляющего большинства UNIX-подобных систем.
По умолчанию OpenSSH открывает точку входа только на локальном интерфейсе . В этом несложно убедиться:
Для того, чтобы предоставить доступ к TCP-сокету с внешних интерфейсов следует использовать ключ -g , либо добавить в конфигурационный файл /etc/ssh/sshd_config опцию:
GatewayPorts yes
Однако после этого сокет будет принимать соединения с любого сетевого интерфейса инициатора:
Это значит, что порт 3389 будет открыт на всех сетевых интерфейсах, поэтому если точка входа является пограничным устройством, то следует ограничить доступ к сокету, например, средствами iptables. Для примера заблокируем доступ из внешней сети (интерфейс eth0):
Iptables -A INPUT -i eth0 -p tcp --dport 3389 -j DROP
Таким образом рабочий туннель следует поднимать командой:
Ssh -L -g 3389:192.168.0.105:3389 [email protected]
Обратите внимание на еще один момент: если точка входа совпадает с локальным интерфейсом, а для OpenSSH это всегда так, то его можно опустить, сразу начиная команду с порта точки входа.
Также мы советуем использовать по возможности ключ -g , а не добавление опции в конфигурационный файл, так как в последнем случае вы рискуете, забыв об этой настройке, открыть наружу доступ к незащищенным службам удаленной сети.
SSH-туннель с удаленной точкой входа
Туннель с удаленной точкой входа позволяет наоборот опубликовать любую локальную службу в удаленной сети, одно из наиболее частых применений - доступ в сети без выделенного IP-адреса, однако это требует "белый" IP со стороны сети администратора.
В первом варианте удаленный сервер сам устанавливает подключение с маршрутизатором локальной сети. Это можно сделать простой командой:
Ssh -R 3389:127.0.0.1:3389 [email protected]
Ключ -R указывает открыть точку доступа с удаленной стороны туннеля, затем указываем порт для TCP-сокета и трансляцию, так как приходящие на точку выхода пакеты следует обрабатывать локально, то также указываем локальный интерфейс.
Внимательный читатель заметит, что мы не указали ключ -g , да, это так. Дело в том, что для туннелей с удаленной точкой входа данный ключ неприменим и следует использовать опцию
GatewayPorts yes
на стороне SSH-сервера.
В целях безопасности мы рекомендуем применять данную настройку с политикой по-умолчанию DROP для цепочки INPUT, это позволит избежать случайной публикации на внешнем интерфейсе внутренних служб и ресурсов. В минимальной конфигурации следует добавить в самое начало цепочки INPUT четыре правила:
Iptables -P INPUT DROP
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Первое из них задает запрещающую политику по умолчанию для входящих пакетов, второе разрешает входящие пакеты, инициированные самим хостом (ответы на исходящие пакеты), а третье разрешает все подключения из локальной сети. Наконец четвертое правило открывает 22 порт для входящих SSH-подключений, таким же образом можно открыть любой другой порт для внешних подключений.
Второй вариант представленный на схеме предусматривает, что SSH-туннель поднимают маршрутизаторы сетей, в этом случае команда будет выглядеть следующим образом:
Ssh -R 3389:192.168.0.105:3389 [email protected]
Снова обратим ваше внимание, что точка входа у нас располагается на противоположной стороне туннеля, поэтому трансляция указывается для стороны инициатора туннеля, т.е. в данном случае SSH-клиент устанавливает два соединения: одно SSH с rt.example.com, а второе RDP c 192.168.0.105, тогда как при туннеле с локальной точкой входа инициатор устанавливает единственное соединение с SSH-сервером.
Двойной SSH-туннель
Достаточно часто возникают ситуации, когда требуется соединить два узла не имеющих выделенных IP-адресов. В этом случае обычно используется TeamViewer или аналогичное стороннее ПО, но если у вас есть доступный сервер с выделенным IP-адресом, то можно поступить проще.
Обратим внимание на схему выше. SSH позволяет строить целые цепочки туннелей, соединяя точку входа следующего с точкой выхода предыдущего. Таким образом, чтобы получить туннель с ПК админа на RDP-сервер, при этом оба узла с "серыми" IP-адресами, нам нужно создать два туннеля с промежуточным узлом.
Туннель с локальной точкой входа на ПК админа:
Ssh -L 3389:127.0.0.1:3390 [email protected]
И туннель с удаленной точкой входа на RDP-сервере:
Ssh -R 3390:127.0.0.1:3389 [email protected]
Мы специально указали на удаленном сервере нестандартный порт для большей наглядности и теперь давайте посмотрим, как все это работает. Начнем с RDP-сервера, он поднимает туннель с удаленной точкой входа, открывая на промежуточном сервере TCP-сокет, который будет принимать подключения на порт 3390, в качестве трансляции укажем сам RDP-сервер - 127.0.0.1:3389, т.е. все пришедшие на вход этого туннеля пакеты будут направлены на локальный порт 3389.
Туннель с локальной точкой входа на ПК админа открывает локальный сокет на порт 3389, куда будет подключаться RDP-клиент, в качестве трансляции мы указываем точку входа второго туннеля - 127.0.0.1:3390.
Как мы уже говорили, никаких ограничений на количество туннелей в цепочке нет, однако на практике потребность в туннелях с более чем одним промежуточным узлом возникает достаточно редко. При этом следует помнить, что с каждым новым промежуточным узлом будет падать надежность всей схемы, а итоговая скорость будет упираться в скорость самого медленного участка пути.
Динамический SSH-туннель
В отличие от рассмотренных выше динамический туннель работает иначе, он открывает на хосте локальный TCP-сокет, который можно использовать как SOCKS4/SOCKS5 прокси для выхода в интернет через удаленный SSH-сервер. Это может быть полезно для обхода некоторых ограничений, когда поднимать полноценный VPN в другой юрисдикции нет необходимости, а использовать публичные прокси или VPN нельзя по соображениям безопасности.
Такой вид туннеля особенно удобен, если требуется разовый выход в интернет с другого узла. Простой пример: мой хороший знакомый привез из Штатов два операторских контрактных iPhone и попросил их разблокировать. Сложностей данная операция не таит, если условия контракта не были нарушены, то достаточно зайти на сайт оператора и заполнить заявку на разблокировку. Но проблема оказалась в том, что у оператора T-Mobile доступ к данному разделу сайта был доступен только для жителей США, а соединения с публичных прокси и VPN отвергались как небезопасные.
Динамический SSH-туннель позволил быстро решить эту проблему используя VPS в Штатах. Чтобы создать такой туннель введите команду:
Ssh -D 1080 [email protected]
Где 1080 - порт на котором будет доступен наш SOCKS-прокси. Остается только настроить браузер на использование локального прокси-сервера.
Еще одним плюсом подобного метода является то, что прокси-сервер существует только локально на вашем хосте, никаких дополнительных портов во внешнюю сеть открывать не надо, а между клиентом и сервером существует только SSH-соединение.
Это позволяет скрыть от постороннего наблюдателя характер вашей интернет-деятельности, что может быть полезно в публичных сетях, где есть веские основания предполагать, что трафик может быть перехвачен и проанализирован третьими лицами. В этом случае SSH-туннель обеспечивает надежное шифрование передаваемых данных в небезопасной сети, но это требует полного доверия к тому серверу, через который вы выходите в интернет.
Несколько слов о безопасности
Хоть это и выходит за рамки темы статьи, мы не могли упомянуть об одной особенности, которая может преподнести достаточно неприятные сюрпризы. Подняв SSH-туннель одной из приведенных выше команд, вы получите кроме туннеля также открытую консоль на сервере, к которому подключаетесь. Внимательно посмотрите на строку приглашения на скриншоте ниже.
Вверху мы видим приглашение локального хоста, а внизу, после поднятия туннеля - уже удаленного сервера. Это удобно, если нужно проверить канал связи или выполнить определенные настройки с удаленной стороны, но в обычной жизни это может привести к серьезным неприятностям, если вы забудете или не обратите внимание на то, к какому серверу подключена консоль и выполните на удаленном сервере команды, предназначенные локальному узлу, особенно если вы подключаетесь с правами суперпользователя.
Поэтому после того, как вы проверили работоспособность туннеля запускать его следует с ключом -N, который запрещает выполнение команд на удаленном сервере, например:
Ssh -N -L -g 3389:192.168.0.105:3389 [email protected]
И, конечно же, не следует использовать для подключения к серверу аккаунт суперпользователя, лучше всего заведите для этих целей обычную учетную запись.
SSH-туннели в Windows
На протяжении всей статьи мы рассматривали SSH-туннели на примере Linux-систем и у пользователей Windows могло сложиться впечатление, что им данные возможности недоступны. Но это не так, под Windows существует множество SSH-клиентов, которые поддерживают создание тоннелей. Мы будем рассматривать наиболее популярного из них - PuTTY . Также под Windows можно запустить и SSH-сервер, но это требует определенной квалификации и не всегда можно добиться стабильной работы, поэтому этот вариант мы рассматривать не будем.
Откроем PuTTY и в левой части дерева перейдем в Connection - SSH -Tunnels :
Перед нами откроется следующее окно, основные настройки туннеля сосредоточены внизу, и мы выделили их красной рамкой. Source port - предназначен для указания порта точки входа, которая всегда располагается на локальном интерфейсе (127.0.0.1). Destination - трансляция, т.е. куда будут отправлены пакеты с точки выхода. Радиопереключатели Local - Remote - Dynamic задают тип туннеля и аналогичны ключам -L , -R и -D .
После того, как вы заполнили все необходимые поля можно добавить туннель кнопкой Add . Чтобы разрешить внешним узлам доступ к локальному сокету точки входа установите галочку Local ports accept connections from other hosts . В данном случае следует также ограничить доступ к открытым портам средствами брандмауэра Windows или стороннего сетевого фильтра.
Сервер, к которому мы подключаемся, задается в ином разделе - Session , который знаком каждому, кто хоть раз использовал PuTTY, там же вы можете сохранить параметры сессии для дальнейшего использования.
Как видим, SSH дает в руки администратора гибкий и мощный инструмент для безопасного удаленного доступа без необходимости открытия портов или организации VPN-каналов. Надеемся, что данный материал окажется вам полезен и позволит освоить новые возможности на первый взгляд привычных инструментов.
Теги:
Согласитесь, ни одну работу нельзя качественно сделать вслепую, не видя результатов своих действий и не оценивая динамику изменений.
Так и при продвижении важна регулярная проверка позиций сайта по ключевым словам - это поможет корректировать текстовую оптимизацию на страницах или отслеживать, в правильном ли направлении идет процесс оптимизации в «не сезон», когда трафик падает.
Отследить позиции можно тремя способами:
- онлайн-сервисами;
- скачав специальные десктопные и мобильные приложения;
- вручную.
Чем примечателен каждый из способов проверить позицию сайта по ключевым словам - разберемся дальше с фактами, цифрами и примерами.
Также узнаем, какие сервисы позволяют проверить позиции сайта бесплатно , и какие ограничения они имеют.
Ручная проверка
Но сначала включите режим инкогнито в браузере (поскольку поисковые системы персонализируют выдачу под вашу историю запросов, местонахождение и другие факторы):
- в Firefox: Меню - Инструменты - Начать приватный просмотр (или просто комбинация Ctrl+Shift+P);
- в Google Chrome: Меню - Новое окно в режиме инкогнито (Ctrl+Shift+N);
- в Opera: Меню - Создать приватное окно (Ctrl+Shift+N).
Повторимся!
Этот метод наименее точный и его следует применять только в случае перепроверки результатов работы автоматизированных методов определения позиций сайта или для беглого анализа 3–5 поисковых запросов.
Профессионалы никогда не используют данный метод как основной.
Для проверки в Яндекс
В Yandex для проверки ранжирования (то есть распределения страниц по позициям в поисковой системе) в новом окне откройте поисковик Яндекс, введите ключ и нажмите кнопку поиска.
Если интернет-площадка продвигается в определенном регионе (а вы территориально в другом регионе), также не забудьте задать его в Яндексе (кнопка Настройка - Изменить город).
Для проверки в Google
В Google сама процедура аналогична. Но обратите внимание, что он может отслеживать местоположение и менять результаты поиска даже при просмотре через режим инкогнито.
Это видно внизу страницы поиска Google, как на скрине ниже. Чтобы исключить этот фактор, нажмите на надпись «Учитывать мое местоположение» - функция отключится.
После нажмите Ctrl+F5, чтобы очистить кэш и обновить страницу, и получите достоверный результат.
Для ручного определения позиции в Google US
Войдите в браузер Opera и включите VPN.
Так можно достичь наибольшей достоверности результатов.
Платные online-сервисы
Если необходимо отслеживать результат по большому количеству ключей (от 15 и выше), ручная проверка ранжирования начинает отнимать слишком много времени и не точны.
Тут пригодятся платные онлайн-сервисы. Некоторые из них могут только проверить позиции, другие же обладают расширенным функционалом для комплексного аудита и продвижения.
Самые популярные многофункциональные сервисы (сравнение)
Сервис | Рынок | Платная версия | Пробная версия | Бесплатная версия |
---|---|---|---|---|
СНГ, US, EU | Оплата за проверку - от 0,001$ за 1 | Есть | С ограничением функционала | |
СНГ | От 0,05 рублей за 1 позицию | - | С ограничением функционала (до 200 проверок) | |
СНГ, US, EU | Тариф 19$/месяц (с доп.функционалом) | - | С ограничением функционала (до 10 ключевиков) | |
СНГ, US, EU | Тарифы от 999 рублей/месяц | Есть | - | |
СНГ, US, EU | от 0,03 рублей за 1 позицию | Есть | Есть | |
СНГ, US, EU | От 3,29$/месяц | - | - | |
СНГ, US, EU | От 0.05 рублей за 1 позицию | - | С ограничением функционала | |
СНГ | От 0.025 рублей за 1 позицию | - | С ограничением функционала (100 позиций) |
*все цены указаны на январь 2018 года
Детальнее про каждый из них:
Бесплатные online-сервисы от Яндекс и Google
Простые сервисы с базовыми возможностями есть у самих Yandex и Google - это инструменты Вебмастер. Они полностью бесплатны, что плюс, но не 100% точные, что минус.
Данные туда могут «подтягиваться» с опозданием, поэтому динамика изменений будет не вполне достоверной. Зато общую картину вы увидеть сможете, поэтому для своего ресурса это вполне достойный вариант. А вот специалистам с массой проектов лучше обратить внимание на любой из сервисов выше.
Михаил Сливинский Руководитель службы по работе с вебмастерами в ЯндексПосле публикации этой статьи, мы получили официальный комментарий от представителей Яндекс.
Поясню и уточню про Яндекс.Вебмастер:
- В «последних запросах» - список недавних запросов с кликами/показами/ctr, но без посуточной динамики
- В «истории запросов» - есть динамика и по 3000 популярных запросов, и по группам
- «Данные туда могут «подтягиваться» с опозданием, поэтому динамика изменений будет не вполне достоверной.» - это неверный вывод. Данные из поисковых логов, т. е. именно так видели сайт пользователи. Позиции часто дробные именно потому, что даже в течение одного дня пользователи из одного региона могли видеть сайт на разных позициях. Действительно, на сбор данных нужно время, поэтому есть задержка в пределах нескольких дней. Но от этого данные не становятся недостоверными, разумеется. И мы работаем над уменьшением этого времени.
Теперь давайте детально посмотрим на каждый из Вебмастеров.
Отслеживание позиций в Яндекс Вебмастере
В первую очередь он предназначен для сбора семантического ядра, но может использоваться и как проверки ранжирования.
Сбор позиций проводится в Яндекс и Google. Ключи можно добавить вручную (Меню Операции с таблицей - Добавить) или скопировать из других вкладок программы.
Для настройки региональности используйте кнопки в панели состояния (внизу окна). Для начала сбора выберите Яндекс или Google в меню Релевантные страницы, позиции и анализ.
Кроме KeyCollector можно использовать:
Desktop-программы актуальны, если не хватает обычных сервисов, перечисленных выше. Однако требуют более высокого уровня знаний.
Англоязычные online- и десктоп-сервисы для мониторинга позиций
Среди бесплатных англоязычных программ стоящей считается Rankware :
- поддерживается ОС Windows и Macintosh;
- позволяет провести отслеживание позиций сайта без ограничений по числу запросов;
- бесплатно работает для одного проверяемого веб-ресурса;
- имеет возможность расширить функционал при покупке платной лицензии;
Вот так выглядит интерфейс последней версии программы:
Англоязычные инструменты съёма позиций сайта (сравнение)
Сервис | Рынок | Платная версия | Пробная версия | Бесплатная версия |
---|---|---|---|---|
US | От 16$/месяц | Есть, 2 недели | - | |
US | От 49,95$/месяц | Есть, 30 дней | - | |
US | От 10$/месяц | - | С ограничением функционала (до 10 позиций) | |
US | 29$/месяц | Есть, 2 недели | - | |
US | 124,75$ | - | - | |
US | 69,95$/месяц | - | Есть |
Детальнее про каждый из них:
1. SerpBook.com . Доступна API-интеграция, работа с ключевыми словами, настройка локального поиска, нужная нам проверка мест в поисковой выдаче. Автоматически собирает данные и формирует отчет, что поможет отследить динамику ранжирования. Сервис платный, от 16 $/месяц, есть двухнедельный trial-режим.
2. MicroSiteMasters.com при проверке ранжирования показывает текущие позиции в Google, плюс изменения за заданный период (повышение или понижение страницы в поисковой выдаче). От 49,95 $/месяц, есть 30-дневный тестовый режим.
3. SerpFox.com . Разработчики заявляют, что их технологии проверки одни из наиболее совершенных и точных. Есть настраиваемые отчетности, сбор данных за прошедшее время (к примеру, вы можете посмотреть динамику ранжирования за прошлый год и до нынешнего момента для более масштабного анализа). От 10 $/месяц, бесплатные проверки доступны для 10 позиций.
4. RankWatch.com . Также есть архив для просмотра данных за прошедшее время, продвинутые отчеты с визуализацией, e-mail-уведомления, настройка локального поиска и не только. От 29 $/месяц, есть двухнедельный trial-режим.
5. Link-assistant кроме мониторинга ранжирования работает для аудита сайтов, проверки SEO-параметров и не только. Съем позиций осуществляется в Google, Yahoo, Bing. Позволяет делать проверки вручную, еженедельно или трижды в день. Количество ключевиков не ограничено. Стоимость лицензии - от 124,75 $.
6. SeoProfiler служит для проверки ранжирования (в том числе анализа конкурентов), плюс есть инструменты для работы со ссылками, аудита веб-ресурсов, SMM и не только. Новички могут протестировать сервис бесплатно, платные тарифы - от 69,95 $/месяц.
Мобильные приложения на iOS и Android для мониторинга позиций
Если вы работаете со смартфона или планшета, удобным вариантом будет использование приложений для Android или iOS. Существуют приложения платные, и бесплатными, при этом первых, что закономерно, больше, а функционал у них обширнее и удобнее.
Примеры приложений:
SEO Watcher (на Android), который даже в бесплатной базовой версии позволяет провести анализ позиции сайта в Гугл и Яндекс по 5 поисковым запросам.
SEO Serp Mojo (на Android) дает возможность проверять неограниченное количество URL, ключевых слов, видеть историю ранжирования для всех отслеживаемых ключевиков, работает с Google и даже Bing с Yahoo, которые на СНГ-рынке не особо актуальны.
SEO Tool - «яблочный» собрат приложений выше. Он работает с двойкой самых крупных поисковиков у нас, плюс с Mail и парой других менее популярных систем.
Возможности приложений практически одинаковы - все они работают по одному и тому же принципу. Для проверки нужно выбрать количество поисковых запросов, ключевые слова, требуемый поисковик и URL вашего сайта.
Из всех приложений в Apple Store и Play Market лучше выбирать те, которые находятся в ТОПе - это гарантирует корректную работу и безопасность установки. Для поиска англоязычных программ используйте слова «rank tracker» или «ranking tracker».
Итоги
Если вы только начинаете углубляться в тонкости продвижения или владеете небольшим интернет-ресурсом, рекомендуем начинать с бесплатных сервисов Яндекс и Google или тестовых режимов на платных онлайн-ресурсах.
Так вы разберетесь в стандартных функциях, инструментах и показателях без финансовых затрат. Уже потом, когда базовый функционал исчерпает себя и данных с бесплатных сервисов перестанет хватать, можно постепенно пробовать платные версии для продвинутых пользователей и масштабного анализа.
Мониторили позиции своего сайта одним из сервисов выше? Поделитесь опытом и напишите фидбек в комментариях!
Дорогие друзья, сегодня я решил собрать воедино все программы и сервисы для проверки позиций сайта. На систематизацию материала и написание этого поста у меня ушло 5 дней.
Мне время от времени пишут вопросы о том, каким способом можно отслеживать позиции по продвигаемым поисковым запросам и каким инструментом для мониторинга пользуюсь я. Чтобы каждый раз не отвечать и просто давать ссылку на свой блог, я решил сделать сегодняшнюю подборку. Лень - двигатель прогресса 😉 !
Есть две большие группы инструментов для мониторинга позиций - программы и сервисы. Есть еще скрипты и приложения для Android и iOS. И есть еще англоязычные инструменты. О них я тоже расскажу.
Программы для проверки позиций сайта
Это одна из немногих SEO программ, которая работает как на Windows, так и на MacOS и Linux. Приведу скриншот одного из отчетов Rank Tracker:
Следует учесть, что помимо основной стоимости, за обновления программы нужно ежегодно доплачивать. C другой стороны, это дает гарантию, что софт не будет заброшен разработчиками и будет развиваться и совершенствоваться дальше.
https://www.whitespark.ca/local-rank-tracker - этот сервис предлагает интересные графики с динамикой позиций, а также позволяет отслеживать позиции по городам: