Туннели через SSH или «VPN для бедных»

LEMP — стек технологий, используемый для развертывания веб-приложений. В отличии от LAMP, в LEMP вместо Apache устанавливается Nginx.

Шифрование HTTP-трафика

Еще одна вещь, понятная без лишних слов. Но если в вашей компании действует какая-либо политика относительно ИТ, проверьте, не нарушаете ли вы ее. Я пускаю HTTP-трафик через SSH в тех случаях, когда не доверяю точке доступа. Под Android я использую приложение SSHTunnel, а на ноутбуке — такую команду:

ssh -D 5222 [email protected] -N

После подключения настройте свой браузер или другую программу, способную использовать прокси на адрес localhost:5222. Таким образом будет создан динамический проброс порта и весь трафик пойдет через SSH-сервер, одновременно шифруясь и обходя фильтрование по содержимому

Подключение репозитория MongoDB

MongoDB имеет свой собственный репозиторий, откуда и выполняется установка. В стандартных репозиториях пакета для установки данного сервера БД, нет. Создадим файл для репозитория и добавим в него данные для подключения:

# nano /etc/

Содержимое файла будет следующее:

Подключение репозитория MongoDB

[mongodb-org-4.2] name=MongoDB Repository baseurl=$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=

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

После создания repo файла с параметрами репозитория, можно приступать к установке пакетов.

этап. Подготовка сервера

Все действия по установке производятся на сервере через подключение по SSH.

Создание пользователя

Все действия по установке LEMP рекомендуем выполнять не через пользователя root. Рекомендуем создать пользователя с sudo-правами. Так вы дополнительно обезопасите свой сервис и избежите случайных ошибок, которые могут сломать вашу операционную систему.

Чтобы создать пользователя, введите команду:

Где UserName — имя нового пользователя.

Система попросит ввести пароль для нового пользователя и дополнительную информацию:

этап. Подготовка сервера

Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:

Где UserName — имя созданного ранее пользователя.

Готово. Новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.

Обновление операционной системы

Прежде чем установить на Ubuntu LEMP, нужно обновить операционную систему до актуального состояния с помощью команды:

Подключение к серверу MySQL с помощью MySQL Workbench

После установки пакета MySQL-Workbench у Вас в меню Mint появился пункт «Программирование», в котором есть программа «MySQL Workbench». Для подключения к серверу MySQL запускаем данную программу.

После запуска в MySQL Workbench у нас уже будет по умолчанию настроено локальное подключение от имени пользователя root, но работать от имени этого пользователя крайне не рекомендуется. Поэтому мы только сейчас подключимся от имени root, создадим БД и пользователя, а потом уже будем подключаться от имени созданного нами пользователя. Сейчас я сразу покажу Вам, как можно создавать новое подключение, для этого нажимаем на иконку плюсик «+».

Читайте также:  Как отключить всплывающие уведомления в Chrome и Firefox

Вводим необходимые параметры (имя подключения, хост, порт, учетную запись), я указываю их на примере пользователя root (для проверки доступа можете нажать на кнопку «Test Connection») и нажимаем «OK».

После этого щелкаем на созданное подключение.

Система спросит пароль, мы вводим пароль и жмем «OK». После чего мы подключимся к серверу MySQL.

Создание базы данных и таблицы в MySQL, а также вставка данных в таблицу

Теперь давайте для примера создадим базу данных с названием TestBase. Для этого пишем инструкцию CREATE DATABASE.

А потом давайте создадим таблицу TestTable и вставим в нее одну строку (предварительно перейдя в нужную БД).

#Создание базы данных CREATE DATABASE TestBase; #Подключаемся к нужной базе данных USE TestBase; #Создаем таблицу CREATE TABLE TestTable (id INT, comment VARCHAR (100)); #Вставляем данные в таблицу INSERT INTO TestTable (id, comment) VALUES (1, ‘Текст’); #Осуществляем выборку данных SELECT * FROM TestTable

Заметка! Если Вас интересует язык SQL, рекомендую пройти мой онлайн-курс по основам SQL, который ориентирован на изучение SQL как стандарта, таким образом, Вы сможете работать в любой системе управления базами данных. Курс включает много практики: онлайн-тестирование, задания и многое другое.

Создание пользователя в MySQL

Сейчас, как я и говорил, давайте создадим нового пользователя, для того чтобы потом работать от его имени. Я для примера создам пользователя TestUser и разрешу ему подключаться с любого хоста, а также дам ему полные права на управление базой TestBase. Для этого пишем следующую инструкцию.

#Создаем пользователя CREATE USER ‘TestUser’@’%’ IDENTIFIED BY ‘Pa$$w0rd’; #Назначаем права GRANT ALL PRIVILEGES ON TestBase.* TO ‘TestUser’@’%’; #Применяем изменения FLUSH PRIVILEGES;

Где,

  • TestUser – это имя учетной записи, Вы указываете свою;
  • % — это означает, что пользователь может подключаться с любого хоста, в случае если Вы хотите, чтобы пользователь подключался только с локального компьютера, то вместо этого символа можете указать localhost;
  • Pa$$w0rd – это пароль от учетной записи (Вы указываете свой придуманный пароль);
  • ALL PRIVILEGES – означает, что мы даем пользователю полные права, в случае необходимости Вы можете указать только нужную привилегию;
  • TestBase.* — означает, что права мы даем только на определенную базу данных, в нашем случае TestBase. Для того чтобы дать права на все БД напишите *.*;
  • FLUSH PRIVILEGES – сохраняем все изменения, которые мы внесли.

Шаг 2 — Настройка плагина Remote-SSH и подключение к серверу

Теперь, когда у вас установлен плагин, вы можете настроить его для подключения к серверу. Для этого вам потребуются следующие сведения:

  • IP-адрес сервера или имя хоста.
  • Имя пользователя для подключения.
  • Закрытый ключ, который вы будете использовать для аутентификации пользователя.

Вы будете использовать эту информацию для создания файла конфигурации SSH, который Visual Studio Code может использовать для SSH для синхронизации файлов на сервере и выполнения кода от вашего имени. Вы создадите эту конфигурацию, используя Visual Studio Code.

Читайте также:  Systemd как средство диагностики неисправностей в Linux.

Теперь, когда у вас установлен плагин Remote-SSH, вы увидите небольшую зеленую коробку в нижнем левом углу интерфейса Visual Studio Code. Если навести указатель мыши на это поле, появится всплывающее сообщение Открыть удаленное окно. Кнопка выглядит как математический знак «больше» чуть ниже знака «меньше» ><, как на следующем изображении:

Нажмите кнопку, и диалоговое окно отобразится наверху в центре. Выберите Remote-SSH: открыть файл конфигурации… из списка:

Следующая подсказка спросит, какой файл конфигурации вы хотите открыть. Если вы используете Windows, то увидите два местоположения: одно в персональном каталоге пользователя и одно в месте установки SSH. Используйте файл в каталоге пользователя при настройке сервера.

Выберите файл, и ваш редактор откроет файл config. Добавьте в файл следующий код , чтобы определить подключение к серверу, заменив выделенные разделы на информацию для вашего сервера:

config

Host my_remote_server HostName your_server_ip_or_hostname User sammy IdentityFile /location/of/your/private/key

Шаг 2 — Настройка плагина Remote-SSH и подключение к серверу

Вот как работает этот файл конфигурации:

  • Host: указывает имя вашего хоста. Это позволяет использовать короткое имя или аббревиатуру вместо полного IP-адреса либо имя хоста при подключении к серверу.
  • HostName: фактическое имя хоста сервера, которое представляет собой либо IP-адрес, либо полностью квалифицированное доменное имя.
  • User: пользователь, от имени которого вы хотите выполнить подключение.
  • IdentityFile: путь к вашему закрытому ключу SSH. На системах Mac и Linux вы найдете ее в домашнем каталоге в скрытом каталоге .ssh, обычно id_rsa. Если вы используете Windows, у вас будет указано местоположение для сохранения этого файла при его создании с помощью putty-gen.

Определите соответствующие значения в вашем файле и сохраните файл.

Теперь Visual Studio Code настроен и готов подключиться к вашему серверу. Нажмите зеленую кнопку Открыть удаленное окно в нижнем левом углу и выберите Remote-SSH: подключиться к хосту…

После завершения всех этих действий все доступные и настроенные сервера появятся в выпадающем меню. Выберите из этого списка сервер, к которому вы хотите подключиться.

Если вы впервые подключились к этому серверу с компьютера, скорее всего, вы увидите диалог верификации SSH Fingerprint, как на следующем изображении:

Это необходимо, чтобы убедиться, что вы действительно подключаетесь к правильному серверу. Вы можете проверить это, войдя на свой сервер вручную и выполнив команду ssh-keygen -l -f /etc/ssh/ssh_host_ для просмотра «отпечатка пальца» сервера. Если отпечаток тот же, что указан в Visual Studio Code, то вы действительно подключаетесь к правильному серверу, т.ч. можете нажать Продолжить.

Visual Studio Code по умолчанию открывает новое окно после создания нового подключения. Появится новое окно с экраном приветствия. Вы узнаете, что подключение прошло успешно, если увидите SSH: your_ip_address_or_hostname в зеленой коробке в нижнем левом углу. Это означает, что Visual Studio Code подключен и связывается с вашим удаленным сервером.

Теперь, когда вы подключены, вы можете выполнять команды и код из редактора.

Создание дампа базы данных

Базы данных MySQL хранятся на диске в двоичном виде в файлах с данными, индексных файле и файлах, описывающих структуру таблиц. Таким образом, каждая БД MySQL хранится в своём каталоге, расположенном в /var/lib/mysql, плюс три файла для каждой таблицы и файл .opt, содержащий параметры БД.

Читайте также:  Как быстро перевести интернет-страницы с английского на русский

Конечно, можно организовать резервное копирование баз данных, путём простого копирования двоичных файлов, описанных выше, однако гораздо удобнее работать с дампами БД. Как это делается? Очень просто. MySQL имеет утилиту, называемую mysqldump. Например, чтобы сделать дамп БД wordpress_db, вы можете использовать команду:

mysqldump -u username -p wordpress_db >

которая сделает дамп БД wordpress_db в текстовом виде и сохранит его в файле . Созданный текстовый файл будет содержать SQL-инструкции, выполнив которые, можно будет воссоздать базу данных, и будет иметь больший размер, нежели размер двоичных файлов БД. Например, размер моей БД WordPress составляет 39 мегабайт, в то время как дамп этой БД получился размером в 41 мегабайт. Это несколько больше размера БД в двоичном виде, поскольку дамп содержит некоторую избыточную информацию.

Также mysqldump может создавать дампы не всей БД, а отдельных таблиц.

Восстановить БД из дампа ещё проще. Давайте представим, что необходимо восстановить базу данных с именем wordpress_db из файла , который мы создали ранее.  Всё, что нам понадобится для этого, это имя базы данных, путь к файлу дампа и имя пользователя MySQL, имеющего достаточные привилегии для этого:

mysql -u user -p wordpress_db <

База данных, дамп которой вы собираетесь загрузить, должна существовать к моменту восстановления. Так, если вы переносите базы данных с одного хоста на другой при помощи дампов, вам нужно прежде создать пустые базы данных, и только потом загружать в них дампы.

Заключение

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

Однако, в каждодневной деятельности системного администратора, который работает с корпоративными решениями (с различными серверами, локальными сетями и т.д.), выполняет множество настроек и опций, использование командной строки будет лишней тратой рабочего времени. Намного эффективней использовать настройки файла ssh_config, в чем вам и поможет наш материал, где мы постарались осветить основные параметры этого файла, а также показать примеры типовых настроек, которые вам понадобятся для работы. Использование ssh_config будет так же полезно для автоматизации работы, при написании скриптов выполняющих самостоятельно команды на удаленных серверах.

Если же у вас возникают проблемы с более сложной и индивидуальной настройкой ssh_config, то вы всегда можете обратиться за консультацией к специалистам нашей компании

Дата: Твитнуть Рекомендуемые статьи по теме:
  • Установка почтового сервера iRedMail
  • Защита сервера средством утилиты Fail2ban. Как ее настроить?
  • Как установить и настроить L2TP VPN-сервера на Ubuntu Server
  • Как мониторить сервер с помощью Zabbix?
  • Анализ работы сайта с помощью AWStats

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами: Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus