Исчерпывающее руководство по выбору хостинг-провайдера для вашего онлайн присутствия.

Статистика
Обзор Reg.ru как крупного российского регистратора доменных имен и хостинг-провайдера.
Reg.ru — один из ведущих регистраторов доменных имен и хостинг-провайдеров в России. Компания занимает крупную позицию на рынке , предоставляя широкий спектр услуг для регистрации и управления доменами, а также размещения веб-сайтов . С момента своего основания в 2006 году Reg.ru успешно развивается и завоевывает доверие клиентов .

Главная страница
Reg.ru предлагает возможность регистрации доменных имен в различных зонах верхнего уровня (TLD), включая национальные домены .ru и .рф, а также популярные международные домены . Компания обеспечивает простой и удобный процесс регистрации, который позволяет пользователям быстро и легко получить желаемое доменное имя .
Кроме того, Reg.ru предоставляет полный спектр хостинг-услуг, включая общий хостинг, виртуальные и выделенные серверы. Это позволяет клиентам выбрать наиболее подходящую опцию для их потребностей, независимо от размера и сложности их веб-проектов. Благодаря надежным серверам и высокому уровню безопасности, Reg.ru обеспечивает стабильное функционирование веб-сайтов и защиту данных пользователей.
Одним из ключевых преимуществ Reg.ru является простота использования. Компания предоставляет удобный интерфейс и интуитивно понятные инструменты для управления доменами и хостингом. ️ Это позволяет даже новичкам без технических знаний легко управлять своими веб-ресурсами.
Кроме того, Reg.ru уделяет большое внимание качеству обслуживания клиентов. ☎️ Команда поддержки Reg.ru всегда готова помочь и ответить на вопросы пользователей, предлагая профессиональное и дружелюбное обслуживание.

Обслуживание клиентов
В своем обзоре Reg.ru предлагает надежные услуги регистрации доменов и хостинга, позволяя клиентам развивать свои онлайн-проекты с уверенностью и эффективностью. С множеством довольных клиентов и впечатляющими достижениями на рынке, Reg.ru остается надежным партнером для всех, кто стремится создать успешное присутствие в сети Интернет.
Благодаря своему качеству обслуживания и надежным услугам, Reg.ru завоевало огромную популярность и признание среди широкого круга клиентов. Он привлекает как частных лиц, так и предпринимателей, а также компании разных масштабов, которые ценят его профессионализм и надежность.
Reg.ru заслужил доверие клиентов благодаря своей длительной истории успешной работы и превосходным рекомендациям от довольных пользователей. Компания стремится предоставлять высококлассные услуги, следуя современным стандартам и инновациям в сфере регистрации доменов и хостинга.
Значимость Reg.ru на рынке также обусловлена его репутацией надежного партнера и эксперта в своей отрасли. Благодаря широкому спектру услуг и опыту, Reg.ru может удовлетворить потребности клиентов различных секторов и предоставить им необходимые инструменты для успешного ведения бизнеса в онлайн-пространстве.
Компания активно следит за изменениями и трендами в индустрии информационных технологий, постоянно внедряя новые технологии и улучшения в свои услуги. Это позволяет Reg.ru оставаться конкурентоспособным и актуальным на рынке, а также предоставлять клиентам передовые решения и инструменты для развития их онлайн-проектов.
Будучи ведущим регистратором доменных имен и хостинг-провайдером в России, Reg.ru играет важную роль в развитии интернет-индустрии в стране. Компания активно участвует в социальных и профессиональных инициативах, способствуя развитию интернет-сообщества и поддерживая технологические инновации.
В целом, популярность и значимость Reg.ru на рынке являются результатом его высокого качества услуг, надежности и преданности клиентам. Компания продолжает устанавливать высокие стандарты в своей отрасли и оставаться привлекательным партнером для тех, кто ищет надежного регистратора доменов и хостинг-провайдера.
Reg.ru: Ведущий регистратор и хостинг-провайдер — история развития и путь к успеху.
Компания Reg.ru является одной из наиболее известных и успешных компаний в России, специализирующейся на предоставлении услуг регистрации доменных имен, хостинга, VPS-хостинга, SSL-сертификатов и других сопутствующих интернет-услуг. Основанная в 2006 году в Москве, Reg.ru быстро стала одним из лидеров рынка регистрации доменов и хостинг-услуг в стране.
Основатели компании Reg.ru:
Алексей Королюк считается одним из основателей компании Reg.ru, до того возглавлявший студию веб-дизайна «ЦЭТИС». Он занимал позицию генерального директора в компании и был ключевой фигурой в её развитии. Филипп Гросс-Днепров активно занимался приобретением и реализацией доменных имен в профессиональных целях и программист-разработчик Павел Студенников.
Ключевые этапы развития компании Reg.ru:
- 1. Основание и старт (2006-2007 годы): Компания Reg.ru была основана в 2006 году. С самого начала, основатели стремились создать ведущего игрока в области регистрации доменов и хостинга, ориентированного на удовлетворение потребностей как начинающих, так и опытных пользователей интернета.
- 2. Развитие услуг и технологий (2008-2012 годы): В следующие годы Reg.ru активно развивала свои услуги и сервисы. Она расширила ассортимент услуг, предоставляемых клиентам, добавив VPS-хостинг, выделенные серверы и SSL-сертификаты. Компания также инвестировала в технологические решения, чтобы обеспечить высокую производительность и безопасность своих серверов.
- 3. Партнерство и маркетинг (2013-2015 годы): Reg.ru активно устанавливала партнерские отношения с другими компаниями и организациями, что позволило ей расширить свою клиентскую базу и предложить свои услуги в широком масштабе. Компания также активно вложила средства в маркетинг и рекламу, чтобы увеличить осведомленность о своих услугах среди потенциальных клиентов.
- 4. Уделяние внимания качеству обслуживания (2016-2020 годы): Reg.ru всегда придавала большое значение качеству обслуживания клиентов. Компания создала отдел технической поддержки, работающий круглосуточно, чтобы оперативно решать вопросы и проблемы клиентов. Она также развивала образовательные ресурсы и онлайн-коммьюнити, чтобы помогать своим клиентам разобраться с использованием услуг и получать поддержку.
- 5. Признание и награды (последние годы): Благодаря своему превосходству в области обслуживания клиентов и качеству услуг, Reg.ru получила признание от различных организаций и стала лауреатом различных наград в индустрии хостинг-провайдеров.
Reg.ru достигла успеха благодаря совокупности стратегий, которые включают:
- 1. Качество услуг: Компания всегда ставила качество услуг в приоритет, предлагая стабильные и надежные хостинг-решения и обеспечивая высокий уровень технической поддержки.
- 2. Инновации: Reg.ru постоянно следила за последними технологическими тенденциями и предлагала передовые решения, чтобы удовлетворить потребности клиентов.
- 3. Клиентоориентированность: Компания стремилась понимать потребности своих клиентов и предлагать индивидуальные решения, что привлекало новых клиентов и укрепляло лояльность существующих.
- 4. Партнерство и сотрудничество: Reg.ru активно сотрудничала с другими компаниями, что способствовало расширению клиентской базы и увеличению объема предоставляемых услуг.
- 5. Маркетинг и продвижение: Компания инвестировала в маркетинговые кампании и рекламу для повышения узнаваемости бренда и привлечения новых клиентов.
Профессиональные услуги Reg.ru: регистрация доменных имен, мощный хостинг, надежные SSL-сертификаты и много других возможностей для вашего онлайн присутствия.
Reg.ru – это крупный российский регистратор доменных имен и хостинг-провайдер, предоставляющий широкий спектр услуг для пользователей. Вот подробное описание различных услуг, предоставляемых компанией:
1. Регистрация доменных имен:
Reg.ru предоставляет возможность зарегистрировать различные типы доменных имен, такие как .ru, .com, .net, .org, .info и множество других национальных и международных доменных зон. Компания имеет многолетний опыт работы с доменами и является аккредитованным регистратором в различных доменных зонах, что гарантирует надежность и безопасность регистрации.
Преимущества:

- — Широкий выбор доменных зон: Пользователи могут выбрать наиболее подходящее доменное имя для своего сайта или проекта.
- — Простой процесс регистрации: Регистрация доменов на Reg.ru осуществляется в несколько простых шагов, что упрощает и ускоряет процесс.
- — Удобное управление доменами: Reg.ru предоставляет удобный интерфейс для управления доменами, где пользователи могут настраивать DNS, контактные данные и другие параметры.
Проверить доступен ли домен
2. Хостинг:
Reg.ru предлагает различные виды хостинга, включая виртуальный хостинг (shared hosting) и выделенные серверы (dedicated servers). Хостинг-пакеты от Reg.ru оснащены множеством функций, что делает их подходящими как для небольших личных блогов, так и для крупных корпоративных сайтов.
Преимущества:

- — Надежность и безопасность: Reg.ru обеспечивает стабильную работу серверов и применяет меры безопасности для защиты данных пользователей.
- — Профессиональная поддержка: Команда поддержки Reg.ru готова помочь в решении любых технических вопросов, связанных с хостингом.
- — Ежедневное резервное копирование: Компания регулярно выполняет резервное копирование данных, чтобы предотвратить потерю информации.
Хостинг
3. SSL-сертификаты:
SSL-сертификаты обеспечивают защиту передачи данных между пользователем и сервером, обеспечивая безопасное соединение. Reg.ru предоставляет различные типы SSL-сертификатов, включая один, множественные или расширенные сертификаты (EV SSL).
Преимущества:

- — Защита данных: SSL-сертификаты обеспечивают шифрование данных и защиту от несанкционированного доступа.
- — Доверие пользователей: Сайты с SSL-сертификатами отображаются с зеленым замком в адресной строке, что повышает доверие пользователей.
- — Увеличение рейтинга поисковой выдачи: SSL-сертификаты являются фактором ранжирования для поисковых систем, что может улучшить позиции сайта в результатах поиска.
SSL-сертификат
4. VPS-хостинг:
Reg.ru предоставляет услуги виртуального частного сервера (VPS), что позволяет пользователям получить доступ к выделенным ресурсам сервера без необходимости покупки и обслуживания физического сервера.
Преимущества:
- — Гибкость и масштабируемость: VPS-хостинг позволяет пользователям настраивать ресурсы сервера под свои потребности и масштабировать их по мере роста проекта.
- — Изоляция ресурсов: Каждый VPS изолирован от других, что обеспечивает более высокий уровень безопасности и надежности.
- — Полный контроль: Пользователи получают полный доступ к серверу и могут устанавливать свои приложения и настраивать окружение по своему усмотрению.

Операционные системы

Приложения и панель упраления
Основываясь на своем профессионализме, Reg.ru стремится предоставить надежные и безопасные услуги, обеспечивая высокую доступность и качество обслуживания для своих клиентов. Компания имеет богатый опыт работы в отрасли и активно развивается, чтобы оставаться конкурентоспособной на рынке информационных технологий.
Другие услуги:

Reg.ru предлагает богатый выбор дополнительных услуг, чтобы удовлетворить потребности разнообразных клиентов. Вот подробнее о некоторых из них:
- 1. Создание сайтов: Reg.ru предоставляет инструменты и услуги для создания профессиональных веб-сайтов. Вы можете использовать конструктор сайтов, чтобы легко и быстро создать свой сайт без необходимости знаний веб-разработки. Также доступна услуга разработки сайтов, где команда опытных специалистов поможет воплотить ваши идеи в реальность.
Как создать сайт? Конструктор сайтов REG.RU!
- 2. Защита от DDoS-атак: DDoS-атаки представляют угрозу для доступности вашего сайта. Reg.ru предоставляет услугу защиты от DDoS-атак, которая помогает минимизировать воздействие атак на ваш веб-ресурс и обеспечивает его стабильную работу даже в условиях интенсивного сетевого трафика.
Маска Гая Фокса ставшая символом Anonymous
- 3. Виртуальные выделенные серверы (VDS): VDS предоставляет выделенные ресурсы и контроль над виртуальной средой. Это идеальное решение для сайтов с повышенными требованиями к производительности, безопасности и настройкам. Вы сможете устанавливать собственное программное обеспечение и настраивать параметры сервера под свои нужды.
- 4. Дополнительные сервисы: Кроме того, Reg.ru предлагает множество других дополнительных услуг, таких как регистрация торговых марок, предоставление антивирусного защиты для сайтов, услуги по рассылке электронной почты и многое другое.
Эти дополнительные услуги помогают улучшить функциональность и безопасность вашего веб-проекта, а также обеспечивают более гибкий и профессиональный подход к размещению и поддержке вашего онлайн-бизнеса. Компания Reg.ru стремится предоставить все необходимое, чтобы ваш сайт стал успешным и процветающим в сети.
Клиенты и партнеры. Reg.ru: Обслуживание широкой аудитории – от фрилансеров до крупных корпораций. Позитивный опыт известных клиентов и партнеров.
Как крупный игрок на рынке интернет-инфраструктуры, Reg.ru имеет впечатляющий список клиентов и партнеров. Их услуги привлекают разнообразные организации и предприятия, от малого бизнеса до крупных корпораций. Ниже приведены некоторые известные клиенты и партнеры Reg.ru, а также их позитивный опыт работы с компанией:
- 1. Интернет-стартапы и фрилансеры: Reg.ru является популярным выбором среди стартапов и фрилансеров, которые ищут надежный хостинг и регистрацию доменных имен для своих проектов. Благодаря простым и понятным тарифам, они получают высококачественное обслуживание и поддержку на ранних этапах своего бизнеса.
- 2. Малый и средний бизнес: Многие малые и средние компании обращаются к Reg.ru за хостингом и дополнительными услугами, чтобы создать и управлять своими веб-сайтами. Разнообразие планов и опций позволяет им выбирать оптимальные решения для своих потребностей.
- 3. Крупные корпорации и предприятия: Reg.ru работает с крупными организациями, предоставляя высококлассные хостинг-решения, облачные сервисы и специальные услуги для удовлетворения их требовательных потребностей.
- 4. Партнеры и разработчики: Reg.ru активно сотрудничает с различными веб-разработчиками, агентствами и другими компаниями в сфере интернет-технологий. Благодаря партнерским программам и API-интеграциям, они предлагают свои услуги через партнеров, расширяя свою клиентскую базу.








Партнеры и клиенты
Заключение
- Часы работы (мск):
- пн – пт: 09:00 – 18:00
- сб – вс: 09:00 – 18:00
- Телефон в Москве: +7 495 580-11-11
- Бесплатный звонок по России: 8 800 555-34-78
SSH-доступ
SSH (Secure SHell) — это сетевой протокол, позволяющий соединяться с удалённым сервером и выполнять на нём команды, загружать файлы. Ключевой особенностью является шифрование передаваемой информации. По умолчанию на хостинге используется командный интерпретатор bash.
- Получение справочной информации
- Перемещение по файловой системе
- Просмотр содержимого каталога
- Создание и удаление файлов и каталогов
- Просмотр и редактирование содержимого файлов
- Копирование и перемещение файлов
- Изменение прав доступа
- Управление процессами
- Работа с архивами
- Поиск файлов
1. Информация для подключения
Информацию для подключения к серверу по SSH и SFTP вы можете получить в разделе FTP и SSH панели управления хостингом.
.png)
- Адрес сервера (хост): ssh.login.nichost.ru, где «login» — уникальное имя услуги хостинга (указано в верхней правой части панели управления).
- Имя SSH-пользователя (логин): login.
- Для получения пароля SSH-пользователя нажмите кнопку Сбросить пароль. Новый пароль будет отображен в всплывающем окне. Для отправки пароля на ваш контактный адрес электронной почты, установите галочку Выслать пароль на почту.
Чтобы соединиться по SSH с сервером хостинга, установите на компьютер ssh-клиент . Для загрузки файлов на хостинг используйте SFTP-клиент.
Если при соединении по SSH выводится сообщение «cannot allocate memory», это означает, что на вашем хостинге занята вся доступная по тарифу память. Чтобы ее освободить, вы можете временно остановить веб-сервер и отключить задания планировщика заданий в разделе Управление веб-сервером панели управления хостингом. Дополнительно рекомендуем ознакомиться со статьей Использование ресурсов хостинга.
2. Работа с хостингом с помощью Midnight Commander
Midnight Commander — двухпанельный файловый менеджер. Имеет встроенный текстовый редактор.
.png)
Для запуска Midnight Commander подключитесь к хостингу по SSH и введите команду
Основные горячие клавиши:
- F1: Справка;
- F3: Встроенный просмотрщик файлов;
- F4: Встроенный текстовый редактор;
- F5: Копировать файл;
- F6: Переместить (переименовать) файл;
- F8: Удалить файл;
- F9: Вывести выпадающее меню;
- F10: Выход из программы;
- Tab: Переход между панелями;
- Insert: Пометить файл для операций с несколькими файлами, например, для копирования.
3. Работа с хостингом из командной строки
Получение справочной информации
Для получения справочной информации по интересующей команде command наберите в командной строке:
для завершения работы со справкой нажмите «q».
Краткую справку по команде обычно можно получить, запустив ее с параметром —help или -h:
Перемещение по файловой системе
Вывести текущий каталог:
Перейти в домашний каталог пользователя:
Перейти в каталог tmp, размещенный в текущем каталоге:
Перейти в каталог по полному пути /home/login/sitename.ru/docs (корневой каталог сайта sitename.ru):
Перейти в родительский каталог (на уровень выше):
Перейти в предыдущий каталог:
Создание и удаление файлов и каталогов
Создать новый каталог foo в текущем каталоге:
Создать структуру каталогов foo/bar/baz в текущем каталоге:
mkdir -p foo/bar/baz
Удалить каталог foo в текущем каталоге. Каталог должен быть пуст:
Удалить каталог foo со всеми файлами и подкаталогами:
Создать пустой файл foo:
Удалить файл foo:
Просмотр и редактирование содержимого файлов
Просмотреть содержимое текстового файла (лог-файла сайта) (Для выхода нажмите «q»):
Открыть файл foo в текстовом редакторе:
Копирование и перемещение файлов
Копировать файл foo в файл bar:
Скопировать содержимое каталога old в каталог new:
Переименовать файл foo в файл bar:
Переместить файл foo в существующий каталог bar под именем baz:
Изменение прав доступа
Рекомендуемые права доступа на хостинге для файлов 644 (rw-rw-rw-), для каталогов 755 (rwxr-xr-x).
Сделать файл foo исполняемым:
Сделать файл foo доступным только для чтения:
Изменение прав доступа для всех каталогов, вложенных в каталог foo на 755:
find foo -type d -exec chmod 755 {} \;
Изменение прав доступа для всех вложенных в каталог foo файлов на 644:
find foo -type f -exec chmod 644 {} \;
Управление процессами
Показать информацию о процессах в реальном времени (Для выхода нажмите «q»):
Показать подробную информацию о всех выполняющихся процессах:
Завершить работу процесса по его идентификатору процесса (PID) 1234:
Завершить работу процесса по его имени:
Работа с архивами
Создать архив каталога docs:
tar -czf archive.tar.gz docs
Распаковать архив archive.tar.gz:
tar -xzf archive.tgz
Распаковать архив archive.zip:
Распаковать архив archive.rar:
unrar x archive.rar
Распаковать архив archive.gz:
Поиск файлов
Найти среди файлов сайта содержащие текст «login.mysql» (адрес сервера для доступа к базе данных):
grep -R «login.mysql» sitename.ru/docs
Найти в текущем каталоге и подкаталогах файлы с именем index.php:
Настройка SSH аутентификации по ключам в Windows

13.06.2022

itpro

PowerShell, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022

комментария 23
В этой статье мы настроим SSH аутентификацию в Windows по RSA или EdDSA ключам для безопасного доступа к удаленным компьютерам/серверам. Рассмотрим, как сгенерировать открытый и закрытый ключи (сертификаты) в Windows и настроить сервер OpenSSH в Windows 10/11 и Windows Server 2019/2022 для аутентификации по ключам (без паролей).
Аутентификация по SSH ключам широко используется в мире Linux, а в Windows этот функционал появился относительно недавно. Идея заключается в том, что на SSH сервере добавляется открытый ключ клиента и при подключении сервер проверяет наличие соответствующего закрытого ключа у клиента. Таким образом удаленный пользователь может аутентифицироваться в Windows без ввода пароля.
Генерация SSH ключей на клиенте Windows
На клиентском, компьютере, с которого вы будет подключаетесь к удалённому серверу Windows с OpenSSH, вам нужно сгенерировать пару ключей (открытый и закрытый). Закрытый ключ хранится на клиенте (не отдавайте его никому!), а открытый ключ нужно скопировать в файл authorized_keys на SSH сервере. Чтобы сгенерировать SSH ключи на клиенте Windows, вы должны установить клиент OpenSSH.
В Windows 10/11 и Windows Server 2019/2022 клиент OpenSSH устанавливается как отдельный встроенный компонент с помощью PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
В предыдущих версиях Windows можно установить порт Win32-OpenSSH с GitHub (см. пример в статье о настройке SFTP сервера в Windows).
Запустите обычную (непривилегированную сессию PowerShell) и сгенерируйте пару ED25519 ключей:
ssh-keygen -t ed25519
По умолчанию утилита ssh-keygen генерирует ключи RSA 2048. В настоящий момент вместо RSA ключей рекомендуется использовать именно ED25519.
Утилита попросит вас указать пароль для защиты закрытого ключа. Если вы укажете пароль, то каждый раз при использовании этого ключа для SSH авторизации, вы должны будете вводить этот пароль. Я не стал указывать пароль для ключа (не рекомендуется).

Generating public/private ed25519 key pair. Enter file in which to save the key (C:\Users\myuser/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\myuser/.ssh/id_ed25519. Your public key has been saved in C:\Users\myuser/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:C2wXeCQSUcJyq0 myuser@computername The key's randomart image is: +--[ED25519 256]--+ | ..*O=..o. | +----[SHA256]-----+
Утилита ssh-keygen создаст каталог .ssh в профиле текущего пользователя Windows (%USERPROFILE%\.ssh) и сгенерирует 2 файла:
- id_ed25519 – закрытый ключ (если вы сгенерировали ключ типа RSA, файл будет называться id_rsa )
- id_ed25519.pub – публичный ключ (аналогичный RSA ключ называется id_rsa.pub )

После того, как ключи созданы, вы можете добавить закрытый ключ в службу SSH Agent, которая позволяет удобно управлять закрытыми ключами и использовать их для аутентификации.
SSH Agent может хранить закрытые ключи и предоставлять их в контексте безопасности текущего пользователя. Запустите службу ssh-agent и настройте автоматический запуск с помощью PowerShell команд управления службами:
Set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent
Добавьте ваш закрытый ключ в базу ssh-agent:
Identity added: C:\Users\kbuldogov\.ssh\id_ed25519 (kbuldogov@computername)

Или так:
Настройка OpenSSH в Windows для авторизации по ключам
SSH сервер (в этом примере это удаленный компьютер с Windows 11 и настроенной службой OpenSSH).
Мы уже подробно рассматривали настройку OpenSSH сервера в Windows.
Скопируйте файл id_ed25519.pub в каталог .ssh профиля пользователя, под которым вы будете подключаться к SSH серверу. Например, у меня в Windows 11 создан пользователь user1, значит я должен скопировать ключ в файл C:\Users\user1\.ssh\authorized_keys.
В данном примере подразумевается, что user1 это обычная учетная запись пользователя без прав локального администратора на компьютере с сервером SSH.
Если каталог .ssh в профиле отсутствует, его нужно создать вручную.

Можно скопировать ключ на SSH сервер с клиента с помощью SCP:
scp C:\Users\youruser\.ssh\id_rsa.pub [email protected]:c:\users\user1\.ssh\authorized_keys
В один файл authorized_keys можно добавить несколько открытых ключей.
По умолчанию в OpenSSH сервере в Windows отключена аутентификация по ключам. Вы можете проверить это в конфигурационном файле sshd_config. Проще всего получить список разрешенных способов аутентификации в OpenSSH с помощью такой PowerShell команды (Select-String используется как аналог grep в PowerShell):
cat «C:\ProgramData\ssh\sshd_config»| Select-String «Authentication»
#PubkeyAuthentication yes #HostbasedAuthentication no # HostbasedAuthentication PasswordAuthentication yes #GSSAPIAuthentication no

В этом примере строка PubkeyAuthentication закомментирована, значит этот способ аутентификации отключен.
Откройте файл sshd_config с помощью блокнота, раскоментируйте строку:
PubkeyAuthentication yes

Также в конфигурационном файле sshd_config придется отключить режим StrictModes. По умолчанию этот режим включен и запрещает аутентификацию по ключам, если закрытый и открытый ключ недостаточно защищены. Раскомментируйте строку #StrictModes yes , измените на StrictModes no .

Сохраните файл и перезапустите службу sshd:
Теперь вы можете подключиться к SSH серверу без ввода пароля пользователя. А если вы не задали пароль (passphrase) для закрытого ключа, вы сразу автоматически подключитесь к вашему удаленному серверу Windows.
Для подключения через SSH к удаленному хосту используется следующая команда:
ssh (username)@(имя или IP адрес SSH сервера)
Это означает, что вы хотите подключиться к удаленному SSH серверу с адресом 192.168.1.90 под учетной записью admin. Служба SSH Agent автоматически попытается использовать для авторизации сохраненный ранее закрытый ключ.
- Если вы не хотите использовать ssh-agent для управления ключами, вы можете указать путь к закрытому ключу, который нужно использовать для SSH аутентификации: ssh [email protected] -i «C:\Users\user\.ssh\id_ed25519»
- Для подключения с помощью учетной записи пользователя из домена Active Directory используется формат: ssh [email protected]@168.1.90 -i

При первом подключении нужно добавить отпечаток ключа SSH сервера в доверенные. Наберите yes -> Enter.
The authenticity of host '192.168.1.90 (192.168.1.90)' can't be established. ECDSA key fingerprint is SHA256:LNMJTbTS0EmrsGYTHB3Aa3Tisp+7fvHwZHbTA900ofw. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Информацию по аутентификации в Windows с помощью SSH ключей можно найти в журнале события. В современных версиях OpenSSH логи пишутся не в текстовые файлы, а в отдельный журнал Event Viewer (Application and services logs -> OpenSSH -> Operational).
При успешном подключении с помощью ключа в журнале появится событие:
EventID 4 sshd: Accepted publickey for locadm from 192.168.14.1 port 55772 ssh2: ED25519 SHA256:FEHDWM/J74FbIzCCoJNbh14phS67kQgh7k8UrKPSvCM

Если вы не смогли подключиться к вашему SSH серверу по RSA ключу, и у вас все равно запрашивается пароль, скорее всего пользователь, под которым вы подключаетесь, входит в группу локальных администраторов сервера (SID группы S-1-5-32-544). Об этом далее.

Вход по SSH ключу для локальных администраторов Windows
В OpenSSH используются особые настройки доступа по ключам для пользователей с правами локального администратора Windows.
В первую очередь, вместо ключа authorized_keys в профиле пользователя нужно использовать файл с ключами C:\ProgramData\ssh\administrators_authorized_keys. Вам нужно добавить ваш ключ в этот текстовый файл (в целях безопасности права на этот файл должны быть только у группы Administrators и SYSTEM).

Вы можете изменить NTFS права на файл с помощью:
- утилиты icacls: icacls.exe «C:\ProgramData\ssh\administrators_authorized_keys» /inheritance:r /grant «Administrators:F» /grant «SYSTEM:F
- или с помощью PowerShell командлетов get-acl и set-acl: get-acl «$env:programdata\ssh\ssh_host_rsa_key» | set-acl «$env:programdata\ssh\administrators_authorized_keys»

После этого SSH аутентификация по ключам работает даже при отключенном режиме StrictModes
alert]Чтобы использовать ключ authorized_keys из профиля пользователя, и не переносить данные открытого ключа в файл administrators_authorized_keys, вы можете закомментировать строку в файле конфигурации OpenSSH (C:\ProgramData\ssh\sshd_config).
#Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Дополнительно в файле sshd_config вы можете запретить SSH подключение по паролю по паролю:
PasswordAuthentication no
После сохранения изменений в файле sshd_config не забудьте перезапустить службу sshd.
Если вы установили PasswordAuthentication no, и некорректно настроите аутентификацию по ключам, то при подключении по ssh будет появляться ошибка:
[email protected]: Permission denied (publickey,keyboard-interactive).

В OpenSSH на Linux доступна опция PermitRootLogin, позволяющая ограничить доступ к SSH серверу под аккаунтом root. В Windows OpenSSH эта директива не доступна и для ограничения доступа администраторов нужно использовать параметр DenyGroups.
Итак, вы настроили SSH аутентификацию в Windows по открытому RSA-ключу (сертификату). Теперь вы можете использовать такой способ аутентификации для безопасного доступа к удаленным северам, автоматического поднятия проброса портов в SSH туннеле, запуска скриптов и других задачах автоматизации.
Предыдущая статья Следующая статья
Как купить домен и использовать доменное имя для размещения сайта или своих сервисов через NGINX

Этот небольшой гайд для тех, кто давно хотел сделать свой сайт на своем домене и разместить на своем сервере, но все никак.
С чем будем работать далее:
- Узнаем, что такое доменное имя и как оно связано с DNS.
- Зарегистрируем свой домен и узнаем, что это быстро, легко и может стоить 199 рублей за первый год (продление может стоить дороже, а цены варьироваться в зависимости от регистратора).
- Настроим ресурсные записи, чтобы привязать доменное имя сайта к вашему IP‑адресу. Дополнительно рассмотрим, как при помощи DDNS автоматизировать обновление адресов, если у вас нет выделенного IP.
- Развернем виртуальную машину, на которой будет работать сайт. (аналогичные действия можно проделать и на каком‑нибудь специально выделенном для этого физическом железе или VPS).
- Развернем http‑сервер NGINX.
- Настроим конфигурацию для размещения сайта и проверим, что сайт‑лендинг открывается.
- Узнаем, как прикрутить ssl сертификаты и https.
- Если используются какие‑то другие сервисы, например, nodered, узнаем, как использовать купленный домен в своих сервисах в варианте, например, nodered.mydomainhere.ru и т.д вместо 77.88.111.222:1880 или mydomainhere.ru:1880 (т. е. поработаем с доменами третьего уровня).
- Получим бесплатные Wildcard SSL сертификаты от Lets Encrypt при помощи утилиты Cerbot, и настроим их для использования в NGINX.
Дисклеймерный блок:
В данном материале не будет рассмотрено, как сделать сам сайт, как он устроен или как корректно вести процесс его разработки.
Материал не претендует на истину в последней инстанции. Приводится одна из многочисленных рабочих реализаций. Если у вас другой взгляд на приведенное в статье, обязательно поделитесь этим в комментариях.
В данном материале демонстрируется минимальный объем, необходимый для того, чтобы своими силами с минимумом используемых технологий можно было реализовать задуманное.
Да, можно использовать сторонние инструменты вроде Tilda.ws, Figma.com, uCoz.ru (ого, они еще работают) или им подобные, а можно и так. На вкус и цвет, как говорится.
Любое упоминание каких‑то сервисов не является их рекламой. Просто показана частная реализация: что вот здесь можно сделать вот так, и все заработает. Уловив суть происходящего, можно реализовать это и на альтернативных сервисах.
Тех, кому интересно, приглашаю далее.
Что такое доменное имя, зачем оно нужно и причем тут DNS?
Доменное имя — это сетевой идентификатор веб‑сайта или веб‑сервиса. Оно действует как адрес, который люди могут использовать для доступа к сайту в Интернете. Доменное имя представляет собой комбинацию букв и/или цифр, разделенных точками (например, habr.com).
Проще говоря, считайте, что доменное имя — это имя контакта в записной книге телефона. Точно так же, как вы используете имя контакта, связанное с телефонным номером, чтобы позвонить кому‑то, вы используете доменное имя для доступа к веб‑сайту. Разница в том, что вместо вызова контакта вы вводите доменное имя в адресную строку веб‑браузера.
Важность доменного имени заключается в его уникальности. Никакие два сайта не могут иметь одинаковое доменное имя, что гарантирует, что люди смогут легко найти нужный им сайт. Это облегчает частным лицам и компаниям создание своего присутствия в Интернете и охват более широкой аудитории.
Система доменных имен (DNS — Domain Name System) — это протокол, который позволяет браузеру найти запрошенный пользователем сайт по его доменному имени.
Считайте, что DNS — это гигантская телефонная книга, в которой доменные имена сопоставлены с IP‑адресами. Точно так же, как вы используете телефонную книгу для поиска номера телефона человека по его имени, ваш браузер использует DNS для поиска IP‑адреса веб‑сайта по его доменному имени. Каждому имени сайта соответствует набор цифр формата 000.000.000.000, называемым IP‑адресом (если мы про классический IPv4).
Когда пользователь вводит в адресной строке браузера имя сайта, например habr.com, компьютер запрашивает IP‑адрес этого сайта на специальном DNS‑сервере и после получения корректного ответа ( 178.248.237.68 ) открывает сам сайт, что и показано на рисунке.

Для тех, кому интересно посмотреть, как это работает схематично и по шагам:

Пояснение по шагам:
- Вы вводите название сайта в адресную строку и нажимаете Enter. Увлекательная история DNS началась.
- Сначала браузер обращается к файлу hosts на компьютере (пункт 1). Да, записи в hosts всё ещё используются и воспринимаются браузером. Если в hosts есть нужный домен и запись, какой IP‑адрес ему соответствует, браузер сразу обращается к серверу, где хранятся файлы сайта, и загружает страницу (пункт 11). Если записей нет, браузер продолжает поиск.
- Теперь браузер обращается к DNS‑серверу интернет‑провайдера (пункт 3). Провайдеры кэшируют некоторые данные, чтобы ускорить процесс обработки запросов. Если на кэширующем DNS‑сервере интернет‑провайдера есть данные об IP‑адресе нужного домена, браузер идёт по указанному адресу на сервер и загружает сайт. Если записи нет, сервер интернет‑провайдера продолжает поиск дальше.
- Следующими в цепи появляются корневые DNS‑серверы (пункт 4). На корневых DNS‑серверах хранятся только данные о DNS‑серверах, которые ответственны за доменные зоны. Например, если вы ищете IP домена habr.com, то корневой DNS‑сервер отправит сервер интернет‑провайдера на DNS‑сервер, который ответственен за зону.COM.
- Интернет‑провайдер идёт к DNS‑серверу зоны, адрес которого дал ему корневой сервер (пункт 6). В нашем случае он идёт на DNS‑сервер зоны.COM и просит предоставить IP‑адрес домена.
- DNS‑сервер зоны не знает IP‑адреса доменов. Он может дать только IP‑адрес DNS‑сервера, на котором находится информация о необходимом домене (пункт 7).
- Затем интернет‑провайдер идёт к DNS‑серверу, на который его послал сервер зоны (пункт 8). Он обращается к DNS‑серверу домена (например, данные о доменах клиентов reg.ru находятся на ns1.reg.ru ns2.reg.ru). Сервер домена находит запрашиваемый домен в своей базе и отдаёт IP‑адрес интернет‑провайдеру (пункт 9).
- Полученный IP‑адрес интернет‑провайдер кэширует на своем сервере и отправляет найденный адрес браузеру пользователя (пункт 10).
- Браузер обращается к серверу, где лежат файлы нужного сайта (пункт 11).
- Сайт открывается на экране пользователя.
Шаг 1. Зарегистрируем свой домен, настроим ресурсные записи, получим сертификаты
Путь самурая начинается с того, что необходимо арендовать себе в пользование доменное имя, которое он хочет использовать. Для этого можно воспользоваться любым из многочисленных регистраторов доменных имен. В данном примере будет рассматриваться регистратор reg.ru. Из чего будет состоять путь?
- Необходимо создать учетную запись: reg.ru/user/authorize?mode=register
- Подтвердить почту, номер телефона, включить двухфакторную аутентификацию.
- Заполнить контакты владельца аккаунта (нужны данные паспорта, процесс описывать не буду, все стандартно и с пояснениями на самом сайте).

- Задать для поиска необходимое доменное имя: reg.ru/buy/domains/. Например:

Важно: по ходу всей статьи будет использоваться пример доменного имени superpuperhabr, вместо него вам необходимо использовать свой домен, который вы арендуете.
- В доменной зоне.RU домен стоит 199₽ в год (или чуть больше 50 копеек в день). (Важно понимании, что продление уже будет дороже). Все платные опции можно со спокойной душой отключить. А чтобы «поиграться» в дальнейшем с настройками https (и ssl) можно получить бесплатные сертификаты на 6 месяцев. Выглядит это примерно следующим образом, остается только оплатить любым удобным способом.

- Далее, зададим настройку, которая связывает доменное имя и ваш IP‑адрес (условно, создаем запись в большой телефонной книге DNS, что за вашим именем такой‑то номер телефона). Для этого необходимо провалиться в раздел меню «Домены» и перейти в раздел настроек «DNS‑серверы и управление зоной»:

- В данном разделе необходимо «Добавить запись», а из предложенного списка выбрать «A‑запись», которая очень просто заполняется следующим образом:

Свой публичный адрес, который необходимо указать в поле «IP Address» можно найти на 2ip.ru, например:

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

Данная запись означает, что основной домен «superpuperhabr.ru» и его поддомены, например: «stage.superpuperhabr.ru» или «home‑camera.superpuperhabr.ru» или любой другой домен третьего уровня, будут перенаправлены на указанный вами IP‑адрес.
Тут есть нюанс: так как все мы делаем своими силами и пользуемся IP‑адресом, который выдает нашему роутеру интернет‑провайдер, надо учитывать, что он может измениться. Для наличия у себя постоянного «белого» публичного IP‑адреса, который будет закреплен только за вами, у провайдера необходимо подключить дополнительную услугу, названия которой примерно следующее: «Постоянный IP-адрес». Другие производные а-ля «Белый IP‑адрес», «Реальный IP‑адрес» — могут быть и динамическими, уточняйте описание услуги.
Если желания платить за такую услугу нет, надо понимать риски: в случае изменения у вас внешнего публичного IP‑адреса, его необходимо будет изменить вручную в настройках выше. Все то время, что будет указан старый адрес + 15 минут на применение внесенных изменений, сайт и другие сервисы, использующие доменное имя будут недоступны.
Как полумеру здесь можно использовать DDNS, чтобы IP‑адрес в случае изменения автоматически подтягивался к доменному имени, но про это в самом конце статьи.
Сертификаты
После всех настроек спустя какое-то время вам на почту придут сертификаты. Из всего того объема информации, что будет в письме, необходимо создать два файла.
Итоговый сертификат и приватный ключ.
Для создания итогового сертификата необходимо объединить три сертификата «по меньше» (сам SSL‑сертификат, корневой и промежуточный сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем superpuperhabr.crt (superpuperhabr — доменное имя вашего сайта). Создать его можно при помощи блокнота или любого другого текстового редактора. Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:
-----BEGIN CERTIFICATE----- #Ваш сертификат# -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- #Промежуточный сертификат# -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- #Корневой сертификат# -----END CERTIFICATE-----
Обратите внимание: один сертификат идёт следом за другим, без пустых строк.
Далее, создайте файл приватного ключа superpuperhabr.key и скопируйте в него содержание приватного ключа сертификата из письма.
-----BEGIN RSA PRIVATE KEY----- #Ваш приватный ключ# -----END RSA PRIVATE KEY-----
Еще момент: браузер может ругаться на именно эти бесплатные сертификаты, если использовать что‑то отличное от www.superpuperhabr.ru. Потому что сертификаты не поддерживают домены третьего уровня. Если занести денюжку, одним сертификатом можно покрыть все, в рамках домена и поддоменов (и superpuperhabr.ru и, например, Influx.superpuperhabr.ru).
Шаг 2. Переходим к развертыванию ОС Debian (и созданию виртуальной машины)
Создание ВМ, установка и первичная настройка будут под спойлером, чтобы много картинок не захламляли основной текст.
Подготовка к развертыванию виртуальной машины
Если вы используете виртуальную машину, можно смотреть отсюда. Если проделывать все будете на отдельной физической машине или VPS, можете сразу перейти на момент установки ОС.
1) ПО для виртуализации и создания виртуальных машин (можете использовать любое другое, главное, чтобы была возможность настроить сетевой адаптер в режиме bridge (мост или сетевой мост))
1.1) Для Win/Linux (бесплатно для некоммерческого использования) VMware Workstation Player 17: -> тык
1.2) Для MacOS (есть бесплатный Trial период, либо поиск активированного решения на просторах интернета) VMware Fusion Player 13: -> тык
2) SSH клиент (опять же, можно пользоваться любым другим, даже встроенным в вашу систему):
2.1) Termius for Windows: -> тык
2.2) Termius for Linux: -> тык
2.3) Termius for MacOS: -> тык
3.1) Linux Debian 11.6 stable: -> тык
3.2)Или же более свежая, но тестовая сборка (очень редко установка может пойти не по плану, но пакеты и версия ядря куда свежее): -> тык
Установку ПО для виртуализации описывать не буду, там все элементарно. Начнем с процесса создания самой виртуалки.








































И перезагружаемся командой
reboot
Как видим, на старте система потребляем минимальное количество ресурсов:


Скорее всего нам нужен будет именно второй интерфейс, а так как IP-адрес получаем по DHCP от роутера, то он будет примерно следующего вида:
192.168.XXX.YYY (Например, 192.168.0.25 или 192.168.25.136).
Узнав адрес, можно подключиться по SSH через терминал с основной машины, находящейся в одной локальной сети с сервером, следующей командой:
ssh root@192.168.50.66
(Во всей статье будет использоваться IP-адрес 192.168.50.66, поэтому держите в уме, что в вашем случае нужно будет заменить его на актуальный IP именно для вашего сервера. Вместо IP-адреса может быть указано также доменное имя)
Остается только ввести пароль от пользователя root и можно переходить к шагу 3.
Шаг 3. Развернем HTTP‑сервер NGINX и настроим его
На установленную систему поставим пакет HTTP-сервера NGINX следующим набором команд:
apt update && \ apt install -y wget curl gpg && \ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null && \ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg && \ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian bullseye nginx" | tee /etc/apt/sources.list.d/nginx.list && \ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | tee /etc/apt/preferences.d/99nginx && \ wget http://ftp.ru.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \ dpkg -i libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \ rm libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \ apt update && \ apt install -y nginx && \ sed -i 32i\ 'include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf && \ systemctl restart nginx
В терминал можно вставлять сразу весь блок, так как команды объединены связкой » && \ «, которая выполняет команду одну за другой, если предыдущая выполнена успешно.
Данная команда устанавливает пару утилит, для добавления репозитория NGINX, актуальный репозиторий NGINX, устанавливает соответствующий пакет и делает небольшое изменение в конфиге, перезапуская службу для применения настроек.
Далее, создадим директорию для сайта в соответствии с доменным именем, куда будут скопированы файлы сайта (вам необходимо будет изменить только доменный адрес, остальные папки системные, но их надо создать):
mkdir -m 777 -p /var/www/superpuperhabr.ru /etc/nginx/sites-available /etc/nginx/sites-enabled
Далее, создадим конфигурацию для сайта:
nano /etc/nginx/sites-available/superpuperhabr.ru
И вставим следующее содержимое:
# Первый блок настроек. # Переадресация (редирект) с superpuperhabr.ru на www.superpuperhabr.ru # Важный момент, в зависимости от указания http или https будет использоваться или второй блок настроек или третий. server < listen 80; server_name superpuperhabr.ru; return 301 https://www.superpuperhabr.ru$request_uri; ># Второй блок настроек. # Настройка работы с сайтом на адресе www.superpuperhabr.ru для http. Указываем путь к файлам сайта. server < listen 80; server_name www.superpuperhabr.ru; root /var/www/superpuperhabr.ru; index index.html; location / < try_files $uri $uri/ /index.html; >> # Третий блок настроек. # Настройка работы с сайтом на адресе www.superpuperhabr.ru для https. Указываем путь к сертификатам. Указываем путь к файлам сайта. # Важный момент, если не планируете использовать https или по указанному ниже пути не будет сертификатов - сервис не запустится. server < listen 443 ssl; server_name www.superpuperhabr.ru; root /var/www/superpuperhabr.ru; # Указываем путь, где будут лежать сертификаты для шифрования ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; index index.html; location / < try_files $uri $uri/ /index.html; >>
(Не забываем поменять доменное имя superpuperhabr на свое)
Записываем файл ctrl+o , enter и выходим из редактора ctrl+x .
Данная команда создаст файл /etc/nginx/sites-available/superpuperhabr.ru с конфигурацией в которой:
Первый блок server при обращении к сайту по адресу superpuperhabr.ru будет переадресовывать (редиректить) его на адрес www.superpuperhabr.ru. с использованием https. Если оставить все так, как в примере, то после переадресации будет идти обращение к третьему блоку настроек. Если изменить на http, то ко второму. Разница в том, что используются разные порты (80 и 443) и есть указание на путь к сертификату для шифрования передачи данных.
Предлагается оставить все как есть и продолжить, вернувшись чуть позже к размещению сертификата в указанной папке /etc/nginx/sites‑available/.
А пока, после создания конфига командой выше, необходимо разместить файлы сайта по пути: /var/www/superpuperhabr.ru
Я подготовил сайт‑заглушку через один из конструкторов сайтов. Данный сайт по сути является шаблоном для лендинга условной кофейни с отображением меню. Загрузить файлы на развернутый сервер можно двумя способами.
- Либо при помощи загрузки архива сайта в расширении tar.gz через ссылку.
- Либо перемещение файлов при помощи SFTP и консольной программки Termius, которая его поддерживает.
Для первого варианта: скачаем архив с файлом и распакуем в необходимую нам директорию:
wget -O /var/www/superpuperhabr.ru/landing.tar.gz -c https://clck.ru/33W2KU && \ tar -zxvf /var/www/superpuperhabr.ru/landing.tar.gz -C /var/www/superpuperhabr.ru/ && \ rm /var/www/superpuperhabr.ru/landing.tar.gz
Первая строчка. Скачиваем архив с сайтом через утилитку wget. Флаг -O задает название файла и путь к нему, а -c загружает файл по ссылке (я использовал сократитель ссылок от Яндекса, так как архив я залил документом в VK, а там ну очень большой путь и название файла). Тут главное, чтобы вы по своей ссылке могли просто сразу скачать файл, и можно указать свою ссылку вместо моей.
Вторая строчка занимается разархивацией, третья удалением исходного архива.
Для второго варианта: можно скопировать файлы по SFTP, используя Termius, просто перетащив файлы со своего компьютера на сервер в соответствующую папку:

Созданные ранее сертификат (superpuperhabr.crt) и приватный ключ (superpuperhabr.pem) необходимо переместить по пути, указанному в конфиге: /etc/nginx/sites-available/ (Либо в любое другом место на сервере, тогда не забудьте изменить путь в конфиге выше)

Теперь говорим NGINX, чтобы он подтянул созданную нами конфигурацию и применим ее:
ln -s /etc/nginx/sites-available/superpuperhabr.ru /etc/nginx/sites-enabled && \ nginx -t && \ service nginx reload && \ systemctl restart nginx
Настройка портов
Перед проверкой, что все работает, необходимо открыть 80 и 443 порт на вашем сетевом оборудовании. Для этого необходимо зайти на роутер (в моем случае адрес 192.168.50.1), авторизоваться и перейти в раздел меню настроек WAN. Там выбрать раздел Virtual Server / Port Forwarding и настроить значения следующим образом через «Add profile». Необходимо ввести имя сервиса, порт, который открываем, тип протокола и адрес нашего сервера. (На вашем оборудовании может быть что-то одно из названий)
Port Forwarding (или Virtual Server) — настройка для WAN‑интерфейса (который отвечает за подключение к интернету), позволяющая извне (через интернет) обращаться к конкретным клиентам локальной сети (например, к нашему серверу) по определенному порту приложения.
Таким образом, можно на любом устройстве открыть браузер, ввести зарегистрированное доменное имя и указать порт необходимого приложения, и вуаля, вы зашли на приложение своего сервера. Почти также, как вы попали на habr.com
Выглядит это примерно следующим образом для роутеров ASUS:

После перезагрузки сервиса последним блоком команд, все внесенные изменения вступают в силу и теперь можно открыть свой сайт по адресу superpuperhabr.ru (будет отображаться та самая «заглушка», про которую я писал выше, с файлами которой мы работали):

Поздравляю! Вы на своем собственном железе, запустили свой собственный сайт под своим доменом 🙂
Да, там еще NGINX можно дополнительно конфигурировать для условно «боевой» работы, и в Docker`e все можно запустить, но в минимуме дается так. Дальше каждый может посмотреть, где и что ему подкрутить под свои нужды.
Шаг 4. Настройка проксирования через NGINX для других своих сервисов с добавлением https
Изначально я начал разбираться как работать с доменным именем, потому что надоело пользоваться адресами в формате:
http://77.88.111.222:1880 –> Node-RED http://77.88.111.222:1883 –> Mosquitto MQTT http://77.88.111.222:1871 –> WireGuard VPN http://77.88.111.222:3000 –> Grafana http://77.88.111.222:8086 –> InfluxDBv2 http://77.88.111.222:8080 –> Chirpstack-v4 http://77.88.111.222:8090 –> Chirpstack-api
Хотелось использовать доменное имя, вместо IP-адреса, а также посмотреть, как прикрутить https и ssl, не внося изменения в настройки всего софта выше (как оказалось, делается это через проксирование в NGINX). В результате я пришел к такому формату:
https://nodered.superpuperhabr.ru –> Node-RED https://mqtt.superpuperhabr.ru –> Mosquitto MQTT https://wg.superpuperhabr.ru –> WireGuard VPN https://grafana.superpuperhabr.ru –> Grafana https://influx.superpuperhabr.ru –> InfluxDBv2 https://chirpstack.superpuperhabr.ru –> Chirpstack-v4 https://chirpstack-api.superpuperhabr.ru –> Chirpstack-api
Что же для этого нужно? А всего лишь добавить в NGINX конфигурацию для проксирования обращения с соответствующего имени на внутренний сервис (который localhost).
Для этого создаем конфигурацию командой:
nano /etc/nginx/sites-available/proxy
И вставляем туда следующее содержимое:
# Grafana primary listener and redirect # Ждет обращения к адресу grafana.superpuperhabr.ru по порту 80, с переадресацией на https. server < listen 80; server_name grafana.superpuperhabr.ru; return 301 https://$host$request_uri; ># Grafana ssl config # Редиректимся сюда, указываем сертификаты и адрес сервиса к которому обращаемся: http://127.0.0.1:3000 server < listen 443 ssl http2; server_name grafana.superpuperhabr.ru; ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; location / < proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header Connection "upgrade"; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> #################################################################### # Influxdb primary listener and redirect server < listen 80; server_name influxdb.superpuperhabr.ru; return 301 https://$host$request_uri; ># Influxdb ssl config server < listen 443 ssl http2; server_name influxdb.superpuperhabr.ru; ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; location / < proxy_pass http://127.0.0.1:8086; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> #################################################################### # Nodered primary listener and redirect server < listen 80; server_name nodered.superpuperhabr.ru; return 301 https://$host$request_uri; ># Nodered ssl config server < listen 443 ssl http2; server_name nodered.superpuperhabr.ru; ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; location / < proxy_pass http://127.0.0.1:1880; proxy_set_header Host $host; proxy_set_header Connection "upgrade"; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> #################################################################### # Chirpstack primary listener and redirect server < listen 80; server_name chirpstack.superpuperhabr.ru; return 301 https://$host$request_uri; ># Chirpstack ssl config server < listen 443 ssl http2; server_name chirpstack.superpuperhabr.ru; ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; location / < proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >> #################################################################### # Chirpstack-api primary listener and redirect server < listen 80; server_name chirpstack-api.superpuperhabr.ru; return 301 https://$host$request_uri; ># Chirpstack-api ssl config server < listen 443 ssl http2; server_name chirpstack-api.superpuperhabr.ru; ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem; location / < proxy_pass http://127.0.0.1:8090; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>
Записываем файл ctrl+o , enter и выходим из редактора ctrl+x .
Данная конфигурация приведена для определенного набора сервисов. Соответственно, в зависимости от вашего набора, содержимое и состав конфига может отличаться.
Остается только применить конфигурацию, по аналогии с сайтом.
ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/proxy nginx -t && \ service nginx reload && \ systemctl restart nginx
Теперь, при попытке открытия ссылки, например, » grafana.superpuperhabr.ru «, ваш браузер обратится к reg.ru для получения IP-адреса сервера, который закреплен за доменом superpuperhabr.ru , а наш NGINX, получив данный запрос, перенаправит его на внутренний адрес сервиса Grafana http://127.0.0.1:3000 . При этом используя https и сертификаты, путь к которым указывается в конфиге выше. В виду чего нет необходимости настраивать https на каждом из сервисов.
Момент конфигурации с проксированием можно порядком упростить, перенеся его в специальное по с графическим интерфейсом: Nginx Proxy Manager поставить. Он, ко всему прочему, ещё и SSL-сертификаты может выдавать и обновлять.
Шаг 5 (опционально). Настраиваем DDNS, чтобы не менять доменные записи на reg.ru при каждом изменении IP-адреса.
Чтобы не мониторить и не обновлять IP-адрес ручками каждый раз, как сменится IP (и если вы не подключили соответствующую дополнительную услугу у вашего провайдера), можно воспользоваться сервисом DDNS, который будет делать это за вас (почти).
Функция «Динамический DNS» (Dynamic DNS / DDNS) позволяет присвоить постоянное доменное имя (адрес для доступа из интернета) публичному IP-адресу, который роутер получает от интернет-провайдера. Публичный IP-адрес может поменяться, а доменное имя, которые вы зарегистрируете – нет. (есть сервисы, позволяющие сделать это бесплатно и вне ПО роутера, рассматриваемого в данном материале).
Чтобы настроить DDNS внутренними силами того же роутера, необходимо перейти в соседний от Virtual Server / Port Forwarding пункт меню, включить службу DDNS, установить метод запроса IP -> External. Указать свободное доменное имя и зарегистрировать его (в качестве примера используется: yours-nginx-server.asuscomm.com). Когда процесс успешно завершится, применить всю конфигурацию. Через небольшой промежуток времени ваш публичный IP адрес привяжется к доменному имени, которое вы зарегистрировали и доступ к приложениям можно будет запрашивать по нему, вместо публичного IP адреса.
(ваш роутер может и не поддерживать данного функционала, поэтому посмотреть, как это сделать при помощи других сервисов, можно самостоятельно)
Остается последний шаг, сказать reg.ru, чтобы он брал адрес для вашего домена с вашего DDNS. Делается это при помощи создания CNAME записи и выглядит следующим образом:

Теперь reg.ru будет обращаться к доменному имени, за которое ответственна DDNS служба, которая имеет актуальный IP-адрес, потому и reg.ru все свои запросы будет отправлять именно на него.
Кстати, что за CNAME и что там еще есть, можно посмотреть в недавней статье от Selectel: -> тык
Шаг 6 (опционально). Получение своих и бесплатных SSL Wildcard сертификатов при помощи сервиса Let’s Encrypt для NGINX на Debian.
Вкратце разберется, а что же за Wildcard сертификаты такие.
Сертификат Wildcard — это тип сертификата SSL/TLS, который используется для защиты домена и всех его поддоменов. Например, если у вас есть сайт с доменным именем superpuperhabr.ru , сертификат Wildcard защитит не только superpuperhabr.ru , но и все поддомены, такие как blog.superpuperhabr.ru , grafana.superpuperhabr.ru и так далее.
Принцип работы сертификата Wildcard заключается в использовании специального символа, звездочки (*), в качестве обозначения любого поддомена. Поэтому вместо того, чтобы покупать отдельные SSL/TLS-сертификаты для каждого поддомена, вы можете использовать сертификат Wildcard для защиты всех поддоменов.
Основное преимущество использования сертификата Wildcard заключается в том, что он может сэкономить ваше время и деньги. Вместо того чтобы покупать и управлять отдельными SSL/TLS-сертификатами для каждого поддомена, вы можете использовать один Wildcard-сертификат для их защиты. Это может быть особенно полезно, если у вас большое количество поддоменов, поскольку управление отдельными сертификатами для каждого поддомена может отнимать много времени и средств.
Еще одним преимуществом использования сертификата Wildcard является упрощение управления сертификатами SSL/TLS. Поскольку все ваши поддомены покрываются одним сертификатом, вам нужно обновлять и управлять только одним сертификатом, а не несколькими. Это может облегчить отслеживание сертификатов и гарантировать, что они всегда актуальны и правильно настроены.
Однако есть и некоторые потенциальные недостатки использования сертификата Wildcard, о которых следует знать студентам. Во-первых, сертификаты Wildcard могут быть дороже отдельных сертификатов SSL/TLS, в зависимости от выбранного вами поставщика. Кроме того, сертификаты Wildcard не всегда подходят для определенных типов веб-сайтов, например, для тех, которые требуют сертификатов с расширенной проверкой (EV).
На reg.ru стоимость такого сертификата начинается с примерно с 10 тысяч рублей:

Но можно не платить, а выпустить сертификат самостоятельно при помощи сервиса Let’s Encrypt!
Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации, который предоставляет SSL/TLS-сертификаты для веб-сайтов. Let’s Encrypt предлагает сертификат Wildcard, который можно использовать для защиты домена и всех его поддоменов.
Используя сертификат Wildcard от Let’s Encrypt, вы можете сэкономить время и деньги, поскольку вам не нужно приобретать SSL/TLS-сертификаты для каждого поддомена. Сертификат Wildcard от Let’s Encrypt также прост в установке и управлении, поскольку его можно автоматически обновлять раз в три месяца (срок действия сертификатов) и настраивать с помощью автоматизированных инструментов Let’s Encrypt.
Что для этого нужно?
Установим утилиту Certbot, которая занимается выпуском сертификатов через Let’s Encrypt:
apt install -y certbot python3-certbot-nginx
После чего необходимо командой запустить процесс выпуска сертификатов:
certbot -d *.superpuperhabr.ru -d superpuperhabr.ru --manual --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory
Вас попросят указать e-mail, на который зарегистрирован домен. И задать две TXT записи, после добавления каждой из TXT записей следует подождать 10-15 минут, чтобы эта запись обновилась на сервере и Certbot мог ее прочитать после чего можно переходить к следующему шагу. Добавление выглядит примерно следующим образом:

Делается это для того, чтобы сервис проверил, действительно ли вы являетесь владельцем домена, так как только он может добавить указанные в терминале TXT строки в доменные записи.
В результате вам в терминал будут выведены пути сертификатов, которые необходимо будет поправить в файле /etc/nginx/sites-available/proxy (если речь про сторонние сервисы, которые проксируются) или /etc/nginx/sites-available/superpuperhabr.ru (если речь про ваш сайт). Соответственно, меняете этот фрагмент в конфингах:
ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt; ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;
На тот, что был выведен в терминале по завершении работы Cerbot:
ssl_certificate /etc/letsencrypt/live/superpuperhabr.ru/fullchain.pem; ssl_trusted_certificate /etc/letsencrypt/live/superpuperhabr.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/superpuperhabr.ru/privkey.pem;
После указания новых путей к сертификатам в конфигах, необходимо применить конфигурацию NGINX:
sudo nginx -t && \ sudo service nginx reload && \ sudo systemctl restart nginx
Поскольку сертификаты действительны лишь три месяца, и чтобы не запускать постоянно команду на обновление:
certbot renew --force-renewal --post-hook "systemctl restart nginx"
Можно создать службу:
nano /etc/systemd/system/certbot-renewal.service
[Unit] Description=Certbot Renewal [Service] ExecStart=/usr/bin/certbot renew --force-renewal --post-hook "systemctl restart nginx"
nano /etc/systemd/system/certbot-renewal.timer
[Unit] Description=Timer for Certbot Renewal [Timer] OnBootSec=100 OnUnitActiveSec=1w [Install] WantedBy=multi-user.target
Пофиксим ошибку не указания nginx в конфиге перевыпуск сертификата:
sudo sed -i 's/manual/nginx/' /etc/letsencrypt/renewal/superpuperhabr.ru.conf
И запустим службу:
systemctl start certbot-renewal.timer && \ systemctl enable certbot-renewal.timer && \ systemctl status certbot-renewal.timer
У вас бесплатные Wildcard сертификаты на домен и его поддомены, а их выпуск автоматизирован на раз в неделю.
На этом все 🙂 А самурай может дальше продолжать свой путь.