# Serverspace.uz Knowledge Base
https://serverspace.uz/support/help/kubectl-rexec-audit-kubectl-exec-v-kubernetes-ustanovka-primery-i-komandy-kubectl.mdkubectl-rexec (Adyen) записывает и аудитирует kubectl exec-сессии: как работает (webhook + APIService), требования Kubernetes 1.29/1.30+, установка proxy и плагина, примеры применения, FAQ и шпаргалка команд kubectl.
## Введение
**kubectl exec** сам по себе почти не отвечает на вопрос "что именно делали внутри контейнера". В Kubernetes-аудите вы видите факт обращения к subresource _pods/exec_, но не содержимое интерактивной сессии. **kubectl-rexec** (плагин от Adyen) решает эту проблему: он проксирует exec через свой endpoint и публикует аудируемые события, чтобы у вас появился след действий "внутри".
GitHub репозиторий: [https://github.com/Adyen/kubectl-rexec](https://github.com/Adyen/kubectl-rexec)
## Когда kubectl-rexec особенно полезен
- **Compliance и расследования**: нужно понимать, какие действия выполнялись в поде во время инцидента (а не только "кто зашёл в shell").
- **Привилегированный доступ**: вы разрешаете exec только ограниченному кругу людей, но хотите прозрачность действий.
- **Change management**: "ручные правки в проде" должны оставлять след (например, изменение конфигов, ручной рестарт сервиса внутри контейнера).
## Как работает kubectl-rexec
Архитектура состоит из двух частей:
- **ValidatingWebhookConfiguration** — запрещает обычный _pods/exec_, если запрос не пришёл через rexec endpoint (или если пользователь не имеет права обхода).
- **APIService (rexec)** — принимает запросы от kubectl-плагина, преобразует их обратно в обычный exec и проксирует в kube-apiserver, параллельно создавая аудит-события. Проксирование делается через _impersonation_, потому что kube-apiserver не передаёт исходные креды дальше по цепочке.
## Требования и ограничения
- Проект ориентирован на кластеры, где exec работает через **websocket**. В README указано: Kubernetes **1.30** (feature gate включён по умолчанию) или Kubernetes **1.29** с включённым **TranslateStreamCloseWebsocketRequests=true**. Версии ниже 1.29 не поддерживаются.
## Установка
Установка делится на две части: **proxy-компонент в кластер** + **kubectl-плагин локально**.
### 1) Установить proxy в кластер
В quick start из репозитория предлагается применить манифесты через kustomize (обычно в kube-system). Команда также добавляет webhook, который отключает обычный kubectl exec.
```
kustomize build manifests/ | kubectl -n kube-system apply -f -
```
### 2) Установить kubectl-плагин
Быстрый вариант из Getting started — поставить плагин через **go install** и убедиться, что каталог с бинарями в PATH.
```
go install github.com/adyen/kubectl-rexec@latest
```
### 3) Проверить, что события пишутся
Для проверки можно посмотреть логи proxy-компонента (в дальнейшем их обычно отправляют в централизованное лог-хранилище).
```bash
kubectl -n kube-system logs -l app=rexec -f
```
## Использование
Плагин повторяет параметры обычного **kubectl exec**, но вызывается через **kubectl rexec exec ...**.
### Пример 1: интерактивная сессия bash
```bash
kubectl rexec exec -ti some-pod -- bash
```
### Пример 2: выполнить одну команду без TTY
```bash
kubectl rexec exec some-pod -- sh -c "id && uname -a"
```
### Пример 3: выбрать namespace и контейнер
```bash
kubectl -n production rexec exec -ti pod-name -c app -- sh
```
## Примеры применения в реальных процессах
- **"Break-glass" доступ**: выдаёте право на rexec ограниченной группе, а обычный exec блокируете webhook'ом.
- **Инциденты**: во время расследования вы видите не только "кто заходил", но и события/след от exec, и можете сопоставить это с логами приложения.
- **Операционные изменения**: если команда вынуждена делать ручные правки (hotfix), вы сохраняете аудит-трейл и снижаете "чёрную магию в проде".
## Где это удобно развернуть и как не потерять аудит
kubectl-rexec особенно полезен в self-managed Kubernetes, когда вы поднимаете кластер на виртуальных машинах и отвечаете за безопасность и аудит сами. В **Serverspace.uz** можно быстро развернуть облачные серверы под control plane/worker-ноды, а аудит-логи rexec проксировать в вашу систему логирования (например, Loki/ELK), чтобы след exec-сессий не терялся даже при пересоздании нод.
Cloud Servers: [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
## FAQ
### kubectl-rexec полностью заменяет Kubernetes Audit Logs?
Нет. Kubernetes audit по-прежнему нужен для фактов обращений к API (кто/когда/к чему). kubectl-rexec добавляет недостающую часть вокруг exec-потока за счёт проксирования и аудируемых событий на своём уровне.
### Почему нельзя просто смотреть audit logs pods/exec?
Обычный аудит фиксирует сам факт exec-запроса, но не даёт прозрачной картины "что делали внутри интерактивной сессии". Это и есть проблема, которую проект пытается закрыть.
### Какая минимальная версия Kubernetes нужна?
В README указано: поддерживаются кластеры, где exec работает по websocket: Kubernetes 1.30 (по умолчанию) или 1.29 с включённым **TranslateStreamCloseWebsocketRequests=true**; ниже 1.29 — не поддерживается.
### Где смотреть "аудит-события" rexec?
В quick start предлагается начать с логов proxy (kubectl -n kube-system logs -l app=rexec -f) и затем настроить централизованную доставку логов.
## Шпаргалка: основные команды kubectl
| Задача | Команда | Комментарий |
| --- | --- | --- |
| Проверить текущий контекст | kubectl config current-context | Показывает, с каким кластером вы сейчас работаете |
| Посмотреть все контексты | kubectl config get-contexts | Удобно, если у вас несколько кластеров/окружений |
| Переключить контекст | kubectl config use-context | Будьте аккуратны: легко "попасть не туда" |
| Список namespace | kubectl get ns | Быстрый обзор окружений |
| Поды в namespace | kubectl -n get pods | Добавьте -o wide, чтобы увидеть ноды и IP |
| Основные ресурсы в namespace | kubectl -n get pods,svc,deploy | Самый быстрый "health-check" по окружению |
| Описание пода (события/детали) | kubectl -n describe pod | Полезно при CrashLoopBackOff и проблемах с образом/секретами |
| Логи контейнера | kubectl -n logs -c | Добавьте -f (follow) и --tail=200 для удобства |
| Логи предыдущего контейнера | kubectl -n logs -c --previous | Очень полезно, когда контейнер быстро падает |
| Exec (обычный) | kubectl -n exec -ti -- sh | Может быть заблокирован webhook'ом rexec |
| Exec (аудируемый через rexec) | kubectl -n rexec exec -ti -- sh | Рекомендуемый вариант при включённом kubectl-rexec |
| Port-forward на сервис | kubectl -n port-forward svc/ 8080:80 | Быстро открыть доступ локально без Ingress |
| Port-forward на под | kubectl -n port-forward pod/ 8080:8080 | Полезно для дебага конкретного экземпляра |
| Применить манифест | kubectl apply -f file.yaml | Создать/обновить ресурсы |
| Diff перед apply | kubectl diff -f file.yaml | Понять, что изменится |
| Rollout статус деплоя | kubectl -n rollout status deploy/ | Контроль выката |
| Откат деплоя | kubectl -n rollout undo deploy/ | Вернуть предыдущую ревизию |
| События в namespace | kubectl -n get events --sort-by=.lastTimestamp | Быстро найти причины Pending/Failed |
| Проверить права (RBAC) | kubectl auth can-i create pods/exec -n | Понять, кто может делать exec |
## Вывод
**kubectl-rexec** — практичный способ добавить аудит вокруг kubectl exec там, где одного Kubernetes audit недостаточно. Он строится на блокировке "обычного" exec через validating webhook и проксировании exec через APIService, где можно формировать аудит-события. Для быстрого старта достаточно поставить proxy в кластер (kustomize → kube-system), установить kubectl-плагин и настроить сбор логов proxy в централизованное хранилище.
https://serverspace.uz/articles/kubectl-rexec-kubernetesda-kubectl-exec-auditi-ornatish-misollar-va-kubectl-buyruqlari.mdkubectl-rexec (Adyen) kubectl exec sessiyalarini yozib boradi va audit qiladi: u qanday ishlaydi (webhook + APIService), Kubernetes 1.29/1.30+ talablari, klasterga proxy va lokal plagin o‘rnatish, qo‘llash misollari, FAQ va kubectl buyruqlari uchun шпаргалка.
## Kirish
**kubectl exec** o'zi bilan "konteyner ichida aynan nima qilingan?" degan savolga deyarli javob bermaydi. Kubernetes audit'ida siz _pods/exec_ subresource'iga murojaat bo'lganini ko'rasiz, lekin interaktiv sessiya mazmunini ko'rmaysiz. **kubectl-rexec** (Adyen'ning plagin'i) shu muammoni yopadi: u exec'ni o'z endpoint'i orqali proksi qiladi va auditi mumkin bo'lgan hodisalarni (events) chiqaradi — shunda sizda "ichkarida" bajarilgan amallar izi paydo bo'ladi.
GitHub repozitoriy: [https://github.com/Adyen/kubectl-rexec](https://github.com/Adyen/kubectl-rexec)
## kubectl-rexec ayniqsa qachon foydali
- **Compliance va tergov**: insident paytida pod ichida qaysi amallar bajarilganini tushunish kerak (faqat "kim shell'ga kirdi" emas).
- **Privilegiyali kirish**: exec'ni faqat cheklangan guruhga ruxsat berasiz, lekin amallar shaffof bo'lishini xohlaysiz.
- **Change management**: "prod'da qo'lbola o'zgartirishlar" iz qoldirishi kerak (masalan, konfiguratsiyani o'zgartirish, konteyner ichida servisni qo'lda restart qilish).
## kubectl-rexec qanday ishlaydi
Arxitektura ikki qismdan iborat:
- **ValidatingWebhookConfiguration** — odatiy _pods/exec_'ni bloklaydi, agar so'rov rexec endpoint orqali kelmagan bo'lsa (yoki foydalanuvchida aylanib o'tish huquqi bo'lmasa).
- **APIService (rexec)** — kubectl-plagin'dan so'rovlarni qabul qiladi, ularni yana oddiy exec'ga aylantiradi va kube-apiserver'ga proksi qiladi, shu bilan birga audit hodisalarini yaratadi. Proksilash _impersonation_ orqali qilinadi, chunki kube-apiserver zanjir bo'ylab asl kredensiallarni uzatmaydi.
## Talablar va cheklovlar
- Loyiha exec websocket orqali ishlaydigan klasterlarga mo'ljallangan. README'da aytilgan: Kubernetes **1.30** (feature gate default holatda yoqilgan) yoki Kubernetes **1.29** va **TranslateStreamCloseWebsocketRequests=true** yoqilgan bo'lishi kerak. 1.29'dan past versiyalar qo'llab-quvvatlanmaydi.
## O'rnatish
O'rnatish ikki qismga bo'linadi: **klasterga proxy-komponent** + **lokal kubectl-plagin**.
### 1) Klasterga proxy'ni o'rnatish
Repo'dagi quick start'da manifestlarni kustomize orqali qo'llash (odatda kube-system'da) taklif qilinadi. Buyruq, shuningdek, odatiy kubectl exec'ni o'chirib qo'yadigan webhook'ni ham qo'shadi.
```
kustomize build manifests/ | kubectl -n kube-system apply -f -
```
### 2) kubectl-plagin'ni o'rnatish
Getting started'dagi tezkor variant — plagin'ni **go install** orqali o'rnatish va binarilar joylashgan katalog PATH'da ekanini tekshirish.
```
go install github.com/adyen/kubectl-rexec@latest
```
### 3) Hodisalar yozilayotganini tekshirish
Tekshiruv uchun proxy-komponent loglarini ko'rish mumkin (keyin odatda ularni markaziy log saqlash tizimiga yuborishadi).
```bash
kubectl -n kube-system logs -l app=rexec -f
```
## Foydalanish
Plagin oddiy **kubectl exec** parametrlarini takrorlaydi, faqat chaqirish ko'rinishi **kubectl rexec exec ...** bo'ladi.
### Misol 1: interaktiv bash sessiya
```bash
kubectl rexec exec -ti some-pod -- bash
```
### Misol 2: TTY'siz bitta buyruqni bajarish
```bash
kubectl rexec exec some-pod -- sh -c "id && uname -a"
```
### Misol 3: namespace va container'ni tanlash
```bash
kubectl -n production rexec exec -ti pod-name -c app -- sh
```
## Real jarayonlarda qo'llash misollari
- **"Break-glass" kirish**: rexec'ga huquqni cheklangan guruhga berasiz, odatiy exec'ni esa webhook orqali bloklaysiz.
- **Insidentlar**: tergov vaqtida faqat "kim kirganini" emas, balki exec'dan qolgan hodisalar/izni ko'rasiz va buni ilova loglari bilan solishtira olasiz.
- **Operatsion o'zgarishlar**: jamoa majburan qo'lbola hotfix qilsa ham, audit-treyl saqlanadi va "prod'dagi qora sehr" kamayadi.
## Qayerda qulay joylashtirish va audit'ni yo'qotmaslik
kubectl-rexec self-managed Kubernetes'da ayniqsa foydali: klasterni VM'larda ko'tarasiz va xavfsizlik hamda audit uchun o'zingiz javob berasiz. **Serverspace.uz**'da control plane/worker node'lar uchun bulut serverlarini tezda ishga tushirib, rexec proxy audit-loglarini o'zingizning log tizimingizga (masalan, Loki/ELK) proksi qilishingiz mumkin — shunda node'lar qayta yaratilsa ham exec-sessiyalar izi yo'qolmaydi.
Cloud Servers: [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
## FAQ
### kubectl-rexec Kubernetes Audit Logs'ni to'liq almashtiradimi?
Yo'q. Kubernetes audit baribir kerak: API'ga murojaat faktlari (kim/qachon/nimaga) uchun. kubectl-rexec esa exec oqimi atrofida yetishmayotgan qismni proksilash va o'z darajasida auditi mumkin bo'lgan hodisalar orqali to'ldiradi.
### Nega shunchaki pods/exec audit loglarini ko'rish yetarli emas?
Oddiy audit exec so'rovi bo'lganini qayd etadi, lekin interaktiv sessiya ichida "nima qilinganini" to'liq va shaffof ko'rsatmaydi. Loyihaning yopmoqchi bo'lgan muammosi ham shu.
### Kubernetes'ning minimal versiyasi qaysi?
README'da: exec websocket orqali ishlaydigan klasterlar qo'llanadi — Kubernetes 1.30 (default) yoki 1.29 va **TranslateStreamCloseWebsocketRequests=true** yoqilgan bo'lishi shart; 1.29'dan past — qo'llanmaydi.
### rexec'ning "audit-hodisalari"ni qayerdan ko'raman?
Quick start'da proxy loglaridan boshlash tavsiya qilinadi (kubectl -n kube-system logs -l app=rexec -f), keyin esa loglarni markaziy tizimga yetkazib berishni sozlaysiz.
## Shpargalka: kubectl'ning asosiy buyruqlari
| Vazifa | Buyruq | Izoh |
| --- | --- | --- |
| Joriy kontekstni tekshirish | kubectl config current-context | Hozir qaysi klaster bilan ishlayotganingizni ko'rsatadi |
| Barcha kontekstlarni ko'rish | kubectl config get-contexts | Bir nechta klaster/muhit bo'lsa qulay |
| Kontekstni almashtirish | kubectl config use-context | Ehtiyot bo'ling: "noto'g'ri joyga" tushib qolish oson |
| Namespace ro'yxati | kubectl get ns | Muhitlar bo'yicha tezkor ko'rinish |
| Namespace'dagi podlar | kubectl -n get pods | Node va IP'larni ko'rish uchun -o wide qo'shing |
| Namespace'dagi asosiy resurslar | kubectl -n get pods,svc,deploy | Muhit bo'yicha eng tez "health-check" |
| Pod'ni tavsiflash (hodisalar/tafsilotlar) | kubectl -n describe pod | CrashLoopBackOff va image/secret muammolarida foydali |
| Konteyner loglari | kubectl -n logs -c | Qulaylik uchun -f va --tail=200 qo'shing |
| Oldingi konteyner loglari | kubectl -n logs -c --previous | Konteyner tez yiqilganda juda foydali |
| Exec (oddiy) | kubectl -n exec -ti -- sh | rexec webhook'i tomonidan bloklanishi mumkin |
| Exec (rexec orqali audit qilinadigan) | kubectl -n rexec exec -ti -- sh | kubectl-rexec yoqilganida tavsiya etiladigan variant |
| Servisga port-forward | kubectl -n port-forward svc/ 8080:80 | Ingress'siz lokal kirishni tez ochish |
| Pod'ga port-forward | kubectl -n port-forward pod/ 8080:8080 | Muayyan instans'ni debug qilish uchun foydali |
| Manifestni qo'llash | kubectl apply -f file.yaml | Resurslarni yaratish/yangilash |
| Apply'dan oldin diff | kubectl diff -f file.yaml | Nima o'zgarishini tushunish |
| Deploy rollout holati | kubectl -n rollout status deploy/ | Vykatni nazorat qilish |
| Deploy'ni qaytarish (rollback) | kubectl -n rollout undo deploy/ | Oldingi reviziyani qaytarish |
| Namespace'dagi hodisalar | kubectl -n get events --sort-by=.lastTimestamp | Pending/Failed sabablarini tez topish |
| Huquqlarni tekshirish (RBAC) | kubectl auth can-i create pods/exec -n | Kim exec qila olishini tushunish |
## Xulosa
**kubectl-rexec** — Kubernetes audit'ining o'zi yetarli bo'lmagan joylarda kubectl exec atrofida audit qo'shishning amaliy usuli. U validating webhook orqali "oddiy" exec'ni bloklash va exec'ni APIService orqali proksi qilishga tayanadi — shu yerda audit-hodisalarni shakllantirish mumkin bo'ladi. Tez start uchun klasterga proxy'ni o'rnating (kustomize → kube-system), kubectl-plagin'ni o'rnating va proxy loglarini markaziy saqlash tizimiga yig'ishni sozlang.
https://serverspace.uz/articles/kak-bezopasno-otlazhivat-production-v-kubernetes-rbac-vremennye-dostupy-i-audit.mdРазбираем, как безопасно выполнять отладку в Kubernetes: минимальные привилегии (RBAC), временные credentials, доступ через gateway и полный аудит действий.
Отладка в production Kubernetes — задача, с которой рано или поздно сталкивается любая команда. Однако именно в этот момент чаще всего нарушаются базовые принципы безопасности: выдаются избыточные права, используются постоянные ключи и отсутствует аудит действий.
В результате debugging превращается в потенциальную точку компрометации всей инфраструктуры.
В этой статье разберем, как выстроить безопасный процесс отладки Kubernetes-кластера на основе рекомендаций из официального материала Kubernetes:
[https://kubernetes.io/blog/2026/03/18/securing-production-debugging-in-kubernetes](https://kubernetes.io/blog/2026/03/18/securing-production-debugging-in-kubernetes)
## Почему традиционный debugging опасен
Во многих командах до сих пор используется следующий подход:
- выдача роли cluster-admin
- доступ через общий bastion-хост
- использование долгоживущих SSH-ключей
Это удобно, но создает сразу несколько проблем:
- избыточные права доступа
- сложность отзыва доступа
- отсутствие прозрачного аудита
- высокий риск утечки данных
Такой подход противоречит принципу минимально необходимого доступа (least privilege) и значительно увеличивает поверхность атаки.
## Современный подход: безопасный debugging
Безопасная отладка в Kubernetes строится на трех ключевых принципах:
### 1. Минимальные привилегии (RBAC)
Вместо полного доступа используется granular RBAC:
- доступ только к нужному namespace
- ограничение операций (например, только get, describe, logs)
- временные роли под конкретную задачу
Это снижает риск при ошибках или компрометации.
### 2. Временные (ephemeral) credentials
Постоянные доступы заменяются на краткоживущие:
- токены с TTL (например, 15–60 минут)
- автоматическое истечение
- отсутствие "забытых" доступов
Даже если доступ скомпрометирован — он быстро становится недействительным.
### 3. Identity-based доступ
Каждое действие должно быть привязано к пользователю:
- индивидуальные учетные записи
- интеграция с IAM / SSO
- запрет на shared-доступ
Это позволяет точно понимать, кто и что сделал.
## SSH-доступ без SSH: Debug Gateway
Вместо прямого подключения к нодам используется подход с gateway:
создается debug-под или сервис
доступ осуществляется через него
применяются политики безопасности
Преимущества:
централизованный контроль доступа
возможность логирования сессий
ограничение команд и действий
По сути, это "SSH поверх Kubernetes", но безопасный.
## Access Broker: управление доступами
Ключевой элемент архитектуры — access broker.
Он отвечает за:
выдачу временных credentials
привязку пользователя к роли
контроль доступа к debug-сессиям
применение политик безопасности
Это аналог IAM, но для debugging-процессов.
## Аудит: без него нельзя
Любая отладка в production должна быть полностью прозрачной:
логирование Kubernetes API
запись действий пользователя
отслеживание debug-сессий
Это необходимо для:
расследования инцидентов
соответствия стандартам безопасности
контроля доступа
Ephemeral containers и kubectl debug
Современный Kubernetes предоставляет удобные инструменты для отладки:
kubectl debug
ephemeral containers
Они позволяют:
подключаться к running pod
не менять контейнерный образ
быстро диагностировать проблемы
Но важно:
даже такие операции должны выполняться с ограниченными правами и аудитом.
## Рекомендуемая архитектура
Безопасный процесс debugging выглядит так:
- Пользователь запрашивает доступ
- Access broker выдает временные credentials
- Доступ идет через debug gateway
- Применяется RBAC с минимальными правами
- Все действия логируются
- Итоги
## Безопасная отладка в Kubernetes — это баланс между скоростью и контролем.
Правильный подход позволяет:
- Минимизировать риски
- Исключить постоянные доступы
- Обеспечить полный аудит
- Соответствовать best practices DevSecOps
## FAQ
- **Зачем ограничивать доступ при debugging?**
Даже во время отладки ошибки могут привести к утечке данных или сбою всей системы. Ограничение прав снижает эти риски.
- **Что лучше: SSH или kubectl debug?**
kubectl debug безопаснее при правильной настройке, так как работает через Kubernetes API и может контролироваться через RBAC.
- **Какой TTL у временных доступов лучше использовать?**
Обычно 15–60 минут — достаточно для отладки и безопасно с точки зрения риска.
- **Можно ли обойтись без access broker?**
Теоретически да, но в production это усложняет управление доступами и аудит.
- **Обязательно ли логировать debug-сессии?**
Да. Это критично для безопасности и расследования инцидентов.
https://serverspace.uz/about/news/novyj-data-czentr-serverspace-v-uzbekistane-zapusk-lokaczii-tashkent-east-telecom-ya-dc.mdServerspace открыл новый дата-центр в Ташкенте (East Telecom YA DC). Пользователи могут развертывать VPS в Узбекистане с низкими задержками и Tier III инфраструктурой.
Serverspace расширил географию своей облачной платформы и запустил новую локацию в панели управления. Пользователям стала доступна возможность развертывания VPS в дата-центре East Telecom YA DC, расположенном в Ташкенте, Узбекистане. Новый регион ориентирован на проекты, работающие в Узбекистане, странах Центральной Азии и соседних регионах, где критичны минимальные задержки и размещение инфраструктуры ближе к конечным пользователям.
Дата-центр **East Telecom YA DC** соответствует международным требованиям надежности и спроектирован в соответствии с архитектурными рекомендациями Uptime Institute уровня Tier III. Площадка построена с учетом отказоустойчивости ключевых инженерных систем и обеспечивает стабильную и предсказуемую работу облачных сервисов.
### Инфраструктура и платформа
В новом узле используются серверные мощности на базе процессоров Intel Xeon Scalable второго поколения. Локация поддерживает развертывание виртуализированных сред на базе VMware и vStack, что позволяет запускать как стандартные облачные сценарии, так и корпоративные workloads. Для хранения данных в средах VMware применяются корпоративные системы хранения ITPOD, обеспечивающие надежность и стабильность работы инфраструктуры.
### Характеристики безопасности:
- Резервируемые системы электропитания и охлаждения (ИБП и дизель-генераторы);
- Системы охлаждения с резервированием для непрерывной работы оборудования;
- Газовое пожаротушение FM-200;
- Круглосуточный мониторинг и инженерный персонал на площадке (24/7).
Новая локация уже доступна в панели управления и подходит как для развертывания тестовых сред, так и для размещения production-нагрузок, где важны стабильность, отказоустойчивость и предсказуемая работа инфраструктуры.
### Как развернуть VPS в Узбекистане?
- Перейдите в панель управления и откройте раздел создания сервера;
- Выберите операционную систему и дата-центр — Ташкент, Узбекистан;
- Задайте конфигурацию сервера: CPU, объем RAM, SSD и параметры сети;
- Нажмите кнопку "**Создать**".
С запуском дата-центра East Telecom YA DC пользователи получают возможность размещать инфраструктуру уже в 10 дата-центрах по всему миру. В ближайшее время провайдер планирует дальнейшее расширение геораспределенной сети и открытие новых локаций.
https://serverspace.uz/about/blog/n8n-2026-yilda-oz-vpsingizda-kodsiz-avtomatlashtirish-serverspace-uz.md2026-yilda n8n nega kerak: workflows orqali kodsiz avtomatlashtirish, server/VPS’ga self-hosted o‘rnatish va IT, savdo hamda e-commerce uchun misollar. Serverspace.uz
**2026-yilda n8n nega kerak?**
n8n orqali avtomatlashtirish — turli servislarni tushunarli workflows (ssenariylar) ga "bog'lash" usuli. Shunda ma'lumotlar CRM, messenjerlar, pochta, to'lovlar, jadvallar va ichki tizimlar orasida qo'lda "sayr qilib yurmaydi".
2026-yilda deyarli har qanday kompaniyada vositalar soni jamoa tartibga keltirishga ulgurmasidan tezroq ko'payadi: CRM, Telegram-botlar, to'lov shlyuzlari, email jo'natmalar, Excel/Google Sheets, 1C, task-trekerlar, support, ombor, marketplace'lar. Bularning hammasi alohida yashasa, xodimlar doim ma'lumotni qo'lda ko'chiradi, marketing hisobotni "tez-tezcha" yig'adi, ishlab chiquvchilar esa bir xil skriptlarni yozadi — keyin ularni yana qo'llab-quvvatlash kerak bo'ladi. Bu vaqt, pul va sifatning bevosita yo'qotilishidir.
n8n tizimlar orasidagi "qo'l mehnati qatlamini" olib tashlaydi: bir servisdagi hodisa avtomatik ravishda boshqasida amallar zanjirini ishga tushiradi — biznes ham, texnik jamoa ham ko'ra oladigan qoidalar bo'yicha.
## n8n oddiy tilda nima?
**[n8n](https://serverspace.uz/solutions/razvernut-n8n-v-oblake.md)** (talaffuzi "en-ейт-en") — low-code/open-source avtomatlashtirish platformasi. Unda siz vizual ssenariylarni "tugunlar" (nodes) dan yig'asiz: bitta tugun workflow'ni ishga tushiradi (trigger), qolganlari esa harakatlarni bajaradi (CRM'ga yozish, xabar yuborish, ma'lumotni o'zgartirish, API chaqirish va h.k.).
n8n Workflows'ning asosiy g'oyasi: "agar X bo'lsa → Y qil → shartlarni tekshir → natijani yubor → logni saqla" ko'rinishidagi sxemani qurish. Kod shart emas, lekin kerak bo'lsa o'z step'laringizni (masalan, data processing) qo'shishingiz va API'dan foydalanishingiz mumkin.
### n8n Workflows qanday tuzilgan
• **Trigger** — ssenariyni ishga tushiradigan hodisa (webhook, jadval, yangi xat, jadvaldagi yangi yozuv, CRM'dagi event). • **Actions** — keyingi bajariladigan qadamlar (tekshiruvlar, transformatsiya, yozish, bildirishnoma, API chaqirish). • **Data** — bitta workflow ichida tugunlar orasida "ko'chib yuradi" va keyingi tizimga kerakli formatga aylanadi.
## n8n avtomatlashtirish misollari
**Misol 1 (savdo va support):** Outlook/pochta → mijozdan xat kelsa va "hisob-faktura" ilovasi bo'lsa → CRM'da deal/task yaratish → nusxasini bulut saqloviga saqlash → Telegram/Slack'da xabardor qilish → jadval/dashbordni yangilash.
**Misol 2 (marketing):**
Saytdagi forma → lead'ni CRM'ga yozish → dublikatlarni tekshirish → teg qo'yish → email zanjirini ishga tushirish → menejerni xabardor qilish → jadvalga log yozish.
**Misol 3 (operatsiyalar / e-commerce):**
Buyurtma statusi o'zgarsa → mijozga bildirishnoma yuborish → qoldiqni yangilash → чек/hujjatlarni generatsiya qilish → hisob tizimiga event yozish.
## Kimga kerak
**IT bo'limi**
- Xodimlarni onboarding: HR tizimida event bo'lsa — pochta, VPN, Jira/YouTrack, Slack/Teams'da akkauntlarni avtomatik yaratish.
- Nosozliklar bo'yicha ogohlantirish: log/metric monitoring va Telegram'ga bildirishnomalar.
- Tiketlarni boyitish: boshqa tizimlardan kontekstni tortib olish (mijoz, buyurtmalar, to'lov tarixi).
**DevOps**
- Rutina avtomatlashtirish: deploy/restart/tekshiruv trigger'lari, bildirishnomalar, "hodisa → amal → hisobot" zanjirlari.
- Alohida servis yozmasdan integratsiya: bir nechta API'ni tez "yopishtirish", har bir mayda vazifa uchun mikroservis ko'tarmaslik.
**Marketing va savdo**
- Forma, messenjer va CRM'ni "noldan" ishlab chiqmasdan sinxronlash.
- Kontentni jadval bo'yicha joylash va statistikani bitta vitrinaga yig'ish.
- Turli manbalardan lead'larni yagona ro'yxatga olib kelish va menejerlarga avtomatik taqsimlash.
**E-commerce**
- Hisob tizimidagi o'zgarishlarda qoldiq va buyurtma statuslarini yangilash.
- Buyurtma/yetkazib berish/to'lov bo'yicha email va messenjerlarda bildirishnomalar.
- Mahsulot kartalarini avtomatik to'ldirish, platformalar va ichki servislar bilan data almashish.
**SecOps / xavfsizlik**
- Insident kontekstini yig'ish: SIEM/AD/tiketlar/loglar → bitta hisobot → mas'ullarga xabar.
- Event'ga avtomatik reaksiya: bloklash, eskalatsiya, trigger bo'yicha tekshiruv чек-листlari.
## 2026-yilda n8n va "agentlar": qayerda haqiqatan foydali
2026-yilda avtomatlashtirish ko'pincha LLM qismni ham o'z ichiga oladi: murojaatlarni klassifikatsiya qilish, javob generatsiyasi, ilovalarni tahlil qilish, ma'lumotni normallashtirish. n8n'da bu odatda workflow ichidagi alohida node/step sifatida ishlanadi: zanjirga "aqlli" bosqich qo'shasiz — natija esa CRM, jadval yoki tiket tizimiga ketadi.
Bunga pragmatik yondashing: "agent" — sehr emas, balki kirish/chiqishi nazorat qilinadigan ssenariy ichida intellektual data processing'ni qulay ulash usuli.
## Taqqoslash: n8n vs custom code
Eng ko'p beriladigan savol: "Dasturchilarimiz bor-ku, nega konstruktor?"
Gap develop'ni almashtirishda emas, balki o'zgarishlarning tezligi va qiymatida. n8n tipik integratsion rutinani o'ziga oladi, dasturchilar esa mahsulot va murakkab logikaga fokus qiladi.
| Mezon | Custom develop | n8n |
| --- | --- | --- |
| Ishga tushirish tezligi | Haftalar/oylar (dizayn, develop, testlar) | Soatlar/kunlar (workflow interfeysda yig'iladi va tahrirlanadi) |
| O'zgarishlar narxi | Yuqori: kod, test, release | Pastroq: workflow'dagi qadamlar va shartlarni o'zgartirasiz |
| Biznes uchun shaffoflik | Logikani ko'pincha faqat dasturchilar ko'radi | Jarayon sxemasi ko'rgazmali va o'qilishi oson |
| Integratsiyalar | Har bir integratsiyani yozish va qo'llab-quvvatlash kerak | Ko'p tayyor connector'lar + API chaqirish imkoniyati |
| Yuklamalar | To'g'ri arxitektura bo'lsa, yuqori yuklamaga mos | Integratsiya va "o'rta qatlam" jarayonlari uchun optimal; ekstremal yuklamada alohida servislar/queue'lar ma'qul |
| Ma'lumot nazorati | Hammasi to'g'ri qilinsa — to'liq nazorat | Self-hosted'da ham to'liq nazorat |
## n8n qayerda mos emas
n8n kuchli orkestrator, lekin chegaralarni bilish muhim:
- **Ekstremal yuklama va millisekund SLA.** "Sekundiga minglab event" va qat'iy delay kerak bo'lsa, ko'pincha message broker'lar va maxsus yechimlar (Kafka/RabbitMQ va h.k.) ishlatiladi, n8n esa orkestratsiya uchun qoladi.
- **Murakkab moliyaviy va hisob-kitob logikasi.** Provodka, hisob, buxgalteriyani profil tizimlarda (ERP/1C) qoldirgan ma'qul.
- **Og'ir taqsimlangan hisoblashlar.** n8n hisoblash klasterlari uchun mo'ljallanmagan.
## Xavfsizlik va nazorat: SaaS vs self-hosted
**SaaS (n8n'ning bulut versiyasi)** — tez testlar va kichik vazifalar uchun qulay: admin kamroq, start tezroq.
**Self-hosted** — n8n'ni o'z server/VPS'ingizga o'rnatish: kirish, yangilanishlar, ma'lumot saqlash va tarmoq perimetri sizning nazoratingizda bo'ladi. Bu variant xavfsizlik talablari, access policy yoki ichki tizimlar bilan ishlash muhim bo'lganda tanlanadi.
**Air-gap** — internetga chiqmaydigan izolyatsiya qilingan muhit: n8n faqat ichki servislar (1C, DB, korporativ portal) bilan muloqot qiladi. Bu yopiq konturlar va qat'iy siyosatlar uchun foydali.
## n8n'ni server yoki VPS'ga o'rnatish: odatda nimalar kerak bo'ladi
Self-hosted n8n barqaror ishlashi uchun odatda shunday qilishadi:
- n8n'ni Ubuntu'da ko'tarish (ko'pincha Docker/Compose orqali).
- HTTPS qo'yish (reverse proxy), panelga kirishni cheklash (VPN/allowlist/Basic Auth).
- Backup sozlash (workflow konfiguratsiyalari + sozlamalar saqlanadigan DB).
- Zaifliklar to'planib qolmasligi uchun n8n va dependensiyalarni jadval bo'yicha yangilash.
Agar muhit tayyorlashga vaqt ketkazishni istamasangiz, mantiqiy yo'l — oldindan o'rnatilgan n8n bilan VPS olib, darrov workflows'ga o'tish.
## Serverspace.uz'da n8n: ortiqcha rutinarsiz tez start
Agar vazifa — avtomatlashtirishni tez joriy qilish va o'rnatishga vaqt sarflamaslik bo'lsa, boshqaruv panelida n8n bilan serverni ishga tushirish mumkin.
**Tayyor yechim orqali n8n'ni qanday ishga tushirish:**
- [Serverspace.uz boshqaruv paneli](https://auth.serverspace.uz/)ni oching va "Server yaratish"ni bosing.
- **vStack** platformasini va **Ubuntu** OS'ni tanlang.
- Tayyor ilovalar (1-Click Apps) bo'limida **n8n**'ni belgilang va deploy'ni boshlang.
- Server ishga tushgach, access'larni sozlang va birinchi workflows'ni yig'ishga o'ting.
**Muhim:** 1-Click App formatidagi n8n **vStack** serverlarida **Ubuntu** OS bilan mavjud.
Shuningdek, tayyor yechimlar katalogida **MySQL** va **Redis** ham bor — n8n bilan birga qo'shimcha servislar yoki integratsiyalar uchun DB va cache'ni tez ko'tarish qulay.
## Biznes nima oladi
- **Tezlik.** Ilgari mayda integratsion develop sabab haftalab cho'zilgan jarayonlar ancha tez ishga tushadi.
- **Tejamkorlik.** Qo'l mehnati kamayadi va keyin qo'llab-quvvatlashga to'g'ri keladigan "bir martalik" kod kamroq bo'ladi.
- **Nazorat.** Self-hosted yondashuv access va xavfsizlik siyosatlarini o'zingiz boshqarishingizga imkon beradi.
- **Ko'rgazmalilik.** Jarayon logikasini muhokama qilish, tekshirish va yaxshilash oson — u sxema ko'rinishida.
## FAQ
**1) n8n nima va u nima uchun kerak?**
n8n — integratsiyalarni avtomatlashtirish va orkestratsiya platformasi. U servislarni (CRM, DB, messenjer, API) workflows'ga bog'lab, jarayonlarni avtomatik bajaradi.
**2) n8n biznesda qaysi muammolarni hal qiladi?**
U tizimlar orasida data'ni qo'lda ko'chirishni olib tashlaydi va jarayonlarni tezlashtiradi: lead'lar CRM'ga tushadi, bildirishnomalar messenjerga ketadi, hisobotlar avtomatik yangilanadi.
**3) n8n'da ish qanday tashkil qilingan?**
Workflow — tugunlardan iborat sxema: trigger ssenariyni ishga tushiradi, keyin action qadamlar keladi (tekshiruv, data transformatsiyasi, yozish, bildirishnoma, API chaqirish).
**4) n8n'ning cheklovlari qanday?**
n8n ekstremal yuklama tizimlarini, moliyaviy hisobni va taqsimlangan hisoblashlarni almashtirmaydi. Uning kuchli tomoni — integratsiyalar va "o'rta qatlam" avtomatlashtirish.
**5) n8n'ni AI vazifalar uchun ishlatsa bo'ladimi?**
Ha, ko'pincha n8n workflows ichida AI bosqichlari uchun "karkas" sifatida ishlatiladi: klassifikatsiya, matn tahlili, javob generatsiyasi va natijani tizimlar bo'yicha marshrutlash.
## Yakun
Agar kompaniyangizda hanuz odamlar servislar orasida ma'lumotni qo'lda ko'chirayotgan bo'lsa va develop bir xil integratsiyalarda "botib" qolgan bo'lsa — siz pul yo'qotyapsiz. n8n aynan shu "o'rta qatlam"ni yopadi: har bir mayda ish uchun kod yozish foydasiz bo'lgan joyda ham, qo'lda qilish juda sekin bo'lgan joyda ham.
VPS'dagi self-hosted n8n nazorat, moslashuvchanlik va jarayonlarning tushunarli sxemasini beradi. Serverspace.uz panelidagi tayyor yechim orqali ishga tushirish esa eng muhimiga — workflows qurish va real avtomatlashtirishga — tezroq o'tishga yordam beradi.
https://serverspace.uz/about/blog/bulutga-asoslangan-jonli-video-oqimi-jonli-efirni-biznes-va-ommaviy-axborot-vositalari-tashkilotlari-uchun-qanday-yetkazib-beriladi.mdBulutga asoslangan jonli video oqimi: jonli efirni yetkazib berish qanday ishlaydi, CDN orqali kengaytirish va biznes hamda ommaviy axborot vositalari bulutni nega tanlaydi.
Live-video allaqachon bloger formati doirasidan chiqib ketgan. Bugun jonli efirlar — media, sport, biznes va sanoat uchun real ish quroli: yangiliklar chiqishlari va o'yinlardan tortib korporativ murojaatlar, mahsulot launch'lari va ishlab chiqarish maydonlaridan translyatsiyalargacha. Bu ssenariylarning hammasida umumiy risk bor — efir tomoshabinga nosozliksiz yetib borishi kerak. Auditoriya kutilmaganda oshib ketsa ham, maydondagi aloqa beqaror bo'lsa ham, translyatsiyani bir vaqtning o'zida bir nechta kanalda ko'rsatish kerak bo'lsa ham.
Ushbu materialda biz strimingga amaliy nuqtai nazardan qaraymiz: live-video yetkazib berish qanday tuzilgan, "oqimni bir marta yubording — keyin tarqatding" prinsipi amalda nimani anglatadi, nega loyihalar strimingni tobora ko'proq bulutga ko'chiryapti va yaqin yillarda bozorda qanday o'zgarishlar kutiladi.
## Striming — avvalo yetkazib berish
"Striming" so'zi ko'pincha player, chat, ro'yxatdan o'tish va interfeyslar bilan bog'lanadi. Ammo bularning barchasi — ustki qatlam. Har qanday translyatsiyaning asosi — live-video transporti: signalni qabul qilish, uni barqarorlashtirish, masshtablash va yakuniy tomoshabinga yetkazish.
Amaliyotda strimingni ikki darajaga bo'lish qulay:
- **platforma darajasi** — interfeyslar, foydalanuvchi funksiyalari, auditoriya bilan muloqot;
- **transport darajasi** — oqimni qabul qilish, yetkazish, masshtablash va rezervlash.
Aynan transport darajasi efir "bo'ladimi-yo'qmi"ni hal qiladi. Yetkazib berish ishlamasa, qolgan hamma narsa ma'nosini yo'qotadi.
## Live-video transporti nimadan iborat
Transport strimingni uchta mantiqiy bosqichdan iborat zanjir sifatida tasavvur qilish mumkin.
- **Oqimni kiritish (ingest).** Manba live-video'ni bulutga bir marta yuboradi — tarmoqqa chiqish bor istalgan nuqtadan. Bu bosqichda ko'pincha moslik uchun RTMP ishlatiladi yoki aloqa beqaror bo'lsa va uzatish barqarorligi muhim bo'lsa — SRT tanlanadi.
- **Tomoshabinga yetkazish.** Qabul qilingandan so'ng oqim ko'rish uchun tayyorlanadi va HLS yoki LL-HLS kabi formatlarda tarqatiladi. Bu protokollar brauzerlarda yaxshi ishlaydi va CDN orqali oson masshtablanadi — auditoriya keskin oshsa ham ko'tarib ketadi.
- **Multi-output (bir nechta chiqish).** Bitta oqimni bir vaqtning o'zida saytga, ilovaga yoki uchinchi tomon platformalariga chiqarish mumkin. Bu efirni boshqarishni soddalashtiradi va ko'rsatish uchun rezerv variantlar beradi.
## Striming qanday qilib kundalik formatga aylandi
Onlayn translyatsiyalar bir necha o'n yillardan beri mavjud. Strimingning ilk urinishlari 1990-yillarda paydo bo'lgan, lekin o'sha paytda tarmoq tezligi va kodlash imkoniyatlari cheklangan edi. Vaqt o'tishi bilan internet tezlashdi, kodeklar samaraliroq bo'ldi, foydalanuvchi ssenariysi esa "havolani ochding — ko'ryapsan" darajasigacha soddalashdi.
Format "hozir va shu yerda" voqeada ishtirok etayotgandek effekt muhim bo'lgan joylarda ommaviylashdi. Shuning uchun striming eng tez o'yin hamjamiyatlari, kiber-sport va live-shou'larda mustahkamlandi. Keyin esa u boshqa sanoatlarda ham faol qo'llanila boshladi — jumladan tijorat va tor segmentlarda, bu yerda auditoriya bilan bevosita aloqa jalb qilish va monetizatsiyaga to'g'ridan-to'g'ri ta'sir qiladi.
## Nega live-video bulutga ko'chmoqda
Jonli efirlarning o'ziga xosligi shundaki: nosozliklar eng noqulay paytda — efir ketayotganda, tomoshabinlar ulanganida va xato narxi yuqori bo'lganda yuz beradi. Shuning uchun bulutli yechimlarga o'tish ko'pincha trend emas, amaliy ehtiyoj.
Asosiy sabablar:
- auditoriya piklari oldindan aytib bo'lmasligi;
- tomoshabinlarning keng geografiyasi;
- yuqori ishonchlilik talablari;
- infratuzilmani qayta qurmasdan masshtablash zarurati.
Bulut "zaxira mustahkamlik"ni oldindan qo'yish imkonini beradi va "har ehtimolga" o'z infratuzilmangizni doimiy ushlab turishga majbur qilmaydi.
## Transport qatlami kritik bo'lgan ssenariylar
Transport striming ayniqsa barqaror yetkazib berish va nazorat ustuvor bo'lgan joylarda talab qilinadi.
- **Media va yangiliklar.** Field tasvirga olishdan signalni ishonchli qabul qilish va uni auditoriya yoki hamkorlarga yetkazish, ko'rsatish uchun rezerv kanallarni saqlab qolish.
- **Sport va ommaviy tadbirlar.** Bitta efir — ko'p tomosha nuqtalari, pikda yuqori yuklama va minimal kechikish.
- **Korporativ translyatsiyalar va o'qitish.** Kirish nazorati, o'z domeningiz, oldindan bashorat qilinadigan sifat va ichki xavfsizlik siyosatlariga moslik.
- **Sanoat va IoT ssenariylari.** Beqaror tarmoqlar orqali video uzatish, keyinroq marshrutlash, yozib olish va tahlil qilish imkoniyati.
- **E-commerce va brendlar.** Launch'lar va live-shopping — trafikni ko'tara olish va muayyan platforma cheklovlariga bog'lanib qolmaslik muhim bo'lgan holatlar.
## Transport sifatida bulutli strimingni qanday tanlash kerak
Agar strimingga aynan "yetkazib berish" sifatida qarasangiz, quyidagi parametrlar muhim:
- kirishda va yetkazishda protokollarni qo'llab-quvvatlash;
- multi-output imkoniyati;
- auditoriya keskin oshganda barqarorlik;
- kechikishni oldindan tushunarli boshqarish;
- xavfsizlik va kirish nazorati mexanizmlari;
- tushunarli tariflash modeli.
## Barqaror efir uchun minimal resurslar
1080p standart translyatsiya uchun odatda resurs bo'yicha zaxira quyidagicha rejalashtiriladi:
- bitta oqim uchun 2–4 vCPU va 4–8 GB RAM;
- yozib olish yoki qayta ishlash bo'lsa — tez disklar (NVMe);
- tomoshabin geografiyasini hisobga olgan holda yetarli tarmoq o'tkazuvchanligi.
## Live-video bozori qayerga ketmoqda
Auditoriya kutishlari o'zgaryapti: endi shunchaki "ishlashi" emas, efir sifati va boshqariluvchanligi ham muhim.
- Past va barqaror kechikish standartga aylanmoqda.
- "Bitta efir — bir nechta kontur" modeli bazaviy amaliyotga aylanyapti.
- Avtomatlashtirish qo'lda sozlashni siqib chiqaryapti.
- Yopiq va korporativ translyatsiyalar ulushi oshyapti.
- Oqimni kiritish (ingest) barqarorligi eng muhim omillardan biriga aylanmoqda.
Natijada bozor yanada oldindan bashorat qilinadigan, masshtablanuvchi va nazorat qilinadigan striming tomonga harakat qilmoqda.
## Striming bo'yicha FAQ
- **Transport striming nima?** Bu live-oqimni qabul qiladigan va uni tomoshabinlarga hamda boshqa kanallarga yetkazib berishga javob beradigan servis.
- **Nega transportni platformadan ajratish kerak?** Bitta ko'rsatish nuqtasiga bog'lanib qolmaslik va yetkazib berish marshrutini boshqarish uchun.
- **HLS va LL-HLS o'rtasidagi farq nima?** LL-HLS masshtablanuvchanlikni saqlagan holda kechikishni kamaytiradi.
- **Qachon SRT ishlatish kerak?** Manba beqaror tarmoqlarda ishlasa va uzatish barqarorligi muhim bo'lsa.
- **Bitta efirni bir nechta kanalda tarqatish mumkinmi?** Ha, bu transport strimingning bazaviy ssenariysi.
## Serverspace'da striming qanday ishlaydi
Serverspace'da striming live-video transporti sifatida amalga oshirilgan: oqim bir marta yuboriladi, undan keyin yetkazib berish va multi-output sozlanadi. Kerak bo'lsa, translyatsiyalar uchun alohida serverlarni ko'tarish va ularni aniq vazifa ostida masshtablash mumkin — bitta videoplatformaga "mahkamlanib" qolmasdan.
## Live-efirlarni ishga tushirishdagi tipik xatolar
Jonli efirlardagi muammolarning ko'pi "internet yomon"ligidan emas, balki tayyorgarlik bosqichidagi xatolardan kelib chiqadi. Ko'p uchraydigan holat — infratuzilmani o'rtacha yuklama bo'yicha hisoblash va pikni inobatga olmaslik: translyatsiyaning dastlabki daqiqalarida eng ko'p tomoshabin ulanadi. Ikkinchi tipik xato — rezerv ssenariyning yo'qligi: bitta signal manbasi, bitta yetkazish marshruti va bitta ko'rsatish nuqtasi. Zanjirdagi istalgan element ishdan chiqsa, efir shunchaki to'xtaydi. Shuningdek, oqimni kiritish (ingest) ko'pincha yetarlicha baholanmaydi: beqaror kanal, mos kelmagan protokol yoki paketlarni qayta yuborish mexanizmlari yo'qligi yetkazish bosqichigacha ham "siltanish" va audio/video sinxron muammolariga olib keladi.
## Kechikish vs barqarorlik: aslida qaysi biri muhimroq?
Minimal kechikish ortidan quvib, live-video'ning eng muhim parametri — oldindan bashorat qilinadigan barqarorlikni — o'tkazib yuborish oson. Juda past kechikish, agar efir doim "suzib" tursa, kadrlar yo'qolsa yoki ovoz ortda qolsa, yaxshi tajriba bermaydi. Ko'pchilik ssenariylar — korporativ translyatsiyalardan tortib ommaviy tadbirlargacha — uchun bir necha soniyalik barqaror kechikish minimal, lekin "sakrab turadigan" kechikishdan yaxshiroq. Tomoshabin uchun efirning silliq, uzluksiz ketishi muhimroq: boshlovchi, operator va auditoriya bir xil vaqt kontekstida bo'lishi kerak, hatto bu mutlaq "real-time" bo'lmasa ham.
https://serverspace.uz/about/blog/vpsdagi-telegram-bot-serverda-ishga-tushirish-boyicha-toliq-qollanma.mdTelegram-botni VPS’ga ko‘chirish va 24/7 ishga tushirish bo‘yicha qo‘llanma: BotFather tokeni, Python/Node.js tanlovi, polling vs webhook, systemd autostart va server xavfsizligi.
Telegram'dagi bot mijozlarga javob berishi, arizalarni yig'ishi, ogohlantirishlar yuborishi va hatto butun bir bo'limning rutin ishlarini o'z zimmasiga olishi mumkin. Muammo shundaki, u uy noutbukida faqat qopqoq birinchi marta yopilguncha "yashaydi". Wi-Fi yo'qoldi, noutbuk osilib qoldi, elektr o'chdi — bot jim.
Yechim oddiy: botni VPS'ga ko'chirish — bu 24/7 ishlaydigan virtual server. Ushbu qo'llanmada butun yo'lni ko'rib chiqamiz: BotFather orqali Telegram'da botni qanday ulash, logikani qaysi tilda yozish, Telegram botni serverga qanday o'rnatish va u yiqilib qolmasligi uchun nimalar qilish kerak. Telegram botni serverga qanday yuklash, Telegram botni serverda qanday ishga tushirish va Telegram bot uchun qaysi server kerakligini ham tushuntiramiz. Hatto serverlar bilan hech qachon ishlamaganlar uchun ham mos.
## Nega Telegram-botga uy kompyuteri emas, alohida server kerak
Bot — aslida skript: Python yoki Node.js'dagi fayl, u Telegram Bot API orqali kiruvchi xabarlarni "tinglaydi" va ularga javob qaytaradi. Skript doimiy ishlashi shart. U uy kompyuterida aylansa, har qanday "mayda narsa" (elektr o'chdi, OS yangilandi, kimdir routerni qayta yukladi) botni ishdan chiqaradi.
VPS (Virtual Private Server) — bu data-markazdagi ijaraga olingan virtual mashina. U o'chmaydi, aloqa kanali barqaror, IP-manzil esa doimiy. Normal hosting provayderlari 99,9% uptime kafolatlaydi — demak bot deyarli uzluksiz aloqada bo'ladi, hatto uyingizda internet sustlashsa ham.
Barqarorlikdan tashqari, VPS oddiy PC'da bo'lmaydigan imkoniyatlarni beradi: bot yonida DB ko'tarish, tezkor reaksiya uchun webhook sozlash, bir vaqtning o'zida 5 ta botni ishga tushirish. "Telegram bot uchun server qilish" deganda fizik temir sotib olish emas, balki oyiga bir necha yuz rublga virtual mashina ijaraga olish nazarda tutiladi. Uy kompyuteri faqat kod yozish bosqichiga mos.
## Ishga tushirish uchun nima kerak: 5 daqiqada texnologiyalar steki
Telegram'da botni ulash va uni "online"ga chiqarish uchun 3 ta komponent kerak bo'ladi. Birinchisi: messenjer ichida @BotFather orqali ro'yxatdan o'tkazilgan bot. Ikkinchisi: Telegram API bilan ishlash logikasi yozilgan Python yoki Node.js'dagi kod. Uchinchi: Ubuntu'da ishlaydigan VPS — kod 24/7 aynan shu yerda ishlaydi.
To'lov faqat VPS ijarasi uchun bo'ladi. Telegram Bot API uchun bir tiyin ham olmaydi, freymvorklar bepul, Ubuntu esa litsenziyasiz ishlatiladi. Quyida har bir elementni alohida ko'rib chiqamiz.
## Telegram'da bot yaratish va BotFather orqali token olish
Botni serverga o'rnatishdan oldin uni ro'yxatdan o'tkazish kerak. Telegram'da buning uchun ichki vosita bor: @BotFather boti. Messengerni oching, qidiruvdan BotFather'ni toping va Start bosing.
So'ng /newbot yozing. BotFather avval chat tepasida ko'rinadigan "display name"ni so'raydi. Keyin noyob username berish kerak. Yagona talab: username oxiri bot yoki _bot bilan tugashi shart. Masalan: my_company_support_bot.
Agar nom bo'sh bo'lsa, BotFather token yuboradi. U taxminan shunday ko'rinadi: 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ. Aslida bu botning paroli. Tokenga ega bo'lgan odam botni to'liq boshqaradi, shuning uchun tokenni jiddiy himoya qiling.
Token bilan ishlashning asosiy qoidalari: uni kod ichiga emas, .env fayliga saqlang; .env'ni .gitignore'ga qo'shing, repozitoriyga tasodifan "push" bo'lib ketmasin; sizib chiqishdan shubhalansangiz, BotFather'da /mybots ni tanlab tokenni qayta chiqarib oling.
## Botni qaysi tilda yozish kerak: Python, Node.js yoki boshqami
Telegram Bot API HTTP orqali ishlaydi, shuning uchun texnik jihatdan istalgan dasturlash tili mos keladi. Amalda esa ko'pchilik Python yoki Node.js'ni tanlaydi.
**Python + aiogram 3.x:** rus tilida ishlaydigan dasturchilar orasida eng ommabopi. To'liq async, hujjatlar batafsil, ustiga-ustak Groosha'dan bepul kengaytirilgan qo'llanma bor. Oddiy echo-botdan tortib DB, to'lov va tashqi servisli murakkab tizimlargacha ko'taradi.
**Python + python-telegram-bot:** boshlovchilar uchun yaxshi variant. Kirish osonroq, dokumentatsiyasi sifatli (lekin ingliz tilida).
**Node.js + Telegraf / grammY:** JavaScript'da yozadiganlar uchun. Telegraf barqaror va yillar davomida sinovdan o'tgan, grammY esa yangiroq va TypeScript bilan yaxshiroq ishlaydi.
Bu qo'llanmada misollar Python + aiogram'da bo'ladi, chunki bu serverda Telegram botni ishga tushirish uchun eng keng tarqalgan tanlov (boshlovchilar orasida ham).
## Polling va webhook: xabarlarni olishning ikki usuli va qaysi birini tanlash
Kimdir botga yozganida, Telegram xabarni o'z tomonida navbatga qo'yadi. Sizning kodingiz uni ikki xil usulda "olishi" mumkin.
**Long polling:** bot vaqti-vaqti bilan Telegram serverlariga "yangi narsa keldimi?" deb murojaat qiladi. Javob bo'lmaguncha ulanish ochiq turadi. Asosiy plus: domen, sertifikat va oq IP kerak emas. Skriptni ishga tushirdingiz — bot ishlayapti. Minuslari: ulanishni ushlab turish resurs yeydi, reaksiya 1–2 soniyaga sekinroq bo'lishi mumkin.
**Webhook:** siz Telegram'ga URL berasiz, va messenjer har yangi xabarda POST so'rovini o'zi yuboradi. Javob darhol, serverga yuk deyarli nol. Evaziga HTTPS'li domen kerak bo'ladi: Nginx sozlash, SSL sertifikat olish. Odatda buni yuzlab/minglab foydalanuvchili prod uchun tanlashadi.
| Mezon | Long polling | Webhook | Tavsiya |
| --- | --- | --- | --- |
| Sozlash | Minimal, darrov ishlaydi | Domen + SSL kerak | Start uchun polling |
| Javob tezligi | 1–2 soniyagacha kechikish | Darhol | Prod uchun webhook |
| Serverga yuk | Doimiy ulanish | Faqat hodisa bo'lganda | Webhook tejamkor |
| Ommaviy IP kerakmi | Yo'q | Ha | Polling osonroq |
| Nimaga mos | Develop, kichik yuklama | Prod, yuqori yuklama | Vazifaga bog'liq |
Birinchi ishga tushirish va ko'p vazifalar uchun polling yetarli. Bu Telegram botni serverga ulashning eng sodda yo'li: domen va sertifikat bilan ovora bo'lmaysiz. Keyinroq tezlik kerak bo'lsa, bot logikasini qayta yozmasdan webhook'ka o'tish mumkin — faqat Telegram serveriga ulanish usuli o'zgaradi.
## Telegram-bot uchun qaysi server kerak va bu qancha turadi
Botni VPS'da ishga tushirish uchun kuchli temir shart emas. Telegram-bot aslida yengil fon jarayoni: kunning katta qismida u shunchaki xabar kutadi. Resurslar faqat so'rov kelgan soniyalarda sarflanadi.
Bitta oddiy bot uchun minimum: 1 vCPU, 1 GB RAM va 10–20 GB SSD. Bu matn buyruqlarini qayta ishlaydigan va javob beradigan Python skript uchun yetarli. OS sifatida Ubuntu 22.04 yoki 24.04 LTS tanlang.
Agar bot yonida DB (PostgreSQL, SQLite) yoki cache uchun Redis bo'lsa, 2 GB RAM olgan ma'qul. Bir serverda bir nechta bot yoki neyroset bilan bog'liq variantlar uchun 4 GB RAM'dan boshlang.
Telegram bot serveri narxi hosting va konfiguratsiyaga bog'liq. Taxminan: eng yengil VPS oyiga 200–300 rubl atrofida. [Serverspace](https://serverspace.uz/services/vps-server.md)'da konfiguratsiya "slayderlar" bilan yig'iladi: yadro, xotira, disk. Moskva data-markazi, minutli billing va Docker'li tayyor image'lar bor — hammasini noldan qo'lda o'rnatishga hojat qolmaydi.
## Telegram-botni serverda ishga tushirish: bosqichma-bosqich
Amaliyotga o'tamiz. Quyida 5 ta qadam: Telegram botni serverga deploy qilish va ishlaydigan natija olish uchun. Aslida bu — botni serverga bosqichma-bosqich joylash. Misollar Python + aiogram uchun (python'da serverda telegram botni ishga tushirish), lekin umumiy mantiq istalgan stack'da bir xil.
### 1-qadam. SSH orqali serverga ulanib, tizimni tayyorlaymiz
VPS yaratilgach, provayder IP va root parolni beradi. Terminalni oching (macOS/Linux'da bor, Windows'da PowerShell yoki PuTTY mos) va bajaring:
```bash
ssh root@SIZNING-IP
```
Ulangandan so'ng paketlarni yangilang:
```bash
apt update && apt upgrade -y
```
Bot uchun alohida user yarating. Root ostida ishga tushirish yomon amaliyot: kodda bitta "teshik" bo'lsa, hujumchi butun serverni oladi.
```
adduser botuser usermod -aG sudo botuser
```
### 2-qadam. Python o'rnatamiz va virtual muhit yaratamiz
Ubuntu 22.04/24.04'da Python 3 odatda bor, lekin pip va venv moduli alohida o'rnatiladi:
```bash
apt install python3-pip python3-venv -y
```
botuser ostida login qiling, loyiha papkasini yarating va venv'ni yoqing:
```
su - botuser mkdir mybot && cd mybot python3 -m venv venv source venv/bin/activate
```
Virtual muhit dependency'lar tizim paketlari bilan to'qnashmasligi uchun kerak. Ayniqsa bitta serverda bir nechta loyiha bo'lsa.
### 3-qadam. Bot kodini yuklaymiz va dependency'larni o'rnatamiz
Agar kod Git'da bo'lsa:
```bash
git clone https://github.com/SIZNING-REPO/mybot.git . pip install -r requirements.txt
```
Repo yo'qmi? Fayllarni o'zingizning kompyuteringizdan scp orqali ko'chiring yoki botni bevosita serverda yozing. Aslida "Telegram botni serverga qanday tashlash" degani — fayllarni yetkazish va dependency'larni o'rnatish.
Bot yonida .env fayl yarating va token yozing:
```
BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
Tokenni hech qachon kod ichiga yozmang. Faqat environment orqali.
### 4-qadam. Botni ishga tushirib, tekshiramiz
Avval qo'lda ishga tushiring: [code]python3 bot.py
```
Telegram'da bot username'ini toping va /start yuboring. Javob kelsa — kod ishlayapti, dependency'lar joyida, token to'g'ri. To'xtatish: Ctrl+C.
Hozircha bot SSH sessiya ochiq bo'lgancha yashaydi. Terminalni yopsangiz, bot yiqiladi. Keyingi qadam shuni tuzatadi.
### 5-qadam. systemd orqali avtomatik ishga tushirishni sozlaymiz
systemd — Ubuntu'dagi servis menejeri. U OS startida botni ishga tushiradi va nosozlikdan keyin avtomatik ko'taradi. Unit fayl yarating:
```
sudo nano /etc/systemd/system/mybot.service
```
Ichiga quyidagini joylang:
```
[Unit] Description=My Telegram Bot After=network.target [Service] User=botuser WorkingDirectory=/home/botuser/mybot ExecStart=/home/botuser/mybot/venv/bin/python3 bot.py Restart=always RestartSec=5 EnvironmentFile=/home/botuser/mybot/.env [Install] WantedBy=multi-user.target
```
Servisni yoqing va ishga tushiring:
```bash
sudo systemctl daemon-reload sudo systemctl enable mybot sudo systemctl start mybot
```
Status: sudo systemctl status mybot. Loglar: journalctl -u mybot -f. Endi bot serverda joylashdi va reboot'ni ham "omon" o'tkazadi.
## Bot va serverni qanday himoyalash: paranoyasiz xavfsizlik
Telegram botni serverga ulash qiyin emas, va buni "bepul" qilish ham mumkin — chunki himoya uchun utilitalar Ubuntu bilan birga keladi. "Bepul ulash" degani software tomoni: budjetdagi yagona pulli satr — VPS ijarasi.
**Token .env'da, kodda emas.** 1-qoida. Token ochiq GitHub'ga tushsa, skanerlar uni bir necha daqiqada topadi. .env'ni albatta .gitignore'ga kiriting.
**Parol o'rniga SSH-key.** O'zingizda ssh-keygen bilan kalit juftini yarating, public key'ni serverga yuboring (ssh-copy-id) va /etc/ssh/sshd_config'da parol bilan kirishni o'chiring. Shunda password brute-force befoyda bo'ladi.
**Firewall (UFW).** Faqat kerakli portlarni oching: SSH uchun 22, webhook + HTTPS bo'lsa 80 va 443. Qolgani yopiq tursin:
```
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
```
**fail2ban** loglarni kuzatadi va ko'p marta noto'g'ri kirishga uringan IP'ni avtomatik ban qiladi. O'rnatish:
sudo apt install fail2ban -y.
**Alohida user.** 1-qadamda botuser yaratdik. Root'dan ishlatish xavfli: kodda zaiflik bo'lsa, hujumchi darrov butun serverga ega bo'ladi.
## Bot ishga tushgandan keyin yiqilishiga olib keladigan 5 ta xato
Telegram'da botni o'rnatish va ishga tushirishni bilsangiz ham, mayda xatolar hammasini buzishi mumkin. Mana eng ko'p uchraydiganlari:
- **Token ochiq repozitoriyda.** Kod GitHub'ga "push" bo'ladi, token esa faylda qoladi. Skanerlar darrov topadi, natijada bot boshqaruvi begona qo'lga o'tadi. Yechim: .env + .gitignore.
- **Process manager'siz ishga tushirish.** python3 bot.py SSH sessiyada ishga tushadi. Terminal yopildi — process o'ldi. screen/tmux ham reboot'dan keyin yordam bermaydi. To'g'ri yo'l: systemd va Restart=always.
- **Exception'lar ushlanmagan.** Bitta ushlanmagan xato butun jarayonni yiqitadi. Telegram turli tipdagi xabarlar yuboradi, kod birontasiga tayyor bo'lmasa bot "sinadi". try/except qo'llang va log yozing.
- **Telegram API limitidan oshish.** Telegram sekundiga 30 ta xabargacha yuborishga ruxsat beradi. Navbatsiz mass-jo'natma 429 (Too Many Requests)ga olib keladi va bot "jim" bo'lib qoladi. asyncio.Queue yoki Celery ishlating.
- **VPS noto'g'ri tanlangan.** Juda kuchsiz — bot ulgurmaydi. Juda kuchli — pul "bo'sh" yadroga ketadi. 1 GB RAM'dan boshlang, htop'da monitoring qiling va real ko'rsatkich bo'yicha masshtablang.
## Bot bilan nimalarni avtomatlashtirish mumkin: biznes uchun 5 ta ssenariy
Botni serverda ishga tushirish — maqsad emas, vazifalarni hal qilish uchun vosita. Botni serverga joylagach, undan qanday foyda olish mumkinligini ko'rib chiqing.
**Mijozlarni qo'llab-quvvatlash.** Bot kiruvchi murojaatlarni tahlil qiladi, kategoriyalarga ajratadi va tipik savollarga avtomatik javob beradi. Murakkab holatlar operatorga o'tadi. Bot 24/7 ishlaydi.
**Bildirishnoma va alert'lar.** Trigger bo'lsa bot xabar yuboradi: sayt yiqildi, CRM'da lead keldi, CI/CD build tugadi. Siz hodisani pochta ochganda emas, soniyalar ichida bilasiz.
**Kanallarga autoposting.** Jadval bo'yicha yoki yangi material chiqqanda bot Telegram kanalga postni o'zi joylaydi. Media, blog va do'konlar uchun mos.
**To'lovli do'kon.** Telegram ichki to'lovlarni qo'llab-quvvatlaydi (Stars ham). Bot katalogni ko'rsatadi, buyurtma oladi va to'lovni chat ichida qabul qiladi — tashqi saytga o'tmasdan.
**Neyroset bilan integratsiya.** Botga LLM API (OpenAI, Ollama, istalgan self-hosted LLM) ulab, erkin savollarga javob beradigan, hujjatlardan "siqma" qiladigan va matn yozadigan assistent olasiz.
## Xulosa
Bo'sh serverdan ishlaydigan Telegram chat-botgacha — 5 qadam va taxminan 15–20 daqiqa. BotFather orqali ro'yxatdan o'tish, kod, VPS ijarasi, fayllarni yuklash va autostart sozlash. Terminalga umuman kirmagan bo'lsangiz ham, bu yerda "super murakkab" hech narsa yo'q.
Eng yengil konfiguratsiyadan boshlang. [Serverspace'da VPS ijaraga oling](https://serverspace.uz/services/vps-server.md), botni polling orqali ishga tushiring va real sharoitda sinab ko'ring. Auditoriya o'ssa — paneldagi slayderlar bilan resurslarni migratsiyasiz oshiring, webhook'ka o'ting, DB ulang. Kirish oson, natijani esa birinchi kunning o'zida ko'rasiz.
## Ko'p beriladigan savollar
### VPS'siz, bepul bot ishga tushirish mumkinmi?
Eksperiment uchun — ha: bot noutbukingizda ham ishlaydi. Ba'zi bepul bulut platformalari ham ruxsat beradi, lekin odatda bir necha daqiqa faol bo'lmasa process'ni "uxlatib" qo'yadi. 24/7 barqaror ish uchun VPS eng ishonchli variant bo'lib qoladi.
### Bitta serverda nechta bot ushlab turish mumkin?
Yuklamaga bog'liq. 2 GB RAM'li VPS odatda 3–5 ta yengil botni bemalol ko'taradi. Docker qo'llasangiz, har bot alohida container'da ishlaydi va bir-biriga halaqit bermaydi.
### Telegram-bot uchun domen kerakmi?
Polling'da yo'q — IP yetarli. Webhook'da esa ha: Telegram faqat HTTPS URL qabul qiladi, sertifikat olish uchun domen kerak bo'ladi.
### Nega Docker systemd'dan yaxshiroq?
Docker bot muhitini to'liq "qadoqlaydi": Python versiyasi, kutubxonalar, konfiguratsiyalar. Bir serverda turli dependency'li bir nechta bot bo'lsa yoki tez boshqa mashinaga ko'chish kerak bo'lsa qulay. Bitta oddiy bot uchun esa systemd ham yetarli.
### Bot javob bermay qo'ysa nima qilish kerak?
Avval sudo systemctl status mybot ni tekshiring, keyin loglarni ko'ring: journalctl -u mybot --since '1 hour ago'. Ko'pincha sabab — RAM yetishmasligi, kodda ushlanmagan xato, token eskirib qolishi yoki Telegram serverlari bilan aloqa uzilishi.
https://serverspace.uz/about/blog/uzbekistonda-serveringizga-chat-gpt-ni-qanday-ornatish-2026-yil-uchun-toliq-qollanma.mdO'zbekistonda ChatGPTning mahalliy analogini bosqichma-bosqich o'rnatish: Ollama + Qwen 2.5 + Open WebUI. Model tanlovi, VPS/GPU talablari.
ChatGPT O'zbekistonda odatda ishlaydi, ammo biznesda baribir tez-tez cheklovlar chiqib qoladi: to'lovlar va obunalar, xavfsizlik talablari, ma'lumotlarni saqlash siyosati, ba'zan esa oddiygina tashqi platformaga bog'liqlik (qoidalar o'zgardi — jarayon to'xtadi). Yana klassik muammo bor: xodimlarga ichki vazifalar uchun assistent kerak, lekin u yerga hujjatlar, yozishmalar va mijozlar bazasini yuborish — risk.
Shuning uchun tobora ko'proq amaliy yechim tanlanmoqda: ChatGPT'ga o'xshash o'z analogingizni o'z serveringizda ishga tushirish — lokal nazorat bilan, xorijiy kartalar/obunalarga bog'lanmasdan va "begona bulut"siz.
Yaxshi xabar: bugun bu real. Bepul ochiq modellar ko'p vazifalar uchun yetarlicha "aqlli", o'rnatish esa odatda 10–15 daqiqa va terminalda bir nechta buyruq bilan hal bo'ladi.
Ushbu qo'llanmada hammasini bosqichma-bosqich ko'rib chiqamiz:
- o'zingizning ChatGPT'ingizni qanday qilish va qaysi modelni tanlash;
- qaysi serverni ijaraga olish;
- qulay veb-interfeysli ishlaydigan chat-botni qanday olish.
Serverlar bilan avval ishlamaganlar uchun ham mos.
## Agar tayyor chat-botlar va SaaS-servislar bo'lsa, nega o'zimga ChatGPT kerak?
Bugun ko'plab tayyor yechimlar bor: lokal va xalqaro LLM-servislar, korporativ chat-botlar, mahsulot ichidagi "aqlli assistentlar". Maishiy vazifalar yoki tezkor testlar uchun ko'pincha shu ham yetadi.
Ammo gap biznes va sezgir ma'lumotlar haqida ketganda, savollar boshlanadi.
Xodim tashqi chat-botga ichki hujjat, mijoz bilan yozishma yoki bazadan parcha yuborsa, ma'lumotlar uchinchi tomon platformasiga ketadi. Kompaniya "qayerda va qanday saqlanadi, kim kiradi, loglar yoziladimi, ertaga nima bo'ladi" degan savollarda bevosita nazoratni yo'qotadi. Hatto hammasi "qoidalarga ko'ra" bo'lsa ham, ichki xavfsizlik siyosatlari va mijoz talablari ko'pincha ancha qattiq nazoratni so'raydi.
Lokal ChatGPT bu muammoni yopadi. Siz quyidagilarga ega bo'lasiz:
- **To'liq maxfiylik.** Model sizning serveringizda ishlaydi, ma'lumotlar tashqariga chiqmaydi, loglar begona bulutga yozilmaydi.
- **Bot ichida o'zingizning hujjatlaringiz.** RAG texnologiyasi orqali ichki fayllarni yuklab, aynan sizning spesifikangizni biladigan assistent olishingiz mumkin.
- **Limitlarsiz.** 5 yoki 50 kishilik jamoaga xabarlar soni bo'yicha cheklovsiz kirish berish mumkin.
- **Mustaqillik.** Tariflar, qoidalar, bloklar va tashqi integratsiyalar o'zgarishiga bog'liq bo'lmaysiz.
Bu bulut chat-botlariga "o'rinbosar" emas. Bu — nazorat, maxfiylik va oldindan bashorat qilinadigan ish jarayoni muhim bo'lgan holatlar uchun boshqa vosita.
## O'z serveringizda ChatGPT'ni ishga tushirish uchun nima kerak?
Butun stek 3 ta komponentdan iborat va ularning barchasi bepul.
- **Ollama** — til modellarini yuklab oladigan va ishga tushiradigan dvijok. Linux, macOS va Windows'da ishlaydi, bitta buyruq bilan o'rnatiladi. Ollama soddaligi bilan mashhur: Python muhitlari, dependency'lar va konfiguratsiyalar bilan ovora bo'lmaysiz. Yukladingiz, ishga tushirdingiz — ishlaydi. Ichkarida llama.cpp'dan foydalanadi, u CPU'da ham, GPU'da ham samarali ishlay oladi.
- **Ochiq til modeli** — bu sizning ChatGPT'ingizning "miyasi". Modellar Ollama katalogida bepul: Qwen, Llama, Mistral, DeepSeek va boshqalar. Bitta buyruq bilan yuklanadi, o'lchami modelga qarab 4–40 GB bo'lishi mumkin.
- **Open WebUI** — ko'rinishi deyarli ChatGPT'ga o'xshash veb-interfeys. Rol'lar bilan bir nechta foydalanuvchi, modellarni almashtirish, hujjat yuklash va dialog tarixini qo'llaydi. Docker orqali bitta buyruqda ishga tushadi.
Pulli qismdan faqat server kerak bo'ladi. Ubuntu'li VPS mos. Masalan, **Serverspace.uz**'da bulut serverini tez ijaraga olib, kerakli konfiguratsiya bilan o'zingizning ChatGPT'ingizni ko'tarishingiz mumkin — obunasiz va tashqi servisga bog'lanmasdan.
Cloud Servers: [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
## GPT-4 o'rniga qaysi modelni tanlash kerak?
Asl ChatGPT yopiq modellarda ishlaydi — ularni yuklab bo'lmaydi. Ammo ochiq modellar oxirgi yillarda juda kuchaydi: ko'plari kundalik vazifalarda GPT-3.5 darajasiga yaqin, eng yaxshilari esa ayrim ssenariylarda "top" darajaga yaqinlashmoqda.
Asosiy parametr — parametrlar soni: 7B, 14B, 70B va h.k. (B — milliard). Parametr ko'p bo'lsa sifat yuqori, lekin resurs ham ko'proq kerak bo'ladi. Rus tilidagi ko'p vazifalar uchun odatda 7B–14B yetadi.
Ikkinchi muhim nuqta — kvantizatsiya: modelni 3–4 baravar siqadi, sifat esa minimal yo'qoladi. Q4 formati ko'pincha eng yaxshi "kompromiss" hisoblanadi.
Amaliy start variantlari:
- **Qwen 2.5** — rus tili va universal vazifalar uchun kuchli tanlov.
- **Llama 3.x** — kod va inglizcha ssenariylar uchun yaxshi.
- **Mistral 7B** — resurs cheklanganda tezligi bilan foydali.
| Model | Parametrlar | Q4'da RAM | CPU tezligi | Rus tili | Nimaga mos |
| --- | --- | --- | --- | --- | --- |
| Qwen 2.5 7B | 7 mlrd | 8 GB'dan | Tez | A'lo | Chat, matnlar, umumiy vazifalar |
| Qwen 2.5 14B | 14 mlrd | 12 GB'dan | O'rtacha | A'lo | Analitika, murakkab so'rovlar |
| Llama 3.x 8B | 8 mlrd | 8 GB'dan | Tez | O'rtacha | Kod, inglizcha vazifalar |
| Mistral 7B | 7 mlrd | 8 GB'dan | Juda tez | O'rtacha | Tezlik, yengil vazifalar |
## Lokal ChatGPT uchun qaysi server kerak?
Hammasi model o'lchamiga bog'liq.
**GPU'siz (faqat CPU):**
- 7B (Q4): **8 GB+** RAM, **4 ta CPU yadro**. Javoblar bir necha soniyada.
- 13B/14B: **16 GB+** RAM. CPU ko'taradi, lekin sekinroq.
- Kattaroq modellar CPU'da ko'pincha juda sekin bo'lib qoladi.
**GPU bilan:**
- 12 GB VRAM: 7B — tez javob.
- 16–24 GB VRAM: 14B — qulay generatsiya.
- 40+ GB VRAM: 70B — odatda kuchli GPU-server kerak.
10 kishigacha jamoa uchun ko'pincha **16 GB RAM** va 7B darajadagi model (Q4) yetadi. Tezlik yoki kattaroq model kerak bo'lsa, GPU konfiguratsiyalarini ko'rib chiqing.
**Maslahat:** minimal konfiguratsiyadan boshlang va real ssenariylarni "bo'yidan" o'tkazing. Keyin yuklama o'ssa — resurslarni oshirish osonroq.
| Ssenariy | Tavsiya etiladigan model | CPU / GPU | Xotira | Izoh |
| --- | --- | --- | --- | --- |
| Start, rus/uzb matnlar | Qwen 2.5 7B (Q4) | CPU 4+ cores | 8–16 GB RAM | Optimal kirish varianti |
| Ko'proq sifat | Qwen 2.5 14B (Q4) | CPU 6+ cores yoki GPU | 12–24 GB RAM | CPU ko'taradi, lekin sekinroq |
| Tez va qulay | 7B–14B | GPU 12–24 GB VRAM | 16+ GB RAM | Deyarli darhol javob |
## O'zingizning ChatGPT'ingizni 15 daqiqada o'rnatish: bosqichma-bosqich
Amaliyotga o'tamiz. Jarayon 4 qadamdan iborat.
### 1-qadam. Serverni tayyorlash
Ubuntu 22.04 yoki 24.04'li VPS ijaraga olgach, SSH orqali ulaning va tizimni yangilang:
```bash
apt update && apt upgrade -y
```
Diskda yetarli joy borligini tekshiring: 7B (Q4) model ~4 GB, Open WebUI Docker image bilan yana ~2 GB oladi. Zaxira bilan kamida 20 GB.
### 2-qadam. Ollama o'rnatish va modelni yuklash
Ollama bitta buyruq bilan o'rnatiladi:
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
Keyin modelni yuklab oling:
```
ollama pull qwen2.5:7b
```
Ko'proq sifat kerak bo'lsa:
```
ollama pull qwen2.5:14b
```
Terminalda tekshirish:
```
ollama run qwen2.5:7b
```
Chiqish: Ctrl+D (Ollama fon rejimida servis bo'lib qoladi).
### 3-qadam. Docker o'rnatish va Open WebUI'ni ishga tushirish
Docker o'rnatilmagan bo'lsa:
```bash
apt install docker.io -y
```
Open WebUI'ni ishga tushirish:
```bash
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
```
Brauzerda oching:
```
http://SIZNING-IP:3000
```
Akkaunt yarating.
**Muhim:** birinchi ro'yxatdan o'tgan foydalanuvchi admin bo'ladi. Birinchi akkauntni kechiktirmang.
### 4-qadam. Sozlash va birinchi ishga tushirish
Open WebUI sozlamalarida Ollama manzili default bo'yicha **http://localhost:11434**. To'g'ri bo'lsa, yuklangan model ro'yxatda chiqadi. Modelni tanlang, xabar yuboring — javob kelsa, hammasi tayyor.
**Keyingi sozlamalar:**
- RAG uchun hujjat yuklash;
- kompaniya vazifalari uchun system prompt;
- bir nechta model qo'shish va almashtirish;
- hamkasblarga kirish berish (har birida o'z dialog tarixi).
## Ilovalardan o'zingizning ChatGPT API'ga qanday ulanish mumkin?
Ollama OpenAI formatiga mos API beradi. Ko'p integratsiyalarda faqat server manzilini almashtirish yetadi.
API 11434 portda, kalit kerak emas. Curl bilan tekshirish:
```bash
curl http://localhost:11434/v1/chat/completions -d '{"model":"qwen2.5:7b","messages":[{"role":"user","content":"Salom"}]}'
```
Ulab qo'yish mumkin:
- xodimlar yoki mijozlar uchun Telegram-bot
- CRM'da arizalarni avtomatik qayta ishlash
- bilim bazasi bo'yicha javob generatsiyali tex-support
**Muhim:** agar Ollama va ilova turli serverlarda bo'lsa, tashqi ulanishni ruxsat bering: **OLLAMA_HOST=0.0.0.0:11434** ni qo'ying va Ollama'ni restart qiling. 11434 portni firewall bilan yopib, faqat ishonchli IP'lar uchun oching.
## Startdagi tipik xatolar va ularni oldini olish
- **Ollama portini internetga ochib qo'yish.** Himoyasiz bo'lsa, istalgan odam so'rov yuboradi. **Yechim:** SSH tunnel yoki avtoratsiyali Nginx reverse proxy.
- **Resursga mos bo'lmagan model.** Katta model — kuchsiz VPS'da "daqiqasiga bitta so'z". **Yechim:** 7B (Q4)dan boshlang, keyin masshtablang.
- **HTTPS yo'qligi.** Login/parollar ochiq ketadi. **Yechim:** Nginx + Let's Encrypt.
- **Kontekst kichik.** 2048 token uzun dialog uchun kam. **Yechim:** RAM'ga qarab **OLLAMA_NUM_CTX**ni (masalan 8192) oshiring.
- **Yangilanishlarni unutish.** Modellar tez yaxshilanadi. **Yechim:** 1–2 oyda bir marta **ollama pull**.
## Xulosa
Toza serverdan brauzerda ishlaydigan chat-botgacha — 4 qadam va 10–15 daqiqa: Ollama, model, Open WebUI, bazaviy sozlash. Obunasiz va tashqi platformalarga bog'lanmasdan.
Biznes uchun o'z serveridagi ChatGPT:
- **Amaliy:** jamoa uchun limitlarsiz assistent.
- **Nazorat:** ma'lumotlar va kirishlar sizda qoladi.
Kichikdan boshlang: **Serverspace.uz**'da bulut serverini ijaraga oling, 7B modelni o'rnating va real ishda sinab ko'ring. Natija yoqsa — resurslarni oshiring, modellar qo'shing, og'ir vazifalar uchun GPU ulang.
Cloud Servers: [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
https://serverspace.uz/about/blog/ozbekistonda-vps-va-vds-farqi-va-2026-yilda-qaysi-birini-tanlash-kerak.mdVPS va VDS o‘rtasidagi farqni tushuntiramiz hamda 2026-yilda O‘zbekistonda sayt, ilova yoki biznes uchun virtual serverni qanday tanlashni ko‘rsatamiz: izolyatsiya, resurslar va masshtablash.
## VPS va VDS nima: farqi nimada va 2026-yilda qaysi birini tanlash kerak
**VPS** va **VDS** atamalari server infratuzilmasini tanlashda tez-tez uchraydi, biroq amaliyotda hatto tajribali mutaxassislar ham ularni ko'pincha sinonim sifatida ishlatadi. Rasman ikkala variant ham ajratilgan resurslarga ega virtual serverlarga kiradi, ammo ayrim farqlar mavjud — va ba'zi holatlarda ular muhim bo'lishi mumkin.
Ushbu maqolada VPS va VDS tushunchalari nimani anglatishini, 2026-yilda ular orasida haqiqiy farq bor-yo'qligini hamda O'zbekistonda sayt, ilova yoki biznes uchun qaysi formatni tanlash maqsadga muvofiq ekanini ko'rib chiqamiz.
## VPS va VDS — asosiy tushunchalar sodda tilda
**VPS (Virtual Private Server)** va **VDS (Virtual Dedicated Server)** — bu virtualizatsiya texnologiyalari yordamida jismoniy serverda yaratilgan virtual mashinalardir. Foydalanuvchi izolyatsiyalangan muhit, o'z operatsion tizimi, root-kirish va kafolatlangan resurslarga ega bo'ladi.
Chalkashlik shundaki, turli provayderlar bu atamalarni turlicha talqin qiladi. Marketingni chetga sursak, vaziyat quyidagicha ko'rinadi:
| Atama | Mazmuni | Asosiy g'oya |
| --- | --- | --- |
| VPS | Umumiy jismoniy serverda ishlaydigan virtual server | Bir xil apparatni bo'lishgan holda izolyatsiya va kafolatlangan resurslar |
| VDS | Ajratilgan server logikasiga ega virtual mashina | Qo'shni resurslarsiz maksimal resurs ajratilishi |
Shuni tushunish muhim: gipervizorlar rivojlanishi bilan VPS va VDS o'rtasidagi texnik farq deyarli yo'qolib ketdi. Zamonaviy bulutli infratuzilmalarda ikkala variant ham yuqori darajadagi izolyatsiya, barqarorlik va unumdorlikni ta'minlaydi.
## Amaliyotda farqi nimada
### VPS qanday ishlaydi
VPS jismoniy serverda yaratiladi va u bir nechta virtual mashinalar o'rtasida bo'linadi. Har bir VM quyidagi resurslarning aniq hajmini oladi:
- protsessor yadrolari;
- operativ xotira;
- SSD disk;
- tarmoq o'tkazuvchanligi;
- shaxsiy IP-manzil;
- operatsion tizimga to'liq kirish.
Gipervizor to'g'ri sozlangan bo'lsa, bunday virtual mashinalar bir-biriga ta'sir qilmaydi va mustaqil ishlaydi.
### VDS qanday ishlaydi
VDS ham texnik jihatdan virtual mashina hisoblanadi, biroq resurslar bir mijoz uchun yanada qat'iy ajratilgan bo'ladi. Odatda u xavfsizlik talablari yuqori bo'lgan yoki yuklama aniq prognoz qilinishi kerak bo'lgan loyihalarda tanlanadi.
Ko'pincha VDS quyidagi holatlarda ishlatiladi:
- maksimal izolyatsiya kerak bo'lsa;
- rasmiy ravishda qo'shni virtual mashinalar bo'lmasligi talab qilinsa;
- sohaviy yoki normativ talablarga mos kelish zarur bo'lsa;
- barqaror va o'zgarmas yuklama talab qilinsa.
## Ko'pchilik loyihalar uchun VDS kerakmi
Amaliyotda — yo'q. Bulutli provayderlar statistikasi shuni ko'rsatadiki, mijozlarning aksariyati VPS tanlaydi, chunki u:
- shunga o'xshash unumdorlik bilan arzonroq;
- oson masshtablanadi;
- saytlar va ilovalar uchun barcha vazifalarni qoplaydi;
- xavfsizlik bo'yicha zamonaviy VDS yechimlaridan qolishmaydi.
Shu sababli bugungi kunda ko'pincha yagona atama qo'llanadi — **virtual server**, VPS va VDS o'rtasida qat'iy farq qilinmaydi.
## Nega bozor VPS ni tanlamoqda
### Moslashuvchan masshtablash
VPS loyiha o'sishi bilan resurslarni oshirish imkonini beradi — ma'lumotlarni ko'chirmasdan va xizmatni to'xtatmasdan. Bu ayniqsa O'zbekistondagi biznes va onlayn xizmatlar uchun muhim, chunki yuklama notekis o'sishi mumkin.
### Muhit ustidan to'liq nazorat
Foydalanuvchi operatsion tizimni, texnologiya stekini va server konfiguratsiyasini mustaqil tanlaydi. Bu oddiy hostingdagi kabi cheklovlarni yo'q qiladi.
### Ajratilgan IP-manzil
Har bir VPS o'z IP-manziliga ega bo'ladi. Bu SEO, pochta xizmatlari, API va SSL sertifikatlari uchun muhim.
### Izolyatsiya va xavfsizlik
Virtual mashina boshqa mijozlardan to'liq ajratilgan. Qo'shni loyihalardagi xatolar yoki yuklama server ishiga ta'sir qilmaydi.
### Universallik
VPS da saytlar, ma'lumotlar bazalari, korporativ servislar, VPN, dev va prod muhitlarini joylashtirish mumkin — sun'iy cheklovlarsiz.
## VPS va VDS asosiy parametrlar bo'yicha taqqoslash
| Mezon | VPS | VDS |
| --- | --- | --- |
| Izolyatsiya darajasi | Yuqori | Maksimal |
| Qo'shni VM lar | Jismoniy host darajasida mavjud | Rasmiy ravishda yo'q |
| Unumdorlik | Barqaror va prognoz qilinadigan | Maksimal darajada qat'iy |
| Narx | Pastroq | Yuqoriroq |
| Tipik vazifalar | Saytlar, ilovalar, biznes servislar | Tartibga solinadigan yoki kritik tizimlar |
## Qachon VPS optimal tanlov bo'ladi
Ko'pincha VPS quyidagi vazifalar uchun tanlanadi:
- saytlar va internet-do'konlar;
- korporativ portallar;
- CRM va ERP tizimlari;
- backend ilovalar;
- API va mikroservislar;
- test va production muhitlari;
- bulutli ma'lumotlar bazalari;
- pochta va VPN serverlar.
Bu startaplar hamda rivojlangan biznes uchun mos keladigan universal vositadir.
## Mahalliy FAQ: O'zbekistonda VPS va VDS
- **O'zbekistonda VPS va VDS o'rtasida farq bormi?** Amaliyotda — juda kichik. Zamonaviy VPS lar ham VDS kabi yuqori izolyatsiya va barqarorlikni ta'minlaydi.
- **Sayt yoki internet-do'kon uchun nimani tanlash kerak?** VPS. U yetarli unumdorlik, masshtablash va moslashuvchanlikni ortiqcha xarajatlarsiz ta'minlaydi.
- **VPS O'zbekistondagi biznes uchun mosmi?** Ha. VPS kompaniya saytlarini, ichki servislarni, CRM va mahalliy auditoriyaga mo'ljallangan ilovalarni joylashtirish uchun ishlatiladi.
- **Qachon VDS ni ko'rib chiqish kerak?** Agar loyiha izolyatsiya yoki normativ talablar bo'yicha qat'iy shartlarga ega bo'lsa.
- **VPS resurslarini serverni ko'chirmasdan oshirish mumkinmi?** Ha, resurslarni serverni ko'chirmasdan va xizmatni to'xtatmasdan masshtablash mumkin.
## O'zbekistonda Serverspace VPS
Serverspace VPS-serverlari infratuzilmani O'zbekiston hududidagi lokatsiyada joylashtirish imkonini beradi, bu esa mamlakat ichidagi foydalanuvchilar uchun past kechikish va barqaror ulanishni ta'minlaydi. Bu ayniqsa mintaqaviy bozorga yo'naltirilgan saytlar va xizmatlar uchun muhim.
Serverspace platformasi zamonaviy bulutli arxitektura asosida qurilgan va self-service yondashuviga yo'naltirilgan: server boshqaruv paneli orqali bir necha daqiqada yaratiladi, konfiguratsiya esa loyiha ehtiyojlariga mos ravishda tanlanadi. Foydalanuvchi resurslar, operatsion tizim va tarmoq sozlamalarini mustaqil boshqaradi.
Bunday format yangi loyihalarni ishga tushirish yoki virtual hosting va jismoniy serverlardan migratsiya qilish uchun mos bo'lib, O'zbekistondagi bizneslarga masshtablanadigan va barqaror IT-infratuzilma yaratishga yordam beradi.
https://serverspace.uz/about/blog/lokalizacziya-personalnyh-dannyh-v-uzbekistane-chto-vazhno-znat-biznesu-v-2026-godu.mdЧто такое локализация персональных данных в Узбекистане и зачем она бизнесу в 2026 году. Требования закона, риски хранения за рубежом и как правильно разместить данные в Ташкенте.
## Введение
**Локализация персональных данных в Узбекистане** в 2026 году становится обязательным требованием для бизнеса, работающего с пользователями внутри страны. Законодательство усиливается, а регуляторы всё чаще обращают внимание на то, где именно хранятся данные.
Для компаний это означает необходимость пересматривать инфраструктуру: выбирать, где размещать серверы, как обрабатывать данные и как избежать юридических рисков.
Речь идёт не только о соблюдении закона, но и о **безопасности, скорости сервисов и доверии пользователей**.
## Что такое локализация персональных данных
Локализация данных — это требование, согласно которому **персональные данные граждан Узбекистана должны храниться и обрабатываться на серверах внутри страны**.
Это касается:
- пользовательских аккаунтов
- CRM и клиентских баз
- данных сотрудников
- веб-сервисов и мобильных приложений
## Законодательная база
Требование закреплено в законе "О персональных данных" (№ ЗРУ-547), который действует с 2019 года, а также в подзаконных актах.
На практике это означает:
- **необходимость контролировать, где физически размещены данные**
- ограничения на трансграничную передачу данных
- обязанность обеспечивать защиту информации
- **ответственность за нарушения**
## Что считается нарушением
К типичным нарушениям требований локализации относятся:
- хранение персональных данных за пределами Узбекистана без соблюдения требований
- отсутствие контроля за местом размещения серверов
- передача данных третьим лицам без законных оснований
- использование зарубежных облаков без учёта локальных требований
## Почему это важно для бизнеса
### Юридические риски
Хранение данных за пределами страны может привести к штрафам, ограничениям и проблемам с регуляторами.
### Безопасность
При размещении данных за рубежом сложнее контролировать доступ и соответствие требованиям по защите информации.
### Производительность
**Сервер в Узбекистане** обеспечивает более низкую задержку и быстрый отклик сервисов для пользователей.
## Какие риски, если не соблюдать локализацию
Игнорирование требований может привести к следующим последствиям:
- **штрафы и санкции**
- ограничение или блокировка сервисов
- проблемы с платежными системами и партнёрами
- потеря доверия пользователей
## Кому это особенно важно
Требования актуальны для компаний, которые обрабатывают персональные данные:
- **финтех и банки**
- **интернет-магазины и e-commerce**
- **образовательные платформы**
- **медицинские сервисы**
- **SaaS и мобильные приложения**
## Как выполнить требования локализации данных в Узбекистане
### Хранение за границей
Удобно на старте, но **не соответствует требованиям законодательства**.
### Гибридная модель
Часть данных хранится локально, часть — за рубежом. Требует сложной архитектуры и постоянного контроля.
### Локальное облако
**Оптимальное решение** — размещение данных в дата-центре на территории Узбекистана.
## Как бизнесу выполнить требования на практике
Самый простой способ — использовать **облачную инфраструктуру с размещением в Узбекистане**, где серверы физически находятся внутри страны.
Это позволяет сразу решить вопрос с локализацией и избежать сложных архитектурных решений.
## Облачная инфраструктура Serverspace в Узбекистане
Serverspace предоставляет облачную платформу с размещением в Ташкенте, что позволяет бизнесу **соответствовать требованиям локализации персональных данных в Узбекистане** без дополнительных сложностей.
Инфраструктура размещена в дата-центре East Telecom YA DC уровня Tier III, что обеспечивает высокую отказоустойчивость и стабильность работы сервисов.
**В отличие от зарубежных облачных провайдеров**, использование Serverspace позволяет сразу хранить данные внутри страны и избежать юридических рисков.
## Почему это важно
Размещение инфраструктуры в Узбекистане позволяет:
- **соответствовать требованиям законодательства**
- снизить задержки и ускорить работу сервисов
- обеспечить стабильный доступ для пользователей
- избежать рисков трансграничной передачи данных
## Технические особенности площадки
Дата-центр в Ташкенте обеспечивает:
- резервируемое питание и охлаждение
- круглосуточный мониторинг
- систему пожаротушения FM-200
- серверы на базе Intel Xeon Scalable
- надежные системы хранения данных
## Преимущества Serverspace
### Быстрый запуск
Вы можете развернуть сервер в Узбекистане **от 40 секунд**.
### Гибкая оплата
Оплата только за фактически используемые ресурсы.
### Масштабируемость
Легкое увеличение ресурсов без простоев.
### Простое управление
Удобная панель управления без сложной настройки.
### Поддержка технологий
VMware и vStack для привычной работы.
### Подходит для задач
- веб-сайты и интернет-магазины
- базы данных
- backend-сервисы
- разработка и тестирование
- высоконагруженные проекты
## Практический пример
Если интернет-магазин хранит данные пользователей за границей, он рискует нарушить требования законодательства и получить проблемы с производительностью.
Перенос инфраструктуры на сервер в Узбекистане позволяет устранить эти риски и ускорить работу сайта.
## Чеклист: соответствует ли ваш проект требованиям
Проверьте:
- где физически размещены ваши серверы
- где хранится база пользователей
- передаются ли данные за границу
- есть ли контроль за обработкой данных
- используется ли локальная инфраструктура
## Итог
**Локализация данных в Узбекистане** — это обязательное условие для бизнеса в 2026 году.
Использование локальной инфраструктуры позволяет избежать рисков, повысить безопасность и обеспечить стабильную работу сервисов.
## FAQ: локализация персональных данных в Узбекистане
### Что такое локализация персональных данных?
Это требование хранить данные граждан Узбекистана на серверах внутри страны.
### Обязательно ли хранить данные в Узбекистане?
Да, при работе с персональными данными необходимо учитывать требования законодательства.
### Можно ли использовать зарубежные серверы?
В отдельных случаях — да, но это требует соблюдения дополнительных условий.
### Как обеспечить соответствие?
Самый простой способ — использовать сервер в Узбекистане и локальную облачную инфраструктуру.
https://serverspace.uz/about/blog/ozbekistonda-shaxsiy-malumotlarni-lokalizatsiya-qilish-2026-yilda-biznes-uchun-nimani-bilish-muhim.mdO‘zbekistonda shaxsiy ma’lumotlarni lokalizatsiya qilish nima va u biznes uchun nima sababdan muhim. Qonun talablari, xavflar va Toshkentda ma’lumotlarni to‘g‘ri joylashtirish yo‘llari.
## Kirish
**O'zbekistonda shaxsiy ma'lumotlarni lokalizatsiya qilish** 2026 yilda mamlakat ichidagi foydalanuvchilar bilan ishlovchi biznes uchun majburiy talabga aylanmoqda. Qonunchilik kuchaymoqda va regulyatorlar ma'lumotlar qayerda saqlanayotganiga tobora ko'proq e'tibor qaratmoqda.
Bu kompaniyalar uchun infratuzilmani qayta ko'rib chiqish zaruratini anglatadi: serverlarni qayerda joylashtirish, ma'lumotlarni qanday qayta ishlash va huquqiy xavflardan qanday qochish kerak.
Gap faqat qonunga rioya qilishda emas, balki **xavfsizlik, xizmatlar tezligi va foydalanuvchilar ishonchi** haqida ham ketmoqda.
## Shaxsiy ma'lumotlarni lokalizatsiya qilish nima
Ma'lumotlarni lokalizatsiya qilish — bu talab bo'lib, unga ko'ra **O'zbekiston fuqarolarining shaxsiy ma'lumotlari mamlakat ichidagi serverlarda saqlanishi va qayta ishlanishi kerak**.
Bu quyidagilarga tegishli:
- foydalanuvchi akkauntlari
- CRM va mijozlar bazalari
- xodimlar ma'lumotlari
- veb-servislar va mobil ilovalar
## Qonunchilik asoslari
Talab "Shaxsiy ma'lumotlar to'g'risida"gi qonun (№ ZRU-547) hamda boshqa normativ hujjatlar bilan belgilangan.
Amalda bu quyidagilarni anglatadi:
- **ma'lumotlar qayerda joylashganini nazorat qilish zarurati**
- ma'lumotlarni chetga uzatishga cheklovlar
- ma'lumotlarni himoya qilish majburiyati
- **qoidabuzarlik uchun javobgarlik**
## Nima qoidabuzarlik hisoblanadi
Lokalizatsiya talablarini buzish holatlariga quyidagilar kiradi:
- ma'lumotlarni O'zbekiston hududidan tashqarida saqlash
- serverlar joylashuvi ustidan nazorat yo'qligi
- ma'lumotlarni asossiz uchinchi shaxslarga uzatish
- xorijiy bulutlardan qonun talablarini hisobga olmasdan foydalanish
## Nima uchun bu biznes uchun muhim
### Huquqiy xavflar
Ma'lumotlarni mamlakatdan tashqarida saqlash jarimalar va cheklovlarga olib kelishi mumkin.
### Xavfsizlik
Chet elda joylashgan infratuzilmada ma'lumotlarni nazorat qilish qiyinroq.
### Ishlash tezligi
**O'zbekistondagi server** foydalanuvchilar uchun tezroq ishlashni ta'minlaydi.
## Lokalizatsiyaga rioya qilinmasa qanday xavflar bor
- **jarimalar va sanksiyalar**
- xizmatlarning bloklanishi
- to'lov tizimlari bilan muammolar
- foydalanuvchi ishonchining yo'qolishi
## Kimlar uchun bu ayniqsa muhim
- **fintech va banklar**
- **internet-do'konlar**
- **ta'lim platformalari**
- **tibbiy servislar**
- **SaaS va mobil ilovalar**
## Ma'lumotlarni lokalizatsiya qilish talablarini qanday bajarish mumkin
### Chet elda saqlash
Qulay, lekin qonunchilikka mos emas.
### Gibrid model
Murakkab va nazoratni talab qiladi.
### Mahalliy bulut
**Eng yaxshi yechim** — O'zbekistondagi data-markazdan foydalanish.
## Serverspace bulut infratuzilmasi O'zbekistonda
Serverspace Toshkentdagi data-markazda joylashgan infratuzilmani taklif etadi va **shaxsiy ma'lumotlarni lokalizatsiya qilish talablariga mos kelishga yordam beradi**.
Infratuzilma Tier III darajadagi East Telecom YA DC'da joylashgan bo'lib, yuqori barqarorlikni ta'minlaydi.
**Xorijiy provayderlardan farqli ravishda**, Serverspace ma'lumotlarni darhol mamlakat ichida saqlash imkonini beradi.
## Chek-list: sizning loyihangiz mos keladimi
- serverlaringiz qayerda joylashgan
- foydalanuvchi ma'lumotlari qayerda saqlanadi
- ma'lumotlar chetga uzatiladimi
- ma'lumotlarni qayta ishlash nazorat qilinadimi
## Xulosa
**O'zbekistonda ma'lumotlarni lokalizatsiya qilish** 2026 yilda biznes uchun majburiy talabdir.
Mahalliy infratuzilma xavfsizlikni oshiradi va huquqiy xavflarni kamaytiradi.
## FAQ
### Shaxsiy ma'lumotlarni lokalizatsiya qilish nima?
Bu ma'lumotlarni mamlakat ichida saqlash talabi.
### Majburiymi?
Ha, qonunchilikka ko'ra talab etiladi.
### Chet el serverlaridan foydalanish mumkinmi?
Ba'zi hollarda mumkin, lekin cheklovlar mavjud.
### Qanday moslashish mumkin?
Mahalliy server yoki bulut infratuzilmasidan foydalanish orqali.
https://serverspace.uz/about/news/obnovlenie-sistemy-nastupila-vesna-%f0%9f%8c%bf.mdПоздравление с Наврузом от Serverspace.uz: пусть весна принесёт рост, стабильность и новые возможности для ваших проектов и бизнеса.
Поздравляем с Наврузом — временем, когда всё обновляется и запускается с новой силой.
Пусть этот день принесёт в вашу жизнь больше света, стабильности и уверенного роста — как в личных делах, так и в бизнесе. Желаем вам успешных проектов, надёжной инфраструктуры и новых возможностей для развития!
Спасибо, что строите будущее вместе с [Serverspace.uz](https://serverspace.uz/index.md)
https://serverspace.uz/about/news/novye-shablony-os-uzhe-dostupny-v-paneli-upravleniya-serverspace.mdНовые версии ОС в Serverspace | Быстрый запуск серверов на Windows 2025, Ubuntu 25.10, Debian 13.3, AlmaLinux 10.1, OracleLinux 10.1 и RockyLinux 10.1 всего за 1 минуту.
Мы обновили и расширили перечень доступных шаблонов операционных систем для развертывания в облаке Serverspace! Теперь вы можете быстро запускать виртуальные машины на свежих версиях популярных ОС — без лишней настройки и ручной подготовки.
## Список добавленных операционных систем
- **Windows 2025**
- **Ubuntu 25.10**
- **Debian 13.3**
- **AlmaLinux 10.1**
- **OracleLinux 10.1**
- **RockyLinux 10.1**
## Что нового в этих версиях?
### Windows 2025
Обновленная серверная ОС от Microsoft с акцентом на производительность и безопасность:
- Улучшенные инструменты защиты и контроля доступа
- Оптимизирована работа в облачных средах
- Расширенные возможности для контейнеров и гибридных инфраструктур
### Ubuntu 25.10
Свежий релиз одного из самых востребованных дистрибутивов для облачных задач:
- Обновленное ядро и системные пакеты
- Повышенная производительность и уровень безопасности
- Улучшенная интеграция с DevOps-инструментами и контейнерами
### Debian 13.3
Надежная и стабильная система для серверной инфраструктуры:
- Актуальные обновления пакетов и исправления уязвимостей
- Повышенная стабильность работы
- Лучшая совместимость с современным оборудованием
### AlmaLinux 10.1
Бесплатная альтернатива RHEL с корпоративным уровнем надежности:
- Обновленные системные компоненты и ядро
- Расширенная поддержка виртуализации и контейнерных решений
- Оптимизация под серверные нагрузки
### OracleLinux 10.1
Дистрибутив для корпоративных систем и бизнес-приложений:
- Оптимизирован для работы в облаке
- Расширенные инструменты контейнеризации
- Повышенная производительность и безопасность
### RockyLinux 10.1
Современное продолжение классической серверной экосистемы с высокой совместимостью:
- Обновленные пакеты и усиленная безопасность
- Поддержка актуальных архитектур и технологий
- Улучшенные инструменты автоматизации и DevOps
Новые шаблоны операционных систем уже доступны в [панели управления Serverspace](https://my.serverspace.uz/vstack/servers/create)— развернуть VPS на нужной ОС можно всего за минуту! _[Serverspace](https://serverspace.uz/index.md) — облачный провайдер с автоматическим развертыванием виртуальной инфраструктуры на базе Linux, Windows и других ОС из любой точки мира менее чем за 1 минуту. Для интеграции доступны API, CLI и Terraform._
https://serverspace.uz/about/news/novye-modeli-llm-uzhe-dostupny-v-paneli-upravleniya-serverspace.mdНовые LLM в Serverspace: Claude 4.6, GPT-5.4, DeepSeek V3.2, Kimi K2.5 и другие. Подключайте мощные AI-модели для разработки, аналитики и автоматизации через API.
Мы расширили список доступных языковых моделей в облаке Serverspace! Теперь пользователям доступен широкий выбор современных LLM от ведущих разработчиков - для разработки, автоматизации и интеграции AI в любые проекты без сложной настройки.
## Список доступных моделей
- **anthropic/claude-sonnet-4.6**
- **anthropic/claude-opus-4.6**
- **openai/gpt-5.4**
- **openai/gpt-5.4-mini**
- **openai/gpt-5.4-pro**
- **openai/gpt-5.3-codex**
- **minimax/minimax-m2.7**
- **deepseek/deepseek-v3.2**
- **moonshotai/kimi-k2.5**
## Что нового?
### Модели OpenAI
Новая линейка моделей для широкого спектра задач - от генерации текста до разработки:
- **GPT-5.4** - универсальная модель для сложных сценариев, аналитики и контента
- **GPT-5.4-mini** - быстрые ответы и оптимизация затрат
- **GPT-5.4-pro** - максимальная производительность для ресурсоёмких задач
- **GPT-5.3-codex** - специализирована для программирования и автоматизации
### Модели Anthropic
Продвинутые модели с упором на понимание контекста и аналитику:
- **Claude Sonnet 4.6** - баланс скорости и качества для повседневных задач
- **Claude Opus 4.6** - мощная модель для сложного анализа и длинного контекста
### Другие модели
Дополнительные решения для специализированных сценариев:
- **DeepSeek V3.2** - сильна в математике, коде и аналитике
- **Minimax M2.7** - быстрая генерация текста и чат-боты
- **Kimi K2.5** - эффективная работа с длинными документами и данными
Новые модели уже доступны в [панели управления Serverspace](https://my.serverspace.uz/) - вы можете начать использовать их в своих проектах прямо сейчас! _[Serverspace](https://serverspace.uz/index.md) - облачный провайдер, предоставляющий современную инфраструктуру и инструменты для работы с AI, включая API, CLI и Terraform для быстрой интеграции и масштабирования._
https://serverspace.uz/about/blog/sayt-tezligini-oshirish-10-usul-vps-uzbekistan-va-cdn-bilan-tez-sayt.mdSayt tezligini oshirish bo‘yicha to‘liq qo‘llanma: 10 samarali usul, Core Web Vitals, CDN va VPS Uzbekistan orqali tez server yechimlari. SEO va konversiyani oshiring
Uch soniya. O'rtacha foydalanuvchi sayt ochilishini aynan shuncha vaqt kutadi. Agar sahifa shu vaqt ichida yuklanmasa, mobil foydalanuvchilarning yarmidan ko'pi uni yopib, boshqa saytga o'tadi. Yuklanishdagi har bir qo'shimcha soniya konversiyani 7% ga kamaytiradi.
Bugungi kunda sayt tezligi — bu faqat texnik masala emas, balki SEO, trafik va daromad bilan bevosita bog'liq omil. Ayniqsa Uzbekistan bozori uchun VPS, cloud server Uzbekistan va tez server infratuzilmasi ishlatadigan loyihalar uchun bu hal qiluvchi ahamiyatga ega.
Ushbu qo'llanmada siz quyidagilarni bilib olasiz:
- Sayt tezligi SEO ga qanday ta'sir qiladi (Google ranking omillari)
- Saytni tezlashtirishning 10 ta samarali usuli
- VPS Uzbekistan va CDN qanday qilib saytni tezlashtiradi
- Ko'p uchraydigan xatolar va ularni qanday tuzatish
## Nega sayt tezligi SEO va biznes uchun muhim
Google 2018 yildan beri sayt tezligini ranking omili sifatida hisoblaydi. 2021 yildan esa **Core Web Vitals** asosiy signalga aylandi.
Yuklanish tezligi oshgani sari foydalanuvchi xatti-harakati keskin yomonlashadi:
- **1 → 3 soniya:** chiqib ketish ehtimoli +32%
- **1 → 5 soniya:** +90%
- **1 → 10 soniya:** +123%
Bu ayniqsa online biznes, e-commerce va SaaS loyihalar uchun juda muhim.
**SEO nuqtai nazaridan:**
- Tez sayt — yuqori ranking
- Past bounce rate
- Yaxshi user experience (UX)
Agar siz Uzbekistan'da VPS yoki cloud server ishlatayotgan bo'lsangiz, server tezligi va joylashuvi ham SEO ga bevosita ta'sir qiladi.
## Sayt tezligini qanday tekshirish (SEO audit)
Sayt tezligini baholash uchun quyidagi metrikalar muhim:
- **TTFB** — server javob tezligi (ideal:
https://serverspace.uz/about/news/v-paneli-upravleniya-serverspace-dostupny-novye-1-click-apps.mdServerspace добавил новые 1-Click Apps. Запустите сервер за минуту с готовыми панелями управлением, экономия времени и простое администрирование.
Мы расширили список доступных 1-Click Apps. Теперь при создании сервера вы можете за минуту предустановить на него готовую панель для управления веб-проектами.
### **Что добавили:**
**Plesk Obsidian —** универсальная панель для серверов и веб-проектов. Идеальна для агентств и разработчиков, которые работают с разными ОС.
Подходит для:
- управления несколькими сайтами и доменами в одном интерфейсе;
- работы с Docker, Git, управления PHP-библиотеками ;
- поддержки Windows и Linux на одном сервере;
- разграничения доступа для разных пользователей.
**ISPmanager Lite —** легкое решение для быстрого старта. Простой, интуитивный интерфейс без сложных функций для новичков и малого бизнеса.
Подходит для:
- управления 1-5 сайтами на VPS/VDS;
- быстрой настройки почты, FTP и баз данных;
- экономии ресурсов на слабых серверах.
**cPanel — **панель с широким набором инструментов для продвинутых пользователей.
Подходит для:
- профессионального веб-хостинга (своя хостинг-компания или реселлер);
- ведения десятков и сотен клиентских проектов;
- автоматизации повседневных задач через интерфейс.
### **Какие возможности дают новые 1-Click Apps:**
- ускоренный запуск сайтов и веб-проектов;
- сокращенное время на первичную настройку сервера;
- управление доменами, почтой, базами данных и файлами через удобную панель;
- упрощенное повседневное администрирование сервера.
Добавленные новые 1-Click Apps позволяют выбрать подходящий инструмент управления сервером и привычный сценарий работы.
### **Как подключить:**
- Откройте панель управления [Serverspace](https://my.serverspace.uz/vstack/servers/list?pid=559208).
- Нажмите **"Создать сервер"**.
- На этапе настройки выберите нужное решение в разделе **"****Приложения"**.
- Завершите создание сервера и приступайте к работе через выбранную панель управления.
Новые 1-Click Apps уже доступны в панели управления Serverspace. Выбирайте подходящее решение и запускайте сервер с нужной панелью управления за 1 минуту.
[Serverspace](http://serverspace.uz/index.md)_ – облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Linux, Windows и российских ОС из любой точки мира менее чем за 1 минуту. Для интеграции клиентских сервисов доступны открытые инструменты API, CLI и Terraform._
https://serverspace.uz/about/news/bolshe-llm-modelej-v-serverspace-skidka-25-na-llm-tokeny.mdБольше LLM-моделей в Serverspace: скидка 25% на LLM-токены
Serverspace расширил список доступных языковых моделей. Теперь в панели управления доступны новые модели от OpenAI, Anthropic, Google, xAI, Alibaba, DeepSeek, MiniMax, Zhipu AI, Tencent и Moonshot AI.
Обновление позволяет выбрать модель под конкретные задачи проекта и протестировать разные подходы: сравнить качество ответов, скорость обработки и поведение моделей на практике.
Чтобы начать работать с новыми моделями на выгодных условиях, используйте промокод **LLM25**. Он дает скидку **25% на LLM-токены на 3 месяца с момента активации промокода**.
## Какие модели добавлены
| Модели | Что нового и важного |
| --- | --- |
| GPT-5.5 | Улучшены агентный кодинг, работа с инструментами и анализ данных. |
| Claude Opus 4.8 / Claude Sonnet 4.6 | Усилены кодинг, агентные задачи, работа с инструментами и длинным контекстом. |
| Gemini 3.5 Flash / Gemini 3.1 Pro Preview | Обновлены Flash- и Pro-линейки для coding-задач и agentic-сценариев. |
| Grok 4.3 / Grok Build 0.1 | Добавлены возможности для tool calling, reasoning и agentic coding workflows. |
| Qwen 3.7 Max | Усилены кодогенерация, автономные агентные задачи и работа с пайплайнами. |
| DeepSeek V4 Pro / DeepSeek V4 Flash | Добавлены V4 Pro и V4 Flash с MoE-архитектурой и большим контекстом. |
| Minimax M3 | Добавлены MiniMax Sparse Attention, мультимодальность и контекст до 1 млн токенов. |
| GLM 5.1 | Усилены агентный кодинг и long-horizon задачи. |
| Hunyuan 3 | Улучшены inference-эффективность и agentic workflows. |
| Kimi K2.6 | Усилены coding-сценарии, работа с инструментами и агентные задачи. |
Расширенный набор моделей дает больше гибкости при работе с LLM-сервисом: можно выбрать мощную модель для сложной логики и кода или более быструю — для чатов, массовых запросов и обработки большого объема информации.
Новые модели можно использовать для разных AI-сценариев:
- запускайте AI-ботов и внутренних ассистентов;
- подключайте модели к сайтам, приложениям и API;
- обрабатывайте документы и данные;
- анализируйте обращения и пользовательские запросы;
- работайте с текстами, кодом и агентными сценариями.
## Как получить скидку на LLM-токены
Активируйте промокод **LLM25** в [панели управления Serverspace](https://my.serverspace.uz/gpt) и получите скидку **25% на LLM-токены на 3 месяца с момента активации промокода**.
Для этого:
- Перейдите в раздел **"Финансы"**.
- Нажмите **"Пополнить баланс"**.
- Откройте раздел **"Промокод"**.
- Введите промокод **LLM25** и активируйте его.
После активации скидка будет действовать в течение 3 месяцев. Используйте ее, чтобы протестировать новые модели, запустить больше AI-задач или впервые подключить LLM-сервис к своему проекту.
**Важно:** акция на LLM-токены действует до **5 июля**.
Новые модели уже доступны в [панели управления Serverspace](https://my.serverspace.uz/gpt). Выберите подходящую модель, активируйте промокод **LLM25** и начните использовать LLM-сервис в своих проектах.
https://serverspace.uz/support/help/kaniko-sborka-docker-obrazov-bez-docker-v-kubernetes-i-ci-cd.mdkaniko — инструмент для сборки container-образов без Docker-демона. Узнайте, как использовать kaniko в Kubernetes и CI/CD, установить и настроить кэш.
**kaniko** — утилита, которая собирает контейнерные образы по **Dockerfile**, не подключаясь к **Docker Engine**.Он работает внутри контейнера или Kubernetes-кластера и особенно полезен в средах, где запуск Docker небезопасен, невозможен или нежелателен.
Проект поддерживается сообществом и развивается как официальный форк после архивации оригинального репозитория Google. Актуальная версия поддерживается в репозитории Chainguard.
## Зачем нужен kaniko
Классическая сборка Docker-образов предполагает доступ к Docker-демону (**dockerd**). Это создаёт ряд проблем:
- требуется **privileged-доступ**;
- повышаются риски безопасности;
- сложно использовать в Kubernetes-кластерах;
- не подходит для многих CI/CD-платформ.
**kaniko решает эти проблемы**, так как:
- не использует Docker-демон;
- запускается как обычный контейнер;
- безопасен для CI и Kubernetes;
- поддерживает стандартные **Dockerfile**.
По сути, kaniko читает **Dockerfile**, пошагово выполняет инструкции и **напрямую пушит готовый образ в registry**.
## Где и как используют kaniko
### 1. CI/CD пайплайны
kaniko часто используют в:
- GitLab CI
- GitHub Actions
- Jenkins
- Argo Workflows
Он отлично подходит для сборки образов в shared-раннерах без privileged-режима.
### 2. Kubernetes-кластеры
kaniko можно запускать как:
- Job
- Pod
- часть CI внутри кластера
Это удобно, если весь процесс деплоя уже живёт в Kubernetes.
### 3. Повышенные требования к безопасности
В средах с жёсткими security-политиками (банки, enterprise-проекты) kaniko позволяет собирать образы без доступа к хост-системе.
## Как работает kaniko
Упрощённо процесс выглядит так:
- kaniko запускается в контейнере
- Читает **Dockerfile**
- Выполняет инструкции (**FROM, RUN, COPY **и т.д.)
- Создаёт слои образа во временной файловой системе
- Пушит результат в container registry
Docker-демон на этом этапе **не используется вообще**.
## Установка и запуск kaniko
### Базовый запуск через Docker
```bash
docker run \
-v $(pwd):/workspace \
-v ~/.docker/config.json:/kaniko/.docker/config.json:ro \
gcr.io/kaniko-project/executor:latest \
--dockerfile=Dockerfile \
--context=/workspace \
--destination=registry.example.com/my-image:latest
```
Здесь:
- /workspace — контекст сборки
- config.json — доступы к registry
- --destination — куда пушить образ
### Запуск kaniko в Kubernetes
Пример Job:
```yaml
apiVersion: batch/v1
kind: Job
metadata:
name: build-image-kaniko
labels:
app: kaniko-builder
spec:
backoffLimit: 1
template:
metadata:
labels:
app: kaniko-builder
spec:
restartPolicy: Never
containers:
- name: executor
image: gcr.io/kaniko-project/executor:latest
args:
- "--dockerfile=/workspace/Dockerfile"
- "--context=git://github.com/example-org/sample-app.git#refs/heads/main"
- "--destination=registry.example.com/sample-app:1.0.0"
- "--cache=true"
- "--cache-repo=registry.example.com/kaniko-cache"
volumeMounts:
- name: docker-auth
mountPath: /kaniko/.docker
volumes:
- name: docker-auth
secret:
secretName: registry-docker-config
```
## Часто используемые параметры
| Параметр | Описание |
| --- | --- |
| --dockerfile | Путь к Dockerfile, который используется для сборки образа. |
| --context | Контекст сборки: локальная директория или Git-репозиторий. |
| --destination | Адрес container registry и тег итогового образа. |
| --no-push | Собирает образ без отправки (push) в registry. |
| --cache | Включает кэширование слоёв для ускорения повторных сборок. |
| --cache-repo | Registry, в котором хранятся закэшированные слои образов. |
| --snapshotMode | Режим создания слоёв файловой системы (например, time или redo). |
| --verbosity | Уровень логирования kaniko (debug, info, warn). |
| --build-arg | Передача build-аргументов в Dockerfile. |
## Кэширование сборок
kaniko поддерживает layer-cache, что ускоряет повторные сборки:
```
--cache=true \
--cache-repo=registry.example.com/kaniko-cache
```
Важно: кэш хранится **в registry**, а не локально.
## Ограничения kaniko
Стоит учитывать:
- некоторые нестандартные инструкции Docker могут работать иначе;
- нет интерактивного shell во время сборки;
- сборка может быть медленнее, чем Docker с локальным кэшем;
- требуется корректно настроенный registry-доступ.
## FAQ
- **Что из себя представляет kaniko и для чего его можно использовать?**
kaniko — это инструмент для сборки container-образов из Dockerfile без использования Docker-демона. Он применяется в CI/CD-пайплайнах и Kubernetes-кластерах, где запуск Docker в privileged-режиме невозможен или нежелателен.
- **Работает ли kaniko в связке с Kubernetes?**
Да, kaniko изначально ориентирован на работу в Kubernetes. Его можно запускать как Job или Pod, а также использовать в составе CI внутри кластера. Это позволяет собирать и публиковать образы напрямую в registry без доступа к хост-системе.
- **Нужен ли Docker для работы kaniko?**
Нет. Docker-демон (dockerd) не требуется. kaniko выполняет сборку образов полностью в user-space, что делает его безопасным для облачных и корпоративных сред.
- **Поддерживает ли kaniko обычные Dockerfile?**
Да, kaniko работает со стандартными Dockerfile, включая multi-stage сборки. Большинство инструкций (FROM, RUN, COPY, ARG и др.) поддерживаются без изменений.
- **Как kaniko работает с кэшем?**
kaniko поддерживает кэширование слоёв, но хранит их не локально, а в container registry. Для этого используется параметр --cache=true и отдельный репозиторий для кэша. Это ускоряет повторные сборки в CI/CD.
- **Можно ли использовать kaniko для локальной сборки образов?**
Технически — да, kaniko можно запускать локально в контейнере. Однако основной сценарий его использования — автоматизированные сборки в CI/CD и Kubernetes, а не локальная разработка.
- **Чем kaniko отличается от Docker build?**
Главное отличие — отсутствие Docker-демона. Docker build требует доступ к хосту и privileged-режим, тогда как kaniko работает как обычный контейнер и безопасен для изолированных сред.
- **Подходит ли kaniko для production-пайплайнов?**
Да. kaniko широко используется в production CI/CD-процессах, особенно в облачных и Kubernetes-ориентированных инфраструктурах с повышенными требованиями к безопасности.
## Вывод
**kaniko** — это практичный и безопасный инструмент для сборки container-образов в современных инфраструктурах. Он особенно хорошо подходит для Kubernetes-кластеров и CI/CD-пайплайнов, где использование Docker-демона либо запрещено, либо нежелательно.
Если вам требуется собирать контейнерные образы:
- без privileged-доступа
- внутри Kubernetes
- с прозрачной интеграцией в CI
kaniko — один из самых надёжных вариантов на сегодня.
https://serverspace.uz/support/help/keel-dlya-kubernetes-avtomaticheskie-obnovleniya-helm-i-deployment-serverspace-uzbekistan.mdПодробная инструкция по Keel — Kubernetes Operator для автоматического обновления Deployment, StatefulSet, DaemonSet и Helm. Примеры, установка и практика запуска в Узбекистане.
## Введение
Обновлять приложения в Kubernetes вручную — почти всегда боль: нужно следить за тегами образов, вовремя применять манифесты, не забывать про правила версионирования и не "уронить" прод. **Keel** решает эту задачу как Kubernetes Operator: он отслеживает новые версии контейнеров (и релизов Helm) и автоматически обновляет ваши workload'ы по заданной политике — Deployments, DaemonSets, StatefulSets и Helm-релизы.
Официальный репозиторий: [https://github.com/keel-hq/keel](https://github.com/keel-hq/keel)
## Что такое Keel и как он работает
**Keel** — лёгкий self-hosted сервис (один контейнер, без отдельной БД), который запускается в кластере и выполняет роль "авто-апдейтера". Логика управления обновлениями задаётся прямо в манифестах ваших приложений (через annotations) или в Helm-чартах:
- **что обновлять** — конкретный Deployment/StatefulSet/DaemonSet или Helm release;
- **когда обновлять** — по опросу реестра (poll) или по webhook-триггеру;
- **как обновлять** — по политике версий (например, patch/minor по SemVer) или принудительно.
Идея простая: вы публикуете новый образ в registry, Keel это видит и обновляет ресурс, соблюдая заданные правила.
## Таблица: быстрые команды и действия
| Задача | Команда / действие | Примечание |
| --- | --- | --- |
| Создать namespace | kubectl create namespace keel | Изолирует компоненты Keel |
| Посмотреть pod'ы Keel | kubectl -n keel get pods | Проверка, что Keel запущен |
| Посмотреть Deployment Keel | kubectl -n keel get deploy | Быстрая диагностика |
| Применить манифест приложения | kubectl apply -f deployment.yaml | После добавления аннотаций Keel |
| Посмотреть события в namespace | kubectl -n default get events --sort-by=.metadata.creationTimestamp | Помогает понять, что и когда обновилось |
| Проверить rollout | kubectl -n default rollout status deploy/webhook-demo | Удобно после обновления образа |
| История rollout | kubectl -n default rollout history deploy/webhook-demo | Проверка, какая ревизия применена |
## Практические примеры использования
### Пример 1. Автообновление Deployment по SemVer (minor)
Допустим, вы хотите автоматически подтягивать новые версии образа, но только в рамках **minor** (например, 1.3.x → 1.4.x, но не 2.0.0). В манифест Deployment добавьте аннотации Keel:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: webhook-demo
namespace: default
annotations:
keel.sh/policy: minor
keel.sh/trigger: poll
spec:
replicas: 2
selector:
matchLabels:
app: webhook-demo
template:
metadata:
labels:
app: webhook-demo
spec:
containers:
- name: app
image: your-registry.example.com/webhook-demo:1.4.2
imagePullPolicy: Always
```
**Что получится:** вы пушите, например, 1.4.3 или 1.5.0 — Keel обновит. Пушите 2.0.0 — Keel пропустит.
### Пример 2. Обновление только patch-версий (без "скачков" по minor)
Подходит для продакшена, где важно минимизировать риск:
```
metadata:
annotations:
keel.sh/policy: patch
keel.sh/trigger: poll
```
**Логика:** 1.4.2 → 1.4.3 обновится, 1.4.2 → 1.5.0 — нет.
### Пример 3. StatefulSet: аккуратные обновления сервисов со state
Keel поддерживает StatefulSets. Это удобно, когда вы регулярно выкатываете новые сборки приложения, но хотите оставаться в рамках политики версий:
```yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: api-stateful
annotations:
keel.sh/policy: patch
keel.sh/trigger: poll
spec:
serviceName: api-stateful
replicas: 3
selector:
matchLabels:
app: api-stateful
template:
metadata:
labels:
app: api-stateful
spec:
containers:
- name: api
image: your-registry.example.com/api:3.2.9
imagePullPolicy: Always
```
### Пример 4. DaemonSet: обновления агентов/логгеров на всех нодах
Классический кейс — лог-агенты, security-агенты, node-exporter и любые сервисы "по одному на ноду":
```yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: log-agent
annotations:
keel.sh/policy: minor
keel.sh/trigger: poll
spec:
selector:
matchLabels:
app: log-agent
template:
metadata:
labels:
app: log-agent
spec:
containers:
- name: agent
image: your-registry.example.com/log-agent:0.9.1
imagePullPolicy: Always
```
### Пример 5. Helm: автообновление релиза
Keel умеет работать и как "провайдер" для Helm. Практическая логика та же: вы задаёте правила обновления в чарте/значениях и Keel обновляет релиз, когда появляется новая версия (либо образов, либо релиза — в зависимости от вашей схемы поставки).
На практике это удобно, если у вас много одинаковых окружений (dev/stage), и вы хотите, чтобы они обновлялись сами по понятным правилам, без ручного helm upgrade каждый раз.
## Установка Keel в кластер
Ниже — базовый, "быстрый" сценарий. Детали и варианты установки (включая Helm chart) смотрите в документации Keel и репозитории.
### Шаг 1. Подготовьте namespace
```bash
kubectl create namespace keel
```
### Шаг 2. Установите Keel
**Вариант A (Helm chart):** если вы предпочитаете Helm-установку, используйте чарт Keel. Общая логика будет такой:
```
helm repo add keel https://charts.keel.sh
helm repo update
helm install keel keel/keel -n keel
```
_Примечание:_ адрес репозитория/имя чарта может отличаться в зависимости от источника. Самый надёжный вариант — проверить актуальные команды в официальной документации/ArtifactHub перед установкой.
**Вариант B (kubectl apply):** подходит, если хотите минимальную зависимость от Helm. В этом случае вы применяете готовые YAML-манифесты Keel из официального репозитория/доков.
### Шаг 3. Проверьте, что Keel запущен
```bash
kubectl -n keel get pods
kubectl -n keel get deploy
```
### Шаг 4. Добавьте аннотации в ваши workload'ы
Keel начинает работать, когда видит в ресурсах свои annotations (policy/trigger и т.д.). После добавления аннотаций примените изменения:
```bash
kubectl apply -f deployment.yaml
```
## Рекомендации по эксплуатации
- **Начинайте с patch** для production, а minor оставляйте для dev/stage — так проще контролировать риски.
- **Используйте уникальные, предсказуемые теги**. Если у вас "latest", обновления могут стать непрозрачными (когда именно и что приехало).
- **Продумайте триггер**: poll проще стартовать, webhooks — быстрее и экономнее по запросам к registry.
- **Наблюдаемость**: убедитесь, что вы видите события rollout'ов (events/логирование), чтобы быстро разбирать причины обновления или пропуска.
## О практике: где это удобно запускать
Keel особенно хорошо ложится на сценарии, где вы хотите "почти CI/CD", но без тяжёлого конвейера: небольшие команды, продуктовые микросервисы, быстрое dev/stage, типовые окружения. В таких случаях часто важнее не усложнять, а стабильно обновляться по понятным правилам.
Если вы разворачиваете Kubernetes самостоятельно (kubeadm/k3s) или держите несколько окружений под разные проекты, удобно иметь инфраструктуру, где VPS можно поднять быстро и предсказуемо — например, в локальном регионе под целевую аудиторию. В Serverspace можно развернуть виртуальные серверы в нужной локации и собрать кластер так, как вам удобно (dev/stage/песочницы), а затем использовать Keel для автоматических обновлений сервисов по SemVer-политикам. Для проектов, ориентированных на Узбекистан и соседние рынки, логично смотреть в сторону **Serverspace.uz**, чтобы размещать инфраструктуру ближе к пользователям и снижать задержки — а Keel уже закрывает рутину с выкладками.
## Вывод
Keel — практичный Kubernetes Operator для автоматизации обновлений Deployments/StatefulSets/DaemonSets и Helm-релизов. Он подходит, когда вы хотите убрать ручные "kubectl apply ради нового тега" и заменить это на управляемые политики: patch/minor и понятные триггеры. В результате вы экономите время команды, ускоряете цикл поставки и снижаете риск человеческих ошибок при регулярных релизах.
## FAQ
### Keel — это замена CI/CD?
Нет. CI/CD обычно отвечает за сборку, тестирование и публикацию артефактов. Keel решает более узкую задачу: **автоматически обновляет** Kubernetes workload, когда уже появился новый образ/версия (по правилам, которые вы задали).
### Какие ресурсы Kubernetes поддерживаются?
В базовом сценарии Keel работает с **Deployments**, **StatefulSets** и **DaemonSets**, а также поддерживает интеграцию с **Helm**.
### Как Keel понимает, что можно обновляться?
Вы задаёте это в annotations: выбираете политику (например, patch/minor по SemVer) и тип триггера (например, poll). Если новая версия подходит под политику — Keel инициирует обновление ресурса.
### Что выбрать: poll или webhooks?
**Poll** проще стартовать: Keel периодически проверяет registry. **Webhooks** полезны, когда хочется быстрее реагировать на релиз и не делать лишних запросов к registry.
### Можно ли использовать Keel в нескольких окружениях?
Да. Обычно Keel ставят отдельно в каждое окружение (dev/stage/prod) и задают разные политики обновления: например, minor для dev/stage и patch для prod.
### Где взять примеры и актуальные параметры?
Начните с официального репозитория и документации: [GitHub keel-hq/keel](https://github.com/keel-hq/keel) и [keel.sh](https://keel.sh/).
https://serverspace.uz/support/help/snitch-udobnyj-tui-dlya-analiza-setevyh-soedinenij-v-linux-serverspace.mdsnitch — удобный TUI-инструмент для анализа сетевых соединений в Linux. Наглядная альтернатива ss и netstat, примеры использования и установка.
## Введение
Диагностика сетевых соединений в Linux часто сводится к двум классическим инструментам — ss и netstat. Они мощные, но неудобные: длинные строки, перегруженный вывод, сложно быстро понять, что именно происходит с сетью здесь и сейчас. **snitch** решает эту проблему, предлагая более наглядный и удобный способ анализа сетевых соединений через TUI-интерфейс или структурированные таблицы.
Официальный репозиторий: [https://github.com/karol-broda/snitch](https://github.com/karol-broda/snitch)
## Что такое snitch и как он работает
**snitch** — это CLI-инструмент для Linux, который использует данные из ss и системных источников, но отображает их в удобном виде: интерактивный TUI (Text User Interface) или аккуратно отформатированные таблицы.
Инструмент ориентирован на быстрый анализ текущих сетевых соединений без необходимости разбирать "сырые" выводы системных команд.
- **что показывает** — активные TCP/UDP соединения, listening-порты, процессы и PID;
- **как показывает** — через TUI или табличный вывод;
- **для кого** — администраторы, DevOps-инженеры, SRE, разработчики.
Идея простая: snitch берёт сложный сетевой вывод и превращает его в читаемую картину состояния системы.
## Таблица: сравнение snitch с ss и netstat
| Критерий | snitch | ss / netstat |
| --- | --- | --- |
| Формат вывода | TUI или таблицы | Текстовый список |
| Наглядность | Высокая | Низкая |
| Фильтрация | Интерактивная | Через флаги |
| Поиск проблем | Быстро визуально | Требует опыта |
| Подходит для мониторинга | Да (ручной) | Ограниченно |
## Практические примеры использования
### Пример 1. Быстрый обзор всех сетевых соединений
Когда нужно понять, что происходит с сетью на сервере прямо сейчас — какие порты открыты, какие соединения активны:
```
snitch
```
Вы получаете интерактивный интерфейс со списком соединений, состояниями, адресами и связанными процессами.
### Пример 2. Анализ listening-портов
Полезно для аудита безопасности или проверки, какие сервисы реально "торчат" наружу:
```
snitch --listening
```
В отличие от **ss -lntup**, вывод сразу структурирован и читаем.
### Пример 3. Поиск подозрительных соединений
Если сервер ведёт себя странно (нагрузка, трафик, неизвестные подключения), snitch позволяет быстро отфильтровать соединения по IP, порту или процессу прямо в интерфейсе, без цепочек grep/awk.
### Пример 4. Использование в скриптах и отчётах
Помимо TUI, snitch умеет выводить данные в виде таблиц, что удобно для логирования и автоматического анализа:
```
snitch --table
```
Такой вывод проще читать и прикладывать к отчётам или тикетам.
## Установка snitch
snitch распространяется как standalone бинарник и не требует сложной установки.
### Шаг 1. Скачайте бинарник
Перейдите в раздел Releases репозитория и скачайте бинарник под вашу архитектуру.
Пример для Linux x86_64:
```bash
wget https://github.com/karol-broda/snitch/releases/latest/download/snitch-linux-amd64
```
### Шаг 2. Сделайте файл исполняемым
```bash
chmod +x snitch-linux-amd64
```
### Шаг 3. Переместите бинарник в PATH
```
sudo mv snitch-linux-amd64 /usr/local/bin/snitch
```
### Шаг 4. Запустите snitch
```
snitch
```
## Рекомендации по эксплуатации
- **Запускайте с правами root**, если нужен полный список процессов и PID.
- **Используйте snitch для диагностики**, а не как постоянный мониторинг — это инструмент быстрого анализа.
- **Комбинируйте с классическими утилитами**: snitch отлично показывает картину, а ss/netstat остаются полезными для автоматизации.
- **Подходит для инцидентов**: когда счёт идёт на минуты, визуальный интерфейс экономит время.
## О практике: где snitch особенно полезен
snitch отлично заходит на VPS и облачных серверах, где нужно быстро разобраться с сетевыми проблемами: неожиданные подключения, зависшие соединения, сервисы, слушающие лишние порты.
В облачной инфраструктуре, где серверы часто создаются и удаляются, такие инструменты становятся особенно ценными. Развернув VPS в Serverspace, можно за минуты получить рабочий сервер и использовать snitch для первичной диагностики сети, проверки конфигурации сервисов и быстрого реагирования на инциденты — без лишней "магии" и перегруженных инструментов.
## Вывод
snitch — это удобная надстройка над ss и netstat, которая делает анализ сетевых соединений быстрым и наглядным. Он не заменяет системные утилиты полностью, но значительно упрощает жизнь в повседневной работе: меньше времени на разбор вывода, больше — на решение реальных проблем.
## FAQ
### snitch — это замена ss и netstat?
Нет. snitch использует те же данные, но фокусируется на удобстве и визуализации. Для автоматизации и скриптов ss/netstat по-прежнему остаются актуальными.
### Нужен ли root-доступ?
Для просмотра всех процессов и PID — да. Без root часть информации может быть недоступна.
### Подходит ли snitch для production-серверов?
Да, как диагностический инструмент. Он не работает в фоне и не влияет на производительность системы.
### Поддерживает ли snitch разные протоколы?
snitch отображает TCP и UDP соединения, включая listening и established состояния.
### Где посмотреть актуальные версии и документацию?
В официальном репозитории проекта: [GitHub karol-broda/snitch](https://github.com/karol-broda/snitch)
https://serverspace.uz/support/help/introduction-to-postgresql-indexes-tipy-indeksov-optimizacziya-i-primery-zaprosov-dlya-razrabotchikov.mdРазбираем индексы PostgreSQL изнутри: heap и ctid, B-tree/GIN/GiST/BRIN, partial и covering (INCLUDE), expression indexes и EXPLAIN. Практические примеры оптимизации запросов для разработчиков по всему миру.
## Введение: зачем разработчику разбираться в индексах PostgreSQL
Если вы уже интуитивно понимаете, что индекс ускоряет чтение и замедляет запись, то в PostgreSQL быстро возникает следующий слой вопросов: почему один и тот же индекс иногда даёт ускорение в разы, а иногда вообще не используется; какие реальные издержки вы платите за каждый CREATE INDEX; какие типы индексов есть в Postgres и когда выбирать B-tree, GIN, GiST или BRIN.
Эта статья — для разработчиков, которым важно понимать внутреннюю механику индексов, trade-off'ы и набор практических приёмов, чтобы индексация соответствовала вашему реальному профилю запросов (OLTP, API, аналитика, поиск, события).
## Как PostgreSQL хранит данные: heap, страницы и ctid
Таблица в PostgreSQL физически хранится как heap (куча кортежей/строк), разбитая на страницы (обычно 8KB). У каждой строки есть физический адрес — системное поле ctid в формате (номер_страницы, смещение_внутри_страницы). Важно: ctid — это не бизнес-идентификатор, он может меняться (например, при UPDATE), но он помогает понять, как именно индекс "приводит" вас к строкам.
Быстрая демонстрация (только для понимания, не как "паттерн на прод"):
```sql
CREATE TABLE foo (id int, name text);
INSERT INTO foo VALUES (1, 'Ronaldo'), (2, 'Romario');
SELECT ctid, * FROM foo;
```
В упрощённом виде индекс хранит структуру "ключ → ссылка на строки (TID/ctid)", чтобы не читать всю таблицу подряд. Но в реальности он ещё влияет на план выполнения, на стоимость записи и на обслуживание MVCC-версий строк.
## Почему планировщик иногда игнорирует индекс и выбирает Seq Scan
Индекс не обязателен к использованию: PostgreSQL выбирает план, который считает дешевле по стоимости (cost). Есть несколько типовых причин, почему индекс может быть проигнорирован:
- **Низкая селективность**: запрос возвращает слишком большой процент строк, и последовательное чтение оказывается дешевле.
- **Статистика неточная**: planner ошибается в оценках кардинальности (особенно если данные сильно скошены или статистика устарела).
- **Выражение в WHERE не соответствует индексу**: например, WHERE lower(email)=... без индекса на lower(email).
- **Сильная конкуренция за cache**: чтение через индекс приводит к множеству случайных обращений к страницам (random I/O).
- **Параллельный Seq Scan** может "побить" индекс на больших выборках.
Проверять реальность важно через анализ плана с фактическим выполнением и буферами:
```sql
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM foo WHERE name = 'Ronaldo';
```
Смотрите не только на "Index Scan/Seq Scan", но и на фактические строки, время и количество прочитанных страниц (BUFFERS).
## Цена индексов: что вы платите за ускорение чтения
Индекс — это ресурсный контракт. Он ускоряет чтение, но требует оплаты в нескольких валютах:
- **Диск**: индекс занимает место (иногда сопоставимо с таблицей, иногда больше).
- **Запись**: INSERT/UPDATE/DELETE дорожают — нужно поддерживать структуру индекса.
- **VACUUM/maintenance**: индексы тоже обслуживаются (reindex, bloat, анализ).
- **Планирование запросов**: больше индексов — больше вариантов, сложнее выбор плана.
- **Кеш**: страницы индексов конкурируют за память с данными таблицы.
Практическая мысль: индекс — не "всё индексируем", а "индексируем то, что реально ускоряет ключевые запросы и окупается по стоимости записи".
## Основные типы индексов в PostgreSQL и когда какой выбирать
**1) B-tree (по умолчанию)**
Самый универсальный индекс: равенство, диапазоны, сортировка, join'ы. Идеален для большинства OLTP-запросов и типичных фильтров по датам, id, статусам, внешним ключам.
Примеры запросов, где B-tree почти всегда уместен:
```sql
-- точный поиск
SELECT * FROM users WHERE email = 'a@b.com';
-- диапазон по времени
SELECT * FROM orders
WHERE created_at >= '2026-01-01' AND created_at < '2026-02-01';
-- быстрый top-N с сортировкой
SELECT * FROM logs
ORDER BY created_at DESC
LIMIT 100;
```
**Составные индексы и порядок колонок**
Составной индекс (a, b) обычно хорошо работает, когда условия/сортировки начинаются с a (принцип "левого префикса"). Поэтому порядок колонок нужно выбирать по вашим частым паттернам запросов.
**2) Hash**
Нишевый вариант для равенства (=) по одному столбцу. Не поддерживает диапазоны и сортировку. Иногда может быть выгоден на длинных ключах (например, очень длинные строки), но чаще B-tree остаётся дефолтным выбором.
**3) GIN (Generalized Inverted Index)**
GIN нужен, когда в одном поле "много элементов", а вы ищете по элементам: jsonb, массивы, полнотекст (tsvector), триграммы (через расширение). Это один из самых практичных "must know" типов индексов для современных приложений.
Типовые кейсы:
- Поиск по ключам/значениям в jsonb
- Поиск по элементам массива
- Полнотекстовый поиск
- LIKE/ILIKE по подстроке через pg_trgm
**4) GiST и SP-GiST**
Подходят для пространственных структур, диапазонов, специфичных типов и операторов. Часто используются в геоданных, range-типах, некоторых сценариях полнотекста/триграмм и нестандартных сравнений.
**5) BRIN (Block Range Index)**
BRIN — экономичный по месту индекс для огромных таблиц, особенно когда данные записываются "по порядку" и их значения хорошо совпадают с физическим расположением строк (например, по времени вставки). Он хранит агрегированную информацию по диапазонам страниц и помогает быстро исключать блоки, где точно нет нужных значений.
## Продвинутые техники индексации, которые дают максимум эффекта
**Частичные индексы (partial index)**
Индексируете только подмножество строк через WHERE. Это уменьшает размер индекса и ускоряет запросы к "горячим" данным.
```sql
-- индексируем только активные записи
CREATE INDEX sessions_active_idx ON sessions (user_id)
WHERE revoked_at IS NULL;
-- индексируем только редкие статусы (если TODO = 90% строк)
CREATE INDEX tasks_not_todo_idx ON tasks (status)
WHERE status 'TODO';
```
**Индексы на выражениях (expression indexes)**
Когда в WHERE участвует функция или вычисляемое выражение, индекс по исходному столбцу часто бесполезен — тогда имеет смысл создать индекс именно на это выражение, чтобы планировщик мог его использовать.
```sql
-- запрос
SELECT * FROM customers WHERE lower(email) = 'john@doe.com';
-- индекс под запрос
CREATE INDEX customers_lower_email_idx ON customers (lower(email));
```
**Покрывающие индексы (INCLUDE) и Index Only Scan**
Когда запрос выбирает только те столбцы, которые уже присутствуют в индексе, PostgreSQL может обойтись одним индексом: выполнить Index Only Scan и не ходить в heap-таблицу за данными. Для этого удобно добавлять "покрывающие" колонки через INCLUDE: они хранятся в листовых страницах индекса, но не участвуют в порядке ключа.
```sql
-- ключи поиска: (a, b), а поле c нужно только для выдачи результата
CREATE INDEX bar_ab_cover_idx ON bar (a, b) INCLUDE (c);
-- запрос, который потенциально может стать index-only (зависит от видимости страниц)
SELECT c FROM bar WHERE a = 10 AND b = 20;
```
**Bitmap-сканы и комбинация индексов**
Postgres умеет объединять несколько индексов для одного запроса (Bitmap Index Scan + Bitmap Heap Scan), особенно когда условия независимы. Иногда это лучше, чем создавать "слишком широкий" составной индекс под каждую комбинацию условий.
## Практические примеры: какие индексы ставить под типовые задачи
**1) API и фильтры по tenant + времени**
Часто в мультиарендных системах фильтр идёт по tenant_id и диапазону по времени. Составной B-tree обычно оправдан.
```sql
CREATE INDEX events_tenant_time_idx ON events (tenant_id, created_at);
SELECT * FROM events
WHERE tenant_id = 42
AND created_at >= now() - interval '7 days'
ORDER BY created_at DESC
LIMIT 200;
```
**2) "Только активные" записи**
Partial index уменьшит размер индекса и стоимость записи в архив/историю.
```sql
CREATE INDEX users_active_idx ON users (last_seen_at)
WHERE deleted_at IS NULL;
```
**3) Поиск по JSONB**
Если вы храните документы/настройки/метаданные, GIN по jsonb — базовый инструмент.
```sql
-- payload должен быть jsonb
CREATE INDEX documents_payload_gin_idx
ON documents
USING GIN (payload);
-- пример запроса по ключу/значению
SELECT * FROM documents
WHERE payload @> '{"role":"admin"}';
```
**4) Поиск по подстроке (LIKE/ILIKE) без якоря слева**
Это типичная задача для каталогов, тикетов, логов, поисковых строк. Решается pg_trgm + GIN.
```sql
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX products_title_trgm_idx
ON products
USING GIN (title gin_trgm_ops);
SELECT * FROM products
WHERE title ILIKE '%iphone%';
```
**5) Огромные логи/события (append-only)**
BRIN часто даёт выгодный компромисс: маленький индекс и заметный выигрыш при фильтрах по времени.
```sql
CREATE INDEX logs_ts_brin_idx ON logs USING BRIN (ts);
SELECT * FROM logs
WHERE ts >= '2026-02-01' AND ts < '2026-02-02';
```
## Вывод
Индексы в PostgreSQL — это управляемая оптимизация: вы обмениваете часть ресурсов (диск, стоимость записи, обслуживание) на ускорение чтения. Универсальный выбор по умолчанию — B-tree, но для jsonb/массивов/полнотекста и "поиска внутри поля" чаще нужен GIN, для очень больших коррелированных таблиц — BRIN, а для геометрии/диапазонов и специальных операторов — GiST/SP-GiST.
Главная привычка, которая делает индексы "правильными": не ставить их по ощущениям, а проверять планы выполнения и фактические затраты через EXPLAIN (ANALYZE, BUFFERS), держать статистику актуальной и выбирать минимальный индекс, который покрывает ваши ключевые запросы без избыточного урона по записи и поддержке.
## Чек-лист: как понять, что индекс нужен (и какой)
- **1) Зафиксируйте "проблемный" запрос**
Берите реальный запрос из приложения (ORM/SQL), а не упрощённый аналог. Важно, чтобы условия WHERE/ORDER BY/JOIN были такими же, как в проде.
- **2) Проверьте план выполнения до изменений**
Снимите план с фактами и буферами — это ваша точка "до".
```sql
EXPLAIN (ANALYZE, BUFFERS)
SELECT ...
```
- **3) Оцените селективность**
Если запрос возвращает "почти всё" (условно десятки процентов таблицы и больше), индекс может не помочь — Seq Scan может быть логичнее.
Если запрос возвращает небольшую долю строк (особенно при LIMIT) — индекс почти всегда кандидат.
- **4) Проверьте, есть ли сортировка + LIMIT**
Частый кейс "лента/лог/тикеты": ORDER BY + LIMIT. Индекс под сортировку часто даёт максимальный эффект.
```sql
-- пример: лента событий
SELECT * FROM events
WHERE tenant_id = 42
ORDER BY created_at DESC
LIMIT 100;
```
- **5) Убедитесь, что условие совпадает с тем, что вы индексируете**
Если в WHERE есть функция/каст/выражение — индекс по "голой" колонке может не сработать. Тогда нужен индекс на выражение.
```sql
-- запрос
SELECT * FROM customers WHERE lower(email) = 'john@doe.com';-- индекс под запрос
CREATE INDEX customers_lower_email_idx ON customers (lower(email));
```
- **6) Выберите тип индекса по задаче**
**B-tree** — равенство, диапазоны, сортировка, JOIN (дефолт для большинства OLTP)
- **GIN** — jsonb/массивы/полнотекст/триграммы (поиск "внутри поля")
- **BRIN** — огромные таблицы, данные "по порядку" (например, по времени вставки)
- **GiST/SP-GiST** — специфические типы и операторы (гео/диапазоны/и т.п.)
- **7) Подумайте про "точечные" индексы вместо "всего подряд"**
Часто лучше сделать частичный или покрывающий индекс, чем раздувать общий.
```sql
-- частичный индекс (только активные строки)
CREATE INDEX sessions_active_idx ON sessions (user_id)
WHERE revoked_at IS NULL;-- покрывающий индекс (чтобы чаще получать Index Only Scan)
CREATE INDEX bar_ab_cover_idx ON bar (a, b) INCLUDE (c);
```
- **8) Создайте индекс безопасно для прод-нагрузки**
Если база под активной записью, обычно используют CONCURRENTLY (создание дольше, но меньше блокировок на запись).
```sql
CREATE INDEX CONCURRENTLY events_tenant_time_idx
ON events (tenant_id, created_at);
```
- **9) Сравните "после" тем же способом**
Снова снимите EXPLAIN (ANALYZE, BUFFERS) и сравните:
время выполнения
- фактические строки (actual rows)
- BUFFERS: shared hit/read (сколько читали из кеша и с диска)
- тип скана: Index / Bitmap / Index Only
- **10) Проверьте, что индекс реально используется со временем**
Убедитесь, что индекс не "мертвый груз". Статистику использования смотрят через pg_stat_*
```sql
-- смотрим, какие индексы реально сканируются
SELECT relname AS table,
indexrelname AS index,
idx_scan,
idx_tup_read,
idx_tup_fetch
FROM pg_stat_user_indexes
ORDER BY idx_scan DESC;
```
- **11) Следите за побочными эффектами**
После добавления индекса проверьте:
не выросло ли заметно время INSERT/UPDATE
- не раздулся ли диск
- не появились ли "лишние" индексы, которые дублируют друг друга
- **12) Удаляйте/пересматривайте лишние индексы**
Если индекс не используется и не нужен для ограничений/уникальности — это постоянная плата за запись и место.
## Как выбрать порядок колонок в составном индексе
Порядок колонок в составном индексе важнее, чем кажется: PostgreSQL эффективнее всего использует индекс, когда условия в запросе "начинаются" с первых колонок индекса (принцип левого префикса). Поэтому первую позицию обычно отдавайте тому, что почти всегда присутствует в WHERE и лучше всего сужает выборку. Дальше ставят колонку, по которой идёт диапазон (например, дата/время), а затем — поля, которые помогают ORDER BY или делают выборку ещё точнее. Типовой рабочий пример для мультиарендных систем: (tenant_id, created_at) — сначала фиксируем арендатора, затем быстро выбираем период или последние события. При этом низкокардинальные поля вроде status часто не стоит ставить первыми: если у статуса всего несколько значений, такой "первый ключ" плохо фильтрует строки и индекс может использоваться хуже. Если же частый запрос выглядит как "WHERE status = 'error' AND created_at > ", то разумнее сделать отдельный частичный индекс под редкий статус, чем тащить status в начало общего составного индекса.
## Диагностика по EXPLAIN: как читать план на уровне "что искать глазами"
**Первое правило**: смотрите не на "красивый план", а на факты. Используйте EXPLAIN (ANALYZE, BUFFERS) и сравнивайте оценку планировщика с реальностью: сколько строк он ожидал (rows) и сколько вернуло фактически (actual rows). Если расхождение в разы, оптимизатор может выбирать не тот путь — обычно это сигнал, что статистика устарела или распределение данных нестандартное.
Дальше быстро пробегитесь глазами по типу доступа к данным. Seq Scan означает, что таблица читается целиком (иногда это нормально на больших выборках или при параллельном скане). Index Scan — точечный проход по индексу с обращением к таблице за строками. Bitmap Index Scan + Bitmap Heap Scan — компромисс: индекс собирает "карту" подходящих строк, а затем таблица читается пачками страниц, что выгоднее при выборке множества строк и снижает random I/O. Index Only Scan — лучший сценарий для чтения: данные берутся из индекса без походов в heap (если видимость строк позволяет).
Следующий ориентир — BUFFERS. shared hit показывает, сколько блоков нашлось в памяти, shared read — сколько пришлось читать с диска. Если shared read большой, проблема часто в I/O, и индекс может давать слабый эффект просто потому, что данные не помещаются в кеш или чтение слишком случайное. Параллельно смотрите на "время" в узлах плана: иногда индекс используется, но узкое место не в поиске строк, а в сортировке (Sort), агрегации (Aggregate) или джойне (Nested Loop / Hash Join). Тогда индекс "не лечит" причину — нужно менять запрос, порядок условий, добавлять индекс под ORDER BY/LIMIT, либо пересматривать стратегию join'ов.
Мини-шаблон для проверки перед и после индекса выглядит так:
```sql
EXPLAIN (ANALYZE, BUFFERS)
SELECT ...
```
После добавления индекса ваша цель — увидеть более подходящий тип скана (Index/Bitmap/Index Only), уменьшение фактического времени, и (в идеале) падение shared read при сопоставимом количестве returned rows.
## FAQ
- **1) Почему PostgreSQL игнорирует индекс и делает Seq Scan?**
Обычно из-за низкой селективности (возвращаете слишком много строк), из-за более выгодной стоимости последовательного чтения (иногда параллельного), из-за несовпадения выражения в WHERE с тем, что индексировано, или из-за устаревшей/неудачной статистики.
****
- **2) Как понять, используется ли индекс на самом деле?**
Запускайте EXPLAIN (ANALYZE, BUFFERS): если в плане появляются Index Scan, Bitmap Index Scan или Index Only Scan, значит оптимизатор действительно задействовал индекс. Параметр BUFFERS дополнительно покажет, сколько блоков было прочитано из кеша и сколько пришлось взять с диска.
****
- **3) Что такое Index Only Scan и почему он иногда всё равно читает таблицу?**Index-only scan возможен, когда PostgreSQL уверен в видимости строк (visibility map). Если страница не отмечена как all-visible, системе всё равно нужно проверить видимость в heap. Регулярный VACUUM повышает шанс получить index-only scan.
****
- **4) Когда использовать INCLUDE, а когда делать широкий составной индекс?**
INCLUDE полезен, когда поле нужно только для выдачи результата (SELECT), но не должно участвовать в ключе индекса. Это помогает покрывать запросы, не раздувая ключ и не ухудшая поиск/сортировку по главным колонкам.
****
- **5) Что выбрать для JSON: B-tree или GIN?**
Для поиска внутри jsonb обычно нужен GIN. B-tree не предназначен для ускорения операторов "содержит/включает" по структурам JSON.
****
- **6) Почему запрос с LOWER(col) не использует индекс по col?**
Потому что индекс по col не эквивалентен выражению lower(col). Нужен expression index на lower(col), либо переписывание запросов/хранение нормализованного значения в отдельной колонке.
****
- **7) Когда BRIN лучше, чем партиционирование?**
BRIN стоит попробовать на очень больших таблицах с хорошей корреляцией значений с физическим порядком строк (например, логи по времени). Он проще и дешевле в сопровождении, чем партиционирование, хотя решает более узкую задачу.
****
- **8) Hash-индекс действительно быстрее B-tree для равенства?**
Иногда — да, но он поддерживает только "=" по одному столбцу и имеет ограничения. На практике чаще начинают с B-tree и переходят к hash только при подтверждённой выгоде на конкретной нагрузке.
**Источник-референс: [https://dlt.github.io/blog/posts/introduction-to-postgresql-indexes/](https://dlt.github.io/blog/posts/introduction-to-postgresql-indexes/)**
## Тестируйте индексы PostgreSQL на практике
Если вы хотите быстро проверить, как индексы влияют на реальные запросы в PostgreSQL, удобнее всего делать это на отдельном стенде: поднять базу, прогнать EXPLAIN (ANALYZE, BUFFERS), сравнить планы до/после CREATE INDEX, собрать метрики и не трогать прод. В этом смысле [serverspace.uz](https://serverspace.uz/index.md) подходит как практичная площадка для экспериментов: за минуту разворачиваете облачный сервер или готовый PostgreSQL-инстанс, подключаете мониторинг, масштабируете ресурсы под нагрузочное тестирование и платите только за фактическое использование. Это особенно полезно, когда нужно подобрать правильный тип индекса (B-tree vs GIN/BRIN), обкатать частичные/покрывающие индексы (INCLUDE) и убедиться, что оптимизация реально ускоряет ваши запросы, а не просто "красиво выглядит" в теории.
https://serverspace.uz/support/help/ansible-hardening-usilenie-bezopasnosti-linux-ssh-nginx-i-mysql-devsecops.mdAnsible Collection Hardening — автоматизация hardening Linux, SSH, nginx и MySQL. Обзор ролей, примеры команд, FAQ и best practices для DevOps и IT-инфраструктуры.
**Ansible Collection Hardening** — это набор ролей Ansible, предоставляющий проверенные на практике (battle-tested) рекомендации по усилению безопасности популярных компонентов инфраструктуры: Linux, SSH, nginx и MySQL.
Коллекция разрабатывается сообществом **dev-sec** и ориентирована на автоматизацию security best practices без необходимости вручную настраивать десятки конфигурационных файлов.
**GitHub-репозиторий проекта:**
[https://github.com/dev-sec/ansible-collection-hardening](https://github.com/dev-sec/ansible-collection-hardening)
## Что такое Ansible Collection Hardening
Ansible Collection Hardening — это модульная коллекция ролей, каждая из которых отвечает за защиту отдельного слоя системы:
- операционная система Linux
- служба удалённого доступа SSH
- веб-сервер nginx
- сервер баз данных MySQL
Все роли написаны с учётом:
- рекомендаций CIS Benchmarks
- best practices DevSecOps
- минимального влияния на работоспособность системы
Коллекция не "ломает" систему, а аккуратно повышает уровень безопасности, оставляя возможность гибкой настройки через переменные.
## Основные роли коллекции
### 1. OS Hardening
Роль для базового усиления безопасности Linux-системы:
- настройка sysctl-параметров ядра
- ограничение прав доступа к системным файлам
- отключение небезопасных модулей и сервисов
- усиление параметров PAM
- настройка auditd
Поддерживаются популярные дистрибутивы: Ubuntu, Debian, RHEL, CentOS и производные.
### 2. SSH Hardening
Роль для защиты SSH-доступа:
- отключение входа под root
- запрет устаревших алгоритмов шифрования
- ограничение попыток входа
- настройка таймаутов
- работа с AllowUsers / AllowGroups
Особенность роли — безопасность без потери управляемости серверов.
### 3. nginx Hardening
Роль усиливает конфигурацию nginx:
- настройка безопасных TLS-параметров
- отключение небезопасных HTTP-методов
- защита от утечек информации (server_tokens)
- безопасные заголовки (HSTS, X-Frame-Options и др.)
Подходит как для публичных веб-сервисов, так и для внутренних API.
### 4. MySQL Hardening
Роль направлена на защиту сервера баз данных MySQL / MariaDB:
- безопасные настройки аутентификации
- ограничение сетевого доступа
- жёсткие параметры логирования
- отключение небезопасных функций
Особенно полезно для продакшн-сред и хостинга БД.
## Шпаргалка по основным командам
| Задача | Команда |
| --- | --- |
| Установка коллекции | ``` ansible-galaxy collection install devsec.hardening ``` |
| Просмотр установленных коллекций | ``` ansible-galaxy collection list ``` |
| Пример подключения роли в playbook | ``` - hosts: servers roles: - devsec.hardening.ssh_hardening ``` |
| Запуск playbook | ``` ansible-playbook site.yml ``` |
| Переопределение параметров | ``` ssh_permit_root_login: "no" ssh_password_authentication: "no" ``` |
## Преимущества использования
- экономия времени на ручной настройке безопасности
- единый стандарт hardening для всей инфраструктуры
- простая интеграция в CI/CD и IaC-процессы
- гибкость через переменные Ansible
- активная поддержка сообщества
## FAQ
- **Можно ли использовать только одну роль, а не всю коллекцию?**
Да, роли полностью независимы. Можно подключать только SSH, nginx или любую другую часть.
- **Подходит ли коллекция для продакшена?**
Да. Коллекция ориентирована именно на production-окружения и используется в реальных инфраструктурах.
- **Не сломает ли hardening существующие сервисы?**
По умолчанию используются безопасные, но консервативные настройки. Однако перед применением в продакшене рекомендуется протестировать роли в staging-среде.
- **Можно ли переопределять настройки?**
Да, все параметры доступны через variables и легко кастомизируются под нужды проекта.
## Вывод
Ansible Collection Hardening — это удобный и надёжный способ повысить уровень безопасности Linux-инфраструктуры без глубокого погружения в ручную настройку hardening-параметров.
Коллекция особенно полезна для:
- DevOps и SRE-команд
- хостинг-провайдеров
- проектов с требованиями к безопасности
- автоматизированных CI/CD-пайплайнов
Если вы используете Ansible и хотите внедрить безопасность как код — **ansible-collection-hardening** является отличной отправной точкой.
https://serverspace.uz/support/help/zedis-dlya-redis-bystryj-nativnyj-gui-klient-gajd-2026.mdПошаговый гайд по Zedis — быстрому нативному GUI-клиенту для Redis на GPUI: установка, подключение к Standalone/Cluster/Sentinel, read-only, TLS и SSH-туннель.
## Zedis: быстрый GUI-клиент для Redis
Zedis — нативный GUI-клиент для Redis, рассчитанный на скорость и плавную работу с большими объёмами данных.
В отличие от тяжёлых Electron-клиентов, Zedis построен на GPUI (рендеринг как у Zed Editor), поэтому интерфейс остаётся отзывчивым даже при просмотре миллионов ключей.
Официальный репозиторий: [https://github.com/vicanso/zedis](https://github.com/vicanso/zedis)
## Установка
### macOS (Homebrew)
```
brew install --cask zedis
```
### Windows (Scoop)
```
scoop bucket add extras
scoop install zedis
```
### Arch Linux
```
yay -S zedis-bin
```
### Через Cargo (Rust)
```
cargo install --locked zedis-gui
```
## Первый запуск и подключение к Redis
- Запустите Zedis и создайте новое подключение (connection/profile).
- Укажите параметры Redis: Host, Port и способ авторизации (пароль или ACL user + password).
- Если это не одиночный инстанс, Zedis умеет автоматически определять топологию (Standalone / Cluster / Sentinel) — можно подключиться к любому узлу, а приложение подтянет структуру.
- При необходимости выберите базу данных (DB index), если Redis использует несколько DB.
## Безопасное подключение: Read-only, TLS и SSH-туннель
### Read-only режим
Если вы подключаетесь к продакшену, включите Read-only Mode в настройках подключения, чтобы случайно не удалить и не перезаписать ключи.
Практика: даже с read-only режимом лучше использовать отдельного пользователя ACL с ограниченными правами.
### TLS/SSL
Если Redis доступен по TLS, включите TLS в настройках подключения.
При необходимости укажите:
- Custom CA (свой корневой сертификат)
- Client Certificate
- Private Key
### SSH Tunneling
Если Redis доступен только из приватной сети, используйте SSH-туннель через bastion/jump-host.
Zedis поддерживает аутентификацию по паролю, по ключу и через SSH Agent.
## Навигация по ключам и работа с большими базами
Zedis оптимизирован под большие датасеты: список ключей работает плавно и не "умирает" на сотнях тысяч и миллионах ключей.
Для перебора ключей обычно используется итеративный подход через
```
SCAN
```
(это безопаснее и практичнее, чем
```
KEYS
```
на больших базах).
### Совет по производительности
Если сканирование кажется слишком медленным или, наоборот, слишком нагружает Redis, проверьте настройку scan count (в релизах Zedis эта настройка встречается как параметр, влияющий на скорость/нагрузку при сканировании).
### Namespace-дерево по двоеточию
Если ключи имеют формат вроде
```
user:1001:profile
```
, Zedis может группировать их в дерево namespaces.
Это удобно для навигации, фильтрации и массовых операций по ветке.
## Просмотр и редактирование значений
Zedis поддерживает стандартные типы Redis и даёт удобные просмотрщики/редакторы для:
- String
- List
- Set
- ZSet
- Hash
- Stream
### Умный просмотр содержимого
Полезная фишка Zedis — попытка автоматически "сделать данные читаемыми", когда это возможно:
- распаковка данных (например, LZ4 / Snappy / Gzip / Zstd)
- pretty-print для JSON
- работа с бинарными форматами (например, Protobuf / MessagePack)
- предпросмотр изображений (PNG/JPG/WEBP/SVG/GIF) при хранении в значении
- Hex-просмотр для бинарных данных
## Встроенный CLI и удобства для рутины
- Встроенный CLI "как
```bash
redis-cli
```
" — удобно для точечных команд.
- Автодополнение команд и подсказки по синтаксису (ориентируются на версию Redis).
- История поиска и быстрый возврат к предыдущим запросам (обычно привязана к подключению).
## Автообновление и массовые операции
### Auto Refresh
Можно включить автообновление списка ключей и/или значения выбранного ключа.
Полезно при отладке, когда данные меняются в реальном времени, но важно не злоупотреблять на продакшене (излишние обновления = лишняя нагрузка).
### Batch-операции
Zedis поддерживает массовые действия, которые экономят время в больших базах:
- мультивыбор ключей и пакетные операции
- удаление по префиксу
- удаление "ветки" namespace
## Вывод
**Zedis** — хороший выбор, если нужен быстрый и лёгкий GUI для Redis без "тормозов" на больших наборах ключей.
Он особенно полезен в сценариях "много ключей, много навигации, много просмотра", где Electron-клиенты начинают заметно проседать по отзывчивости и памяти.
Для безопасной работы с продакшеном используйте Read-only режим и/или отдельного ACL-пользователя с ограниченными правами, а доступ к приватным инстансам организуйте через TLS или SSH-туннель.
## FAQ
- **Подходит ли Zedis для продакшена?**
Как инструмент просмотра и диагностики — да, особенно если включить Read-only и подключаться пользователем с ограниченными правами.
Если вы планируете активно редактировать/удалять данные, сначала протестируйте процесс на стейдже и ограничьте доступы (ACL), чтобы исключить человеческие ошибки
- **Почему Zedis быстрее многих GUI-клиентов?**
Он нативный и построен на GPUI, поэтому интерфейс отрисовывается плавно и не раздувает память так, как это часто бывает у Electron-приложений
- **Как безопасно смотреть прод без риска "сломать" данные?**
Включите Read-only Mode и используйте отдельного ACL-пользователя без прав на запись/удаление.
Дополнительно ограничьте сетевой доступ (VPN, private network) и включите TLS, если Redis доступен извне.
- **Что делать, если список ключей грузится долго?**
Фильтруйте по namespace/префиксу и проверьте параметры сканирования (scan count).
Слишком большой scan count может давать рывки и нагрузку, слишком маленький — делать навигацию медленнее.
- **Можно ли подключаться через бастион (jump host)?**
Да, используйте SSH Tunneling: Zedis умеет работать через SSH и поддерживает разные способы аутентификации, включая SSH Agent.
- **Есть ли встроенная консоль команд Redis?**
Да, в Zedis есть встроенный CLI, который удобен для точечных команд и проверки гипотез без переключения на терминал.
https://serverspace.uz/support/help/qmd-lokalnyj-poisk-po-markdown-zametkam-i-baze-znanij-gajd-2026.mdИнструкция по QMD: коллекции, индексация, поиск по ключевым словам и естественным запросам, выдача для agentic flows и MCP.
## QMD: локальный поисковик по вашим заметкам и документации
QMD (Query Markup Documents) — on-device поисковый движок, который индексирует ваши markdown-заметки, расшифровки встреч, документацию и базы знаний, а затем позволяет искать по ним ключевыми словами или "человеческим" запросом.
Главная идея: не "скармливать" агенту весь контекст, а быстро находить релевантные куски локально и отдавать их в LLM по запросу — в том числе через удобные форматы вывода для agentic flows.
QMD делает гибридный поиск: BM25 (полнотекст), векторный семантический поиск и LLM-реранкинг — всё локально через node-llama-cpp и GGUF-модели.
Репозиторий: [https://github.com/tobi/qmd](https://github.com/tobi/qmd)
## Требования
- Node.js >= 22
- Bun >= 1.0.0
- macOS: SQLite из Homebrew (для поддержки расширений)
### Модели для семантики и качества (скачиваются автоматически)
QMD использует три локальные GGUF-модели (подтягиваются при первом использовании и кэшируются):
- Embedding-модель для векторов: ~300MB
- Реранкер: ~640MB
- Модель расширения запросов (query expansion): ~1.1GB
Кэш моделей обычно лежит в
```
~/.cache/qmd/models/
```
.
**Важно**: первый запуск потребует интернета, чтобы скачать модели, дальше всё работает локально.
## Установка
Установить можно глобально через npm или bun:
```bash
npm install -g @tobilu/qmd
# или
bun install -g @tobilu/qmd
```
Можно запускать без установки (через npx/bunx):
```
npx @tobilu/qmd ...
bunx @tobilu/qmd ...
```
## Быстрый старт: индексируем заметки и начинаем искать
Идеология QMD — вы собираете всё в "коллекции" (папки/репозитории), добавляете контекст (что это за знания), затем генерируете эмбеддинги и ищете.
### Добавьте коллекции
```
qmd collection add ~/notes --name notes
qmd collection add ~/Documents/meetings --name meetings
qmd collection add ~/work/docs --name docs
```
### Добавьте контекст (важно для качества выдачи у агентов)
Контекст — это описание коллекции/подпапки, которое QMD возвращает вместе с совпадениями. Это сильно помогает LLM понять "что это за документы" и правильнее выбирать релевантные куски.
```
qmd context add qmd://notes "Личные заметки и идеи"
qmd context add qmd://meetings "Транскрипты и заметки встреч"
qmd context add qmd://docs "Рабочая документация"
```
Можно добавлять контекст изнутри папки коллекции:
```
cd ~/notes
qmd context add "Личные заметки и идеи"
```
### Сгенерируйте эмбеддинги для семантического поиска
```
qmd embed
```
Если нужно пересчитать всё заново:
```
qmd embed -f
```
## Как искать: три режима
В QMD есть три режима поиска — выбирайте под задачу:
-
```
qmd search
```
— быстрый полнотекстовый BM25 (ключевые слова)
-
```
qmd vsearch
```
— семантический поиск по векторам (когда формулировки "не совпадают")
-
```
qmd query
```
— "глубокий" гибрид: FTS + вектора + расширение запроса + реранкинг (максимальное качество)
### Примеры
```
qmd search "project timeline"
qmd vsearch "как задеплоить сервис"
qmd query "процесс квартального планирования"
```
### Поиск в конкретной коллекции
```
qmd search "API" -c notes
```
### Полезные опции
-
```
-n
```
— количество результатов
-
```
--all
```
— вернуть все совпадения (лучше вместе с фильтром)
-
```
--min-score
```
— порог релевантности (чтобы отсечь шум)
-
```
--json
```
— структурированный вывод для скриптов/агентов
-
```
--files
```
— вывести список файлов, которые подходят под запрос
Пример "для агента":
```
qmd query "error handling" --all --files --min-score 0.4
qmd search "authentication" --json -n 10
```
## Как доставать документы целиком
После поиска обычно нужно быстро вытащить файл (или кусок файла) в контекст агента или в свою работу.
### Получить документ по пути
```
qmd get "meetings/2024-01-15.md"
```
### Получить документ по docid
В результатах поиска QMD показывает docid (короткий хэш). Его можно использовать так:
```
qmd get "#abc123"
```
### Получить кусок файла по строкам
```
qmd get notes/meeting.md:50 -l 100
```
### Достать несколько документов
По glob-шаблону:
```
qmd multi-get "journals/2025-05*.md"
```
Списком (включая docid):
```
qmd multi-get "doc1.md, doc2.md, #abc123"
```
Ограничить размер файлов (полезно для агентных пайплайнов):
```
qmd multi-get "docs/*.md" --max-bytes 20480
```
## Управление коллекциями и индексом
### Коллекции
```
# добавить коллекцию из текущей директории
qmd collection add . --name myproject
# добавить коллекцию с маской (например, только .md)
qmd collection add ~/Documents/notes --name notes --mask "**/*.md"
# список коллекций
qmd collection list
# удалить/переименовать
qmd collection remove myproject
qmd collection rename myproject my-project
```
### Обновление индекса
```
qmd status
qmd update
```
Если коллекции — это git-репозитории, можно обновлять с pull перед индексацией:
```
qmd update --pull
```
Очистка кэша и "осиротевших" данных:
```
qmd cleanup
```
## Где хранятся данные
Индекс хранится в SQLite-файле (по умолчанию):
```
~/.cache/qmd/index.sqlite
```
.
Можно переопределять базовую папку кэша через переменную окружения
```
XDG_CACHE_HOME
```
.
Практический смысл: индекс легко бэкапить, переносить и держать раздельно (например, рабочий и личный).
## MCP-интеграция для AI-агентов
QMD можно использовать просто как CLI (агент вызывает команды в терминале), но также есть MCP-сервер для более плотной интеграции.
QMD поднимает MCP и даёт инструменты вроде поиска (BM25/вектора/глубокий), получения документов и статуса индекса.
### Пример для Claude Desktop
В конфиг добавляется MCP-сервер, который запускает
```
qmd mcp
```
. Пример настроек:
```json
{
"mcpServers": {
"qmd": {
"command": "qmd",
"args": ["mcp"]
}
}
}
```
## Вывод
QMD — практичная "память" на вашей машине: вы индексируете заметки и документацию один раз, а дальше находите нужное быстрым полнотекстом, семантикой или гибридным глубоким поиском с реранкингом.
Это особенно полезно для agentic flows: QMD отдаёт результаты в структурированном виде и помогает агенту брать в контекст только действительно релевантные куски — без лишних токенов и без утечек данных наружу.
## FAQ
- **QMD — это облачный сервис?**
Нет. QMD работает on-device: индекс и модели находятся локально. Интернет нужен в основном на первом шаге (скачать модели), дальше поиск выполняется на вашей машине.
- **Нужно ли обязательно делать эмбеддинги?**
Нет. Если вам достаточно ключевых слов, можно использовать только
```
qmd search
```
.
Но для "человеческих" запросов и неочевидных формулировок семантика (
```
vsearch
```
) и гибрид (
```
query
```
) обычно заметно лучше.
- **Чем
```
search
```
отличается от
```
query
```
?**
```
search
```
— быстрый BM25 по тексту (лучше для терминов, названий, точных совпадений).
```
query
```
— глубокий гибрид: сочетает полнотекст, вектора, расширение запроса и реранкинг (лучше качество, особенно для "как сделать").
- **Можно ли разделить рабочий и личный индексы?**
Да. Можно использовать отдельный индекс (например, через отдельные профили/параметры запуска) и/или разнести кэши, чтобы не смешивать базы знаний.
- **Как безопаснее использовать QMD с агентами?**
Используйте форматы
```
--json
```
и/или
```
--files
```
+
```
--min-score
```
, а затем подтягивайте документы точечно через
```
qmd get
```
или
```
qmd multi-get
```
.
Так агент получает только то, что реально нужно, и меньше "мусора" попадает в контекст.
- **Где посмотреть "здоровье" индекса?**
Команда
```
qmd status
```
покажет состояние индекса, коллекции и связанные контексты.
https://serverspace.uz/support/help/tuckr-menedzher-dotfiles-dlya-linux-macos-i-windows-ustanovka-i-primery.mdПодробный гайд по Tuckr: установка через Cargo/Brew/AUR, структура dotfiles, команды add/set/rm, hooks, FAQ. Подходит для Linux, macOS и Windows.
## Введение
**Tuckr** — это кроссплатформенный менеджер dotfiles, вдохновлённый GNU Stow и Git: он раскладывает конфиги по системе через симлинки, стараясь сделать управление "точками" максимально простым и без лишней магии. Он работает на Linux/BSD, macOS и Windows. В основе лежит подход Stow: вы храните файлы конфигураций в одном каталоге, а Tuckr создаёт ссылки в нужных местах (обычно в **$HOME**).
## Ссылка на GitHub
[https://github.com/RaphGL/Tuckr](https://github.com/RaphGL/Tuckr)
## Зачем нужен Tuckr и чем он отличается
- **Минимальная кривая обучения:** простая модель "пакетов" (групп конфигов), как в Stow.
- **Никакой лишней "обвязки":** проект не пытается заменить git/rm/cp и другие стандартные утилиты.
- **Кроссплатформенность:** Linux, Windows, BSD и macOS.
- **Проверка/валидация симлинков:** можно быстро увидеть, что установлено и что сломано.
- **Hooks:** скрипты до/после развёртывания.
- **Secrets (WIP):** заготовка для работы с зашифрованными файлами.
## Как устроен каталог dotfiles
Tuckr ожидает структуру без отдельного конфиг-файла для самого менеджера. Обычно используются такие каталоги:
-
```
Configs/
```
— сами dotfiles (по группам/программам)
-
```
Hooks/
```
— скрипты, которые запускаются до/после установки группы
-
```
Secrets/
```
— зашифрованные файлы (функция в состоянии WIP)
Пример структуры:
```
dotfiles
├── Configs
│ ├── tmux
│ └── zsh
├── Hooks
│ ├── tmux
│ └── zsh
└── Secrets
```
Внутри каждой группы структура повторяет то, как файлы должны лежать в
```
$HOME
```
. Например, если tmux использует
```
~/.config/tmux/tmux.conf
```
, то в репозитории это будет так:
```
Configs/tmux/.config/tmux/tmux.conf
```
## Где хранить dotfiles (пути по ОС)
Tuckr ищет каталог dotfiles в стандартных местах (можно выбрать "config path" или "home path"):
- **Linux/BSD:**
```
~/.config/dotfiles
```
или
```
~/.dotfiles
```
- **macOS:**
```
~/Library/Application Support/dotfiles
```
или
```
~/.dotfiles
```
- **Windows:**
```
%HomePath%\AppData\Roaming\dotfiles
```
или
```
%HomePath%\.dotfiles
```
## Установка
### Через Cargo (Rust)
```
cargo install tuckr
```
Установка из GitHub:
```
cargo install --git https://github.com/RaphGL/Tuckr.git
```
Важно: бинарник окажется в
```
$HOME/.cargo/bin
```
— добавьте его в
```
PATH
```
или перенесите в каталог, который уже находится в
```
PATH
```
### Arch Linux (AUR)
```
paru -S tuckr-git
```
### macOS (Homebrew)
```
brew install tuckr
```
### Windows
Для корректной работы симлинков на Windows нужно включить **Developer Mode**.
## Примеры использования
### Развернуть все группы
```
tuckr add \*
```
### Развернуть всё, кроме одной группы (например, neovim)
```
tuckr add \* -e neovim
```
### Развернуть только выбранные группы
```
tuckr add neovim zsh
```
### Развернуть и прогнать хуки (setup)
```
tuckr set \*
```
### Удалить развернутые симлинки
```
tuckr rm \*
```
### Проверить статус
```
tuckr status
```
У status есть алиас s
## Hooks: pre/post скрипты
Hooks запускаются до и после добавления группы. Скрипты до симлинков —
```
pre*
```
, после —
```
post*
```
. Имя папки в
```
Hooks/
```
должно совпадать с именем группы в
```
Configs/
```
.
Пример:
```
Hooks
├── tmux
│ ├── pre.sh
│ └── post.sh
└── zsh
├── pre.sh
└── post.sh
```
Запуск хуков:
```
tuckr set
tuckr set *
```
## Secrets (WIP)
Функция секретов находится в состоянии WIP, и проект предупреждает, что безопасность не гарантирована. Практичный вариант — шифровать проверенными инструментами (например, gpg) и подключать это через хуки.
Команды:
```
tuckr encrypt
tuckr decrypt
```
## Условное развёртывание (Conditional deployment)
Если часть конфигов нужна только на конкретной ОС, используйте суффиксы групп:
-
```
_linux
```
-
```
_macos
```
-
```
_windows
```
-
```
_wsl
```
-
```
_unix
```
Пример:
```
Configs
├── config
├── config_unix
├── config_linux
├── config_macos
├── config_windows
└── config_wsl
```
## Переменные окружения в путях
Tuckr умеет подставлять переменные окружения: всё, что начинается с
```
%
```
, трактуется как env var.
Пример:
```
program
└── %PROGRAM_PATH
└── config.txt
```
## Развёртывание "вне HOME" (Root targeting)
Если файл должен попасть, например, в
```
/etc
```
, используйте префикс **^** — он говорит Tuckr целиться в root.
Пример:
```
crontab
└── ^etc
└── crontab
```
## FAQ
### Что делать, если Tuckr не видит мои dotfiles?
Проверьте, что каталог находится в одном из стандартных путей (например,
```
~/.dotfiles
```
или
```
~/.config/dotfiles
```
на Linux) и что внутри есть
```
Configs/
```
(а при необходимости
```
Hooks/
```
и
```
Secrets/
```
).
### Можно ли мигрировать со Stow?
Да: удалите старые симлинки через
```
stow --delete
```
, приведите структуру репозитория к формату Tuckr и выполните
```
tuckr add \*
```
, затем проверьте результат командой
```
tuckr status
```
### Почему на Windows не создаются симлинки?
Чаще всего потому, что не включён **Developer Mode**. Включите его, и повторите развёртывание.
### Насколько безопасны Secrets?
Сейчас это WIP: проект предупреждает, что безопасность не гарантирована. Лучше использовать проверенные инструменты (например, gpg) через хуки.
### Как развернуть всё, кроме одного пакета?
Используйте исключение
```
-e
```
, например:
```
tuckr add \* -e neovim
```
### Как управлять конфигами для разных ОС в одном репозитории?
Используйте условные группы с суффиксами
```
_linux/_macos/_windows/_wsl/_unix
```
— неподходящие для текущей ОС будут игнорироваться.
## Вывод
Если вам нравится подход GNU Stow (простая структура + симлинки), но хочется чуть больше удобства — проверки ссылок, хуков, условных групп и кроссплатформенности — Tuckr выглядит как аккуратная "надстройка без лишнего веса".
https://serverspace.uz/support/help/neobychnye-optimizaczii-postgresql-kreativnye-sposoby-uskorit-zaprosy-serverspace-uz.mdПодборка нестандартных приёмов ускорения PostgreSQL: constraint_exclusion, function-based индексы, generated columns, hash через exclusion constraint. Практика для DBA и разработчиков в Узбекистане.
## Введение
Когда запрос в PostgreSQL работает медленно, чаще всего помогают стандартные шаги: анализ плана, индексы, переписывание SQL, VACUUM/ANALYZE, иногда денормализация.
Но бывают ситуации, где "нестандартный" приём даёт заметный прирост — особенно в аналитике и BI, где много ad-hoc запросов и человеческих ошибок. Ниже — разбор идей из статьи "Unconventional PostgreSQL Optimizations" на русском (со слегка изменённой структурой).
Оригинал: [https://hakibenita.com/postgresql-unconventional-optimizations](https://hakibenita.com/postgresql-unconventional-optimizations)
## 1) Как избежать бессмысленных Seq Scan с помощью CHECK-constraints
Иногда запрос гарантированно не может вернуть строки из-за ограничений (CHECK constraint), но PostgreSQL всё равно делает Seq Scan — тратит CPU и I/O, хотя результат заранее пустой. Это часто встречается в отчётах, где пользователь ошибся в значении фильтра (регистр, опечатка, неверный код).
Пример: значение колонки ограничено CHECK'ом, но запрос просит невозможное.
```sql
CREATE TABLE users (
id INT PRIMARY KEY,
username TEXT NOT NULL,
plan TEXT NOT NULL,
CONSTRAINT plan_check CHECK (plan IN ('free', 'pro'))
);
```
Пользователь пишет:
```sql
SELECT * FROM users WHERE plan = 'Pro';
```
Результат пустой — но без подсказок планировщику запрос может пройтись по таблице целиком.
Один из нетривиальных рычагов — параметр constraint_exclusion. При включении PostgreSQL способен понять, что условие заведомо ложное, и "срезать" выполнение до нуля работы.
```sql
SET constraint_exclusion = 'on';
EXPLAIN ANALYZE
SELECT * FROM users WHERE plan = 'Pro';
```
### Когда это полезно
- BI/аналитика: много произвольных запросов, больше ошибок — больше "пустых" тяжёлых сканов.
- Репортинг: выгодно на ролях/подключениях аналитиков, где важна экономия ресурсов.
- OLTP: может быть менее актуально из-за накладных расходов на планирование — проверяйте на практике.
## 2) Индексируем "смысл", а не точность: даты вместо timestamptz
Типичный отчёт: посчитать суммы по дням. Часто таблица хранит время с точностью до секунд/миллисекунд, но бизнесу нужны только "дневные бакеты".
Если индексировать исходный timestamptz, индекс может быть крупным и дорогим в обслуживании. Нестандартная идея: индексировать выражение с пониженной кардинальностью (например, только дату/день).
### Пример запроса (агрегация по дням)
```sql
SELECT date_trunc('day', sold_at AT TIME ZONE 'UTC') AS day, SUM(charged) AS total FROM sale WHERE sold_at >= '2025-01-01 UTC' AND sold_at < '2025-02-01 UTC' GROUP BY 1;
```
### Function-based индекс по дате
```sql
CREATE INDEX sale_sold_at_date_ix ON sale (((date_trunc('day', sold_at AT TIME ZONE 'UTC'))::date));
```
Чтобы индекс использовался, условие в WHERE должно совпадать с выражением индекса:
```sql
SELECT date_trunc('day', sold_at AT TIME ZONE 'UTC') AS day,
SUM(charged) AS total
FROM sale
WHERE (date_trunc('day', sold_at AT TIME ZONE 'UTC'))::date
BETWEEN '2025-01-01' AND '2025-01-31'
GROUP BY 1;
```
### Почему это может ускорить
- Меньше уникальных значений (низкая кардинальность) → индекс компактнее.
- Проще дедупликация и хранение повторов в индексе.
- Индекс ровно под типовые отчёты (по дням/неделям/месяцам), а не под "все возможные секунды".
## 3) "Discipline problem": как не сломать function-based индекс руками
Главный минус function-based индекса — хрупкость. Чуть изменили выражение (другая функция, другой каст, другая TZ-логика) — и PostgreSQL может не распознать соответствие, уйдя в Seq Scan или другой план. Это называют "discipline problem": все должны писать запросы "одинаково правильно".
Подход из статьи: использовать generated columns как единый "канонический" слой, чтобы в запросах фигурировала одна и та же колонка, а не десятки вариаций выражения.
### Generated column как "точка истины"
Идея: добавить вычисляемую колонку, например, дату продажи.
```sql
ALTER TABLE sale
ADD COLUMN sold_at_date DATE
GENERATED ALWAYS AS ((date_trunc('day', sold_at AT TIME ZONE 'UTC'))::date) STORED;
```
Теперь запросы становятся проще и стабильнее:
```sql
SELECT sold_at_date, SUM(charged) AS total
FROM sale
WHERE sold_at_date BETWEEN '2025-01-01' AND '2025-01-31'
GROUP BY 1;
```
### Плюсы подхода
- Меньше ошибок в запросах: люди используют готовую колонку, а не "изобретают" выражение заново.
- Понятнее семантика (особенно с таймзонами).
- Проще сопровождать и оптимизировать отчёты.
## 4) Уникальность для больших TEXT: "уникальный Hash" через exclusion constraint
Если у вас огромные текстовые значения (например, длинные URL) и почти нет повторов, btree-индекс для уникальности может занимать много места. Hash-индекс часто выходит компактнее, потому что оперирует хэшами.
Проблема: уникальные hash-индексы напрямую не поддерживаются. Нестандартный обход — использовать exclusion constraint, который в этом сценарии ведёт себя как "уникальность", но под капотом применяет hash-метод доступа.
### Пример: уникальность URL через EXCLUDE USING HASH
```sql
ALTER TABLE urls ADD CONSTRAINT urls_url_unique_hash EXCLUDE USING HASH (url WITH =);
```
### Ограничения и подводные камни
- Foreign key может не получиться повесить так же, как на обычный UNIQUE (зависит от требований к уникальным ограничениям).
- UPSERT (INSERT ... ON CONFLICT): чаще работает вариант с ON CONSTRAINT, но есть нюансы, особенно с DO UPDATE.
- Нужно внимательно проверить совместимость с вашим приложением и миграциями.
## FAQ
### Это можно применять в продакшене?
Можно, но это "нишевые" оптимизации. Всегда начинайте с EXPLAIN (ANALYZE, BUFFERS), измеряйте эффект на реальных данных и оценивайте влияние на запись/обслуживание индексов.
### Когда стоит включать constraint_exclusion?
Чаще всего — для аналитических ролей/подключений, где много ad-hoc запросов и высок шанс "пустых" тяжёлых сканов из-за ошибок в фильтрах.
### Function-based индекс — хороший выбор?
Да, если у вас стабильный паттерн запросов (например, "всегда по дням") и вы хотите уменьшить индекс/ускорить отчёты. Но помните про "discipline problem".
### Generated columns реально помогают?
Да: они упрощают запросы и стандартизируют логику. Это снижает вероятность "случайно не попасть в индекс" из-за другой формулы.
### Hash через exclusion constraint — безопасно?
Технически это рабочий механизм, но с ограничениями (FK, ON CONFLICT). Перед внедрением проверьте, не ломает ли это вашу модель данных и типовые операции приложения.
## Вывод
Нестандартные оптимизации полезны там, где стандартные подходы уже выжали максимум или где много "человеческого фактора".
Главные идеи:
- Использовать ограничения (CHECK) так, чтобы планировщик мог быстрее отсеивать невозможные условия.
- Индексировать не "сырой" timestamptz, а гранулярность, которая реально нужна бизнесу (дата/день/месяц).
- Снижать риск ошибок запросов через generated columns.
- Рассматривать альтернативные структуры (hash-подход) для больших редких TEXT, учитывая ограничения.
https://serverspace.uz/support/help/bufery-postgresql-shared_buffers-kesh-i-performance-tuning-serverspace-uz.mdРазбираем буферы PostgreSQL: shared_buffers, OS page cache, pin/usage, clock sweep, dirty pages, checkpoint и ring buffers. Практика EXPLAIN (ANALYZE, BUFFERS) для ускорения запросов в UZ.
## Введение
Тема буферов в PostgreSQL обычно всплывает только в одном месте — когда кто-то советует "подкрутить shared_buffers (например, до 1/4 RAM)".
Но буферы — это не просто настройка. Это фундаментальный слой, через который проходят чтения и записи: какие данные попадут в память, что будет вытеснено, когда и как "грязные" страницы окажутся на диске, почему последовательный скан не должен уничтожать прогретый кэш, и зачем вообще PostgreSQL держит собственный buffer cache при наличии кэша ОС.
Оригинал: [https://boringsql.com/posts/introduction-to-buffers/](https://boringsql.com/posts/introduction-to-buffers/)
## 1) База основ: 8KB страница — атомарная единица I/O
Прежде чем говорить о буферах, важно понять ключевую вещь: PostgreSQL читает и пишет данные блоками фиксированного размера — страницами (pages).
По умолчанию размер страницы почти всегда 8192 байта (8KB). Это означает:
- когда запросу нужна "одна строка", PostgreSQL всё равно читает страницу целиком;
- когда происходит запись, изменяется и записывается страница (а не отдельная строка);
- таблицы и индексы — это просто набор таких 8KB страниц;
- очень большие строки могут занимать несколько страниц, но "атомарность I/O" остаётся на уровне страницы.
Проверить размер страницы можно так:
```
SHOW block_size;
```
## 2) Почему PostgreSQL держит свой кэш, если есть кэш ОС
Логичный вопрос: зачем PostgreSQL вообще нужен собственный буферный кэш, если операционная система уже умеет кэшировать файлы в RAM (page cache)?
Причины две:
### 2.1 Семантика данных
ОС видит "байты в файлах". PostgreSQL видит "таблицы, индексы, планы запросов" — и может принимать более умные решения. Например, при разовом последовательном скане большой таблицы PostgreSQL старается не "вымести" из кэша горячие страницы, используя специальные стратегии (ring buffers).
### 2.2 Долговечность и WAL (ACID)
PostgreSQL обязан соблюдать правило: сначала WAL должен попасть на стабильное хранилище, и только потом можно считать изменения данных надёжно зафиксированными. ОС не понимает, какие страницы относятся к данным, какие к WAL, и не может так же эффективно гарантировать этот порядок без сильного удара по производительности.
## 3) shared_buffers: главный буферный пул PostgreSQL
Параметр shared_buffers задаёт размер общей памяти, доступной всем backend-процессам.
Модель простая:
- процессу нужен блок данных → он сперва ищет его в shared_buffers;
- если блок найден — это hit (диска не касаемся);
- если блока нет — это miss: читаем с диска (или из кэша ОС), кладём в shared_buffers для следующих обращений.
Посмотреть текущий размер:
```
SHOW shared_buffers;
```
Важно: shared_buffers — это не только "страницы данных". Внутри общего пула есть ещё служебные структуры, без которых быстрый кэш невозможен:
- сами буферы (слоты под 8KB страницы);
- дескрипторы буферов (метаданные: что за страница, dirty/clean, счётчики и т.д.);
- хеш-таблица для быстрого поиска "страница → слот" (логика hit/miss).
## 4) Pin count и usage count: почему "горячие" страницы живут дольше
Поведение буфера во многом определяется двумя счётчиками:
### 4.1 Pin count (закрепление)
Если страница прямо сейчас читается или модифицируется активным запросом, она "пинится" (pin). Пока pin > 0, страницу нельзя вытеснить из буферного пула — иначе запрос потеряет данные из-под ног.
### 4.2 Usage count (частота/давность использования)
PostgreSQL хранит небольшую оценку "насколько страница была востребована". При обращениях usage count растёт (с ограничением), а при попытке вытеснения — уменьшается.
Зачем это нужно? Чтобы один большой sequential scan не уничтожил весь прогретый кэш.
## 5) Как вытесняются страницы: clock sweep вместо LRU
Когда shared_buffers заполнен и нужно загрузить новую страницу, PostgreSQL должен найти место. Полноценный LRU был бы дорогим (поддерживать структуру данных на каждое обращение).
Вместо этого применяется алгоритм clock sweep (по аналогии со стрелкой часов, которая "обходит" круг буферов):
- если буфер pinned — пропускаем;
- если usage count > 0 — уменьшаем и идём дальше (буфер "выжил" этот проход);
- если usage count стал 0 и буфер не pinned — его можно вытеснять.
Итог: "холодные" страницы вылетают быстро, "горячие" держатся дольше.
## 6) Dirty buffers, background writer и checkpoint: когда запись реально уходит на диск
Когда PostgreSQL модифицирует страницу в shared_buffers, она становится dirty (грязной). Это означает: в памяти есть версия, которую нужно сбросить на диск, но делать это "немедленно" часто невыгодно (страница может измениться ещё много раз).
Как же грязные страницы попадают на диск:
### 6.1 Checkpoint
Во время checkpoint PostgreSQL сбрасывает грязные страницы, фиксируя согласованное состояние на диске. После успешного checkpoint при аварии нужно будет воспроизвести WAL только "с этого момента".
### 6.2 Background writer
Фоновый writer старается заранее "подчищать" грязные страницы, чтобы при вытеснении (eviction) backend не упирался в синхронную запись.
### 6.3 Худший случай: синхронная запись на вытеснении
Если clock sweep упёрся в dirty страницу, которую нужно вытеснить прямо сейчас — придётся синхронно записать её на диск, и запрос может ждать I/O. Это часто воспринимается как "внезапные лаги", особенно под нагрузкой.
## 7) Ring buffers: защита кэша от "одноразовых" операций
Есть операции, которые по природе "одноразовые" и трогают много страниц подряд: большой sequential scan, VACUUM, bulk операции. Если пустить их в общий shared_buffers, они могут выдавить горячие страницы и "охладить" систему на минуты.
Поэтому PostgreSQL использует ring buffers — маленькие отдельные буферные кольца для bulk-процессов. Смысл: прокрутить поток страниц внутри маленького буфера, не загрязняя основной кэш.
Типовые сценарии:
- большие sequential scans используют отдельный небольшой ring buffer (чтобы не вытеснять основной кэш);
- COPY / CREATE TABLE AS и другие bulk write операции используют ring buffer большего размера для эффективной пакетной записи;
- VACUUM имеет свою стратегию, чтобы не разрушать горячий кэш.
## 8) Local buffers: временные таблицы и temp_buffers
Временные таблицы (temporary tables) обслуживаются иначе: поскольку они "сессионные", PostgreSQL может использовать локальные буферы backend-процесса (local buffers) вместо общих shared_buffers.
Параметр temp_buffers задаёт размер памяти под временные таблицы на соединение. Плюсы:
- меньше межпроцессной синхронизации (быстрее);
- временные операции меньше "засоряют" shared_buffers;
- часто это хорошая альтернатива сложным CTE/подзапросам для промежуточных расчётов.
Но есть важный момент: temp_buffers — это память на соединение, то есть при большом количестве коннектов суммарное потребление может вырасти очень сильно.
## 9) OS Page Cache: "второй уровень" кэша и почему правило 25% не из воздуха
PostgreSQL не обходит ОС: чтения и записи проходят через ядро, а ядро держит свой page cache. В итоге возможна двойная буферизация: одна и та же 8KB страница может находиться и в shared_buffers, и в кэше ОС.
Звучит как "трата памяти", но на практике это часто помогает:
- PostgreSQL может вытеснить clean страницу из shared_buffers, но она останется в OS page cache;
- если она снова понадобится — ОС отдаст её из RAM, без реального чтения с диска;
- ОС делает read-ahead для последовательных паттернов доступа, что ускоряет потоковые чтения.
Отсюда и классический компромисс: выделить часть RAM PostgreSQL под shared_buffers и оставить пространство ОС, чтобы page cache работал как "L2 кэш".
### effective_cache_size: подсказка планировщику
Параметр effective_cache_size не "выделяет память". Он сообщает планировщику оценку доступного кэша (shared_buffers + OS cache), влияя на выбор планов (например, склоняя к index scan, если ожидается, что данные в кэше).
```
SHOW effective_cache_size;
```
## Практические советы: как использовать знания о буферах в оптимизации
### 1) Смотрите BUFFERS в плане выполнения
Если вы анализируете производительность, одного EXPLAIN ANALYZE часто мало — важно видеть, сколько было:
- shared hit (попадания в shared_buffers),
- shared read (чтение),
- и не было ли временных файлов/спиллов.
```sql
EXPLAIN (ANALYZE, BUFFERS)
SELECT ...;
```
### 2) Избегайте "убийственных" sequential scan, которые охлаждают систему
Большие сканы могут быть допустимы, но важно понимать их последствия и почему PostgreSQL пытается изолировать их ring buffers. Иногда лучше оптимизировать отчёты индексами/партиционированием, чем регулярно прогонять гигантские сканы.
### 3) Следите за "грязными" страницами и пиками записи
Если система периодически "подвисает" на записи, это может быть:
- агрессивное накопление dirty buffers,
- неудачные checkpoint-параметры,
- ситуации, когда backend вынужден синхронно сбрасывать грязные страницы при вытеснении.
### 4) Временные таблицы иногда быстрее, чем сложные CTE
Если у вас тяжёлые промежуточные вычисления, временная таблица + увеличение temp_buffers (в разумных пределах) может дать выигрыш и уменьшить давление на shared_buffers.
## FAQ
### Правда ли, что shared_buffers нужно ставить в 25% RAM?
Это популярная отправная точка, потому что важно оставить место OS page cache. Но идеальное значение зависит от нагрузки, размера данных, типа диска, числа соединений и того, насколько система "cache-friendly". Начинайте с разумной базы, затем измеряйте (BUFFERS, latency, I/O).
### Если shared_buffers большой — будет быстрее?
Не всегда. Слишком большой shared_buffers может:
- уменьшить OS page cache;
- изменить поведение планировщика и эффективность read-ahead;
- не дать ожидаемого эффекта, если узкое место — CPU, блокировки или плохие запросы.
### Почему иногда запрос "читает с диска", хотя данных много в памяти?
Потому что "память" бывает двух уровней: shared_buffers и OS page cache. Miss в shared_buffers не означает физический диск — данные могут быть в кэше ОС, и тогда чтение будет быстрым.
### Что такое pinned buffers и почему это важно?
Pinned буфер нельзя вытеснить, пока он используется активным запросом. Это защита от неконсистентности, но при высокой конкуренции и давлении на буферный пул pinned страницы могут усложнять eviction и влиять на latency.
## Вывод
Буферы — это не "чёрный ящик" и не только shared_buffers. Это система управления страницами, которая включает:
- 8KB страницы как атомарную единицу I/O;
- общий buffer pool (shared_buffers) с быстрым поиском страниц;
- pin/usage счётчики и алгоритм clock sweep;
- механизмы работы с грязными страницами (checkpoint, background writer);
- ring buffers для bulk-операций, чтобы не разрушать прогретый кэш;
- local buffers для временных таблиц;
- и "второй уровень" в виде OS page cache + настройку effective_cache_size.
Понимание этих механизмов помогает точнее диагностировать проблемы производительности и настраивать систему на реальные сценарии нагрузки.
https://serverspace.uz/support/help/pg_exporter-dlya-monitoringa-postgresql-i-pgbouncer-600-metrik-prometheus.mdpg_exporter — продвинутый Prometheus exporter для PostgreSQL: 600+ метрик, декларативный YAML-конфиг, hot reload, кастомные коллекторы и динамическое планирование. Быстрый старт и настройка мониторинга.
## Введение
pg_exporter — это продвинутый Prometheus-exporter для мониторинга PostgreSQL и pgBouncer, который делает упор на "настраиваемость как продукт": декларативный YAML-конфиг, динамическое планирование (replanning) и кастомные коллекторы. По задумке он закрывает практически весь стандартный набор задач наблюдаемости PostgreSQL: из коробки доступно 600+ метрик и около 3K time series на один инстанс.
Официальный репозиторий: [https://github.com/pgsty/pg_exporter](https://github.com/pgsty/pg_exporter)
## 1) Что такое pg_exporter и зачем он нужен
В классической схеме мониторинга PostgreSQL вы строите цепочку:
- PostgreSQL / pgBouncer → exporter (метрики) → Prometheus (сбор) → Grafana (дашборды) → Alertmanager (алерты)
Экспортер в этой цепочке — "переводчик" состояния базы в формат метрик Prometheus. pg_exporter отличается тем, что делает этот перевод максимально управляемым через конфигурацию: вы описываете метрики и правила их сбора декларативно, а не "принимаете как есть" фиксированный набор.
## 2) Ключевые возможности pg_exporter
### 2.1 Декларативный конфиг (YAML)
Вместо того чтобы жить в рамках жёстко заданных метрик, вы управляете сбором через YAML: какие коллекторы включены, какие запросы выполняются, какие лейблы формируются и как интерпретируются результаты.
### 2.2 Кастомные коллекторы и расширение метрик
Если вам не хватает метрик под ваш сценарий (например, под конкретное расширение, workload или внутренние требования SRE), вы добавляете их в конфиг — без форка и без пересборки.
### 2.3 Динамическое планирование (replanning)
Сбор метрик может адаптироваться к контексту: версии PostgreSQL, роли узла (primary/replica), доступности представлений, наличию расширений и т.д. Это полезно, когда у вас "зоопарк" инстансов и нужно единообразие мониторинга без ручной матрицы исключений.
### 2.4 Hot reload (обновления без остановки)
На практике это означает, что вы можете менять конфигурацию (например, добавлять метрики или корректировать таймауты) без длительных простоев и без "рваного" мониторинга.
## 3) Что именно можно мониторить
pg_exporter ориентирован на то, чтобы покрыть основные домены наблюдаемости PostgreSQL. Обычно сюда входят:
- **Нагрузка и активность**: коннекты, транзакции, активные запросы, throughput.
- **Задержки и "симптомы" деградации**: рост времени выполнения, очереди ожиданий.
- **Locks и конкуренция**: блокировки, contention и ожидания.
- **I/O и кэш**: буферы, чтения/записи, давление на подсистемы хранения.
- **WAL и чекпоинты**: темпы генерации WAL, поведение checkpoint, признаки проблем с записью.
- **Vacuum / autovacuum**: активность, задержки, индикаторы накопления "мусора".
- **Репликация**: лаг, состояние потоковой репликации (при наличии соответствующих collector'ов).
- **pgBouncer**: пулы, состояния, очереди, соединения и их распределение.
Важно: финальный набор зависит от того, какие коллекторы включены и как настроена конфигурация.
## 4) Как устроен сбор метрик в pg_exporter
В упрощённом виде логика выглядит так:
- Exporter подключается к PostgreSQL/pgBouncer по DSN (строке подключения).
- Выполняет SQL-запросы, описанные в YAML (плюс проверки/условия выполнения).
- Преобразует результаты запросов в метрики Prometheus (counters, gauges, histograms — в зависимости от описания).
- Отдаёт всё по HTTP endpoint'у, который опрашивает Prometheus.
## 5) Быстрый старт: минимальные шаги
Ниже — базовая логика запуска, без привязки к конкретному способу установки (контейнер/пакет/бинарник), потому что в проде это всегда завязано на ваше окружение.
### 5.1 Создайте роль для мониторинга
Рекомендуется заводить отдельную роль (read-only) и выдавать только необходимые права на системные представления и функции, которые будут использоваться вашими коллекторами.
### 5.2 Опишите подключения (DSN)
Как правило, DSN передают через переменные окружения или конфиг. Пример формата строки подключения:
```
postgresql://monitor_user:password@127.0.0.1:5432/postgres?sslmode=disable
```
### 5.3 Запустите pg_exporter и проверьте endpoint
После запуска у exporter'а появится HTTP endpoint метрик (обычно /metrics). Проверка типовая:
- Endpoint доступен по сети (Prometheus его видит).
- Метрики отдаются без ошибок.
- Нагрузка от exporter'а не вызывает заметной деградации.
### 5.4 Подключите Prometheus
В Prometheus добавляется scrape job на exporter:
```
scrape_configs: - job_name: "pg_exporter" static_configs: - targets: ["exporter-host:port"]
```
## Как быстро развернуть pg_exporter в облаке Serverspace.uz
Если вы хотите собрать мониторинг PostgreSQL без лишней возни с инфраструктурой, проще всего поднять pg_exporter рядом с базой в облаке. В **Serverspace.uz** можно быстро развернуть облачный сервер под PostgreSQL/pgBouncer и мониторинг, а дальше спокойно подключить Prometheus и Grafana — без привязки к "железу" и ручного администрирования на каждом шаге.
Плюс такого подхода в том, что вы сохраняете контроль: мониторинг живёт в вашей инфраструктуре, а конфиги pg_exporter (YAML) можно версионировать и обновлять под новые метрики и задачи. Если нагрузка растёт — ресурсы сервера масштабируются без миграций и простоев, а сама схема мониторинга остаётся прежней.
Посмотреть облачные серверы: [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
## 6) Конфигурация YAML: как мыслить правильно
Чтобы конфиг был удобен, полезно думать не "по метрикам", а "по профилям сбора".
### 6.1 Разделяйте быстрые и дорогие метрики
Некоторые запросы лёгкие и можно собирать часто (каждые 5–15 секунд). Другие — тяжёлые и лучше собирать реже или через кэширование. Правильный подход:
- Частые метрики: активность, коннекты, базовые counters.
- Редкие метрики: bloat-индикаторы, глубокая статистика по таблицам/индексам, "тяжёлые" агрегации.
### 6.2 Используйте таймауты и кэширование
Смысл простой: мониторинг не должен превращаться в нагрузочный тест.
- Таймауты защищают от зависания запросов и "запирания" exporter'а.
- Кэширование сглаживает пики и снижает количество одинаковых запросов.
### 6.3 Условия выполнения (conditions)
В реальных инфраструктурах узлы разные:
- Разные версии PostgreSQL
- Primary и Replica
- Разный набор расширений
Условность помогает сделать один "универсальный" конфиг, который корректно отрабатывает на всех инстансах, пропуская нерелевантные коллекторы.
## 7) Пример структуры коллектора (шаблон)
Ниже — упрощённый пример, чтобы понимать логику. Это не "готовый конфиг под копипаст", а иллюстрация подхода.
```sql
collectors:
name: pg_stat_database
enabled: true
timeout: 500ms
cache: 5s
when:
pg_version: ">= 10"
metrics:
name: pg_db_xact_commit_total
help: "Committed transactions per database"
type: counter
sql: |
SELECT datname, xact_commit
FROM pg_stat_database;
labels: [datname]
value: xact_commit
```
Что важно:
- **timeout** и **cache** — инструменты контроля нагрузки.
- **when** — правила применимости коллектора.
- **sql** — запрос, который должен быть стабильным и безопасным по времени.
- **labels** — ключевые измерения (например, база, схема, таблица), которые могут сильно увеличить кардинальность.
## 8) Кардинальность и time series: где можно "перестрочить" Prometheus
Заявленные "~3K time series на инстанс" — это ориентир, но итог зависит от того, как вы используете лейблы. Типичные ошибки:
- Добавить лейбл с очень большим количеством значений (например, query_id/statement).
- Собирать метрики по всем таблицам/индексам во всех базах слишком часто.
- Включить "диагностические" метрики как продовые и не ограничить частоту.
Практический вывод: сначала включайте базовый профиль, затем расширяйте метрики постепенно, оценивая рост кардинальности и стоимость хранения.
## 9) Практические сценарии использования
### 9.1 Единый мониторинг для разных версий PostgreSQL
Если у вас есть и старые, и новые инстансы, условные правила и динамическое планирование помогают держать единый конфиг без разветвления по веткам.
### 9.2 Мониторинг pgBouncer как часть наблюдаемости базы
Если pgBouncer участвует в архитектуре, его метрики часто дают ответ быстрее, чем сама база:
- очереди и лимиты пулов
- доля ожиданий соединений
- перекос по пулам
### 9.3 Добавление "своих" метрик
Например:
- метрики по конкретным расширениям
- контроль SLA на уровне прикладных таблиц
- индикаторы, которые важны именно вашему продукту
## 10) Чек-лист продовой эксплуатации
- **Отдельная мониторинговая роль** и минимально необходимые права.
- **Таймауты** для запросов и защита от "зависаний".
- **Кэширование** там, где метрики не должны быть "помесячно точными до миллисекунды".
- **Контроль кардинальности** (лейблы и частота).
- **Разделение профилей**: быстрые/дорогие метрики.
- **Тест на нагрузку**: посмотрите влияние exporter'а на CPU/I/O и latency.
## FAQ
### Чем pg_exporter лучше "обычного" postgres_exporter?
Основное отличие — декларативная и расширяемая модель метрик: конфигом вы управляете тем, что собирается и как, а не ограничиваетесь фиксированным набором. Плюс hot reload и динамическое планирование упрощают поддержку разношёрстной инфраструктуры.
### Можно ли использовать pg_exporter только для pgBouncer?
Да, если у вас именно такая задача. Важно корректно настроить DSN и включить нужные collectors.
### Насколько "тяжёлым" будет мониторинг?
Это определяется конфигом: частотой scrape, количеством коллекторов, сложностью SQL и выбранными лейблами. Нормальная практика — начинать с базового набора и расширять постепенно.
### Какие типичные ошибки при настройке?
Чаще всего — отсутствие таймаутов, включение дорогих метрик на высокой частоте и избыточные лейблы, которые резко увеличивают число time series.
## Вывод
**pg_exporter** — хороший выбор, когда вам нужен не просто "набор стандартных метрик", а управляемая observability-платформа вокруг PostgreSQL и pgBouncer. Сильные стороны — YAML-конфигурация, кастомные коллекторы, replanning и hot reload, а также масштабируемость под реальные инфраструктуры, где версии и роли узлов отличаются. Начните с базового профиля, контролируйте кардинальность и стоимость запросов — и вы получите предсказуемый мониторинг без лишней нагрузки на базу.
https://serverspace.uz/support/help/csi-driver-rclone-dlya-kubernetes-podklyuchenie-s3-i-50-hranilishh-kak-persistent-volume-serverspace-uz.mdcsi-driver-rclone позволяет монтировать S3 и 50+ облачных хранилищ в Kubernetes как PVC/PV через rclone: установка (Helm/kubectl), настройка StorageClass и Secret, best practices. Подключайте S3-совместимый Object Storage Serverspace.uz.
## Введение
**csi-driver-rclone** — это CSI-драйвер для Kubernetes (имя плагина: **rclone.csi.veloxpack.io**), который позволяет подам монтировать облачные хранилища как Persistent Volume, используя rclone. Драйвер поддерживает 50+ провайдеров, включая S3, Google Cloud Storage, Azure Blob, Dropbox и другие.
Репозиторий: [https://github.com/veloxpack/csi-driver-rclone](https://github.com/veloxpack/csi-driver-rclone)
## 1) Зачем нужен CSI-драйвер для rclone
В Kubernetes стандартный путь подключать хранилища — это CSI (Container Storage Interface). Обычно под конкретный storage используется "родной" CSI-драйвер. Подход rclone CSI-driver другой: он даёт единый механизм для множества бэкендов через rclone, что удобно, если:
- у вас гибридная инфраструктура или несколько облаков;
- нужно быстро подключить S3/S3-compatible объектное хранилище без vendor-специфичного драйвера;
- хочется унифицировать StorageClass/PVC-паттерн для разных провайдеров.
## 2) Как это работает
В упрощённом виде схема такая:
- Вы устанавливаете CSI Driver в кластер (controller + node компоненты).
- Создаёте **Secret** с rclone-конфигурацией (ключи, endpoint, параметры backend).
- Описываете **StorageClass**, который ссылается на Secret и нужный remote.
- Создаёте **PVC**, а под монтирует volume в файловую систему контейнера.
## 3) Требования и важные ограничения
### 3.1 Требования
По документации проекта, для быстрого старта обычно нужны:
- Kubernetes **1.20+**;
- настроенный **kubectl** и права на установку компонентов в кластер;
- **FUSE**-поддержка на нодах (важно для mount-сценариев).
### 3.2 Object Storage — это не "обычный диск"
S3 и другие объектные хранилища не являются полноценной POSIX-ФС. Поэтому некоторые приложения могут вести себя иначе, чем на блочном диске:
- много мелких операций может давать высокую задержку (особенно без кэша);
- конкурентная запись (RWX) может быть рискованной для приложений, которые ожидают строгую файловую семантику;
- часто требуется настройка VFS cache и аккуратный выбор режимов доступа.
## 4) Установка csi-driver-rclone
В проекте есть несколько вариантов установки. Для продакшена обычно рекомендуют Helm, для ручного контроля — манифесты через kubectl.
Официальный install-док: [https://github.com/veloxpack/csi-driver-rclone/blob/main/docs/install-rclone-csi-driver.md](https://github.com/veloxpack/csi-driver-rclone/blob/main/docs/install-rclone-csi-driver.md)
### 4.1 Установка через Helm (частый продовый вариант)
Пример команды из документации:
```
helm install csi-rclone oci://ghcr.io/veloxpack/charts/csi-driver-rclone
```
После установки проверьте, что поднялись pods драйвера (controller и node), и что в логах нет ошибок FUSE/permissions.
## 5) Настройка S3/S3-compatible: Secret + StorageClass + PVC
Rclone поддерживает S3 и S3-compatible провайдеров через указание ключей и endpoint. Базовая идея: вы создаёте remote типа **s3**, задаёте **provider = Other** и указываете endpoint вашего сервиса.
### 5.1 Secret с rclone.conf (шаблон)
Ниже — практичный шаблон: хранить полный rclone.conf в Kubernetes Secret. Этот подход проще поддерживать и дебажить, потому что он максимально близок к "обычному" rclone.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: rclone-secret
namespace: default
type: Opaque
stringData:
rclone.conf: |
type = s3
provider = Other
env_auth = false
access_key_id = YOUR_ACCESS_KEY
secret_access_key = YOUR_SECRET_KEY
endpoint = https://YOUR_S3_ENDPOINT
region = YOUR_REGION
```
### 5.2 StorageClass (шаблон)
Параметры StorageClass зависят от версии драйвера и выбранного способа конфигурации. Общая логика одна: указать provisioner и связать его с Secret/remote.
```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rclone-s3
provisioner: rclone.csi.veloxpack.io
parameters:
secretName: rclone-secret
secretNamespace: default
remote: s3remote
reclaimPolicy: Retain
volumeBindingMode: Immediate
```
### 5.3 PVC + Pod (шаблон теста)
Пример, который помогает быстро убедиться, что монтирование работает.
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-s3
spec:
accessModes:
- ReadWriteMany
storageClassName: rclone-s3
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Pod
metadata:
name: app-test
spec:
containers:
- name: app
image: alpine
command: ["sh", "-c", "echo test > /data/hello.txt && ls -la /data && sleep 3600"]
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: data-s3
```
## 6) S3-compatible Object Storage под Kubernetes
Если задача — подключить объектное хранилище по S3 API к Kubernetes через rclone, важно, чтобы сервис поддерживал **S3-compatible endpoint** и доступ по ключам. У [Serverspace](https://serverspace.uz/index.md)Object Storage работает по [S3-совместимому API](https://serverspace.uz/services/storage.md): вы создаёте bucket, генерируете access/secret keys и указываете endpoint (например, **https://storage.serverspace.uz**) в S3-клиенте или rclone.
Это хорошо ложится на csi-driver-rclone: вы используете backend **s3**, задаёте endpoint Serverspace и получаете PV/PVC, который монтируется в под как привычная директория.
Cloud Servers на Serverspace.uz (для Kubernetes-нод и сервисов вокруг кластера): [https://serverspace.uz/services/cloud-servers/](https://serverspace.uz/services/cloud-servers.md)
## 7) Best practices для продакшена
### 7.1 Следите за кардинальностью и нагрузкой
Object storage может плохо переносить "мелкофайловые" паттерны. Если приложение активно создаёт/переписывает много мелких файлов, заранее тестируйте latency и стоимость операций.
### 7.2 Осторожно с RWX
ReadWriteMany выглядит удобно, но не все приложения корректно работают с объектным бэкендом как с файловой системой. Если есть возможность — держите один writer и масштабируйте read-реплики.
### 7.3 Кэширование (VFS cache) и режимы rclone
Для многих сценариев без кэша будет болезненно по задержкам. Настраивайте параметры кэша и проверяйте компромисс "скорость vs потребление диска на ноде".
### 7.4 Изоляция данных
Разделяйте окружения по bucket'ам или хотя бы по prefix'ам. Это упрощает lifecycle, доступы и снижает риск случайного пересечения данных.
## FAQ
### Подходит ли S3 от Serverspace для csi-driver-rclone?
Да. Драйвер использует rclone, а rclone умеет работать с S3-compatible сервисами через endpoint и ключи доступа. Для Serverspace Object Storage вы задаёте endpoint (например, https://storage.serverspace.uz), access key и secret key, и используете тип remote **s3** с **provider = Other**.
### Это полноценная замена блочному диску?
Нет. Object storage — другой класс хранилища. Для баз данных, журналирования и приложений, чувствительных к POSIX-семантике, чаще подходит блочное хранилище. rclone CSI-driver — отличный инструмент для данных, артефактов, медиа, бэкапов, статических файлов и "объектных" кейсов.
## Вывод
**csi-driver-rclone** — практичный способ подключать S3 и десятки других облачных хранилищ в Kubernetes как PV/PVC через rclone. Он особенно полезен в multi-cloud и гибридных сценариях, где нужно унифицировать подход к storage. Для S3-compatible сервисов (включая Object Storage Serverspace) схема обычно сводится к трём шагам: Secret с rclone.conf, StorageClass с rclone.csi.veloxpack.io и PVC, который монтируется в под как директория.
https://serverspace.uz/support/help/kak-podklyuchit-object-storage-serverspace-s3-i-swift-cyberduck-s3-browser-instrukcziya.mdПошаговая инструкция по подключению Object Storage в Serverspace через Swift (OpenStack Swift/Keystone 3) и S3-совместимый API: где взять endpoint и ключи, настройка Cyberduck и S3 Browser, проверка доступа и рекомендации.
Объектное хранилище Serverspace можно подключать двумя способами: через **Swift (OpenStack Swift / Keystone)** или через **S3-compatible API**. Оба варианта подходят для типовых задач: бэкапы, хранение медиа, логов, артефактов сборки и архивов.
## 1) Где взять параметры подключения в панели Serverspace
Все нужные данные берутся в панели управления:
- Откройте **Storage / Object Storage**.
- Создайте bucket (если ещё не создан).
- Перейдите в блок с параметрами доступа и выберите вкладку **Swift** или **S3**.
Дальше используйте инструкцию ниже для нужного протокола.
## 2) Подключение через Swift (рекомендуется): Cyberduck
Swift удобен, если вы используете экосистему OpenStack или хотите подключаться через GUI-клиент без "S3-специфики". Для подключения используйте **Cyberduck**.
### 2.1 Что понадобится
В панели на вкладке **Swift** у вас будут параметры вида:
-
**Username**
- **Endpoint** (пример формата: **https://ru.serverspace.store:443/**)
- **Password**
- **Project**
- **Domain** (обычно default)
- **UserId** и **ProjectId** (справочная информация)
### 2.2 Шаги подключения в Cyberduck
- Скачайте и установите **Cyberduck** (Windows/macOS).
- Откройте программу и нажмите **New Connection**.
- В списке протоколов выберите: **Openstack Swift (Keystone 3)**.
- Заполните поля:
**Сервер (Server)**: ru.serverspace.store
- **Project:Domain:Username**: PROJECT:default:USERNAME
- **Пароль (Password)**: пароль из панели
- Нажмите **Connect**.
После этого Cyberduck подключится к хранилищу, и вы увидите контейнеры/bucket'ы и сможете загружать/скачивать файлы.
### 2.3 Пример, как выглядит строка Project:Domain:Username
Используйте значения именно из вашей панели:
```
ssuz8257:default:ssuz8257_admin
```
Где:
- **ssuz8257 **— Project
- **default **— Domain
- **ssuz8257_admin **— Username
## 3) Подключение через S3: S3 Browser (Windows)
S3-доступ удобен, если вы используете инструменты и интеграции "как у AWS S3": клиенты, SDK, CI/CD и backup-софтовые решения. Serverspace предоставляет S3-совместимый доступ: вам нужны **AccessKey**, **SecretKey** и **Endpoint** из панели.
### 3.1 Что понадобится
На вкладке **S3** в панели будут:
- **AccessKey**
- **SecretKey**
- **Endpoint** (пример формата: https://ru.serverspace.store:443/)
### 3.2 Шаги подключения через S3 Browser
- Скачайте и установите **S3 Browser**.
- Запустите программу и выберите **Accounts → Add New Account**.
- В типе подключения выберите **S3 Compatible Storage**.
- Заполните поля:
**REST Endpoint**: ru.serverspace.store
- **Access Key ID**: (AccessKey из панели)
- **Secret Access Key**: (SecretKey из панели)
- Откройте **Advanced settings** и выставьте:
**Signature version**: Signature V2
- **Addressing model**: Path style
- Отметьте **Use secure transfer (SSL/TLS)** и нажмите **Add new account**.
### 3.3 Если вы подключаете Object Storage к Kubernetes
Если ваша цель — примонтировать S3-хранилище в Kubernetes как Persistent Volume через rclone, используйте отдельную инструкцию:
[csi-driver-rclone для Kubernetes: подключение S3 и 50+ хранилищ как Persistent Volume](https://serverspace.uz/support/help/csi-driver-rclone-dlya-kubernetes-podklyuchenie-s3-i-50-hranilishh-kak-persistent-volume-serverspace-uz/)
## 4) Проверка, что всё работает
Короткий чек-лист:
- Вы видите bucket'ы (или можете создать новый).
- Можете загрузить файл и скачать его обратно.
- Права доступа работают ожидаемо (если вы используете приватные bucket'ы).
## 5) Что выбрать: Swift или S3
- **S3** — если у вас уже есть инструменты/скрипты под S3, SDK, бэкап-утилиты, интеграции CI/CD.
- **Swift** — если вы используете OpenStack-совместимые инструменты или хотите работать через Cyberduck по Keystone-аутентификации.
## FAQ
### Можно ли использовать эти параметры в rclone?
Да. Для S3 вы используете AccessKey/SecretKey/Endpoint из вкладки S3, для Swift — параметры Keystone из вкладки Swift.
### Нужно ли где-то брать endpoint кроме панели?
Нет — самый надёжный источник endpoint и ключей — ваша панель управления Storage (S3/Swift вкладки). Так вы не ошибётесь доменом/портом и режимом доступа.
## Вывод
Подключить Object Storage в Serverspace можно за несколько минут: для Swift используйте Cyberduck и тип подключения **Openstack Swift (Keystone 3)**, для S3 — S3 Browser с режимом **S3 Compatible Storage**, включённым SSL/TLS и настройками Addressing/Signature из панели. Дальше хранилище готово для бэкапов, медиа, логов и любых файловых архивов.
https://serverspace.uz/about/blog/kak-serverspace-obespechivaet-999-aptajma-iz-chego-skladyvaetsya-nadyozhnost.mdУзнайте, как Serverspace обеспечивает аптайм 99,9% благодаря глобальной сети дата-центров, инфраструктуре с SLA, мониторингу в реальном времени и облачной автоматизации в США, Европе, Азии и Латинской Америке.
В современном мире, где сервисы должны быть доступны всегда, аптайм играет ключевую роль в работе цифровых продуктов. Для многих наших клиентов простой — это потерянные транзакции, "сломанные" API или недоступные внутренние инструменты.
В этой статье мы покажем, что стоит за кулисами и как Serverspace выстраивает надежность, которая помогает вашим системам работать с аптаймом 99,9%.
## Понятный и прозрачный SLA, на который можно опереться
В основе наших обязательств по доступности лежит SLA (Service Level Agreement) — юридически закреплённый договор, где определены показатели аптайма и доступности, а также компенсации, которые вы получаете, если целевые значения не выполняются. Serverspace гарантирует целевую доступность арендованных виртуальных машин на уровне 99,9%, при этом аптайм измеряется круглосуточно. Если доступность опускается ниже порога SLA, клиентам доступна ступенчатая финансовая компенсация — в зависимости от того, насколько сильным было отклонение от заявленного уровня.
Такой подход означает, что обещания по аптайму подкреплены формальными обязательствами и напрямую отражаются в нашей операционной работе.
Мы используем SLA как практический ориентир для инженерных процессов, операционных решений и стандартов реакции службы поддержки.
Подробнее — в нашей **[полной документации по SLA](https://serverspace.uz/conditions/sla.md)**.
## Геораспределённые дата-центры с высокой надёжностью
То, где размещена инфраструктура, напрямую влияет на итоговый аптайм.
Serverspace работает с несколькими дата-центрами по всему миру — в Северной Америке, Европе, Азии и Южной Америке. Среди локаций: Нью-Джерси (США), Амстердам (Нидерланды), Торонто (Канада), Алматы (Казахстан), Сан-Паулу (Бразилия) и Дубай (ОАЭ).
Такая география помогает клиентам размещать нагрузки ближе к конечным пользователям или строить мульти-региональные архитектуры в экосистеме Serverspace.
Каждая площадка спроектирована так, чтобы обеспечивать:
- **Отказоустойчивую архитектуру с полностью независимыми системами электропитания, исключающую единую точку отказа.**
- **Продвинутые системы безопасности, защищающие оборудование от внутренних и внешних угроз.**
- **Близость к ключевым сетевым узлам для высокой производительности, стабильной связности и низкой задержки.**
- **Георезервирование, позволяющее держать сервисы ближе к пользователям и сохранять стабильную доступность.**
[Посмотреть все доступные локации и их особенности.](https://serverspace.uz/infrastructure/data-centers.md)
## Корпоративное "железо" и резервирование сети
Высокая доступность во многом зависит от того, как спроектированы и развернуты аппаратные и сетевые компоненты.
Serverspace использует проверенное enterprise-оборудование — включая резервируемую сетевую инфраструктуру Cisco и отказоустойчивые системы хранения — выбранные за стабильность и предсказуемую производительность.
В частности, это:
- **Высокопроизводительные коммутаторы Cisco ASR и Nexus для устойчивой сетевой связности.**
- **Резервирование питания и охлаждения для стабильной работы в любых условиях.**
- **Несколько уровней хранилищ, способных обеспечивать стабильную I/O-производительность.**
- **Вместе эти компоненты формируют надежную базу для непрерывной работы инфраструктуры.**
## Платформы виртуализации, рассчитанные на высокую доступность
Serverspace предоставляет инфраструктурные сервисы на базе enterprise-технологий виртуализации — таких как VMware и vStack. Эти платформы изначально рассчитаны на сценарии высокой доступности:
- **VMware ESXi с DRS/HA автоматически перераспределяет нагрузки и перезапускает виртуальные машины при аппаратных сбоях.**
- **vStack использует лёгкий гипервизор, оптимизированный под производительность при сохранении надёжности.**
- **В итоге аппаратные сбои или работы по обслуживанию дают минимальные перерывы в работе сервисов.**
Для клиентов это означает меньше ручных вмешательств и более быстрое восстановление при инцидентах на уровне инфраструктуры.
## Проактивный мониторинг и поддержка
Даже самая надёжная инфраструктура требует постоянного контроля и опытной команды, чтобы поддерживать аптайм.
Наши системы мониторинга непрерывно отслеживают состояние инфраструктуры, а дежурные инженеры автоматически получают уведомления при превышении порогов — часто ещё до того, как клиент заметит влияние, или до того, как проблема перерастёт в простой.
## Прозрачность и инструменты "из коробки"
Serverspace предоставляет удобную панель управления и API-инструменты, которые упрощают управление инфраструктурой и контроль доступности:
| Функция | Описание |
| --- | --- |
| Метрики и логи в реальном времени | Следите за загрузкой ресурсов, показателями производительности и системными логами в реальном времени, чтобы быстро выявлять аномалии. |
| Глобальные DNS и сетевые инструменты | Используйте геораспределённый DNS и сетевые возможности, чтобы повышать доступность, снижать задержки и усиливать отказоустойчивость. |
| Автоматическое развертывание и масштабирование | Автоматизируйте запуск и масштабирование инфраструктуры, чтобы справляться со всплесками трафика и сохранять стабильный аптайм. |
| API и CLI для DevOps | Интегрируйте инфраструктуру Serverspace в CI/CD-пайплайны через API и CLI для полной автоматизации и контроля. |
## Заключение
Аптайм 99,9% — это результат совокупности технических и операционных решений, которые работают вместе:
- **Прозрачные SLA**
- **Геораспределённые, устойчивые дата-центры**
- **Enterprise-оборудование и резервирование**
- **Платформы виртуализации уровня индустриальных стандартов**
- **Круглосуточный мониторинг и поддержка**
- **Мощные инструменты для контроля и управления**
Serverspace сочетает отказоустойчивую инфраструктуру и зрелые решения виртуализации, чтобы обеспечивать стабильную производительность и высокую доступность. Это надежная основа для облачных серверов, кластеров баз данных и любых нагрузок, где простой недопустим.
Готовы посмотреть, как это работает на практике? [Изучите наши облачные вычислительные сервисы](https://serverspace.uz/services/iaas/).
https://serverspace.uz/about/blog/oblachnyj-striming-live-video-kak-rabotaet-dostavka-pryamyh-efirov-dlya-biznesa-i-media.mdОблачный стриминг live-видео: как работает доставка прямых эфиров, масштабирование через CDN и почему бизнес и медиа выбирают облако.
Live-видео давно вышло за рамки блогерского формата. Сегодня прямые эфиры — это рабочий инструмент для медиа, спорта, бизнеса и индустрии: от новостных включений и матчей до корпоративных обращений, продуктовых запусков и трансляций с производственных площадок. Во всех этих сценариях есть общий риск — эфир должен быть доставлен зрителю без сбоев. Даже если аудитория внезапно вырастает, связь на площадке нестабильна, а трансляцию нужно показывать сразу в нескольких каналах.
В этом материале мы рассматриваем стриминг с прикладной точки зрения: как устроена доставка live-видео, что на практике означает принцип "отправил поток один раз — раздал дальше", зачем проекты все чаще выносят стриминг в облако и какие изменения ждут рынок в ближайшие годы.
## Стриминг — это прежде всего доставка
Слово "стриминг" часто ассоциируется с плеером, чатом, регистрациями и интерфейсами. Однако все это — лишь надстройка. В основе любой трансляции лежит транспорт live-видео: прием сигнала, его стабилизация, масштабирование и доставка до конечного зрителя.
На практике стриминг удобно делить на два уровня:
- **платформенный** — интерфейсы, пользовательские функции, взаимодействие с аудиторией;
- **транспортный** — прием потока, доставка, масштабирование и резервирование.
Именно транспортный уровень определяет, состоится эфир или нет. Если доставка не работает, все остальное теряет смысл.
## Из чего состоит транспорт live-видео
Транспортный стриминг можно представить как цепочку из трех логических этапов.
- Ввод потока (ingest). Источник отправляет live-видео в облако один раз — из любой точки с доступом к сети. На этом этапе чаще всего используют RTMP для совместимости или SRT, если канал связи нестабилен и важна устойчивость передачи.
- Доставка зрителю. После приема поток подготавливается к просмотру и распространяется в форматах вроде HLS или LL-HLS. Эти протоколы хорошо работают в браузерах и легко масштабируются через CDN, что позволяет выдерживать резкий рост аудитории.
- Мульти-вывод. Один и тот же поток может одновременно выводиться на сайт, в приложение или на сторонние площадки. Такой подход упрощает управление эфиром и дает резервные варианты показа.
## Как стриминг стал повседневным форматом
Онлайн-трансляции существуют уже несколько десятилетий. Первые попытки стриминга появились еще в 1990-х, но тогда они были ограничены скоростью сетей и возможностями кодирования. Со временем интернет стал быстрее, кодеки — эффективнее, а пользовательский сценарий упростился до "открыл ссылку и смотришь".
Формат стал массовым там, где важен эффект присутствия: ощущение участия в событии здесь и сейчас. Поэтому стриминг быстрее всего закрепился в игровых сообществах, киберспорте и лайв-шоу. Позже его активно начали использовать и другие индустрии, включая коммерческие и нишевые сегменты, где прямая связь с аудиторией напрямую влияет на вовлеченность и монетизацию.
## Почему live-видео переезжает в облако
У прямых эфиров есть особенность: сбои случаются в самый неподходящий момент — когда трансляция уже идет, зрители подключены, а цена ошибки высока. Поэтому переход к облачным решениям чаще продиктован практикой, а не трендами.
Ключевые причины:
- непредсказуемые пики аудитории;
- широкая география зрителей;
- жесткие требования к надежности;
- необходимость масштабирования без перестройки инфраструктуры.
Облако позволяет заранее заложить запас прочности и не держать собственную инфраструктуру "на всякий случай".
## Сценарии, где транспортный слой критичен
Транспортный стриминг особенно востребован там, где приоритет — стабильная доставка и контроль.
- Медиа и новости. Важно надежно принять сигнал с выездной съемки и доставить его аудитории или партнерам, сохраняя резервные каналы показа.
- Спортивные и массовые мероприятия. Один эфир — множество точек просмотра, высокая нагрузка в пике и минимальные задержки.
- Корпоративные трансляции и обучение. Контроль доступа, собственный домен, предсказуемость и соответствие внутренним политикам безопасности.
- Промышленные и IoT-сценарии. Передача видео через нестабильные каналы связи с возможностью дальнейшей маршрутизации, записи и анализа.
- E-commerce и бренды. Запуски и live-шоппинг, где важно выдержать трафик и не зависеть от ограничений конкретных платформ.
## Как выбирать облачный стриминг как транспорт
Если рассматривать стриминг именно как доставку, имеет смысл обратить внимание на следующие параметры:
- поддержка протоколов на входе и на доставке;
- возможность мульти-вывода;
- устойчивость при резком росте аудитории;
- предсказуемое управление задержкой;
- механизмы безопасности и контроля доступа;
- понятная модель тарификации.
## Минимальные ресурсы для стабильного эфира
Для стандартной трансляции в 1080p обычно закладывают запас по ресурсам:
- 2–4 vCPU и 4–8 GB RAM для одного потока;
- быстрые диски (NVMe) при записи или обработке видео;
- достаточную пропускную способность сети с учетом географии зрителей.
## Куда движется рынок live-видео
Ожидания аудитории меняются: сегодня важна не просто работоспособность, а качество и управляемость эфира.
- Низкая и стабильная задержка становится стандартом.
- Модель "один эфир — несколько контуров" превращается в базовую практику.
- Автоматизация вытесняет ручную настройку.
- Растет доля закрытых и корпоративных трансляций.
- Устойчивость ввода потока приобретает ключевое значение.
В итоге рынок движется к более предсказуемому, масштабируемому и контролируемому стримингу.
## FAQ по стримингу
- **Что такое транспортный стриминг?**
Это сервис, который принимает live-поток и отвечает за его доставку зрителям и в другие каналы.
- **Зачем отделять транспорт от платформы?**
Чтобы не зависеть от одной точки показа и управлять маршрутом доставки.
- **Чем отличается HLS от LL-HLS?**
LL-HLS снижает задержку при сохранении масштабируемости.
- **Когда стоит использовать SRT?**
Когда источник работает через нестабильные сети и важна устойчивость передачи.
- **Можно ли раздавать один эфир в несколько каналов?**
Да, это базовый сценарий транспортного стриминга.
## Как устроен стриминг в Serverspace
В Serverspace стриминг реализован как транспорт live-видео: поток отправляется один раз, после чего настраивается доставка и мульти-вывод. При необходимости под трансляции можно развернуть отдельные серверы и масштабировать их под конкретную задачу, не привязываясь к одной видеоплатформе.
## Типовые ошибки при запуске live-эфиров
Большинство проблем с прямыми эфирами возникает не из-за "плохого интернета", а из-за ошибок на этапе подготовки. Частая ситуация — расчет инфраструктуры под среднюю нагрузку без учета пиков, когда в первые минуты трансляции подключается максимальное число зрителей. Вторая типовая ошибка — отсутствие резервного сценария: один источник сигнала, один маршрут доставки и одна точка показа. Если любой элемент этой цепочки выходит из строя, эфир просто прекращается. Также часто недооценивают ввод потока: нестабильный канал связи, неподходящий протокол или отсутствие повторной отправки пакетов приводят к рывкам и рассинхронизации еще до этапа доставки.
## Задержка vs стабильность: что действительно важнее
В погоне за минимальной задержкой легко упустить главный параметр live-видео — предсказуемость. Сверхнизкая задержка сама по себе не гарантирует хорошего пользовательского опыта, если эфир постоянно "плывет", теряет кадры или отстает от звука. Для большинства сценариев — от корпоративных трансляций до массовых мероприятий — стабильная задержка в несколько секунд оказывается лучше, чем минимальная, но скачущая. Зрителю важнее, чтобы эфир шел ровно и без разрывов, а ведущий, оператор и аудитория находились в одном временном контексте, даже если это не абсолютный "реалтайм".
https://serverspace.uz/about/blog/kak-openai-masshtabiruet-postgresql-dlya-chatgpt-uroki-arhitektury-i-praktiki-dlya-biznesa-v-uzbekistane.mdРазбираем, как OpenAI увеличила нагрузку на PostgreSQL более чем в 10 раз и удержала производительность для сотен миллионов пользователей. Реплики, пул соединений, защита кэша, rate limiting и безопасные миграции. Плюс: как развернуть PostgreSQL на VPS в Узбекистане в облаке Serverspace.
PostgreSQL редко становится "героем" публичных историй, но именно он годами был одной из ключевых внутренних систем данных, на которых держатся ChatGPT и OpenAI API. По мере роста аудитории нагрузки на базы выросли взрывными темпами: OpenAI отмечает, что за последний год нагрузка на PostgreSQL увеличилась более чем в 10 раз и продолжает быстро расти.
В этом материале разберём подход OpenAI к масштабированию Postgres: как они справляются со всплесками чтения и записи, почему не спешат с шардированием, и какие инженерные практики можно применить в обычных продуктах — от SaaS до e-commerce и финтеха.
## Почему PostgreSQL "начинает трещать" на гиперросте
Когда пользователей становится на порядок больше, проблемы часто выглядят одинаково:
- **Сбой или промах кэша** приводит к лавине запросов напрямую в базу.
- **Дорогие запросы** (CPU/IO) внезапно становятся "самыми частыми" и перегружают систему.
- **Write storm** после релиза — резкий рост записей, который упирается в возможности primary.
- **Retry storm**: таймауты вызывают ретраи, ретраи увеличивают нагрузку, нагрузка ухудшает таймауты.
OpenAI прямо описывает такой сценарий как типичный паттерн серьёзных инцидентов: рост задержек провоцирует ретраи, а ретраи усугубляют перегрузку.
## Архитектура OpenAI: один primary и десятки read-реплик
Один из самых интересных тезисов: OpenAI долго держится за модель **single-primary** (один primary на запись) и масштабирует систему в ширину через чтение. В статье упоминается почти **50 read-реплик**, распределённых по регионам, а базовая платформа — **Azure Database for PostgreSQL Flexible Server**.
Почему не шардировать сразу:
- Шардирование существующего продукта означает изменения во множестве сервисов и эндпоинтов — это месяцы или годы работ.
- Профиль нагрузки в значительной степени **read-heavy**, а чтения проще масштабировать репликами.
При этом OpenAI постепенно выносит новые **write-heavy** и хорошо шардируемые нагрузки в отдельные распределённые хранилища (например, Azure Cosmos DB). Более того, они отмечают подход: **новые таблицы в текущий Postgres больше не добавляют**, а новые нагрузки по умолчанию проектируют под шардированные системы.
## Главная сложность больших записей: MVCC, bloat и вакуум
PostgreSQL использует MVCC, и на больших объёмах это проявляется особенно заметно:
- Обновление строки создаёт новую версию строки — растёт **write amplification**.
- Появляются "мёртвые" версии (dead tuples) — растёт **read amplification**.
- Ускоряется раздувание таблиц и индексов (**bloat**).
- Настройка autovacuum и обслуживание индексов становятся критичными для стабильной латентности.
Отсюда стратегический вывод: **беречь primary** — и по записи, и по чтению (по возможности).
## 9 практик масштабирования, которые OpenAI называет ключевыми
### 1) Снижать нагрузку на primary
- Максимально отправлять чтения на реплики.
- Находить и устранять лишние записи (дубли, баги, "болтливые" события).
- Использовать "ленивые" записи (lazy writes), чтобы сглаживать пики.
- Ограничивать backfill и любые операции, способные вызвать write storm.
### 2) Постоянно оптимизировать запросы и избегать "JOIN-монстров"
OpenAI приводит показательный пример: запрос с JOIN по 12 таблицам стал причиной серьёзной деградации под всплеском частоты. Вывод простой: в OLTP-сценариях такие запросы часто нужно упрощать, разбивать на этапы или переносить часть логики в приложение.
### 3) Делать деградацию "мягкой" при проблемах primary
- Критичные чтения направлять на реплики, чтобы сервис продолжал работать даже при проблемах primary.
- Использовать HA с hot standby, который можно быстро промотировать.
- Держать в регионе несколько реплик, чтобы падение одной не становилось региональной аварией.
### 4) Изолировать "шумных соседей"
- Разделять трафик на high-priority и low-priority.
- Маршрутизировать нагрузки так, чтобы одна "тяжёлая" фича не деградировала весь продукт.
### 5) Использовать connection pooling и дисциплину по таймаутам
На больших системах "шторм подключений" может положить базу быстрее, чем медленные запросы. OpenAI использует PgBouncer как proxy-слой и отмечает, что в их тестах среднее время установления соединения снизилось примерно с 50 ms до 5 ms. Также важны таймауты, чтобы пулер и база не захлёбывались idle-сессиями.
### 6) Защитить кэш от stampede
Если тысячи запросов одновременно промахиваются по одному ключу, они могут "пробить" базу. OpenAI внедрила механизм cache locking/leasing: при промахе по ключу только один запрос идёт в Postgres, остальные ждут обновления кэша.
### 7) Масштабировать реплики с учётом стоимости WAL
Чем больше реплик, тем больше primary должен стримить WAL всем сразу — это нагрузка на сеть и CPU. OpenAI тестирует каскадную репликацию (cascading replication), где часть реплик получает WAL не от primary, а от промежуточных реплик — так можно потенциально масштабироваться дальше.
### 8) Включить rate limiting и точечный load shedding
- Лимиты на уровне приложения, прокси и отдельных классов запросов.
- Адекватные задержки и политика ретраев, чтобы не создавать retry storm.
- Возможность быстро "приглушить" конкретные дорогие запросы.
### 9) Считать изменения схемы операцией повышенного риска
- Ограничивать schema changes и ставить короткие таймауты.
- Создавать/удалять индексы через concurrent-подходы, где это возможно.
- Backfill выполнять медленно и под жёсткими лимитами — даже если это занимает неделю.
## Что это даёт на практике: стабильность, миллионы QPS и предсказуемая латентность
OpenAI пишет, что в результате система выходит на миллионы запросов в секунду в read-heavy режиме, почти 50 реплик с минимальным лагом, p99-латентность на стороне клиента на уровне "низких двузначных миллисекунд" и доступность порядка 99.999%.
## Как применить подход OpenAI в обычном продукте
- **Берегите primary**: чтение — на реплики, запись — минимизировать и сглаживать.
- **Сделайте кэш безопасным**: защита от stampede (locking/leasing) — must-have.
- **Поставьте пул соединений**: PgBouncer и таймауты почти всегда окупаются.
- **Следите за SQL**: ORM может генерировать запросы, которые отлично выглядят в коде и ужасно — в проде.
- **Изолируйте нагрузки**: разные приоритеты и маршрутизация спасают при всплесках.
- **Схема — это риск**: особенно на больших таблицах, где ALTER может дорого стоить.
## Связанный сервис Serverspace: VPS с PostgreSQL для быстрого старта и масштабирования
Если вы строите продукт в Узбекистане и хотите быстро развернуть PostgreSQL под прод, тестирование или миграцию, удобный вариант — поднять базу в облаке на VPS и масштабировать ресурсы по мере роста.
В Serverspace можно:
- Запустить **VPS/VDS в Узбекистане (Ташкент)** и получить локальную инфраструктуру с низкой задержкой для региональных пользователей.
- Развернуть **VPS-сервер с PostgreSQL** как готовое решение — подходит для быстрых пилотов и проектов, где важны скорость запуска и предсказуемость окружения.
- Гибко менять конфигурацию CPU/RAM/диска и платить за используемые ресурсы.
**Ссылки:**
- **[VPS/VDS в Узбекистане](https://serverspace.uz/services/vps-server/vps-uzbekistan.md)**
- **[VPS-сервер с PostgreSQL](https://serverspace.uz/services/cloud-marketplace/postgresql.md)**
Практический сценарий: поднимите PostgreSQL на VPS, настройте PgBouncer, включите кэш с защитой от stampede и подключите read-реплики по мере роста — вы получите "лестницу масштабирования", которая позволяет долго жить на Postgres без болезненного шардирования.
## Источник
- [How OpenAI Scales Postgres to Power 800 Million ChatGPT Users](https://openai.com/index/scaling-postgresql/)
https://serverspace.uz/about/news/n8n-kak-1-click-app-v-paneli-serverspace-uz.mdn8n теперь доступен в 1-Click Apps Serverspace.uz: разверните self-hosted автоматизацию на vStack (Ubuntu) за пару минут и держите данные под контролем.
Мы добавили **[n8n](https://serverspace.uz/solutions/razvernut-n8n-v-oblake.md)** в список готовых облачных решений (1-Click Apps) в панели управления Serverspace.uz. n8n — это low-code/self-hosted платформа автоматизации: вы собираете workflows в визуальном редакторе, связываете сервисы, данные и API, а сценарии запускаются по триггеру или расписанию — без ручной рутины.
Инструмент полезен, когда рядом живут CRM, почта, мессенджеры, формы, таблицы, платёжные сервисы и внутренние системы. Вместо десятка разрозненных интеграций вы собираете понятную цепочку "событие → действия → результат" и получаете предсказуемую обработку данных по прозрачным правилам.
У n8n сильная экосистема: платформа предлагает **400+ интеграций**, а репозиторий проекта на GitHub уже набрал **175k+ звёзд**.
[Официальный сайт](https://n8n.io/) /[GitHub](https://github.com/n8n-io/n8n)
## Что это даёт
- **Быстрый старт** — n8n устанавливается сразу при создании сервера, без ручной подготовки окружения.
- **Контроль данных** — self-hosted размещение на вашем сервере: доступы, ключи, интеграции и хранение определяете вы.
- **Гибкость** — собирайте сценарии из узлов, добавляйте код и API-вызовы, стройте маршрутизацию между системами без "зоопарка" отдельных интеграций.
**Типовые сценарии, с которых удобно начать:**
- Заявка из формы/бота → запись в CRM → уведомление в Telegram/Slack → обновление таблицы/дашборда.
- Письмо с вложением → сохранение в хранилище → разбор данных → создание задачи в трекере.
- Событие во внутренней системе → цепочка действий по триггеру/расписанию → фиксация результата в одном месте.
## Как подключить
- Откройте [панель управления Serverspace.uz](https://auth.serverspace.uz/) и нажмите **"Создать сервер"**.
- На этапе настройки выберите **предустановленные приложения (1-Click Apps)** и отметьте **n8n**.
- Дождитесь развёртывания и переходите к созданию workflows и подключению нужных сервисов.
**Важно:** n8n в формате 1-Click App доступен только на серверах **vStack** c ОС **Ubuntu**. Рекомендуем сразу ограничить доступ (firewall/VPN/Basic Auth) и регулярно обновлять компоненты.
n8n уже доступен в панели — попробуйте автоматизацию на своём сервере через 1-Click Apps.
**Дополнительно:** в списке готовых облачных решений также появились **MySQL** и **Redis** — чтобы поднимать базу данных и кэш рядом с приложениями в том же привычном "1 клик".
_[Serverspace.uz](https://serverspace.uz/index.md) — облачный провайдер для бизнеса и разработки. Вы можете быстро развернуть виртуальную инфраструктуру, управлять ей через панель, а для интеграции и автоматизации использовать API, CLI и Terraform._
https://serverspace.uz/about/blog/n8n-v-2026-avtomatizacziya-bez-koda-na-svoyom-vps-serverspace-uz.mdЗачем n8n нужен в 2026: автоматизация без кода через workflows, self-hosted установка на сервер/VPS и примеры для IT, продаж и e-commerce. Serverspace.uz
Зачем n8n нужен в 2026 году?
Автоматизация через n8n — это способ связать разрозненные сервисы в понятные workflows (сценарии), чтобы данные не "гуляли" вручную между CRM, мессенджерами, почтой, платежами, таблицами и внутренними системами.
В 2026 году почти любая компания обрастает инструментами быстрее, чем команда успевает навести порядок: CRM, телеграм-боты, платежные шлюзы, рассылки, Excel/Google Sheets, 1С, таск-трекеры, поддержка, склад, маркетплейсы. Когда всё это живёт отдельно, сотрудники постоянно копируют данные руками, маркетинг собирает отчёты "на коленке", а разработчики пишут однотипные скрипты, которые потом нужно поддерживать. Это прямые потери времени, денег и качества.
n8n помогает убрать "ручной слой" между системами: событие в одном сервисе автоматически запускает цепочку действий в других — по правилам, которые видны и бизнесу, и технической команде.
## Что такое n8n простыми словами
**[n8n](https://serverspace.uz/solutions/razvernut-n8n-v-oblake.md)** (произносится "эн-эйт-эн") — это low-code/open-source платформа для автоматизации. В ней вы собираете визуальные сценарии из "узлов" (nodes): один узел запускает workflow (триггер), остальные выполняют действия (записать в CRM, отправить сообщение, преобразовать данные, вызвать API и т.д.).
Ключевая идея n8n Workflows: вы строите схему "если произошло X → сделай Y → проверь условия → отправь результат → сохрани лог". При этом код не обязателен, но при необходимости можно добавлять свои шаги (например, для обработки данных) и использовать API.
### Как устроены n8n Workflows
• **Триггер** — событие, которое запускает сценарий (вебхук, расписание, новое письмо, запись в таблице, событие в CRM).
• **Действия** — шаги, которые выполняются дальше (проверки, преобразования, записи, уведомления, вызовы API).
• **Данные** — "переезжают" между узлами внутри одного workflow и превращаются в то, что нужно следующей системе.
## Примеры автоматизации n8n
**Пример 1 (продажи и поддержка):**
Outlook/почта → если письмо от клиента и есть вложение "счёт" → создать сделку/задачу в CRM → сохранить копию в облачное хранилище → уведомить в Telegram/Slack → обновить таблицу/дашборд.
**Пример 2 (маркетинг):**
Форма на сайте → запись лида в CRM → проверка дублей → тегирование → запуск цепочки писем → уведомление менеджеру → лог в таблицу.
**Пример 3 (операции / e-commerce):**
Изменение статуса заказа → отправка клиенту уведомления → обновление остатков → генерация чека/документов → запись события в учётную систему.
## Кому это нужно
**IT-отдел**
- Онбординг сотрудников: создание учёток в почте, VPN, Jira/YouTrack, Slack/Teams по событию в HR-системе.
- Оповещения о сбоях: мониторинг логов/метрик и уведомления в Telegram.
- Обогащение тикетов: подтянуть контекст из других систем (клиент, заказы, история платежей).
**DevOps**
- Автоматизация рутины: триггеры на деплой/перезапуск/проверки, уведомления, простые цепочки "событие → действие → отчёт".
- Интеграции без отдельного сервиса: быстро "склеить" несколько API, не поднимая отдельный микросервис под каждую мелочь.
**Маркетинг и продажи**
- Синхронизация форм, мессенджеров и CRM без разработки "с нуля".
- Публикация контента по расписанию и сбор статистики в одну витрину.
- Сбор лидов из разных источников в единый список и авто-раздача менеджерам.
**E-commerce**
- Обновление остатков и статусов заказов при изменениях в учётной системе.
- Уведомления о заказе/доставке/оплате через email и мессенджеры.
- Автозаполнение карточек товаров и обмен данными с площадками и внутренними сервисами.
**SecOps / безопасность**
- Сбор контекста по инциденту: SIEM/AD/тикеты/логи → единый отчёт → уведомление ответственным.
- Авто-реакции на события: блокировки, эскалации, чек-листы проверок по триггеру.
## n8n и "агенты" в 2026: где это реально полезно
В 2026 автоматизации часто включают LLM-часть: классификация обращений, генерация ответов, разбор вложений, нормализация данных. В n8n это обычно делается отдельными узлами/шагами внутри workflow: вы добавляете "умный" этап в цепочку — и дальше результат уходит в CRM, таблицу или тикет-систему.
Важно относиться к этому прагматично: "агент" — не магия, а удобный способ встроить интеллектуальную обработку данных в понятный сценарий с контролируемыми входами/выходами.
## Сравнение: n8n против кастомного кода
Самый частый вопрос: "Зачем конструктор, если у нас есть разработчики?"
Дело не в замене разработки, а в скорости и стоимости изменений. n8n забирает типовую интеграционную рутину, а разработчики фокусируются на продукте и сложной логике.
| Критерий | Кастомная разработка | n8n |
| --- | --- | --- |
| Скорость запуска | Недели/месяцы (проектирование, разработка, тесты) | Часы/дни (сценарий собирается и правится в интерфейсе) |
| Стоимость изменений | Высокая: код, тестирование, релизы | Ниже: меняете шаги и условия в workflow |
| Прозрачность для бизнеса | Логику часто видят только разработчики | Схема процесса наглядна и читаема |
| Интеграции | Каждую интеграцию нужно писать и поддерживать | Много готовых коннекторов + возможность вызывать API |
| Нагрузки | Подходит для высоких нагрузок при правильной архитектуре | Оптимально для интеграций и процессов "среднего слоя"; для экстремальных нагрузок лучше выделять отдельные сервисы/очереди |
| Контроль данных | Полный контроль (если всё сделано корректно) | Полный контроль при self-hosted размещении |
## Где n8n не подходит
n8n — отличный оркестратор, но важно понимать границы:
- **Экстремальные нагрузки и миллисекундные SLA.** Если нужен поток событий "тысячи в секунду" и строгая задержка, чаще используют брокеры сообщений и специализированные решения (Kafka/RabbitMQ и т.п.), а n8n оставляют для оркестрации.
- **Сложная финансовая и учётная логика.** Проводки, расчёты, бухгалтерию лучше оставлять профильным системам (ERP/1С).
- **Тяжёлые распределённые вычисления.** n8n не предназначен для вычислительных кластеров.
## Безопасность и контроль: SaaS vs self-hosted
**SaaS (облачная версия n8n)** — удобно для быстрых экспериментов и небольших задач: меньше администрирования, быстрее старт.
**Self-hosted** — установка n8n на свой сервер/VPS: вы контролируете доступ, обновления, хранение данных и сетевой периметр. Этот вариант выбирают, когда важны требования безопасности, политика доступа или работа с внутренними системами.
**Air-gap** — изолированная среда без доступа в интернет: n8n общается только с внутренними сервисами (1С, базы данных, корпоративные порталы). Это полезно для закрытых контуров и строгих политик.
## Установка n8n на свой сервер или VPS: что обычно нужно
Чтобы self-hosted n8n работал стабильно, обычно делают так:
- Разворачивают n8n на Ubuntu (часто через Docker/Compose).
- Ставят HTTPS (reverse proxy), ограничивают доступ к панели (VPN/allowlist/Basic Auth).
- Настраивают резервные копии (workflow-конфиги + база, где хранятся настройки).
- Обновляют n8n и зависимости по расписанию, чтобы не копить уязвимости.
Если не хочется тратить время на подготовку окружения, логичный путь — взять VPS с предустановленным n8n и перейти сразу к workflows.
## n8n в Serverspace.uz: быстрый старт без лишней рутины
Если задача — быстро внедрить автоматизацию и не тратить время на инсталляцию, можно развернуть сервер с n8n в панели управления.
**Как запустить n8n через готовое решение:**
- Откройте [панель управления Serverspace.uz](https://auth.serverspace.uz/) и нажмите "Создать сервер".
- Выберите платформу **vStack** и ОС **Ubuntu**.
- В разделе готовых приложений (1-Click Apps) отметьте **n8n** и запустите развёртывание.
- После запуска переходите к настройке доступов и сборке первых workflows.
**Важно:** n8n в формате 1-Click App доступен на серверах **vStack** с ОС **Ubuntu**.
Также в каталоге готовых решений доступны **MySQL** и **Redis** — удобно, когда вместе с n8n нужно быстро поднять базу и кэш для смежных сервисов или интеграций.
## Что получает бизнес
- **Скорость.** Процессы, которые раньше тянулись неделями из-за мелкой интеграционной разработки, запускаются значительно быстрее.
- **Экономию.** Меньше ручной работы и меньше "одноразового" кода, который потом нужно поддерживать.
- **Контроль.** Self-hosted подход позволяет самим управлять доступом и политиками безопасности.
- **Наглядность.** Логику процессов проще обсуждать, проверять и улучшать — она видна в виде схемы.
## FAQ
**1) Что такое n8n и для чего он нужен?**
n8n — это платформа автоматизации и оркестрации интеграций. Она связывает сервисы (CRM, базы, мессенджеры, API) в workflows, чтобы процессы выполнялись автоматически.
**2) Какие проблемы бизнеса решает n8n?**
Он убирает ручной перенос данных между системами и ускоряет процессы: лиды попадают в CRM, уведомления уходят в мессенджеры, отчёты обновляются автоматически.
**3) Как устроена работа в n8n?**
Workflow — это схема из узлов: триггер запускает сценарий, дальше идут шаги-действия (проверки, преобразование данных, записи, уведомления, вызовы API).
**4) Какие ограничения у n8n?**
n8n не заменяет системы для экстремальных нагрузок, финансовый учёт и распределённые вычисления. Его сильная сторона — интеграции и автоматизация "среднего слоя".
**5) Можно ли использовать n8n для AI-задач?**
Да, часто n8n используют как "каркас" для AI-этапов внутри workflows: классификация, разбор текста, генерация ответов и маршрутизация результата по системам.
## Итог
Если в вашей компании люди до сих пор руками переносят данные между сервисами, а разработка тонет в однотипных интеграциях — вы теряете деньги. n8n закрывает именно этот "средний слой": там, где писать код под каждую мелочь невыгодно, а делать руками слишком долго.
Self-hosted n8n на VPS даёт контроль, гибкость и понятную схему процессов. А запуск через готовое решение в панели Serverspace.uz позволяет быстрее перейти к главному — к построению workflows и реальной автоматизации.
https://serverspace.uz/support/help/postgresus-postgresql-uchun-self-hosted-zaxira-nusxalash-va-monitoring-vositasi.mdPostgresus PostgreSQL 13–18 учун avtomatik backup yaratish, bazalar holatini monitoring qilish va Telegram, Slack hamda Discord орқали bildirishnomalar olish imkonini beradi. Zaxira nusxalarni lokal, S3 yoki Google Drive’da saqlang, har daqiqalik health check va Docker orqali oson ishga tushirish bilan.…
**Postgresus** — bu PostgreSQL ma'lumotlar bazalarini zaxiralash va monitoring qilishni qulay hamda xavfsiz tarzda boshqarish uchun yaratilgan zamonaviy self-hosted vosita. U ishlab chiquvchilar, tizim administratorlari va DevOps-muhandislar uchun mos bo'lib, bulutli servislar yoki uchinchi tomon platformalariga bog'liq bo'lmasdan, ma'lumotlar bazalarini markazlashgan holda nazorat qilish va ma'lumotlar xavfsizligini kafolatlash imkonini beradi.
## Asosiy imkoniyatlar
- PostgreSQL 13–18 versiyalari uchun reja asosida zaxira nusxalarini yaratish.
- Zaxira nusxalarida xatolik yoki baza mavjud bo'lmaganda Telegram, Slack va Discord orqali bildirishnomalar.
- Zaxira nusxalarini lokal saqlash, S3 yoki Google Drive'da saqlash imkoniyati.
- Muammolarni tez aniqlash uchun har 60 soniyada ma'lumotlar bazasining health check tekshiruvi.
- Apache 2.0 ochiq litsenziyasi — vositani o'z ehtiyojlaringizga moslab ishlatish va o'zgartirish imkonini beradi.
## Amaliy qo'llanish
Postgresus turli xil ssenariylarda foydali bo'ladi:
- Startaplar va kichik jamoalar uchun: zaxira nusxalashni va bazalar holati bo'yicha bildirishnomalarni avtomatlashtiradi, vaqtni tejaydi va ma'lumotlar yo'qolishi xavfini kamaytiradi.
- DevOps va administratorlar uchun: bir nechta ma'lumotlar bazasini monitoring qilish, xatolarni kuzatish va bildirishnomalarni jamoaning odatiy aloqa kanallariga integratsiya qilish imkonini beradi.
- Ta'limiy loyihalar va laboratoriya muhitlari uchun: Postgresus'ni Docker orqali lokal tarzda ishga tushirib, PostgreSQL bazalari bilan xavfsiz test va tajribalar o'tkazish mumkin.
**Misol**: siz PostgreSQL 15 asosidagi loyiha ustida ishlayapsiz va har 6 soatda zaxira nusxalari yaratilishiga, nosozlik yuz bersa esa darhol Telegram orqali xabarnoma olishga ishonch hosil qilmoqchisiz. Postgresus buni atigi bir necha daqiqada sozlash imkonini beradi.
## O'rnatish
Postgresus'ni ishga tushirishning eng oson yo'li — Docker'dan foydalanish. Ishga tushirish buyrug'i:
```bash
docker run -d
--name postgresus
-p 4005:4005
-v ./postgresus-data:/postgresus-data
--restart unless-stopped
rostislavdugin/postgresus:latest
```
Shundan so'ng veb-interfeys http://localhost:4005
manzili orqali ochiladi. Bu yerda ma'lumotlar bazasi manbalarini, zaxira nusxalash jadvalini, bildirishnomalarni va nusxalarni saqlash joylarini sozlash mumkin.
## Mumkin bo'lgan muammolar va ularni hal qilish
**Ma'lumotlar bazasiga ulanish imkoni yo'qligi**: Postgresus har 60 soniyada holatni tekshiradi va muammo haqida xabar beradi. Favqulodda holatda ulanishni va PostgreSQL sozlamalarini tekshirish kerak.
**Bulutli saqlashga kirish bilan bog'liq muammolar**: S3 yoki Google Drive'dan foydalanganda API kalitlari va ruxsatlar to'g'ri sozlanganiga ishonch hosil qiling.
**Docker-konteynerdagi nosozliklar**: konteyner avtomatik ravishda qayta ishga tushadi (--restart unless-stopped), ammo xost resurslarini doimiy nazorat qilish muhim.
## FAQ
- **S: Qaysi PostgreSQL versiyalari qo'llab-quvvatlanadi?**
J: 13–18 versiyalari.
- **S: Postgresus'ni production-serverlarda ishlatish mumkinmi?
** J: Ha, vosita ishchi (production) bazalar bilan ishlashga mo'ljallangan, biroq xost xavfsizligi va ruxsatlarni tekshirish tavsiya etiladi.
- **S: Zaxira nusxalari qayerda saqlanadi?**
J: Sozlamalarga qarab lokal tarzda, S3 yoki Google Drive'da.
- **S: Postgresus uchun alohida server kerakmi?
** J: Yo'q, bitta xost yoki maqsadli bazalarga kirish huquqiga ega Docker-konteyner yetarli.
- **S: Bildirishnomalarni boshqa messenjerlarga integratsiya qilish mumkinmi?
** J: Hozircha Telegram, Slack va Discord qo'llab-quvvatlanadi, ammo Postgresus API orqali funksionallikni kengaytirish mumkin.
## Shpargalka
| Amal | Buyruq / Interfeys | Tavsif |
| --- | --- | --- |
| Postgresus'ni ishga tushirish | docker run ... | Veb-interfeysga ega konteynerni ishga tushirish va nosozlikda avtomatik tiklash |
| Bazalar holatini tekshirish | Veb-interfeys → Health Check | Ulangan barcha bazalarning mavjudligi va so'nggi xatolarni ko'rsatish |
| Zaxira nusxalash vazifasini yaratish | Veb-interfeys → Backup → Add | Manba, jadval va saqlash joyini sozlash |
| Bildirishnomalarni sozlash | Veb-interfeys → Notifications | Nosozlik yoki baza mavjud bo'lmaganda Telegram, Slack, Discord'ga xabar yuborish |
| Zaxira nusxalarni saqlash | Local / S3 / Google Drive | Ruxsatlarni sozlagan holda zaxira nusxalari saqlanadigan joyni tanlash |
## Xulosa
Postgresus — bu PostgreSQL uchun zaxira nusxalash va monitoringni avtomatlashtiruvchi qulay self-hosted vosita. U muntazam zaxira nusxalarini tez sozlash, nosozliklar haqida bildirishnomalar olish, nusxalarni lokal yoki bulutda saqlash va ma'lumotlar bazalari holatini real vaqt rejimida kuzatish imkonini beradi. Docker orqali oson deploy qilinishi va Apache 2.0 ochiq litsenziyasi tufayli Postgresus shaxsiy loyihalar uchun ham, korporativ serverlar uchun ham mos bo'lib, ma'lumotlarni ishonchli va xavfsiz saqlashni ta'minlaydi.
https://serverspace.uz/support/help/walrus-raspredelyonnaya-platforma-potokovoj-peredachi-soobshhenij-ustanovka-i-ispolzovanie.mdУзнайте, что такое Walrus - отказоустойчивая и высокопроизводительная платформа для потоковой передачи сообщений. Руководство по установке, созданию топиков и публикации сообщений с примерами и ссылкой на GitHub.
**Walrus** — это современная распределённая платформа потоковой передачи сообщений, которая обеспечивает высокую производительность, отказоустойчивость и масштабируемость. Она идеально подходит для микросервисов, систем логирования, аналитики в реальном времени и любых приложений, где критична надёжная передача данных.
Репозиторий проекта: [Walrus на GitHub](https://github.com/nubskr/walrus)
## Зачем нужен Walrus
Walrus идеально подходит для приложений, которые требуют высокой надёжности и масштабируемости потоков данных. Примеры использования:
- Обработка больших потоков событий в реальном времени.
- Системы логирования и мониторинга.
- Архитектура микросервисов с обменом сообщений.
- Построение ETL-процессов и аналитики данных в реальном времени.
Основные преимущества:
- **Отказоустойчивость** - автоматическая ротация лидеров и репликация данных.
- **Высокая производительность** - логовая структура хранения обеспечивает быстрый доступ к сообщениям.
- **Масштабируемость** - сегментная разбиение и распределение нагрузки между узлами.
## Реальные сценарии использования Walrus
Walrus подходит для самых разных задач, где важна высокая производительность и надёжность потоковой передачи данных. Например, веб-приложения могут использовать его для стриминга логов и событий пользователей в реальном времени, что помогает быстро выявлять ошибки и анализировать поведение клиентов. В архитектуре микросервисов Walrus служит надежным посредником для обмена сообщениями между сервисами, обеспечивая консистентность и отказоустойчивость. Кроме того, платформа отлично подходит для построения ETL-процессов и аналитических систем, где данные из разных источников собираются, обрабатываются и передаются в реальном времени для дальнейшей обработки и визуализации.
## Принцип работы Walrus
Walrus построен как распределённая система для стриминга сообщений, которая сочетает высокопроизводительный лог‑движок с механизмом консенсуса Raft для координации метаданных:
- **Разбиение на сегменты**: Темы разбиваются на сегменты (примерно по ~1 000 000 сообщений каждый). Каждый сегмент имеет лидирующий узел, на который приходят записи. Когда сегмент заполняется, происходит автоматическое переключение лидерства на другой узел, что обеспечивает балансировку нагрузки по кластеру.
- **Raft‑консенсус**: Протокол Raft используется только для метаданных — например, чтобы согласовать, какой узел отвечает за какой сегмент. Данные сообщений не проходят через Raft‑слой, что делает критический путь записи очень быстрым.
- **Write fencing (арендные права записи)**: Только узел‑лидер для сегмента может выполнять записи в него. Это предотвращает "split‑brain" ситуации, когда несколько узлов могли бы одновременно писать в один сегмент.
- **Чтение**: По мере заполнения сегментов они "запечатываются". Чтение может выполняться с любого узла, где есть копия запечатанного сегмента, без перемещения данных.
- **Клиентский протокол**: Клиенты (продьюсеры и консьюмеры) могут подключаться к любому узлу в кластере — Walrus автоматически перенаправит запрос к нужному лидеру сегмента
Архитектура Walrus выглядит так:
## Установка Walrus
Для запуска Walrus вам потребуется Go и Docker (по желанию).
### Установка через Go
Клонируем репозиторий
```bash
git clone https://github.com/nubskr/walrus.git
```
```
cd walrus
```
Сборка проекта
```
go build -o walrus main.go
```
Запуск
```
./walrus
```
### Установка через Docker
```bash
docker pull nubskr/walrus
```
```bash
docker run -d --name walrus -p 8080:8080 nubskr/walrus
```
После запуска Walrus будет доступен на порту 8080 (по умолчанию).
## Как использовать Walrus
Walrus предоставляет API для публикации и подписки на сообщения. Основные сценарии использования:
**1. Публикация сообщений**
```bash
curl -X POST http://localhost:8080/topics/my-topic/messages \
-H "Content-Type: application/json" \
-d '{"key": "user1", "value": "Привет, Walrus!"}'
```
**2. Подписка на сообщения**
```bash
curl http://localhost:8080/topics/my-topic/subscribe
```
**3. Создание топиков**
```bash
curl -X POST http://localhost:8080/topics \
-H "Content-Type: application/json" \
-d '{"name": "my-topic", "partitions": 3}'
```
Walrus автоматически распределяет данные между сегментами и обеспечивает консистентность с помощью Raft.
## Вывод
**Walrus** — мощная и отказоустойчивая платформа для работы с потоками данных. Начните с локального запуска через Docker или Go, создайте топик и попробуйте опубликовать первые сообщения. Благодаря своей производительности и масштабируемости Walrus станет надежным инструментом для вашего проекта
## FAQ
- **1. Walrus подходит для маленьких проектов?**
Да, Walrus можно использовать локально для тестирования и небольших проектов, но его сильные стороны раскрываются в распределённых системах.
- **2. Как обеспечивается отказоустойчивость?**
Через автоматическую ротацию лидеров и репликацию данных между узлами с использованием Raft.
- **3. Можно ли интегрировать с другими системами?**
Да, Walrus можно использовать с любыми сервисами, которые поддерживают HTTP API для публикации и подписки сообщений.
- **4. Есть ли официальная документация?**
Полная документация доступна на GitHub Walrus
https://serverspace.uz/support/help/walrus-tarqatilgan-xabar-almashish-oqim-platformasi-ornatish-va-foydalanish.mdWalrus haqida bilib oling – xatoliklarga chidamli va yuqori unumdorlikka ega xabarlar oqimi platformasi. O'rnatish, mavzular yaratish va xabarlarni e'lon qilish bo'yicha qo'llanma, misollar va GitHub havolasi bilan.
**Walrus** — bu zamonaviy tarqatilgan xabar oqimini uzatish platformasi bo'lib, yuqori samaradorlik, chidamlilik va masshtablilikni ta'minlaydi. U mikroxizmatlar, loglash tizimlari, real vaqtli tahlil va ma'lumotlarni ishonchli uzatish muhim bo'lgan har qanday ilovalar uchun ideal yechimdir.
Loyiha repozitoriyasi: [Walrus GitHub'da](https://github.com/nubskr/walrus)
## Walrus nima uchun kerak
Walrus yuqori ishonchlilik va ma'lumot oqimini masshtablashni talab qiladigan ilovalar uchun ideal hisoblanadi. Foydalanish misollari:
- Real vaqt rejimida katta hodisalar oqimini qayta ishlash.
- Loglash va monitoring tizimlari.
- Xabar almashish bilan mikroxizmatlar arxitekturasi.
- Real vaqtli ETL jarayonlarini va ma'lumotlar tahlilini yaratish.
Asosiy afzalliklar:
- **Chidamlilik** - liderlarni avtomatik aylantirish va ma'lumotlarni replikatsiya qilish.
- **Yuqori samaradorlik** - log tuzilishi xabarlarga tezkor kirishni ta'minlaydi.
- **Masshtablilik** - segmentlarga bo'lish va tugunlar orasida yukni taqsimlash.
## Walrusning real foydalanish ssenariylari
Walrus yuqori samaradorlik va ishonchli xabar oqimi uzatish muhim bo'lgan turli vazifalar uchun mos keladi. Masalan, veb-ilovalar real vaqt rejimida foydalanuvchi hodisalari va loglarini oqim shaklida yuborish uchun uni ishlatishi mumkin, bu esa xatolarni tez aniqlash va mijozlar xatti-harakatlarini tahlil qilishga yordam beradi. Mikroxizmatlar arxitekturasida Walrus xizmatlar orasida xabar almashishda ishonchli vosita sifatida ishlaydi, konsistensiya va chidamlilikni ta'minlaydi. Bundan tashqari, platforma turli manbalardan olingan ma'lumotlarni yig'ish, qayta ishlash va real vaqt rejimida uzatish orqali ETL jarayonlari va tahlil tizimlarini yaratish uchun juda mos keladi.
## Walrusning ishlash prinsipi
Walrus yuqori samarador log-mexanizmni va Raft konsensusini ma'lumotlar metadatalarini muvofiqlashtirish uchun birlashtirgan tarqatilgan xabar oqimini uzatish tizimi sifatida yaratilgan:
- **Segmentlarga bo'lish**: Mavzular segmentlarga bo'linadi (taxminan har biri ~1 000 000 xabar). Har bir segmentda yozuvlar keladigan yetakchi tugun mavjud. Segment to'lganda, liderlik avtomatik ravishda boshqa tugunga o'tadi va bu klaster bo'ylab yuk balansini ta'minlaydi.
- **Raft konsensusi**: Raft protokoli faqat metadatalar uchun ishlatiladi — masalan, qaysi tugun qaysi segmentga javob berishini kelishish uchun. Xabar ma'lumotlari Raft qatlami orqali o'tmaydi, bu yozuv jarayonini juda tez qiladi.
- **Write fencing (yozuv huquqi)**: Segmentga faqat lider tugun yozuvlarni amalga oshirishi mumkin. Bu bir nechta tugun bir vaqtning o'zida bitta segmentga yozishi mumkin bo'lgan "split-brain" vaziyatlarini oldini oladi.
- **O'qish**: Segmentlar to'lganda ular "muhrlanadi". O'qish segmentning muhrlangan nusxasi mavjud bo'lgan har qanday tugundan amalga oshirilishi mumkin, ma'lumotlarni ko'chirish shart emas.
- **Klient protokoli**: Klientlar (produserlar va konsumerlar) klasterdagi har qanday tugunga ulanishi mumkin — Walrus avtomatik ravishda so'rovni kerakli segment lideriga yo'naltiradi.
Walrus arxitekturasi shunday ko'rinadi:
## Walrusni o'rnatish
Walrusni ishga tushirish uchun Go va Docker (istalgan holda) kerak bo'ladi.
### Go orqali o'rnatish
Repozitoriyani klonlash
```bash
git clone https://github.com/nubskr/walrus.git
```
```
cd walrus
```
Loyihani kompilyatsiya qilish
```
go build -o walrus main.go
```
Ishga tushirish
```
./walrus
```
### Docker orqali o'rnatish
```bash
docker pull nubskr/walrus
```
```bash
docker run -d --name walrus -p 8080:8080 nubskr/walrus
```
Walrus ishga tushgandan so'ng, u standart ravishda 8080 portida mavjud bo'ladi.
## Walrusni qanday ishlatish
Walrus xabarlarni nashr qilish va obuna bo'lish uchun API taqdim etadi. Asosiy foydalanish ssenariylari:
**1. Xabarlarni nashr qilish**
```bash
curl -X POST http://localhost:8080/topics/my-topic/messages \
-H "Content-Type: application/json" \
-d '{"key": "user1", "value": "Salom, Walrus!"}'
```
**2. Xabarlarga obuna bo'lish**
```bash
curl http://localhost:8080/topics/my-topic/subscribe
```
**3. Mavzular yaratish**
```bash
curl -X POST http://localhost:8080/topics \
-H "Content-Type: application/json" \
-d '{"name": "my-topic", "partitions": 3}'
```
Walrus ma'lumotlarni segmentlar bo'yicha avtomatik taqsimlaydi va Raft orqali konsistensiyani ta'minlaydi.
## Xulosa
**Walrus** — ma'lumot oqimlari bilan ishlash uchun kuchli va chidamli platforma. Docker yoki Go orqali lokal ishga tushirib, mavzu yaratib, birinchi xabarlaringizni nashr qilishni boshlang. Yuqori samaradorligi va masshtabliligi tufayli Walrus sizning loyihangiz uchun ishonchli vosita bo'ladi.
## FAQ
- **1. Walrus kichik loyihalar uchun mosmi?**
Ha, Walrusni lokal ravishda sinov va kichik loyihalar uchun ishlatish mumkin, lekin uning kuchli tomonlari tarqatilgan tizimlarda namoyon bo'ladi.
- **2. Chidamlilik qanday ta'minlanadi?**
Liderlarni avtomatik aylantirish va tugunlar orasida ma'lumotlarni replikatsiya qilish orqali Raft yordamida ta'minlanadi.
- **3. Boshqa tizimlar bilan integratsiya qilish mumkinmi?**
Ha, Walrusni HTTP API orqali xabar nashr qilish va obuna bo'lishni qo'llab-quvvatlaydigan har qanday xizmat bilan ishlatish mumkin.
- **4. Rasmiy hujjatlar bormi?**
To'liq hujjatlar GitHub Walrus'da mavjud.
https://serverspace.uz/support/help/pg_textsearch-dlya-postgresql-bm25-polnotekstovyj-poisk-i-relevantnoe-ranzhirovanie.mdpg_textsearch - расширение PostgreSQL для полнотекстового поиска с ранжированием BM25. Установка, примеры использования, преимущества и ответы на вопросы в одной статье.
**pg_textsearch** — это открытое расширение для PostgreSQL, реализующее полнотекстовый поиск с релевантным ранжированием результатов на основе алгоритма BM25 (Best Matching 25). Он является индустриальным стандартом для оценки качества совпадения текста и применяется во многих поисковых системах благодаря способности учитывать частоту термина, редкость слова в корпусе и длину документа. pg_textsearch делает PostgreSQL не просто СУБД, а полноценной поисковой платформой без необходимости использовать внешние поисковые движки вроде Elasticsearch или Algolia.
Исходный код проекта и документация доступны на GitHub:
```
https://github.com/timescale/pg_textsearch
```
## Практическое применение
Расширение pg_textsearch особенно полезно, когда нужно:
- добавить релевантный полнотекстовый поиск в приложения без выделенного поискового сервера;
- улучшить качество ранжирования результатов по сравнению с базовым ts_rank PostgreSQL;
- строить гибридный поиск, сочетая BM25-ранжирование с семантическими embedding-поисками (например, через pgvector/pgvectorscale) для AI-и RAG-приложений;
- использовать PostgreSQL как единый стек данных и поиска, что упрощает архитектуру и снижает операционные издержки.
**Типичные сценарии**: поиск по каталогам товаров, документации, блогам, чат-ботам, системам рекомендаций и информационным панелям.
## Как установить pg_textsearch
### 1. Требования
PostgreSQL v17 или v18 (расширение поддерживает эти версии).
### 2. Установка расширения
Если у вас уже есть PostgreSQL с поддержкой сборки расширений:
```sql
CREATE EXTENSION pg_textsearch;
```
### 3. Создание BM25-индекса
Пример таблицы:
```sql
CREATE TABLE documents (
id BIGSERIAL PRIMARY KEY,
content TEXT
);
INSERT INTO documents (content) VALUES
('PostgreSQL is a powerful database system'),
('BM25 is an effective ranking function'),
('Full-text search with custom scoring');
```
Создание BM25-индекса:
```sql
CREATE INDEX docs_bm25_idx
ON documents
USING bm25(content)
WITH (text_config = 'english');
```
4. Выполнение поиска
```sql
SELECT *
FROM documents
ORDER BY content 'database system'
LIMIT 10;
```
Оператор возвращает BM25-оценку (в PostgreSQL сортировка по возрастанию означает более релевантные документы имеют более низкие значения).
## Часто задаваемые вопросы (FAQ)
- **Q: Чем pg_textsearch лучше встроенного FTS PostgreSQL?**
A: Встроенный ts_rank в PostgreSQL оценивает совпадения по частоте термина, но не учитывает корпусную статистику (IDF, нормализацию длины и насыщение TF), что снижает качество ранжирования релевантных результатов. pg_textsearch реализует BM25, который эти факторы учитывает.
- **Q: Можно ли использовать pg_textsearch на больших таблицах?**
A: Да, он поддерживает таблицы с разделами (partitioned tables) и работает на реальных объемах данных.
- **Q: Поддерживаются ли разные языки?**
A: Да — можно использовать стандартные текстовые конфигурации PostgreSQL (english, french, german и другие) через параметр text_config.
- **Q: Требует ли pg_textsearch отдельного сервера или сервиса?**
A: Нет — расширение работает на той же базе PostgreSQL, где хранятся ваши данные, что снижает архитектурную сложность.
## Вывод
**pg_textsearch** — мощное расширение для PostgreSQL, которое приносит современный BM25-ранжированный полнотекстовый поиск прямо в реляционную базу данных. Он позволяет упростить архитектуру приложений, улучшить качество поиска и сократить зависимость от внешних поисковых систем. Это особенно актуально для стартапов, MVP-продуктов и гибридных AI-приложений, где важно иметь единый стек данных и поиска.
Если вам нужно быстро добавить релевантный поиск без лишних сервисов — pg_textsearch идет в ногу с современными требованиями разработчиков и архитекторов баз данных.
https://serverspace.uz/support/help/kak-ustanovit-mysql-na-ubuntu-24-04-polnaya-instrukcziya.mdПодробная пошаговая инструкция по установке и настройке MySQL на Ubuntu 24.04. Узнайте, как установить сервер, настроить безопасность и создать пользователя и базу данных.
**MySQL** является одной из наиболее распространённых систем управления базами данных, применяемой для надёжного хранения и обработки информации в веб-приложениях, бизнес-сервисах и программных решениях. MySQL лежит в основе множества проектов: от сайтов и интернет-магазинов на WordPress, Joomla и Laravel до высоконагруженных API, CRM-систем, игровых серверов и аналитических платформ. С помощью MySQL можно хранить данные пользователей, заказы, логи, игровые состояния, настройки приложений и любые структурированные данные, требующие быстрого и надёжного доступа.
В этой инструкции мы покажем, как выполнить установку MySQL на Ubuntu 24.04, активировать сервер и настроить основные параметры безопасности для стабильной эксплуатации. Если вы не хотите заниматься ручной установкой и настройкой, вы можете арендовать [готовый сервер с MySQL на сервере от Serverspace.uz](https://serverspace.uz/services/cloud-marketplace/mysql/) — развернуть VPS с предустановленной СУБД MySQL или настроить приложение самостоятельно всего за несколько минут:[https://serverspace.uz/services/cloud-marketplace/mysql/](https://serverspace.uz/services/cloud-marketplace/mysql/)
## Шаг 1. Обновление системы
Сначала обновим список пакетов и установленные программы:
```bash
sudo apt update
```
```bash
sudo apt upgrade -y
```
- **apt update** — обновляет информацию о доступных пакетах.
- **apt upgrade -y** — обновляет все пакеты до последних версий без запроса подтверждения.
## Шаг 2. Установка сервера MySQL
Выполним установку MySQL из официального репозитория Ubuntu:
```bash
sudo apt install mysql-server -y
```
Узнаем, какая версия MySQL установлена, с помощью команды:
```bash
mysql --version
```
Пример вывода:
```bash
mysql Ver 8.0.44-0ubuntu0.24.04.2 for Linux on x86_64 ((Ubuntu))
```
## Шаг 3. Запуск и проверка службы MySQL
После завершения установки служба MySQL, как правило, запускается автоматически. Проверим текущее состояние сервиса:
```bash
sudo systemctl status mysql
```
Статус active (running) означает, что сервис работает.
При отсутствии запущенной службы выполните команду для её активации:
```bash
sudo systemctl start mysql
```
Чтобы включить автозапуск MySQL при загрузке системы:
```bash
sudo systemctl enable mysql
```
## Шаг 4. Настройка параметров безопасности MySQL
MySQL имеет встроенную утилиту для базовой настройки безопасности:
```
sudo mysql_secure_installation
```
Во время выполнения вас попросят:
Задайте пароль для пользователя root.
Удалите всех анонимных пользователей.
Ограничьте удалённый доступ для root.
Удалите стандартную тестовую базу данных, создаваемую при установке.
Обновите привилегии, чтобы изменения вступили в силу.
В большинстве случаев достаточно принять предложенные по умолчанию настройки, подтверждая их клавишей Y.
## Шаг 5. Вход в MySQL
Для входа в MySQL под пользователем root используйте команду:
```bash
mysql
```
После этого откроется командная строка MySQL:
mysql>
Для выхода используйте:
```
exit;
```
## Шаг 6. Создание нового пользователя и базы данных (опционально)
Для повседневной работы не рекомендуется использовать root. Создадим отдельного пользователя:
```sql
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
```
```
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
```
```
FLUSH PRIVILEGES;
```
Где:
- **username** — имя нового пользователя.
- **password** — его пароль.
Можно также создать отдельную базу данных:
```sql
CREATE DATABASE mydatabase;
```
Поздравляем! MySQL установлен и настроен на Ubuntu 24.04. Вы можете использовать его для разработки, хранения данных и подключения к приложениям.
## FAQ - часто задаваемые вопросы
- **Какая версия MySQL устанавливается на Ubuntu 24.04?**
По умолчанию MySQL устанавливается из официальных репозиториев Ubuntu. На момент выхода Ubuntu 24.04 это версия MySQL 8.0.x, которая подходит для большинства задач и регулярно получает обновления безопасности.
- **Нужно ли вручную запускать MySQL после установки?**
Нет, служба MySQL обычно запускается автоматически после установки. Однако рекомендуется проверить её статус с помощью systemctl status mysql.
- **Обязательно ли выполнять mysql_secure_installation?**
Да, настоятельно рекомендуется. Эта утилита позволяет повысить безопасность сервера MySQL: задать пароль для root, удалить тестовые данные и ограничить доступ.
- **Почему не рекомендуется использовать пользователя root для работы?**
Пользователь root имеет полный доступ ко всем базам данных и настройкам. Для повседневной работы и подключения приложений безопаснее создавать отдельного пользователя с нужными правами.
- **Подходит ли MySQL на Ubuntu 24.04 для продакшена?**
Да, MySQL на Ubuntu 24.04 стабилен и подходит для продакшн-среды, особенно при использовании VPS/VDS и корректной настройке безопасности.
## Вывод
MySQL остаётся одной из самых востребованных систем управления базами данных благодаря своей стабильности, гибкости и высокой производительности. Она подходит как для небольших веб‑сайтов и интернет-магазинов на WordPress, Laravel или Joomla, так и для крупных проектов с высокими нагрузками — API, CRM, игровых серверов и аналитических платформ. С помощью MySQL удобно хранить и обрабатывать любые структурированные данные: от пользовательских аккаунтов и заказов до логов, игровых прогрессов и настроек приложений.
Установка MySQL на Ubuntu 24.04 позволяет быстро развернуть рабочую базу данных с безопасными настройками и готовым к эксплуатации сервером. Если вы хотите сэкономить время и сразу получить готовое решение, вы можете арендовать сервер с предустановленным MySQL от [Serverspace.uz](https://serverspace.uz/index.md)— разверните VPS, настроенный под ваши задачи, всего за несколько минут: [https://serverspace.uz/services/cloud-marketplace/mysql/](https://serverspace.uz/services/cloud-marketplace/mysql/)
https://serverspace.uz/support/help/kak-umenshit-zaderzhku-kubernetes-rukovodstvo-po-optimizaczii-seti-dns-i-proizvoditelnosti.mdУзнайте, как снизить задержку в Kubernetes с помощью IPVS kube-proxy, eBPF и Cilium, NodeLocal DNSCache, настройки TCP и Multi-NIC. Оптимизация сети и производительности кластера для микросервисов и высоконагруженных приложений.
**Высокая задержка (latency)** в Kubernetes может быстро стать серьезной проблемой для DevOps-инженеров. Она влияет на отзывчивость приложений, увеличивает таймауты запросов и часто приводит к плохому пользовательскому опыту. К счастью, Kubernetes предоставляет несколько вариантов тюнинга и архитектурных улучшений, которые могут значительно снизить сетевую и сервисную задержку.
Давайте рассмотрим ключевые техники, которые помогают оптимизировать сетевое взаимодействие в Kubernetes и ускорить ваш кластер.
## 1. Настройка kube-proxy: переход с iptables на IPVS
По умолчанию kube-proxy часто работает в режиме iptables, который может становиться неэффективным по мере роста количества сервисов и правил. Более подходящей альтернативой является IPVS, который обеспечивает более быструю балансировку нагрузки и более эффективную обработку пакетов.
Чтобы переключить kube-proxy в режим IPVS:
```bash
kubectl edit configmap -n kube-system kube-proxy
```
Установите следующее значение:
```
mode: "ipvs"
```
### Почему IPVS помогает
- Более эффективная балансировка нагрузки
- Меньшая задержка при высоком трафике
- Лучшая масштабируемость для крупных кластеров
## 2. Использование сетевого стека на базе eBPF (Cilium)
Классическое сетевое взаимодействие на базе iptables может стать узким местом в средах с высокой пропускной способностью. Cilium, использующий eBPF, заменяет iptables обработкой пакетов на уровне ядра, что значительно повышает производительность сети.
**Установка Cilium с помощью Helm:**
```
helm install cilium cilium/cilium --namespace kube-system
```
**Преимущества eBPF**
- Более быстрая маршрутизация и фильтрация
- Снижение нагрузки на CPU
- Улучшенная наблюдаемость и безопасность
- Меньшая сетевая задержка для сервисов и pod'ов
## 3. Включение NodeLocal DNSCache
Разрешение DNS — частый скрытый источник задержек в Kubernetes. Каждый DNS-запрос от pod'а обычно проходит через CoreDNS, который может быть перегружен.
NodeLocal DNSCache запускает локальный DNS-кэш на каждом узле, значительно сокращая время DNS-запросов.
Включите его с помощью команды:
```bash
kubectl apply -f https://k8s.io/examples/admin/dns/nodelocaldns.yaml
```
**Результаты**
В результате разрешение DNS становится значительно быстрее, нагрузка на CoreDNS заметно снижается, а общая производительность улучшается, особенно в микросервисных архитектурах, где сервисы часто взаимодействуют друг с другом.
## 4. Настройка TCP-параметров с помощью sysctl
Значения TCP по умолчанию в Linux не всегда оптимальны для высокопроизводительных Kubernetes-нагрузок. Настройка параметров ядра позволяет снизить задержку соединений и повысить пропускную способность.
Рекомендуемые настройки TCP:
```
sysctl -w net.core.somaxconn=1024
```
```
sysctl -w net.ipv4.tcp_tw_reuse=1
```
```
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
```
**Что это улучшает**
- Более быстрая обработка соединений
- Лучшая производительность при высокой конкурентности
- Снижение потерь в очереди SYN
## 5. Использование Multi-NIC и продвинутых CNI-плагинов
В средах с высокой нагрузкой или чувствительных к задержкам один сетевой интерфейс может стать узким местом. Использование нескольких сетевых интерфейсов (Multi-NIC) позволяет более эффективно распределять трафик.
Multus CNI позволяет pod'ам одновременно подключаться к нескольким сетевым интерфейсам.
**Когда стоит использовать Multus**
- Высокие требования к пропускной способности сети
- Низколатентные нагрузки (базы данных, стриминг, телеком)
- Разделение управляющего и дата-трафика
## Заключение
Снижение задержки в Kubernetes — это не одна отдельная настройка, а системная оптимизация сети, DNS, параметров ядра и архитектуры кластера. Переключив kube-proxy на IPVS, внедрив eBPF-сетевое взаимодействие с Cilium, включив NodeLocal DNSCache, настроив TCP-параметры и используя Multi-NIC-конфигурации, вы можете значительно повысить отзывчивость и стабильность кластера.
**Эти оптимизации особенно полезны для:**
- Микросервисных архитектур
- Продакшен-кластеров с высокой нагрузкой
- Приложений, чувствительных к задержкам
Начинайте с изменений, которые дают наибольший эффект в вашем окружении, измеряйте результаты и аккуратно итеративно улучшайте конфигурацию.
## FAQ
- **Что вызывает высокую задержку в Kubernetes-кластерах?**
Чаще всего высокая задержка вызвана неэффективной маршрутизацией сервисов (kube-proxy на базе iptables), перегруженным DNS (CoreDNS), неоптимальными TCP-настройками Linux и сетевыми узкими местами на уровне CNI или узлов. В больших или нагруженных кластерах эти проблемы становятся особенно заметными и напрямую влияют на время отклика приложений.
- **Безопасно ли переключать kube-proxy на IPVS в продакшене?**
Да. IPVS широко используется в продакшен-средах и официально поддерживается Kubernetes. Тем не менее, его всегда стоит сначала протестировать в staging-кластере, особенно если используются кастомные сетевые или firewall-настройки.
- **Нужны ли eBPF и Cilium для снижения задержки?**
Не обязательно. IPVS и NodeLocal DNSCache уже дают значительный прирост производительности. Cilium с eBPF рекомендуется для высокопроизводительных или крупномасштабных кластеров, где важны максимальная эффективность и наблюдаемость.
- **Будет ли NodeLocal DNSCache работать с существующей настройкой CoreDNS?**
Да. NodeLocal DNSCache предназначен для совместной работы с CoreDNS и выступает в роли локального кэширующего слоя, снижая задержку DNS-запросов без необходимости серьезных изменений в текущей конфигурации.
- **Универсальны ли TCP-оптимизации sysctl для всех нагрузок?**
Нет. Настройки TCP зависят от характера нагрузки и паттернов трафика. Всегда выполняйте бенчмаркинг и проверку изменений в тестовой среде перед применением в продакшене.
- **Когда стоит рассмотреть Multi-NIC или Multus CNI?**
Multi-NIC-конфигурации наиболее полезны для чувствительных к задержкам, высоконагруженных или сетево-интенсивных workloads. Для небольших кластеров или сценариев с низким трафиком дополнительная сложность может быть неоправданной.
https://serverspace.uz/support/help/databasus-besplatnoe-selfhosting-reshenie-dlya-rezervnogo-kopirovaniya-baz-dannyh.mdDatabasus - открытый инструмент для резервного копирования баз данных. Создавайте плановые бэкапы, храните их в S3, Google Drive, FTP и получайте уведомления в Slack, Discord или Telegram. Надёжная защита данных для команд и DevOps.
Надёжные резервные копии являются критически важной частью любой производственной инфраструктуры. Базы данных часто содержат самые ценные данные в системе, и их потеря из-за аппаратных сбоев, неправильной конфигурации или ошибок человека может привести к серьёзным простоям и финансовым потерям. Хотя существует множество решений для резервного копирования, не все они гибкие, прозрачные и удобные для самостоятельного размещения.
**Databasus** — это бесплатный, открытый и самохостящийся инструмент, специально разработанный для резервного копирования баз данных. Он позволяет командам и отдельным разработчикам создавать плановые бэкапы, хранить их в различных внешних хранилищах и получать уведомления о ходе и результатах резервного копирования в реальном времени.
Databasus ориентирован на простоту, расширяемость и полный контроль над вашими данными, что делает его отличным выбором для небольших команд, стартапов и инфраструктуры с самостоятельным управлением.
## Для чего используется Databasus?
Основная цель Databasus — автоматизация и централизованное управление резервными копиями баз данных с обеспечением прозрачности статуса и ошибок бэкапов.
**Ключевые сценарии использования:**
- Автоматическое резервное копирование production и staging баз данных
- Централизованное управление бэкапами для нескольких баз данных
- Хранение резервных копий в удалённых хранилищах для аварийного восстановления
- Уведомления о успешном или неудачном завершении бэкапов в реальном времени
- Самохостящееся альтернативное решение вместо управляемых сервисов резервного копирования
**Основные возможности:**
Databasus предоставляет гибкий и расширяемый конвейер резервного копирования, обеспечивающий надёжную защиту баз данных. Он поддерживает автоматическое резервное копирование через настраиваемые задачи и позволяет сохранять файлы бэкапов в различных хранилищах, включая S3-совместимые, Google Drive, FTP-серверы и другие подключаемые хранилища. Платформа интегрируется с популярными системами уведомлений, такими как Slack, Discord и Telegram, что позволяет получать обновления о ходе и результатах резервного копирования в реальном времени. Полностью самохостящийся и открытый исходный код Databasus даёт полный контроль над конфигурацией, данными и инфраструктурой, а встроенный мониторинг бэкапов помогает отслеживать выполнение, ошибки и успешное завершение операций прозрачно и понятно.
## Обзор архитектуры
На высоком уровне Databasus работает как централизованный сервис резервного копирования, где базы данных определяются как объекты для бэкапа, а задачи могут выполняться по расписанию или вручную. При каждом запуске создаются артефакты резервного копирования, которые загружаются в одно или несколько настроенных хранилищ, а уведомления о процессе и его результатах отправляются в подключённые платформы для сообщений. Все компоненты системы полностью работают в вашей собственной инфраструктуре, что делает Databasus подходящим как для простых односерверных развёртываний, так и для более сложных распределённых сред.
## Установка
### Требования
- Сервер Linux или контейнерная среда
- Docker и Docker Compose (рекомендуется)
- Учётные данные для доступа к вашим базам данных
- Учётные данные для выбранных хранилищ
### Шаг 1: Клонирование репозитория
```bash
git clone https://github.com/databasus/databasus.git
```
```
cd databasus
```
### Шаг 2: Настройка переменных окружения
Databasus использует переменные окружения для конфигурации. Скопируйте пример файла конфигурации:
```
cp .env.example .env
```
Отредактируйте файл .env и настройте:
- Параметры подключения к базе данных
- Учётные данные для хранилищ (S3, FTP, Google Drive и др.)
- Интеграции для уведомлений (Slack, Discord, Telegram)
### Шаг 3: Запуск Databasus
С помощью Docker Compose:
```bash
docker compose up -d
```
Это запустит Databasus и необходимые сервисы.
### Шаг 4: Проверка работы сервиса
Проверьте, что контейнеры работают:
```bash
docker ps
```
При необходимости просмотрите логи:
```bash
docker logs databasus
```
После запуска Databasus начнёт выполнять настроенные задачи резервного копирования.
## Настройка бэкапов
Базы данных и расписания бэкапов определяются через конфигурационные файлы или переменные окружения (в зависимости от вашего окружения). Каждая задача может указывать:
- Тип базы данных и параметры подключения
- Расписание резервного копирования
- Целевые хранилища
- Каналы уведомлений
Это позволяет создавать гибкие стратегии бэкапа, например, ежедневные копии в S3 и еженедельные — в Google Drive.
## FAQ – Часто задаваемые вопросы
- **Какие базы данных поддерживает Databasus?**
Databasus разработан для работы с распространёнными базами данных. Поддержка конкретных баз зависит от доступных драйверов и конфигурации, и может быть расширена при необходимости.
- **Можно ли использовать несколько хранилищ одновременно?**
Да. Databasus позволяет одновременно отправлять резервные копии в несколько хранилищ для повышения надёжности.
- **Подходит ли Databasus для продакшена?**
Да, особенно для малых и средних инфраструктур. Как и с любой системой резервного копирования, рекомендуется регулярно проверять процедуры восстановления.
- **Шифрует ли Databasus бэкапы?**
Шифрование зависит от конфигурации хранилища. Например, S3-совместимые хранилища могут использовать серверное шифрование, а дополнительные уровни шифрования можно добавить самостоятельно.
- **Можно ли восстанавливать базы данных с помощью Databasus?**
Databasus сосредоточен на создании и хранении резервных копий. Восстановление обычно выполняется вручную с использованием созданных файлов бэкапа.
## Заключение
Databasus — это практичное и прозрачное решение для команд, которые хотят полностью контролировать свои резервные копии без использования проприетарных сервисов. С поддержкой нескольких хранилищ, уведомлений в реальном времени и полностью открытым исходным кодом, он отлично подходит для современных self-hosted и DevOps-ориентированных инфраструктур.
Для разработчиков и команд инфраструктуры, ищущих лёгкую и гибкую платформу для резервного копирования, Databasus обеспечивает надёжную защиту баз данных.
**Репозиторий:**
Databasus — открытый, самохостящийся инструмент для резервного копирования баз данных и уведомлений:
[https://github.com/databasus/databasus](https://github.com/databasus/databasus)
https://serverspace.uz/support/help/nxs-universal-chart-universalnyj-helm-chart-dlya-kubernetes-i-openshift.mdУпростите и стандартизируйте развёртывание приложений в Kubernetes и OpenShift с nxs-universal-chart. Один гибкий Helm-чарт для микросервисов, CI/CD, Stateful-приложений и многоплатформенных окружений.
Развёртывание приложений в Kubernetes часто требует создания и поддержки множества Helm-чартов, даже если приложения используют похожие шаблоны деплоя. Это приводит к дублированию конфигурации, увеличению затрат на поддержку и несогласованным практикам развёртывания в командах.
nxs-universal-chart решает эту проблему, предоставляя единый, гибкий Helm-чарт, который можно использовать для развёртывания практически любого приложения в Kubernetes, OpenShift или на других платформах, совместимых с нативным Kubernetes API.
В этой статье объясняется, что такое nxs-universal-chart, как он работает, где полезен на практике, как его установить и даны ответы на часто задаваемые вопросы.
## Что такое nxs-universal-chart?
nxs-universal-chart — это универсальный и высококонфигурируемый Helm-чарт, предназначенный для развёртывания любых приложений в Kubernetes-средах. Вместо создания отдельного чарта для каждого сервиса, команды могут повторно использовать этот универсальный чарт и полностью настраивать поведение через файлы values.
Чарт поддерживает большинство распространённых Kubernetes-ресурсов и шаблонов деплоя "из коробки", включая:
- Deployments, StatefulSets и Jobs
- Services и Ingress
- ConfigMaps и Secrets
- Автомасштабирование (HPA)
- Ограничения ресурсов и запросы ресурсов
- Node affinity, tolerations и security context
Репозиторий GitHub:
[https://github.com/nixys/nxs-universal-chart](https://github.com/nixys/nxs-universal-chart)
## Зачем использовать nxs-universal-chart?
Во многих организациях развёртывания приложений следуют одной и той же структурной схеме, но отличаются деталями конфигурации, такими как образы, порты, переменные окружения и правила масштабирования. Поддержка отдельных Helm-чартов для каждого сервиса со временем становится неэффективной.
nxs-universal-chart предоставляет:
- Один Helm-чарт для нескольких приложений
- Единые стандарты развёртывания
- Снижение затрат на поддержку чарта
- Более быстрое подключение новых сервисов
- Совместимость с Kubernetes и OpenShift
Он особенно полезен для платформенных команд и DevOps-инженеров, управляющих большим количеством сервисов.
## Практические сценарии использования
### 1. Стандартизированные развёртывания микросервисов
В типичной микросервисной архитектуре десятки или сотни сервисов развёртываются по похожему шаблону. С nxs-universal-chart каждый сервис можно развернуть с использованием одного чарта и настроить поведение через Helm values. Это позволяет командам стандартизировать практики развёртывания, при этом учитывая специфические требования сервисов, такие как порты, переменные окружения и лимиты ресурсов.
### 2. CI/CD-дружелюбная доставка приложений
nxs-universal-chart легко интегрируется в CI/CD-пайплайны. Поскольку вся конфигурация вынесена в values-файлы, пайплайны могут разворачивать одно и то же приложение в несколько окружений (development, staging, production) с использованием окруженческих значений. Это снижает дрейф конфигурации и делает развёртывания более предсказуемыми и повторяемыми.
### 3. Совместимость с Kubernetes и OpenShift
Чарт работает не только с vanilla Kubernetes, но и с OpenShift и другими Kubernetes-совместимыми оркестраторами. Это делает его практичным выбором для организаций с гибридной или мультиплатформенной контейнерной средой.
### 4. Быстрое прототипирование и клонирование окружений
Поскольку разработка кастомных чарта не требуется, новые окружения можно развёртывать быстро. Команды могут легко клонировать существующие окружения или разворачивать временные preview-окружения, повторно используя один и тот же чарт с изменёнными значениями.
## Руководство по установке
Ниже приведён базовый процесс установки с использованием Helm.
**Требования**
- Кластер Kubernetes или OpenShift
- Установленный Helm 3
- Доступ к контейнерному регистру с образами приложения
### Шаг 1: Добавление репозитория чарта или клонирование исходников
Можно клонировать репозиторий напрямую:
```bash
git clone https://github.com/nixys/nxs-universal-chart.git
```
```
cd nxs-universal-chart
```
### Шаг 2: Настройка values
Создайте файл values.yaml с описанием вашего приложения, например:
```bash
image:
repository: nginx
tag: latest
service:
enabled: true
ports:
port: 80
targetPort: 80
replicaCount: 2
```
Всё поведение развёртывания управляется через эту конфигурацию.
### Шаг 3: Установка приложения
Установите чарт с помощью Helm:
```
helm install my-app ./nxs-universal-chart -f values.yaml
```
Helm сгенерирует и применит необходимые Kubernetes-ресурсы на основе предоставленных values.
## FAQ – Часто задаваемые вопросы
- **Подходит ли nxs-universal-chart для продакшена?**
Да. Чарт поддерживает production-фичи, такие как лимиты ресурсов, автомасштабирование, health checks и настройки безопасности. Готовность к продакшену зависит главным образом от корректной настройки values.
- **Может ли он полностью заменить кастомные Helm-чарты?**
Во многих случаях да. Для стандартных развёртываний приложений nxs-universal-chart может полностью заменить кастомные чарты. Однако очень сложные или специализированные нагрузки всё ещё могут требовать кастомных шаблонов.
- **Поддерживает ли Stateful-приложения?**
Да. Чарт поддерживает StatefulSets, что делает его подходящим для stateful workloads при правильной настройке хранилища.
- **Насколько гибок чарт?
** Большинство распространённых опций Kubernetes доступны через values, что позволяет глубоко настраивать поведение без изменения самого чарта.
## Заключение
nxs-universal-chart — практичное решение для команд, которые хотят упростить и стандартизировать развёртывание приложений в Kubernetes и OpenShift. Используя один высококонфигурируемый Helm-чарт, организации могут сократить дублирование, повысить согласованность и ускорить доставку приложений в разных окружениях.
Если ваша команда управляет большим количеством схожих сервисов или хочет снизить операционные расходы на поддержку множества Helm-чартов, nxs-universal-chart — надёжный и гибкий выбор.
Официальный репозиторий:
[https://github.com/nixys/nxs-universal-chart](https://github.com/nixys/nxs-universal-chart)
https://serverspace.uz/support/help/kak-bystro-sozdat-vps-s-predustanovlennym-wordpress-v-uzbekistane.mdРазверните VPS сервер с WordPress в Узбекистане за несколько минут. Подробная инструкция по настройке, выбору конфигурации, аутентификации и установке приложений через Serverspace.
Создать сервер с предустановленным WordPress в Serverspace можно всего за несколько шагов:
### Перейдите в панель управления Serverspace.
Нажмите **"Создать сервер"**:
### Выберите конфигурацию сервера:
Выберите операционную систему, Центр обработки данных, Тип конфигурации: (с удобным калькулятором ресурсов) или фиксированная (с готовыми шаблонами):
### Настройка аутентификации:
- Через SSH-ключи (рекомендуется).
- Через логин/пароль (небезопасно и менее надежно).
### Выбор приложений
Выберите WordPress, чтобы он был автоматически установлен при развертывании сервера.
### Дополнительные настройки:
Добавьте группы affinity и теги по необходимости.
Укажите имя сервера и количество серверов с данной конфигурацией.
При желании можно использовать Serverspace API для автоматизированного развертывания серверов.
### Создание сервера:
Нажмите Создать. Сервер с WordPress будет готов к работе в считанные минуты.
### Вывод:
Развернуть VPS с предустановленным WordPress в Узбекистане легко и быстро с помощью Serverspace. Вы можете выбрать оптимальную конфигурацию, настроить безопасную аутентификацию и сразу получить готовый к работе сервер. Использование VPS в Узбекистане позволяет экономить время на настройке, автоматизировать развертывание и управлять сайтами с любого устройства.
https://serverspace.uz/support/help/kak-bystro-sozdat-vps-s-predustanovlennym-lemp-stekom-v-uzbekistane.mdРазверните VPS с предустановленным LEMP-стеком в Узбекистане за несколько минут с помощью Serverspace. Выберите конфигурацию, настройте безопасную аутентификацию и сразу начните работу с веб-приложениями.
Создать сервер с **предустановленным LEMP-стеком** в Serverspace можно всего за несколько шагов:
## Перейдите в панель управления Serverspace.
Нажмите **"Создать сервер"**:
## Выберите конфигурацию сервера:
Выберите операционную систему, Центр обработки данных, Тип конфигурации: (с удобным калькулятором ресурсов) или фиксированная (с готовыми шаблонами):
## Настройка аутентификации:
- Через SSH-ключи (рекомендуется).
- Через логин/пароль (небезопасно и менее надежно).
## Выбор приложений
Выберите LEMP, чтобы он был автоматически установлен при развертывании сервера.
## Дополнительные настройки:
Добавьте группы affinity и теги по необходимости.
Укажите имя сервера и количество серверов с данной конфигурацией.
При желании можно использовать Serverspace API для автоматизированного развертывания серверов.
## Создание сервера:
Нажмите **Создать**. Сервер с LEMP-стеком будет готов к работе в считанные минуты.
## Вывод:
[Развернуть VPS с предустановленным LEMP-стеком в Узбекистане](https://serverspace.uz/services/cloud-marketplace/lemp.md) легко и быстро с помощью Serverspace. Вы можете выбрать оптимальную конфигурацию, настроить безопасную аутентификацию и сразу получить готовый к работе сервер. Использование VPS в Узбекистане позволяет экономить время на настройке, автоматизировать развертывание и управлять сайтами с любого устройства.
https://serverspace.uz/support/help/windows-cmd-buyruqlari-boyicha-tezkor-qollanma-50-foydali-buyruq.mdWindows buyruq qatori (CMD) uchun 50 dan ortiq eng ko‘p ishlatiladigan buyruqlar ro‘yxati. Ushbu qo‘llanma tizim administratorlari va oddiy foydalanuvchilar uchun OS bilan ishlashni osonlashtiradi.
**Windows Buyruq Qatori** — bu operatsion tizim bilan ishlash uchun kuchli vosita bo'lib, foydalanuvchilar va administratorlarga grafik interfeysdan foydalanishga nisbatan ko'proq samarali tarzda turli vazifalarni bajarish imkonini beradi. Buyruq qatori bilan ishlashning asosiy jihatlaridan biri fayllar, tizim jarayonlari, disk sozlamalari va tarmoq resurslarini boshqarish uchun asosiy buyruqlarni bilishdir. Ushbu maqolada biz Windows CMD-da eng ko'p ishlatiladigan buyruqlarni ko'rib chiqamiz, ular sizning kundalik ish faoliyatingizda ajralmas vositaga aylanadi. Shuningdek, biz ularning vazifasi va amaliy qo'llanilishini tushuntiramiz, shunda siz tezda o'zlashtirib, operatsion tizim bilan ishlashda samaradorligingizni oshirishingiz mumkin. Maqola oxirida FAQ bo'limi berilgan bo'lib, u yerda yangi foydalanuvchilarda paydo bo'lishi mumkin bo'lgan savollarga javoblar taqdim etiladi.
## Fayllar va papkalarni boshqarish
| Buyruq | Tavsif | Vazifa / qachon ishlatish |
| --- | --- | --- |
| COPY | Fayllarni boshqa joyga nusxalash. | Fayllarning boshqa katalogdagi nusxalarini yaratish. |
| DIR | Joriy katalogdagi fayllar va papkalarni ko'rsatadi. | Katalog mazmunini ko'rish. |
| DEL / ERASE | Fayllarni o'chirish. | Keraksiz fayllarni olib tashlash. |
| EDIT | Fayl muharririni ishga tushirish. | Matn fayllari bilan ishlash. |
| CD | Katalogni o'zgartirish. | Papkalar orasida navigatsiya qilish. |
| EXPAND | Siqilgan fayllarni chiqarish. | Arxivlardan fayllarni ajratib olish. |
| FC | Fayllarni solishtirish. | Matn fayllari orasidagi farqlarni aniqlash. |
| FIND | Fayldagi matn qatorini qidirish. | Fayllardagi ma'lum matnni topish. |
| MD / MAKEDIR | Papka yaratish. | Yangi katalog yaratish. |
| MOVE | Fayllarni ko'chirish. | Fayllarni papkalar orasida nusxalamay ko'chirish. |
| PRINT | Matn fayli mazmunini chop etish. | Fayl matnini ekranga chiqarish. |
| RD / RMDIR | Papkani o'chirish. | Bo'sh katalogni olib tashlash. |
| REN / RENAME | Fayl yoki papkani qayta nomlash. | Fayl yoki katalog nomini o'zgartirish. |
| REPLACE | Katalogdagi fayllarni almashtirish. | Eskirgan fayllarni yangi versiyalar bilan yangilash. |
| ROBOCOPY | Fayllar va kataloglarni kengaytirilgan nusxalash. | Katta hajmdagi ma'lumotlarni ishonchli tarzda uzatish. |
| TREE | Katalog tuzilmasini ko'rsatadi. | Papka tuzilmasini vizual ko'rsatish. |
| TYPE | Matn fayllari mazmunini ko'rsatish. | Buyruq qatorida matnni tezda ko'rish. |
| OPENFILES | Ochilgan fayllarni boshqarish. | Mahalliy va tarmoqdagi ochilgan fayllarni ko'rish va boshqarish. |
| XCOPY | Fayllar va katalog daraxtlarini nusxalash. | Fayllarni katalog tuzilmasi bilan birga nusxalash. |
## Ilovalar va jarayonlar
| Buyruq | Tavsif | Vazifa / qachon ishlatish |
| --- | --- | --- |
| SCHTASKS | Ilovani rejalashtirilgan ravishda ishga tushirish (vazifa rejalashtiruvchisi). | Tizimda avtomatik vazifalar va skriptlarni rejalashtirish. |
| SHUTDOWN | Kompyuterni o'chirish yoki qayta ishga tushirish. | OS-ni to'g'ri yakunlash yoki masofadan qayta ishga tushirish. |
| TASKLIST | Ishlayotgan vazifalar ro'yxati. | Faol jarayonlar va ularning parametrlarini ko'rish. |
| TASKKILL | Vazifani to'xtatish yoki yakunlash. | Ulanib qolgan yoki keraksiz jarayonlarni majburan yopish. |
| REG | Tizim registri bilan ishlash. | Registrni tahrirlash, kalitlar yaratish va o'zgartirish. |
| RUNAS | Boshqa foydalanuvchi nomidan vazifani ishga tushirish. | Dasturlarni yuqori yoki alternativ huquqlar bilan ishga tushirish. |
## Disklarni boshqarish
| Buyruq | Tavsif | Vazifa / qachon ishlatish |
| --- | --- | --- |
| CHKDISK | Diskni tekshiradi va statistikani ko'rsatadi. | Diskdagi xatolarni aniqlash va tuzatish. |
| DEFRAG | Diskni defragmentatsiya qilishni ishga tushiradi. | Fayllarni tartibga solish orqali samaradorlikni oshirish. |
| CHKNTFS | Yuklash paytida disk tekshiruvi sozlamasini ko'rsatadi yoki o'zgartiradi. | Keyingi tizim ishga tushirilganda disk tekshiruvi bajariladimi aniqlash. |
| COMPACT | NTFS bo'limlaridagi fayllarni siqishni ko'rsatadi va o'zgartiradi. | NTFS disklarida joyni tejash maqsadida fayllarni siqish. |
| CONVERT | FAT tomni NTFS-ga o'zgartiradi. | Ma'lumot yo'qotmasdan zamonaviy fayl tizimiga o'tish. |
| DISKPART | Disk bo'limlarini boshqarish. | Bo'limlarni yaratish, o'chirish va sozlash, ilg'or disk amallari. |
| FORMAT | Disk yoki bo'limni formatlash. | O'rnatilgan vositani to'liq tozalash va ma'lumot saqlashga tayyorlash. |
| FSUTIL | Fayl tizimi xususiyatlarini ko'rsatish va sozlash. | Fayl tizimi parametrlarini ilg'or ishlash. |
| LABEL | Tomning yorlig'ini yaratish, o'zgartirish yoki o'chirish. | Tomlarni tanib olish uchun qayta nomlash. |
| RECOVER | Shikastlangan disklardan ma'lumotlarni tiklash. | Defektli vositalardan ma'lumotlarni olishga harakat qilish. |
| VOL | Tom yorlig'i va seriya raqamini ko'rsatadi. | Disk haqida tezkor ma'lumot olish. |
## Buyruq qatorini sozlash
| Buyruq | Tavsif | Vazifa / qachon ishlatish |
| --- | --- | --- |
| CLS | Buyruq qatori ekranini tozalash. | Avvalgi barcha matnni olib tashlaydi, yangi ishni boshlash uchun qulay. |
| CMD | Yangi buyruq qatorini ishga tushirish. | Yangi CMD sessiyasini ochish, parallel ishlash uchun foydali. |
| COLOR | Konsol matni va fon rangini sozlash. | Buyruq qatori oynasining ko'rinishini o'zgartirish. |
| PROMPT | Buyruq qatori so'rovini o'zgartirish. | Buyruq kiritishdan oldin ko'rsatiladigan matnni sozlash. |
| TITLE | Joriy CMD oynasiga sarlavha berish. | Bir nechta oynalar bilan ishlaganda turli sessiyalarni belgilash qulay. |
| HELP | CMD ichki yordamini ko'rish. | Buyruqlarning tavsifi va ishlatilish misollarini olish. |
| EXIT | Buyruq qatoridan chiqish. | Joriy CMD sessiyasini yakunlash. |
## **FAQ - Ko'p beriladigan savollar**
- **CMD-da qaysi buyruqlar mavjudligini qanday bilish mumkin?**
**HELP **buyruqini kiriting – u Windows-ning asosiy buyruqlari ro'yxatini qisqa tavsif bilan chiqaradi. Ma'lum bir buyruq haqida batafsil ma'lumot olish uchun quyidagicha yozing:
```
buyruq /?
```
Masalan:
```
xcopy /?
```
- **Buyruqlarni administrator huquqlari bilan qanday ishlatish mumkin?**
Ikki variant mavjud: CMD-ni "Run as administrator" orqali oching. Yoki buyruqlarni quyidagicha bajarish:
```
runas /user:Administrator "buyruq"
```
Shuni yodda tutingki, administrator parolini kiritish talab qilinadi.
- **O'chirilgan fayllarni qanday tiklash mumkin?**
RECOVER buyruqi shikastlangan sektorlar ma'lumotlarini tiklashga yordam beradi, ammo oddiy o'chirilgan fayllarni tiklash uchun mos emas. Tasodifan faylni o'chirgan bo'lsangiz, quyidagilarni ishlatish tavsiya etiladi:
```
Windows File History
```
```
Shadow Copies
```
Recuva yoki Winfr (Windows File Recovery) kabi maxsus utilitalar.
- **Server mavjudligini qanday tekshirish mumkin?**
Quyidagi buyruqni ishlating:
```
ping manzil
```
U javob va yo'qolgan paketlar sonini ko'rsatadi. Agar server ICMP ga javob bermasa, tarmoq mavjudligini quyidagilar orqali tekshirish mumkin:
```
tracert manzil
```
yoki
```
telnet manzil port
```
(agar Telnet yoqilgan bo'lsa).
- **Ekranni qanday tozalash yoki CMD chiqishini qayta boshlash mumkin?**
Oynani tozalash uchun kiriting:
```
cls
```
- **Joriy IP-manzil va tarmoq konfiguratsiyasini qanday bilish mumkin?**
Kiriting:
```
ipconfig
```
MAC-manzillar va DNS-ni ham ko'rish uchun:
```
ipconfig /all
```
- **Ishlayotgan jarayonlar ro'yxatini qanday ko'rish mumkin?**
Quyidagilarni ishlating:
```
tasklist
```
Jarayonni tugatish uchun:
```
taskkill /IM nom.exe /F
```
- **Tarmoq resurslariga kirishni qanday tekshirish mumkin?**
Quyidagi buyruqni ishlatish mumkin:
```
net use
```
U faol tarmoq ulanishlarini ko'rsatadi va tarmoq diskini ulash imkonini beradi:
```
net use Z: \\server\share
```
## Xulosa
Windows buyruq qatori administratorlar, dasturchilar va ilg'or foydalanuvchilar uchun kuchli vosita bo'lib qolmoqda. Grafik interfeysda bir nechta harakat talab qiladigan vazifalar CMD-da bir-ikki buyruq bilan bajariladi. Asosiy vositalarni bilish — tarmoq diagnostikasi, fayllar va jarayonlar bilan ishlash — nosozliklarni tezroq aniqlash, rutin operatsiyalarni avtomatlashtirish va tizimni samarali boshqarishga yordam beradi.
Maqolada ko'rib chiqilgan buyruqlardan foydalanib, siz Windows bilan ishonchli ishlay olasiz, "kapot ostida" nima sodir bo'layotganini tushunasiz va paydo bo'lgan muammolarga tezkor javob bera olasiz. CMD o'z dolzarbligini yo'qotmagan, va uni qanchalik yaxshi o'rgansangiz, infratuzilmangiz bilan ishlash shunchalik oson bo'ladi. Agar siz endi boshlayotgan bo'lsangiz — tajriba qilishdan qo'rqmang va kundalik amaliyotda foydalanadigan buyruqlaringiz to'plamini asta-sekin kengaytiring.
https://serverspace.uz/support/help/komandnaya-stroka-windows-cmd-osnovnye-komandy-i-primery.mdПолный список основных команд CMD в Windows: работа с файлами, дисками, процессами и сетью. Удобная шпаргалка для новичков и администраторов.
**Командная строка Windows** — это универсальный инструмент взаимодействия с операционной системой, который позволяет выполнять системные операции быстрее и гибче, чем через графический интерфейс. С помощью консоли можно управлять файлами, контролировать процессы, работать с дисками и диагностировать сетевые подключения. В данном материале собраны основные команды CMD, которые чаще всего используются в повседневной работе системных администраторов и продвинутых пользователей. Каждая команда сопровождается кратким пояснением, что поможет быстрее освоиться и применять их на практике. В конце вы найдете блок с ответами на популярные вопросы.
## Работа с файлами и каталогами
-
**COPY** — создание копий файлов в указанной директории.
Позволяет переносить данные без удаления оригинала.
-
**DIR** — вывод списка содержимого текущей папки.
Используется для просмотра файлов и подпапок.
- **DEL** / **ERASE** — удаление выбранных файлов.
Применяется для очистки ненужных данных.
- **EDIT** — запуск встроенного текстового редактора.
Подходит для быстрой правки простых файлов.
- **CD** — переход между каталогами.
Основная команда для навигации в файловой системе.
- **EXPAND** — распаковка сжатых файлов.
Используется при работе с архивами Windows.
- **FC** — сравнение двух файлов.
Показывает отличия между версиями документов.
- **FIND** — поиск текста внутри файла.
Позволяет находить строки по ключевым словам.
- **MD** / **MAKEDIR** — создание новой папки.
Добавляет каталог в текущем пути.
- **MOVE** — перенос файлов.
Перемещает данные без дублирования.
- **PRINT** — вывод текста файла в консоль.
Используется для быстрого просмотра содержимого.
- **RD** / **RMDIR** — удаление каталога.
Работает только с пустыми папками.
- **REN** / **RENAME** — изменение имени объекта.
Поддерживает файлы и директории.
- **REPLACE** — замена файлов.
Обновляет старые версии новыми.
- **ROBOCOPY** — продвинутое копирование данных.
Устойчив к сбоям и подходит для больших объемов.
- **TREE** — отображение структуры каталогов.
Показывает иерархию папок в виде дерева.
- **TYPE** — вывод содержимого файла.
Аналог команды cat в Linux.
- **OPENFILES** — просмотр открытых файлов.
Полезно в сетевой среде.
- **XCOPY** — копирование с сохранением структуры.
Удобно для резервного копирования.
## Процессы и приложения
- **SCHTASKS** — управление планировщиком задач.
- **SHUTDOWN** — завершение работы или перезапуск.
- **TASKLIST** — список активных процессов.
- **TASKKILL** — принудительное завершение задач.
- **REG** — работа с системным реестром.
- **RUNAS** — запуск от имени другого пользователя.
## Диски и файловые системы
- **CHKDISK** — проверка диска на ошибки.
- **DEFRAG** — оптимизация размещения файлов.
- **CHKNTFS** — настройка проверки при старте.
- **COMPACT** — управление сжатием NTFS.
- **CONVERT** — преобразование FAT в NTFS.
- **DISKPART** — управление разделами.
- **FORMAT** — полная очистка носителя.
- **FSUTIL** — параметры файловой системы.
- **LABEL** — изменение метки тома.
- **RECOVER** — попытка восстановления данных.
- **VOL** — информация о томе.
## Сведения о системе
- **DATE** — установка даты.
- **TIME** — установка времени.
- **DRIVERQUERY** — информация о драйверах.
- **HOSTNAME** — имя компьютера.
- **SYSTEMINFO** — параметры системы.
- **VER** — версия Windows.
- **GPRESULT** — примененные политики.
- **GPUPDATE** — обновление политик.
## Сетевые команды
- **IPCONFIG** — параметры сетевых адаптеров.
- **PING** — проверка доступности хоста.
- **TRACERT** — маршрут пакетов.
- **NSLOOKUP** — DNS-запросы.
- **ROUTE** — таблица маршрутизации.
- **ARP** — IP и MAC адреса.
- **NETSH** — настройка сети.
- **GETMAC** — MAC-адрес адаптера.
- **TFTP** — передача файлов по TFTP.
## Настройка консоли
- **CLS** — очистка экрана.
- **CMD** — запуск новой сессии.
- **COLOR** — изменение цветов.
- **PROMPT** — настройка приглашения.
- **TITLE** — заголовок окна.
- **HELP** — справка.
- **EXIT** — выход из CMD.
## FAQ
- **Как посмотреть все доступные команды?
**Введите **HELP** или **HELP имя_команды**.
- **Как запускать команды с повышенными правами?
**Откройте CMD от имени администратора или используйте **RUNAS**.
- **Можно ли восстановить удаленные файлы?
**Иногда помогает **RECOVER**, но лучше использовать специализированные утилиты.
- **Как проверить доступность сервера?
**Самый простой способ — команда **PING**.
## Разворачивайте инфраструктуру в Serverspace Uzbekistan
Если вы хотите применять команды Windows CMD не только в теории, но и на практике — используйте облачные серверы от [Serverspace Uzbekistan](https://serverspace.uz/index.md). Платформа позволяет развернуть виртуальные машины с Windows и Linux за несколько минут и сразу приступить к администрированию через командную строку.
Почему[Serverspace Uzbekistan](https://serverspace.uz/services/vps-server/vps-uzbekistan.md):
- дата-центр в Узбекистане с низкой задержкой;
- почасовая оплата без переплат;
- быстрый запуск Windows Server;
- удобная панель управления и API;
- подходит для обучения, тестирования и продакшена.
Создавайте серверы, настраивайте сеть, диски и процессы с помощью CMD и PowerShell — и получайте реальный опыт работы с инфраструктурой в облаке.
https://serverspace.uz/support/help/ustanovka-i-nastrojka-wine-v-ubuntu-dlya-zapuska-windows-prilozhenij.mdПошаговая инструкция по установке и настройке Wine в Ubuntu 20+ для запуска Windows-приложений на сервере. Поддержка 32-битной архитектуры, настройка графического интерфейса и проверка работы Wine.
## Введение
В современной ИТ-инфраструктуре редко используется только одна операционная система. Серверы, рабочие станции и прикладные решения часто строятся на базе разных ОС, каждая из которых решает свои задачи. На практике это приводит к ситуации, когда часть программного обеспечения доступна только для Windows, тогда как серверная среда работает под управлением Linux.
Для решения этой задачи используется **Wine** — инструмент с открытым исходным кодом, который реализует уровень совместимости и позволяет запускать Windows-приложения в Unix-подобных системах, включая Ubuntu. Wine не является классическим эмулятором, а переводит системные вызовы Windows в понятные Linux-окружению, что положительно сказывается на производительности.
Необходимость использования Wine возникает в следующих случаях:
- **Различия архитектур**: Windows-приложения чаще всего рассчитаны на x86 и x64, тогда как Linux-серверы могут использовать разные архитектуры и окружения;
- **Несовместимость API**: Windows и Linux используют разные системные библиотеки и интерфейсы, из-за чего прямой запуск приложений невозможен;
- **Исполняемые файлы .exe**: стандартные Windows-приложения не поддерживаются Linux без слоя совместимости;
- **Отсутствие Linux-версий**: часть коммерческого или проприетарного ПО не имеет альтернатив под Linux.
Wine позволяет частично решить эти проблемы, однако важно учитывать, что стопроцентная совместимость и стабильность работы возможны не для всех приложений. В серверных сценариях Wine чаще используется для отдельных задач, тестирования или запуска специализированного ПО.
## Требования к установке
Перед установкой Wine убедитесь, что система соответствует минимальным требованиям:
- Права **root** или пользователь с доступом к sudo;
- Ubuntu версии 20.04 или новее;
- Базовые навыки работы с Linux-терминалом;
- Подключение к сети Интернет;
- Не менее 30 ГБ свободного дискового пространства и 2 CPU-ядра.
## Установка Wine в Ubuntu
На первом этапе обновим системные пакеты, чтобы избежать конфликтов зависимостей:
```bash
apt update && apt upgrade -y
```
Wine активно использует 32-битные библиотеки. Даже на 64-битных системах требуется поддержка архитектуры **i386**. Добавим её вручную:
```
dpkg --add-architecture i386
```
После этого можно переходить к установке самого Wine:
```bash
apt install wine -y
```
В процессе система автоматически предложит установить дополнительные зависимости. Подтвердите установку, нажав **Y** и **Enter**.
## Установка графического интерфейса
Часть Windows-приложений требует наличия графической среды. Если сервер используется без GUI, потребуется установить оболочку рабочего стола. В качестве примера используем GNOME:
```
add-apt-repository ppa:shemgp/gnome-40
```
```bash
apt update && apt install mutter gnome-session gnome-shell -y
```
После завершения установки рекомендуется проверить корректность установки Wine:
```
wine --version
```
Если версия Wine отображается корректно и ошибок не возникает, установка выполнена успешно.
## Создание отдельного пользователя
Для повышения безопасности не рекомендуется работать под учетной записью root. Создадим отдельного пользователя и добавим его в группу sudo:
```
adduser jhon && usermod -aG sudo jhon
```
Это позволит изолировать рабочее окружение и снизить риски при работе с приложениями Windows.
## Подключение к графическому интерфейсу
Для работы с графической средой можно использовать веб-консоль сервера. Достаточно открыть панель управления, выбрать нужный сервер и запустить **Web-console**, после чего откроется GUI-интерфейс системы.
Альтернативные способы подключения к графической среде:
- **VNC** — удалённый доступ к рабочему столу Linux;
- **RDP** — подключение через протокол удалённого рабочего стола (например, с использованием xrdp);
- **X11** — запуск графических приложений с выводом окон на локальную машину;
- **SPICE** — протокол удалённого доступа, часто используемый в виртуализированных средах;
- **NX** — оптимизированный протокол удалённого доступа от NoMachine.
Выбор способа подключения зависит от сценария использования и доступных ресурсов.
## Первичная настройка Wine
После входа в графическую среду откройте терминал и выполните команду:
```
winecfg
```
Откроется окно конфигурации Wine, где можно:
- выбрать версию Windows для режима совместимости (вплоть до Windows 10);
- настроить графику и аудиоустройства;
- добавить исполняемые файлы Windows-приложений;
- управлять библиотеками и компонентами.
После сохранения настроек можно приступать к установке и запуску нужных Windows-приложений.
## Вывод
Wine в Ubuntu позволяет запускать Windows-приложения без использования виртуальных машин и полноценной установки Windows. Это удобное решение для отдельных задач, тестирования и работы с ПО, не имеющим Linux-версии.
При этом важно учитывать ограничения совместимости и заранее проверять поддержку нужных приложений. Для задач, где критичны стабильность и производительность, предпочтение стоит отдавать нативным Linux-решениям, а Wine использовать как вспомогательный инструмент.
## FAQ
- **Можно ли использовать Wine на сервере без графического интерфейса?**
Да, Wine можно установить и использовать на сервере без GUI, однако большинство Windows-приложений требуют графическую среду. В таких случаях потребуется установка рабочего стола (например, GNOME) и подключение через VNC, RDP или веб-консоль.
- **Какие версии Ubuntu поддерживаются для установки Wine?**
Wine корректно работает на Ubuntu 20.04 и более новых версиях. Для стабильной работы рекомендуется использовать актуальные LTS-релизы и регулярно обновлять систему.
- **Зачем нужна поддержка 32-битной архитектуры i386?**
Многие Windows-приложения по-прежнему используют 32-битные библиотеки. Без добавления архитектуры i386 часть программ не запустится или будет работать некорректно даже на 64-битной системе.
- **Подходит ли Wine для постоянной работы с коммерческими Windows-приложениями?**
Wine подходит для запуска отдельных приложений и тестирования, но не гарантирует 100% совместимость и стабильность. Перед использованием в продакшене рекомендуется проверить работу конкретного ПО и оценить риски.
- **Что выбрать: Wine или виртуальную машину с Windows?**
Wine потребляет меньше ресурсов и не требует лицензии Windows, но имеет ограничения по совместимости. Виртуальная машина обеспечивает более предсказуемую работу, но требует больше ресурсов и отдельной ОС.
## Где развернуть сервер для работы с Wine
Для стабильной работы Wine важно, чтобы сервер имел достаточный объём ресурсов, быстрый диск и удобный доступ к графическому интерфейсу. На платформе Serverspace вы можете развернуть Ubuntu-сервер за несколько минут с почасовой оплатой и гибкой конфигурацией ресурсов.
Сервера в **[Serverspace.uz](https://serverspace.uz/index.md)** подходят для тестирования и запуска Windows-приложений через Wine: доступна веб-консоль для работы с GUI, масштабирование CPU и RAM без переустановки системы и стабильное сетевое соединение. Это удобно, если вам нужно быстро запустить среду под конкретное ПО без лишних затрат и сложной настройки инфраструктуры.
https://serverspace.uz/support/help/ustanovka-i-nastrojka-rdp-na-debian-podklyuchenie-k-linux-serveru-iz-windows.mdПошаговая инструкция по настройке RDP на Linux-сервере Debian 12: установка xrdp, открытие порта 3389, подготовка графической среды и подключение к серверу по RDP с компьютера под управлением Windows.
## Введение
Удалённый доступ к серверу обычно ассоциируется с SSH и командной строкой, но в ряде задач удобнее использовать графический интерфейс: например, когда нужно настроить ПО с GUI, проверить работу приложения "вживую" или выполнить действия, которые сложнее повторить в терминале. Для таких сценариев подходит RDP (Remote Desktop Protocol) — протокол, который позволяет подключаться к удалённому рабочему столу и управлять сервером так, будто вы работаете за ним локально.
На Linux-серверах RDP чаще всего реализуется через **xrdp** — серверный компонент, который принимает RDP-подключения от клиентов (например, стандартного "Подключения к удалённому рабочему столу" в Windows). В этой инструкции разберём настройку RDP на **Debian 12** и подключение к серверу из **Windows**.
Почему это может быть полезно:
- **Удобство**: интерфейс понятен тем, кто привык к Windows и GUI;
- **Быстрые задачи**: настройка приложений, просмотр логов, работа с файлами через графические инструменты;
- **Меньше порог входа**: для части пользователей проще "кликнуть", чем разбираться с командами;
- **Параллельная работа**: можно держать несколько окон и выполнять разные действия одновременно.
При этом важно помнить: GUI потребляет больше ресурсов, чем CLI, а открытие RDP порта требует аккуратной настройки безопасности (ограничение доступа по IP, парольная политика, firewall).
## Требования к установке
- Root—права или доступ к sudo;
- Debian 12 или более поздняя версия;
- Подключение к Интернету;
- Открытый порт **3389** (или другой, если вы меняете порт RDP);
- Рекомендуется: установленная графическая среда (GUI), если нужен полноценный рабочий стол.
## Установка
Сначала обновим индексы пакетов и установленные компоненты системы:
```bash
apt update && apt upgrade -y
```
Далее установим RDP-сервер для Linux — **xrdp**. На Debian пакет обычно доступен из стандартных репозиториев:
```bash
apt install xrdp -y
```
После установки проверим статус службы и включим автозапуск:
```bash
systemctl enable xrdp --now
```
```bash
systemctl status xrdp
```
Если служба активна (active/running), можно переходить к настройкам сети и подключению.
## Настройка порта и firewall
По умолчанию RDP использует порт **3389**. Убедитесь, что фаервол пропускает входящие подключения.
Если вы используете UFW:
```
ufw allow 3389/tcp
```
```
ufw status
```
Если у вас другой firewall (например, nftables/iptables), добавьте правило, разрешающее входящий TCP-трафик на 3389.
Рекомендация по безопасности: если есть возможность, ограничьте доступ к порту 3389 по IP (разрешите подключение только со своего адреса или VPN).
## Графическая среда на Debian
RDP-подключение чаще всего подразумевает рабочий стол. Если GUI на сервере отсутствует, подключение может завершаться ошибками или вы получите "пустую" сессию. Для лёгкого варианта на сервере часто используют XFCE.
Установка XFCE и вспомогательных пакетов:
```bash
apt install xfce4 xfce4-goodies -y
```
Чтобы xrdp запускал XFCE-сессию, создайте (или отредактируйте) файл для пользователя, под которым будете подключаться:
```
echo "startxfce4" > ~/.xsession
```
Важно: подключаться по RDP лучше не под root, а под отдельным пользователем с правами sudo при необходимости.
## Подключение к серверу по RDP из Windows
На компьютере с Windows откройте стандартный RDP-клиент: "Подключение к удалённому рабочему столу" (Remote Desktop Connection).
Далее:
- в поле адреса укажите IP сервера или доменное имя;
- нажмите **Connect**;
- введите логин и пароль пользователя Linux, под которым разрешена сессия;
- дождитесь запуска рабочего стола.
Если подключение не устанавливается, проверьте:
- доступность порта 3389 (firewall/SG/ACL);
- работает ли служба xrdp (systemctl status xrdp);
- установлен ли GUI и корректно ли задана сессия (например, XFCE через ~/.xsession);
- хватает ли ресурсов сервера (CPU/RAM/диск).
## Вывод
RDP — удобный способ получить доступ к графическому интерфейсу на Linux-сервере, особенно если часть задач проще выполнять в GUI или если администрирование ведётся с компьютера под Windows. На Debian 12 настройка обычно сводится к установке **xrdp**, подготовке графической среды и открытию порта **3389**.
При этом для серверных сценариев важно учитывать безопасность: ограничивайте доступ к RDP по IP, используйте сложные пароли и по возможности подключайтесь через VPN. Для задач, где GUI не требуется, командная строка по SSH остаётся более лёгким и безопасным вариантом, особенно когда важны автоматизация и контроль.
## FAQ
- **Можно ли подключаться по RDP к Debian без установленного графического интерфейса?**
Формально RDP-сервер xrdp можно установить и без GUI, но в таком случае вы не получите полноценный рабочий стол. Для корректной работы RDP рекомендуется установить лёгкую графическую среду (например, XFCE), иначе сессия может завершаться ошибкой или отображаться пустой экран.
- **Безопасно ли использовать RDP для доступа к Linux-серверу?**
Сам по себе RDP не является небезопасным, однако порт 3389 часто сканируется. Рекомендуется ограничить доступ по IP, использовать сложные пароли, отключить вход под root и по возможности подключаться через VPN или закрытую сеть.
- **Можно ли изменить стандартный порт RDP?**
Да, порт RDP можно изменить в настройках xrdp. Это не заменяет полноценную защиту, но помогает снизить количество автоматических попыток подключения и сканирования.
- **Что лучше использовать: RDP или SSH?**
SSH предпочтительнее для администрирования и автоматизации, так как он потребляет меньше ресурсов и проще в защите. RDP удобен для задач, где требуется графический интерфейс — настройка ПО, работа с GUI-приложениями или обучение.
- **Поддерживает ли RDP одновременные подключения нескольких пользователей?**
Да, xrdp поддерживает одновременные пользовательские сессии, но количество подключений ограничено ресурсами сервера (CPU, RAM) и установленной графической средой.
## Где развернуть сервер для RDP-доступа
Для комфортной работы по RDP важно, чтобы сервер имел достаточный запас ресурсов и стабильное сетевое соединение. На платформе Serverspace вы можете развернуть Linux-сервер с Debian за несколько минут и сразу получить доступ к управлению через удобную веб-панель.
На [Serverspace.uz](https://serverspace.uz/index.md) доступны облачные серверы с почасовой оплатой, быстрым масштабированием CPU и RAM и встроенной веб-консолью, что упрощает первоначальную настройку RDP и графической среды. Это удобный вариант для администрирования серверов из Windows, тестирования GUI-приложений и работы с Linux без сложной сетевой конфигурации.
https://serverspace.uz/about/blog/waf-dlya-veb-prilozhenij-zashhita-sajtov-ot-owasp-top-10.mdОбеспечьте безопасность своих веб-приложений с Serverspace WAF + CDN. Блокируйте SQL-инъекции, XSS, брутфорс и другие угрозы, ускоряйте сайт и защищайте данные всего за несколько кликов.
Web-приложения — это сердце современного бизнеса. Заказы, платежи, регистрация пользователей, хранение данных и внутренняя коммуникация — всё проходит через них. Чем ценнее ваш сервис, тем больше он привлекает злоумышленников.
Классические DDoS-атаки уже не являются главной угрозой. Современные атакующие используют более умные методы: **SQL-инъекции, XSS, брутфорс по API и credential stuffing**. Автоматизированные боты могут сканировать тысячи сайтов за считанные минуты в поисках уязвимых мест.
## Что такое WAF?
[Web Application Firewall (WAF)](https://serverspace.uz/services/waf.md) — это как регулировщик трафика для вашего HTTP(S)-трафика. Он проверяет каждый запрос и решает, пропустить его или заблокировать, прежде чем он достигнет вашего приложения.
В отличие от сетевого фаервола, который фильтрует только IP-адреса и порты, WAF _понимает_ структуру веб-трафика. Например:
- SQL-строка, введённая в поисковую форму вместо обычного текста.
- Сотни попыток ввода пароля в секунду на форме авторизации.
Оба случая будут отмечены и заблокированы до того, как достигнут базу данных или приложение.
## Типы атак, которые останавливает WAF
- **SQL Injection** — вставка вредоносных запросов для кражи или изменения данных.
- **XSS (Cross-Site Scripting)** — внедрение скриптов, которые захватывают сессии или крадут данные пользователей.
- **Brute Force & Session Hijacking** — бесконечные попытки входа и кража токенов.
- **API-атаки** — перегрузка или эксплуатация API-эндпоинтов.
- **Application-Layer DDoS** — атаки на логику сайта, а не на сеть.
- **Эксплойты CMS и фреймворков** — использование известных уязвимостей популярных систем.
С установленным WAF эти угрозы фильтруются до того, как они смогут повредить приложение, украсть данные или снизить время работы сервиса.
## Как работает WAF
- **Анализ по сигнатурам** — сопоставление с известными шаблонами атак.
- **Поведенческий анализ** — выявление аномальной активности, например, наплыва логинов.
- **Машинное обучение** — изучает профиль трафика вашего приложения, уменьшая количество ложных срабатываний.
- **Фильтрация в реальном времени** — блокирует вредоносные запросы до того, как они достигнут сервера.
## WAF vs. Без WAF: Сравнение
| Сценарий | Без WAF | С WAF |
| --- | --- | --- |
| SQL Injection | Запрос попадает в БД, данные украдены | Блокировка на границе |
| XSS-атака | Выполняется вредоносный скрипт, захватываются cookies | Фильтруется до загрузки страницы |
| Брутфорс | Неограниченные попытки входа | IP блокируется при подозрительной активности |
| API-флуд | Массовые запросы перегружают сервис | Аномальный трафик блокируется на входе |
| DDoS на уровне приложения | Сайт падает, теряется доход | Подозрительный трафик фильтруется |
| Эксплойты CMS | Zero-day атака до выхода патча | Распространённые уязвимости блокируются правилами |
## Почему WAF важен сейчас
Отчёты по безопасности показывают очевидную картину: веб-приложения находятся под постоянным прицелом. Миллионы атак на API, миллиарды событий безопасности и рекордные наплывы запросов демонстрируют, почему **защита WAF больше не является опциональной**.
## CDN + WAF: Идеальное сочетание
[Сеть доставки контента (CDN)](https://serverspace.uz/services/cdn.md) ускоряет производительность и снижает нагрузку на сервер. WAF фильтрует веб-угрозы. Вместе они обеспечивают скорость и безопасность в одном пакете. В [Serverspace](https://serverspace.uz/index.md) вы можете активировать оба инструмента прямо в панели управления за считанные минуты — без дополнительного ПО.
## Типичные ошибки при настройке WAF
- Оставление стандартных настроек без изменений.
- Думать, что WAF решает все проблемы (он не заменяет патчи).
- Игнорирование логов, которые показывают текущие атаки.
- Пропуск обновлений правил.
- Сразу включать блокировку без настройки.
## Бизнес-преимущества WAF
- Снижение риска простоя и утечки данных.
- Соответствие стандартам, например **PCI DSS**.
- Меньше нагрузки на IT и dev-команды.
- Бесшовная интеграция с **CDN безопасностью**.
**Вывод:** WAF — это необходимый инструмент для любого веб-приложения. В сочетании с ускорением CDN он поддерживает ваш сайт быстрым, устойчивым и защищённым от современных угроз, включая OWASP Top-10 и другие.
https://serverspace.uz/about/blog/top-5-oblachnyh-provajderov-v-uzbekistane-2026-rejting-i-sravnenie-czen.mdТоп-5 облачных провайдеров Узбекистана в 2026 году: сравнение VPS/VDS и облаков, цены, плюсы, дата-центры в Ташкенте, поддержка, безопасность и автоматизация.
В 2026 году рынок облачных и хостинг услуг Узбекистана продолжает активно развиваться: компании всё чаще переводят инфраструктуру в облако, запускают новые цифровые продукты и усиливают требования к стабильности, безопасности и скорости доступа. Дополнительным драйвером выступают регуляторные требования к обработке персональных данных — для многих проектов важно учитывать требования законодательства о персональных данных: в ряде случаев базы персональных данных граждан Республики Узбекистан должны быть локализованы на территории Узбекистана. Конкретные требования зависят от категории данных и сценария обработки.
Среди ключевых факторов выбора облачного провайдера и хостинга в Узбекистане — наличие локальной площадки (Ташкент), прозрачная тарификация, поддержка автоматизации (API, IaC), а также готовность провайдера работать с бизнесом: SLA, документы, поддержка 24/7 и понятные условия обслуживания.
## Критерии, по которым составлялся рейтинг хостинга и облачных провайдеров:
- **Локальная инфраструктура и низкая задержка.** Для проектов с аудиторией в Узбекистане критична доступность площадки в стране и возможность получать стабильную скорость доступа (включая локальные маршруты и пиринг). Это снижает латентность и повышает качество работы веб-сервисов, CRM, маркетплейсов и корпоративных систем.
- **Производительность и стабильность.** Важны современные серверные платформы, быстрые диски, предсказуемая работа под нагрузкой и отказоустойчивость. Для бизнеса это означает меньше простоя и более стабильный пользовательский опыт.
- **Прозрачные тарифы и гибкая оплата.** Оптимально, когда можно быстро масштабироваться и платить только за фактическое потребление (pay-as-you-go), без скрытых платежей и сложных условий.
- **Соответствие требованиям по данным и безопасности.** Для многих компаний важно, чтобы провайдер позволял реализовать требования к хранению персональных данных граждан Узбекистана на территории страны, а также предлагал базовые меры защиты: сегментацию сети, брандмауэры, резервное копирование, мониторинг и DDoS-защиту (при необходимости).
- **Инструменты автоматизации и DevOps-возможности.** API, Terraform/Infrastructure as Code, Kubernetes/контейнеризация, быстрый выпуск ресурсов и шаблоны развертывания — всё это ускоряет работу команд разработки и снижает операционные затраты.
- **Техническая поддержка и качество сервиса.** Скорость реакции и компетентность поддержки критичны, особенно для продакшн-нагрузок и миграций. Бизнесу важны понятные регламенты и возможность получить помощь 24/7.
Исходя из этих параметров, в рейтинг вошли пять заметных провайдеров, которые закрывают основные сценарии бизнеса в Узбекистане: [Serverspace](https://serverspace.uz/index.md), [Uztelecom Cloud](https://cloud.uztelecom.uz/), [East Telecom (XCloud)](https://etc.uz/), [Data Center UZINFOCOM (dc.uz)](https://dc.uz/) и [BILLURCOM](https://www.billur.com/).
## Serverspace
Одним из сильных решений для бизнеса в Узбекистане является **[Serverspace](https://serverspace.uz/index.md) **— облачный провайдер с быстрым запуском VPS/VDS, прозрачной моделью оплаты и удобной панелью управления. Платформа подходит для стартапов, DevOps-команд и компаний, которым нужно быстро развернуть инфраструктуру и масштабировать её по мере роста — без сложных закупок и долгих согласований.
Отдельный плюс для практических задач — фокус на автоматизации и понятной экономике: вы можете развернуть сервер под конкретную нагрузку, протестировать гипотезу, а затем безболезненно увеличить ресурсы, не переплачивая за "запас".
### Основные преимущества:
- **Оплата по факту потребления (pay-as-you-go)**
Гибкая тарификация позволяет оплачивать только реально использованные ресурсы. Это удобно для проектов с переменной нагрузкой, MVP, маркетинговых кампаний и сезонных пиков.
- **Быстрое развертывание VPS/VDS**
Сервер можно поднять за 40 секунд — это ускоряет запуск проектов, тестирование и миграции.
- **Бесплатный трафик без скрытых доплат**
Для многих сценариев это заметно упрощает планирование бюджета: вы не получаете "сюрпризов" в виде счета за передачу данных.
- **Автоматизация для DevOps**
Поддержка API и инфраструктурных подходов (IaC) помогает ускорить развёртывание, стандартизировать окружения и снизить ручные ошибки.
- **Подходит для широкого набора задач**
Хостинг сайтов и приложений, корпоративные сервисы, тестовые окружения, базы данных, интеграции и микросервисы — всё это можно быстро собрать на VPS-инфраструктуре.
- **Поддержка 24/7**
Важно для проектов, которые работают без выходных и требуют быстрого реагирования при инцидентах.
[Serverspace](https://serverspace.uz/index.md) — хороший выбор, если вам нужно быстро запуститься в Узбекистане и при этом сохранить гибкость: масштабирование по требованию, предсказуемая стоимость и удобство управления инфраструктурой.
## Uztelecom Cloud
[Uztelecom Cloud](https://cloud.uztelecom.uz/) — облачная платформа крупного телеком-оператора, ориентированная на проекты, которым важна локальная инфраструктура и сервисная экосистема. Это вариант для компаний, которые предпочитают работать с национальным провайдером и разворачивать сервисы в рамках локального облака.
### Основные преимущества:
- **Локальная облачная платформа под бизнес-задачи**
Подходит для корпоративных сервисов, веб-приложений и инфраструктурных компонентов, которые нужно размещать в стране.
- **Объектное хранилище S3 и облачные сервисы**
Удобно для хранения бэкапов, медиа-контента, логов, архивов и интеграций с приложениями.
- **Managed Kubernetes и каталог облачных сервисов**
Ускоряет запуск типовых решений и упрощает управление контейнерными приложениями.
- **Возможности для масштабирования**
Подходит компаниям, которые планируют рост и хотят развивать инфраструктуру без капитальных затрат на железо.
Uztelecom Cloud чаще выбирают организации, которым важен локальный контур и инфраструктурная поддержка крупного оператора, а также привычная корпоративная модель взаимодействия.
## East Telecom (XCloud)
[East Telecom](https://etc.uz/) развивает направление облачных услуг под брендом XCloud — это облачные сервисы, включающие хранение данных и размещение серверов в дата-центрах. Такой формат особенно интересен компаниям, которым важно хранить данные внутри Узбекистана и получить инфраструктуру от крупного телеком-игрока.
### Основные преимущества:
- **Облачные сервисы с размещением данных внутри страны**
Подходит для проектов с требованиями к локализации данных и корпоративных систем.
- **Телеком-экспертиза и инфраструктурная база**
Часто это означает стабильные каналы связи и удобство интеграции сетевых сервисов под бизнес-задачи.
- **Формат B2B и проекты "под ключ"**
Полезно для компаний, которым важны договорные условия, SLA и сопровождение на стороне провайдера.
East Telecom (XCloud) обычно выбирают корпоративные клиенты, которым важна локальная площадка и инфраструктурный партнёр с сильной телеком-составляющей.
## Data Center UZINFOCOM (dc.uz)
[dc.uz](https://dc.uz/) — дата-центр и хостинговые услуги от UZINFOCOM: VPS, веб-хостинг и co-location. Это практичный вариант для компаний, которым нужен классический хостинг/виртуальные серверы и возможность размещать оборудование в дата-центре.
### Основные преимущества:
- **VPS и co-location в одном контуре**
Можно начать с VPS, а затем перейти к более "тяжёлым" сценариям с размещением собственного оборудования.
- **Упор на мониторинг и поддержку**
Полезно для бизнес-сервисов, где важны стабильность и администрирование по регламенту.
- **Подходит для сайтов, корпоративных сервисов и гос/окологос-проектов**
Часто выбирают организации, которым важно размещение внутри страны и понятная сервисная модель.
dc.uz — хороший "универсальный" вариант для задач хостинга и виртуальных серверов внутри Узбекистана, включая сценарии с последующим ростом инфраструктуры.
## BILLURCOM
[BILLURCOM](https://www.billur.com/) — заметный локальный хостинг-провайдер, предлагающий VPS/VDS и выделенные серверы. Подходит тем, кто ищет классический хостинг-подход: тарифные планы, фиксированные ресурсы и инфраструктуру в Ташкенте.
### Основные преимущества:
- **VPS/VDS и выделенные серверы под разные нагрузки**
Можно подобрать конфигурацию под сайт, корпоративное приложение, 1С-интеграции, базы данных и другие сервисы.
- **Понятные тарифы и дополнительные опции**
Удобно, если вы предпочитаете фиксированный план и заранее определённые параметры сервера.
- **Локальная инфраструктура**
Актуально для проектов, где важна минимальная задержка для пользователей внутри страны.
BILLURCOM подойдёт компаниям, которым нужен классический VPS/VDS-хостинг с локальным размещением и выбором планов под разные бюджеты.
## Выводы
Рынок хостинга и облака Узбекистана в 2026 году предлагает решения под разные сценарии — от классического VPS и веб-хостинга до управляемых облачных сервисов и корпоративных проектов с локализацией данных.
Если вам важны скорость запуска, гибкость, прозрачная модель оплаты и удобное управление инфраструктурой, **[Serverspace](https://serverspace.uz/index.md) **выглядит одним из наиболее практичных вариантов для бизнеса, стартапов и DevOps-команд.
[Uztelecom Cloud](https://cloud.uztelecom.uz/) и [East Telecom (XCloud)](https://etc.uz/) чаще выбирают компании, которым важна локальная инфраструктура и формат сотрудничества с крупными операторами.
[dc.uz (UZINFOCOM)](https://dc.uz/) и [BILLURCOM](https://www.billur.com/) закрывают популярные сценарии хостинга и виртуальных серверов внутри страны — от сайтов до корпоративных сервисов.
## Сводная таблица
| Провайдер | Стоимость минимальной конфигурации | Основные преимущества | Кому подойдет |
| --- | --- | --- | --- |
| Serverspace | от 2 200 UZS/день | Pay-as-you-go, бесплатный трафик, быстрый запуск VPS/VDS, удобная панель, автоматизация (API/IaC), поддержка 24/7 | Стартапы, DevOps, малый и средний бизнес, разработчики |
| Uztelecom Cloud | по калькулятору (pay-as-you-go) | Локальное облако, S3-хранилище, Managed Kubernetes, маркетплейс, корпоративный формат | Компании, которым важно локальное размещение и облачные сервисы "из коробки" |
| East Telecom (XCloud) | по запросу | Облачные сервисы и хостинг в дата-центрах, локализация данных внутри страны, B2B-подход | Корпоративные клиенты, проекты с требованиями к хранению данных в Узбекистане |
| Data Center UZINFOCOM (dc.uz) | по тарифам/по запросу | VPS, веб-хостинг и co-location, мониторинг и поддержка, локальная инфраструктура | Сайты, корпоративные сервисы, проекты с размещением внутри страны |
| BILLURCOM | от 161 000 UZS/мес. | VPS/VDS и dedicated-серверы, понятные планы, локальная инфраструктура, опции под разные нагрузки | Малый и средний бизнес, проекты на VPS/VDS, классический хостинг-подход |
https://serverspace.uz/about/blog/top-5-cdn-v-uzbekistane-v-2026-godu-luchshie-provajdery-dlya-uskoreniya-sajta.mdРейтинг CDN для проектов в Узбекистане: сравнение Serverspace, Cloudflare, Gcore, CDNvideo и EdgeNext по PoP в Ташкенте, скорости, безопасности, интеграциям и сценариям использования.
С развитием интернета и ростом количества цифрового контента скорость загрузки и доступность веб-ресурсов стали критически важными факторами и для бизнеса в Узбекистане. Медленные страницы, "тяжёлые" изображения и видео, пики трафика во время акций — всё это напрямую влияет на конверсию, удержание и расходы на инфраструктуру. Решать задачу ускорения и стабильной доставки контента помогает **CDN (Content Delivery Network)** — сеть распределённых серверов, которые отдают пользователю контент с ближайшей точки присутствия, снижая задержки и разгружая ваш origin-сервер.
## Как работает CDN?
CDN кэширует статический контент (изображения, CSS/JS, файлы, иногда видео-сегменты) на периферийных серверах по миру и автоматически выбирает ближайшую точку к пользователю. В результате запросы не "летят" каждый раз до вашего основного сервера — часть нагрузки берут на себя edge-узлы, что ускоряет загрузку и повышает устойчивость к всплескам трафика.
Для Узбекистана отдельно важно наличие точек присутствия (PoP) в Ташкенте и/или рядом (например, в Алматы или Дубае): чем ближе CDN-узел к пользователю, тем ниже задержка и выше стабильность.
## Зачем CDN нужен бизнесу в Узбекистане?
- **Быстрее сайт и приложения** — выше конверсия и меньше отказов, особенно на мобильном интернете.
- **Стабильность при пиковых нагрузках** — CDN сглаживает "всплески", раздавая кэш с edge-узлов.
- **Экономия на origin-инфраструктуре** — меньше нагрузка на сервер и канал, ниже требования к "железу".
- **Безопасность** — многие CDN-провайдеры дают базовую защиту от DDoS, WAF, rate limiting и TLS.
- **Удобство для DevOps** — API, логика кэширования, правила маршрутизации и интеграции со сториджем.
## Как выбрать CDN: короткий чек-лист
- **География PoP**: есть ли Ташкент и/или ближайшие точки (ЦА/Ближний Восток).
- **Кэш и правила**: TTL, purge/ban, cache-key, игнорирование query-параметров, компрессия.
- **Протоколы**: HTTP/2/HTTP/3, TLS, поддержка modern cipher suites.
- **Безопасность**: DDoS-защита, WAF, bot-management, rate limiting.
- **Интеграции**: S3/объектное хранилище, origin shielding, приватные origin, CDN-логирование.
- **Тарифы**: понятная цена за трафик/запросы, минимальные платежи, условия для бизнеса.
## ТОП-5 CDN-провайдеров для проектов в Узбекистане
Ниже — 5 заметных вариантов, которые чаще всего рассматривают компании для ускорения сайтов и приложений в Узбекистане: от глобальных сетей с PoP в Ташкенте до практичных решений с близкими точками присутствия и удобной панелью.
- **[Serverspace](https://serverspace.uz/services/cdn.md)** — удобный CDN для бизнеса и DevOps, который можно подключить и настроить в панели за несколько минут. У Serverspace уже есть точки присутствия в нескольких регионах, включая ближайшие к Узбекистану площадки — например, Алматы и Дубай, что помогает ускорять доставку контента для аудитории в Центральной Азии. Также компания готовит расширение сети: в планах — запуск PoP в Ташкенте, чтобы ещё сильнее снизить задержку для пользователей внутри Узбекистана.
**Почему выбирают:**
быстрое подключение и управление через панель;
- интеграции и сценарии для автоматизации;
- возможность связки CDN со сториджем (в т.ч. S3-сценарии);
- WAF может работать "перед" вашим сервером на уровне CDN-контура, фильтруя запросы до попадания на origin.
- **[Cloudflare](https://www.cloudflare.com/network/)** — один из самых известных CDN-провайдеров в мире. Cloudflare официально добавлял Ташкент в список новых городов своей сети, что важно для локальной задержки в Узбекистане**Подходит для:** сайтов, интернет-магазинов, API и приложений, где важны скорость, безопасность и гибкие правила кэширования.
- **[Gcore CDN](https://gcore.com/cdn)** — международная CDN-сеть, которую часто выбирают за сочетание производительности и инструментов для автоматизации. В публичных обзорах PoP-географии для Узбекистана указывается присутствие в Ташкенте.**Подходит для:** проектов с активной DevOps-практикой, медиа-контентом и динамическими правилами доставки.
- **[CDNvideo](https://www.cdnvideo.ru/)** — провайдер, ориентированный на ускорение доставки контента и медиа-сценарии. В обзорах PoP по Узбекистану указывается точка присутствия в Ташкенте.**Подходит для:** сайтов и контент-проектов, где важна стабильная раздача "тяжёлых" материалов и видео-сегментов.
- **[EdgeNext](https://www.edgenext.com/)** — международный CDN-провайдер с фокусом на расширение edge-присутствия. В подборках CDN для Узбекистана указывается наличие PoP в Ташкенте.**Подходит для:** проектов, которым критична локальная точка доставки в стране и гибкая маршрутизация.
## Сводная таблица
| Провайдер | PoP в Узбекистане | Основные преимущества | Кому подойдет |
| --- | --- | --- | --- |
| Serverspace | Ташкент — в планах (ожидается запуск) | Быстрое подключение, понятная панель, интеграции (в т.ч. CDN+S3), WAF в CDN-контуре | Сайты/приложения, SMB, DevOps-команды, проекты с понятной экономикой и быстрым запуском |
| Cloudflare | Ташкент | Глобальная сеть, скорость, безопасность, гибкие правила кэширования | От лендингов и e-commerce до API и приложений с требованиями к безопасности |
| Gcore | Ташкент | CDN + DevOps-инструменты и автоматизация, удобные настройки доставки | Проекты с высокой нагрузкой, медиа, команды с IaC/автоматизацией |
| CDNvideo | Ташкент | Ускорение доставки контента и медиа-сценарии | Контент-платформы, сайты с "тяжёлой" статикой, потоковые сценарии |
| EdgeNext | Ташкент | Фокус на edge-присутствие и доставку "ближе к пользователю" | Сервисы с аудиторией в Узбекистане, где важна минимальная локальная задержка |
https://serverspace.uz/about/blog/virtualnyj-hosting-ili-vps-chto-vybrat-dlya-sajta.mdСравниваем виртуальный хостинг и VPS: отличия по ресурсам, безопасности и управлению. Подскажем, какой вариант выбрать под сайт, бизнес и рост нагрузки в Узбекистане.
В сфере IT не существует универсальных решений, которые одинаково хорошо подходят всем. Однако при выборе **web-хостинга** можно найти оптимальный формат, если отталкиваться от задач проекта, ожидаемой нагрузки и требований к управлению. Сегодня сайт есть почти у каждого бизнеса, и именно хостинг во многом определяет скорость загрузки, стабильность работы и доступность сервиса для пользователей.
На рынке представлены разные модели размещения: виртуальный хостинг, **VPS-хостинг**, выделенные серверы и colocation. Они различаются уровнем изоляции, гибкостью настройки и стоимостью. Ниже разберём основные форматы и их применение.
## Основные форматы веб-хостинга
Типы хостинга отличаются тем, какие ресурсы получает клиент и насколько глубоко он может управлять серверной средой. Таблица ниже отражает актуальную картину и помогает быстро сравнить основные варианты.
| | Виртуальный хостинг | VPS-хостинг | Colocation | Выделенный сервер |
| --- | --- | --- | --- | --- |
| Типовые сценарии | Небольшие сайты, лендинги, личные блоги | Интернет-магазины, CRM, корпоративные сайты | Крупные онлайн-проекты и сервисы | Высоконагруженные системы и приложения |
| Модель оплаты | Общее дисковое пространство | Виртуальный сервер с выделенными ресурсами | Размещение собственного оборудования | Аренда физического сервера |
| Уровень контроля | Минимальный, общая среда | Полный доступ к ОС и настройкам | Физический контроль над сервером | Максимальная автономность |
| Ключевые особенности | Простота и низкая стоимость | Изоляция, масштабируемость, гибкость | Размещение в профессиональном ЦОД | Максимальная производительность |
| Ограничения | Зависимость от других клиентов | Требуются навыки администрирования | Высокий порог входа по цене | Самый затратный вариант |
На практике большинство компаний выбирают между виртуальным хостингом и VPS, так как именно эти форматы закрывают основные потребности малого и среднего бизнеса.
## Чем отличается виртуальный хостинг от VPS
**Виртуальный хостинг** — это общий сервер, где ресурсы распределяются между несколькими проектами. Такой формат удобен для старта: не требует администрирования и позволяет быстро запустить сайт с минимальными затратами. Однако при росте нагрузки возможны ограничения по скорости и стабильности.
**VPS-хостинг** предполагает выделенную виртуальную среду с гарантированными ресурсами. Пользователь получает собственную операционную систему, возможность установки любого ПО и более высокий уровень безопасности.
Именно поэтому VPS чаще выбирают для коммерческих сайтов, онлайн-сервисов, API-проектов и приложений, где важна предсказуемая производительность.
## Сравнение виртуального хостинга и VPS
| Виртуальный хостинг | VPS-хостинг |
| --- | --- |
| Ограниченные настройки и общий сервер | Полный контроль над средой и конфигурацией |
| Ресурсы делятся между всеми клиентами | Гарантированные CPU, RAM и диск |
| Поддержка одного проекта | Размещение нескольких сайтов и сервисов |
| Подходит для низкой нагрузки | Подходит для масштабируемых решений |
| Общий IP-адрес | Выделенный IP с возможностью расширения |
## Итоги
Каждый тип хостинга решает свои задачи. **Виртуальный хостинг** — хороший вариант для небольших сайтов и простых задач, когда нужно быстро стартовать без сложных настроек и лишних расходов.**VPS-хостинг** обеспечивает баланс между стоимостью, гибкостью и надёжностью, что делает его оптимальным выбором для растущего бизнеса. **Выделенные серверы и colocation** актуальны для проектов с особыми требованиями к изоляции и производительности.
Понимание различий между форматами хостинга позволяет выстроить стабильную и масштабируемую инфраструктуру, которая будет развиваться вместе с вашим проектом.
## FAQ — вопросы о VPS и хостинге в Узбекистане
- **Что лучше выбрать для сайта в Узбекистане: виртуальный хостинг или VPS?**
Если проект небольшой и не предполагает высокой нагрузки, подойдёт виртуальный хостинг. Для интернет-магазинов, корпоративных сайтов, сервисов и приложений в Узбекистане чаще выбирают VPS — он даёт стабильную производительность и больше возможностей для настройки.
- **Подходит ли VPS для бизнеса в Узбекистане?**
Да. VPS в Узбекистане используют для сайтов компаний, онлайн-сервисов, CRM, бухгалтерских систем и API. Выделенные ресурсы и изоляция позволяют обеспечить предсказуемую работу даже при росте трафика.
- **Нужны ли навыки администрирования для VPS-хостинга?**
Базовые навыки работы с Linux или Windows желательны. При этом многие задачи можно решить с помощью готовых образов серверов и шаблонов, что упрощает запуск и дальнейшую эксплуатацию.
- **Можно ли масштабировать VPS по мере роста проекта?**
Да, это одно из ключевых преимуществ VPS. Ресурсы сервера — процессор, память и диск — можно увеличить без переноса проекта и длительных простоев.
- **Где лучше размещать VPS для аудитории из Узбекистана?**
Оптимальный вариант — размещение серверов в локальном дата-центре или в ближайшем регионе. Это снижает задержки, ускоряет загрузку сайта и повышает стабильность соединения для пользователей внутри страны.
## VPS-серверы Serverspace в Узбекистане
Для проектов, ориентированных на рынок Узбекистана, важно не только выбрать формат хостинга, но и учитывать расположение инфраструктуры. VPS-серверы Serverspace позволяют развернуть виртуальные машины в локальной локации, обеспечивая низкие задержки и стабильный доступ для пользователей из региона.
VPS в Serverspace — это изолированная виртуальная среда с гарантированными ресурсами, возможностью выбора операционной системы и гибкой конфигурацией сервера под задачи проекта. Такой формат подходит как для запуска новых сайтов, так и для переноса существующих сервисов с виртуального хостинга.
Платформа ориентирована на самостоятельное управление: сервер создаётся за несколько минут через панель управления, а масштабирование ресурсов доступно по мере роста нагрузки. Это позволяет бизнесу в Узбекистане начинать с минимальной конфигурации и постепенно развивать инфраструктуру без сложных миграций.
https://serverspace.uz/about/blog/vps-i-vds-v-uzbekistane-raznicza-i-chto-vybrat-v-2026.mdОбъясняем разницу между VPS и VDS и помогаем выбрать виртуальный сервер в Узбекистане для сайта, приложения или бизнеса в 2026 году: изоляция, ресурсы, масштабирование.
## Что такое VPS и VDS: в чём разница и что выбрать в 2026 году
Термины **VPS** и **VDS** регулярно встречаются при выборе серверной инфраструктуры, но на практике даже опытные специалисты нередко используют их как синонимы. Формально оба варианта относятся к виртуальным серверам с выделенными ресурсами, однако различия всё же существуют — и в отдельных сценариях они могут иметь значение.
В этой статье разберёмся, что скрывается за понятиями VPS и VDS, есть ли между ними реальная разница в 2026 году и какой формат рациональнее выбрать для сайта, приложения или бизнеса в Узбекистане.
## VPS и VDS — базовые понятия простым языком
**VPS (Virtual Private Server)** и **VDS (Virtual Dedicated Server) —** это виртуальные машины, развёрнутые на физическом сервере с использованием технологий виртуализации. Пользователь получает изолированную среду, собственную операционную систему, root-доступ и гарантированные ресурсы.
Путаница возникает из-за того, что провайдеры трактуют эти термины по-разному. Если убрать маркетинг, картина выглядит так:
| Термин | Суть | Ключевая идея |
| --- | --- | --- |
| VPS | Виртуальный сервер на общем физическом хосте | Изоляция и гарантированные ресурсы при совместном использовании "железа" |
| VDS | Виртуальная машина с логикой выделенного сервера | Максимальная сегрегация ресурсов без "соседей" |
Важно понимать: с развитием гипервизоров техническая разница между VPS и VDS практически стерлась. В современных облаках оба варианта обеспечивают высокий уровень изоляции, стабильности и производительности.
## В чём различие на практике
### Как устроен VPS
VPS разворачивается на физическом сервере, который делится между несколькими виртуальными машинами. Каждая из них получает фиксированный объём ресурсов:
- процессорные ядра;
- оперативную память;
- SSD-диск;
- сетевую пропускную способность;
- собственный IP-адрес;
- полный доступ к ОС.
При корректной настройке гипервизора такие виртуальные машины не мешают друг другу и работают независимо.
### Как устроен VDS
VDS технически также является виртуальной машиной, но предполагает более жёсткое закрепление ресурсов за одним клиентом. Чаще всего его выбирают там, где важна строгая регламентация, повышенные требования к безопасности или предсказуемость нагрузки.
Обычно VDS используют, когда необходимы:
- максимальная изоляция;
- формальное отсутствие соседних ВМ;
- соответствие отраслевым требованиям;
- стабильная нагрузка без колебаний.
## Нужен ли VDS большинству проектов
На практике — нет. По статистике облачных провайдеров, подавляющее большинство клиентов выбирают VPS, потому что он:
- дешевле при сопоставимой производительности;
- проще масштабируется;
- полностью закрывает задачи сайтов и приложений;
- не уступает по уровню безопасности современным VDS-реализациям.
Именно поэтому сегодня всё чаще используется единый термин — **виртуальный сервер**, без жёсткого разделения на VPS и VDS.
## Почему рынок делает ставку на VPS
### Гибкое масштабирование
VPS позволяет увеличивать ресурсы по мере роста проекта — без переноса данных и простоев. Это особенно актуально для бизнеса и онлайн-сервисов в Узбекистане, где нагрузка может расти неравномерно.
### Полный контроль над средой
Пользователь сам выбирает ОС, стек технологий и конфигурацию сервера. Нет ограничений, характерных для виртуального хостинга.
### Выделенный IP-адрес
Каждый VPS получает собственный IP, что важно для SEO, почтовых сервисов, API и SSL-сертификатов.
### Изоляция и безопасность
Виртуальная машина полностью отделена от других клиентов. Ошибки или перегрузки соседних проектов не влияют на работу сервера.
### Универсальность
На VPS можно разместить сайты, базы данных, корпоративные сервисы, VPN, dev- и prod-окружения — без искусственных лимитов.
## Сравнение VPS и VDS по ключевым параметрам
| Критерий | VPS | VDS |
| --- | --- | --- |
| Уровень изоляции | Высокий | Максимальный |
| Соседние ВМ | Присутствуют на уровне физического хоста | Формально отсутствуют |
| Производительность | Стабильная и предсказуемая | Максимально фиксированная |
| Стоимость | Ниже | Выше |
| Типовые задачи | Сайты, приложения, бизнес-сервисы | Регулируемые и критичные системы |
## Когда VPS — оптимальный выбор
VPS чаще всего выбирают для:
- сайтов и интернет-магазинов;
- корпоративных порталов;
- CRM и ERP-систем;
- backend-приложений;
- API и микросервисов;
- тестовых и продакшн-окружений;
- облачных баз данных;
- почтовых и VPN-серверов.
Это универсальный инструмент, который подходит как стартапам, так и зрелому бизнесу.
## Локальный FAQ: VPS и VDS в Узбекистане
- **Есть ли разница между VPS и VDS в Узбекистане?**
На практике — минимальная. Современные VPS обеспечивают тот же уровень изоляции и стабильности, что и VDS.
- **Что выбрать для сайта или интернет-магазина?**
VPS. Он даёт достаточную производительность, масштабируемость и гибкость без переплаты.
- **Подходит ли VPS для бизнеса в Узбекистане?**
Да. VPS используют для сайтов компаний, внутренних сервисов, CRM и приложений с локальной аудиторией.
- **Когда стоит рассматривать VDS?**
Если проект подпадает под жёсткие требования к изоляции или нормативному соответствию.
- **Можно ли увеличить ресурсы VPS без переезда?**
Да, ресурсы масштабируются без переноса сервера и остановки проекта.
## VPS Serverspace в Узбекистане
VPS-серверы Serverspace позволяют разворачивать инфраструктуру в локальной локации Узбекистана, обеспечивая низкие задержки и стабильный доступ для пользователей внутри страны. Это особенно важно для сайтов и сервисов, ориентированных на региональный рынок.
Платформа Serverspace построена на современной облачной архитектуре и ориентирована на self-service-подход: сервер создаётся за несколько минут через панель управления, а конфигурация подбирается под реальные задачи проекта. Пользователь сам управляет ресурсами, операционной системой и сетевыми настройками.
Такой формат подходит как для запуска новых проектов, так и для миграции с виртуального хостинга или физических серверов, позволяя бизнесу в Узбекистане выстраивать масштабируемую и предсказуемую ИТ-инфраструктуру.
https://serverspace.uz/about/blog/kak-vybrat-vps-v-uzbekistane-gajd-kejsy-i-konfiguraczii.mdПодбор VPS-хостинга в Узбекистане под сайт, интернет-магазин или разработку: критерии выбора, примеры серверов (CPU/RAM/NVMe), кейсы масштабирования и возможности Serverspace.
По мере роста проекта требования к инфраструктуре меняются. То, что работало на виртуальном хостинге на старте, со временем начинает ограничивать: страдает скорость, возникают проблемы при пиковых нагрузках, а любое расширение требует сложных и дорогих апгрейдов. В такой ситуации логичным шагом становится переход на **VPS-хостинг** — формат, который обеспечивает выделенные ресурсы, гибкую настройку и контроль над серверной средой без необходимости аренды физического сервера.
Для проектов в Узбекистане VPS особенно актуален: он позволяет быстро запускать сервисы, масштабироваться под рост аудитории и размещать инфраструктуру ближе к пользователям.
## Кейс: "Понимание, что shared больше не хватает"
Команда готовит запуск SaaS-сервиса для малого бизнеса. На этапе MVP сайт и API работали на shared-хостинге без проблем. Но уже после первых клиентов появились ограничения: медленный отклик при одновременных запросах, невозможность установить дополнительные сервисы и сложности с обновлением окружения.
Переход на VPS решил эти задачи: проект получил изолированные ресурсы, собственную ОС и возможность увеличивать мощности без переноса данных и простоев.
## Критерии выбора VPS-хостинга
При выборе VPS важно учитывать не только цену, но и технические параметры, которые напрямую влияют на стабильность и масштабируемость проекта.
| Критерий | Почему это важно | Как реализовано в Serverspace |
| --- | --- | --- |
| CPU и память | Влияют на скорость обработки запросов и стабильность под нагрузкой | Современные процессоры, масштабируемая RAM без миграций |
| Дисковая подсистема | Определяет скорость загрузки сайтов и работы БД | NVMe SSD для быстрого I/O |
| Тип виртуализации | Отвечает за изоляцию и предсказуемость ресурсов | Облачная платформа vStack и VMware для enterprise-задач |
| Сеть и трафик | Критично для API, сайтов и интеграций | Безлимитный трафик, 50 Mbps включено, возможность увеличения скорости |
| Управление | Влияет на скорость запуска и автоматизацию | Панель управления, API и CLI |
| Биллинг | Позволяет контролировать расходы | Почасовая оплата без скрытых условий |
## Примеры VPS-серверов под конкретные задачи
Конфигурация VPS всегда зависит от сценария использования. Ниже — практические примеры серверов, которые чаще всего выбирают клиенты для разных задач.
| Сценарий | Рекомендуемая конфигурация | Зачем нужны такие ресурсы |
| --- | --- | --- |
| Backend и API Node.js, Python, Go | CPU: 4 ядра RAM: 8 ГБ Disk: 60 ГБ NVMe Network: 100 Mbps | RAM нужна для воркеров и кешей, NVMe снижает задержки при работе с БД |
| Интернет-магазин WooCommerce, Bitrix | CPU: 6–8 ядер RAM: 16 ГБ Disk: 150 ГБ NVMe Network: 200 Mbps | Обрабатывает пиковые нагрузки, ускоряет загрузку страниц и корзины |
| База данных PostgreSQL, MySQL | CPU: 4–6 ядер RAM: 16–32 ГБ Disk: 200 ГБ NVMe | Память критична для кешей, NVMe — для быстрого отклика запросов |
| DevOps и CI/CD Docker, GitLab Runner | CPU: 4–8 ядер RAM: 8–16 ГБ Disk: 80 ГБ NVMe | CPU ускоряет сборки, API упрощает автоматизацию |
| VPN и корпоративный доступ | CPU: 2 ядра RAM: 2–4 ГБ Disk: 20 ГБ | Минимальные ресурсы, важна стабильная сеть |
### Практический кейс: e-commerce под пиковую нагрузку
Интернет-магазин с локальной аудиторией сталкивался с падением производительности во время распродаж. После миграции на VPS удалось сократить время загрузки страниц примерно на 40%, выдерживать кратный рост трафика и масштабировать ресурсы без остановки сайта.
### Как проверить VPS перед запуском проекта
В **:contentReference[oaicite:0]{index=0}** можно развернуть VPS за несколько минут и оплачивать его по факту использования. Это позволяет протестировать сервер под реальной нагрузкой до выхода проекта в продакшн.
## VPS Serverspace для проектов в Узбекистане
VPS-серверы Serverspace подходят для сайтов, приложений и бизнес-сервисов, ориентированных на рынок Узбекистана. Платформа позволяет гибко управлять ресурсами, выбирать операционную систему и масштабировать инфраструктуру по мере роста проекта.
Self-service-подход, прозрачный биллинг и техническая поддержка 24/7 делают VPS удобным инструментом как для старта, так и для развития существующих решений.
## FAQ — вопросы о VPS-хостинге
- **Что такое VPS-хостинг?**
VPS — это виртуальный сервер с выделенными ресурсами, который обеспечивает больший контроль и стабильность по сравнению с виртуальным хостингом.
- **Когда стоит переходить на VPS?**
При росте трафика, необходимости установки собственного ПО или при появлении требований к масштабированию.
- **Linux VPS или Windows VPS — что выбрать?**
Linux чаще используют для веб-проектов и разработки. Windows VPS подходит для решений на .NET и специфического корпоративного ПО.
- **Можно ли увеличить ресурсы без переноса данных?**
Да, масштабирование CPU, RAM и диска выполняется через панель управления.
- **Подходит ли VPS для бизнеса в Узбекистане?**
Да, VPS обеспечивает стабильную работу, гибкость настройки и возможность роста без сложных миграций.
https://serverspace.uz/support/help/fizzy-minimalistichnyj-kanban-dlya-zadach-i-idej.mdОткройте для себя Fizzy от 37signals - лёгкий Kanban-инструмент для управления задачами и идеями. Узнайте, как развернуть его на сервере или локально, настроить рабочие доски и эффективно использовать возможности Kanban. Подробное руководство с примерами применения, инструкциями по установке, полезными советами…
**Fizzy** - это современный Kanban-сервис для управления задачами, идеями и багами, созданный командой 37signals, известной по продуктам Basecamp и HEY. Инструмент задуман как быстрая и ненавязчивая альтернатива перегруженным системам вроде Jira, Trello или Asana. Его ключевая идея — убрать всё лишнее и оставить только то, что действительно помогает работать.
Fizzy ориентирован на простоту, скорость и удовольствие от процесса: никаких сложных настроек, многоуровневых меню и избыточной аналитики — только доски, карточки и понятный рабочий поток.
## Ключевые возможности Fizzy
В основе Fizzy лежит классический Kanban, реализованный максимально лаконично:
- Удобные доски с колонками и карточками, которые не требуют обучения.
- Автоматическое закрытие устаревших карточек (auto-close), помогающее поддерживать порядок.
- Webhooks для отправки событий в Slack, Campfire и другие внешние сервисы.
- Гибкая система уведомлений, включая напоминания о забытых карточках.
- Возможность сделать доску публичной для наблюдателей или получения внешнего фидбэка.
- Специальные отметки, показывающие автора карточки и время её создания.
Дополнительно Fizzy предлагает бесплатный тариф с лимитом до 1000 карточек, а также полностью открытый исходный код на GitHub. По сути, это полноценное Rails-приложение, которое можно изучать, дорабатывать и разворачивать самостоятельно.
## Для кого подойдёт Fizzy
Fizzy лучше всего раскрывается в небольших и средних командах, где ценят скорость решений и прозрачность процессов. Это отличный вариант, если вам нужен "чистый" Kanban без сложных методологий, отчётов и избыточных метрик.
Инструмент особенно хорошо подходит стартапам, инди-студиям, небольшим продуктовым и проектным командам, которым важно быстро фиксировать задачи, идеи и баги. Также Fizzy будет полезен тем, кто предпочитает публичные доски для сбора обратной связи или хочет получить self-host решение с открытым кодом и возможностью кастомизации под себя.
## Fizzy и альтернативы: краткое сравнение
Если сравнивать Fizzy с популярными инструментами, его позиционирование становится очевидным. В отличие от Jira, ориентированной на крупные организации и сложные Agile-процессы, Fizzy делает ставку на минимализм. По сравнению с Trello он предлагает меньше визуальных расширений, но выигрывает за счёт простоты и self-host-подхода. Asana, в свою очередь, предоставляет более развитые рабочие процессы и отчётность, тогда как Fizzy сознательно отказывается от этого в пользу лёгкости и фокуса.
Проще говоря, Fizzy — не универсальный комбайн, а специализированный инструмент для тех, кому нужен именно Kanban без лишнего шума.
## Установка и запуск Fizzy
Существует несколько способов начать работу с Fizzy — от продакшн-развёртывания до локального запуска для тестирования.
### Вариант 1: Развёртывание через Kamal (рекомендуется)
[Официальный репозиторий](https://github.com/basecamp/fizzy) предлагает использовать Kamal для деплоя:
Клонируйте репозиторий или создайте fork.
Настройте параметры сервера, почты и окружения в **config/deploy.yml, .kamal/secrets и config/environments/production.rb**.
Укажите необходимые секреты (например, **SECRET_KEY_BASE, VAPID, SMTP**).
Запустите установку командой:
```
bin/kamal setup
```
Это автоматически установит Docker и запустит приложение.
Для обновлений используйте:
```
bin/kamal deploy
```
### Вариант 2: Локальный запуск для разработки
Если Fizzy нужен для тестов или изучения кода:
В корне репозитория выполните:
```
bin/setup
```
При необходимости можно полностью пересоздать базу:
```
bin/setup --reset
```
Запустите сервер:
```
bin/dev
```
По умолчанию приложение будет доступно по адресу http://fizzy.localhost:3006. В режиме разработки вход осуществляется через e-mail name@example.com и код, который выводится в консоль браузера.
### Вариант 3: Docker и облачные платформы
Сообщество также успешно запускает Fizzy в Docker-контейнерах, в том числе на Unraid и Railway. Официальных инструкций для этих платформ нет, но в сети доступны рабочие примеры конфигураций.
## Технические детали
С технической точки зрения Fizzy — это:
- приложение на Ruby on Rails;
- база данных SQLite по умолчанию (с возможностью перейти на MySQL);
- Web Push-уведомления с использованием VAPID-ключей;
- наличие unit-тестов и CI-конфигураций.
## Часто задаваемые вопросы (FAQ)
- **Что входит в бесплатную версию?**
Бесплатно можно использовать до 1000 карточек без ограничений по времени и количеству пользователей.
- **Есть ли готовые интеграции с GitHub или Basecamp?**
На данный момент Fizzy поддерживает только webhooks — они отправляют события во внешние сервисы, но двусторонних интеграций нет.
- **Можно ли перенести данные из Trello или Jira?**
Встроенных инструментов импорта пока не предусмотрено.
- **Удалённые карточки учитываются в лимите?**
Да, каждая созданная карточка увеличивает счётчик, даже если позже она была удалена.
## Лицензия
Исходный код Fizzy распространяется под лицензией O'Saasy License. Она позволяет запускать и изменять приложение, но содержит ряд условий, включая ограничения на конкуренцию с официальной SaaS-версией.
## Итоги
**Fizzy** — это быстрый, аккуратный и понятный Kanban-трекер для тех, кто устал от перегруженных систем управления задачами. Он отлично справляется с отслеживанием задач, идей и багов, не отвлекая пользователя лишними функциями.
Вы можете выбрать готовую SaaS-версию на fizzy.do, развернуть собственный инстанс бесплатно или пойти дальше — модифицировать код и адаптировать инструмент под свои процессы. Если вам нужна практичная и лёгкая система управления задачами без избыточной сложности, Fizzy определённо заслуживает внимания.
https://serverspace.uz/support/help/headlamp-udobnyj-interfejs-dlya-upravleniya-kubernetes.mdПолное руководство по развёртыванию и настройке Headlamp - современного веб-интерфейса для управления Kubernetes-кластерами. Узнайте, как DevOps и разработчики могут использовать Headlamp для мониторинга ресурсов, работы с логами и CRD, а также какие функции и ограничения присутствуют в инструменте.
**Headlamp** — это лёгкий и расширяемый веб-интерфейс для Kubernetes, который позволяет визуально управлять ресурсами кластера, просматривать логи, события и метрики, а также выполнять операции с объектами. Проект развивается в рамках Kubernetes SIG UI и совместим с любыми Kubernetes-дистрибутивами.
Инструмент ориентирован на DevOps-инженеров, администраторов и разработчиков, которым нужен простой, но функциональный способ работы с кластером без необходимости постоянного использования командной строки.
## Что такое Headlamp
Headlamp работает как оболочка для Kubernetes API, предоставляя графический интерфейс для:
- Просмотра всех типов ресурсов (Pods, Deployments, Services, Nodes и других);
- Создания, редактирования и удаления объектов;
- Анализа логов и метрик подов;
- Управления несколькими кластерами через единую панель;
- Расширения возможностей с помощью плагинов.
- Интерфейс построен на React и Material-UI, подключается напрямую к Kubernetes API, поддерживает RBAC и отображает только те действия, которые разрешены пользователю.
## Практическое использование Headlamp
Headlamp помогает решать несколько типовых задач DevOps-команд:
- Визуальная диагностика кластера: отслеживание состояния подов, событий, логов и контейнеров.
- Мультикластерное управление: переключение контекстов kubeconfig прямо из интерфейса.
- Работа с CRD: поддержка кастомных ресурсов с возможностью расширения UI.
- Мониторинг и аудит: наблюдение за изменениями ресурсов в реальном времени.
- Облегчение работы новичков: удобный интерфейс снижает порог входа и позволяет безопасно управлять кластером в рамках RBAC.
## Установка Headlamp
Есть два основных способа запуска:
### 1. Локальное приложение
Подходит для работы с удалёнными и локальными кластерами.
Скачайте актуальную сборку для вашей ОС:
```
https://headlamp.dev/download
```
Запустите приложение. Оно автоматически предложит выбрать kubeconfig или возьмёт его из **~/.kube/config.**
После выбора контекста откроется главное окно интерфейса.
### 2. Встроенная панель в Kubernetes (in-cluster)
Подходит для постоянного доступа через браузер всей команды.
Через Helm:
```bash
helm repo add headlamp https://headlamp-k8s.github.io/headlamp-chart
helm repo update
helm install headlamp headlamp/headlamp \
--namespace headlamp \
--create-namespace
kubectl port-forward svc/headlamp 4466:80 -n headlamp
```
Откройте в браузере: **http://localhost:4466**
Через YAML-манифест:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/headlamp/main/deployment/headlamp.yaml
```
```bash
kubectl port-forward svc/headlamp 4466:80 -n headlamp
```
## Почему Headlamp полезен
- Диагностика в одном окне: логи, события и ресурсы доступны без переключений между инструментами.
- Совместимость с RBAC: пользователь видит только те действия, на которые есть права.
- Поддержка нескольких кластеров: удобно для Dev/Stage/Prod-сред.
- CRD и кастомизация: расширяемость через плагины, поддержка кастомных объектов.
- Лёгкий и быстрый интерфейс: альтернатива тяжёлым дашбордам типа Lens или Octant.
## Ограничения
- Headlamp не заменяет полностью kubectl; для массовых операций и CI/CD всё ещё нужен CLI.
- Плагины требуют самостоятельной разработки для специфичных CRD.
- Нет встроенного мониторинга уровня Prometheus/Grafana.
- RBAC требует корректной настройки — пользователи без прав увидят ограниченный интерфейс.
- Лог действий в UI не ведётся — операции регистрируются через Kubernetes API.
## Типичные ошибки при работе с Headlamp и способы их решения
При работе с Headlamp пользователи иногда сталкиваются с рядом типовых проблем.
Например, пустой интерфейс часто возникает из-за некорректных прав RBAC - пользователь видит только разрешённые действия, поэтому стоит проверить роли и права доступа. Ошибки подключения к кластеру могут возникать из-за неправильного пути или формата kubeconfig; решение — убедиться, что выбран правильный контекст и файл доступен приложению.
При работе через порт-forward могут возникнуть конфликты портов или блокировки сетевых правил, что решается проверкой доступности локальных портов и корректной настройкой kubectl port-forward. Также иногда возникают проблемы с отображением кастомных ресурсов (CRD) - чаще всего это связано с отсутствием поддержки нужного API-группы в Headlamp или необходимостью установки плагина для расширенной визуализации. Знание этих типовых ошибок и способов их устранения позволяет быстро восстановить работу интерфейса и повысить эффективность администрирования кластеров.
## FAQ - Часто задаваемые вопросы про Headlamp
- **Можно использовать Headlamp оффлайн?**
Да, локальное приложение и in-cluster развертывание работают без интернета.
- **Поддерживаются ли кастомные ресурсы (CRD)?**
Да, CRD отображаются автоматически. Для расширенных возможностей можно создавать плагины.
- **Можно подключиться к нескольким кластерам?**
Да, локальная версия использует kubeconfig с несколькими контекстами.
- **Есть ограничения по дистрибутивам Kubernetes?**
Нет. Подходит для kubeadm, K3s, RKE, GKE, EKS, AKS и других совместимых кластеров.
- **Насколько безопасно давать доступ разработчикам?**
Полностью безопасно — Headlamp соблюдает RBAC, пользователь видит только разрешённые действия.
- **Можно ли запускать через Docker?**
Да:
```bash
docker run -p 4466:4466 ghcr.io/headlamp-k8s/headlamp
```
- **Поддерживаются ли плагины?**
Да, они пишутся на TypeScript/React и позволяют расширять функциональность интерфейса.
## Итог
**Headlamp** — это удобный и расширяемый веб-интерфейс для Kubernetes, который позволяет DevOps-инженерам и разработчикам эффективно управлять кластерами, просматривать логи, отслеживать состояние ресурсов и работать с кастомными CRD. Он облегчает мультикластерное администрирование, повышает безопасность благодаря RBAC-поддержке и подходит как для новичков, так и для опытных специалистов, обеспечивая быстрый доступ к основным операциям и инструментам диагностики Kubernetes.
https://serverspace.uz/support/help/stress-testirovanie-cpu-servera-s-sysbench-polnoe-rukovodstvo-po-nagruzochnomu-testu.mdУзнайте, как провести стресс-тест процессора сервера с помощью sysbench на Linux. Подробное руководство, примеры команд, многопоточные тесты и советы по оптимизации производительности.
**Стресс-тестирование** — это метод оценки производительности систем и программного обеспечения при высоких нагрузках. Главная цель таких инструментов — выявление потенциальных узких мест и ошибок до запуска в продуктивной среде. Они не ориентированы на конечного пользователя напрямую, а служат для обеспечения стабильной и отказоустойчивой работы системы для всех вовлечённых сторон, включая клиентов.
Преимущества использования инструментов стресс-теста:
- Позволяют понять, как система ведёт себя при высоких нагрузках, что особенно важно для онлайн-сервисов с большой посещаемостью.
- Выявляют скрытые ошибки и недостатки, которые могут оставаться незамеченными при обычном тестировании. Например, одновременная работа нескольких экземпляров ресурсоёмких приложений или загрузка больших файлов помогает проверить пределы производительности.
- Предоставляют полезную статистику и метрики, которые используются для оптимизации ресурсов и планирования масштабирования.
В этом руководстве мы рассмотрим конкретный пример инструмента для стресс-тестирования процессора на Linux — утилиту sysbench.
[VPS в Узбекистане — быстро, удобно, локально](https://serverspace.uz/services/vps-server/vps-uzbekistan.md)
Разворачивайте облачные серверы в Ташкенте с узбекским IP, выбирайте оптимальную конфигурацию через удобный калькулятор и масштабируйте ресурсы под любые задачи. Современное оборудование, защищённый дата-центр и соответствие ЗРУ-547 гарантируют безопасность и стабильность. Локальная поддержка на русском и узбекском с быстрым временем отклика делает работу с VPS простой и надёжной.[/important
## Практическое использование
Перед тестированием важно спланировать нагрузку. Систему следует рассматривать как набор компонентов: процессор, память, дисковую подсистему и сеть. В этом примере мы сосредоточимся на CPU, так как он является ключевым компонентом большинства серверов.
### 1. Обновление системы
Перед установкой тестового ПО рекомендуется обновить пакеты:
```bash
apt update && apt upgrade -y
```
### 2. Установка sysbench
Установка утилиты проста и не требует сложных зависимостей:
```bash
apt install sysbench
```
### 3. Проведение базового теста процессора
Перед запуском теста остановите ненужные службы для точности результатов. Для проверки CPU используйте:
```
sysbench cpu --cpu-max-prime=30000 run
```
По результатам вы увидите метрики скорости, задержки и балансировки потоков.
### 4. Тестирование многопоточности
Современные приложения используют несколько потоков, поэтому полезно моделировать нагрузку с учётом многопоточности:
```
sysbench cpu --cpu-max-prime=30000 --threads=4 run
```
Для машин с несколькими ядрами можно увеличить количество потоков:
```
sysbench cpu --cpu-max-prime=30000 --threads=16 run
```
Результаты покажут, как увеличивается производительность при росте числа ядер и потоков, а также помогут оценить масштабируемость процессора.
HTML-табличка — шпаргалка по основным командам sysbench
| Команда | Назначение |
| --- | --- |
| sysbench cpu --cpu-max-prime=30000 run | Базовый тест процессора с вычислением простых чисел до 30 000 |
| sysbench cpu --cpu-max-prime=30000 --threads=4 run | Многопоточный тест CPU на 4 потока |
| sysbench memory run | Тестирование производительности оперативной памяти |
| sysbench fileio run | Тест скорости ввода-вывода дисковой системы |
| sysbench --test=threads run | Проверка многопоточной нагрузки на систему |
## Вывод
Стресс-тестирование позволяет оценить производительность серверного оборудования и программного обеспечения до его эксплуатации в реальной нагрузке. Используя sysbench, вы можете быстро проверить CPU, память и дисковую подсистему, выявить узкие места и оптимизировать распределение ресурсов. Многопоточные тесты помогают понять, как система масштабируется при росте нагрузки, а статистика и метрики служат основой для последующих улучшений.
## FAQ
- **1. Можно ли использовать sysbench для тестирования памяти и дисков?**
Да, кроме CPU, утилита поддерживает тесты памяти, дисковой подсистемы и многопоточности.
- **2. Нужны ли права администратора для тестирования?**
Для установки пакетов и некоторых тестов желательно иметь права root, особенно при работе с дисковой подсистемой.
- **3. Можно ли запускать тест на удалённом сервере?**
Да, sysbench полностью поддерживает удалённые Linux-серверы через SSH.
- **4. Как правильно интерпретировать результаты?**
Обращайте внимание на показатели TPS, latency и execution time — они помогают выявить узкие места и понять, сколько ресурсов система может выдержать без деградации.
- **5. Можно ли проводить стресс-тестирование в продакшене?**
Рекомендуется использовать тестовые или staging-серверы, так как нагрузка может повлиять на работу реальных пользователей.
https://serverspace.uz/support/help/postgresus-self-hosted-rezervnoe-kopirovanie-i-monitoring-postgresql.mdУзнайте, как настроить Postgresus для автоматического резервного копирования и мониторинга PostgreSQL 13–18. Подробное руководство по установке, уведомлениям в Telegram/Slack/Discord, хранению бекапов и решению типичных проблем.
**Postgresus** — современный self-hosted инструмент для управления резервными копиями и мониторинга PostgreSQL баз данных. Он предназначен для разработчиков, системных администраторов и DevOps-инженеров, которые хотят централизованно контролировать свои базы и обеспечивать сохранность данных без использования сторонних облачных сервисов.
## Ключевые возможности
- Автоматическое создание резервных копий PostgreSQL версий 13–18 по заранее заданному расписанию.
- Уведомления о сбоях и недоступности баз данных в Telegram, Slack и Discord.
- Поддержка хранения бекапов локально, в Amazon S3 или Google Drive.
- Проверка состояния баз каждые 60 секунд для быстрого обнаружения проблем.
- Полностью открытый исходный код под лицензией Apache 2.0, с возможностью кастомизации под свои задачи.
## Практическое применение
Postgresus будет полезен в различных сценариях:
- **Стартапы и небольшие команды**— автоматизация бекапов и уведомлений экономит время и снижает риск потери данных.
- **DevOps и администраторы** — централизованный мониторинг нескольких баз, интеграция уведомлений в привычные каналы команды, отслеживание ошибок и состояния серверов.
- **Образовательные проекты и тестовые среды** — легко развернуть локально через Docker для безопасного тестирования PostgreSQL без риска для продакшн-баз.
**Пример использования:** проект на PostgreSQL 15, бекапы каждые 6 часов и уведомления в Telegram при сбое. Postgresus позволяет настроить это за несколько минут.
## Установка
Самый быстрый способ развернуть Postgresus — через Docker:
```bash
docker run -d \
--name postgresus \
-p 4005:4005 \
-v ./postgresus-data:/postgresus-data \
--restart unless-stopped \
rostislavdugin/postgresus:latest
```
После запуска веб-интерфейс будет доступен по адресу **http://localhost:4005**
. Здесь можно добавить базы данных, настроить расписание бекапов, уведомления и хранение копий.
## Типичные проблемы и их решение
**Недоступность базы данных:** Postgresus проверяет состояние каждые 60 секунд и уведомляет о проблеме. В случае сбоя проверьте подключение и настройки PostgreSQL.
**Ошибки доступа к облачному хранилищу:** при использовании S3 или Google Drive убедитесь, что API-ключи и права доступа корректны.
**Падение Docker-контейнера:** контейнер автоматически перезапускается благодаря --restart unless-stopped, но важно контролировать ресурсы хоста.
## FAQ
- **Какие версии PostgreSQL поддерживаются?** 13–18.
- **Можно ли использовать Postgresus на продакшн-серверах?** Да, но рекомендуется проверить права доступа и безопасность хоста.
- **Где хранятся резервные копии?** Локально, в S3 или Google Drive, в зависимости от настроек.
- **Нужен ли отдельный сервер для Postgresus?** Нет, достаточно одного Docker-контейнера с доступом к целевым базам.
- **Можно ли добавить уведомления в другие мессенджеры?** На данный момент поддерживаются Telegram, Slack и Discord; через API возможно расширение функционала.
## Шпаргалка по основным действиям
| Действие | Команда / Интерфейс | Описание |
| --- | --- | --- |
| Запуск Postgresus | docker run ... | Запуск контейнера с веб-интерфейсом и автоматическим перезапуском при сбое |
| Мониторинг баз данных | Веб-интерфейс → Health Check | Отображение состояния всех подключенных баз и последних ошибок |
| Создание задачи резервного копирования | Веб-интерфейс → Backup → Add | Настройка источника, расписания и места хранения копий |
| Настройка уведомлений | Веб-интерфейс → Notifications | Отправка сообщений в Telegram, Slack, Discord при сбое или недоступности базы |
| Хранение резервных копий | Local / S3 / Google Drive | Выбор места хранения бекапов и настройка прав доступа |
## Вывод
Postgresus — удобный self-hosted инструмент для резервного копирования и мониторинга PostgreSQL. Он позволяет быстро настроить регулярные бекапы, получать уведомления о сбоях, хранить копии локально или в облаке, а также отслеживать состояние баз данных в реальном времени. Благодаря Docker-развёртыванию и открытой лицензии Apache 2.0, Postgresus подходит как для личных проектов, так и для корпоративных серверов, обеспечивая надежность и безопасность данных.
https://serverspace.uz/support/help/zerobyte-bezopasnoe-avtomaticheskoe-rezervnoe-kopirovanie-s-shifrovaniem-i-veb-interfejsom.mdУзнайте, как Zerobyte помогает создавать зашифрованные резервные копии данных с гибким планированием, мониторингом через веб-интерфейс и поддержкой локальных и облачных хранилищ. Идеально для личных серверов и небольших команд.
**Zerobyte** — это современный self-hosted инструмент для автоматизации резервного копирования данных, построенный на базе Restic. Он предоставляет удобный веб-интерфейс для настройки расписаний, управления задачами и контроля за безопасностью зашифрованных резервных копий. Zerobyte подходит как для частных пользователей, так и для небольших компаний, которые хотят надежно хранить свои данные без зависимости от облачных сервисов.
## Ключевые возможности
- **Автоматическое резервное копирование с шифрованием и сжатием данных.**
- **Гибкое планирование задач: настройка частоты и времени создания резервных копий.**
- **Веб-мониторинг и уведомления о состоянии резервного копирования.**
- **Поддержка различных хранилищ: локальные папки, NFS, SMB, WebDAV и другие.**
- **Современный веб-интерфейс для удобного управления задачами и просмотра логов.**
## Практическое использование
Zerobyte позволяет автоматизировать процесс резервного копирования как на домашних серверах, так и в небольших рабочих окружениях. Инструмент создает зашифрованные копии документов, баз данных и медиа-файлов, снижая риск потери данных из-за сбоя оборудования, случайного удаления или программ-вымогателей. Благодаря интуитивному веб-интерфейсу можно быстро отслеживать состояние задач, просматривать логи и восстанавливать нужные файлы в несколько кликов.
## Установка
Для запуска Zerobyte требуется Docker и Docker Compose:
```bash
git clone https://github.com/nicotsx/zerobyte.git
cd zerobyte
docker-compose up -d
```
После запуска веб-интерфейс будет доступен по адресу вашего сервера, где можно настроить источники данных, расписания резервного копирования и политики хранения.
## Часто встречающиеся вопросы (FAQ)
- **В: Можно ли использовать Zerobyte в корпоративной среде?** Да, но инструмент оптимизирован для небольших команд и энтузиастов. Для крупных корпоративных систем возможны ограничения по масштабируемости.
- **В: Требуется ли Docker для запуска?** Да, Docker обеспечивает корректную работу всех компонентов Zerobyte.
- **В: Какие хранилища поддерживаются?** Локальные каталоги, NFS, SMB, WebDAV и другие совместимые с Restic хранилища.
- **В: Данные шифруются?** Да, все резервные копии защищаются шифрованием Restic.
[VPS в Узбекистане — быстро, удобно, локально](https://serverspace.uz/services/vps-server/vps-uzbekistan.md)
Разворачивайте облачные серверы в Ташкенте с узбекским IP, выбирайте оптимальную конфигурацию через удобный калькулятор и масштабируйте ресурсы под любые задачи. Современное оборудование, защищённый дата-центр и соответствие ЗРУ-547 гарантируют безопасность и стабильность. Локальная поддержка на русском и узбекском с быстрым временем отклика делает работу с VPS простой и надёжной.[/important
## Шпаргалка
| Действие | Команда / Интерфейс | Описание |
| --- | --- | --- |
| Запуск сервиса | docker-compose up -d | Старт всех компонентов Zerobyte через Docker Compose |
| Проверка состояния задач | Веб-интерфейс → Dashboard | Просмотр статуса всех активных резервных копий и логов |
| Создание новой задачи резервного копирования | Веб-интерфейс → Tasks → Add | Настройка источника, расписания и политики хранения резервных копий |
| Мониторинг процессов | Веб-интерфейс → Dashboard | Контроль выполнения заданий и состояния данных |
| Удаление устаревших резервных копий | Веб-интерфейс → Retention | Настройка политики удаления старых копий для оптимизации хранилища |
| Шифрование данных | Автоматически через Restic | Все резервные копии зашифрованы и защищены от несанкционированного доступа |
## Вывод
**Zerobyte** — это надежное и удобное решение для автоматизации резервного копирования с поддержкой шифрования и разнообразных типов хранилищ. Инструмент обеспечивает гибкое планирование задач, мониторинг через веб-интерфейс и безопасное хранение данных. Благодаря Docker-развёртыванию и использованию Restic, Zerobyte подходит как для личных проектов, так и для небольших рабочих окружений, обеспечивая защиту данных без сложных настроек и дорогих сервисов.
https://serverspace.uz/support/help/xpipe-czentralizovannoe-upravlenie-serverami-i-udalyonnymi-fajlami-cherez-cli.mdОткройте для себя XPipe: удобный инструмент для удалённого управления серверами и файлами. Интеграция с SSH, Docker, Kubectl и редакторами кода, расширяемая платформа и централизованный контроль инфраструктуры.
**XPipe** — это современное решение для централизованного управления серверной инфраструктурой и удалёнными файлами. Инструмент позволяет безопасно подключаться к множеству серверов, работать с файлами и выполнять команды через привычные CLI-инструменты, такие как SSH, Docker или Kubectl, без необходимости устанавливать дополнительное ПО на удалённых системах. XPipe идеально подходит для DevOps-инженеров, системных администраторов и разработчиков, которым важно объединить управление инфраструктурой в едином удобном интерфейсе.
## Основные возможности XPipe
- **Удалённое управление серверами и файлами** без установки стороннего ПО на хостах.
- **Интеграция с привычными CLI-инструментами**: терминалы, редакторы кода, SSH, Docker, Kubectl и другие.
- **Модульная расширяемость** для добавления новых инструментов или кастомных функций.
- **Централизованный контроль** всей серверной инфраструктуры через единый интерфейс.
## Применение на практике
XPipe позволяет эффективно управлять инфраструктурой компаний и отдельных проектов:
- Редактировать файлы на удалённых серверах, как если бы они были локальными.
- Выполнять команды сразу на нескольких хостах через привычный CLI.
- Интегрировать работу с любимыми редакторами кода, терминалами и скриптами.
- Создавать собственные модули для расширения функциональности под уникальные задачи.
## Установка и запуск
XPipe не требует установки на удалённые серверы. Для начала работы достаточно развернуть клиент на локальной машине:
```
https://github.com/xpipe-io/xpipe
```
После установки можно подключать серверы через привычные CLI-инструменты, а XPipe будет централизованно управлять ими и предоставлять удобный интерфейс для мониторинга и выполнения команд.
## FAQ
- **В: Нужно ли устанавливать XPipe на все серверы?**
А: Нет, инструмент работает поверх существующих CLI-инструментов и не требует установки на удалённых системах.
- **В: Какие CLI-программы поддерживаются?**
А: Поддерживаются SSH, Docker, Kubectl и любые другие CLI-инструменты. Можно расширять функциональность через модули.
- **В: Можно ли интегрировать XPipe с редакторами кода?**
А: Да, XPipe совместим с большинством редакторов, позволяя редактировать удалённые файлы напрямую.
- **В: Можно ли кастомизировать XPipe?**
А: Да, модульная система позволяет добавлять новые инструменты и создавать индивидуальные функции.
- **В: Есть ли мониторинг активных подключений?**
А: Да, веб-интерфейс и локальный клиент отображают состояние сессий и активность серверов.
## Шпаргалка по XPipe
| Действие | Команда / Интерфейс | Описание |
| --- | --- | --- |
| Подключение к серверу | ssh / docker / kubectl | Используйте привычные CLI-команды, XPipe управляет подключениями централизованно |
| Редактирование удаленного файла | Через интеграцию с редактором | Редактируйте файлы на сервере так же, как на локальном компьютере |
| Выполнение команд на нескольких хостах | CLI / терминал | Одновременное выполнение скриптов или команд на нескольких серверах |
| Добавление нового инструмента | Модульная система расширений | Расширение функциональности и поддержка новых CLI-программ |
| Мониторинг серверов | Веб-интерфейс / локальный клиент | Отслеживание активных сессий и состояния инфраструктуры |
## Вывод
XPipe упрощает управление серверной инфраструктурой, объединяя все подключенные хосты и инструменты в одном удобном интерфейсе. Он экономит время DevOps-инженеров и системных администраторов, позволяя безопасно работать с удалёнными файлами, выполнять команды одновременно на нескольких серверах и интегрироваться с любимыми редакторами кода. XPipe особенно полезен для команд и проектов с большим количеством серверов, где важно централизованное управление и гибкая кастомизация.
https://serverspace.uz/support/help/stress-test-diska-servera-s-sysbench-proverka-skorosti-nagruzki-i-proizvoditelnosti.mdПолное руководство по стресс-тестированию диска сервера с использованием sysbench. Узнайте, как проверить скорость чтения и записи, оценить производительность под нагрузкой и оптимизировать серверную инфраструктуру.
Стресс-тестирование является ключевым инструментом для оценки поведения серверов под высокой нагрузкой. Используя синтетические тесты, администраторы и DevOps-инженеры получают данные о производительности в реальном времени, что позволяет вовремя корректировать настройки и предотвращать сбои. Особенно важно тестировать дисковую подсистему, так как её производительность напрямую влияет на скорость работы приложений и удовлетворённость пользователей.
## Проверка дисковой подсистемы
Диск — один из критических компонентов сервера. При стресс-тестировании нельзя обойтись без проверки его скорости чтения и записи. Существуют различные подходы к тестированию, но многие из них не отражают реальную производительность:
- использование утилиты dd с файловым кэшем;
- бенчмаркинг через bonnie++ или iozone;
- замеры времени копирования с помощью cp;
Эти методы оценивают лишь линейную скорость или частично используют оперативную память, искажающую реальные показатели. Для быстрого и практичного теста рекомендуем использовать **sysbench**.
## Установка и подготовка
Сначала обновим индексы и пакеты системы:
```bash
apt update && apt upgrade
```
Затем устанавливаем sysbench:
```bash
apt install sysbench
```
## Подготовка тестовых данных
Для корректного измерения производительности диска создаём тестовый файл, размер которого превышает объём оперативной памяти, чтобы исключить влияние кэша:
```
sysbench fileio --file-total-size=10G prepare
```
## Запуск теста
Тестируем дисковую подсистему в режиме случайного чтения и записи:
```
sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 run
```
Для оценки производительности при параллельной нагрузке используем несколько потоков:
```
sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 --threads=4 run
```
## Очистка тестовых данных
После завершения теста можно удалить временные файлы:
```
sysbench fileio cleanup
```
## Выводы и рекомендации
Стресс-тестирование дисковой подсистемы позволяет:
- оценить реальную скорость чтения и записи;
- определить узкие места при параллельных нагрузках;
- предотвратить снижение производительности приложений;
- планировать оптимизацию серверной инфраструктуры и распределение ресурсов.
Даже базовый тест с sysbench даёт быстрое и близкое к реальности представление о производительности диска, позволяя принимать обоснованные решения по настройке серверов и систем хранения данных.
## FAQ
- **В: Нужно ли тестировать диск с учётом кэша ОЗУ?**
А: Да, для точного измерения производительности размер тестового файла должен превышать объём оперативной памяти.
- **В: Сколько потоков использовать для теста?**
А: Начните с одного потока, затем протестируйте несколько параллельных потоков для оценки нагрузки.
- **В: Можно ли использовать другие утилиты?**
А: Да, но они часто дают неточные результаты, лучше использовать sysbench для синтетических тестов с высокой нагрузкой.
- **В: Как интерпретировать результаты?**
А: Основное значение — средняя скорость чтения/записи и количество операций ввода-вывода в секунду (IOPS).
https://serverspace.uz/support/glossary/directx.mdУзнайте, что такое DirectX, как он развивался, какие API включает и почему является ключевой технологией для геймдева на Windows.
**DirectX** — это набор API (Application Programming Interface), разработанных компанией Microsoft для работы с мультимедийными приложениями, особенно играми, на платформе Windows. DirectX обеспечивает взаимодействие программного обеспечения с аппаратными средствами компьютера, такими как видеокарта, аудиоустройства и устройства ввода.
## История и развитие
Первая версия DirectX была выпущена в 1995 году для упрощения разработки игр на Windows. С течением времени API развивались, предоставляя разработчикам всё более мощные инструменты. Важными вехами стали:
- **DirectX 9 (2002)** — широко использовался в играх начала 2000-х.
- **DirectX 10 (2006)** — представил значительные улучшения графики, но поддерживался только в Windows Vista и новее.
- **DirectX 11 (2009)** — добавил тесселяцию и другие технологии, улучшив производительность и качество графики.
- **DirectX 12 (2015)** — обеспечил низкоуровневый доступ к аппаратным ресурсам, аналогично Vulkan, увеличив эффективность использования CPU и GPU.
## Основные компоненты DirectX
DirectX включает в себя несколько API, среди которых:
- **Direct3D** — основной компонент для рендеринга 3D-графики.
- **Direct2D** — API для работы с 2D-графикой.
- **DirectCompute** — используется для выполнения вычислений на видеокарте.
- **DirectSound** и **DirectMusic** (устарели) — ранее использовались для работы со звуком.
- **DirectInput** — обеспечивает взаимодействие с клавиатурой, мышью и геймпадами.
- **DirectPlay** (устарел) — использовался для сетевых игр.
## DirectX и геймдев
DirectX стал стандартом для разработчиков игр на Windows. Он поддерживается всеми современными видеокартами и является основой для большинства ПК-игр. DirectX 12 значительно улучшил производительность благодаря API с низким уровнем абстракции, позволяя разработчикам более эффективно использовать ресурсы системы.
## DirectX vs. OpenGL/Vulkan
Хотя OpenGL и Vulkan являются альтернативами DirectX, последний остаётся предпочтительным для Windows-игр, поскольку интегрирован в операционную систему и предлагает простую разработку под Direct3D.
## Вывод
DirectX — ключевая технология для разработчиков игр и мультимедийных приложений на Windows. Постоянное развитие API делает его важным инструментом для создания высококачественной графики и оптимизированных игровых решений.
https://serverspace.uz/support/glossary/vulkan.mdУзнайте, что такое Vulkan — современный низкоуровневый графический API, предлагающий высокую производительность и детальный контроль над GPU. Как он сравнивается с OpenGL и DirectX, где применяется и какие возможности предоставляет разработчикам?
**Vulkan** — это современный низкоуровневый графический API, разработанный консорциумом Khronos Group. Он предоставляет разработчикам прямой доступ к аппаратным возможностям GPU, обеспечивая высокую производительность и гибкость в управлении графическим рендерингом. Vulkan считается преемником OpenGL и альтернативой DirectX 12, особенно для кроссплатформенной разработки.
## Преимущества Vulkan
Vulkan обладает рядом ключевых преимуществ перед традиционными API, такими как OpenGL и DirectX:
- **Высокая производительность**. Vulkan снижает накладные расходы на обработку команд CPU, позволяя более эффективно использовать многоядерные процессоры.
- **Низкоуровневый доступ**. Программисты получают полный контроль над памятью GPU, обработкой кадров и синхронизацией потоков.
- **Кроссплатформенность**. Vulkan поддерживается на Windows, Linux, macOS (через MoltenVK), Android и других платформах.
- **Поддержка многопоточности**. OpenGL использует один поток для отправки команд GPU, тогда как Vulkan позволяет загружать рендеринг на несколько потоков одновременно.
- **Лучшее управление ресурсами**. Разработчики сами управляют памятью, что предотвращает непредсказуемые задержки.
## Vulkan vs. OpenGL vs. DirectX 12
| Особенность | Vulkan | OpenGL | DirectX 12 |
| --- | --- | --- | --- |
| Производительность | Высокая | Средняя | Высокая |
| Поддержка многопоточности | Да | Ограниченная | Да |
| Кроссплатформенность | Да | Да | Нет (только Windows и Xbox) |
| Управление памятью | Полный контроль | Автоматич. | Полный контроль |
| Сложность освоения | Высокая | Низкая | Высокая |
## Где применяется Vulkan?
Vulkan активно используется в различных сферах, включая:
- **Игровую индустрию**. Движки, такие как Unreal Engine и Unity, поддерживают Vulkan для рендеринга игр с высокой производительностью.
- **Мобильные приложения**. Vulkan обеспечивает плавную графику на Android-устройствах с меньшей нагрузкой на процессор.
- **VR и AR**. Высокая производительность API делает его идеальным выбором для рендеринга виртуальной реальности.
- **Промышленную визуализацию**. Применяется в CAD-системах, симуляциях и научных исследованиях.
## Недостатки Vulkan
Несмотря на все плюсы, у Vulkan есть и минусы:
- **Сложность освоения**. В отличие от OpenGL, Vulkan требует больше кода для выполнения даже базовых операций.
- **Меньшая распространенность на macOS**. Apple не поддерживает Vulkan напрямую, но можно использовать MoltenVK для работы через Metal.
- **Ответственность за управление ресурсами**. Разработчики должны сами управлять памятью, что увеличивает сложность кода.
## Заключение
**Vulkan** — это мощный инструмент для разработчиков, позволяющий добиться высокой производительности и гибкости в графическом программировании. Однако он требует глубокого понимания работы с графическими процессорами и управления ресурсами. Если ваша цель — создание высокопроизводительных кроссплатформенных приложений, изучение Vulkan станет отличным вложением времени.
https://serverspace.uz/support/glossary/root-signature.mdУзнайте, что такое Root Signature в Direct3D 12, как она управляет взаимодействием шейдеров с ресурсами GPU и почему играет ключевую роль в оптимизации рендеринга.
**Root Signature** — это ключевая концепция в графическом API **Direct3D 12**, определяющая, как шейдеры взаимодействуют с ресурсами во время рендеринга. Она выступает в роли интерфейса между кодом приложения и графическим процессором (GPU), указывая, какие ресурсы (такие как константные буферы, дескрипторные таблицы, UAV и другие) могут использоваться в шейдерах.
## Основные компоненты Root Signature
Root Signature состоит из набора записей (root parameters), каждая из которых определяет один из трех возможных типов ресурсов:
- **Root Constants** — небольшие блоки данных, передаваемые непосредственно в шейдер без использования буфера.
- **Root Descriptors** — указатели на буферы (CBV, SRV, UAV), расположенные в памяти GPU.
- **Descriptor Tables** — массивы дескрипторов, позволяющие управлять группами ресурсов (например, текстурами или буферами) с помощью одного параметра.
## Почему Root Signature важна?
В отличие от **Direct3D 11**, где использовалась сложная система состояний, **Direct3D 12** требует явного управления ресурсами. Root Signature обеспечивает более эффективное взаимодействие между CPU и GPU, уменьшая накладные расходы на переключение состояний и обеспечивая лучшую производительность.
### Пример Root Signature
Простая Root Signature, содержащая константный буфер и таблицу дескрипторов, может выглядеть так:
```
CD3DX12_ROOT_PARAMETER rootParameters[2];
rootParameters[0].InitAsConstantBufferView(0);
rootParameters[1].InitAsDescriptorTable(1, &descriptorRange);
CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc;
rootSignatureDesc.Init(2, rootParameters, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT);
```
## Итог
Root Signature в **Direct3D 12** позволяет разработчикам гибко управлять ресурсами и добиваться высокой производительности в графических приложениях. Она играет критическую роль в оптимизации взаимодействия шейдеров с памятью GPU, делая рендеринг более предсказуемым и эффективным.
https://serverspace.uz/support/glossary/uav.mdУзнайте, как UAV (Unordered Access View) в Direct3D позволяют шейдерам записывать данные без ограничений, ускоряя вычисления, рендеринг и сложные графические эффекты.
**UAV (Unordered Access View)** — это механизм в API **Direct3D** и **Vulkan**, позволяющий шейдерам записывать данные в ресурсы памяти GPU без строгой последовательности доступа. В отличие от традиционных буферов и текстур, которые могут быть только для чтения в пиксельных и вершинных шейдерах, **UAV** поддерживают одновременное чтение и запись из нескольких потоков шейдера.
## Основные особенности UAV
- **Произвольный доступ** — Данные могут быть записаны и прочитаны в любом порядке, что делает **UAV** удобным для параллельных вычислений.
- **Поддержка нескольких типов ресурсов** — UAV могут быть применены к текстурам, буферам и другим ресурсам памяти GPU.
- **Использование в вычислительных шейдерах** — UAV широко применяются в **Compute Shader**, где требуется запись больших объемов данных без жесткой структуры доступа.
- **Совместимость с различными стадиями конвейера** — В **Direct3D 12** и **Vulkan** UAV могут использоваться не только в вычислительных шейдерах, но и в пиксельных и даже геометрических шейдерах.
## Где применяется UAV?
- **Физически корректное освещение** — позволяет шейдерам записывать промежуточные расчеты глобального освещения.
- **Пост-обработка** — такие эффекты, как размытие по Гауссу или глубина резкости, могут использовать UAV для ускорения вычислений.
- **Генерация текстур и мэппинг** — например, в алгоритмах Screen Space Reflections (SSR) или voxelization.
- **Физические симуляции** — обработка динамических систем, таких как частицы или жидкости.
## Пример кода
Пример создания UAV для буфера в **Direct3D 12**:
```
D3D12_UNORDERED_ACCESS_VIEW_DESC uavDesc = {};
uavDesc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER;
uavDesc.Format = DXGI_FORMAT_UNKNOWN;
uavDesc.Buffer.FirstElement = 0;
uavDesc.Buffer.NumElements = elementCount;
uavDesc.Buffer.StructureByteStride = sizeof(MyStruct);
uavDesc.Buffer.CounterOffsetInBytes = 0;
device->CreateUnorderedAccessView(buffer, nullptr, &uavDesc, uavHandle);
```
## Итог
**UAV (Unordered Access View)** является важным инструментом для работы с памятью GPU, обеспечивая гибкость при записи и обработке данных. Благодаря своей мощности и универсальности, **UAV** активно используются в рендеринге, симуляциях и других вычислительно сложных задачах.
https://serverspace.uz/about/news/pozdravlyaem-s-dnyom-sistemnogo-administratora.mdСегодня можно не спасать прод - просто расслабьтесь и отдохните. А чтобы не заскучать - пройдите наш тест “Какой вы сисадмин?”
В этот день мы хотим сказать спасибо тем, кто остаётся за кадром, но делает возможной работу всей IT-инфраструктуры. Это люди, которые остаются спокойными даже в разгар падения сервиса, закрывают бреши в безопасности, восстанавливают бэкапы посреди ночи и знают, где находится единственно правильная версия конфигурационного файла.
В Serverspace мы знаем, что значит следить за аптаймом, срочно ставить патчи, разруливать алерты и держать систему в тонусе. Поэтому наша платформа построена с учётом нужд админов: быстрый запуск, полный root-доступ, удобный контроль и прозрачная инфраструктура.
Мы знаем, что вы заслужили паузу. Сегодня можно не спасать прод - просто расслабьтесь и отдохните. Пусть алерты сами разбираются со своими проблемами. А чтобы не заскучать - пройдите наш тест ["Какой вы сисадмин?"](https://serverspace.uz/sysadmin_day_2025.md) и узнайте, кто вы: снайпер по логам или маг бэкапов.
С Днём системного администратора - от самого сердца команды Serverspace!
[Serverspace](https://serverspace.uz/index.md) - облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Linux, Windows и российских ОС из любой точки мира менее чем за 1 минуту. Для интеграции клиентских сервисов доступны открытые инструменты API, CLI и Terraform.
https://serverspace.uz/about/news/zapustili-web-application-firewall-waf.mdЗапустили Web Application Firewall (WAF)
У нас появился новый сервис для защиты веб-приложений — **[Web Application Firewall (WAF)](https://serverspace.uz/services/waf.md)**. Он доступен в панели управления в разделе **CDN** и дополняет ускорение контента возможностью фильтровать вредоносный трафик.
По данным [отчёта](https://www.akamai.com/lp/soti/app-api-ai-security-report-2025) Akamai State of Apps and API Security 2025, число атак на веб-приложения и API в 2025 году выросло на 33% и превысило 311 миллиардов инцидентов. В фокусе атак остаются классические уязвимости: SQL-инъекции, XSS, CSRF и другие угрозы из OWASP Top-10.
Теперь Serverspace закрывает две основные потребности веб-приложений: ускорение работы через CDN и защиту от распространённых угроз с помощью WAF. Подключение занимает несколько минут и не требует сложной настройки: сразу после активации трафик проходит через готовые правила фильтрации, снижая нагрузку на сервер и блокируя подозрительные запросы.
## Ключевые возможности WAF
- Защита от атак по **OWASP Top-10** (SQL-инъекции, XSS, CSRF и др.).
- Фильтрация вредоносного трафика до уровня сервера и снижение нагрузки на инфраструктуру.
- Гибкая настройка правил под конкретный проект и его паттерны трафика.
## Как это работает
- Активируйте CDN в [панели управления Serverspace](https://auth.serverspace.uz/).
- Подключите [WAF](https://serverspace.uz/services/waf.md) в разделе **CDN** — без дополнительного ПО и сложных конфигураций.
- Трафик начнёт проходить через правила фильтрации, блокируя вредоносные запросы.
**Тарификация прозрачная:** списание происходит за каждые **10 000 запросов**.
_[Serverspace](https://serverspace.uz/index.md) – облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Linux, Windows и российских ОС из любой точки мира менее чем за 1 минуту. Для интеграции клиентских сервисов доступны открытые инструменты API, CLI и Terraform._
https://serverspace.uz/about/blog/waf-v-serverspace-zashhita-vashih-sajtov-i-veb-prilozhenij.mdРазбираем, как работает Web Application Firewall, какие атаки он блокирует и почему связка CDN + WAF стала стандартом защиты веб-приложений.
Веб-приложения сегодня стали основой цифрового бизнеса. Через них проходят покупки, платежи, регистрация пользователей, хранение информации и внутреннее взаимодействие команд. Чем ценнее сервис, тем чаще он становится целью злоумышленников.
Если раньше компании в основном сталкивались с DDoS-атаками, то сейчас лидируют другие угрозы: SQL-инъекции, XSS, подбор паролей и атаки на API. Эти методы позволяют незаметно проникнуть в систему или нарушить её работу. Автоматизация усугубляет ситуацию: боты способны просканировать тысячи сайтов и выявить уязвимости за считаные минуты.
## Определение WAF
**[Web Application Firewall (WAF)](https://serverspace.uz/services/waf.md)** – это защитный барьер, установленный между пользователем и приложением. Он анализирует HTTP(S)-трафик и решает: пропустить запрос или заблокировать его.
В отличие от сетевого файрвола, работающего только с IP-адресами и портами, WAF ориентирован на логику веб-запросов. Например:
- вместо текста в поисковую строку вставляют SQL-код;
- в форму входа за доли секунды отправляются сотни попыток авторизации.
Такие действия выявляются и пресекаются на входе, ещё до того как попадут в базу данных или приложение.
## Типовые угрозы, которые блокирует WAF
**[WAF](https://serverspace.uz/services/waf.md)** фильтрует наиболее распространённые сценарии атак:
- **SQL-инъекции** – внедрение вредоносных запросов в базу данных;
- **XSS** – внедрение скриптов для кражи данных или подмены контента;
- **Brute force и перехват сессий** – перебор паролей и попытки захвата пользовательских токенов;
- **Атаки на API** – перегрузка сервисов или эксплуатация ошибок в интерфейсах;
- **Прикладные DDoS** – атака запросами, направленная не на сеть, а на саму бизнес-логику;
- **Эксплуатация уязвимостей CMS и библиотек** – использование "дыр" в популярных системах.
Благодаря этому блокируются попытки взлома ещё до того, как они дойдут до сервера.
## Как именно работает WAF
Система сочетает разные методы анализа, чтобы обеспечивать надёжную фильтрацию:
- Сигнатурный поиск выявляет совпадения с шаблонами атак.
- Поведенческий анализ реагирует на нетипичное поведение, например слишком частые входы.
- Алгоритмы машинного обучения подстраиваются под специфику трафика конкретного сайта и сокращают число ложных срабатываний.
- Блокировка в реальном времени останавливает подозрительные запросы до их обработки сервером.
## Отличие сценариев при подключённом WAF и без него
| Ситуация | Без WAF | С WAF |
| --- | --- | --- |
| SQL-инъекция | Запрос выполняется, данные утекают | Вредоносный запрос блокируется |
| XSS | Скрипт попадает на страницу и ворует cookies | Подозрительный код фильтруется |
| Brute force | Неограниченные попытки входа | IP временно блокируется |
| Атака на API | Сервис перегружен, работа нарушена | Аномальный поток отсекается |
| Прикладной DDoS | Сайт недоступен для клиентов | Трафик фильтруется на входе |
| Уязвимости CMS | Эксплойт срабатывает до обновления | Типовые атаки блокируются автоматически |
## Мировая и региональная статистика
По данным **Akamai**, в 2024 году число атак на веб-приложения и API превысило **300 миллиардов**, что на треть больше по сравнению с предыдущим годом. Среди главных целей – e-commerce, финансовые платформы и государственные онлайн-сервисы.
В Центральной Азии также фиксируется рост киберугроз. Особенно часто атакуются интернет-магазины и сервисы с личными кабинетами, что делает защиту приложений необходимым элементом устойчивости бизнеса.
## Актуальность WAF для Узбекистана
Сегодня стандартным решением стала связка **CDN + WAF**:
- CDN ускоряет доставку контента и снижает нагрузку на сервер.
- WAF отсеивает вредоносный трафик и защищает веб-приложения от атак.
Для узбекских компаний это возможность обеспечить стабильную работу онлайн-проектов, повысить скорость сайтов и снизить риски взлома. Решение Serverspace объединяет оба инструмента и подключается за несколько минут прямо в панели управления.
## Частые ошибки при работе с WAF
- Использовать стандартные настройки без адаптации под проект.
- Считать WAF полной заменой обновлений CMS или БД.
- Не анализировать логи, в которых видны реальные атаки.
- Не обновлять правила фильтрации.
- Запускать сразу в "боевом режиме" без предварительного теста.
## Практическая польза для компаний
- Снижение риска утечек и простоев.
- Соответствие международным стандартам безопасности, включая PCI DSS.
- Экономия времени и усилий администраторов.
- Возможность гибко использовать вместе с CDN или отдельно.
**[WAF](https://serverspace.uz/services/waf.md)** – это базовый элемент современной защиты. Он блокирует самые распространённые сценарии атак, помогает бизнесу соответствовать требованиям безопасности и сохранять доверие пользователей.
В связке с CDN это ещё и быстрый, надёжный сайт. Для Узбекистана, где цифровизация идёт ускоренными темпами, такая комбинация становится необходимым условием для бизнеса.
Подключение доступно прямо в [панели управления Serverspace](https://auth.serverspace.uz/). Несколько кликов – и ваш проект получает ускорение и защиту одновременно.
https://serverspace.uz/about/news/novye-modeli-llm-uzhe-v-paneli-upravleniya.mdВ панели управления GPT API от Serverspace добавлен набор из восьми современных языковых моделей. Используйте в единой панели управления.
В [панели управления GPT API](https://auth.serverspace.uz/) от Serverspace появилась расширенная подборка из восьми актуальных языковых моделей. Каждая модель ориентирована на свой набор задач и предоставляет разные уровни логики, скорости и глубины анализа:
- **Claude Haiku 4.5** — облегчённая и быстрая модель нового поколения. Отлично подходит для живых пользовательских чатов, систем поддержки и помощников, где важны высокая скорость отклика и эффективность.
- **Gemini 3 Pro** — мощная модель Google с глубоким пониманием контекста и мультимодальными возможностями. Подходит для умных ассистентов, интеллектуального поиска и контекстно-зависимых приложений.
- **gpt-oss-20b** — производительная модель среднего размера, сочетающая скорость, доступность и устойчивое качество. Используется для корпоративных ботов, внутренних сервисов и прикладных решений.
- **Qwen3-Next 80B-A3B Instruct** — крупная и продвинутая модель, обеспечивающая сильную логику и глубокое понимание запросов. Отлично подходит для многошаговых задач, работы с кодом и многоязычных сценариев.
Единая инфраструктура теперь закрывает широкий спектр задач — от создания умных чат-ботов и автоматизации клиентской поддержки до генерации сложного контента, помощи в разработке ПО, подготовки отчётности и обработки больших объёмов данных.
Команды получают гибкость: вместо одной универсальной модели теперь можно выбирать наиболее эффективную под конкретный рабочий сценарий - будь то быстрые диалоги, точные инженерные запросы или глубокая аналитика.
_[Serverspace](https://serverspace.uz/index.md) – облачный провайдер, предоставляющий возможность автоматического развертывания виртуальной инфраструктуры на базе Linux, Windows и российских ОС. Развертывание занимает менее минуты, а для интеграции доступны API, CLI и Terraform._
https://serverspace.uz/about/news/novogodnee-koleso-fortuny-serverspace.mdКрути и выигрывай облачные призы - бонусы, бесплатный год и даже сет роллов.
Праздничное время — отличный повод добавить в повседневность немного приятной случайности. В этом году мы встречаем 2026-й с **Колесом фортуны Serverspace** — праздничной мини-игрой, в которой у каждого нового пользователя есть шанс на приз: от кэшбэка и промокодов до целого года бесплатного VPS.
Раскрутите колесо и посмотрите, с какого бонуса начнётся ваш 2026 год.
## Как это работает
- Ищите колесо фортуны на сайте - найти его совсем не сложно!
- Укажите свой e-mail в форме рядом с кнопкой.
- Нажмите "**Крутить колесо**" и узнайте, какой лот вам достался.
- Загляните в почту — письмо с подробностями по призу уже отправлено.
## Условия участия в акции
- Колесо фортуны доступно только новым пользователям, которые впервые зарегистрировали аккаунт в период проведения акции.
- Акция проходит с 15.12.25 по 30.12.25.
- Промокоды действуют только в период проведения акции.
- Для призов с бонусным балансом: бонусные средства начисляются при пополнении баланса от 10000 UZS и выше.
- Бонусный баланс начисляется только на один проект, который автоматически создаётся при регистрации.
Желаем вам счастливых праздников и удачного старта в 2026 году.
С самыми тёплыми пожеланиями,
Команда Serverspace
_[Serverspace](https://serverspace.uz/index.md) – облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Linux, Windows и российских ОС из любой точки мира менее чем за 1 минуту. Для интеграции клиентских сервисов доступны открытые инструменты API, CLI и Terraform._
https://serverspace.uz/support/glossary/deskriptor-fajla.mdУзнайте, что такое дескриптор файла (File Descriptor, FD), как они работают, важные типы дескрипторов, роль дескрипторов в операционной системе
**Дескриптор файла (File Descriptor, FD)** — это целое число, которое операционная система использует для представления открытых файлов или других объектов ввода/вывода (например, сокетов, канала связи и т. д.). Он служит уникальным идентификатором, с помощью которого процесс взаимодействует с файлом или устройством.
Количество доступных для процесса файловых дескрипторов ограничено значением параметра **/OPEN_MAX**, который задается в файле **sys/limits.h**. Также можно настроить максимальное количество дескрипторов с помощью флага -n в команде **ulimit**. Дескрипторы файлов создаются при вызовах таких функций, как open, pipe, creat и fcntl. Каждый процесс обычно использует свой собственный набор дескрипторов, но эти дескрипторы могут быть унаследованы и дочерними процессами, порожденными через функцию fork. Кроме того, дескрипторы можно копировать с использованием функций **fcntl**, **dup** и **dup2**.
## Как работает дескриптор файла
Когда процесс открывает файл или устройство (например, с помощью системного вызова open() в Linux), операционная система создает дескриптор файла для отслеживания открытого ресурса. Этот дескриптор служит ссылкой, через которую процесс может читать, записывать или управлять этим ресурсом.
- **Открытие файла**: Когда процесс вызывает функцию открытия файла (например, open()), операционная система возвращает дескриптор, который будет использоваться в дальнейшем для взаимодействия с файлом.
- **Чтение/запись**: После того как процесс получает дескриптор файла, он может использовать его для выполнения операций ввода/вывода, таких как чтение с помощью read() или запись с помощью write().
- **Закрытие файла**: Когда процесс больше не нуждается в файле, он вызывает функцию close() для освобождения дескриптора, и операционная система может закрыть файл.
Пример работы с дескриптором файла (на примере C):
```
#include #include int main() { int fd = open("example.txt", O_RDONLY); // Открываем файл для чтения if (fd == -1) { // Ошибка при открытии файла return 1; } char buffer[100]; ssize_t bytesRead = read(fd, buffer, sizeof(buffer)); // Чтение из файла if (bytesRead == -1) { // Ошибка при чтении close(fd); return 1; } write(STDOUT_FILENO, buffer, bytesRead); // Печать содержимого файла в стандартный вывод close(fd); // Закрытие дескриптора return 0; }
```
В этом примере:
open("example.txt", O_RDONLY) открывает файл для чтения и возвращает дескриптор fd.read(fd, buffer, sizeof(buffer)) использует дескриптор для чтения данных из файла.write(STDOUT_FILENO, buffer, bytesRead) выводит считанные данные на экран.close(fd) закрывает файл и освобождает дескриптор.
## Важные типы дескрипторов
**Стандартные дескрипторы**: Это заранее определенные дескрипторы, которые автоматически открыты для каждого процесса:0 — стандартный ввод (stdin).1 — стандартный вывод (stdout).2 — стандартный вывод ошибок (stderr).
## Роль дескрипторов в операционных системах
**Открытие файлов и устройств:** Дескриптор файла — это способ для операционной системы отслеживать открытые файлы и другие ресурсы ввода/вывода. Он позволяет системе управлять правами доступа и выполнять операции ввода/вывода.
**Ресурсы ввода/вывода:** Помимо файлов, дескрипторы используются для работы с другими объектами ввода/вывода, такими как сокеты, каналы, устройства, и другие файлы, не обязательно физические (например, временные файлы, потоки).
## Влияние на производительность
Дескрипторы позволяют операционной системе эффективно управлять файлами и устройствами, сводя к минимуму необходимость использовать сложные структуры данных для каждого ресурса.
Использование дескрипторов также позволяет операционной системе эффективно выделять и освобождать ресурсы, что улучшает производительность ввода/вывода.
## Функция fcntl
Функция **fcntl **предоставляет возможность управления дескрипторами открытых файлов и структуры данных, связанной с ними. С помощью этой функции можно выполнять различные операции над дескрипторами, такие как:
- Копирование дескриптора файла (аналогично функции **dup**).
- Получение или изменение флага, определяющего закрытие дескриптора при вызове **exec**.
- Отключение режима объединения дескрипторов в блоки.
- Включение режима добавления данных в конец файла с использованием флага** O_APPEND**.
- Активация отправки сигналов процессам о разрешении ввода-вывода.
- Установка и получение идентификаторов процессов или групп процессов для отправки сигнала **SIGIO**.
- Закрытие всех дескрипторов файлов.
## Пример в Linux
В Linux, каждый процесс имеет таблицу дескрипторов файлов, где индекс каждого элемента — это сам дескриптор, а значение элемента — это структура данных, которая хранит информацию о соответствующем открытом ресурсе. Например, когда процесс открывает файл, операционная система присваивает дескриптор, чтобы отслеживать его состояние, и передает этот дескриптор обратно процессу для дальнейшей работы.
Дескриптор файла — это основной механизм взаимодействия процессов с файлами и устройствами ввода/вывода в операционных системах, позволяющий системам эффективно управлять ресурсами.
https://serverspace.uz/support/glossary/git-clean.mdУзнайте, что такое Git Clean, как он работает, основные опции команды git clean, примеры использования, важные замечания и примеры вывода
**Git Clean** — это команда в Git, которая используется для удаления неотслеживаемых файлов и директорий из рабочей директории. Это полезная команда для очистки вашего проекта от файлов, которые не находятся под версионным контролем, таких как временные файлы, сгенерированные во время сборки или тестирования, или файлы, которые были случайно добавлены в рабочую директорию, но не были проиндексированы.
## Как работает git clean
Когда вы работаете с Git, вы можете создать или скачать файлы, которые не были добавлены в репозиторий, и они не отслеживаются системой контроля версий. Время от времени может быть полезно удалить такие файлы, чтобы они не захламляли ваш проект. Команда git clean позволяет очистить рабочую директорию от этих неотслеживаемых файлов.
## Основные опции команды git clean
```
-n или --dry-run
```
Это "сухой запуск" (или "предварительный просмотр"). Команда покажет, какие файлы будут удалены, но не будет их на самом деле удалять.
```bash
git clean -n
```
## Пример вывода
-f или --force: Это обязательная опция для выполнения фактической очистки. Без этой опции команда не будет удалять файлы, даже если это указано в опциях.
```bash
git clean -f
```
-d: Эта опция удаляет не только неотслеживаемые файлы, но и неотслеживаемые директории.
```bash
git clean -fd
```
-x: Удаляет все неотслеживаемые файлы, включая те, которые указаны в .gitignore. Это полезно, если вы хотите очистить проект от файлов, которые обычно игнорируются, например, временные файлы IDE или файлы сборки.
```bash
git clean -fx
```
-X: Удаляет только файлы, указанные в .gitignore, но не удаляет другие неотслеживаемые файлы.
```bash
git clean -fX
```
## Примеры использования
Просмотр, какие файлы будут удалены:
```bash
git clean -n
```
Это покажет, какие неотслеживаемые файлы или директории будут удалены.
Очистка неотслеживаемых файлов:
```bash
git clean -f
```
Очистка неотслеживаемых файлов и директорий:
```bash
git clean -fd
```
Удаление всех файлов, указанных в .gitignore
```bash
git clean -fX
```
## Когда использовать git clean
- **Очистка временных файлов**: Если вы случайно создали или скачали файлы, которые не добавили в Git (например, файлы логов или временные файлы редактора), можно использовать git clean для их удаления.
- **Удаление лишних директорий**: Иногда в процессе разработки могут быть созданы неотслеживаемые папки, которые нужно удалить.
- **Уборка после сборки**: Когда вы собираете проект (например, компиляция, создание артефактов), могут появиться файлы, которые не нужны в репозитории, и git clean поможет их удалить.
## Важные замечания
- **Безопасность**: Будьте осторожны при использовании git clean, так как удаленные файлы не восстанавливаются, если они не были добавлены в Git. Используйте опцию -n для предварительного просмотра, чтобы избежать потери данных.
- **Использование с .gitignore**: Если файлы, которые нужно удалить, указаны в .gitignore, то опция -x может быть полезна для их удаления
## Основные флаги git clean
Команда git clean используется для удаления неотслеживаемых файлов и директорий в репозитории Git. Вот основные флаги этой команды:
**-f (или --force):** Обязателен для выполнения команды. Без этого флага команда не удаляет файлы.
Пример:
```bash
git clean -f
```
**-n (или --dry-run):** Показывает, какие файлы будут удалены, но не удаляет их. Это позволяет предварительно увидеть, что будет удалено.
Пример:
```bash
git clean -n
```
**-d:** Удаляет неотслеживаемые директории, а не только файлы.
Пример:
```bash
git clean -f -d
```
**-x:** Удаляет все неотслеживаемые файлы, включая те, которые игнорируются с помощью .gitignore.
Пример:
```bash
git clean -f -x
```
**-X:** Удаляет только те файлы, которые игнорируются Git'ом (например, файлы в .gitignore), но не удаляет другие неотслеживаемые файлы.
Пример:
```bash
git clean -f -X
```
**-e **: Позволяет исключить из удаления файлы, которые соответствуют указанному шаблону.
Пример:
```bash
git clean -f -e "*.log"
```
Эти флаги можно комбинировать в зависимости от нужд очистки репозитория
https://serverspace.uz/support/glossary/find-linux.mdУзнайте, что такое команда find в Linux, ее часто используемые опции и как ее использовать для поиска по владельцу, для поиска файлов
Команда **find** в Linux — это универсальное средство для поиска файлов и директорий в файловой системе, предлагающее широкий набор опций для детальной настройки поиска. С её помощью можно искать файлы по различным признакам, включая имя, размер, дату последнего изменения и другие характеристики. Рассмотрим основные возможности команды:
## Синтаксис
```
find [путь] [условия] [действие]
```
путь: директория, где начинается поиск (по умолчанию — текущая директория).
условия: критерии для фильтрации файлов (например, по имени, размеру и т.д.).
действие: что делать с найденными файлами (например, выводить их на экран, удалять или изменять).
## Основные методы использования
Поиск файлов по имени
```
find /home/user -name "file.txt"
```
Найдет файл file.txt в директории /home/user и её подкаталогах.
Поиск файлов с игнорированием регистра
```
find /home/user -iname "file.txt"
```
Найдет файлы с именем file.txt или FILE.TXT, независимо от регистра.
## Поиск файлов по расширению
```
find /home/user -name "*.jpg"
```
Найдет все файлы с расширением .jpg в указанной директории.
## Поиск файлов, изменённых за последние N дней
```
find /home/user -mtime -7
```
Найдет файлы, которые были изменены за последние 7 дней. Если нужно искать файлы, измененные более чем 7 дней назад, используйте +7.
## Поиск файлов по размеру
```
find /home/user -size +100M
```
Найдет файлы, размер которых больше 100 МБ.
## Поиск по правам доступа
find /home/user -perm 644
Найдет файлы с правами доступа 644.
## Поиск и выполнение действия с найденными файлами
find /home/user -name "*.log" -exec rm {} \;
Найдет все файлы с расширением .log и удалит их. {} — это плейсхолдер для каждого найденного файла, а \; завершает команду exec.
## Поиск файлов по владельцу
```
find /home/user -user root
```
Найдет все файлы, принадлежащие пользователю root.
## Поиск пустых файлов
```
find /home/user -empty
```
Найдет все пустые файлы и каталоги.
## Часто используемые опции
**-type:** позволяет искать файлы по типу (например, -type f для обычных файлов, -type d для директорий).
**-maxdepth** и **-mindepth**: ограничивает глубину поиска. Например, -maxdepth 2 ищет файлы только в текущей и одной вложенной директории.
**-print:** выводит путь к каждому найденному файлу (обычно используется по умолчанию).
Пример комбинированного использования:
```
find /var/log -name "*.log" -size +10M -exec gzip {} \;
```
Этот пример найдет все **.log** файлы размером более 10 МБ в директории /var/log и сожмет их с помощью gzip.
Команда find может быть очень полезной в автоматизации задач администрирования системы, например, для очистки старых логов или поиска специфичных файлов.
https://serverspace.uz/support/glossary/autovacuum.mdУзнайте, как работает Autovacuum в PostgreSQL, какие задачи он решает и как настроить его параметры для оптимальной работы базы данных. Разбираем ключевые настройки, примеры использования и рекомендации по повышению производительности.
## Что такое Autovacuum?
**Autovacuum** — встроенный в PostgreSQL фоновый процесс, автоматически выполняющий команды **VACUUM **и **ANALYZE**. Он очищает базу данных от устаревших версий строк, освобождает дисковое пространство и обновляет статистику оптимизатора запросов. Этот механизм играет ключевую роль в поддержании стабильной производительности базы данных, предотвращая чрезмерный рост таблиц и снижение скорости обработки запросов.
## Для чего нужен Autovacuum?
PostgreSQL использует механизм **MVCC (Multi-Version Concurrency Control)**, который позволяет транзакциям работать с "снимками" данных без блокировки. Однако это приводит к накоплению устаревших строк (так называемых "мертвых" записей), которые больше не используются, но продолжают занимать место на диске.
Если эти записи не удалять, размер базы данных будет бесконтрольно расти, а производительность запросов — снижаться. Чтобы предотвратить это, PostgreSQL применяет:
- **VACUUM** — удаляет мертвые строки и освобождает место для новых данных.
- **ANALYZE** — обновляет статистику базы данных, чтобы планировщик запросов выбирал наиболее эффективные стратегии выполнения.
## Как работает Autovacuum?
Фоновый процесс Autovacuum запускается автоматически и выполняет `VACUUM` и `ANALYZE` для таблиц, в которых количество измененных строк превышает порог, заданный в настройках конфигурации.
Основные процессы Autovacuum:
- **VACUUM **— удаляет неиспользуемые данные, освобождая место.
- **ANALYZE **— обновляет статистику, помогая оптимизатору запросов выбирать наилучшие планы выполнения.
- **Autovacuum Daemon** — мониторит активность в таблицах и запускает **VACUUM** и **ANALYZE**, если изменения превышают заданные пороги.
## Настройки Autovacuum
Механизм автоматической очистки базы данных в PostgreSQL регулируется параметрами, которые можно задать в файле **postgresql.conf **или индивидуально для каждой таблицы.
**Основные параметры:**
- **autovacuum = on **— включает или отключает автоматическую очистку базы (по умолчанию включено).
- **autovacuum_vacuum_threshold** — минимальное количество удаленных или измененных записей в таблице, после которого запускается **VACUUM**.
- **autovacuum_analyze_threshold** — порог изменений, при котором запускается **ANALYZE**.
- **autovacuum_vacuum_scale_factor** — процент измененных строк, при достижении которого срабатывает **VACUUM**.
- **autovacuum_analyze_scale_factor** — аналогичный параметр для **ANALYZE**.
- **autovacuum_naptime** — интервал между проверками активности таблиц (по умолчанию 60 секунд).
- **autovacuum_max_workers** — максимальное количество процессов, выполняющих **Autovacuum**.
## Пример настройки Autovacuum
Допустим, у нас есть большая таблица **orders**, в которой часто происходят обновления и удаления записей. Чтобы изменить параметры Autovacuum только для этой таблицы, можно использовать команду:
```sql
ALTER TABLE orders SET (autovacuum_vacuum_threshold = 1000, autovacuum_analyze_threshold = 500);
```
Эта настройка приведет к тому, что **VACUUM **будет запускаться после удаления или изменения 1000 строк, а **ANALYZE **— после 500.
## Когда стоит отключить Autovacuum?
В большинстве случаев Autovacuum полезен, но бывают ситуации, когда его работу стоит контролировать вручную:
- **Высоконагруженные OLTP-системы,** где автоматическая очистка может мешать выполнению критически важных запросов.
- **Таблицы, которые обновляются пакетами,** — в этом случае лучше выполнять **VACUUM** вручную после массовых обновлений.
- **Тестовые среды**, где можно настроить **VACUUM **по расписанию вместо постоянного мониторинга.
## Заключение
Autovacuum в PostgreSQL — важный инструмент, поддерживающий базу данных в чистом и оптимизированном состоянии. Он автоматически освобождает место от устаревших данных, обновляет статистику запросов и предотвращает деградацию производительности. Гибкая система настроек позволяет адаптировать его работу под конкретные нагрузки, балансируя между автоматизацией и ручным управлением.
## Полезные материалы в базе знаний Serverspace
Для более глубокого изучения работы Autovacuum и администрирования PostgreSQL можно обратиться к базе знаний [Serverspace](https://serverspace.ru/support/)— справочному ресурсу с подробными статьями, инструкциями и практическими рекомендациями. Здесь собраны материалы по настройке и оптимизации баз данных, включая управление процессами автоматической очистки, конфигурацию параметров **autovacuum**, а также мониторинг и устранение проблем производительности. Использование базы знаний Serverspace помогает администраторам эффективно управлять ресурсами базы данных, снижать нагрузку на сервер и повышать стабильность работы PostgreSQL.
https://serverspace.uz/support/glossary/b-tree.mdУзнайте, как B-Tree индексы в PostgreSQL обеспечивают быструю и эффективную индексацию данных, ускоряя поиск и оптимизируя запросы в базах данных.
**B-Tree (сбалансированное дерево)** — это структура данных, используемая в PostgreSQL для организации индексов. Она представляет собой самобалансирующееся дерево поиска, оптимизированное для хранения и извлечения данных в системах с большими объемами информации.
## Особенности B-Tree
- **Сбалансированность** — Все листья находятся на одном уровне, что обеспечивает стабильную глубину дерева и предсказуемое время поиска.
- **Эффективный поиск** — Вставка, удаление и поиск выполняются за O(log n), что делает B-Tree эффективным даже при больших объемах данных.
- **Поддержка диапазонных запросов** — Благодаря упорядоченной структуре B-Tree отлично подходит для поиска значений в заданном диапазоне.
- **Минимизация обращений к диску** — PostgreSQL использует B-Tree с учетом работы с дисковой памятью, уменьшая количество операций ввода-вывода за счет хранения узлов в страницах фиксированного размера.
## Как PostgreSQL использует B-Tree
В PostgreSQL B-Tree применяется в качестве стандартного метода индексирования. Создание индекса B-Tree выполняется с помощью команды:
```sql
CREATE INDEX index_name ON table_name USING btree (column_name);
```
Этот индекс ускоряет операции **SELECT**, **WHERE** и **ORDER BY**, особенно на больших таблицах.
## Внутреннее устройство
B-Tree в PostgreSQL состоит из:
- **Корневого узла** — верхнего уровня дерева, содержащего ссылки на дочерние узлы.
- **Внутренних узлов** — промежуточных уровней, служащих для навигации.
- **Листовых узлов** — нижнего уровня, содержащего указатели на строки таблицы.
## Заключение
B-Tree — это ключевая структура данных в PostgreSQL, обеспечивающая быструю индексацию и поиск данных. Она используется по умолчанию в большинстве индексов и играет важную роль в оптимизации запросов, делая работу с большими базами данных эффективной и производительной.
https://serverspace.uz/support/glossary/cte.mdУзнайте, что такое Common Table Expression (CTE) в PostgreSQL, как использовать WITH-запросы для упрощения SQL-кода, повышения читаемости и работы с рекурсивными данными.
**Common Table Expression (CTE)** – это временный результат запроса, который можно использовать в основном SQL-запросе. CTE помогает упростить сложные запросы, делает их более читаемыми и улучшает производительность в некоторых сценариях.
## Что такое CTE?
**CTE** – это именованный временный набор данных, определяемый с помощью ключевого слова **WITH**. Он существует только в пределах одного SQL-запроса и позволяет использовать результаты промежуточных вычислений многократно, что особенно полезно при работе со сложными объединениями и рекурсивными запросами.
## Синтаксис CTE
CTE объявляется перед основным SQL-запросом с использованием `WITH`:
```sql
WITH temporary_table AS (
SELECT column1, column2
FROM some_table
WHERE condition
)
SELECT * FROM temporary_table;
```
Здесь **temporary_table** – это временное имя CTE, которое можно использовать в последующем **SELECT**.
## Преимущества CTE
- **Упрощение кода** – CTE позволяет разбивать сложные SQL-запросы на более понятные части.
- **Повторное использование данных** – Можно обращаться к CTE несколько раз в основном запросе, избегая дублирования кода.
- **Ускорение работы с рекурсией** – CTE позволяет выполнять рекурсивные запросы, что полезно, например, для обработки иерархических данных (например, древовидных структур).
## Пример использования
Допустим, у нас есть таблица **employees**, содержащая информацию о сотрудниках и их менеджерах. Чтобы найти всех подчиненных конкретного менеджера, можно использовать рекурсивный CTE:
```sql
WITH RECURSIVE subordinates AS (
SELECT id, name, manager_id
FROM employees
WHERE id = 1 -- ID менеджера
UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
INNER JOIN subordinates s ON e.manager_id = s.id
)
SELECT * FROM subordinates;
```
Этот запрос находит всех сотрудников, подчиненных менеджеру с **id = 1**, включая подчиненных их подчиненных.
## Ограничения CTE
- CTE не сохраняется в памяти между запросами – он существует только в рамках одного выполнения SQL-команды.
- В некоторых случаях производительность CTE может быть ниже, чем у подзапросов или временных таблиц, особенно если PostgreSQL не оптимизирует его повторное использование.
## Где найти больше информации
Если вас интересуют другие аспекты работы с PostgreSQL, [в базе знаний Serverspace](https://serverspace.ru/support/) вы найдете множество полезных материалов и практических руководств по администрированию, настройке и оптимизации баз данных.
https://serverspace.uz/support/glossary/check-constraint.mdУзнайте, что такое CHECK Constraint в PostgreSQL — ограничение, обеспечивающее соответствие данных заданным условиям. Разберём синтаксис, примеры использования, преимущества и ограничения.
**CHECK Constraint** – это ограничение на уровне таблицы в PostgreSQL, которое гарантирует, что значения в определённом столбце или нескольких столбцах соответствуют заданному логическому условию. Оно помогает поддерживать целостность данных, предотвращая запись некорректных значений в базу.
## Как работает CHECK Constraint?
Когда вставляются или обновляются данные, PostgreSQL проверяет, выполняется ли условие, указанное в ограничении **CHECK**. Если значение не соответствует этому условию, операция вставки (**INSERT**) или обновления (**UPDATE**) будет отклонена с ошибкой.
## Синтаксис CHECK Constraint
Ограничение **CHECK **можно задать при создании таблицы:
```sql
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
age INT CHECK (age >= 18),
salary DECIMAL(10,2) CHECK (salary > 0)
);
```
В этом примере:
- **age >= 18** – запрещает вставку сотрудников младше 18 лет.
- **salary > 0** – не допускает нулевые или отрицательные значения заработной платы.
Можно также добавить ограничение **CHECK **к существующей таблице:
```sql
ALTER TABLE employees ADD CONSTRAINT check_salary_positive CHECK (salary > 0);
```
## Пример использования
Допустим, у нас есть таблица **orders**, в которой мы хотим ограничить значения столбца **status **определёнными вариантами:
```sql
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
status TEXT CHECK (status IN ('pending', 'shipped', 'delivered', 'canceled'))
);
```
Теперь при попытке вставить или обновить статус на значение, не входящее в указанный список, PostgreSQL выдаст ошибку.
## Преимущества CHECK Constraint
- **Гарантия целостности данных** – Позволяет контролировать диапазон допустимых значений.
- **Гибкость** – Можно задавать сложные логические условия.
- **Снижение ошибок на уровне базы** – Исключает необходимость проверки данных только на уровне приложения.
## Ограничения и особенности
- CHECK не предотвращает **NULL**-значения, если явно не указано **NOT NULL**.
- В отличие от **FOREIGN KEY**, не может ссылаться на другие таблицы.
- Может повлиять на производительность при обработке больших объёмов данных, так как каждое изменение проверяется на соответствие условию.
## Где найти больше информации?
В [базе знаний Serverspace](https://serverspace.ru/support/) вы найдёте больше материалов по PostgreSQL, включая настройку индексов, управление транзакциями и оптимизацию производительности базы данных.
https://serverspace.uz/support/glossary/explain-analyze.mdУзнайте, как использовать команду EXPLAIN ANALYZE в SQL для анализа и оптимизации запросов. Разбираем структуру вывода, типы выполнения, стоимость операций и способы ускорения работы базы данных.
**EXPLAIN ANALYZE **— это мощный инструмент в SQL, который позволяет разработчикам и администраторам баз данных анализировать, как именно выполняется запрос. Он показывает пошаговый план выполнения, включая используемые индексы, количество обработанных строк и затраченное время.
## Как работает EXPLAIN ANALYZE?
Команда **EXPLAIN ANALYZE** выполняет запрос и предоставляет детализированный отчёт о его выполнении. В отличие от обычного **EXPLAIN**, который просто строит прогнозируемый план, **EXPLAIN ANALYZE** действительно выполняет запрос и измеряет фактические показатели.
## Пример запроса:
```
EXPLAIN ANALYZE SELECT * FROM users WHERE email = "test@example.com";
```
Пример вывода:
```
Seq Scan on users (cost=0.00..35.50 rows=1 width=64) (actual time=0.032..0.033 rows=1 loops=1)
Filter: (email = 'test@example.com'::text)
Rows Removed by Filter: 999
Planning Time: 0.082 ms
Execution Time: 0.045 ms
```
## Основные элементы вывода
**1. Тип выполнения (Scan type)**
- **Seq Scan** — полный просмотр всех строк таблицы (замедляет выполнение на больших объёмах данных).
- **Index Scan** — поиск по индексу (более эффективно).
- **Index Only Scan** — поиск по индексу без обращения к таблице.
- **Bitmap Heap Scan** — комбинированный поиск с использованием битовой карты.
**2. Оценочная стоимость (cost=...)**
Ожидаемая стоимость выполнения операции в виртуальных единицах.
Формат: (начальная_стоимость..финальная_стоимость), где первая цифра — начальная стоимость, а вторая — суммарная стоимость.
**3. Фактическое время (actual time=...)**
Реальное время выполнения операции (в миллисекундах).
**4**.** Количество обработанных строк (rows=...)**
Сколько строк было возвращено на данном этапе запроса.
**5. Количество повторений (loops=...)**
Сколько раз эта операция выполнялась.
## Оптимизация с помощью EXPLAIN ANALYZE
**1. Добавление индексов**
Если запрос выполняет Seq Scan, это может означать отсутствие индекса. Добавление индекса ускорит поиск:
```sql
CREATE INDEX idx_users_email ON users(email);
```
После этого **EXPLAIN ANALYZE** должен показать **Index Scan** вместо **Seq Scan**.
**2. Использование VACUUM ANALYZE**
Если статистика базы данных устарела, запросы могут выполняться неэффективно. Команда **ANALYZE **обновляет статистику:
```
VACUUM ANALYZE;
```
**3. Переписывание запроса**
Иногда можно изменить запрос, чтобы заставить оптимизатор использовать более быстрый план. Например:
- Использование **JOIN **вместо подзапросов.
- Замена **IN **на **EXISTS**.
**4. Разбиение таблиц (Partitioning)**
Если таблица слишком велика, её можно разбить на разделы (PARTITION), чтобы ускорить поиск.
## Заключение
Команда **EXPLAIN ANALYZE **— важнейший инструмент для анализа и оптимизации SQL-запросов. Она помогает выявлять узкие места в производительности, определять, какие индексы нужны, и улучшать структуру базы данных для более эффективной работы.
https://serverspace.uz/support/glossary/full-text-search.mdУзнайте, что такое Full-Text Search, как работает полнотекстовый поиск, где он применяется и какие технологии обеспечивают быструю и точную обработку текстовых данных.
**Full-Text Search (Полнотекстовый поиск)** — технология поиска, позволяющая находить релевантные документы на основе анализа их текстового содержимого. В отличие от традиционного поиска по метаданным или индексированным ключевым словам, полнотекстовый поиск обрабатывает весь текст документа, учитывая морфологические особенности языка, синонимы и даже близость слов.
## Ключевые особенности Full-Text Search
- **Токенизация и нормализация** — разбиение текста на слова и приведение их к базовой форме (например, "поиск", "поисковый" → "поиск").
- **Индексация** — создание структуры данных, ускоряющей поиск и позволяющей работать с большими объемами текстовой информации.
- **Ранжирование** — определение релевантности найденных документов на основе частоты встречаемости, расстояния между словами и других факторов.
- **Поддержка сложных запросов** — включая булев поиск, поиск по фразам и семантический анализ.
## Где применяется Full-Text Search?
- В поисковых системах (Google, Elasticsearch, Sphinx).
- В базах данных (PostgreSQL, MySQL, MongoDB) для быстрого поиска по текстовым полям.
- В корпоративных документах, чатах, форумах и CRM-системах.
- В e-commerce и маркетплейсах для поиска товаров по описаниям.
## Примеры встроенного полнотекстового поиска
- **PostgreSQL** предоставляет механизм tsvector и tsquery для работы с текстом, включая поддержку синонимов и языковых настроек.
- **Elasticsearch** использует анализаторы и обратный индекс для быстрого поиска по неструктурированному тексту.
- **MySQL** поддерживает полнотекстовый поиск с оператором MATCH() AGAINST().
**Full-Text Search** — это мощный инструмент для работы с текстовой информацией, позволяющий значительно повысить качество поиска и улучшить пользовательский опыт.
https://serverspace.uz/support/glossary/mvcc.mdУзнайте, как MVCC (Multi-Version Concurrency Control) позволяет пользователям работать с базой данных без блокировок, обеспечивая высокую производительность и изоляцию транзакций. Разберём принципы работы, преимущества, недостатки и примеры использования в популярных СУБД.
**MVCC (Multi-Version Concurrency Control)** — это технология, позволяющая нескольким пользователям одновременно работать с данными в базе без ожидания завершения чужих операций. Вместо непосредственного изменения записей система создает их новые версии, обеспечивая параллельную обработку запросов без блокировок. Такой подход дает возможность транзакциям получать данные в том виде, в котором они были на момент их начала, независимо от последующих изменений.
## **Принципы работы MVCC**
При использовании **MVCC** каждая транзакция оперирует данными в том состоянии, в котором они находились на момент её старта. Когда пользователь вносит изменения, система не перезаписывает существующую информацию, а создает новую версию записи. Это позволяет:
- **Избежать блокировок** при одновременном чтении и записи.
- **Гарантировать изолированность транзакций**, предотвращая взаимное влияние.
- **Повысить производительность** при высоких нагрузках за счет параллельного выполнения операций.
## **Преимущества MVCC**
**Чтение без блокировок** — транзакции на чтение не мешают транзакциям на запись, что значительно ускоряет обработку данных.
**Изоляция транзакций** — поддержка различных уровней изоляции, включая **Snapshot Isolation, Read Committed** и **Repeatable Read**.
**Минимизация задержек** — отсутствие ожидания между транзакциями повышает скорость выполнения запросов.
## **Недостатки MVCC**
**Рост объема хранимых данных** — из-за множества версий записей увеличивается потребность в дисковом пространстве.
**Необходимость очистки старых версий** — требуется периодическая сборка мусора (**Garbage Collection**) для удаления устаревших данных.
**Сложность реализации** — механизмы управления версиями требуют дополнительной логики в СУБД, что увеличивает сложность разработки и администрирования.
## **Примеры использования**
**MVCC** широко применяется в ведущих реляционных и NoSQL-базах данных:
- **PostgreSQL** — использует MVCC для высокой производительности и конкурентного доступа.
- **Oracle** — реализует механизм **UNDO**, хранящий старые версии записей.
- **MySQL (InnoDB)** — поддерживает MVCC через **UNDO логи**.
- **Microsoft SQL Server (Snapshot Isolation)** — снижает количество блокировок за счет многоверсионности.
## **Заключение**
**MVCC** — это ключевой механизм, обеспечивающий эффективную работу многопользовательских систем без задержек из-за блокировок. Несмотря на сложности управления версиями данных и необходимость очистки устаревших записей, этот метод делает базы данных более масштабируемыми, устойчивыми к нагрузкам и удобными для пользователей.
https://serverspace.uz/support/glossary/partitioning.mdУзнайте, как партиционирование таблиц помогает ускорить запросы, упростить управление данными и повысить масштабируемость. Разбираем виды разбиения (Range, List, Hash), их применение и примеры кода для популярных СУБД.
**Partitioning** — это техника разделения больших таблиц на более мелкие логические секции (разделы), что способствует ускорению выполнения запросов, облегчает администрирование данных и повышает гибкость масштабирования системы.
## **Основные типы разделения (Partitioning Types)**
- **Range Partitioning (Диапазонное разделение)**
Таблица делится на разделы на основе заданного интервала значений в одном или нескольких столбцах.
- Пример: Разделение данных по годам.
- **Пример SQL (PostgreSQL)**:
```sql
CREATE TABLE transactions (transaction_id SERIAL PRIMARY KEY,
transaction_date DATE NOT NULL,
total DECIMAL NOT NULL
) PARTITION BY RANGE (transaction_date);CREATE TABLE transactions_2022PARTITION OF transactions
FOR VALUES FROM ('2022-01-01') TO ('2022-12-31');CREATE TABLE transactions_2023 PARTITION OF transactions
FOR VALUES FROM ('2023-01-01') TO ('2023-12-31');
```
- **List Partitioning (Списочное разделение)**
Данные распределяются в разделы на основе списка значений.
- Полезно, когда есть фиксированные категории, например, регионы или типы клиентов.
- **Пример**: Разделение по странам.
```sql
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
country TEXT NOT NULL
) PARTITION BY LIST (country);
CREATE TABLE customers_usa PARTITION OF customers
FOR VALUES IN ('USA');
CREATE TABLE customers_europe PARTITION OF customers
FOR VALUES IN ('Germany', 'France', 'UK');
```
- **Hash Partitioning (Хеш-разделение)**
Данные равномерно распределяются по нескольким разделам с помощью хеш-функции.
- Хорошо подходит для балансировки нагрузки.
- **Пример**: Разделение данных пользователей на 4 части.
```sql
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT NOT NULL
) PARTITION BY HASH (id);
CREATE TABLE users_p0 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 0);
CREATE TABLE users_p1 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 1);
CREATE TABLE users_p2 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 2);
CREATE TABLE users_p3 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 3);
```
- **Composite Partitioning (Комбинированное разделение)**
Комбинация разных типов partitioning, например, **Range + Hash**.
- **Пример**: Разделение данных по годам (Range) и дальше по хешу **user_id** (Hash).
## **Преимущества использования Partitioning**
**Ускорение запросов** — индексы применяются только к нужным разделам, уменьшая объем сканирования.
**Облегчённое управление** — можно легко удалять или архивировать старые данные без блокировки основной таблицы.
**Балансировка нагрузки** — разделение нагрузки между разделами при хешировании.
**Эффективное резервное копирование** — можно делать бэкап только отдельных секций.
## **Недостатки и ограничения**
- Усложнение логики запросов.
- Не все СУБД поддерживают динамическое добавление разделов.
- В некоторых случаях индексирование на партицированной таблице работает хуже.
## **Поддержка в различных СУБД**
- **PostgreSQL** – Полная поддержка, начиная с версии 10.
- **MySQL** – Поддерживает Range, List, Hash, но с ограничениями.
- **Oracle** – Развитая система партиционирования, включая подвиды.
- **SQL Server** – Поддерживает Range и List через Partitioned Tables.
## FAQ по Partitioning
**В каких случаях стоит использовать партиционирование?**
Если у вас есть крупные таблицы (миллионы или миллиарды строк), которые регулярно используются в аналитических запросах или требуют частого удаления/архивирования старых данных, разбиение на разделы поможет ускорить работу и упростить управление.
**Улучшает ли Partitioning скорость всех запросов?**
Нет, партиционирование в первую очередь помогает в сценариях, где запросы фильтруют данные по ключу партиции (например, по дате или категории). Однако, если запрос затрагивает сразу несколько разделов, выигрыш в производительности может быть минимальным.
**Можно ли добавить новую партицию динамически?**
В большинстве СУБД (например, PostgreSQL, Oracle) можно заранее настроить автоматическое создание новых секций. Однако в MySQL требуется вручную добавлять разделы.
**Как работает индексация на партицированных таблицах?**
Каждая секция может иметь свой отдельный индекс, но в некоторых случаях это приводит к дополнительным накладным расходам при поиске по всей таблице. Выбор индексации зависит от типа данных и запросов.
**Можно ли изменять структуру одной партиции без влияния на другие?**
Нет, изменение структуры одной секции (например, добавление столбца) затрагивает всю таблицу, так как схема должна оставаться единой для всех разделов.
Использование **Partitioning** оправдано для больших таблиц (миллионы и миллиарды строк), особенно если данные естественным образом группируются по датам, категориям или хешу.
https://serverspace.uz/support/glossary/public-key.mdУзнайте, как Public Key используется в криптографии для шифрования данных, проверки цифровых подписей и безопасного обмена информацией.
## Что такое Public Key?
**Public Key (открытый ключ)** — это часть криптографической системы с асимметричными ключами, используемой для шифрования, проверки цифровых подписей и аутентификации. В отличие от закрытого ключа (Private Key), Public Key доступен всем и служит для взаимодействия с владельцем соответствующего закрытого ключа.
## Как работает Public Key?
Асимметричная криптография опирается на пару ключей:
- **Private Key (закрытый ключ)** — хранится в секрете и используется для расшифровки данных или подписи сообщений.
- **Public Key (открытый ключ)** — доступен публично и применяется для шифрования сообщений и проверки подписей.
Когда данные зашифровываются Public Key, их может расшифровать только владелец соответствующего Private Key. Аналогично, если сообщение подписано закрытым ключом, его подлинность можно подтвердить с помощью соответствующего Public Key.
## Где используется Public Key?
### 1. **Шифрование данных**
Public Key используется в протоколах шифрования, таких как PGP и TLS. Например, когда веб-сайт использует HTTPS, браузер получает Public Key сервера для безопасного обмена данными.
### 2. **Цифровые подписи**
Public Key применяется в цифровых подписях для проверки подлинности документов, транзакций и сообщений. Электронные подписи гарантируют, что данные не были изменены после подписания.
### 3. **Блокчейн и криптовалюты**
В блокчейнах Public Key используется для создания адресов кошельков и проверки транзакций. Например, в биткоине адрес кошелька — это производная от Public Key, и его можно использовать для проверки поступления средств.
### 4. **Аутентификация и безопасность**
В системах SSH Public Key позволяет пользователям безопасно подключаться к серверам без необходимости вводить пароли. В двухфакторной аутентификации Public Key может использоваться для подтверждения личности.
## Безопасность Public Key
Хотя Public Key можно свободно распространять, его защита также имеет значение:
- **Аутентичность**: важно убедиться, что Public Key действительно принадлежит предполагаемому владельцу. Для этого используются цифровые сертификаты.
- **Связь с Private Key**: если закрытый ключ скомпрометирован, злоумышленник сможет расшифровывать данные и подделывать цифровые подписи.
## Заключение
Public Key играет ключевую роль в обеспечении безопасности данных, защищая конфиденциальность и аутентичность информации. Его применение охватывает широкий спектр технологий — от криптовалют до веб-безопасности и цифровых подписей. Для эффективного использования важно понимать принципы работы асимметричной криптографии и следить за безопасностью ключей.
## FAQ
**Можно ли расшифровать сообщение, зная только Public Key?** Нет, для расшифровки данных требуется соответствующий Private Key.
**Как проверить подлинность Public Key?** Для этого используются цифровые сертификаты, выпускаемые сертификационными центрами (CA).
**Что делать, если Public Key скомпрометирован?** Хотя Public Key сам по себе не позволяет злоумышленникам получить Private Key, его подмена может привести к атаке "человек посередине". В таком случае важно обновить ключи и уведомить всех пользователей.
https://serverspace.uz/support/glossary/glsl.mdУзнайте, что такое GLSL (OpenGL Shading Language), как работает язык шейдеров и где он применяется. Разберем основные виды шейдеров, примеры кода и ключевые особенности синтаксиса.
**GLSL (OpenGL Shading Language)** — специализированный язык программирования для шейдеров, применяемый в **OpenGL** для контроля рендеринга на графическом процессоре (**GPU**). Он позволяет разрабатывать сложные визуальные эффекты, настраивать освещение, управлять текстурами и создавать реалистичные материалы в играх и графических приложениях.
## Основные возможности GLSL
GLSL — это высокоуровневый язык программирования, предназначенный для написания шейдеров в OpenGL. В отличие от языков, таких как **C++** или **Python**, код на GLSL выполняется **на видеокарте**, что обеспечивает высокую скорость обработки графики.
**GLSL поддерживает:**
- Параллельные вычисления (использует множество потоков на **GPU**)
- Работу с векторами и матрицами (упрощает обработку **3D-графики**)
- Высокую производительность (работает напрямую с графическим железом)
## Где применяется GLSL?
GLSL активно используется в различных сферах:
- **Игры** – для реалистичного освещения, теней, отражений и постобработки.
- **Мобильные приложения** – ускоренная графика в **OpenGL ES**.
- **3D-моделирование** – в программах, таких как **Blender** и **Unity**.
- **Визуальные эффекты** – генерация частиц, размытие, глитч-эффекты и анимации.
## Виды шейдеров в GLSL
GLSL используется для написания **шейдеров** — небольших программ, отвечающих за обработку графики. В OpenGL существуют несколько видов шейдеров:
### Вершинный шейдер (**Vertex Shader**)
Обрабатывает **каждую вершину объекта**: его позицию, цвет и нормали.
Пример простого **вершинного шейдера**:
```
#version 450
layout(location = 0) in vec3 position; // Входная позиция вершины
```
```
void main() {
gl_Position = vec4(position, 1.0); // Вычисляем экранную координату
}
```
### Фрагментный шейдер (**Fragment Shader**)
Определяет **цвет каждого пикселя**, который будет нарисован.
Пример простого **фрагментного шейдера**:
#version 450
out vec4 FragColor;
void main() {
FragColor = vec4(1.0, 0.0, 0.0, 1.0); // Красный цвет
}[/code]
### Геометрический шейдер (**Geometry Shader**)
Создает или модифицирует примитивы (**точки, линии, треугольники**) перед их рендерингом.
### Тесселяционные шейдеры (**Tessellation Control & Evaluation Shaders**)
Используются для **динамического деления поверхностей** на более мелкие части, что полезно для создания детализированной геометрии.
### Компьютерный шейдер (**Compute Shader**)
Отличается от остальных тем, что не участвует в рендеринге напрямую. Он выполняет вычисления на **GPU**, например, для **физики, обработки данных и генерации текстур**.
## Как работает GLSL?
Процесс рендеринга с **GLSL** проходит несколько этапов:
- **Вершинный шейдер** обрабатывает геометрию.
****
- **Геометрический и тесселяционный шейдеры** (если есть) изменяют форму объекта.
****
- **Фрагментный шейдер** рассчитывает цвет пикселей.
****
- **OpenGL** выводит изображение на экран.
GLSL позволяет полностью контролировать процесс рендеринга, создавая **красивые и оптимизированные** сцены.
## Особенности синтаксиса GLSL
GLSL похож на **C**, но имеет ряд особенностей:
**Использует специальные типы данных для работы с векторами и матрицами**:
- vec2, vec3, vec4 – векторы
- mat2, mat3, mat4 – матрицы
Встроенные функции для работы с графикой:
- mix(a, b, t) – линейная интерполяция
- clamp(x, min, max) – ограничение значения в диапазоне
- dot(a, b) и cross(a, b) – скалярное и векторное произведения
Поддерживает **препроцессинг** (#define, #ifdef) – для гибкости кода.
Пример кода с **векторами**:
```
vec3 color = vec3(1.0, 0.5, 0.2);
vec3 brightColor = color * 2.0; // Увеличиваем яркость
```
## Заключение
GLSL — это мощный инструмент для управления графикой в **OpenGL**.
- Позволяет использовать **возможности GPU** на полную
- Применяется в **играх, анимации и 3D-приложениях**
- Позволяет создавать **сложные графические эффекты**
https://serverspace.uz/support/glossary/lod.mdУзнайте, что такое LOD (Level of Detail) простым языком и с примерами использования.
**LOD (Level of Detail, уровень детализации)** — это метод в компьютерной графике, предназначенный для повышения производительности за счёт динамического регулирования сложности 3D-объектов в зависимости от их удалённости от камеры. Чем дальше объект от зрителя, тем менее детализированной становится его геометрия, что позволяет экономить вычислительные ресурсы.
## Как работает LOD?
Суть метода заключается в том, что для одного объекта создаются несколько версий с разным уровнем детализации. В зависимости от расстояния и других факторов, движок выбирает наиболее подходящую модель:
- **Высокополигональная модель** — используется для ближнего плана, когда объект занимает значительную часть экрана.
- **Среднедетализированная модель** — применяется на средних дистанциях, уменьшая нагрузку на графический процессор.
- **Низкополигональная модель** — используется на дальних расстояниях, минимизируя затраты ресурсов.
- **Билборды (спрайты)** — в некоторых случаях на самых дальних расстояниях объекты заменяются на плоские текстуры с нарисованными деталями.
## Виды LOD
Существует несколько подходов к реализации LOD:
- **Геометрический LOD** — изменение количества полигонов в зависимости от расстояния до камеры.
- **Текстурный LOD** — подстановка текстур разного разрешения для дальних объектов, чтобы снизить нагрузку на видеопамять.
- **Пиксельный LOD** — динамическое уменьшение уровня детализации во время рендеринга, например, через методы MIP-мэппинга.
- **Импостеры** — упрощенные версии объектов, представленные в виде заранее запеченных изображений или текстур.
## Применение LOD в геймдеве
LOD активно используется в игровых движках (Unreal Engine, Unity) и других графических приложениях, таких как:
- **Открытые миры** (например, The Witcher 3, GTA V) — обеспечивает рендеринг обширных сцен при минимальном влиянии на производительность.
- **VR и мобильные игры** — снижает нагрузку на устройства с ограниченными ресурсами.
- **Симуляторы и CAD-приложения** — повышает производительность при работе со сложными 3D-моделями.
## FAQ – Часто задаваемые вопросы о LOD
**Как работает технология LOD?**
LOD (Level of Detail) динамически изменяет уровень детализации объектов в зависимости от их расстояния до камеры. Близкие объекты отображаются с высокой детализацией, тогда как дальние – с упрощённой геометрией, что снижает нагрузку на GPU и повышает производительность.
**Где применяется LOD?**
LOD широко используется в видеоиграх, симуляторах, архитектурной визуализации и других графических приложениях, требующих рендеринга больших сцен.
**Влияет ли LOD на качество графики?**
Если LOD настроен корректно, игрок или пользователь практически не заметит изменений в качестве, так как переход между уровнями детализации выполняется плавно. Однако чрезмерное упрощение моделей на дальних расстояниях может сделать объекты менее реалистичными.
**Какие бывают методы реализации LOD?**
Существуют различные методы LOD, включая геометрический LOD (упрощение полигонов), текстурный LOD (уменьшение разрешения текстур), impostor-техники (использование спрайтов вместо моделей) и тесселяционный LOD (динамическое деление полигонов в зависимости от удалённости).
## Заключение
LOD является ключевым методом оптимизации графики, позволяющим балансировать между качеством визуала и производительностью. Правильное использование уровней детализации помогает создавать масштабные игровые миры без критической нагрузки на систему.
https://serverspace.uz/support/glossary/opengl.mdУзнайте, что такое OpenGL, как он используется для рендеринга 2D и 3D-графики, в чём его отличия от DirectX и Vulkan, а также где он применяется в геймдеве, визуализации и инженерных решениях.
**OpenGL** — это универсальный API, предназначенный для рендеринга как 2D-, так и 3D-графики на различных платформах. Разработанный компанией **Silicon Graphics** в 1992 году, он постепенно превратился в один из основополагающих инструментов для работы с графикой в видеоиграх, системах визуализации данных, CAD-средах и других мультимедийных приложениях. OpenGL предоставляет программный интерфейс, который позволяет разработчикам работать с графическим оборудованием независимо от конкретной операционной системы или модели видеокарты.
## Основные возможности OpenGL
- **Аппаратное ускорение** — эффективное использование GPU для рендеринга графики.
- **Работа с 2D и 3D-графикой** — поддержка сложных графических примитивов, текстурирования и шейдеров.
- **Гибкость и расширяемость** — возможность использования различных расширений для добавления новых функций.
- **Кроссплатформенность** — поддерживается на Windows, Linux, macOS, а также в мобильных устройствах через OpenGL ES.
## Версии OpenGL
OpenGL активно развивался, получая новые возможности с каждым обновлением. Ключевые версии:
- **OpenGL 1.0 (1992)** — базовая функциональность, рендеринг простых примитивов.
- **OpenGL 2.0 (2004)** — введение **GLSL (OpenGL Shading Language)**, позволившего писать кастомные шейдеры.
- **OpenGL 3.0 (2008)** — отказ от устаревших фиксированных функций, переход к программируемому конвейеру.
- **OpenGL 4.0 (2010)** — поддержка **тесселяции**, вычислительных шейдеров и улучшенного управления памятью GPU.
## OpenGL vs. DirectX vs. Vulkan
- **OpenGL** — гибкий и кроссплатформенный, но менее оптимизированный по сравнению с низкоуровневыми API.
- **DirectX** — чаще используется в Windows-играх, интегрирован в экосистему Microsoft.
- **Vulkan** — преемник OpenGL, предлагающий более низкоуровневый контроль над GPU, что даёт прирост производительности.
## Применение OpenGL
- **Разработка игр** — многие игровые движки поддерживают OpenGL в качестве графического API.
- **Визуализация данных** — научные и инженерные приложения используют OpenGL для отрисовки сложных графиков.
- **Графические редакторы** — 3D-моделирование, рендеринг сцен и другие инструменты.
## FAQ (Часто задаваемые вопросы)
**1. Можно ли использовать OpenGL в современных играх?**
Да, но большинство разработчиков предпочитают **DirectX** или **Vulkan** из-за более высокой производительности.
**2. Поддерживается ли OpenGL на мобильных устройствах?**
Да, существует **OpenGL ES**, оптимизированный для мобильных платформ.
**3. Нужно ли изучать OpenGL, если есть Vulkan?**
OpenGL проще в освоении и остаётся актуальным в разработке графических приложений, но для низкоуровневого программирования предпочтительнее Vulkan.
## Итог
**OpenGL** остаётся мощным инструментом для создания графики, обеспечивая разработчикам удобный интерфейс для работы с GPU. Несмотря на появление **Vulkan**, API всё ещё широко применяется в различных сферах, включая **игры, визуализацию и научные исследования**.
https://serverspace.uz/support/glossary/cad-sistema.mdСовременные технологии позволяют создавать сложные проекты с высокой точностью и минимальными затратами. Узнайте, какие инструменты используют инженеры, архитекторы и дизайнеры для работы с 3D-моделями и чертежами.
Современное проектирование немыслимо без компьютерных технологий. Одним из ключевых инструментов инженеров, архитекторов и дизайнеров являются **CAD-системы (Computer-Aided Design)** — программное обеспечение для автоматизированного проектирования. Они позволяют создавать чертежи, 3D-модели, проводить анализ конструкций и даже готовить файлы для производства.
В этой статье мы разберем, что такое CAD-системы, их преимущества, области применения и популярные решения на рынке.
## Что такое CAD-система?
**CAD (Computer-Aided Design)** — это программное обеспечение, которое используется для проектирования и моделирования различных объектов. В зависимости от области применения CAD-системы могут использоваться для:
- Инженерного проектирования деталей и механизмов.
- Архитектурного моделирования зданий и интерьеров.
- Разработки печатных плат (PCB).
- Создания анимации и графики.
В отличие от традиционного черчения на бумаге, CAD-системы позволяют быстро редактировать чертежи, проводить расчеты и анализ, а также использовать трехмерное моделирование.
## Преимущества использования CAD-систем
Использование CAD-систем дает множество преимуществ:
- **Высокая точность** – Все чертежи создаются с высокой детализацией и без погрешностей.
- **Экономия времени** – Автоматизация процессов ускоряет проектирование и уменьшает число ошибок.
- **3D-моделирование** – Позволяет визуализировать проект до его реализации.
- **Анализ и симуляция** – Можно провести расчеты прочности, нагрузки, теплопередачи и других параметров.
- **Гибкость** – Легко изменять и адаптировать проекты без необходимости их полного переделывания.
- **Интеграция с CAM и CAE** – Связь с производственными системами и инженерным анализом.
## Области применения CAD-систем
CAD-системы используются во множестве отраслей:
- **Машиностроение** – Разработка деталей, механизмов и промышленных изделий.
- **Строительство и архитектура** – Проектирование зданий, инфраструктуры и интерьеров.
- **Авиационная и автомобильная промышленность** – Создание сложных конструкций и тестирование аэродинамики.
- **Электроника** – Разработка печатных плат и микроэлектроники.
- **Ювелирное дело** – 3D-моделирование украшений и точный расчет параметров изделий.
- **Геймдев и CGI** – Использование CAD-моделей в анимации и игровой индустрии.
## Популярные CAD-системы
На рынке существует множество решений, ориентированных на разные задачи:
- **AutoCAD** – Один из самых популярных инструментов для 2D- и 3D-проектирования.
- **SolidWorks** – Используется в машиностроении и промышленном дизайне.
- **Fusion 360** – Облачное CAD-решение с возможностями симуляции и CAM.
- **CATIA** – Применяется в авиационной, автомобильной и судостроительной промышленности.
- **PTC Creo** – Инструмент для проектирования и инженерного анализа.
- **Revit** – Специализированный софт для архитектурного проектирования и BIM.
- **FreeCAD** – Бесплатное программное обеспечение для моделирования.
## Будущее CAD-систем
Современные CAD-системы продолжают развиваться, включая в себя новые технологии:
- **Искусственный интеллект (ИИ)** – Упрощает проектирование и автоматизирует рутинные задачи.
- **Облачные технологии** – Позволяют работать с проектами в любом месте.
- **Генеративный дизайн** – Автоматически предлагает оптимальные варианты конструкции.
- **Дополненная и виртуальная реальность** – Улучшает визуализацию и взаимодействие с моделями.
## Заключение
CAD-системы — это мощные инструменты, без которых сложно представить современное проектирование. Они позволяют создавать точные модели, проводить расчеты и готовить проекты к производству. В зависимости от задач можно выбрать простое бесплатное решение или профессиональный пакет с продвинутыми функциями.
Если вы работаете в сфере инженерии, архитектуры или дизайна, освоение CAD-систем откроет перед вами новые возможности и значительно повысит продуктивность.
https://serverspace.uz/support/glossary/descriptor-tables.mdУзнайте, как Descriptor Tables в Direct3D 12 помогают оптимизировать работу с ресурсами GPU! Этот мощный механизм позволяет эффективно управлять буферами и текстурами, минимизировать задержки и ускорять рендеринг. Читайте статью, чтобы разобраться в принципах работы и примерах использования Descriptor Tables.
**Descriptor Tables (таблицы дескрипторов)** – это механизм управления ресурсами в Direct3D 12, который позволяет группировать и передавать дескрипторы ресурсов в шейдеры через **Root Signature**. Они упрощают управление большим количеством ресурсов, таких как текстуры, буферы и UAV (Unordered Access Views), предоставляя более эффективный способ организации доступа к данным на GPU.
## Основные характеристики Descriptor Tables
- **Гибкость и масштабируемость** – Позволяют передавать сразу несколько ресурсов, уменьшая накладные расходы на установку состояний.
- **Эффективность** – Упрощают работу с большим количеством ресурсов, снижая затраты на API-вызовы.
- **Организация доступа к данным** – Объединяют несколько дескрипторов в одну структуру, что ускоряет доступ к ресурсам внутри шейдера.
## Использование Descriptor Tables в Direct3D 12
В Direct3D 12 дескрипторы управляются с помощью **Descriptor Heaps**, а Descriptor Tables позволяют группировать их для удобного доступа из шейдеров. Процесс работы с ними включает несколько этапов:
- **Создание дескрипторного хипа (Descriptor Heap)**
```
D3D12_DESCRIPTOR_HEAP_DESC heapDesc = {};
heapDesc.NumDescriptors = 10;
heapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV;
heapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE;
device->CreateDescriptorHeap(&heapDesc, IID_PPV_ARGS(&descriptorHeap));
```
- **Создание Descriptor Table в Root Signature**
```
D3D12_ROOT_PARAMETER rootParam = {};
rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
rootParam.DescriptorTable.NumDescriptorRanges = 1;
D3D12_DESCRIPTOR_RANGE descriptorRange = {};
descriptorRange.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV;
descriptorRange.NumDescriptors = 1;
descriptorRange.BaseShaderRegister = 0;
rootParam.DescriptorTable.pDescriptorRanges = &descriptorRange;
```
- **Привязка дескрипторов к командному списку**
```
commandList->SetDescriptorHeaps(1, &descriptorHeap);
commandList->SetGraphicsRootDescriptorTable(0, descriptorHeap->GetGPUDescriptorHandleForHeapStart());
```
## Где применяются Descriptor Tables?
- **Текстурирование** – Позволяют передавать в шейдеры сразу несколько текстур без необходимости множества отдельных привязок.
- **Постобработка** – Упрощают доступ к нескольким промежуточным буферам для фильтрации изображений и обработки эффектов.
- **Компьютерные шейдеры** – Обеспечивают удобный доступ к большим объемам данных при выполнении сложных вычислений на GPU.
- **Рендеринг материалов** – Позволяют эффективно управлять ресурсами для рендеринга сложных материалов с множеством текстур и параметров.
## Заключение
**Descriptor Tables** – это мощный механизм управления ресурсами в Direct3D 12, который значительно оптимизирует передачу данных в шейдеры. Они позволяют уменьшить количество API-вызовов, повысить производительность и упростить управление сложными графическими сценами, обеспечивая более эффективное использование аппаратных возможностей GPU.
https://serverspace.uz/support/glossary/descriptor-heaps.mdУзнайте, что такое Descriptor Heaps в Direct3D 12, какие их виды существуют и как они помогают управлять ресурсами GPU. Разберитесь в создании и использовании дескрипторных кучи для эффективного рендеринга.
**Descriptor Heaps** — это один из ключевых механизмов управления ресурсами в графическом API Direct3D 12. Они представляют собой массивы дескрипторов ресурсов, упрощающие и ускоряющие доступ к данным во время рендеринга.
## Основные концепции
В Direct3D 12 дескрипторы используются для представления ресурсов, таких как текстуры, буферы и сэмплеры. Descriptor Heap — это специальная область памяти, содержащая эти дескрипторы, позволяя графическому процессору (GPU) быстро получать доступ к нужным данным.
## Типы Descriptor Heaps
В Direct3D 12 предусмотрены четыре типа Descriptor Heap:
- **CBV/SRV/UAV Heap** — используется для хранения дескрипторов:
**CBV (Constant Buffer View)** — представление константных буферов.
- **SRV (Shader Resource View)** — представление ресурсов, используемых в шейдерах (например, текстур и структурированных буферов).
- **UAV (Unordered Access View)** — представление ресурсов, к которым можно обращаться без соблюдения порядка (например, для вычислений в Compute Shader).
- **Sampler Heap** — содержит дескрипторы сэмплеров, управляющих фильтрацией и адресацией текстур.
- **RTV Heap (Render Target View)** — хранит дескрипторы рендер-таргетов (RTV), которые используются в качестве целевых буферов рендеринга.
- **DSV Heap (Depth Stencil View)** — хранит дескрипторы глубины и трафаретных буферов (DSV), обеспечивающих тестирование глубины и трафаретные операции.
## Создание и использование Descriptor Heaps
Для создания Descriptor Heap используется структура D3D12_DESCRIPTOR_HEAP_DESC, в которой задаются:
- Тип heap-а (Type — CBV_SRV_UAV, SAMPLER, RTV, DSV).
- Количество дескрипторов (NumDescriptors).
- Флаги (Flags — например, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE, если heap должен быть доступен в шейдерах).
- Уровень ноды (NodeMask) для мультиадаптерных систем.
Пример создания descriptor heap для RTV:
```
D3D12_DESCRIPTOR_HEAP_DESC renderTargetHeapDesc = {};
renderTargetHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV;
renderTargetHeapDesc.NumDescriptors = 1;
renderTargetHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE;
device->CreateDescriptorHeap(&renderTargetHeapDesc, IID_PPV_ARGS(&rtvHeap));
```
## Управление дескрипторами
После создания Descriptor Heap необходимо выделять дескрипторы для ресурсов. Это можно сделать с помощью **device->Create...View**, например:
```
device->CreateRenderTargetView(renderTarget, nullptr, rtvHeap->GetCPUDescriptorHandleForHeapStart());
```
Здесь **GetCPUDescriptorHandleForHeapStart()**возвращает **D3D12_CPU_DESCRIPTOR_HANDLE**, указывающий на начало heap-а.
Если heap используется в шейдерах, необходимо устанавливать его через SetDescriptorHeaps и связывать таблицы дескрипторов с SetGraphicsRootDescriptorTable или SetComputeRootDescriptorTable.
### Заключение
Descriptor Heaps играют важную роль в управлении ресурсами в Direct3D 12, предоставляя гибкий и производительный механизм доступа к данным. Оптимальное использование Descriptor Heaps позволяет значительно повысить эффективность работы GPU и улучшить производительность рендеринга.
https://serverspace.uz/support/glossary/msaa-multisample-anti-aliasing.mdУзнайте, как MSAA (Multisample Anti-Aliasing) помогает улучшить качество графики в играх, снижая ступенчатость без сильной нагрузки на видеокарту. Разбираем принцип работы, плюсы, минусы и сравнение с другими методами сглаживания!
**MSAA (Multisample Anti-Aliasing)** — это один из распространённых алгоритмов сглаживания в компьютерной графике, предназначенный для минимизации визуальных артефактов, возникающих на границах объектов. Этот метод помогает сделать изображение более плавным и естественным, уменьшая эффект ступенчатости (aliasing) без значительного снижения производительности.
### Принцип действия
В отличие от классического суперсемплинга (SSAA), который требует рендеринга всей сцены в увеличенном разрешении с последующим понижением масштаба, MSAA избирательно повышает детализацию только в областях с резкими границами. Это позволяет значительно улучшить качество визуализации при сравнительно небольших затратах ресурсов.
MSAA работает следующим образом:
- **Выбор образцов (samples)** — для каждого пикселя рендерятся несколько выборочных точек (обычно 2x, 4x, 8x), но шейдер выполняется только один раз на пиксель.
- **Глубина и цвет** — значения глубины (Z-buffer) и покрытия (coverage) вычисляются для каждого подвыборочного пункта, что помогает корректно смешивать цвета на границах объектов.
- **Финальный рендеринг** — после обработки пиксели усредняются, создавая сглаженные края.
### Преимущества MSAA
- **Оптимальное сочетание качества и быстродействия** — обеспечивает сглаживание без чрезмерной нагрузки на видеокарту, в отличие от ресурсоёмкого SSAA.
- **Хорошая совместимость** с различными графическими API, включая DirectX и OpenGL.
- **Отличное качество сглаживания краев** при умеренных затратах на вычисления.
### Недостатки MSAA
- **Не влияет на внутренние текстуры и шейдерные эффекты** — некоторые элементы (например, полупрозрачные текстуры и пост-обработка) не сглаживаются.
- **Больший объем видеопамяти (VRAM) для буфера кадров** — чем больше выборок (samples), тем выше нагрузка на память.
- **Неэффективен для сглаживания тонких деталей** (например, травы, волос или сложных текстур).
### Сравнение с альтернативными методами сглаживания
- **FXAA (Fast Approximate Anti-Aliasing)** — один из самых быстрых алгоритмов, который использует постобработку, но может снижать резкость текстур, создавая эффект размытия.
- **TAA (Temporal Anti-Aliasing)** — анализирует кадры в динамике, чтобы уменьшить алиасинг, однако иногда оставляет следы движения (ghosting) и размывает мелкие детали.
- **SSAA (Super-Sample Anti-Aliasing)** — метод с наилучшим качеством сглаживания, так как рендерит изображение в сверхвысоком разрешении, но при этом крайне требователен к ресурсам.
### FAQ (Часто задаваемые вопросы)
**Можно ли комбинировать MSAA с другими методами сглаживания?**
Да, некоторые движки поддерживают гибридные методы, например, сочетание MSAA и FXAA или TAA, что помогает устранить недостатки каждого отдельного метода.
**Какой режим MSAA выбрать: 2x, 4x, 8x?**
Чем выше множитель (samples), тем лучше сглаживание, но тем больше нагрузка на видеокарту. Оптимальный выбор зависит от мощности GPU и требований к качеству изображения.
**MSAA работает с прозрачными текстурами?**
Стандартный MSAA не применяет сглаживание к альфа-текстурам, но некоторые реализации, такие как Alpha-To-Coverage, позволяют частично решить эту проблему.
### Заключение
MSAA — это компромиссное решение для улучшения качества изображения в 3D-играх. Он обеспечивает высокое качество сглаживания краев без чрезмерной потери производительности. Однако современные игры все чаще используют гибридные методы сглаживания, такие как TAA и DLSS, которые учитывают динамику сцены и применяют интеллектуальные алгоритмы для повышения производительности и качества визуализации.
https://serverspace.uz/support/glossary/vertex-buffer-object-vbo.mdЧто такое VBO (Vertex Buffer Object) в OpenGL? Узнайте, как этот инструмент помогает оптимизировать рендеринг, хранить вершинные данные в видеопамяти и ускорять работу графического процессора.
**Vertex Buffer Object (VBO)** – это инструмент OpenGL, предназначенный для размещения данных о вершинах (координаты, нормали, цвета, текстурные координаты и прочие атрибуты) непосредственно в видеопамяти GPU. Использование VBO позволяет значительно ускорить рендеринг за счёт уменьшения объёма передаваемых данных между CPU и GPU.
## Принцип работы
VBO создаётся и управляется с помощью API OpenGL. Данные загружаются в видеопамять один раз, а затем GPU использует их для рендеринга, минимизируя обращения к оперативной памяти и снижая накладные расходы.
## Основные этапы работы с VBO
1. Создание VBO с помощью `glGenBuffers()`.
2. Привязка буфера с помощью `glBindBuffer(GL_ARRAY_BUFFER, bufferID)`.
3. Заполнение буфера данными с помощью `glBufferData()`.
4. Настройка атрибутов вершин (например, `glVertexAttribPointer()`).
5. Использование VBO в процессе рендеринга с `glDrawArrays()` или `glDrawElements()`.
6. Освобождение ресурсов (`glDeleteBuffers()`).
## Преимущества VBO
- Уменьшение нагрузки на CPU за счёт передачи данных в видеопамять.
- Более эффективное использование памяти GPU.
- Улучшенная производительность рендеринга за счёт уменьшения количества вызовов API.
- Гибкость в управлении данными: можно использовать VBO совместно с VAO (Vertex Array Object) для упрощения работы с атрибутами вершин.
Как может выглядеть код:
```
GLuint vertexBuffer;
glGenBuffers(1, &vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
GLfloat vertexData[] = {
0.0f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f
};
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_STATIC_DRAW);
```
## Вывод
VBO – это ключевой инструмент оптимизации в OpenGL, позволяющий хранить и использовать данные о вершинах более эффективно, что критически важно для высокопроизводительного рендеринга в современных 3D-приложениях.
https://serverspace.uz/support/glossary/obektnoe-hranilishhe.mdУзнайте, что такое объектное хранилище, его ключевые особенности, преимущества и примеры использования. Эффективное управление данными для современных IT-решений
**Объектное хранилище (Object Storage)** — это современный метод управления данными, где информация разбивается на отдельные сущности, называемые объектами. Каждый объект включает в себя данные, метаинформацию и уникальный идентификатор, что делает его самостоятельной и легко управляемой единицей. Этот подход отличается от традиционных методов, таких как файловое или блочное хранение, и обладает уникальными характеристиками.
## Основные особенности объектного хранилища
- **Организация данных**
Объекты хранятся в контейнерах или бакетах (buckets), а не в виде привычных файлов или блоков.
- **Метаинформация**
Каждый объект снабжен подробным набором метаданных, что облегчает управление и поиск информации.
- **Идентификация**
Объектам присваиваются уникальные идентификаторы, позволяющие быстро находить и восстанавливать данные.
- **Масштабируемость**
Такие системы отлично справляются с увеличением объема данных, что делает их подходящими для хранения больших массивов неструктурированной информации.
## Преимущества объектного хранилища
- **Упрощение управления**
Благодаря метаданным становится проще организовывать данные по атрибутам и категориям.
- **Повышенная эффективность работы.**
Объектное хранилище оптимизировано для работы с большими объемами данных.
- **Надежность**
Данные дублируются и распределяются по нескольким узлам, что повышает их сохранность и доступность.
## Интеграция через API
Большинство решений поддерживают удобные интерфейсы (например, S3 API) для интеграции с различными сервисами.
## Применение объектного хранилища
- **Мультимедиа**
Идеально подходит для хранения фотографий, видео и аудио.
- **Резервные копии и архивы**
Обеспечивает долгосрочное и надежное хранение данных.
- **Большие данные и машинное обучение**
Используется для хранения массивов информации, применяемых в аналитике и тренинге моделей.
## Популярные решения
- **Amazon S3**
Самый популярный сервис объектного хранения.
- **Google Cloud Storage**
Решение от Google с высокой надежностью.
- **Microsoft Azure Blob Storage**
Предоставляет гибкие возможности для различных данных.
- **OpenStack Swift**
Открытая платформа, подходящая для частных облаков.
## Узнайте больше
Если вы хотите углубить свои знания об объектном хранилище и других облачных технологиях, загляните в[базу знаний Serverspace](https://serverspace.ru/support/). Там вы найдете подробные статьи, руководства и объяснения ключевых терминов, которые помогут вам лучше разобраться в современных IT-решениях.
Объектное хранилище приобретает всё большую популярность благодаря своей универсальности, способности масштабироваться и эффективному управлению данными. Оно предоставляет удобные API-интерфейсы для интеграции и отлично справляется с обработкой больших объемов информации.
https://serverspace.uz/support/glossary/rsyslog.mdУзнайте, что такое rsyslog, его основные характеристики, примеры применения, примеры использования и почему он является мощным инструментом
rsyslog — это современный и мощный демон для управления системными логами в операционных системах Linux и Unix. Он является расширенной версией стандартного Syslog и предоставляет дополнительные возможности для сбора, фильтрации, хранения и передачи логов.
## Основные характеристики rsyslog
- **Модульность**: rsyslog поддерживает модульную архитектуру, что позволяет добавлять или удалять модули для работы с различными источниками и типами сообщений.
- **Фильтрация и маршрутизация**: rsyslog предлагает гибкие возможности для фильтрации сообщений, что позволяет настраивать маршрутизацию логов в зависимости от их содержания, уровня важности и других критериев.
- **Поддержка различных протоколов**: Он может принимать логи не только через стандартный UDP и TCP, но и через другие протоколы, такие как RELP (Reliable Event Logging Protocol), что улучшает надежность передачи данных.
- **Запись в разные форматы**: rsyslog может записывать логи в различных форматах, включая текстовые файлы, базы данных и системные журналы, что упрощает интеграцию с другими инструментами.
- **Поддержка шаблонов**: rsyslog позволяет настраивать шаблоны для форматирования сообщений, что дает возможность создавать более понятные и структурированные логи.
- **Безопасность**: Он поддерживает шифрование и аутентификацию для защиты логов при их передаче по сети.
## Применение rsyslog
- **Централизованное логирование**: rsyslog часто используется для сбора логов с нескольких серверов и устройств в одном месте, что облегчает мониторинг и анализ.
- **Анализ и отладка**: Логи, собранные с помощью rsyslog, помогают администраторам выявлять и устранять проблемы в работе системы и приложений.
- **Безопасность**: rsyslog может собирать сообщения о событиях безопасности и помогать в расследовании инцидентов.
## Примеры использования
rsyslog широко используется в современных дистрибутивах Linux и может быть настроен для работы с различными системами и приложениями, обеспечивая надежное и эффективное управление логами.
В целом, rsyslog является мощным инструментом для администраторов и разработчиков, позволяя организовать и оптимизировать процесс логирования в Linux-системах.
https://serverspace.uz/support/glossary/relp.mdУзнайте, что за протокол такой RELP, где он применяется, его основные характеристики и почему RELP является важным протоколом в логировании
RELP (Reliable Event Logging Protocol) — это протокол, разработанный для надежной передачи логов и сообщений событий по сети. Он был создан как альтернатива более традиционным протоколам, таким как Syslog, обеспечивая дополнительные гарантии доставки и целостности данных.
## Основные характеристики RELP
- **Надежность**: RELP обеспечивает надежную передачу сообщений, что означает, что сообщения не теряются даже в случае временных сбоев сети. Если сообщение не может быть доставлено, оно будет автоматически повторно отправлено.
- **Управление потоком**: Протокол включает механизмы управления потоком, что позволяет избежать перегрузки сети и системы, обрабатывающей логи.
- **Поддержка различных форматов**: RELP может использоваться для передачи сообщений в различных форматах, что делает его гибким для работы с разными системами логирования.
- **Асинхронность**: Протокол позволяет асинхронную передачу данных, что увеличивает производительность и снижает задержки при отправке сообщений.
- **Простота интеграции**: RELP легко интегрируется с такими системами, как rsyslog и syslog-ng, что позволяет использовать его в существующих инфраструктурах логирования.
## Применение RELP
- **Централизованное логирование**: RELP часто используется для передачи логов с удаленных серверов и устройств в централизованное хранилище логов, обеспечивая надежность и целостность данных.
- **Безопасность**: Протокол может быть использован в системах, где важна защита логов и их надежная передача, что особенно актуально в области безопасности информации.
RELP является важным протоколом в области логирования, обеспечивая надежную и эффективную передачу сообщений в современных распределенных системах. Его использование помогает снизить риск потери данных и улучшить управление логами в сложных сетевых инфраструктурах.
https://serverspace.uz/support/glossary/kernel-module-modul-yadra.mdУзнайте, что такое модуль ядра (Linux Kernel Module), примеры работы с ним, где находятся модули ядра, зачем нужны модули ядра
**Модуль ядра (Kernel Module)** представляет собой программный элемент, который можно загрузить в ядро операционной системы или удалить из него без необходимости перезагрузки всей системы. Благодаря модулям ядра операционная система может динамически расширять свои возможности, обеспечивая поддержку новых устройств или добавляя дополнительные функции.
## Принципы работы модулей ядра
Модули ядра взаимодействуют с основным ядром системы, предоставляя код, который загружается при необходимости. Такой подход помогает сохранять ядро компактным и эффективным, загружая дополнительные компоненты только в случаях, когда они требуются.
## Примеры использования модулей ядра включают
- **Поддержка новых драйверов устройств** (например, драйвера для видеокарты, сетевого адаптера, USB-устройства).
- **Дополнительные файловые системы** (например, добавление поддержки файловой системы btrfs).Расширенные сетевые функции (например, специальные протоколы).
## Как загружать и выгружать модули
Модули ядра в Linux обычно имеют расширение **.ko (kernel object)** и управляются с помощью нескольких команд:
**insmod**: Команда для загрузки модуля ядра вручную. Например:
```
sudo insmod my_module.ko
```
**modprobe**: Более удобная команда для загрузки модуля, учитывающая зависимости между модулями. Например:
```
sudo modprobe my_module
```
**rmmod**: Команда для выгрузки модуля ядра. Например:
```
sudo rmmod my_module
```
**lsmod**: Команда для отображения списка всех загруженных модулей ядра.
## Зачем нужны модули ядра?
- **Гибкость**: Модули ядра можно добавлять и удалять в зависимости от требований, что делает систему более гибкой и управляемой.
- **Оптимизация ресурсов**: Поддержка драйверов для каждого устройства может не понадобиться постоянно, поэтому модули позволяют загружать драйвера только тогда, когда они нужны.
- **Легкость разработки**: Разработчики могут тестировать и обновлять модули ядра без необходимости пересобирать все ядро, что ускоряет процесс разработки и отладки.
## Примеры модулей ядра
- **Драйверы устройств**: Например, модули, обеспечивающие поддержку сетевых карт, видеокарт или принтеров.
- **Файловые системы**: Поддержка дополнительных типов файловых систем, таких как xfs или nfs, реализована через модули ядра.
- **Сетевые модули**: Модули для VPN-протоколов, маршрутизации, контроля доступа к сети и т. д.
## Пример работы с модулями
Допустим, вы подключили новое USB-устройство к компьютеру. Чтобы устройство заработало, ядру может понадобиться загруженный драйвер. Если драйвер поддерживается модулем ядра, он будет автоматически загружен. Вы можете проверить, загружен ли модуль, с помощью команды lsmod.
## Управление зависимостями
Если один модуль нуждается в другом для корректной работы (например, сетевой драйвер требует определённых функций ядра), команда modprobe автоматически загружает все зависимые модули. В свою очередь, rmmod удаляет модуль только в случае, если он больше не задействован другими компонентами системы
## Где находятся модули ядра?
Модули ядра хранятся в каталоге /lib/modules// и могут быть просмотрены и управляемы через команды, перечисленные выше.
## Разработка модулей ядра
Разработка модулей ядра Linux — это процесс создания кода, который расширяет или изменяет функциональность ядра операционной системы без необходимости его перекомпиляции. Модули ядра могут быть загружены или выгружены в/из ядра по мере необходимости, что позволяет динамично добавлять новые возможности, такие как поддержка оборудования, файловых систем или других служб.
## Важные моменты
- **Безопасность**: Загруженные модули имеют высокий уровень доступа к системе, поэтому небезопасные или вредоносные модули могут причинить значительный ущерб.
- **Стабильность**: Поскольку модули ядра работают на уровне системы, ошибки в модулях могут привести к сбоям или зависаниям операционной системы.
Модули ядра делают Linux гибким и настраиваемым, что делает его популярным выбором как для серверов и рабочих станций, так и для встроенных систем
https://serverspace.uz/support/glossary/tty-teletype.mdУзнайте, что такое TTY (Teletype), историю создания, современное значение, разновидности , примеры использования и связь terminal linux и tty
**TTY (Teletype)** — это термин, который произошел от старых телетайпных машин, использовавшихся для ввода и вывода текстовой информации. В современных операционных системах TTY обозначает текстовые терминалы или интерфейсы командной строки, которые позволяют взаимодействовать с системой через текстовые команды.
## История TTY
Изначально телетайпы (Teletypewriters) были электромеханическими устройствами, использовавшимися для отправки и получения текстовых сообщений через проводные сети. Они играли ключевую роль в ранних вычислительных системах, позволяя операторам взаимодействовать с компьютерами.
С появлением операционных систем Unix термин "TTY" стал обозначать терминальные интерфейсы. Хотя телетайпы больше не используются, концепция осталась: терминал предоставляет текстовый интерфейс для общения с системой.
## Современное значение TTY
Сегодня TTY в операционных системах Unix-подобного типа, таких как Linux, означает виртуальные терминальные устройства. Каждый TTY предоставляет интерфейс, где можно вводить команды, запускать программы, управлять файлами и выполнять другие задачи.
## Виртуальные терминалы
Linux предоставляет несколько виртуальных терминалов (обычно от tty1 до tty6), к которым можно получить доступ с помощью сочетаний клавиш, например Ctrl + Alt + F1 для переключения на tty1, Ctrl + Alt + F2 для tty2 и так далее. В графическом режиме обычно используется tty7 или выше.
## Использование TTY
- **Управление системой**: TTY предоставляет интерфейс для администрирования системы, особенно в случае проблем с графическим интерфейсом.
- **Программы и процессы**: Можно запускать команды и управлять процессами через TTY, используя команды оболочки, такие как bash.
- **Диагностика**: В случае неполадок с графическим окружением можно переключиться на один из виртуальных терминалов для диагностики и устранения проблем.
## Примеры команд
**tty**: Команда, которая показывает, к какому терминальному устройству вы подключены. Например, вывод может быть:
```
/dev/tty1
```
**stty**: Команда для изменения настроек терминала, таких как скорость передачи данных или поведение клавиш.
## Разновидности TTY в Linux
- **Физические терминалы**: Реальные устройства, такие как клавиатуры и экраны.
- **Виртуальные терминалы**: Виртуальные текстовые консоли, доступные с клавиатуры.
- **Псевдотерминалы (PTY)**: Интерфейсы, используемые в оконных терминалах, таких как gnome-terminal или xterm. Они симулируют поведение физических терминалов.
## Terminal linux и tty
**Терминал и TTY**: Терминал Linux использует TTY как механизм для взаимодействия с операционной системой. Когда ты открываешь терминал (например, GNOME Terminal, Konsole или даже командную строку на tty1, tty2 и т.д.), ты фактически используешь TTY, через который передаются команды и вывод.
## Виртуальные консоли
**Виртуальные консоли**: В Linux есть несколько виртуальных терминалов, которые отображаются как TTY устройства. Ты можешь переключаться между ними с помощью клавиш Ctrl+Alt+F1, Ctrl+Alt+F2 и так далее, и каждый из них будет работать как отдельный терминал (TTY), в котором ты можешь выполнять команды.
## Пример использования
Вы можете открыть терминал в графическом интерфейсе и ввести команду tty, чтобы узнать, к какому устройству подключен текущий сеанс терминала. Это полезно для управления задачами, отладки или запуска программ в командной строке.
TTY остается важной частью Unix-подобных систем, предоставляя базовый и надежный способ управления и взаимодействия с компьютером на уровне командной строки
https://serverspace.uz/support/glossary/ipv6.mdУзнайте, что такое протокол IP v6, его особенности, формат адреса и почему нужен переход на на более новую версию v6
**IPv6 (Internet Protocol version 6, IP v6)** — это современная версия интернет-протокола, созданная для преодоления проблемы нехватки адресов, существующей в предыдущем стандарте, IPv4. В отличие от IPv4, который оперирует 32-битными адресами, обеспечивающими примерно 4,3 миллиарда уникальных комбинаций, IPv6 использует 128-битные адреса. Это расширяет адресное пространство до невероятного количества вариантов — примерно
```
3,14*10^38
```
## Особенности
- **Большой адресный объем**: Пространство адресов IPv6 способно обеспечить огромное количество устройств, что особенно важно в условиях стремительно растущего интернета вещей (IoT).
- **Упрощенная маршрутизация**: Структура IPv6 помогает оптимизировать и упростить маршрутизацию, сокращая количество записей в таблицах маршрутизации.
- **Автоконфигурация адресов**: IPv6 поддерживает автоматическую конфигурацию, что упрощает процесс настройки новых устройств в сети.
- **Встроенная поддержка безопасности**: В IPv6 протокол IPsec встроен по умолчанию, что обеспечивает безопасный обмен данными (шифрование, аутентификация).
- **Отсутствие NAT**: С большим количеством адресов исчезает необходимость в использовании сетевого адресного перевода (NAT), что упрощает структуру сетей и улучшает производительность приложений.
## Формат адреса IPv6
IPv6-адреса записываются как восемь групп по четыре шестнадцатеричных цифры, между которыми стоят двоеточия. Пример такого представления:
```
2001:0db8:85a3:0000:0000:8a2e:0370:7334
```
Чтобы сделать запись короче, можно опустить нулевые блоки, например:
```
2001:db8::8a2e:370:7334
```
(здесь две подряд идущие группы нулей заменены двойным двоеточием).
## Почему нужен переход на IPv6?
Основной стимул к переходу — дефицит адресов IPv4. Поскольку все больше устройств подключаются к интернету, возможности IPv4 просто недостаточны для их поддержки. IPv6, в свою очередь, обеспечивает необходимый адресный запас и улучшает сетевые возможности.
IPv6 внедряется постепенно, и многие сети поддерживают одновременно как IPv4, так и IPv6, что называется "двухстековой архитектурой"
## Еще больше терминов
Если вы хотите узнать больше об интернет протоколах или других терминах - заглядывайте в нашу [Базу знаний](https://serverspace.ru/support/glossary/)! Там вы сможете найти множество материала.
https://serverspace.uz/support/glossary/chto-takoe-rsync-linux-i-ego-osnovnye-osobennosti.mdУзнайте, что такое rsync linux, его возможности, его преимущества использования rsync для создания бэкапов, преимущества и много другое!
**rsync** — это мощная утилита для синхронизации и передачи файлов в операционных системах Linux и Unix-подобных. Она используется для копирования и синхронизации файлов между локальными и удалёнными системами, а также для создания резервных копий. Основная особенность rsync — это его эффективность, поскольку он передает только изменённые части файлов, что экономит время и ресурсы.
## Основные особенности и возможности rsync
- **Инкрементная передача данных**: rsync сравнивает файлы по их времени модификации и контрольным суммам. Если файл был изменён, то передаются только те части файла, которые изменились (метод delta-transfer).
- **Поддержка удалённых систем**: rsync может работать как с локальными файлами, так и с удалёнными системами по SSH или другим протоколам, что делает его удобным для удалённого резервного копирования или синхронизации.
- **Опции для управления пропускной способностью**: В случае необходимости можно ограничить скорость передачи данных, что особенно полезно при синхронизации через медленные каналы связи.
- **Поддержка копирования символических ссылок, прав доступа, временных меток и других атрибутов файлов**: rsync сохраняет все атрибуты файлов, включая права доступа, владельцев, группы, символические ссылки и т. д.
- **Исключение файлов и директорий**: Вы можете настроить исключение определённых файлов и директорий из синхронизации, что полезно для исключения временных файлов, логов и других ненужных данных.
## Пример базового использования
**Копирование файлов и директорий локально:**
```bash
rsync -av /source/directory/ /destination/directory/
```
Где:
**-a (archive)** — архивный режим, сохраняет права, временные метки, символические ссылки и т. д.
**-v (verbose)** — выводит подробную информацию о процессе копирования.
Копирование через SSH:
```bash
rsync -avz /local/dir/ username@remote_host:/remote/dir/
```
Где:
**-z** — сжать данные во время передачи, что может быть полезно при медленных каналах связи.
Исключение файлов и директорий:
```bash
rsync -av --exclude 'temp/*' /source/dir/ /destination/dir/
```
Это исключит все файлы и каталоги, начинающиеся с temp/ из синхронизации.
## Как rsync используется для резервного копирования (backup)
- **Инкрементальные резервные копии**: Одной из ключевых особенностей rsync является возможность выполнения инкрементальных резервных копий. Это значит, что после первого полного копирования всех файлов, при последующих запусках rsync будет передавать только те файлы, которые были изменены или добавлены. Это существенно экономит время и ресурсы, так как не нужно повторно копировать все данные.
Пример:
```bash
rsync -av /source/dir/ /backup/dir/
```
При первом запуске копируются все файлы. При следующем запуске rsync сравнит текущие версии файлов с теми, которые уже есть в целевой директории, и будет копировать только изменённые файлы.
- **Поддержка удалённых резервных копий**: rsync позволяет легко выполнять резервное копирование данных на удалённые серверы через SSH или другие протоколы. Это делает его удобным инструментом для создания резервных копий в облаке или на удалённых машинах.
Пример:
```bash
rsync -avz /local/dir/ username@remote_host:/backup/dir/
```
Здесь данные из локальной директории копируются на удалённый сервер.
- **Опция --delete:** Эта опция полезна при создании зеркальных резервных копий. Если в исходной директории были удалены файлы, то с этой опцией они также будут удалены из резервной копии. Это помогает поддерживать актуальность резервной копии и избежать накопления устаревших данных.
Пример:
```bash
rsync -av --delete /source/dir/ /backup/dir/
```
- **Автоматизация и создание регулярных резервных копий**: rsync идеально подходит для автоматизации резервного копирования. С помощью cron или других планировщиков задач можно настроить регулярные резервные копии на определённое время, например, каждый день или неделю.
Пример: В crontab можно добавить задачу для ежедневного резервного копирования:
```
0 2 * * * rsync -av /source/dir/ /backup/dir/
```
Этот cron-запрос будет выполнять резервное копирование каждый день в 2 часа ночи.
- **Опция -a (архивный режим)**: Важно отметить, что при выполнении резервного копирования с помощью rsync часто используется флаг -a, который гарантирует сохранение всех атрибутов файлов, включая права доступа, владельцев, временные метки и символические ссылки. Это важно для точного восстановления файлов в случае необходимости.
- **Минимизация использования пропускной способности:** При создании резервных копий через медленные каналы связи, например, через Интернет, можно использовать опцию -z, которая сжимает передаваемые данные, экономя пропускную способность.
Пример:
```bash
rsync -avz /local/dir/ username@remote_host:/backup/dir/
```
## Преимущества использования rsync для создания бэкапов и резервного копирования
- **Быстрота**: Благодаря инкрементальному подходу, после первого полного резервного копирования все последующие копии занимают гораздо меньше времени.
- **Экономия ресурсов**: rsync передает только измененные данные, что минимизирует нагрузку на сеть и хранилище.
- **Гибкость**: rsync можно настроить под любые требования, включая синхронизацию как локальных, так и удалённых данных.
- **Устойчивость к сбоям**: В случае прерывания передачи данных, rsync может быть перезапущен, и он продолжит с того места, где остановился, что делает его идеальным для использования в условиях нестабильных соединений.
- **Лёгкость в настройке**: Использование rsync для создания резервных копий не требует сложной настройки и легко интегрируется с существующими сценариями резервного копирования.
**Полезные опции:**
-**n или --dry-run** — выполнение "сухого запуска", то есть проверка, что будет сделано без фактического выполнения команды.
--**progress** — показывает прогресс копирования.
--**checksum** — использование контрольных сумм для проверки изменений (по умолчанию rsync использует временные метки, но с этой опцией оно проверяет изменения через хеширование).
## Преимущества rsync
- **Быстрота:** Только изменённые части файлов передаются, что ускоряет процесс синхронизации.
- **Гибкость:** С помощью множества опций можно настроить работу утилиты в самых разных сценариях.
- **Экономия ресурсов:** Работает только с изменёнными данными, что экономит как пропускную способность, так и время.
rsync часто используется в сценариях резервного копирования, синхронизации данных между серверами, а также для миграции данных между системами.
https://serverspace.uz/support/glossary/vr-ar.mdУзнайте, что такое виртуальная и расширенная реальность (VR/AR) простыми словами, примеры использования и различия двух технологий
**Виртуальная реальность (VR)** и **расширенная реальность (AR)** — это передовые технологии, которые позволяют людям взаимодействовать с цифровыми мирами.
## Виртуальная реальность (VR)
Виртуальная реальность погружает пользователя в полностью цифровую, симулированную среду, где всё ощущается как настоящее. Для этого используются устройства, такие как VR-гарнитуры (например, Oculus Rift или HTC Vive), которые предоставляют объемные изображения и звуки. Система отслеживает движения головы и тела, чтобы изменять перспективу в виртуальном мире, делая его опыт иммерсивным. Применения VR включают видеоигры, виртуальные туры, тренировки для сотрудников в различных отраслях (медицина, строительство, военное дело) и образовательные программы
## Как расшифровывается VR
VR расшифровывается, как **Virtual Reality** - виртуальная реальность
## Расширенная реальность (AR)
Расширенная реальность интегрирует виртуальные объекты в физическое окружение, создавая сочетание цифрового и реального миров в одном пространстве. AR-технологии работают через смартфоны, планшеты или очки дополненной реальности, добавляя информацию или визуальные элементы в реальное пространство. Популярные примеры включают игру Pokémon GO, фильтры для фото в социальных сетях и приложения для навигации, которые показывают маршруты на экране, совмещая их с видами улиц
## Как расшифровывается AR
AR расшифровывается, как **Augmented Reality** - дополненная реальность
## Отличия и примеры
- **VR** полностью заменяет реальный мир на виртуальный, обеспечивая полное погружение.
- **AR** добавляет виртуальные элементы в окружающую среду, оставляя пользователю возможность видеть и взаимодействовать с физическим миром.
- **VR** используется для тренировки пилотов, медицинских симуляций и развлекательных проектов, а **AR** — в образовании, дизайне интерьера и маркетинге
https://serverspace.uz/support/glossary/nagruzochnoe-testirovanie.mdУзнайте, что такое нагрузочное тестирование, виды нагрузочного тестирования, этапы нагрузочного тестирования и многое другое!
**Нагрузочное тестирование** — это процесс проверки производительности программного обеспечения или системы при увеличивающейся нагрузке. Основная цель этого типа тестирования — определить, как приложение справляется с различными объемами трафика или запросов и насколько эффективно оно может выполнять свои функции в условиях интенсивного использования.
## Как работает нагрузочное тестирование?
Во время нагрузки на систему специалисты проверяют:
- **Скорость**: как быстро система отвечает на запросы при высокой активности пользователей.
- **Стабильность**: насколько программа остается функциональной и устойчивой к ошибкам.
- **Масштабируемость**: как система адаптируется к растущему числу пользователей или объема данных.
## Примеры использования
- **Веб-сайты**: Проверка того, выдерживает ли сайт большое количество пользователей одновременно (например, во время онлайн-распродаж).
- **Финансовые приложения**: Обеспечение стабильной работы при пиковых нагрузках, таких как массовые транзакции в конце месяца.
- **Серверные системы**: Тестирование производительности серверов в периоды максимального использования данных.
## Виды нагрузочного тестирования
- **Стресс-тестирование**: Анализирует поведение системы при превышении её обычной рабочей нагрузки, чтобы определить точки, в которых приложение начинает сталкиваться с критическими сбоями или прекращает корректную работу. Основная цель заключается в выяснении предельной нагрузки, которую может выдержать система без катастрофических последствий.
- **Объемное тестирование (Volume Testing)**: Изучает производительность системы при обработке значительных объемов данных, оценивая, насколько эффективно приложение справляется с масштабированием информации и ресурсами.
- **Тестирование устойчивости (Soak Testing)**: Включает проверку приложения под длительной, но умеренной нагрузкой, чтобы выявить его способность сохранять стабильность на протяжении продолжительного времени. Это помогает обнаружить проблемы, связанные с управлением памятью и утечками ресурсов.
- **Пиковое тестирование (Spike Testing)**: Проверяет, как система справляется с внезапными и значительными скачками нагрузки, такими как резкое увеличение числа пользователей за короткий промежуток времени. Оно помогает понять, выдерживает ли приложение кратковременные пики и насколько быстро может восстановиться после таких перегрузок.
## Этапы выполнения нагрузочного тестирования
- **Планирование**: Определение целей тестирования, требований к системе и критериев успеха. На этом этапе создаются сценарии нагрузок и подбирается необходимое программное обеспечение.
- **Настройка тестового окружения**: Конфигурирование аппаратного и программного обеспечения, а также подготовка данных для тестов. Важно, чтобы тестовая среда максимально соответствовала рабочей системе.
- **Проектирование сценариев нагрузки**: Определение сценариев поведения пользователей и типов нагрузки, которые будут симулироваться (например, последовательные запросы к серверу).
- **Выполнение тестов**: Запуск сценариев нагрузочного тестирования, мониторинг системы и запись всех метрик производительности.
- **Анализ результатов**: Сравнение фактической производительности с ожидаемыми показателями. Анализируются логи, метрики отклика и стабильности, чтобы определить, как система справляется с нагрузкой.
- **Оптимизация**: Если обнаружены проблемы, проводятся корректирующие меры, такие как оптимизация кода, базы данных или инфраструктуры, а затем тестирование повторяется.
## Программное обеспечение для нагрузочного тестирования
- **Apache JMeter**: Популярный инструмент с открытым исходным кодом, используемый для тестирования производительности и измерения нагрузки веб-приложений.
- **LoadRunner**: Инструмент от Micro Focus для корпоративного уровня, поддерживающий широкий спектр протоколов и обеспечивающий детализированные аналитические отчёты.
- **Gatling**: Этот инструмент включает в себя удобный доменно-специфичный язык (DSL) для создания сценариев тестирования, который облегчает настройку и выполнение нагрузочных тестов.
- **BlazeMeter**: Облачная платформа для тестирования, которая расширяет возможности JMeter, предлагая масштабируемость нагрузочных тестов для облачных и гибридных систем.
**Locust**: Инструмент на Python, позволяющий проводить распределённые нагрузочные тесты с масштабируемостью в реальном времени, что делает его идеальным для тестирования приложений с переменной нагрузкой.
Эти инструменты позволяют глубоко оценить производительность системы в условиях различных нагрузок и помогают выявить её слабые места, чтобы улучшить стабильность и эффективность.
## Заключение
**Нагрузочное тестирование играет важнейшую роль в поддержании стабильности и эффективности работы программного обеспечения, особенно при высоких уровнях активности пользователей.** Оно помогает выявить потенциальные проблемы с производительностью заранее, прогнозировать реакцию системы на экстремальные нагрузки и минимизировать вероятность сбоев в условиях реальной эксплуатации. Это тестирование обеспечивает уверенность в том, что приложение может функционировать корректно, даже когда на него оказывается максимальная нагрузка. Правильно выполненное тестирование гарантирует, что приложения смогут справляться с реальными сценариями использования, обеспечивая положительный опыт для конечных пользователей.
Этапы нагрузочного тестирования — от тщательного планирования до анализа результатов и последующей оптимизации — помогают создать надежное и производительное ПО. С использованием современных инструментов, таких как Apache JMeter, LoadRunner, Gatling, BlazeMeter и Locust, разработчики и тестировщики могут проводить масштабные проверки и получать важные данные о системе. В итоге, это помогает не только улучшить производительность, но и значительно повысить доверие пользователей к приложени
https://serverspace.uz/support/glossary/stress-testirovanie.mdУзнайте, что такое стресс-тестирование, что оно в себя включает, какие бывают виды стресс-тестов, примеры использования и многое другое!
**Стресс-тестирование** — это процесс проверки устойчивости системы или приложения при экстремальных или предельных условиях работы, чтобы оценить его способность справляться с нагрузками, превышающими обычные. Цель стресс-тестирования — выявить точки отказа системы, определить её пределы и убедиться, что она продолжает функционировать или корректно восстанавливается после перегрузки.
В контексте программного обеспечения стресс-тестирование обычно включает:
- Проверку на максимальные нагрузки — например, загрузку сервера большим количеством пользователей или запросов, чтобы увидеть, как система будет реагировать.
- Изучение поведения системы в условиях нехватки ресурсов — например, при ограничении памяти или процессорных мощностей.
- Тестирование восстановления — проверка, насколько быстро система может восстановить нормальную работу после сбоя.
## Виды стресс тестов
Стресс-тестирование бывает разных видов, в зависимости от того, какие аспекты системы или приложения проверяются в условиях экстремальных нагрузок. Рассмотрим основные виды стресс-тестов, примеры их использования и цели:
- **Тестирование на пиковую нагрузку (Peak Load Testing)**
Цель: Проверка, как система справляется с максимальной нагрузкой, которую она должна выдерживать в реальных условиях работы. Пример использования: Применяется для проверки веб-сайтов в пиковые моменты (например, на Черную пятницу, новогодние распродажи) или при запуске новых функций. Для чего: Это позволяет оценить, сможет ли система поддерживать высокий трафик без ухудшения производительности, например, при массовом доступе пользователей.
- **Тестирование на предельную нагрузку (Breaking Load Testing)**
Цель: Определить точку, в которой система выходит из строя или начинает работать некорректно при экстремальных нагрузках. Пример использования: Проверка серверов или сетевых инфраструктур в условиях резкого увеличения трафика или запросов. Для чего: Это помогает выявить физические или логические ограничения системы, чтобы предотвратить сбои в реальной эксплуатации.
- **Тестирование на долгосрочную нагрузку (Sustained Load Testing)**
Цель: Оценить способность системы выдерживать продолжительную нагрузку в течение длительного времени. Пример использования: Применяется для проверки серверов, которые должны поддерживать непрерывную работу в течение нескольких дней или недель, например, в случае с облачными сервисами. Для чего: Этот тест помогает обнаружить утечки памяти, снижение производительности или другие проблемы, которые могут проявиться после долгого времени работы.
- **Тестирование на отказоустойчивость (Failover Testing)**
Цель: Проверка способности системы восстанавливаться после отказа оборудования или программного сбоя. Пример использования: Проверка сетевых сервисов, которые работают с резервными серверами или облачными инфраструктурами. Например, серверы баз данных, где важна непрерывность работы. Для чего: Это важно для обеспечения высокой доступности (HA) и минимизации времени простоя в случае аварийных ситуаций.
- **Тестирование на ограниченные ресурсы (Resource Starvation Testing)**
Цель: Проверить, как система будет работать при нехватке ключевых ресурсов, таких как память, процессорное время или место на диске. Пример использования: Применяется при тестировании серверов, баз данных или веб-приложений, чтобы убедиться в их надежности при нехватке ресурсов. Для чего: Это позволяет понять, как система реагирует на дефицит ресурсов и какие механизмы защиты от сбоев или ошибок необходимо реализовать.
- **Тестирование на устойчивость к внешним воздействиям (Concurrency Testing)**
Цель: Проверить работу системы под нагрузкой с множеством одновременных запросов или действий. Пример использования: Это важно при тестировании многопользовательских систем, таких как онлайн-игры или приложения для совместной работы, где множество пользователей выполняет действия одновременно. Для чего: Цель — определить, как система обрабатывает параллельные запросы и не сталкивается ли с проблемами синхронизации или деградации производительности при большом количестве одновременных пользователей.
- **Тестирование на отказ компонентов (Component Failure Testing)**
Цель: Проверка устойчивости системы, когда один или несколько её компонентов выходят из строя. Пример использования: Важен при тестировании распределенных систем, облачных сервисов, систем с микросервисной архитектурой. Для чего: Это помогает гарантировать, что система будет продолжать работать, даже если часть её компонентов выйдет из строя, за счет резервирования и отказоустойчивости.
## Примеры использования стресс-тестирования
**Веб-сайты электронной коммерции**: Прежде чем сайт выйдет на рынок, важно провести стресс-тестирование, чтобы убедиться, что он может выдержать резкие скачки трафика, например, во время распродаж.
**Облачные сервисы**: Платформы, такие как Amazon Web Services или Microsoft Azure, проводят стресс-тесты, чтобы гарантировать, что они могут поддерживать миллионы одновременных пользователей и устойчиво работать при изменении нагрузки.
**Игровые серверы**: Многопользовательские онлайн-игры проводят стресс-тестирование, чтобы убедиться, что серверы могут поддерживать миллионы игроков, а игра будет работать без задержек и сбоев.
**Телекоммуникационные сети**: Стресс-тестирование важно для проверки устойчивости к перегрузкам в мобильных или фиксированных сетях, особенно в периоды высоких нагрузок, таких как массовые события или катастрофы.
## Зачем проводить стресс-тестирование?
- **Повышение надежности**: Стресс-тесты помогают выявить слабые места системы до того, как она будет развернута в реальных условиях.
- **Гарантия масштабируемости**: Помогают проверить, насколько хорошо система масштабируется с увеличением нагрузки.
- **Подготовка к пиковым нагрузкам**: Стресс-тестирование позволяет подготовиться к ситуациям, когда трафик или количество пользователей значительно возрастает.
- **Минимизация рисков**: Это позволяет предотвратить сбои и проблемы с производительностью, которые могут привести к потерям данных или пользователей.
Таким образом, стресс-тестирование — это неотъемлемая часть процесса обеспечения качества и надежности программных систем и инфраструктуры.
https://serverspace.uz/support/glossary/testirovanie-ustojchivosti.mdУзнайте, что такое тестирование устойчивости, как оно работает, для чего используется и примеры использования Soak Testing
**Тестирование устойчивости (Soak Testing)** — это вид тестирования программного обеспечения, при котором система подвергается длительной нагрузке для оценки её производительности, стабильности и поведения в течение продолжительного времени. Цель — определить, как приложение работает в условиях длительного использования, выявить возможные утечки памяти, нестабильности и проблемы с производительностью, которые могут проявиться со временем.
## Как работает Soak Testing
- **Подготовка:**
Определяются условия тестирования, например, необходимая нагрузка и продолжительность теста (от нескольких часов до нескольких дней).
Настраивается тестовая среда, аналогичная реальной эксплуатационной среде.
- **Запуск теста:**
Система подвергается реальной или симулированной нагрузке, соответствующей средней или максимальной ожидаемой нагрузке на протяжении длительного времени.
Нагрузка может включать большое количество пользователей, транзакций или операций, имитируя повседневную активность.
- **Мониторинг:**
Собираются метрики производительности: потребление памяти, использование процессора, пропускная способность сети и использование базы данных.
Проверяется стабильность системы и отклики на команды или запросы.
- **Анализ результатов:**
Оцениваются параметры, например, время отклика, наличие утечек памяти, замедление работы системы и сбои.
Анализируются потенциальные узкие места, которые могут привести к отказам или проблемам с производительностью.
## Для чего используется Soak Testing
- **Выявление утечек памяти**: Некоторые ресурсы могут неправильно освобождаться или оставаться занятиями, что со временем приводит к сбоям системы.
- **Проверка надежности**: Тесты показывают, насколько устойчиво приложение работает при длительном использовании, особенно в условиях непрерывной нагрузки.
- **Определение деградации производительности**: Системы могут становиться медленнее из-за накопления проблем, и Soak Testing помогает выявить такие ситуации.
- **Оценка управления ресурсами**: Понимание того, как эффективно система использует память, процессор и другие ресурсы в долгосрочной перспективе.
## Примеры использования Soak Testing
- **Веб-приложения**: Проверка поведения сайта при непрерывном обращении большого числа пользователей в течение суток. Можно выявить, как долго серверы смогут обслуживать пользователей до замедления откликов.
- **Игры**: Игровые серверы подвергаются нагрузке длительное время для проверки того, как они управляют игровыми сессиями, соединениями и обработкой данных, особенно в условиях масштабных многопользовательских игр.
- **Финансовые системы**: Тестирование банковского ПО, чтобы убедиться, что оно сможет обрабатывать тысячи транзакций без отказов в течение нескольких дней подряд.
- **Пример**: Интернет-магазин проверяется на устойчивость, работая при нагрузке, эквивалентной реальному количеству пользователей, на протяжении нескольких дней. Это помогает гарантировать, что сайт будет стабильно функционировать во время пиковых нагрузок, таких как сезон распродаж.
https://serverspace.uz/support/glossary/oblachnaya-integracziya.mdУзнайте, что такое облачная интеграция, ее цели, как она работает, ее преимущества и узнайте ответы на часто задаваемые вопросы
## Что такое облачная интеграция?
**Облачная интеграция** — это процесс объединения различных облачных сервисов, приложений и данных в единую систему, которая позволяет обмениваться информацией и работать совместно в реальном времени. Этот процесс устраняет разрыв между разрозненными IT-системами, обеспечивая беспрепятственный обмен данными между облачными и локальными решениями. Результатом является более эффективное управление бизнес-процессами и улучшение взаимодействия между приложениями.
## Цели облачной интеграции
- **Централизация данных:**
Упрощение управления информацией благодаря объединению всех данных из разных источников в одной системе.
- **Автоматизация процессов:**
Сокращение ручной работы за счёт автоматического обмена данными между системами.
- **Гибкость**:
Возможность адаптации и быстрого подключения новых сервисов или приложений.
- **Улучшение взаимодействия:**
Более тесная интеграция между приложениями обеспечивает согласованность данных и процессов.
## Как работает облачная интеграция?
Процесс облачной интеграции состоит из следующих этапов:
- **Интеграция данных:**
Объединение информации из разных источников, например, CRM, ERP, баз данных или хранилищ данных.
- **Интеграция приложений:**
Настройка совместной работы разных облачных и локальных приложений, таких как системы управления проектами и маркетинговые платформы.
- **Интеграция процессов:**
Создание автоматизированных рабочих процессов, которые объединяют данные из нескольких систем для выполнения задач.
## Типы облачной интеграции
- **Облачно-облачная интеграция (Cloud-to-Cloud):**
Связывание двух и более облачных сервисов, таких как Google Workspace и Salesforce.
- **Облако-локальная интеграция (Cloud-to-On-Premises):**
Интеграция облачных сервисов с локальными системами компании, например, ERP и облачного аналитического инструмента.
- **Гибридная интеграция:**
Объединение локальных, облачных и мультиоблачных систем в единую сеть.
## Преимущества облачной интеграции
- **Повышение производительности:**
Интеграция автоматизирует задачи и снижает вероятность ошибок.
- **Экономия времени:**
Данные обновляются в режиме реального времени, что ускоряет бизнес-процессы.
- **Масштабируемость:**
Возможность адаптации под растущие потребности бизнеса.
- **Согласованность данных:**
Гарантия актуальности информации во всех подключённых системах.
- **Гибкость и адаптивность:**
Возможность внедрения новых технологий и инструментов без сложной настройки инфраструктуры.
## Часто задаваемые вопросы (FAQ)
- **Почему облачная интеграция важна для бизнеса?**
Облачная интеграция позволяет автоматизировать процессы, сокращать время обработки данных и повышать общую эффективность компании. Она особенно полезна для организаций, использующих несколько систем, которым требуется бесшовное взаимодействие.
- **Какие приложения можно интегрировать?**
Почти любые! Это могут быть CRM-системы (например, Salesforce), ERP, маркетинговые платформы (Mailchimp), базы данных и облачные хранилища, такие как Google Drive.
- **Насколько безопасна облачная интеграция?**
Современные платформы для интеграции предлагают встроенные механизмы безопасности, включая шифрование данных, управление доступом и мониторинг угроз.
- **Сложно ли внедрить облачную интеграцию?**
Сложность зависит от масштаба и типа используемых систем. Для небольших задач подойдут инструменты вроде Zapier, а для корпоративных решений — Dell Boomi или Informatica.
- **Подходит ли она для малого бизнеса?**
Да, малый бизнес может использовать облачную интеграцию для упрощения операций и автоматизации рутинных задач.
## Примеры использования
- **Электронная коммерция:**
Объединение интернет-магазина с CRM-системой и маркетинговой платформой для анализа покупательского поведения.
- **Финансовые приложения:**
Интеграция локального ПО с облачными сервисами для обработки транзакций.
- **Здравоохранение:**
Синхронизация медицинских данных между локальными системами и облачными аналитическими платформами.
## Заключение
Интеграция облачных технологий является важным аспектом современного бизнеса, способствуя оптимизации управления данными и рабочими процессами. Она позволяет компаниям быстро адаптироваться к изменяющимся условиям, интегрировать новые инструменты и добиваться высоких результатов. Часто задаваемые вопросы помогут лучше понять её ценность и упростить внедрение в вашу IT-инфраструктуру.
https://serverspace.uz/support/glossary/bezopasnost-oblaka-cloud-security.mdУзнайте, что такое безопасность облака (cloud security), меры обеспечения безопасности в облаке, преимущества облачной безопасности и другое
## Что такое безопасность облака (Cloud Security)?
**Облачная безопасность (Cloud Security)** представляет собой совокупность технологий, политик, мер контроля и процедур, направленных на защиту данных, приложений и инфраструктуры, размещённых в облаке. Её основная цель — предотвратить несанкционированный доступ, утрату данных, утечку информации и другие угрозы, присущие облачным вычислениям.
Облачная безопасность является критически важным элементом для организаций, которые используют облачные технологии для хранения данных, запуска приложений или предоставления услуг. Она охватывает как публичные, так и частные облака, а также гибридные и мультиоблачные среды.
## Основные аспекты облачной безопасности
- **Управление доступом:**
Контроль над тем, кто и что может получить доступ к данным или ресурсам. Используются механизмы аутентификации, авторизации и управления правами.
- **Шифрование:**
Защита данных в процессе передачи и хранения с помощью криптографических методов, чтобы информация оставалась конфиденциальной и защищённой.
- **Защита сети:**
Использование межсетевых экранов (firewalls), систем обнаружения и предотвращения атак (IDS/IPS), а также мониторинга сетевого трафика для предотвращения угроз.
- **Обнаружение и реагирование на угрозы:**
Инструменты мониторинга и аналитики, которые помогают выявлять и устранять потенциальные угрозы в режиме реального времени.
- **Резервное копирование и восстановление:**
Автоматическое создание резервных копий данных и разработка планов восстановления после сбоев для предотвращения потери информации.
- **Соответствие нормативным требованиям:**
Убедиться, что облачная среда соответствует отраслевым стандартам и законодательным требованиям, таким как GDPR, ISO/IEC 27001, HIPAA и др.
## Типы угроз в облачной среде
- **Несанкционированный доступ:**
Атаки, направленные на получение доступа к конфиденциальным данным или системам.
- **Утечки данных:**
Потеря или кража данных из облачной среды из-за ошибок конфигурации или хакерских атак.
- **DDoS-атаки:**
Перегрузка облачных ресурсов с целью вывести из строя сервисы.
- **Вредоносное ПО:**
Использование вирусов или троянов для заражения облачной инфраструктуры.
- **Ошибки конфигурации:**
Неправильные настройки безопасности, которые делают облако уязвимым.
- **Инсайдерские угрозы:**
Действия сотрудников или партнеров, которые намеренно или случайно компрометируют облачную безопасность.
## Меры обеспечения безопасности в облаке
- **Использование многофакторной аутентификации (MFA):**
Требование нескольких уровней проверки для получения доступа к облачным ресурсам.
- **Шифрование данных:**
Шифрование как в процессе передачи, так и в состоянии покоя, чтобы данные оставались недоступными для злоумышленников.
- **Регулярные обновления и патчи:**
Поддержание актуальности программного обеспечения для устранения известных уязвимостей.
- **Мониторинг и аудит:**
Постоянное отслеживание активности в облаке и проведение аудитов для выявления слабых мест.
- **Сегментация сети:**
Разделение облачной инфраструктуры на сегменты для минимизации последствий потенциальных атак.
- **Обучение сотрудников:**
Повышение осведомлённости о киберугрозах и обучение методам безопасного использования облачных технологий.
## Преимущества облачной безопасности
- **Гибкость и масштабируемость:**
Облачные провайдеры предлагают адаптируемые решения, которые можно масштабировать в зависимости от потребностей.
- **Экономия:**
Нет необходимости в покупке дорогостоящего оборудования для локальной безопасности.
- **Высокая доступность:**
Постоянный доступ к данным с минимальными сбоями благодаря резервным копиям и отказоустойчивым системам.
- **Обновления в реальном времени:**
Провайдеры обеспечивают обновление систем безопасности без вмешательства клиента.
- **Соответствие требованиям:**
Большинство облачных провайдеров соответствуют строгим стандартам безопасности и конфиденциальности.
## Заключение
Безопасность облака является важнейшей частью современной IT-инфраструктуры. Она обеспечивает защиту данных, минимизирует риски и помогает бизнесу соответствовать требованиям безопасности и конфиденциальности. Использование продвинутых инструментов, обучение персонала и сотрудничество с надёжными облачными провайдерами позволяют эффективно защищать критически важные ресурсы и успешно противостоять современным киберугрозам
https://serverspace.uz/support/glossary/autentifikacziya.mdУзнайте, что такое аутентификация, типы аутентификации, современные тенденции в аутентификации и зачем она нужна
**Аутентификация** — это процесс проверки личности пользователя или системы, направленный на подтверждение, что они являются тем, за кого себя выдают. В рамках информационной безопасности аутентификация обеспечивает доступ к ресурсам, данным или приложениям только для авторизованных лиц. Этот процесс является первым шагом в системе управления доступом, за которым может следовать авторизация и аудит действий.
## Типы аутентификации
- **Однофакторная аутентификация (SFA):**
Для подтверждения своей личности пользователь использует только один элемент.
Пример: Ввод пароля.
- **Многофакторная аутентификация (Multi-Factor Authentication, MFA):**
Использование двух или более факторов для повышения уровня безопасности.
Пример: Пароль + одноразовый код из мобильного приложения.
- **Биометрическая аутентификация:**
Идентификация личности с использованием уникальных физических или поведенческих признаков.
Пример: Сканирование лица или отпечатка пальца.
- **Аутентификация с использованием токенов:**
Пользователь получает временный токен (например, через приложение или аппаратное устройство) для подтверждения доступа.
Пример: Использование Google Authenticator для генерации кода.
- **Единый вход (Single Sign-On, SSO):**
Технология, позволяющая пользователю входить в несколько систем или приложений, используя одну учётную запись.
Пример: Вход в корпоративную сеть и автоматический доступ к внутренним ресурсам.
- **Аутентификация без пароля (Passwordless Authentication):**
Использование альтернативных методов, таких как биометрия или одноразовые коды, вместо паролей.
Пример: Вход по отпечатку пальца на ноутбуке.
## Зачем нужна аутентификация?
- **Обеспечение безопасности:**
Предотвращает доступ к данным и ресурсам неавторизованных пользователей.
- **Контроль доступа:**
Позволяет компаниям разграничивать доступ для различных категорий пользователей.
- **Улучшение пользовательского опыта:**
Современные методы, такие как SSO или биометрия, делают процесс входа более удобным.
- **Соответствие требованиям:**
Аутентификация является обязательной мерой в рамках большинства стандартов информационной безопасности, таких как GDPR, ISO/IEC 27001, PCI DSS.
## Проблемы и вызовы аутентификации
- **Слабые пароли:**
Пользователи часто выбирают простые или одинаковые пароли для разных систем, что делает их уязвимыми.
- **Фишинг:**
Атаки, направленные на кражу паролей через поддельные веб-страницы или письма.
- **Потеря устройств:**
Утеря мобильного телефона или токена может поставить под угрозу безопасность.
- **Угрозы биометрии:**
Хотя биометрические данные сложны для подделки, их компрометация может быть серьёзной проблемой, так как они неизменяемы.
## Современные тенденции в аутентификации
- **Passwordless Authentication:**
Технологии без паролей становятся всё популярнее благодаря их удобству и безопасности.
- **Машинное обучение и искусственный интеллект:**
Использование ИИ для анализа поведения пользователей и выявления подозрительных действий.
- **Контекстная аутентификация:**
Проверка личности на основе контекста, например, местоположения или устройства, с которого выполняется вход.
- **Блокчейн:**
Технологии децентрализованной идентификации для более безопасного управления аутентификацией.
## Подводим итоги
**Аутентификация** — это основа цифровой безопасности. Современные методы, такие как многофакторная аутентификация и биометрия, значительно повышают уровень защиты. Однако развитие технологий также требует постоянного обновления подходов, чтобы противостоять новым угрозам и обеспечивать удобство для пользователей
https://serverspace.uz/support/glossary/auditd.mdУзнайте, как настроить и использовать AuditD в Linux для мониторинга системных событий, аудита доступа к файлам и повышения уровня безопасности. Подробное руководство с примерами и часто задаваемыми вопросами
В современном мире информационной безопасности одним из ключевых элементов защиты является мониторинг и аудит системных событий. В операционной системе Linux для этих целей существует мощный инструмент — AuditD (Audit Daemon). Это программное обеспечение позволяет отслеживать активности в системе и регистрировать события, что делает его незаменимым для системных администраторов и специалистов по безопасности.
В этой статье мы рассмотрим, что такое AuditD, его основные возможности, применение и настройку.
## Что такое AuditD?
AuditD — это демон (служба), отвечающий за ведение журнала аудита в Linux. Его главной задачей является сбор и регистрация данных о различных событиях в системе, таких как попытки доступа к файлам, изменения конфигурации, выполнение системных вызовов и другие действия.
AuditD состоит из двух основных компонентов:
- **Демон auditd** — отвечает за обработку и запись событий в журнал.
- **Инструменты управления** — набор команд, таких как **auditctl **и **ausearch**, которые используются для настройки и анализа событий.
**Возможности AuditD**
AuditD предоставляет широкий функционал для мониторинга системы:
- **Аудит доступа к файлам**: отслеживание чтения, записи, удаления или изменения файлов.
- **Контроль привилегий**: регистрация действий, выполненных пользователями с повышенными правами.
- **Отслеживание системных вызовов**: запись информации о вызовах API, например, открытие файлов или выполнение процессов.
- **Сетевой аудит**: мониторинг операций, связанных с сетевыми соединениями.
- **Журналирование аутентификации**: регистрация успешных и неудачных попыток входа в систему.
**Пример использования**: Если в системе происходят подозрительные попытки изменить конфигурационные файлы, AuditD может помочь быстро выявить источник проблемы, указав, какой пользователь и с какого процесса инициировал действие.
## Настройка AuditD
Для начала работы с AuditD необходимо установить пакет. В большинстве дистрибутивов Linux это можно сделать через стандартный менеджер пакетов, например:
```bash
sudo apt install auditd
```
После установки демон автоматически запускается. Основные настройки AuditD задаются в конфигурационном файле /etc/audit/auditd.conf Здесь можно указать:
- Максимальный размер журнала (max_log_file).
- Политику ротации логов (log_file_action).
- Действия при переполнении журнала (space_left_action).
## Создание правил аудита
Чтобы настроить, какие события нужно регистрировать, используются правила аудита. Правила можно задавать командой auditctl или прописывать в файле /etc/audit/rules.d/audit.rules для постоянного применения. Пример правила:
```
-a always,exit -F arch=b64 -S open -F dir=/etc -F perm=wa -k
```
Это правило будет отслеживать операции записи и добавления файлов в директории /etc, что полезно для защиты конфигурационных файлов.
## Анализ событий
Для анализа зарегистрированных событий используется утилита ausearch. Она позволяет фильтровать логи по различным критериям: времени, пользователю, ключевым словам. Пример команды:
```
ausearch -k
```
Эта команда выведет все события, связанные с ключом конфигурация.
Дополнительно для создания отчетов можно использовать инструмент aureport, который агрегирует данные из логов и предоставляет удобный формат вывода.
## FAQ
- **Какие системы поддерживают AuditD?** AuditD доступен в большинстве современных дистрибутивов Linux, таких как Ubuntu, CentOS, Fedora и Debian.
- **Как проверить, что AuditD работает?** Используйте команду sudo systemctl status auditd. Если сервис активен, вы увидите статус "active (running)".
- **Можно ли настроить уведомления о событиях?** Да, через конфигурацию действий, выполняемых при определенных условиях, например, через space_left_action или интеграцию с внешними системами мониторинга.
- **Какие альтернативы AuditD существуют?** Альтернативы включают AppArmor, SELinux и другие инструменты, обеспечивающие контроль доступа и мониторинг.
## Заключение
AuditD — это мощный инструмент для мониторинга и аудита системных событий в Linux. Его использование позволяет не только повысить уровень безопасности системы, но и облегчить работу с анализом инцидентов. Регулярная настройка правил аудита и анализ логов помогут минимизировать риски и оперативно реагировать на угрозы.
Освоив AuditD, системные администраторы получают в свои руки средство для глубокого контроля над системой и обеспечения соответствия требованиям информационной безопасности.
https://serverspace.uz/support/glossary/apparatnaya-virtualizacziya.mdУзнайте, как работает аппаратная виртуализация, какие технологии (Intel VT-x, AMD-V) её поддерживают и как она применяется в облачных, серверных и игровых системах для повышения производительности и безопасности.
**Аппаратная виртуализация** — это технология, позволяющая создавать и управлять виртуальными машинами (VM) с использованием аппаратной поддержки процессора. Она играет ключевую роль в современных ИТ-инфраструктурах, обеспечивая гибкость, безопасность и эффективное использование вычислительных ресурсов.
В этой статье мы подробно разберем, что такое аппаратная виртуализация, какие технологии лежат в ее основе, как она работает, а также рассмотрим примеры ее использования.
## Что такое аппаратная виртуализация?
**Аппаратная виртуализация** — это метод, при котором физический сервер или компьютер может выполнять несколько операционных систем одновременно в изолированных виртуальных средах. В отличие от программной виртуализации, аппаратная виртуализация использует специальные процессорные инструкции для повышения производительности виртуальных машин.
Основные цели аппаратной виртуализации:
- **Эффективное использование аппаратных ресурсов**
- **Запуск нескольких ОС на одном сервере**
- **Обеспечение безопасности и изоляции сред**
- **Упрощение управления инфраструктурой**
## Как работает аппаратная виртуализация?
### Гипервизор (VMM)
Ключевым компонентом аппаратной виртуализации является **гипервизор** (Hypervisor) или **монитор виртуальных машин (VMM, Virtual Machine Monitor)**. Гипервизор управляет виртуальными машинами и распределяет аппаратные ресурсы между ними.
### Типы гипервизоров
- **Гипервизоры первого типа (bare-metal)**
Работают непосредственно на аппаратном уровне, без промежуточной ОС. Примеры: VMware ESXi, Microsoft Hyper-V, KVM, Xen.
- **Гипервизоры второго типа (hosted)**
Запускаются внутри операционной системы, используют ее ресурсы для создания виртуальных машин. Примеры: VMware Workstation, Oracle VirtualBox, Parallels Desktop.
### Аппаратная поддержка виртуализации
Современные процессоры содержат специальные инструкции для работы с виртуальными машинами:
- **Intel VT-x** — технология аппаратной виртуализации от Intel
- **AMD-V** — аналогичная технология от AMD
Эти технологии позволяют гипервизорам напрямую управлять процессором и памятью, снижая накладные расходы на виртуализацию.
## Ключевые технологии аппаратной виртуализации
### Виртуализация процессора
Технологии Intel VT-x и AMD-V позволяют гипервизорам передавать управление виртуальными машинами напрямую на аппаратный уровень, минуя сложную эмуляцию. Это увеличивает производительность.
### Виртуализация памяти
Используется механизм **Extended Page Tables (EPT) / Nested Page Tables (NPT)**, который позволяет гипервизору управлять таблицами страниц памяти более эффективно, снижая накладные расходы на перевод адресов.
### Виртуализация ввода-вывода
- **Intel VT-d / AMD-Vi** — технологии для прямого доступа виртуальных машин к устройствам ввода-вывода (например, сетевым картам, видеокартам).
- **SR-IOV (Single Root I/O Virtualization)** — позволяет виртуальным машинам использовать физические устройства почти с нативной скоростью.
### Виртуализация графики (GPU Virtualization)
Позволяет виртуальным машинам использовать видеокарты для ускорения вычислений и графики. Примеры:
- **NVIDIA vGPU** (для дата-центров)
- **AMD MxGPU**
## Преимущества аппаратной виртуализации
- **Высокая производительность**
Аппаратная поддержка снижает накладные расходы, обеспечивая работу виртуальных машин с минимальной потерей производительности.
- **Гибкость и масштабируемость**
Обеспечивает возможность гибкого перераспределения вычислительных мощностей между виртуальными машинами в реальном времени, адаптируясь к изменяющейся нагрузке.
- **Изоляция виртуальных машин**
Ошибка или взлом одной виртуальной машины не влияет на другие.
- **Эффективность использования ресурсов**
Позволяет запускать множество виртуальных сред на одном физическом сервере, снижая затраты на оборудование.
## Примеры использования аппаратной виртуализации
### Виртуализация серверов
- Дата-центры и облачные платформы (AWS, Google Cloud, Microsoft Azure) используют виртуализацию для работы тысяч серверов на ограниченном количестве физического оборудования.
### Безопасность и песочницы
- Аппаратная виртуализация применяется в антивирусных программах и песочницах для анализа подозрительных файлов в изолированной среде (например, Windows Sandbox, Firecracker от AWS).
### Игровые и графические виртуальные машины
- Виртуализация GPU позволяет запускать графические и AI-вычисления в облаке, например, для рендеринга или стриминга игр (Google Stadia, NVIDIA GeForce Now).
### Разработка и тестирование
- Позволяет разработчикам тестировать различные операционные системы и приложения без необходимости в физическом оборудовании.
## Будущее аппаратной виртуализации
С развитием облачных вычислений и AI виртуализация продолжает эволюционировать. Некоторые перспективные направления:
- **Улучшенная поддержка AI и ML** — оптимизация виртуализации для работы с нейросетями.
- **Развитие технологии виртуализации GPU** — использование виртуализированных видеокарт для рендеринга и машинного обучения.
- **Аппаратная поддержка контейнеров (Confidential Computing)** — новые технологии, такие как AMD SEV и Intel SGX, позволяют запускать изолированные контейнеры с аппаратной защитой.
## Заключение
Аппаратная виртуализация — это ключевая технология, которая позволяет создавать эффективные, гибкие и безопасные вычислительные среды. Благодаря использованию специальных процессорных инструкций, она значительно превосходит программную виртуализацию по производительности и надежности.
Современные гипервизоры и облачные платформы делают аппаратную виртуализацию незаменимым инструментом в серверных, облачных и корпоративных средах, а развитие GPU-виртуализации открывает новые возможности в гейминге и искусственном интеллекте.
Если вам интересна тема виртуализации, попробуйте самостоятельно развернуть гипервизор и протестировать работу виртуальных машин — это отличный способ глубже понять, как работает эта технология!
https://serverspace.uz/support/glossary/pgadmin.mdУзнайте, как использовать pgAdmin — мощный инструмент для управления базами данных PostgreSQL. Подключение к серверам, работа с SQL-запросами, мониторинг, импорт и экспорт данных, управление доступом и расширениями.
**pgAdmin** — это продвинутый и интуитивно понятный инструмент с графическим интерфейсом для управления базами данных **PostgreSQL**. Он позволяет управлять серверами, выполнять SQL-запросы, визуализировать структуры данных и следить за производительностью базы.
## **Основные возможности pgAdmin**
- **Подключение к удалённым и локальным серверам** – поддержка нескольких серверов и одновременной работы с разными базами данных.
- **Графический интерфейс для управления объектами БД** – удобное создание, редактирование и удаление таблиц, схем, индексов, триггеров и других объектов.
- **Редактор SQL-запросов** – подсветка синтаксиса, автодополнение кода и возможность сохранения запросов.
- **Мониторинг и диагностика** – просмотр активных процессов, статистики выполнения запросов и анализа производительности.
- **Импорт и экспорт данных** – поддержка различных форматов (CSV, JSON, XML и др.), упрощающая работу с данными.
- **Безопасность и управление доступом** – настройка ролей пользователей, прав доступа и шифрования соединений.
## **Преимущества pgAdmin**
- **Кроссплатформенность** – работает на **Windows, Linux и macOS**.
- **Понятный и удобный интерфейс** – подходит как для новичков, так и для опытных администраторов БД.
- **Полная интеграция с PostgreSQL** – поддерживает все версии PostgreSQL и его расширения.
- **Бесплатное использование** – распространяется с открытым исходным кодом.
## **FAQ (Часто задаваемые вопросы)**
- **Можно ли использовать pgAdmin для удалённого управления сервером PostgreSQL?**
Да, pgAdmin поддерживает подключение к удалённым серверам PostgreSQL через **SSH-туннелирование** или прямое сетевое соединение.
- **На каких операционных системах работает pgAdmin?**
Инструмент кроссплатформенный и доступен для **Windows, Linux и macOS**.
- **Является ли pgAdmin бесплатным?**
Да, pgAdmin распространяется с **открытым исходным кодом** и доступен для бесплатного использования.
- **Какие альтернативы pgAdmin существуют?**
Среди популярных аналогов: **DBeaver, HeidiSQL, DataGrip и Navicat**.
- **Поддерживает ли pgAdmin работу с расширениями PostgreSQL?**
Да, pgAdmin позволяет управлять и настраивать расширения, такие как **PostGIS, pg_stat_statements и Citus**.
## **Заключение**
**pgAdmin** – один из самых популярных инструментов для управления **PostgreSQL**, который сочетает в себе мощные возможности и удобство использования. Он позволяет администрировать базы данных, анализировать их состояние и оптимизировать работу SQL-запросов, что делает его незаменимым инструментом для разработчиков и администраторов баз данных (DBA).
https://serverspace.uz/support/glossary/private-key.mdУзнайте, что такое Private Key, как он используется в криптографии, блокчейне и цифровых подписях, а также какие меры безопасности помогут защитить ваши данные и активы.
## **Что такое Private Key и зачем он нужен?**
**Private Key** (закрытый ключ) — это криптографический ключ, который используется для шифрования, расшифровки и аутентификации данных. Он играет ключевую роль в криптографии с асимметричными ключами, применяемой в блокчейнах, цифровых подписях и безопасном обмене данными.
## **Как работает Private Key?**
Асимметричная криптография использует пару ключей:
- **Private Key (закрытый ключ)** — держится в секрете владельцем и используется для подписания или расшифровки данных.
- **Public Key (открытый ключ)** — доступен публично и позволяет проверять подпись или зашифровывать сообщения для владельца Private Key.
Когда данные шифруются открытым ключом, расшифровать их может только обладатель закрытого ключа. Аналогично, если сообщение подписано Private Key, его подлинность можно подтвердить с помощью Public Key.
## **Где используется Private Key?**
- **Блокчейн и криптовалюты**
В биткоине, эфириуме и других криптовалютах Private Key позволяет пользователям управлять своими цифровыми активами. Тот, кто владеет закрытым ключом, контролирует соответствующий кошелек.
- **Цифровые подписи**
Private Key применяется для создания цифровых подписей, подтверждающих подлинность документов и транзакций, например, в SSL/TLS-сертификатах.
- **Шифрование данных**
В PGP и других протоколах Private Key используется для расшифровки зашифрованных сообщений, отправленных с помощью Public Key.
- **Аутентификация и безопасность**
В системах SSH закрытый ключ обеспечивает безопасное подключение к удаленным серверам без ввода пароля.
## **Безопасность Private Key**
**Необходимо соблюдать меры предосторожности:**
- **Не храните Private Key в открытом виде.** Используйте аппаратные кошельки, защищенные хранилища и менеджеры паролей.
- **Не передавайте его третьим лицам.** Если кто-то получит доступ к ключу, он сможет управлять вашими активами или данными.
- **Используйте многофакторную аутентификацию (MFA).** В сочетании с закрытым ключом это обеспечивает дополнительный уровень защиты.
- **Создавайте резервные копии.** Утеря Private Key может привести к невозможности доступа к зашифрованным данным или криптовалютному кошельку.
## **Вывод**
Private Key — это основа цифровой безопасности, позволяющая обеспечивать конфиденциальность, аутентификацию и управление активами. Его защита должна быть приоритетом для любого пользователя, работающего с криптографией, блокчейном или безопасным обменом данными.
https://serverspace.uz/support/glossary/cbv.mdУзнайте, как CBV (Constant Buffer View) в Direct3D 12 помогает передавать константные данные в шейдеры, ускоряя рендеринг и обеспечивая эффективное взаимодействие GPU с ресурсами.
**CBV (Constant Buffer View)** — это механизм в графических API, таких как Direct3D 12, позволяющий передавать константные данные в шейдеры. CBV представляет собой специальное представление (View) буфера констант (Constant Buffer), который используется для хранения небольших объемов данных, часто изменяемых между вызовами рендеринга.
## Основные характеристики CBV
- **Малый объем данных** — предназначен для хранения матриц трансформации, параметров освещения и других небольших структур данных.
- **Высокая скорость доступа** — данные, хранящиеся в CBV, кэшируются и доступны для шейдеров с минимальной задержкой.
- **Раздельное использование с другими ресурсами** — CBV может применяться отдельно или в комбинации с SRV (Shader Resource View) и UAV (Unordered Access View).
## Использование CBV в Direct3D 12
В Direct3D 12 константные буферы передаются в шейдеры через Root Signature. Пример создания CBV:
```
D3D12_CONSTANT_BUFFER_VIEW_DESC cbvDesc = {};
cbvDesc.BufferLocation = constantBuffer->GetGPUVirtualAddress();
cbvDesc.SizeInBytes = (sizeof(ConstantData) + 255) & ~255; // Выравнивание на 256 байт
device->CreateConstantBufferView(&cbvDesc, cbvHandle);
```
## Где применяется CBV?
- **Передача матриц трансформации** — используется для хранения модели, вида и проекционных матриц в 3D-графике.
- **Настройки освещения** — хранит параметры источников света, цвета и интенсивности.
- **Глобальные переменные шейдеров** — позволяет передавать общие параметры рендеринга без использования текстур или буферов.
## Заключение
**CBV (Constant Buffer View)** — это ключевой элемент передачи константных данных в графических API, таких как Direct3D 12. Благодаря высокой скорости доступа и простоте использования, он широко применяется в рендеринге для передачи важных параметров шейдерам, обеспечивая эффективную работу графического процессора.
https://serverspace.uz/support/glossary/srv.mdУзнайте, как SRV (Shader Resource View) позволяет шейдерам получать доступ к текстурам и буферам в Direct3D 12, ускоряя рендеринг и сложные графические вычисления!
**SRV (Shader Resource View)** — это механизм в графических API, таких как Direct3D 12, который позволяет шейдерам получать доступ к ресурсам GPU, таким как текстуры и буферы. Он предоставляет унифицированный интерфейс для чтения данных из различных источников, включая 2D- и 3D-текстуры, структурированные и неструктурированные буферы.
## Основные характеристики SRV
- **Гибкость в доступе к данным** — позволяет шейдерам считывать информацию из текстур и буферов с различными форматами.
- **Поддержка разных типов ресурсов** — SRV может работать с текстурами, структурированными буферами и даже с некоторыми формами памяти GPU.
- **Оптимизированное управление памятью** — обеспечивает эффективное использование ресурсов графического процессора.
## Использование SRV в Direct3D 12
В Direct3D 12 SRV создается и привязывается к дескриптору, который затем используется в шейдерах. Пример создания SRV для текстуры:
```
D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc = {};
srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING;
srvDesc.Format = textureFormat;
srvDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D;
srvDesc.Texture2D.MipLevels = 1;
device->CreateShaderResourceView(texture, &srvDesc, srvHandle);
```
## Где применяется SRV?
- **Текстурирование** — используется для передачи текстур в шейдеры, что позволяет реализовать сложные эффекты освещения и материалов.
- **Постобработка** — применяется в фильтрации изображений, эффекте размытия, обработке глубины и других задачах.
- **Физические симуляции** — позволяет работать с картами высот, плотностью частиц и другими параметрами симуляции.
- **Рендеринг на основе данных** — используется в техниках, таких как voxelization и screen-space эффекты.
## Заключение
**SRV (Shader Resource View)** — важный элемент в современных графических API, который позволяет шейдерам эффективно считывать данные из различных ресурсов GPU. Благодаря своей гибкости и производительности, SRV широко используется в текстурировании, постобработке и вычислительных задачах, играя ключевую роль в визуализации компьютерной графики.
https://serverspace.uz/support/glossary/resolv.mdУзнайте, что такое resolv в контексте DNS, узнайте основные аспекты и как работает resolv, как использовать и решить некоторые ошибки с помощью resolv
В контексте DNS термин resolv относится к процессу разрешения доменных имен (DNS resolution) — преобразования читаемого доменного имени (например, example.com) в IP-адрес (например, 93.184.216.34), необходимый для установления сетевого соединения.
## Основные аспекты resolv в DNS
Файл /etc/resolv.conf
Это конфигурационный файл, используемый в UNIX-подобных системах, где указываются параметры для разрешения DNS.
## Что содержит файл?
Файл хранит список DNS-серверов, которые операционная система использует для преобразования доменных имен в IP-адреса.
Пример содержимого файла:
```
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
```
Где:
- **nameserver** указывает IP-адрес DNS-сервера.
- **search** определяет домены для автоматического дополнения запросов.
## Как работает DNS-резолвинг (DNS resolving)
Процесс выглядит так:
- Пользователь вводит доменное имя (например, example.com) в браузере.
- ОС проверяет локальный кеш (например, /etc/hosts).
- Если запись не найдена, запрос отправляется на DNS-серверы, указанные в resolv.conf.
- DNS-сервер возвращает IP-адрес, соответствующий имени.
## Использование и настройка /etc/resolv.conf
**Как изменить DNS-сервер?** Вы можете редактировать файл вручную:
```
sudo nano /etc/resolv.conf
```
Добавьте, например:
```
nameserver 1.1.1.1
nameserver 8.8.8.8
```
Здесь указаны DNS-серверы Cloudflare и Google.
## Автоматическое управление файлом
В некоторых системах файл управляется автоматически через:
- DHCP-клиенты (например, dhclient).
- Менеджеры сети (например, NetworkManager).
Чтобы запретить изменения, можно сделать файл только для чтения:
```
sudo chattr +i /etc/resolv.conf
```
Команды для проверки резолвинга
Проверка DNS-запроса:
```
nslookup example.com
```
Более детальная проверка:
```
dig example.com
```
Проблемы и их решение
## DNS не работает. Что делать?
Проверьте файл resolv.conf — убедитесь, что там указаны рабочие DNS-серверы.
Используйте проверенные серверы, например:
- Google DNS: 8.8.8.8, 8.8.4.4
- Cloudflare DNS: 1.1.1.1, 1.0.0.1
- OpenDNS: 208.67.222.222, 208.67.220.220
## Файл resolv.conf постоянно сбрасывается.
Это может быть вызвано:
- DHCP.
- NetworkManager или другим сетевым менеджером.
**Решение**:
- Отключите автоматическое обновление.
- Настройте DNS через настройки DHCP или NetworkManager.
## Задержки при резолвинге доменов.
- Убедитесь, что указаны быстрые DNS-серверы.
- Настройте локальный кеширующий DNS-сервер, например, dnsmasq или unbound.
## Часто задаваемые вопросы
### Как узнать текущие настройки DNS?
Используйте команду:
```
cat /etc/resolv.conf
```
### Можно ли использовать несколько nameserver?
Да, система обращается к серверам в порядке их указания.
### Что такое search в resolv.conf?
Это параметр, который добавляет указанный домен к запросу. Например:
Если указано search example.com, запрос host1 превратится в host1.example.com.
### Что делать, если я за NAT и DNS не отвечает?
Проверьте настройки роутера или используйте публичные DNS.
### Какие альтернативы DNS-серверам?
Вы можете использовать локальные кеширующие резолверы или встроенные DNS-сервисы, такие как systemd-resolved.
https://serverspace.uz/support/glossary/resursnye-zapisi.mdУзнайте, что такое ресурсные записи в контексте DNS, узнайте о структуре записи, основные виды записей и их примеры
**Ресурсные записи (Resource Records, RR)** представляют собой ключевые элементы данных в системе доменных имен (DNS). Эти записи хранят информацию, которую серверы DNS используют для обработки запросов, связанных с доменами. Каждая такая запись содержит ряд полей, которые описывают тип хранимых данных, срок их актуальности и основное содержимое.
## Структура ресурсной записи
- **Имя (Name)** — доменное имя, к которому относится запись (например, example.com).
- **TTL (Time to Live)** — время жизни записи, указывающее, как долго данные можно кэшировать на клиентских устройствах или промежуточных DNS-серверах.
- **Класс (Class)** — указывает класс записи. Обычно используется IN (Internet), но существуют и другие, например, CH (Chaos).
- **Тип (Type)** — определяет, какого рода информация содержится в записи (например, IP-адрес, запись об отправке почты и т. д.).
- **Данные (RDATA)** — само содержимое записи, зависящее от её типа.
## Основные виды записей
**CNAME** (Canonical Name) — используется для создания псевдонимов, указывающих на другие доменные имена.
Пример: blog.mydomain.net. 7200 IN CNAME mydomain.net.
**MX** (Mail Exchange) — обозначает почтовые серверы, которые принимают электронные письма для домена.
Пример: mydomain.net. 7200 IN MX 20 mail.mydomain.net.
**TXT** — позволяет хранить текстовую информацию, часто применяемую для подтверждения прав на домен или настройки сервисов.
Пример: mydomain.net. 7200 IN TXT "v=spf1 include:_spf.mydomain.net ~all"
**NS** (Name Server) — определяет, какие DNS-серверы отвечают за управление зоной домена.
Пример: mydomain.net. 7200 IN NS ns1.mydomain.net.
**SOA** (Start of Authority) — включает ключевую информацию о DNS-зоне, такую как главный сервер, контактные данные администратора и параметры синхронизации.
Пример:
```
mydomain.net. 7200 IN SOA ns1.mydomain.net. admin.mydomain.net. ( 2024112902 ; Serial number 86400 ; Refresh interval 7200 ; Retry interval 3600000 ; Expiry time 10800 ; Minimum TTL )
```
**PTR (Pointer):**
Используется для обратного DNS-разрешения, где IP-адрес преобразуется в доменное имя. Этот тип записи особенно важен для почтовых серверов, чтобы удостовериться, что IP-адрес отправителя сопоставим с доменом, от имени которого отправлено письмо.
Пример:
123.45.67.89.in-addr.arpa. 7200 IN PTR mail.mydomain.com.
_Дополнительно_:
PTR-записи хранятся в особой зоне DNS, называемой обратной зоной (reverse zone), которая основана на IP-адресах, развернутых в обратном порядке и дополненных доменом in-addr.arpa для IPv4 или ip6.arpa для IPv6. Например, IP 2001:db8::1 в зоне обратного поиска будет выглядеть так:
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
**SRV:**
Этот тип записи широко используется для настройки сложных сетевых сервисов. Например, он указывает на серверы, обслуживающие специфические протоколы, такие как LDAP, SIP, или даже Microsoft Active Directory.
Пример:
```
_ldap._tcp.mydomain.com. 86400 IN SRV 0 5 389 ldapserver.mydomain.com.
```
_Дополнительно:_
В записи SRV указаны следующие параметры:
Приоритет (Priority): Значение определяет порядок обращения к серверам — чем ниже, тем выше приоритет.Вес (Weight): Используется для распределения нагрузки между серверами с одинаковым приоритетом.Порт (Port): Указывает, какой порт использовать для подключения к сервису.Целевой сервер (Target): Имя сервера, предоставляющего услугу.
**DNSSEC: DNSKEY и RRSIG:**
Эти записи являются частью системы DNSSEC, которая добавляет цифровую подпись к DNS-записям, подтверждая их подлинность.
DNSKEY содержит открытый ключ для проверки подписей.RRSIG — это подпись записи, которая генерируется с помощью закрытого ключа.
Пример:
```
mydomain.com. 86400 IN DNSKEY 256 3 8 AwEAAaz...key-data... mydomain.com. 86400 IN RRSIG A 8 3 86400 20241201000000 20241101000000 12345 mydomain.com. ...
```
_Дополнительно:_
DNSSEC активно защищает от атак, таких как кэш-пойзинг (cache poisoning), предотвращая подмену записей DNS. Внедрение DNSSEC требует поддержки на всех уровнях цепочки DNS: от зоны домена до конечного резолвера.
Применение ресурсных записей
Ресурсные записи типа PTR и SRV находят применение в корпоративных сетях, обеспечивая функциональность сервисов, таких как распределенные приложения, мессенджеры и системы авторизации. DNSSEC — это выбор тех, кто заботится о защите данных своих пользователей. Например, банковские учреждения или правительственные структуры активно используют DNSSEC для минимизации рисков.
https://serverspace.uz/support/glossary/zapis-tipa-a.mdУзнайте, что такое Запись типа А, как она работает, когда используется, ее ограничения, поля записи А и многое другое
## Запись A: что это и как работает?
**A-запись (Address Record)** — один из базовых и наиболее часто используемых типов записей в системе DNS (Domain Name System). Она позволяет связать доменное имя с определённым IPv4-адресом, указывающим на сервер или устройство в сети.
## Принцип работы записи A
Когда пользователь вводит в браузере адрес сайта (например, example.com), его устройство отправляет запрос к DNS-серверу. Сервер возвращает A-запись, содержащую IPv4-адрес, например, 93.184.216.34. Этот адрес используется для соединения с сервером, где расположен сайт.
## Структура записи A
- **Имя (Name)**: доменное имя, для которого создаётся запись (например, example.com).
- **TTL (Time to Live)**: время хранения записи в кэше. Например, значение 3600 секунд означает, что запись будет обновляться каждый час.
- **Класс (Class)**: категория записи. Чаще всего используется IN (Internet).
- **Тип (Type)**: в данном случае всегда A.
- **Данные (RDATA)**: IPv4-адрес, привязанный к доменному имени.
## Пример A-записи
```
example.com. 3600 IN A 93.184.216.34
```
**Где:**
- example.com. — доменное имя.
- 3600 — TTL (время кэширования в секундах).
- IN — класс записи.
- A — тип записи.
- 93.184.216.34 — IPv4-адрес.
## Где применяется запись A?
- **Для веб-сайтов**: связывает доменное имя с хостингом сайта.
- **В приложениях:** используется для связи мобильных и веб-приложений с серверами через IP.
- **В локальных сетях**: позволяет назначать статические IP-адреса внутри корпоративных сетей.
## Ограничения записи A
- Работает только с IPv4. Для IPv6 используется запись типа AAAA.
- Не поддерживает динамическое изменение IP-адреса. Для таких задач применяются дополнительные решения, такие как динамический DNS (DDNS).
https://serverspace.uz/support/glossary/masshtabiruemost.mdУзнайте, что такое масштабируемость, основные аспекты масштабируемости, зачем она нужна, примеры масштабируемости и ее проблемы
## Что такое масштабируемость?
**Масштабируемость** — это способность системы, сети или приложения адаптироваться к изменению объёма нагрузки (увеличению или уменьшению) без потери производительности или функциональности. Это ключевая характеристика в IT, которая определяет, насколько хорошо инфраструктура или программное обеспечение может справляться с растущими требованиями, такими как увеличение количества пользователей, объёма данных или количества запросов.
## Виды масштабируемости
**Горизонтальная масштабируемость (Horizontal Scaling):**
Добавление новых узлов в систему, например, дополнительных серверов или виртуальных машин. Это популярный подход в облачных вычислениях и современных распределённых системах.
_Пример_: увеличение количества серверов в веб-кластере.
**Вертикальная масштабируемость (Vertical Scaling):**
Увеличение производительности существующего оборудования, например, добавление оперативной памяти, процессорных мощностей или хранилища на сервер.
_Пример_: переход с 8-ядерного процессора на 16-ядерный.
## Основные аспекты масштабируемости
- **Пропускная способность:**
Система должна сохранять или увеличивать скорость обработки запросов при увеличении нагрузки.
- **Управление ресурсами:**
Эффективное использование новых ресурсов после их добавления — ключевой фактор успешной масштабируемости.
- **Экономичность:**
Затраты на масштабирование должны быть оправданы бизнес-результатами, а добавление ресурсов — максимально рациональным.
- **Отказоустойчивость:**
Система должна оставаться стабильной при резком увеличении или уменьшении нагрузки.
## Зачем нужна масштабируемость?
- **Рост бизнеса:**
При увеличении числа пользователей или запросов, система должна быть готова обслуживать их без сбоев.
- **Устойчивость к пиковым нагрузкам:**
Масштабируемость позволяет справляться с временными скачками нагрузки, такими как сезонные продажи или события с высокой активностью.
- **Экономия:**
Благодаря масштабируемости ресурсы можно добавлять только по мере необходимости, избегая избыточных затрат.
- **Конкурентоспособность:**
Масштабируемые системы обеспечивают гибкость, необходимую для быстрого внедрения новых функций или адаптации к изменяющимся требованиям.
## Примеры масштабируемых систем
- **Микросервисная архитектура:**
В микросервисах каждое приложение разбито на небольшие, независимые модули, которые можно масштабировать отдельно.
- **Базы данных:**
Современные базы данных, такие как MongoDB и Cassandra, предлагают возможность горизонтального масштабирования, добавляя узлы для обработки больших объёмов данных.
- **Контейнеризация:**
Инструменты, такие как Docker и Kubernetes, позволяют быстро масштабировать приложения, развернув дополнительные контейнеры.
## Проблемы масштабируемости
- **Сложность управления:**
Увеличение количества узлов или ресурсов может потребовать сложной системы оркестрации.
- **Задержки:**
При масштабировании распределённых систем увеличиваются сетевые задержки между узлами.
- **Затраты:**
Неправильная стратегия масштабирования может привести к перерасходу средств на инфраструктуру.
- **Совместимость:**
Система должна быть изначально разработана с учётом масштабируемости; не все устаревшие системы поддерживают эффективное масштабирование.
## Заключение
**Масштабируемость** — это фундаментальная характеристика современных IT-систем, обеспечивающая их долгосрочную эффективность и возможность адаптации к изменяющимся условиям. От хорошо спроектированной масштабируемой архитектуры зависит успех бизнеса, особенно в эпоху цифровой трансформации, где рост нагрузки и объёмов данных являются нормой.
https://serverspace.uz/support/glossary/windows-event-logs.mdУзнайте, как работать с Windows Event Logs: назначение, основные категории, примеры использования и советы по автоматизации анализа. Помогите системе стать безопаснее и стабильнее!
**Windows Event Logs (журналы событий Windows)** — ключевой компонент операционной системы Microsoft Windows, предназначенный для записи и хранения данных о событиях, происходящих на устройстве. Эти журналы служат полезным инструментом для администраторов и пользователей, помогая отслеживать состояние системы, устранять неисправности и обеспечивать её безопасность.
## Что такое Windows Event Logs
Журналы событий представляют собой структурированные записи, создаваемые различными компонентами операционной системы, установленными приложениями и драйверами. Каждая запись содержит важные сведения, такие как:
- Дата и время события.
- Источник (программа или служба, вызвавшая событие).
- Идентификатор события (Event ID).
- Уровень серьезности (информация, предупреждение, ошибка и т. д.).
- Описание события.
Эти данные записываются в централизованный репозиторий, доступ к которому осуществляется через средство просмотра событий ("Event Viewer").
## Зачем нужны журналы событий
Windows Event Logs выполняют сразу несколько функций:
- **Диагностика и устранение неисправностей:**
- Позволяют быстро определить причину системных сбоев или проблем в приложениях.
- Содержат полезную информацию для технической поддержки и анализа инцидентов.
- **Мониторинг производительности:**
- Фиксируют аномалии в работе системы.
- Помогают выявлять узкие места и сбои в производительности.
- **Обеспечение безопасности:**
- Содержат данные о попытках несанкционированного доступа.
- Помогают отслеживать активность пользователей и приложений.
- **Соответствие стандартам:**
- Журналы событий являются важным элементом обеспечения соответствия требованиям нормативных стандартов (например, ISO 27001 или PCI DSS).
## Основные категории журналов событий
Windows Event Logs подразделяются на несколько категорий, каждая из которых фиксирует определенный тип данных:
- **Application (Приложение):** записи о работе пользовательских приложений.
- **System (Система):** события, связанные с работой ОС и её компонентов.
- **Security (Безопасность):** информация о входах в систему, попытках авторизации и других действиях, связанных с безопасностью.
- **Setup (Установка):** данные об установке программного обеспечения и обновлений.
- **Forwarded Events (Пересланные события):** события, переданные с других компьютеров.
## Как работать с Windows Event Logs
- **Открытие Event Viewer:**
- Нажмите Win + R, введите **eventvwr** и нажмите Enter.
- **Навигация:**
- Слева находится дерево категорий.
- В центре отображаются записи выбранной категории.
- Справа доступны действия ("Сохранить журнал", "Очистить журнал" и т. д.).
- **Фильтрация событий:**
- Выберите нужную категорию и нажмите "Фильтровать текущий журнал".
- Укажите параметры (уровень события, Event ID и т. д.) для сужения поиска.
- **Анализ записей:**
- Дважды щелкните на событии, чтобы открыть его свойства.
- Обратите внимание на детали — источник, код ошибки, описание.
## Примеры практического применения
- **Поиск причин зависания системы:**
- Перейдите в раздел System и найдите события с уровнем Error.
- **Анализ подозрительной активности:**
- Проверьте журнал Security на предмет неудачных попыток входа в систему.
- **Мониторинг обновлений:**
- В разделе Setup отследите успешность установки обновлений.
## Автоматизация работы с журналами
Для работы с журналами событий можно использовать PowerShell и сторонние инструменты, такие как:
**PowerShell:**
```
Get-EventLog -LogName Security -Newest 10
```
Позволяет программно получать данные из журналов.
**Сторонние системы SIEM (например, Splunk или ELK):**
Автоматизируют сбор, обработку и анализ событий для крупных инфраструктур.
## Заключение
Windows Event Logs — это мощный инструмент, который помогает в управлении, диагностике и обеспечении безопасности операционных систем. Понимание принципов работы с журналами событий и их анализ позволяет существенно повысить стабильность и защищенность ваших компьютеров и серверов. Освойте работу с Event Viewer и автоматизацию процессов — это станет важным шагом в управлении IT-инфраструктурой.
## Ответы на частые вопросы (FAQ)
- **Могу ли я удалить журналы событий?**
Да, вы можете очистить журналы событий через Event Viewer. Однако рекомендуется сохранять их копии для последующего анализа.
- **Как долго хранятся журналы событий?**
Срок хранения зависит от настроек системы. По умолчанию старые записи удаляются, когда файл журнала достигает заданного размера.
- **Какие Event ID являются наиболее важными?**
Это зависит от ваших целей. Например, Event ID 4624 сигнализирует об успешном входе, а 4625 — о неудачной попытке входа.
- **Могу ли я экспортировать данные из журналов?**
Да, Event Viewer позволяет экспортировать данные в форматы XML, CSV и другие.
https://serverspace.uz/support/glossary/chto-takoe-ggh-lyogkij-i-bystryj-instrument-dlya-raboty-s-ssh.mdGGH это лёгкий инструмент для работы с SSH, который упрощает подключение к серверам, управление сессиями и настройками. Поддерживает историю сессий, работу с ~/.ssh/config и расширяет возможности SSH для удобной и быстрой работы
GGH — это инструмент для работы с SSH, созданный для упрощения взаимодействия с серверами. Это лёгкая обёртка (wrapper), которая добавляет удобство в управление предыдущими сессиями, конфигурациями и запуском SSH-команд. Он не заменяет SSH, а использует его, чтобы расширить функциональность и сделать работу быстрее и проще. GGH — это лёгкий и быстрый инструмент для работы с SSH, упрощающий подключение к серверам, управление сессиями и конфигурациями.
## Ключевые особенности GGH
Подключение к серверам: Работает как обычный SSH, поддерживая стандартные команды:
```
ggh user@server.com
ggh user@server.com -p2222
```
История сессий: Если вы часто подключаетесь к разным серверам, GGH сохраняет историю сессий, чтобы вы могли легко выбирать нужное соединение:
```
ggh
```
Это покажет интерактивный список предыдущих подключений.
Работа с ~/.ssh/config: GGH может читать ваш SSH-конфиг и предоставлять удобный интерфейс для фильтрации и выбора записей:
```
ggh -
ggh - stage
ggh - dev-server
```
Управление конфигурацией и историей: Можно получить неинтерактивный список ваших настроек и истории подключений:
```
ggh --config
ggh --history
```
https://serverspace.uz/support/glossary/python-skript.mdЧто такое Python-скрипт и зачем он нужен? Простое объяснение для новичков: особенности, примеры, создание и использование в реальных задачах. Узнайте, как начать писать свои скрипты!
**Python-скрипт** — это мощный инструмент, который позволяет автоматизировать задачи, анализировать данные, создавать веб-приложения и даже разрабатывать игры. В этой статье мы подробно разберем, что такое Python-скрипт, какие особенности делают его таким популярным, как его создать и применять. Вы узнаете, почему этот формат стал основой для многих разработчиков, и увидите примеры кода, которые можно использовать в реальных проектах.
## Особенности Python-скриптов
- **Читаемость и простота**: Python известен своей лаконичностью и читаемым синтаксисом. Даже сложные скрипты можно писать и понимать без глубоких знаний в программировании.
- **Интерпретируемость**: Python-скрипты не компилируются заранее, а исполняются интерпретатором Python строка за строкой. Это упрощает процесс разработки и отладки.
- **Модульность**: Скрипт может быть простым (всего несколько строк) или состоять из набора функций и классов, которые выполняют более сложные задачи.
- **Кроссплатформенность**: Python-скрипты работают на различных операционных системах, таких как Windows, macOS и Linux, при условии, что установлен соответствующий интерпретатор Python.
## Как создается Python-скрипт?
- **Установка Python**: Для работы со скриптами необходимо установить интерпретатор Python, который можно скачать с официального сайта Python.
- **Выбор редактора**: Скрипты можно писать в любом текстовом редакторе, например, VS Code, PyCharm или даже в стандартном Блокноте.
- **Создание файла**: Создайте текстовый файл с расширением .py, например, my_script.py.
- **Написание кода**: Внесите в файл команды на Python. Например:
```
print("Hello, World!")
```
Запуск скрипта: Выполните скрипт через командную строку, набрав:
```bash
python my_script.py
```
## Примеры использования Python-скриптов
- **Автоматизация задач**: Сбор данных с веб-сайтов, переименование файлов, резервное копирование.
- **Анализ данных:** Работа с библиотеками Pandas, NumPy и Matplotlib для обработки и визуализации данных.
- **Веб-разработка**: Создание серверов и API с помощью Flask или Django.
- **Игровая разработка**: Использование библиотек, таких как Pygame, для создания игр.
## Почему Python-скрипты популярны?
- Низкий порог входа для начинающих программистов.
- Большая экосистема библиотек для решения практически любых задач.
- Гибкость в разработке и адаптивность под разные проекты.
- Python-скрипты стали неотъемлемой частью современной разработки благодаря своей универсальности и простоте, что делает их востребованным инструментом как для новичков, так и для профессионалов.
Пример простого скрипта:
```
# Считаем сумму чисел от 1 до 10
total = sum(range(1, 11))
print(f"Сумма чисел от 1 до 10: {total}")
```
Этот код демонстрирует базовые возможности Python — работу с циклами, функциями и вывод результатов.
https://serverspace.uz/support/glossary/paas-platform-as-a-service.mdPaaS (Platform as a Service) — облачная платформа, упрощающая разработку и развертывание приложений. Узнайте, как PaaS ускоряет создание продуктов, снижает затраты и автоматизирует управление инфраструктурой.
**PaaS (Platform as a Service)**— это облачная модель предоставления услуг, которая обеспечивает разработчиков платформой для создания, тестирования, развертывания и управления приложениями. В отличие от IaaS, где пользователям предоставляются инфраструктурные ресурсы (серверы, хранилища, сети), PaaS предлагает полный набор инструментов и сервисов, упрощающих работу с программным обеспечением.
## Основные особенности PaaS
- **Готовая платформа для разработки**
PaaS избавляет от необходимости конфигурировать серверы, устанавливать операционные системы и управлять базами данных. Разработчики могут сосредоточиться непосредственно на написании кода.
- **Инструменты для разработки и тестирования**
Включает средства разработки, отладчики, среды выполнения и системы управления версиями. Многие платформы предлагают поддержку популярных языков программирования, таких как Python, Java, Node.js и Ruby.
- **Автоматизация инфраструктуры**
PaaS платформы автоматически управляют масштабированием, резервным копированием и мониторингом приложений. Это снижает нагрузку на DevOps-команды.
- **Интеграция с другими сервисами**
PaaS поддерживает подключение к внешним API, сервисам хранения данных и аналитическим инструментам.
## Преимущества использования PaaS
- **Скорость разработки**
Уменьшает время, необходимое для подготовки инфраструктуры, благодаря готовым инструментам.
- **Снижение затрат**
Нет необходимости тратить ресурсы на управление серверами и операционными системами — всё это делает провайдер.
- **Масштабируемость**
PaaS автоматически увеличивает ресурсы в зависимости от нагрузки на приложение, что упрощает управление.
- **Удобство управления**
Все операции, включая развертывание и обновления приложений, выполняются через удобные интерфейсы или API.
## Примеры платформ PaaS
- **Google App Engine** — позволяет разрабатывать и развертывать приложения в облаке Google.
- **Heroku** — популярная платформа для развертывания веб-приложений.
- **AWS Elastic Beanstalk** — сервис от Amazon для развертывания и управления приложениями.
- **Microsoft Azure App Service** — решение для веб-приложений и мобильных backend'ов.
## Основные сценарии использования
- **Веб-разработка:** создание и развертывание веб-сайтов и веб-приложений.
- **Прототипирование:** быстрая реализация MVP (минимально жизнеспособного продукта) для стартапов.
- **Интеграция с SaaS:** разработка приложений, которые взаимодействуют с существующими облачными сервисами.
## Заключение
**PaaS** — это отличный выбор для разработчиков, которые хотят сосредоточиться на коде, а не на управлении инфраструктурой. Благодаря автоматизации, интеграции и удобным инструментам PaaS ускоряет разработку, снижает затраты и упрощает развертывание приложений.
Если вы ищете решение для быстрого старта или упрощения процесса разработки, стоит обратить внимание на PaaS как мощный инструмент для облачной разработки.
https://serverspace.uz/support/glossary/saas-software-as-a-service.mdЧто такое SaaS? Простое объяснение модели Software as a Service, её преимущества, недостатки, примеры и сравнение с On-premises. Узнайте всё о SaaS!
**SaaS (Software as a Service)** — это способ предоставления программных продуктов, при котором пользователи работают с приложениями через интернет, без необходимости установки их на свои устройства. Вместо покупки полной лицензии на программное обеспечение, пользователь оплачивает доступ по модели подписки.
## Как работает SaaS?
- **Централизованное хранение**. ПО размещается на серверах компании-поставщика, что избавляет пользователей от необходимости локальной установки.
- **Доступ через сеть**. Взаимодействие с программой происходит через веб-браузер или специальное приложение, используя подключение к интернету.
- **Подписка**. Пользователи оплачивают услуги на регулярной основе — обычно ежемесячно или ежегодно.
Эта модель делает программное обеспечение доступным и гибким для множества сценариев использования.
## Примеры SaaS
- **Облачные офисные приложения**: Google Workspace, Microsoft 365.
- **CRM-системы**: Salesforce, HubSpot.
- **Инструменты для командной работы**: Slack, Trello, Asana.
- **Маркетинговые платформы**: Mailchimp, SEMrush.
## Преимущества SaaS
- **Экономия ресурсов**: Не требуется мощное оборудование или установка программ.
- **Автоматические обновления**: Провайдер регулярно обновляет сервис, добавляя функции и исправляя ошибки.
- **Доступность**: Работать с SaaS можно из любого места с интернетом.
- **Масштабируемость**: Удобное расширение ресурсов (например, добавление новых пользователей или хранилища).
## Недостатки SaaS
Зависимость от интернета: Для работы сервиса требуется стабильное подключение.
Ограниченный контроль: Пользователь зависит от решений провайдера (например, в плане конфиденциальности данных).
Подписная модель: При долгосрочном использовании стоимость может превысить затраты на приобретение ПО.
## Сравнение SaaS и On-premises
**SaaS** и **On-premises** — это две разные модели предоставления программного обеспечения, каждая из которых имеет свои особенности и подходит для различных потребностей.
При использовании SaaS программное обеспечение доступно через интернет, исключая необходимость его установки на устройства. Пользователи могут работать с сервисом из любой точки, где имеется подключение к сети. Обновления выполняются автоматически, а стоимость услуг обычно рассчитывается на основе подписки, что делает модель предсказуемой с точки зрения бюджета.
On-premises, в свою очередь, подразумевает размещение программного обеспечения непосредственно на серверах или устройствах внутри компании.. Эта модель позволяет пользователям полностью контролировать данные и настройки системы, но требует значительных затрат на оборудование, лицензии и обслуживание. Кроме того, обновление программного обеспечения необходимо выполнять самостоятельно, что добавляет сложности в управлении.
Главное различие между SaaS и On-premises заключается в том, где располагается программное обеспечение и кто отвечает за его поддержку. SaaS больше подходит для компаний, которые ценят удобство, доступность и минимальные усилия по управлению, в то время как On-premises выбирают те, кто ставит во главу угла безопасность, конфиденциальность и полный контроль.
## Заключение
SaaS является ключевой частью современного IT-ландшафта, предлагая гибкость, удобство и масштабируемость. Эта модель широко используется бизнесом и частными пользователями, предоставляя доступ к современным технологиям без необходимости в сложной инфраструктуре.
https://serverspace.uz/support/glossary/oblachnoe-masshtabirovanie-cloud-scaling.mdОблачное масштабирование (Cloud Scaling) — ключевая технология, обеспечивающая гибкость и отказоустойчивость приложений. Узнайте о типах масштабирования, таких как горизонтальное, вертикальное и автоматическое, а также о преимуществах, таких как снижение затрат и повышение доступности, для эффективного использования облачных ресурсов.
**Облачное масштабирование** — это процесс увеличения или уменьшения ресурсов, предоставляемых облачной инфраструктурой для обеспечения нужд приложений и пользователей. Это одна из ключевых особенностей облачных вычислений, которая позволяет эффективно адаптировать систему под меняющиеся нагрузки без необходимости в капитальных вложениях в физическое оборудование.
## Виды облачного масштабирования
- **Горизонтальное масштабирование (Horizontal Scaling)**
Это добавление дополнительных экземпляров ресурсов (серверов, виртуальных машин) для распределения нагрузки. Вместо того чтобы усиливать мощность существующего сервера, система масштабируется путем добавления новых узлов. Горизонтальное масштабирование может быть автоматизировано с помощью технологий, таких как Kubernetes, и используется в большинстве современных облачных решений для обеспечения отказоустойчивости и масштабируемости.
- **Вертикальное масштабирование (Vertical Scaling)**
Вертикальное масштабирование предполагает увеличение мощности одного ресурса — например, добавление оперативной памяти или улучшение процессора виртуальной машины. Это может быть полезно для приложений, которые не могут эффективно работать в распределенной среде, но имеет ограничения по улучшению производительности.
- **Автоматическое масштабирование (Auto Scaling)**
Автоматическое масштабирование — это динамическое увеличение или уменьшение ресурсов в зависимости от текущей нагрузки на систему. Оно позволяет обеспечить оптимальную работу приложений, даже когда количество пользователей или объема данных значительно колеблется в течение времени. Примером может служить использование авто-скейлинга в AWS, где настройка позволяет добавлять виртуальные машины по мере роста трафика и удалять их при снижении.
## Преимущества облачного масштабирования
- **Гибкость**. Облачные решения позволяют быстро увеличивать или уменьшать ресурсы в зависимости от реальных потребностей, что дает возможность экономить средства, не перегружая инфраструктуру.
- **Отказоустойчивость**. Масштабирование помогает обеспечить доступность приложений даже при пиковых нагрузках, предотвращая сбои и простои.
- **Снижение затрат**. Благодаря возможности оплачивать только используемые ресурсы, компании могут существенно снизить расходы на инфраструктуру.
## Применение облачного масштабирования
- **Веб-приложения**. Облачное масштабирование идеально подходит для веб-приложений, которые могут сталкиваться с изменяющимся трафиком, например, интернет-магазинов, новостных сайтов или социальных сетей.
- **Обработка больших данных**. Масштабирование важно для приложений, работающих с большими объемами данных, например, в сфере аналитики или машинного обучения.
- **Игровые и мультимедийные сервисы**. Облачное масштабирование помогает в обработке высокого трафика в онлайн-играх или стриминговых сервисах.
## Заключение
Облачное масштабирование является важным инструментом для обеспечения надежности и эффективности работы современных онлайн-сервисов. Благодаря ему компании могут адаптироваться к изменяющимся условиям и оптимизировать использование ресурсов, что критически важно для поддержания конкурентоспособности в условиях динамично развивающихся технологий.
https://serverspace.uz/support/glossary/blokovoe-hranilishhe.mdБлоковое хранилище — это технология для эффективного управления данными в виде отдельных блоков фиксированного размера. Узнайте, как оно повышает производительность, гибкость и надежность хранения данных, а также его применение в облачных сервисах, виртуализации и базах данных.
**Блоковое хранилище** — это тип хранилища данных, который используется для организации хранения информации в виде отдельных блоков фиксированного размера. Каждый блок представляет собой небольшую часть данных, которая может быть доступна и управляемая независимо от других блоков. Это хранилище используется в большинстве современных систем, включая серверы, базы данных и облачные платформы.
## Как работает блоковое хранилище
В блоковом хранилище информация разделяется на отдельные блоки одинакового размера, каждый из которых может быть записан, считан или изменен отдельно от других. Каждый блок имеет уникальный идентификатор (адрес), что позволяет системе находить и управлять данными на уровне блоков. В отличие от файловых систем, где данные хранятся в виде файлов, блоковое хранилище дает более низкоуровневое, но гибкое управление данными.
Когда приложение или система требует доступа к данным, оно может запрашивать конкретный блок, а хранилище предоставит его. В случае с облачными хранилищами, блоки данных могут физически храниться на распределенных устройствах и серверах, что увеличивает масштабируемость и доступность.
## Преимущества блокового хранилища
- **Производительность**
Блоковое хранилище предоставляет высокую скорость чтения и записи данных, так как блоки данных могут быть легко и быстро извлечены и записаны. Это особенно важно для приложений с интенсивными операциями ввода-вывода, таких как базы данных или виртуализация.
- **Гибкость**
Блоки могут использоваться для различных типов данных, и их можно изменять без влияния на другие блоки. Это делает блоковое хранилище подходящим для различных приложений, от простых файловых систем до сложных корпоративных решений.
- **Масштабируемость**
Блоковое хранилище легко масштабируется, так как оно позволяет добавлять новые блоки по мере роста объема данных. В облачных решениях блоковое хранилище часто используется для предоставления гибкости в управлении пространством и ресурсами.
- **Надежность и отказоустойчивость**
Множество провайдеров блокового хранилища предлагают функции репликации и резервного копирования данных. Это повышает надежность и защищенность данных в случае сбоев оборудования или потерянных данных.
## Недостатки блокового хранилища
- **Сложность управления**
Блоковое хранилище требует от пользователей управления низкоуровневыми аспектами хранения данных, такими как распределение и конфигурация блоков. Это может быть сложным для менее опытных пользователей.
- **Меньше удобства для конечного пользователя**
В отличие от файлового хранилища, которое предоставляет простой интерфейс для работы с файлами и папками, блоковое хранилище требует дополнительной настройки для использования данных в виде файлов.
- **Стоимость**
Блоковое хранилище может быть более дорогим по сравнению с другими типами хранилищ, такими как объектные хранилища, поскольку требует более сложной инфраструктуры и управления.
## Применение блокового хранилища
- **Виртуализация**
Виртуальные машины (VM) часто используют блоковое хранилище для хранения виртуальных дисков. Это позволяет обеспечивать высокую производительность и гибкость в управлении данными виртуальных сред.
- **Базы данных**
Блоковое хранилище является основой для многих баз данных, поскольку оно обеспечивает высокую скорость ввода-вывода, необходимую для обработки больших объемов данных в реальном времени.
- **Облачные вычисления
**Облачные сервисы, включая Amazon Web Services (AWS), Microsoft Azure и Google Cloud, предоставляют решения для блокового хранилища, которые используются для создания виртуальных дисков и хранения данных в облаке. Эти решения позволяют пользователям гибко масштабировать ресурсы в зависимости от своих потребностей.
- **Хранение критически важных данных**
Блоковое хранилище также является идеальным решением для хранения данных, которые имеют критическое значение, таких как финансовая информация, медицинские записи или другие важные данные, требующие надежности и безопасности.
## Заключение
Блоковое хранилище является важной технологией для организаций и пользователей, которым требуется высокая производительность, гибкость и надежность в управлении данными. Оно позволяет эффективно работать с большими объемами данных, обеспечивая быстрый доступ и масштабируемость. Несмотря на свои недостатки, такие как высокая стоимость и сложность управления, блоковое хранилище продолжает оставаться важным элементом в инфраструктуре облачных вычислений, виртуализации и баз данных.
https://serverspace.uz/support/glossary/openssl.mdOpenSSL — мощный инструмент для работы с криптографией, шифрованием и безопасными соединениями. В статье разберём его основные возможности, команды для генерации ключей и сертификатов, а также ответим на частые вопросы (FAQ)
OpenSSL — это мощная и широко используемая библиотека для работы с криптографией и безопасными соединениями. Она включает в себя инструменты для шифрования, генерации ключей, создания цифровых сертификатов и работы с протоколом TLS/SSL.
### Основные возможности OpenSSL:
- **Шифрование и дешифрование** данных с помощью симметричных и асимметричных алгоритмов (AES, RSA, ECC и другие).
- **Генерация и управление ключами** (создание приватных и публичных ключей, управление ключевыми парами).
- **Работа с цифровыми сертификатами** (создание самоподписанных сертификатов, запросов на подпись CSR, проверка цепочек доверия).
- **Поддержка TLS/SSL** для безопасного соединения между клиентами и серверами.
- **Хеширование и подписи** (MD5, SHA-256, HMAC, цифровые подписи на основе RSA и DSA).
### Где используется OpenSSL?
- В веб-серверах (например, Nginx, Apache) для работы по HTTPS.
- В VPN-системах, таких как OpenVPN.
- В системах электронной подписи и аутентификации.
- В разработке программного обеспечения, требующего криптографической защиты.
### Пример команды OpenSSL:
Генерация закрытого ключа RSA (2048 бит):
```
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
```
Создание самоподписанного сертификата (сроком на 1 год):
```
openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365
```
OpenSSL является открытым проектом, но из-за различных уязвимостей (например, Heartbleed в 2014 году) его рекомендуется регулярно обновлять.
## FAQ по OpenSSL
- **OpenSSL – это бесплатное программное обеспечение?**
Да, OpenSSL распространяется под лицензией Apache 2.0, что позволяет свободно использовать его в коммерческих и некоммерческих проектах.
- **Как проверить установленную версию OpenSSL?**
Можно выполнить команду:
```
openssl version
```
- **Чем OpenSSL отличается от LibreSSL?**
LibreSSL — это форк OpenSSL, созданный командой OpenBSD для повышения безопасности и упрощения кода.
- **Как сгенерировать сертификат без ввода данных вручную?**
Можно использовать необязательные параметры командной строки или файл конфигурации **-subj**. Пример:
```
openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365 -subj "/CN=example.com"
```
****
- **Как проверить, поддерживает ли сервер TLS 1.3?**
Используйте команду:
```
openssl s_client -connect example.com:443 -tls1_3
```
https://serverspace.uz/support/glossary/uac.mdUAC (User Account Control) — это система безопасности в Windows, которая управляет правами пользователей и защищает от несанкционированных изменений. Узнайте, как UAC работает, зачем он нужен и как настроить уровень уведомлений.
**UAC (User Account Control)** — это система безопасности в операционных системах Windows, предназначенная для управления правами пользователей и защиты от нежелательных изменений в системе. Когда приложение пытается выполнить действия, которые требуют прав администратора, UAC уведомляет пользователя и запрашивает его подтверждение или ввод пароля, чтобы предотвратить потенциальные угрозы.
UAC был введен в Windows Vista с целью повышения безопасности операционной системы и предотвращения несанкционированных изменений. Он помогает защитить систему от вирусов и других вредоносных программ, которые могут пытаться выполнять действия с правами администратора без ведома пользователя.
Основные функции UAC:
- **Защита от нежелательных изменений**. UAC предотвращает автоматическое выполнение программ с правами администратора без вашего согласия.
- **Запрос прав администратора**. Для выполнения операций, требующих повышенных прав, программа должна получить ваше подтверждение.
- **Настройки безопасности**. Пользователь может настроить частоту запросов UAC, регулируя уровень уведомлений.
## FAQ
- **Зачем нужен UAC?**
UAC помогает защитить систему от вредоносных программ, которые могут пытаться изменить настройки компьютера или установить нежелательные программы без ведома пользователя.
- **Можно ли отключить UAC?**
Да, UAC можно отключить через настройки безопасности Windows. Однако это не рекомендуется, так как это снижает уровень защиты системы.
- **Почему UAC часто запрашивает подтверждения?**
Это происходит, когда приложения требуют прав администратора для выполнения определенных операций, таких как изменение системных файлов или настроек. Частота уведомлений зависит от настроек UAC.
- **Как настроить UAC?**
Можно настроить UAC через Панель управления в разделе "Учетные записи пользователей", выбрав желаемый уровень уведомлений — от частых запросов до их полного отсутствия.
https://serverspace.uz/support/glossary/reverse-proxy.mdReverse proxy, что это за сервер, как он работает, и какие преимущества приносит: балансировка нагрузки, усиление безопасности, кеширование, обработка SSL и маршрутизация трафика. Приведены примеры использования и популярные инструменты для реализации reverse proxy, такие как Nginx, HAProxy и Apache HTTP…
**Reverse Proxy** — это сервер, который действует как посредник между клиентами и одним или несколькими серверами, скрывая внутреннюю инфраструктуру от внешних пользователей. В отличие от обычного прокси-сервера, который работает от имени клиента, реверс-прокси принимает запросы от клиентов и перенаправляет их на серверы, которые выполняют обработку.
## Основные функции и преимущества:
- **Балансировка нагрузки**: Reverse Proxy может распределять запросы между несколькими серверами, улучшая производительность и обеспечивая равномерную нагрузку.
- **Усиление безопасности**: Он может скрывать истинные IP-адреса и данные о внутренней инфраструктуре, что затрудняет атаки на конкретные серверы.
- **Кеширование**: Для улучшения производительности, реверс-прокси может кэшировать ответы от серверов и отправлять их клиентам, тем самым сокращая нагрузку на серверы и ускоряя время отклика.
- **SSL-терминация**: Reverse Proxy может обрабатывать процессы SSL-шифрования, снижая нагрузку на серверы и улучшая безопасность.
- **Маршрутизация трафика**: Он может направлять запросы на различные серверы в зависимости от типа запроса или других факторов, таких как URL или заголовки.
## Как работает reverse proxy?
Когда клиент делает запрос на веб-страницу, этот запрос сначала поступает на реверс-прокси. Затем, в зависимости от настроек, реверс-прокси направляет запрос на соответствующий сервер, обрабатывает его, и возвращает результат клиенту. Это может быть полезно, например, для скрытия множества серверов или сервисов за единственным публичным адресом.
## Примеры использования:
- **Масштабируемые веб-приложения**: В крупных системах, где много серверов, реверс-прокси помогает распределить трафик и повысить отказоустойчивость.
- **Защита внутренней сети**: В некоторых случаях реверс-прокси используется для того, чтобы внутренние сервера не были напрямую доступны из Интернета.
- **Обработка безопасности и шифрования**: Например, можно использовать реверс-прокси для централизованного управления SSL-сертификатами.
## Пример программного обеспечения для reverse proxy:
- **Nginx**: Один из самых популярных инструментов для реализации reverse proxy, часто используется для балансировки нагрузки и кеширования.
- **HAProxy**: Еще один мощный инструмент, известный своей высокой производительностью и гибкими настройками для балансировки нагрузки.
- **Apache HTTP Server** с модулем mod_proxy: Позволяет настроить reverse proxy в веб-сервере Apache.
Использование reverse proxy помогает повысить производительность, безопасность и масштабируемость веб-систем. Это важный инструмент для администраторов, которые хотят эффективно управлять трафиком и серверными ресурсами.
https://serverspace.uz/support/glossary/innodb.mdInnoDB — популярный механизм хранения данных в MySQL, обеспечивающий поддержку транзакций, целостность данных, автоматическое восстановление после сбоев и блокировки на уровне строк. В статье подробно рассмотрены ключевые особенности InnoDB, его преимущества, а также ответы на часто задаваемые вопросы о механизме.
**InnoDB** — это один из самых распространенных механизмов хранения данных в MySQL, предлагающий поддержку транзакций, гарантирующий целостность данных и обеспечивающий автоматическое восстановление после сбоев. Он использует систему блокировок для обеспечения конкурентного доступа и предотвращения ошибок при многозадачной обработке данных.
## Ключевые особенности InnoDB:
- **Поддержка транзакций**: InnoDB поддерживает транзакции с механизмами **ACID** (атомарность, согласованность, изолированность, долговечность), что гарантирует надежность выполнения операций.
- **Целостность данных**: Механизм использует внешние ключи для поддержания связности данных и предотвращает появление "сиротских" записей.
- **Автоматическое восстановление**: После сбоя InnoDB может автоматически восстанавливать данные, благодаря журналированию транзакций (Write-Ahead Logging).
- **Блокировки на уровне строк**: Для повышения производительности и уменьшения конкуренции между запросами InnoDB применяет блокировки на уровне строк, а не таблиц, что позволяет обрабатывать большее количество одновременных запросов.
InnoDB является стандартным механизмом хранения в MySQL с версии 5.5, заменив предыдущий MyISAM. Он часто применяется в приложениях, где критически важны высокая производительность и надежность, таких как веб-сайты и корпоративные системы.
## FAQ о InnoDB:
- **Что такое транзакции в InnoDB?**
Транзакции в InnoDB обеспечивают выполнение нескольких операций как единого целого, гарантируя, что все изменения будут либо успешно выполнены, либо отменены в случае ошибки. Это позволяет обеспечить атомарность и согласованность данных.
- **Что такое внешние ключи в InnoDB?**
Внешние ключи — это ограничения, которые устанавливают связи между таблицами. В InnoDB они используются для обеспечения целостности данных, предотвращая создание "сиротских" записей и поддерживая правильные связи между таблицами.
- **Как InnoDB восстанавливает данные после сбоя?**
InnoDB использует механизм журналирования транзакций (Write-Ahead Logging), который записывает изменения в журнал перед их применением к данным. В случае сбоя InnoDB использует этот журнал для восстановления данных в их последнем консистентном состоянии.
- **Каковы преимущества блокировок на уровне строк?**
Блокировки на уровне строк позволяют одновременно работать с различными строками таблицы, что увеличивает параллельность запросов и уменьшает задержки, особенно при высоконагруженных системах. Это делает InnoDB идеальным выбором для приложений, где требуется высокая параллельная обработка запросов и поддержка множества одновременных пользователей.
- **Как изменить механизм хранения с MyISAM на InnoDB?**
Для преобразования таблицы с MyISAM на InnoDB можно использовать команду:
```sql
ALTER TABLE имя_таблицы ENGINE = InnoDB;
```
Это приведет к конвертации таблицы и всех ее данных в формат InnoDB.
- **Какие есть ограничения у InnoDB?**
InnoDB поддерживает множество функций, но имеет некоторые ограничения, такие как:
- Максимальный размер таблицы (ограничен файловой системой);
- Для каждой таблицы InnoDB создается отдельный файл журнала, что может увеличивать нагрузку на диск.
**Как оптимизировать производительность InnoDB?**
Для оптимизации InnoDB важно настроить параметры, такие как буферный пул (**InnoDB Buffer Pool**), который управляет памятью, используемой для кэширования данных, и журнал транзакций (**InnoDB Log File**). Также полезно индексация таблиц и правильная настройка блокировок для уменьшения времени ожидания.
https://serverspace.uz/support/glossary/link-aggregation-agregacziya-kanalov.mdУзнайте о преимуществах, принципах работы, типах и применении Link Aggregation, а также ограничениях и методах оптимизации.
**Link Aggregation**, или **агрегация каналов**, — это метод объединения нескольких физических сетевых соединений в одно логическое соединение для улучшения пропускной способности сети и повышения ее надежности. Эта технология позволяет создать более стабильное и быстрое соединение, увеличивая производительность и защищая сеть от потерь связи в случае отказа одного из каналов.
## Ключевые преимущества агрегации каналов:
- **Увеличение пропускной способности**: Объединение нескольких физических каналов в одно логическое соединение позволяет повысить общую пропускную способность, что особенно важно для приложений, требующих высокой скорости передачи данных.
- **Отказоустойчивость**: При выходе одного канала из строя остальные продолжают функционировать, обеспечивая стабильную работу сети без прерываний.
- **Распределение трафика**: С помощью агрегации каналов трафик распределяется между несколькими соединениями, что помогает оптимизировать работу сети и уменьшить задержки.
- **Снижение затрат**: Вместо прокладывания новых физических каналов можно эффективно использовать уже существующие, что способствует сокращению расходов на инфраструктуру.
## Принцип работы агрегации каналов:
Link Aggregation применяется с помощью различных стандартов и протоколов. Наиболее распространенными являются:
- **IEEE 802.3ad (LACP - Link Aggregation Control Protocol)**: Это стандарт для динамической агрегации соединений, который автоматически настраивает и управляет агрегированными каналами, обеспечивая совместимость различных производителей. LACP определяет, какие каналы нужно агрегировать, и управляет балансировкой нагрузки.
- **Статическая агрегация (Static Link Aggregation)**: При статической агрегации каналы на обоих концах соединения настраиваются вручную. Этот метод исключает дополнительные накладные расходы, но требует больше усилий для настройки.
## Типы агрегации каналов:
- **EtherChannel**: Термин, используемый в оборудовании Cisco для агрегации каналов. EtherChannel поддерживает как статическую настройку, так и динамическое управление с помощью LACP.
- **Port Aggregation Protocol (PAgP)**: Протокол, разработанный Cisco, для автоматической настройки и управления агрегацией каналов на устройствах компании.
## Использование агрегации каналов:
Link Aggregation применяется в различных сценариях, включая:
- **Сетевые устройства**: Для создания высокоскоростных соединений между коммутаторами, маршрутизаторами и серверами.
- **Центры обработки данных**: Для улучшения скорости передачи данных и повышения отказоустойчивости между серверами и хранилищами.
- **Корпоративные сети**: Для увеличения пропускной способности и улучшения надежности соединений между рабочими станциями и серверами.
## Ограничения технологии:
- **Совместимость оборудования**: Для использования Link Aggregation все устройства в сети должны поддерживать эту технологию, а также иметь одинаковые настройки.
- **Лимиты пропускной способности**: Хотя агрегация каналов повышает пропускную способность, она ограничена количеством доступных физических соединений. Например, если используется четыре канала, то пропускная способность будет зависеть от скорости каждого из них.
- **Балансировка нагрузки**: Эффективность распределения нагрузки может зависеть от выбранных методов и алгоритмов, реализуемых на сетевых устройствах.
Link Aggregation представляет собой важный инструмент для увеличения производительности и повышения надежности современных сетей. Эта технология используется в различных сетевых структурах — от малых офисных сетей до крупных корпоративных решений и дата-центров. С помощью таких протоколов, как LACP и PAgP, а также статической настройки, можно эффективно управлять сетевой инфраструктурой и снизить затраты на ее расширение.
https://serverspace.uz/support/glossary/bonding.mdУзнайте, как улучшить производительность и отказоустойчивость вашей сети с помощью технологии bonding. Мы объясним, что это такое, какие существуют режимы и как настроить bonding для эффективного управления трафиком.
**Bonding** — это метод объединения нескольких сетевых интерфейсов в одну виртуальную интерфейсную группу с целью увеличения производительности, отказоустойчивости или нагрузки между несколькими физическими интерфейсами. Обычно используется в серверных и корпоративных сетях для обеспечения более стабильной работы и увеличения пропускной способности.
## Типы Bonding
Существует несколько режимов bonding, каждый из которых имеет свои особенности и применяется в зависимости от нужд сети.
- **Mode 0 (Round-robin)** — Использует метод кругового распределения трафика между интерфейсами. Этот режим позволяет максимизировать пропускную способность, равномерно распределяя трафик между всеми активными интерфейсами. Однако, он может не обеспечивать отказоустойчивости.
- **Mode 1 (Active-backup)** — Один интерфейс является активным, а остальные — резервными. Если активный интерфейс выходит из строя, резервный интерфейс автоматически становится активным. Это повышает отказоустойчивость сети, но не увеличивает пропускную способность.
- **Mode 2 (XOR)** — Использует алгоритм XOR для распределения трафика между интерфейсами. Это приводит к более сбалансированному распределению трафика, но в отличие от Mode 0 не увеличивает пропускную способность в равной степени.
- **Mode 3 (Broadcast)** — Все интерфейсы передают трафик одновременно, что позволяет повысить отказоустойчивость, но пропускная способность не увеличивается, так как данные передаются по всем интерфейсам.
- **Mode 4 (802.3ad – LACP)** — Использует стандарты IEEE 802.3ad для создания канала с агрегированным соединением. Этот режим помогает не только увеличить пропускную способность, но и улучшить отказоустойчивость за счет использования динамического протокола агрегирования.
- **Mode 5 (Balance-tlb)** — Использует динамическую балансировку нагрузки, основанную на текущей загрузке каждого интерфейса. Это позволяет эффективно распределять трафик в зависимости от пропускной способности каждого интерфейса.
- **Mode 6 (Balance-alb)** — Подобен Mode 5, но с дополнением поддержки балансировки нагрузки на уровне приема и передачи данных (на двустороннем соединении). Это позволяет добиться еще большей эффективности в распределении трафика.
## Преимущества использования Bonding
- **Повышенная производительность**: В некоторых режимах bonding может значительно повысить пропускную способность канала, что полезно в случае высоконагруженных серверов и сетей.
- **Отказоустойчивость**: Резервирование интерфейсов и использование активного-резервного режима помогает предотвратить потерю соединения в случае отказа одного из интерфейсов.
- **Гибкость и масштабируемость**: Возможность легко добавлять новые интерфейсы в группу bonding или изменять режим работы позволяет гибко адаптировать сеть под изменяющиеся условия.
## Недостатки
- **Сложность конфигурации**: Для правильной настройки bonding может потребоваться знание сетевых технологий и опыт работы с системами Linux/Unix или сетевыми устройствами.
- **Зависимость от поддерживаемых протоколов**: Некоторые старые устройства или операционные системы могут не поддерживать все режимы bonding.
Bonding — это мощный инструмент для управления сетевой производительностью и отказоустойчивостью, используемый в критичных к производительности и надежности системах. Однако для правильного использования важно понимать особенности каждого режима и учитывать требования к оборудованию и сети.
https://serverspace.uz/support/glossary/diskovoe-prostranstvo.mdУзнайте, что такое дисковое пространство, как оно измеряется и почему важно следить за его использованием. Мы объясним, что такое свободное и используемое пространство, а также как управлять дисковым пространством для оптимизации работы вашего устройства
**Дисковое пространство** — это часть памяти, которая используется для хранения данных на устройстве хранения, таком как жесткий диск, твердотельный накопитель (SSD), флеш-накопитель или другие подобные устройства. Этот термин относится к количеству места, которое доступно для записи и чтения данных.
Каждое устройство хранения делится на определенные блоки или сектора, в которых физически хранятся данные. В контексте операционных систем, дисковое пространство часто измеряется в байтах, килобайтах (КБ), мегабайтах (МБ), гигабайтах (ГБ) и терабайтах (ТБ).
Когда говорят о "дисковом пространстве", обычно имеют в виду:
- **Общее пространство**: весь объем памяти устройства.
- **Используемое пространство**: объем данных, который уже записан на устройство.
- **Свободное пространство**: объем памяти, который еще не занят данными и доступен для записи.
Например, на жестком диске объемом 1 ТБ может быть 400 ГБ занято операционной системой, программами и другими файлами, а оставшиеся 600 ГБ — свободны для новых данных.
Конечно, вот пример часто задаваемых вопросов (FAQ) по теме дискового пространства:
## **FAQ: Дисковое пространство**
**1. Что такое дисковое пространство?**
Дисковое пространство — это объём памяти, доступный для хранения данных на устройстве хранения (жесткий диск, SSD, флеш-накопитель и т.д.).
**2. Как измеряется дисковое пространство?**
Дисковое пространство измеряется в байтах, килобайтах (КБ), мегабайтах (МБ), гигабайтах (ГБ) или терабайтах (ТБ). 1 ГБ = 1024 МБ, 1 МБ = 1024 КБ.
**3. Что такое свободное и используемое дисковое пространство?**
- **Используемое пространство** — это часть дискового пространства, которая уже занята данными, такими как операционная система, программы, документы и другие файлы.
- **Свободное пространство** — это объем памяти, который ещё не занят и доступен для хранения новых данных.
**4. Почему важно следить за дисковым пространством?**
Если на устройстве заканчивается дисковое пространство, это может замедлить работу системы, вызвать ошибки при сохранении файлов или даже привести к сбоям в работе программы. Регулярное мониторинг и очистка устройства помогают поддерживать его производительность.
**5. Как проверить доступное дисковое пространство?**
На большинстве операционных систем, таких как Windows или macOS, можно проверить доступное пространство через "Проводник" или "Finder". Также существуют утилиты для анализа пространства, например, в терминале Linux или специализированные программы для оптимизации диска.
**6. Что происходит, когда дисковое пространство полностью заполняется?**
Когда диск заполняется полностью, система может прекратить запись новых данных. Некоторые приложения и даже операционная система могут перестать работать должным образом. В таких случаях необходимо освободить место на диске или расширить его объем (например, добавив дополнительный диск или использовав облачные хранилища).
**7. Как освободить место на диске?**
Для освобождения места можно удалить ненужные файлы, такие как временные файлы, старые резервные копии, или переместить часть данных на внешние носители или в облачные хранилища.
**8. Что делать, если я не могу освободить достаточно места?**
Если стандартные методы не помогают, можно использовать программы для поиска больших файлов или для удаления ненужных программ. Также стоит подумать о расширении хранилища, если это возможно.
https://serverspace.uz/support/glossary/uid.mdУзнайте, что такое UID (уникальный идентификатор), где он применяется и как генерируется. Разбираем ключевые методы создания UID и их использование в базах данных, операционных системах, сетевых технологиях и геймдеве
**UID (Unique Identifier)** – это уникальный идентификатор, используемый для различения объектов, пользователей или сущностей в системе. UID может представлять собой числовое, строковое или смешанное значение, которое гарантированно уникально в определённом контексте (например, в пределах базы данных, операционной системы или сети).
## Где используется UID?
UID широко применяется в различных областях IT:
- **Базы данных** – для идентификации записей (например,user_id в MySQL или PostgreSQL).
- **Операционные системы** – для определения пользователей (например, UID в UNIX/Linux).
- **Программирование** – в генерации уникальных ключей для объектов.
- **Сетевые технологии** – в MAC-адресах, IP-адресах и других уникальных идентификаторах.
- **Геймдев** – для отслеживания игровых объектов и пользователей.
## Примеры UID
- **UUID (Universally Unique Identifier)** – 128-битный идентификатор, применяемый в распределённых системах (может выглядеть вот так: 6e8f4e02-c91c-465f-b22d-7f102fca381b).
- **UID в UNIX/Linux** – числовой идентификатор пользователя (root обычно имеет UID 0).
- **MAC-адрес** – уникальный аппаратный адрес сетевой карты (например, 00:1A:2B:3C:4D:5E.
## Как создается UID?
В зависимости от сферы применения UID может генерироваться различными методами:
- **Генерация случайных чисел** – используется в криптографии и безопасности.
- **Алгоритмы хеширования (SHA, MD5)** – применяются для создания устойчивых идентификаторов.
- **Комбинация времени и уникальных параметров** – например, UUID версии 1 использует временную метку и MAC-адрес устройства.
## Итог
UID – это фундаментальный элемент цифровых систем, обеспечивающий уникальность и идентификацию данных, объектов или пользователей. Без UID сложно представить работу современных IT-систем, от баз данных до операционных систем и сетевых технологий.
https://serverspace.uz/support/glossary/mac-adres.mdУзнайте, что такое MAC-адрес, как он формируется, где используется и можно ли его изменить. Разбираем структуру MAC-адреса, его роль в локальных сетях и способы управления доступом с его помощью
MAC-адрес (Media Access Control Address) — аппаратный идентификатор сетевого интерфейса, присваиваемый производителем. Он представлен в 48-битном формате и записывается шестнадцатеричными парами, например:
```
1:B2:C3:D4:E5:F6
```
Этот адрес используется для передачи данных на канальном уровне сетевой модели OSI, обеспечивая точную маршрутизацию внутри локальных сетей (LAN).
## **Как формируется MAC-адрес?**
MAC-адрес состоит из двух сегментов:
- **Первые 3 байта (OUI, Organizationally Unique Identifier)** – код производителя устройства, например, у Intel он может начинаться с 00:1B:44.
- **Оставшиеся 3 байта** – уникальный серийный номер конкретного устройства, назначенный изготовителем.
Пример расшифровки MAC-адреса** 00:1B:44:67:89:AB**:
- **00:1B:44** – зарегистрированный префикс производителя (Intel).
- **67:89:AB** – индивидуальный идентификатор сетевого адаптера.
## **Основные области применения**
- **Локальные сети (Ethernet, Wi-Fi)** – маршрутизаторы и коммутаторы используют MAC-адреса для передачи пакетов внутри сети.
- **Контроль доступа** – администраторы могут ограничивать подключение к сети, разрешая доступ только определённым MAC-адресам.
- **Анализ сетевого трафика** – инструменты мониторинга помогают отслеживать активность устройств по их MAC-адресам.
## **Можно ли изменить MAC-адрес?**
Хотя MAC-адрес прошит в сетевом адаптере, его можно изменить программно. В Windows, Linux и macOS доступны утилиты, позволяющие временно подменять MAC-адрес, что может использоваться в тестировании или для обхода ограничений.
## **Заключение**
MAC-адрес – один из фундаментальных элементов сетевого взаимодействия, обеспечивающий идентификацию устройств на низком уровне. Он играет ключевую роль в маршрутизации внутри локальных сетей, безопасности и управлении подключениями.
https://serverspace.uz/support/glossary/active-directory.mdУзнайте, что такое Active Directory, ее основные компоненты, преимущества, недостатки, применение и архитектура
Active Directory (AD) - это система управления доступом и идентичностью, разработанная компанией Microsoft для операционных систем Windows. AD позволяет централизованно управлять доступом к ресурсам сети, аутентификацией и авторизацией пользователей, а также хранить информацию о пользователях, группах и компьютерах в сети.
## Архитектура Active Directory
AD состоит из следующих компонентов:
- **Domain Controller (DC)**: сервер, который отвечает за аутентификацию и авторизацию пользователей, а также хранит информацию о домене.
- **Domain**: логическая группа компьютеров и пользователей, которая является частью сети.
- **Tree**: иерархическая структура доменов, которая позволяет создавать сложные структуры доменов.
- **Forest**: деревьев доменов, который позволяет создавать глобальную инфраструктуру идентичности и доступа.
## Функции Active Directory
AD обеспечивает следующие функции:
- **Аутентификация**: AD проверяет идентичность пользователей и устройств, которые пытаются получить доступ к ресурсам сети.
- **Авторизация**: AD определяет, какие ресурсы сети доступны для пользователей и устройств, прошедших аутентификацию.
- **Управление доступом**: AD позволяет управлять доступом к ресурсам сети, такими как файлы, принтеры и приложения.
- **Учет и отчетность**: AD позволяет отслеживать и анализировать действия пользователей и устройств в сети.
- **Управление группами**: AD позволяет создавать и управлять группами пользователей, что упрощает управление доступом к ресурсам.
## Применение Active Directory
AD используется в следующих сценариях:
- **Корпоративные сети**: AD используется для управления доступом к ресурсам и аутентификации пользователей в корпоративных сетях.
- **Учебные заведения**: AD используется для управления доступом к ресурсам и аутентификации студентов и преподавателей в учебных заведениях.
- **ГО и НКО**: AD используется для управления доступом к ресурсам и аутентификации сотрудников и волонтеров в государственных организациях и некоммерческих организациях.
## Преимущества Active Directory
- **Централизованное управление**: AD обеспечивает централизованное управление доступом к ресурсам и аутентификацией пользователей.
- **Увеличение безопасности**: AD помогает улучшить безопасность сети, обеспечивая аутентификацию и авторизацию пользователей.
- **Удобство управления**: AD упрощает управление доступом к ресурсам и аутентификацией пользователей.
## Недостатки Active Directory
- **Сложность**: AD может быть сложен в настройке и управлении, особенно для крупных сетей.
- **Зависимость от Microsoft**: AD тесно интегрирован с операционными системами Windows и может требовать дополнительных лицензий и поддержки от Microsoft.
- **Уязвимости**: AD, как и любая другая система, может иметь уязвимости, которые могут быть использованы злоумышленниками.
https://serverspace.uz/support/glossary/repo.mdУзнайте, что такое repo, его ключевые компоненты, типы, виды, основные команды и что можно делать с помощью репозитория
В Git, repo (сокращение от repository -репозиторий") - это центральное хранилище, где хранятся все файлы и история проекта. Это по сути база данных, которая отслеживает каждый измененный файл, включая информацию о том, кто и когда сделал изменения, а также почему.
## Ключевые компоненты
- **Рабочий каталог**: это место, где вы найдете файлы и папки вашего проекта. Это каталог, где вы будете вносить изменения в код.
- **Индекс** (или стейджинг-эрия): это временное хранилище, где вы готовите изменения, которые хотите зафиксировать. Думайте о нем как о "ожидании" для ваших изменений перед тем, как они будут официально записаны в repo.
- **Локальный репозиторий** (или папка .git): это место, где Git хранит всю метаинформацию о вашем проекте, включая историю коммитов, ветки и теги. Обычно это скрытая папка .git внутри вашего рабочего каталога.
Когда вы запускаете инициализацию репозитория Git с помощью команды git init, создается скрытая папка .git, которая хранит все метаинформацию о вашем проекте. Затем вы получаете доступ к полному спектру Git-команд, позволяющим управлять и изменять ваш проект, включая такие команды как
- **git add**: готовит изменения к индексу
- **git commit**: записывает изменения в локальный репозиторий
- **git log**: просматривает историю коммитов
- **git branch**: управляет ветками
- **git remote**: подключается к удаленному репозиторию (например, GitHub, GitLab или Bitbucket)
Repo Git может быть:
- **Локальным**: хранится на вашем собственном компьютере, для личных проектов или целей тестирования
- **Удаленным**: хранится на сервере, таком как GitHub, GitLab или Bitbucket, для совместных проектов или открытых проектов с открытым исходным кодом
- **Центральным**: единый, авторитетный репозиторий, который служит основным хабом для проекта, часто используемый в корпоративных средах
В целом, репо Git - это централизованная система для управления изменениями кода, позволяющая отслеживать историю, сотрудничать с другими и поддерживать различные версии вашего проекта.
https://serverspace.uz/support/glossary/working-tree.mdУзнайте, что такое working tree (рабочее дерево) в контексте Git, его ключевые аспекты и почему это важный аспект при работе с Git
**Working tree** (также известно как рабочий каталог) - это фундаментальное понятие в Git, популярной системе контроля версий.
В Git под рабочим деревом понимается локальная директория на вашем компьютере, в которой вы в данный момент работаете над проектом. Это каталог, в котором вы проверили определенную версию кода вашего проекта из репозитория Git.
Подумайте об этом так: когда вы клонируете репозиторий Git, Git создает локальную копию кода проекта на вашем компьютере. Эта локальная копия - ваше рабочее дерево. Это каталог, в котором вы можете редактировать файлы, добавлять новые или удалять существующие.
**Рабочее дерево** - это область, где вы вносите изменения в свой код, и именно здесь Git отслеживает эти изменения. Когда вы вносите изменения в файлы в Рабочем дереве, Git распознает эти изменения и позволяет вам зафиксировать их в репозитории.
Вот некоторые ключевые аспекты рабочего дерева:
- **Локальные изменения**: Рабочее дерево - это место, где вы вносите локальные изменения в свой код, например, редактируете файлы, добавляете новые или удаляете существующие.
- **Неустановленные изменения**: Когда вы вносите изменения в файлы в вашем рабочем дереве, они изначально являются неустановленными, то есть они ещё не отслеживаются Git'ом.
- **Область постановки**: Когда вы используете git add для постановки изменений, они перемещаются из рабочего дерева в область постановки (также известную как индекс).
- **Коммит изменений**: После постановки изменений вы можете зафиксировать их в репозитории с помощью git commit, что создаст новый снимок кода вашего проекта.
- **Синхронизация с удаленным репозиторием**: Когда вы отправляете свои изменения в удаленный репозиторий (например, GitHub, GitLab), ваше рабочее дерево синхронизируется с удаленным репозиторием.
В общем, рабочее дерево - это локальная директория, в которой вы работаете над кодом проекта, вносите изменения и оформляете их для фиксации в репозитории Git.
https://serverspace.uz/support/glossary/eczp.mdУзнайте, что такое ЭЦП (электронная цифровая подпись), ее основные аспекты и применение
ЭЦП, или электронная цифровая подпись, — это технология, которая используется для подтверждения подлинности электронного документа и его авторства. ЭЦП обеспечивает защиту данных и гарантирует, что документ не был изменен после подписания. Она выполняет роль "цифровой печати", удостоверяя, что документ исходит от конкретного подписанта и не претерпел изменений.
## Основные аспекты ЭЦП
- **Подлинность**. ЭЦП подтверждает личность подписанта, что важно при передаче документов, особенно в бизнесе, юриспруденции и государственных услугах. Подписант создает свою уникальную цифровую подпись с помощью закрытого ключа, который известен только ему.
- **Целостность данных**. ЭЦП позволяет убедиться, что данные не были изменены после подписания. Если хоть один символ в документе был изменен, ЭЦП становится недействительной, и система обнаруживает подмену.
- **Неотказуемость**. ЭЦП подтверждает, что отправитель не сможет отказаться от своего участия в передаче документа. Это важно в правовых спорах, так как документ с ЭЦП может служить доказательством.
ЭЦП создается с помощью асимметричной криптографии, где используется пара ключей — закрытый (приватный) и открытый (публичный) ключи. Закрытый ключ используется для создания подписи, а открытый — для её проверки.
## Применение ЭЦП
ЭЦП широко используется в таких областях, как:
- **Электронные документы и делопроизводство**. В компаниях и государственных учреждениях ЭЦП применяется для подписания договоров, отчетов и других документов, что ускоряет их обработку.
- **Госуслуги и электронное правительство**. Граждане могут подписывать заявления, обращения и другие документы удаленно.
- **Финансовый сектор**. Для подписания банковских и финансовых документов, таких как договоры и счета, что упрощает взаимодействие с клиентами и партнерами.
ЭЦП стала ключевым инструментом для электронного документооборота, обеспечивая безопасность и юридическую значимость цифровых документов.
https://serverspace.uz/support/glossary/marshrutizator.mdУзнайте, что такое маршрутизатор, как работает маршрутизатор, для чего он используется и примеры использования
Маршрутизатор — это устройство, которое управляет трафиком между различными сетями, направляя пакеты данных от одной сети к другой. Он работает на уровне 3 модели OSI (сетевом уровне) и играет ключевую роль в компьютерных сетях.
## Как работает маршрутизатор
- **Получение пакетов**: Маршрутизатор принимает данные в виде пакетов от устройств внутри сети или от других маршрутизаторов.
- **Анализ пакетов**: Он анализирует заголовки пакетов, чтобы определить, куда они должны быть отправлены. Это включает в себя проверку IP-адресов источника и назначения.
- **Определение маршрута**: На основе информации о маршрутах (например, таблицы маршрутизации) маршрутизатор выбирает наиболее эффективный путь для передачи пакета к его конечному адресу.
- **Передача пакетов**: После определения маршрута маршрутизатор пересылает пакеты в соответствующую сеть или к следующему маршрутизатору на пути к конечному пункту назначения.
## Для чего используется маршрутизатор
- **Связывание сетей**: Маршрутизаторы соединяют разные сети (например, локальную сеть с интернетом).
- **Управление трафиком**: Они помогают оптимизировать использование пропускной способности и избегать перегрузок.
- **Безопасность**: Многие маршрутизаторы включают функции брандмауэра и NAT (преобразование сетевых адресов) для защиты локальной сети.
## Примеры использования
- **Домашние сети**: Маршрутизаторы в домашних условиях позволяют всем устройствам (компьютеры, смартфоны, планшеты) подключаться к интернету через единую точку доступа.
- **Корпоративные сети**: В бизнесе маршрутизаторы связывают локальные сети различных отделов с внешними сетями и обеспечивают надежное и безопасное соединение.
- **Международные сети**: В крупных компаниях маршрутизаторы управляют трафиком между офисами, находящимися в разных странах, обеспечивая связь и обмен данными.
- **Умный дом: **Управление подключёнными устройствами (умными лампами, термостатами, камерами) через маршрутизатор с поддержкой IoT.
- **Облачные сети: **Интеграция маршрутизаторов с облачными платформами для гибкого управления сетевой инфраструктурой.
- **5G и IoT: **Маршрутизаторы, поддерживающие 5G, становятся важной частью инфраструктуры для подключения IoT-устройств с минимальными задержками.
## Дополнительные функции маршрутизаторов
- **QoS (Качество обслуживания): **Современные маршрутизаторы могут приоритизировать определённый трафик (например, видеоконференции или онлайн-игры) для обеспечения стабильной скорости и минимальных задержек.
- **Виртуальные частные сети (VPN): **Многие маршрутизаторы поддерживают встроенные функции VPN, позволяя пользователям безопасно подключаться к корпоративным сетям из удалённых мест.
- **Поддержка IPv6: **Современные маршрутизаторы поддерживают IPv6, обеспечивая работу с новыми диапазонами IP-адресов.
- **Модульность и расширяемость: **Некоторые корпоративные маршрутизаторы поддерживают смену модулей для добавления новых функций, например, портов для оптоволоконных линий или дополнительных интерфейсов.
## Типы маршрутизаторов
- **Домашние маршрутизаторы: **Простые устройства, ориентированные на небольшое количество подключений, часто совмещённые с точками Wi-Fi доступа.
- **Корпоративные маршрутизаторы: **Обладают большей вычислительной мощностью и расширенными функциями безопасности и управления.
- **Маршрутизаторы ядра: **Используются в крупных сетях (например, у интернет-провайдеров) для обработки огромного объёма трафика между различными сегментами сети.
- **Виртуальные маршрутизаторы: **Программные маршрутизаторы, работающие на виртуальных машинах, используются в облачных инфраструктурах и программно-определяемых сетях (SDN).
## Советы по выбору маршрутизатора
- **Пропускная способность: **Убедитесь, что маршрутизатор поддерживает достаточную скорость для вашей сети (например, 1 Гбит/с или выше).
- **Количество подключений: **Выберите устройство, которое может справиться с количеством ваших устройств (например, в домашних сетях — до 10, в офисах — сотни).
- **Функции безопасности: **Наличие встроенного брандмауэра, NAT и поддержки VPN.
- **Поддержка новых технологий: **Убедитесь, что устройство поддерживает Wi-Fi 6, IPv6 и другие современные стандарты.
## Роль маршрутизатора в сетевой безопасности
- **Брандмауэр: **Защита от несанкционированного доступа благодаря блокировке подозрительного трафика.
- **NAT (Network Address Translation): **Скрытие внутренней структуры сети за одним публичным IP-адресом.
- **Фильтрация контента: **Ограничение доступа к определённым сайтам или приложениям для повышения безопасности и продуктивности.
- **IDS/IPS (Системы обнаружения и предотвращения вторжений): **Анализ трафика для обнаружения и блокировки подозрительных действий.
## Перспективы развития маршрутизаторов
- **AI и машинное обучение: **Интеллектуальные маршрутизаторы будут автоматически оптимизировать трафик, анализировать угрозы и адаптироваться к сетевым условиям.
- **Полная интеграция с облаком: **Управление маршрутизаторами через облачные панели становится стандартом для корпоративных решений.
- **Сетевая виртуализация: **Переход к программно-определяемым сетям (SDN), где функции маршрутизаторов реализуются виртуально.
Маршрутизаторы являются важным элементом инфраструктуры современных сетей, обеспечивая связь и управление трафиком на всех уровнях.
https://serverspace.uz/support/glossary/outcome-driven-innovation.mdУзнайте что такое методология ODI, ее основные характеристики, преимущества и как он помогает бизнес организациям предоставлять решения
Outcome-Driven Innovation (ODI) — это методология, сосредоточенная на понимании и удовлетворении потребностей клиентов путем определения желаемых результатов и использования этих результатов для управления процессом инноваций. Разработанная Энтони Ульвиком, ODI подчеркивает важность выявления того, чего клиенты хотят достичь, а не просто сосредоточения на функциях продукта.
## Ключевые принципы ODI
- **Ориентированный на клиента подход**: ODI начинается с глубокого понимания потребностей клиентов и желаемых результатов. Это включает в себя сбор данных через интервью, опросы и другие методы исследования, чтобы выяснить, что действительно важно для клиентов.
- **Желаемые результаты**: Основой ODI является выявление конкретных результатов, которые клиенты хотят достичь. Эти результаты часто формулируются в виде метрик или критериев, указывающих на успех для клиента.
- **Фокус на инновации**: После определения желаемых результатов процесс инноваций может быть направлен на разработку решений, удовлетворяющих эти потребности. Это может включать создание новых продуктов, услуг или улучшение существующих предложений.
- **Приоритезация**: ODI помогает расставить приоритеты для функций и улучшений на основе их воздействия на желаемые результаты, что обеспечивает рациональное распределение ресурсов на наиболее ценные инновации.
- **Измерение и валидация**: Успех инноваций можно измерить по определенным желаемым результатам, что позволяет подтвердить, были ли удовлетворены потребности клиентов.
## Преимущества ODI
- **Повышение удовлетворенности клиентов**: Сосредоточив внимание на том, чего на самом деле хотят клиенты, организации могут создавать решения, которые лучше удовлетворяют их потребности, что приводит к более высокой удовлетворенности и лояльности.
- **Улучшение успеха инноваций**: ODI помогает снизить риск неудачи, обеспечивая согласованность инноваций с потребностями клиентов с самого начала.
- **Стратегическое принятие решений**: Организации могут принимать более обоснованные решения о разработке продуктов и распределении ресурсов на основе четкого понимания приоритетов клиентов.
В общем, Outcome-Driven Innovation — это системный подход, который ставит желаемые результаты клиентов в центр процесса инноваций, помогая организациям предоставлять более актуальные и значимые решения.
https://serverspace.uz/support/glossary/serilog.mdУзнайте, что такое Serilog, ее основные характеристики, примеры применения и почему она является мощным инструментом для логирования
Serilog — это библиотека для логирования в .NET-приложениях, известная своей простотой и мощными возможностями настройки. Она позволяет разработчикам создавать структурированные логи, что упрощает их анализ и поиск информации.
## Основные характеристики Serilog
- **Структурированное логирование**: Serilog поддерживает запись логов в структурированном формате, что позволяет сохранять не только текстовые сообщения, но и дополнительные данные (например, объекты). Это облегчает анализ логов с использованием инструментов для обработки структурированных данных.
- **Гибкость конфигурации**: Библиотека предлагает различные способы конфигурации, включая настройки через код, JSON-файлы и конфигурационные файлы AppSettings. Это позволяет легко настраивать уровни логирования и выходные потоки.
- **Поддержка различных источников**: Serilog может отправлять логи в множество различных мест, таких как файлы, базы данных, консоль, облачные сервисы (например, Seq, Splunk, Azure Application Insights) и многие другие.
- **Модульность**: Serilog имеет богатую экосистему "синков" (sinks), которые позволяют записывать логи в различные системы хранения. Пользователи могут добавлять или удалять синки в зависимости от своих потребностей.
- **Поддержка контекста**: Serilog позволяет легко добавлять контекстную информацию в логи, что помогает более точно идентифицировать события, происходящие в приложении. Например, можно добавлять информацию о текущем пользователе или операции.
- **Производительность**: Serilog оптимизирован для работы с высоконагруженными приложениями и может асинхронно записывать логи, что минимизирует влияние на производительность.
## Применение Serilog
- **Веб-приложения**: Широко используется в ASP.NET Core приложениях для создания логов, что помогает отслеживать ошибки и производительность.
- **Системы мониторинга**: Serilog может интегрироваться с системами мониторинга и анализа логов, обеспечивая сбор и анализ данных о работе приложений.
- **Отладка**: Логи, созданные с помощью Serilog, помогают разработчикам выявлять и устранять ошибки в коде.
Serilog является мощным инструментом для логирования в .NET-приложениях, предлагая гибкость и расширенные возможности для создания структурированных логов. Его использование позволяет улучшить процесс мониторинга, отладки и анализа данных, что особенно важно в современных приложениях.
https://serverspace.uz/support/glossary/unix.mdУзнайте, что такое Unix, ее основные характеристики, использование unix-подобных систем. Почему Unix играют ключевую роль в современном мире
Unix — это операционная система, разработанная в 1960-х годах в Bell Labs. Она стала основой для многих современных операционных систем благодаря своей надежности, многозадачности и гибкости.
## Основные характеристики Unix
- Многоуровневая архитектура: Unix разделяет функциональные компоненты на несколько уровней, что позволяет обеспечить стабильность и расширяемость.
- Модульность: В Unix используется множество небольших утилит, каждая из которых выполняет конкретную задачу. Пользователи могут комбинировать их для выполнения более сложных операций.
- Многопользовательский режим: Unix поддерживает работу нескольких пользователей одновременно, каждый из которых может иметь свои права доступа.
- Система прав доступа: Unix обеспечивает безопасность, позволяя настраивать права доступа к файлам и процессам.
## Использование Unix
Unix используется в самых разных областях благодаря своей надежности и гибкости. Вот несколько примеров:
- Серверы: Unix и его производные (например, Linux) часто используются для настройки веб-серверов, баз данных и других сетевых служб.
- Разработка программного обеспечения: Многие разработчики предпочитают Unix-системы для разработки благодаря мощным инструментам командной строки и поддержке множества языков программирования.
- Научные вычисления: Unix используется в научных и исследовательских учреждениях для обработки данных и выполнения сложных вычислений.
- Встраиваемые системы: Unix-подобные операционные системы используются в встраиваемых системах, таких как маршрутизаторы и различные устройства IoT.
## Примеры Unix-подобных систем
- Linux: Одна из самых популярных свободных операционных систем, широко используемая как на сервере, так и на настольных ПК.
- BSD (Berkeley Software Distribution): Разновидность Unix, известная своей стабильностью и безопасностью (например, FreeBSD, OpenBSD).
- AIX: Коммерческая версия Unix от IBM, используемая в корпоративных средах.
- HP-UX: Unix-система от Hewlett-Packard, также предназначенная для корпоративного использования.
Unix и его производные по-прежнему играют ключевую роль в современном мире технологий благодаря своей стабильности и надежности
https://serverspace.uz/support/glossary/paketnyj-menedzher.mdУзнайте, что такое пакетный менеджер, его основные особенности, как он работает и зачем нужен. Узнайте об примерах пакетных менеджеров
**Пакетный менеджер** — это программа или набор инструментов, предназначенных для автоматизации установки, обновления, удаления и управления программными пакетами в операционной системе или программной среде. Он упрощает управление программным обеспечением, позволяя разработчикам и пользователям легко добавлять или удалять зависимости, обновлять версии и разрешать конфликты между пакетами.
## Зачем нужен пакетный менеджер?
Пакетный менеджер позволяет:
- **Управлять зависимостями**. Современные программы часто зависят от других библиотек и фреймворков. Пакетный менеджер автоматически устанавливает и обновляет все необходимые зависимости.
- **Обновлять пакеты**. Упрощает процесс обновления программ, проверяя, что все компоненты совместимы друг с другом.
- **Удалять пакеты**. При удалении пакета пакетный менеджер может также удалить все связанные зависимости, которые больше не нужны.
- **Снижать вероятность ошибок**. За счёт автоматизации управления пакетами, уменьшается вероятность конфликта версий или установки неподходящих зависимостей.
## Как работает пакетный менеджер?
- **Репозиторий пакетов**. Пакеты и их версии хранятся в репозиториях — центральных хранилищах. Пакетный менеджер обращается к этим репозиториям для поиска нужных версий.
- **Загрузка и установка**. Пользователь указывает, какой пакет установить или обновить, и менеджер загружает и устанавливает его с репозитория.
- **Разрешение зависимостей**. Пакетный менеджер автоматически устанавливает все необходимые зависимости и проверяет совместимость с установленными библиотеками.
- **Кэширование и локальное хранилище**. Менеджер хранит информацию о загруженных пакетах, чтобы упростить их обновление или восстановление при необходимости.
## Примеры пакетных менеджеров
- **Для ОС и серверов**:
**APT** (Advanced Package Tool) — для Debian и Ubuntu.
- **Yum/DNF** — для Fedora, CentOS и RHEL.
- **Homebrew** — для macOS и Linux.
- **Для языков программирования**:
**npm** — для JavaScript и Node.js.
- **pip** — для Python.
- **RubyGems** — для Ruby.
- **Maven** и **Gradle** — для Java.
- **Для контейнеров**:
**Docker Hub** — репозиторий для Docker-контейнеров, с возможностью управления образами контейнеров.
## Категории пакетных менеджеров
Пакетные менеджеры можно разделить на несколько категорий в зависимости от их назначения и области применения. Основные из них:
- **Системные пакетные менеджеры**:
Эти менеджеры управляют программным обеспечением на уровне операционной системы. Они помогают устанавливать, обновлять и удалять приложения, а также управлять системными библиотеками и зависимостями.
- **Примеры**:
**APT (Advanced Package Tool)** — широко используется в системах на базе Debian и Ubuntu.
- **Yum и DNF** — применяются в дистрибутивах на основе Red Hat, таких как Fedora и CentOS.
- **Homebrew** — популярный инструмент для управления пакетами на macOS и Linux.
- **Преимущества**: Удобство управления программным обеспечением всей системы, автоматическое разрешение зависимостей, возможность работы с официальными и сторонними репозиториями.
- **Языковые пакетные менеджеры**:
Эти менеджеры ориентированы на управление библиотеками и зависимостями для конкретных языков программирования. Они упрощают разработку, позволяя быстро добавлять нужные библиотеки в проект.
- **Примеры**:
**npm** — для экосистемы JavaScript и Node.js.
- **pip** — для Python, поддерживает тысячи пакетов из PyPI (Python Package Index).
- **RubyGems** — для работы с библиотеками на языке Ruby.
- **Maven и Gradle** — для Java-проектов.
- **Преимущества**: Удобное управление библиотеками, автоматическое обновление зависимостей, поддержка установки нужных версий пакетов.
- **Пакетные менеджеры для контейнеров**:
Эти менеджеры управляют образами контейнеров и помогают автоматизировать создание, развертывание и обновление контейнеров.
- **Примеры**:
**Docker Hub** — официальный репозиторий для хранения и управления Docker-образами.
- **Helm** — инструмент для управления пакетами Kubernetes, упрощающий развертывание сложных приложений в кластере.
- **Преимущества**: Централизованное управление контейнерами, поддержка версий и упрощение развертывания приложений в микросервисной архитектуре
Пакетные менеджеры значительно облегчают разработку и поддержку ПО, делая управление зависимостями и обновлениями менее трудоемким и более безопасным.
## Автоматизация и CI/CD
Пакетные менеджеры играют важную роль в процессах автоматизации разработки, тестирования и развертывания программного обеспечения. Они являются важными компонентами в системах CI/CD (непрерывной интеграции и доставки).
- **Непрерывная интеграция (Continuous Integration, CI)**:
CI предполагает, что изменения в коде регулярно интегрируются в основной репозиторий, после чего автоматизированные процессы сборки и тестирования проверяют, что новый код не нарушает работу приложения.
- **Роль пакетных менеджеров**: Пакетные менеджеры помогают быстро устанавливать все зависимости, необходимые для сборки и тестирования приложения, обеспечивая стабильность и надежность процесса. Они позволяют гарантировать, что окружение сборки идентично окружению разработки, что минимизирует вероятность ошибок.
- **Непрерывная доставка (Continuous Delivery, CD)**:
CD автоматизирует развертывание новых версий программного обеспечения в различные среды (тестовую, промежуточную, производственную), упрощая выпуск обновлений.
- **Роль пакетных менеджеров**: Они обеспечивают правильное и последовательное управление зависимостями при развертывании, предотвращая конфликты версий. Пакетные менеджеры часто интегрируются с инструментами для автоматизированного развертывания, упрощая подготовку окружений и обновление приложений.
- **Упрощение DevOps-процессов**:
Пакетные менеджеры являются важной частью DevOps-культуры, где автоматизация играет ключевую роль. Они помогают создавать стабильные и воспроизводимые сборки, а также быстро настраивать новые окружения разработки и тестирования.
- **Примеры интеграции**: Например, в процессе сборки CI-система может использовать npm для установки зависимостей JavaScript или pip для Python. После успешного тестирования CI/CD-система может автоматически развернуть приложение в контейнере, используя Docker Hub и Kubernetes.
https://serverspace.uz/support/glossary/gpg.mdУзнайте, как GPG (GNU Privacy Guard) обеспечивает безопасное шифрование данных, цифровую подпись и управление криптографическими ключами, помогая защитить информацию и подтвердить её подлинность.
**GPG (GNU Privacy Guard)** — это свободное программное обеспечение, реализующее стандарт **OpenPGP (RFC 4880)** и предназначенное для защиты информации с помощью **асимметричного шифрования**. С его помощью можно **шифровать файлы и сообщения**, **подписывать документы** для проверки их подлинности, а также **управлять криптографическими ключами**. GPG широко применяется для обеспечения **конфиденциальности, целостности данных** и подтверждения **аутентичности пользователей** в цифровой среде.
## **Как работает GPG?**
GPG использует **криптографическую систему с открытым ключом**, состоящую из двух элементов:
- **Открытый ключ (public key)** — используется для шифрования информации и проверки цифровой подписи. Его можно передавать другим пользователям.
- **Закрытый ключ (private key)** — предназначен для расшифровки полученных сообщений и создания цифровых подписей. Его необходимо держать в безопасности.
При обмене зашифрованными данными отправитель использует **открытый ключ** получателя, а расшифровать сообщение может только владелец соответствующего **закрытого ключа**. Это делает GPG удобным инструментом для безопасной передачи информации даже через незащищённые каналы.
## **Основные возможности GPG**
- **Шифрование данных** — защита файлов и сообщений от несанкционированного доступа.
****
- **Цифровая подпись** — подтверждение подлинности отправителя и целостности данных.
****
- **Управление ключами** — генерация, импорт, экспорт, передача и отзыв криптографических ключей.
****
- **Поддержка различных алгоритмов шифрования**, включая **RSA, ECC, AES** и другие.
****
- **Интеграция с почтовыми клиентами** (Thunderbird, Outlook) для безопасной переписки.
****
- **Создание зашифрованных хранилищ** для защиты конфиденциальных файлов.
## **Применение GPG**
GPG активно используется в различных сферах, связанных с безопасностью данных:
- **Защита электронной почты** (например, с помощью расширений **Enigmail** для Thunderbird).
****
- **Подпись программного кода** для подтверждения его подлинности.
****
- **Шифрование резервных копий** и других конфиденциальных файлов.
****
- **Безопасный обмен документами** в корпоративной среде.
GPG является **кроссплатформенным инструментом**, доступным для **Linux, Windows, macOS**. Он может использоваться как **отдельное приложение**, а также **интегрироваться** в различные системы защиты данных.
https://serverspace.uz/support/glossary/atop.mdУзнайте, как использовать atop — мощную утилиту мониторинга Linux для анализа загрузки процессора, памяти, дисков и сети, а также сохранения данных для диагностики системы.
**atop** — это продвинутая утилита для мониторинга в реальном времени в среде **Linux**, обеспечивающая детальный сбор данных о загрузке процессора, использовании памяти, активности дисков, сети и запущенных процессах. В отличие от таких стандартных инструментов, как **top, htop, iostat**, она не только предоставляет расширенные сведения о каждом процессе, но и позволяет записывать статистику в лог-файлы для дальнейшего анализа.
## Основные возможности atop
- Мониторинг всех процессов, включая завершённые.
- Отображение загрузки процессора по ядрам.
- Анализ использования диска, памяти и сети.
- Сохранение данных в лог-файлы для постанализа.
- Фильтрация процессов по нагрузке и ресурсам.
- Выявление узких мест в системе (IO, CPU, RAM, сеть).
## Установка atop
Для большинства дистрибутивов Linux:
**Debian, Ubuntu:**
```bash
sudo apt install atop
```
**RHEL, CentOS:**
```bash
sudo yum install atop
```
**Arch Linux:**
```bash
sudo pacman -S atop
```
После установки можно запустить команду:
```
atop
```
## Как пользоваться atop?
При запуске **atop** отображает таблицу со следующими метриками:
- **PRC** — общее количество процессов.
- **CPU** — загрузка процессора (включая ожидание ввода-вывода).
- **MEM** — использование оперативной памяти и свопа.
- **NET** — активность сетевых интерфейсов.
- **DSK** — операции ввода-вывода на диске.
Примеры полезных команд:
**Мониторинг с обновлением каждые 5 секунд:**
```
atop 5
```
**Запись данных в лог-файл (каждые 10 секунд):**
```
sudo atop -w /var/log/atop.log 10
```
**Просмотр сохранённого лога за определённое время:**
```
sudo atop -r /var/log/atop.log
```
**Фильтр по конкретному процессу:**
```
atop -p PID
```
## Чем atop лучше стандартных утилит?
| Функция | top | htop | atop |
| --- | --- | --- | --- |
| Детальный анализ процессов | Частично | Частично | Да |
| Мониторинг завершённых процессов | Нет | Нет | Да |
| Логирование для анализа | Нет | Нет | Да |
| Данные по сети и диску | Нет | Нет | Да |
| Гибкость фильтрации | Средне | Хорошо | Отлично |
## Вывод
**atop** — мощный инструмент мониторинга Linux, который полезен системным администраторам и DevOps-инженерам. Он помогает выявлять узкие места в работе сервера и сохранять данные для диагностики проблем.
## База Знаний Serverspace
В базе знаний **Serverspace** вы можете найти дополнительные инструкции по работе с **atop**, а также подробные разборы других инструментов мониторинга и администрирования Linux. Кроме того, там представлены статьи с объяснением ключевых терминов, которые помогут вам лучше разобраться в управлении серверными системами.
https://serverspace.uz/support/glossary/ftps.mdУзнайте, как FTPS (FTP Secure) защищает передачу файлов с помощью SSL/TLS, какие у него преимущества и недостатки, а также как настроить FTPS-сервер для безопасного обмена данными.
**FTPS (FTP Secure)** — это усовершенствованный вариант стандартного протокола **FTP (File Transfer Protocol)**, дополненный механизмом шифрования посредством **SSL/TLS**. Он предназначен для безопасного обмена файлами через сеть, минимизируя риск перехвата данных и атак "человек посередине" (MITM).
## Принцип работы FTPS
Узнайте, как FTPS (FTP Secure) защищает передачу файлов с помощью SSL/TLS, какие у него преимущества и недостатки, а также как настроить FTPS-сервер для безопасного обмена данными.
Существует два режима работы:
- **Explicit FTPS (явный режим)** — клиент инициирует защищённое соединение по запросу перед началом аутентификации. Используется порт 21 для установления соединения и отдельные защищённые порты для передачи файлов.
- **Implicit FTPS (неявный режим)** — шифрование активируется автоматически при подключении. В этом случае используется порт 990 для установления соединения и динамические порты для передачи данных.
## Преимущества FTPS
- **Безопасность передачи данных** — SSL/TLS защищает информацию от несанкционированного доступа.
- **Поддержка аутентификации через сертификаты** — возможно использование клиентских и серверных сертификатов для дополнительной безопасности.
- **Совместимость с FTP-клиентами** — поддерживается популярными клиентами, такими как FileZilla, WinSCP.
- **Гибкость в настройке** — возможность работы в явном и неявном режимах.
## Недостатки FTPS
- **Сложность настройки** — требует генерации и конфигурирования сертификатов SSL/TLS, а также открытия множества портов.
- **Проблемы с NAT и фаерволами** — использование динамических портов может затруднять передачу данных.
- **Ограниченная поддержка старыми системами** — не все старые клиенты и серверы поддерживают FTPS.
## Развёртывание FTPS-сервера
### 1. Установка vsftpd с поддержкой FTPS (Ubuntu/Debian):
```bash
sudo apt update
sudo apt install vsftpd openssl
```
### 2. Генерация SSL-сертификата:
```
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
```
### 3. Настройка vsftpd для работы с FTPS:
Редактируем файл** /etc/vsftpd.conf**:
```
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
pasv_min_port=40000
pasv_max_port=50000
```
### 4. Перезапуск службы:
```bash
sudo systemctl restart vsftpd
```
## Использование FTPS-клиентов
Популярные программы для работы с FTPS:
- **FileZilla** — удобный FTP-клиент с поддержкой FTPS/FTPES.
- **WinSCP** — клиент для Windows, поддерживающий SFTP и FTPS.
- **lftp** — консольный FTP-клиент для UNIX/Linux.
## Итоги
FTPS является эффективным и надёжным способом передачи файлов с шифрованием SSL/TLS. Он востребован в корпоративной среде и при обмене конфиденциальными данными. Однако, если требуется альтернатива с более простой настройкой, можно рассмотреть **SFTP (SSH File Transfer Protocol)**, работающий через защищённый канал SSH.
https://serverspace.uz/support/glossary/nfs.mdУзнайте, как настроить и использовать NFS (Network File System) для организации общего доступа к файлам в сети. Разбираем принципы работы, основные версии, преимущества и недостатки, а также пошаговую установку и настройку NFS-сервера и клиента.
Эта распределённая файловая система была создана Sun Microsystems в 1984 году. Она даёт возможность удалённым устройствам подключать файловые системы по сети и использовать их аналогично локальным хранилищам.
## Как функционирует NFS?
NFS построен на архитектуре клиент-сервер, при которой сервер предоставляет общий доступ к файлам, а клиенты подключаются к нему и взаимодействуют с удалёнными данными. Основу обмена запросами составляет протокол **RPC (Remote Procedure Call)**, обеспечивающий выполнение операций с файлами на стороне сервера по запросу клиента.
## Основные версии NFS:
- **NFSv2** — устаревшая версия, использует UDP и поддерживает 32-битные идентификаторы файлов.
- **NFSv3** — улучшенная версия с поддержкой асинхронных операций и работы с более крупными файлами.
- **NFSv4** — современный стандарт с улучшенной безопасностью (**Kerberos**), кэшированием и блокировкой файлов.
## Преимущества NFS
- **Простота интеграции** — NFS легко настраивается и поддерживается большинством UNIX-подобных ОС (Linux, BSD, macOS).
****
- **Прозрачность работы** — пользователи могут работать с удалёнными файлами так же, как с локальными.
****
- **Эффективность** — кэширование данных и асинхронные операции повышают производительность.
****
- **Гибкость** — позволяет монтировать отдельные каталоги или целые файловые системы.
## Недостатки NFS
- **Безопасность** — более ранние версии NFS передают данные в открытом виде, что делает их уязвимыми к атакам.
****
- **Сетевые задержки** — при медленном соединении производительность может снижаться.
****
- **Требует конфигурации** — для работы с NFS необходимо правильно настраивать сервер и права доступа.
## Установка и настройка NFS-сервера
### 1. Установка NFS (Ubuntu/Debian):
```bash
sudo apt update
sudo apt install nfs-kernel-server
```
### 2. Настройка экспортируемых каталогов
Добавьте пути к экспортируемым каталогам в файл **/etc/exports:**
```
/home/shared 162.192.3.200/24(rw,sync,no_root_squash,no_subtree_check)
```
Значения в скобках:
- **rw** — разрешение на чтение и запись.
- **sync **— немедленный сброс данных на диск.
- **no_root_squash** — позволяет root-пользователю на клиенте иметь root-права на сервере.
- **no_subtree_check** — отключение проверки подкаталогов (ускоряет работу).
### 3. Применение изменений:
```bash
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
```
## Подключение NFS-клиента
### 1. Установка клиента NFS (Ubuntu/Debian):
```bash
sudo apt install nfs-common
```
### 2. Монтирование удалённого каталога:
```
sudo mount 162.192.3.200:/home/shared /mnt/nfs
```
Чтобы автоматически монтировать при загрузке, пропишите в **/etc/fstab**:
```
162.192.3.200:/home/shared /mnt/nfs nfs defaults 0 0
```
## Итоги
**NFS** — удобный и эффективный способ организации совместного доступа к файлам в локальных сетях. Он обеспечивает простоту работы, но требует тщательной настройки безопасности. В современных системах рекомендуется использовать **NFSv4**, так как он предлагает улучшенную аутентификацию и шифрование данных.
## **База Знаний Serverspace**
**База знаний Serverspace** — это обширный справочный ресурс, содержащий статьи, инструкции и руководства по настройке облачной инфраструктуры, управлению серверами, сетевой безопасности и работе с различными операционными системами. Она ориентирована как на начинающих пользователей, так и на опытных администраторов, предлагая решения распространённых проблем, рекомендации по оптимизации и пошаговые мануалы для эффективного использования сервисов компании.
https://serverspace.uz/support/glossary/windows-event-viewer.mdУзнайте, что такое Windows Event Viewer (Просмотр событий Windows), как он помогает отслеживать, анализировать и диагностировать системные ошибки, а также какие журналы событий доступны для мониторинга работы операционной системы
**Windows Event Viewer** (Просмотр событий Windows) — это стандартный компонент операционной системы Windows, созданный для отслеживания, регистрации и анализа различных событий, происходящих в системе.
## Основные возможности
- **Журналирование событий**: Запись всех значимых событий в системе, включая запуск и остановку служб, ошибки драйверов, сбои приложений и входы пользователей.
- **Категоризация событий**: Разделение данных на журналы (Система, Приложение, Безопасность, Установка и т. д.) для удобного анализа.
- **Диагностика проблем**: Дает возможность пользователям и администраторам выявлять источники сбоев и неполадок в системе.
- **Фильтрация и поиск**: Возможность фильтровать события по дате, уровню серьезности и источнику.
- **Настройка триггеров**: Возможность реагировать на определенные события (например, отправлять уведомления или запускать скрипты).
## Где находится
Чтобы открыть Windows Event Viewer, можно воспользоваться следующими методами:
- Нажать **Win + R**, ввести **eventvwr.msc** и нажать **Enter**.
- Через меню **Пуск**: открыть **Панель управления** → **Администрирование** → **Просмотр событий**.
- В Windows 10/11 можно использовать поиск в меню **Пуск**, введя "Просмотр событий".
## Ключевые журналы событий:
- **Система (System)** — ошибки и события, связанные с работой ОС, драйверами и службами.
- **Приложение (Application)** — ошибки и сообщения, относящиеся к установленным программам.
- **Безопасность (Security)** — содержит записи о входах, выходах пользователей и действиях, связанных с безопасностью.
- **Установка (Setup)** — события, связанные с установкой системы и обновлений (доступно не во всех версиях).
- **Журналы приложений и служб** — специализированные записи для отдельных приложений и служб.
## Заключение:
Windows Event Viewer — мощный инструмент, который позволяет отслеживать и анализировать работу системы. Он полезен как для рядовых пользователей при выявлении проблем, так и для системных администраторов, занимающихся диагностикой и обеспечением стабильности работы Windows.
https://serverspace.uz/support/glossary/application-logs.mdУзнайте, что такое Application Logs (Журналы приложений), как они помогают отслеживать работу программ, диагностировать ошибки, анализировать производительность и обеспечивать безопасность системы
**Application Logs (Журналы приложений)** — это файлы или записи, содержащие информацию о работе программного обеспечения. Они используются для отслеживания событий, диагностики ошибок и анализа поведения приложений.
**Назначение и функции:**
- **Фиксация событий** — журналы содержат записи о запуске, остановке, обновлениях и критических событиях работы приложения.
- **Отладка и диагностика** — помогают разработчикам и администраторам выявлять ошибки и анализировать причины их возникновения.
- **Мониторинг безопасности** — фиксируют попытки несанкционированного доступа, сбои авторизации и другие подозрительные активности.
- **Анализ производительности** — позволяют отслеживать нагрузку на систему, время выполнения операций и использование ресурсов.
## Где хранятся журналы приложений?
- В Windows журналы приложений можно просмотреть через **Windows Event Viewer** в разделе **Application**. Они записываются в файл **%SystemRoot%\System32\Winevt\Logs\Application.evtx**.
- В Linux и macOS логи обычно хранятся в **/var/log/** (например, **/var/log/syslog** или **/var/log/appname.log**).
## Основные уровни записей
- **Информационные (Information)** — общие сведения о работе приложения, например успешные операции.
- **Предупреждения (Warning)** — потенциальные проблемы, которые могут привести к сбоям.
- **Ошибки (Error)** — критические ситуации, вызывающие сбои в работе программы.
- **Критические ошибки (Critical)** — серьезные неисправности, требующие немедленного вмешательства.
## Заключение:
Журналы приложений — важный инструмент для разработчиков, администраторов и специалистов по безопасности. Они помогают выявлять ошибки, обеспечивать стабильность работы программ и защищать систему от угроз.
https://serverspace.uz/support/glossary/bios.mdУзнайте, что такое BIOS, его ключевые функции и роль в инициализации оборудования, а также о развитии BIOS в сторону UEFI. Дополнительно в статье рассмотрены материалы из базы знаний Serverspace, помогающие углубленно изучить серверные технологии и сетевую инфраструктуру
**BIOS (Basic Input/Output System)** — это фундаментальная система ввода-вывода, встроенная в материнскую плату компьютера, которая выполняет ключевую роль при запуске устройства. При включении питания BIOS инициирует проверку и подготовку всех основных компонентов системы, таких как процессор, память, устройства хранения и другие важные элементы аппаратного обеспечения. Эта система является связующим звеном между операционной системой и аппаратной частью устройства, обеспечивая их взаимодействие и правильную работу. BIOS отвечает за базовые операции, включая запуск системы, диагностику компонентов, настройку оборудования и передачу управления операционной системе, которая будет работать дальше. В современных компьютерах BIOS постепенно заменяется более усовершенствованным интерфейсом — UEFI, однако его роль в начальной инициализации и стабильной работе устройства продолжает оставаться незаменимой.
## Ключевые функции BIOS:
- **Инициализация оборудования** — выполняет проверку и инициализацию ключевых компонентов системы, включая процессор, оперативную память, жесткие диски и видеокарту.
- **Загрузка операционной системы** — определяет загрузочное устройство (жесткий диск, SSD, USB-накопитель) и передает управление загрузчику ОС.
- **Настройка параметров системы** — позволяет пользователю изменять конфигурацию оборудования (например, порядок загрузки, управление вентиляторами, разгон процессора).
- **Поддержка энергосбережения** — регулирует работу компонентов для оптимизации энергопотребления.
- **Диагностика и отладка** — предоставляет коды POST (Power-On Self-Test), указывающие на возможные неисправности аппаратных компонентов.
## Местоположение хранения BIOS:
BIOS сохраняется в энергонезависимой памяти, расположенной на материнской плате, обычно это микросхема EEPROM или Flash ROM. Данные BIOS сохраняются даже при отключении питания, а его настройки могут храниться в энергонезависимой памяти CMOS с питанием от батарейки.
## Развитие BIOS: от классики к UEFI
BIOS — это традиционная система, используемая в ПК с 1980-х годов. Современные устройства чаще используют **UEFI (Unified Extensible Firmware Interface)**, который обладает расширенными возможностями, поддерживает графический интерфейс, загрузку с больших дисков (GPT) и безопасную загрузку (Secure Boot).
## Заключение:
BIOS — это ключевой компонент компьютера, отвечающий за начальную инициализацию системы и запуск операционной системы. Хотя классический BIOS постепенно заменяется UEFI, его роль в истории развития компьютерных технологий остается значимой.
В базе знаний **Serverspace** представлено множество материалов, охватывающих различные технические термины и концепции, которые помогут вам глубже понять работу серверных технологий, облачных вычислений и сетевой инфраструктуры. Независимо от того, являетесь ли вы новичком в IT или опытным специалистом, вы найдете полезную информацию по широкому спектру тем, включая настройку серверов, управление данными, безопасность и оптимизацию работы системы.
https://serverspace.uz/support/glossary/chto-takoe-uefi-serverspace-ru.mdУзнайте, что такое UEFI, чем оно отличается от BIOS, какие преимущества даёт современный интерфейс прошивки, и как правильно настроить его для загрузки операционной системы.
UEFI (Unified Extensible Firmware Interface) — Это продвинутый интерфейс прошивки, отвечающий за запуск операционной системы и инициализацию аппаратных компонентов на этапе старта компьютера. Он пришёл на смену устаревшему BIOS (Basic Input/Output System), предлагая расширенные функции, улучшенную безопасность и поддержку современных технологий.
## Основные особенности UEFI
- **Графический интерфейс**
В отличие от текстового BIOS, UEFI поддерживает более удобный графический интерфейс с возможностью управления с помощью мыши.
- **Поддержка GPT вместо MBR**
UEFI использует таблицу разделов GUID (GPT), которая позволяет работать с дисками объёмом более 2 ТБ и поддерживает до 128 разделов (в отличие от MBR с лимитом в 4 раздела).
- **Secure Boot**
Встроенная функция Secure Boot предотвращает загрузку неавторизованного кода, защищая систему от вредоносного ПО на этапе загрузки.
- **Быстрая загрузка**
UEFI ускоряет процесс загрузки системы за счёт поддержки Fast Boot, параллельной инициализации устройств и оптимизированного кода.
- **Модульная архитектура**
В отличие от монолитного BIOS, UEFI можно расширять через драйверы и модули, что облегчает добавление нового оборудования.
- **Поддержка сетевой загрузки**
UEFI включает протокол PXE (Preboot Execution Environment), который позволяет загружать систему по сети без использования локального носителя.
## Различие между BIOS и UEFI
- **Интерфейс:
**BIOS: Текстовый, клавиатура; UEFI: Графический, поддержка мыши
- **Разметка диска **
BIOS: MBR (до 2 ТБ) ; UEFI: GPT (более 2 ТБ)
- **Загрузка:**
BIOS: Legacy Boot ; UEFI: Secure Boot
- **Расширяемость:**
BIOS: Ограниченная; UEFI: Гибкая, поддержка драйверов
## Совместимость и режимы работы
UEFI может работать в нескольких режимах:
- **Native UEFI Mode**— полная поддержка всех возможностей UEFI.
- **Legacy Mode** (CSM - Compatibility Support Module) — эмуляция BIOS для совместимости со старыми ОС и дисками MBR.
## Заключение
UEFI стало стандартом для современных компьютеров, обеспечивая гибкость, безопасность и удобство работы с оборудованием. Большинство новых ПК и серверов используют именно UEFI, а BIOS постепенно уходит в прошлое.
## Часто задаваемые вопросы (FAQ)
- **Можно ли переключиться с BIOS на UEFI на старом компьютере?**
Если материнская плата поддерживает UEFI, можно отключить режим совместимости (Legacy Mode) и использовать UEFI. Однако для этого может потребоваться переустановка операционной системы, поскольку UEFI работает с таблицей разделов GPT, а BIOS использует MBR. Перед изменением режима рекомендуется создать резервную копию данных, так как смена разметки диска приведёт к его очистке.
****
- **Что делать, если UEFI не видит загрузочный диск?**
Проблема может быть связана с неправильным форматом диска или настройками прошивки. Убедитесь, что:
Диск использует GPT, а не MBR (это можно проверить через командную строку Windows или BIOS).В настройках UEFI активирован режим загрузки UEFI Boot вместо Legacy Boot.Функция Secure Boot не блокирует загрузку неподписанной операционной системы (например, некоторых дистрибутивов Linux).Диск подключён корректно, а его приоритет в загрузочной последовательности установлен правильно.
- **Чем UEFI лучше BIOS?**
UEFI предлагает множество преимуществ по сравнению с традиционным BIOS:
Более быстрая загрузка за счёт параллельной инициализации устройств. Поддержка дисков более 2 ТБ благодаря разметке GPT.Совместимость с современными операционными системами и технологиями. Графический интерфейс с поддержкой мыши вместо устаревшего текстового BIOS.Функция Secure Boot, обеспечивающая защиту от загрузки вредоносного ПО. Расширяемость за счёт поддержки драйверов и сетевых функций (например, загрузки по сети PXE).
- **Можно ли установить Windows на компьютер с UEFI?**
Да, но при установке важно учитывать несколько моментов:
Установочный носитель должен быть записан в режиме UEFI (например, через Rufus с параметром "GPT для UEFI").В настройках прошивки должен быть включен UEFI Boot.Если диск использует MBR, его нужно преобразовать в GPT перед установкой (это можно сделать через diskpart в командной строке).
- **Почему некоторые старые программы не работают в UEFI?**
Некоторые старые операционные системы и программы, рассчитанные на работу в среде BIOS, могут не поддерживать UEFI. Для их запуска можно включить режим CSM (Compatibility Support Module) в настройках UEFI, который эмулирует работу BIOS. Однако этот режим отключает некоторые функции UEFI, такие как Secure Boot.
https://serverspace.uz/support/glossary/chto-takoe-tta-time-to-attack-serverspace-ru.mdTTA (Time-To-Attack) — это показатель, определяющий время между подготовкой и выполнением атаки. В статье рассматриваются его применения в кибербезопасности, геймдеве и сетевых технологиях, а также важность учета TTA для защиты, баланса и анализа угроз.
**TTA (Time-To-Attack)** — это показатель, который используется в различных областях, включая информационную безопасность, геймдев, и сетевые технологии. Его основное значение — это время, которое требуется для реализации атаки или наступательного действия после её подготовки. Давайте разберемся, что такое TTA и как его применение может варьироваться в разных контекстах.
## TTA в кибербезопасности
В области кибербезопасности TTA представляет собой промежуток времени между началом подготовки злоумышленника к атаке (например, сканированием уязвимостей) и непосредственным её выполнением. Этот показатель помогает специалистам по безопасности оценивать риск и оперативность угрозы.
Чем меньше TTA, тем быстрее атакующий может воспользоваться найденными уязвимостями.
Оптимизация TTA со стороны защиты связана с минимизацией времени реакции на угрозы (например, быстреее обнаружение атак и их устранение).
## TTA в геймдеве
В игровой индустрии TTA может использоваться для обозначения времени, необходимого для выполнения атаки персонажем. Этот термин особенно важен в жанрах, где скорость взаимодействия и тактические решения играют ключевую роль — например, в файтингах, шутерах или MOBA-играх.
**Пример использования TTA в играх**
Файтинги. Время между нажатием кнопки удара и моментом, когда удар достигает соперника. Это время должно быть сбалансировано, чтобы избежать ощущения несправедливости или слишком "медленных" действий. RTS и MOBA. TTA может включать в себя задержку между активацией способности и её эффектом, что влияет на стратегию применения скиллов. Шутеры. Время от нажатия на курок до попадания пули в цель, если речь идёт о снарядах с реальной физикой.
## TTA в сетевых технологиях
В сетевых технологиях TTA может быть использован для описания времени, которое требуется злоумышленнику для начала атаки после получения доступа к системе. Важно учитывать этот показатель в контексте анализа поведения злоумышленников и прогнозирования их действий.
## Почему важно учитывать TTA?
Знание и управление показателем TTA имеет ключевое значение в любой области:
В кибербезопасности: позволяет быстрее обнаруживать атаки и минимизировать ущерб. В геймдеве: помогает сбалансировать игровой процесс, чтобы он был справедливым и увлекательным. В анализе сетевых угроз: обеспечивает понимание того, насколько быстро атакующие могут использовать доступ к системе.
## Как измеряется TTA?
Измерение TTA требует точной фиксации времени начала и завершения каждой из фаз действия. Например:
В геймдеве TTA измеряется как разница времени между началом действия игрока и наступлением его результата. В кибербезопасности — это разница между обнаружением подготовки и началом реальной атаки.
## Заключение
TTA — это универсальный показатель, который помогает анализировать скорость наступательных действий в разных контекстах. В зависимости от области применения, TTA может быть инструментом для защиты, улучшения баланса или стратегического анализа. Понимание TTA и его оптимизация позволяет повысить эффективность работы в самых разных сферах.
https://serverspace.uz/support/glossary/csm.mdУзнайте, как Compatibility Support Module (CSM) помогает запускать старые системы в UEFI, в чем его отличия от BIOS и как отключить CSM для перехода на современный режим загрузки.
**Compatibility Support Module (CSM)** представляет собой встроенный компонент прошивки UEFI, предназначенный для обеспечения работы с устаревшими системами, опирающимися на традиционный BIOS. Он позволяет загружать операционные системы и применять драйверы, разработанные под BIOS, что особенно актуально при эксплуатации более старых версий ОС и аппаратных платформ.
## Назначение и функции
CSM выполняет следующие задачи:
- Эмуляция традиционного BIOS для загрузки старых операционных систем, не поддерживающих UEFI.
- Поддержка MBR-разметки дисков, используемой в BIOS-системах.
- Совместимость с устаревшими загрузочными загрузчиками и драйверами.
- Упрощение переходного периода от BIOS к UEFI для пользователей, работающих с более старыми устройствами.
## Различия между UEFI и CSM
CSM является частью UEFI, но его использование подразумевает работу в режиме, схожем с традиционным BIOS. Основные различия между режимами:
В режиме UEFI загрузка происходит с дисков, использующих разметку GPT (GUID Partition Table), а в режиме CSM – с MBR (Master Boot Record). UEFI поддерживает безопасную загрузку (Secure Boot), тогда как в режиме CSM эта функция отключена. UEFI работает с 64-битными загрузчиками и драйверами, тогда как CSM может использовать 16- и 32-битные BIOS-компоненты.
## Отключение CSM и переход к UEFI
Многие современные материнские платы по умолчанию отключают CSM, так как современные операционные системы, такие как Windows 10 и 11, работают в режиме UEFI. Чтобы отключить CSM и использовать UEFI, необходимо:
- Войти в настройки UEFI (обычно через клавиши Del или F2 при загрузке).
- Найти опцию CSM Support или Legacy Boot Mode и отключить её.
- Убедиться, что Secure Boot включен (при необходимости).
- Переформатировать диск в GPT, если он использует MBR (можно использовать утилиту MBR2GPT в Windows).
- Установить операционную систему в UEFI-режиме.
## Заключение
CSM – это полезный инструмент для поддержки устаревших систем, однако его использование постепенно снижается по мере отказа от BIOS в пользу UEFI. Если ваше оборудование и программное обеспечение позволяют, рекомендуется отключить CSM и использовать нативный режим UEFI для повышения безопасности и скорости загрузки системы.
https://serverspace.uz/support/glossary/acid.mdУзнайте, как ACID-правила обеспечивают надежность транзакций в PostgreSQL: атомарность, согласованность, изолированность и долговечность, а также их реализация с помощью MVCC, WAL и уровней изоляции.
**ACID** — это фундаментальный набор свойств, обеспечивающий надежность и целостность транзакций в реляционных базах данных, включая PostgreSQL. Эти свойства играют критическую роль в гарантиях корректности данных, предотвращая их повреждение при сбоях или одновременных операциях множества пользователей.
## Зачем нужен ACID?
В многопользовательских системах, где параллельно выполняются сотни и тысячи операций с базой данных, важно избежать потери или некорректного изменения данных. Например, банковские системы, электронная коммерция, медицинские базы и другие критически важные приложения требуют строгой гарантии корректности данных. ACID-правила обеспечивают:
- Предотвращение частичного выполнения транзакций, что исключает неконсистентные состояния базы.
- Защиту от конфликтов между параллельными операциями.
- Гарантию долговечности данных, даже при сбоях оборудования или программного обеспечения.
## Разбор ACID-свойств в PostgreSQL
**1. Atomicity (Атомарность)**
Атомарность гарантирует, что транзакция исполняется целиком или полностью отменяется, исключая частичное применение изменений. Это исключает ситуации, когда часть операций в рамках одной транзакции успешно завершена, а другая — нет, что могло бы привести к неконсистентным данным.
Как реализовано в PostgreSQL?
- PostgreSQL использует механизм **ROLLBACK**, который позволяет отменять незавершенные транзакции в случае ошибки.
- Операции в одной транзакции группируются, и если возникает ошибка, они автоматически откатываются к начальному состоянию.
Пример:
```sql
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
```
Если одно из обновлений завершится с ошибкой, вся транзакция отменится, и баланс не изменится частично.
**2. Consistency (Согласованность)**
Согласованность гарантирует, что данные в базе переходят только из одного согласованного состояния в другое. Все ограничения целостности должны быть соблюдены.
Как реализовано в PostgreSQL?
- Использование ограничений: `**PRIMARY KEY**`, `**FOREIGN KE**Y`, `**CHECK**`, `**UNIQUE**`.
- Применение триггеров и правил для проверки данных.
- Автоматическое приведение данных в допустимое состояние в рамках транзакций.
Пример:
```sql
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
customer_id INT NOT NULL REFERENCES customers(id),
amount NUMERIC CHECK (amount > 0)
);
```
Если попытаться вставить **amount = -50**, PostgreSQL не позволит этого сделать, обеспечивая согласованность данных.
**3. Isolation (Изолированность)**
Изолированность предотвращает конфликты между параллельными транзакциями. В PostgreSQL для этого используется MVCC (Multi-Version Concurrency Control), позволяющий транзакциям работать с "снимками" данных, не блокируя их для других пользователей.
PostgreSQL поддерживает 4 уровня изоляции транзакций:
- **READ UNCOMMITTED** (не используется по умолчанию).
- **READ COMMITTED** (по умолчанию, предотвращает чтение незавершенных изменений).
- **REPEATABLE READ** (гарантирует одинаковый результат выборки в рамках транзакции).
- **SERIALIZABLE **(максимальная защита от конфликтов, но с возможными откатами транзакций).
Пример:
```sql
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM accounts WHERE id = 1;
-- В этот момент другой процесс изменяет данные, но эта транзакция видит старую версию.
COMMIT;
```
Таким образом, транзакции не мешают друг другу, но работают с актуальными данными.
**4. Durability (Долговечность)**
Долговечность гарантирует, что после завершения транзакции её изменения сохраняются, даже если система выходит из строя.
Как реализовано в PostgreSQL?
- **WAL (Write-Ahead Logging)** — механизм, записывающий изменения в специальный журнал перед их применением.
- Автоматическая репликация и резервное копирование, предотвращающие потерю данных.
- Функция **fsync**, обеспечивающая запись данных на диск перед завершением транзакции.
Пример:
```sql
INSERT INTO transactions (account_id, amount) VALUES (1, 500);
COMMIT;
```
Даже если сервер упадёт сразу после **COMMIT**, данные будут сохранены благодаря WAL.
## Вывод
ACID-правила в PostgreSQL обеспечивают надежность, согласованность и устойчивость к сбоям при работе с базами данных. Эти принципы делают PostgreSQL отличным выбором для критически важных систем, требующих высокой целостности данных.
https://serverspace.uz/support/glossary/domashnyaya-set.mdУзнайте, что такое домашняя сеть, компоненты домашней сети, особенности домашней сети и примеры использования
Домашняя сеть — это локальная сеть, которая соединяет устройства в одном доме или квартире. Она позволяет устройствам взаимодействовать друг с другом и получать доступ к интернету через один общий выход. Вот основные компоненты и особенности домашней сети:
## Компоненты домашней сети
- **Маршрутизатор**: Это основное устройство, которое управляет трафиком в сети и подключает её к интернету. Он также может выполнять функции брандмауэра для обеспечения безопасности.
- **Модем**: Устройство, которое соединяет вашу домашнюю сеть с провайдером интернет-услуг. В некоторых случаях маршрутизатор и модем могут быть объединены в одно устройство.
- **Устройства**: В домашней сети могут быть подключены различные устройства, такие как: Компьютеры и ноутбуки; Смартфоны и планшеты; Умные телевизоры; Игровые консоли; Умные устройства (например, камеры, термостаты, лампы)
- **Кабели и беспроводная связь**: Домашние сети могут использовать как проводное (Ethernet), так и беспроводное (Wi-Fi) соединение для подключения устройств.
## Особенности домашней сети
- **Обмен данными и ресурсами:**
В рамках домашней сети устройства могут совместно использовать файлы, печатать на общих принтерах и получать доступ к другим ресурсам.
- **Подключение к интернету:**
Все устройства в сети имеют возможность подключаться к интернету через единый IP-адрес, который предоставляет интернет-провайдер.
- **Управление и защита:**
Пользователи могут настроить безопасность сети, устанавливая пароли и контролируя подключения, чтобы предотвратить несанкционированный доступ.
- **Подключение умных устройств:**
В последние годы в домашних сетях стало популярно использование умных устройств, которые могут взаимодействовать между собой и управляться удаленно через мобильные приложения.
## Примеры использования
- **Работа из дома**: Возможность подключать ноутбук к домашней сети для работы удаленно.
- **Стриминг**: Использование умного телевизора для просмотра фильмов и сериалов через интернет.
- **Игры**: Подключение игровых консолей для многопользовательских игр в интернете.
- **Умный дом**: Управление освещением и другими системами в доме через мобильные приложения или голосовые помощники.
Домашняя сеть обеспечивает удобное и эффективное взаимодействие между устройствами и доступ к ресурсам интернета, делая повседневную жизнь более комфортной и технологичной.
https://serverspace.uz/support/glossary/korporativnaya-set.mdУзнайте, что такое корпоративная сеть, зачем нужна корпоративная сеть, основные компоненты корпоративной сети, типы корпоративных сетей и примеры
Корпоративная сеть — это внутренняя сеть, предназначенная для объединения компьютеров, серверов, баз данных и других устройств внутри компании или организации. Она позволяет сотрудникам безопасно обмениваться данными и ресурсами, а также управлять рабочими процессами и приложениями.
## Зачем нужна корпоративная сеть
- **Обмен данными**: Корпоративная сеть позволяет сотрудникам обмениваться документами, таблицами и другими файлами без использования внешних носителей или интернета
- **Совместное использование ресурсов**: Внутренние сети позволяют организовать общий доступ к таким устройствам, как принтеры, сканеры и базы данных, а также к другим важным ресурсам.
- **Быстрый доступ к данным**: Сотрудники имеют возможность легко получать доступ к необходимым приложениям и информации, хранящейся на серверах компании, что способствует повышению производительности и упрощению рабочих процессов.
- **Централизованное управление**: Корпоративная сеть предоставляет IT-отделам возможность управлять устройствами, устанавливать и обновлять программное обеспечение, а также контролировать доступ к ресурсам из единого центра.
## Основные компоненты корпоративной сети
- **Маршрутизаторы и коммутаторы**: Эти устройства направляют трафик между сегментами сети и позволяют устройствам внутри сети взаимодействовать друг с другом.
- **Серверы**: Это мощные компьютеры, которые хранят данные и обеспечивают доступ к важным ресурсам, приложениям и базам данных.
- **Система безопасности**: Для защиты данных используются брандмауэры, системы предотвращения вторжений и VPN (виртуальные частные сети), которые позволяют безопасно подключаться к корпоративной сети из удаленных мест.
- **Клиентские устройства**: Это компьютеры, ноутбуки, смартфоны и другие устройства сотрудников, которые подключаются к корпоративной сети для выполнения рабочих задач.
## Типы корпоративных сетей
- **Локальная сеть (LAN)**: Объединяет устройства в пределах одного офиса или здания, обеспечивая высокоскоростное подключение.
- **Глобальная сеть (WAN)**: Связывает офисы компании, расположенные в разных географических регионах, создавая единое информационное пространство.
- **Виртуальная частная сеть (VPN): **VPN создает безопасное соединение между удаленными сотрудниками и корпоративной сетью.
### Примеры применения корпоративной сети
- **Общий доступ к корпоративным базам данных**: Сотрудники различных отделов могут получать доступ к общей информации, такой как финансовые или клиентские данные.
- **Совместная работа над проектами**: Внутри сети можно организовать доступ к общим рабочим документам и приложениям, что облегчает совместную работу.
- **Защищенное подключение для удаленных сотрудников**: Сотрудники могут подключаться к корпоративной сети из любого места через VPN, оставаясь при этом в защищенном контуре сети.
Корпоративная сеть позволяет эффективно управлять ресурсами и данными организации, поддерживает высокий уровень безопасности и улучшает коммуникацию и производительность сотрудников.
https://serverspace.uz/support/glossary/mezhdunarodnaya-set.mdУзнайте, что такое международная сеть, основные характеристики международной сети и примеры использования международной сети
Международная сеть — это система взаимосвязанных компьютерных сетей, которая обеспечивает обмен данными и информацией между пользователями и устройствами, расположенными в разных странах. Она объединяет локальные и глобальные сети, позволяя пользователям взаимодействовать друг с другом независимо от географического положения.
## Основные характеристики международной сети
- **Глобальное покрытие:** Международные сети охватывают широкий спектр территорий и могут включать в себя множество локальных сетей, обеспечивая связь между разными регионами и странами.
- **Протоколы связи:** Для обмена данными используется стандартный набор протоколов (например, TCP/IP), который обеспечивает совместимость между различными системами и устройствами.
- **Разнообразие технологий:** Международные сети могут использовать различные технологии передачи данных, включая оптоволоконные линии, спутниковую связь, мобильные сети и Wi-Fi.
- **Управление трафиком:** Для обеспечения эффективности и надежности обмена данными международные сети используют маршрутизаторы и коммутаторы, которые направляют трафик по оптимальным маршрутам.
## Примеры использования международной сети
- **Интернет**: Самый известный пример международной сети, который связывает миллионы пользователей по всему миру, позволяя им обмениваться информацией, проводить видеоконференции и работать совместно над проектами.
- **Глобальные компании**: Международные сети используются крупными корпорациями для связи между офисами в разных странах, обеспечивая доступ к общим ресурсам и данным.
- **Научные исследования**: Ученые и исследователи по всему миру используют международные сети для совместной работы, обмена данными и доступа к ресурсам, таким как базы данных и научные публикации.
- **Образование**: Международные сети позволяют образовательным учреждениям организовывать онлайн-курсы, обмениваться информацией и сотрудничать с коллегами из других стран.
Международная сеть играет важную роль в глобализации, улучшая коммуникацию и сотрудничество на уровне стран и континентов.
https://serverspace.uz/support/glossary/globalnaya-set-wan.mdУзнайте, что такое глобальная сеть WAN, основные характеристики, ее применение и почему WAN играет ключевую роль в современной инфраструктуре
Глобальная сеть (WAN), от англ. Wide Area Network — это сеть, которая соединяет компьютеры и устройства на больших географических расстояниях, часто охватывая города, страны или даже континенты. WAN используется для передачи данных между локальными сетями (LAN) и может включать в себя различные технологии и типы соединений.
## Основные характеристики WAN
- **Широкий охват:** WAN объединяет устройства, расположенные на значительном расстоянии друг от друга, что позволяет соединять организации, филиалы и пользователей по всему миру.
- **Разнообразие технологий:** WAN может использовать различные технологии передачи данных, такие как оптоволокно, спутниковая связь, DSL, кабельные соединения и беспроводные технологии.
- **Высокая скорость передачи:** Скорость передачи данных в WAN может варьироваться, но современные технологии обеспечивают достаточно высокую скорость для эффективного обмена данными.
- **Маршрутизация:** Для управления трафиком в WAN используются маршрутизаторы, которые направляют данные по наиболее эффективным маршрутам.
## Применение WAN
- **Связь между офисами:** Организации с несколькими филиалами могут использовать WAN для обеспечения связи и обмена данными между офисами.
- **Доступ в интернет:** WAN является основой для доступа к интернету, связывая локальные сети с глобальной сетью.
- **Услуги облачного вычисления:** Пользователи могут получать доступ к облачным сервисам и приложениям, расположенным в удаленных центрах обработки данных.
- **Обмен данными и ресурсами:** WAN позволяет обмениваться данными, использовать централизованные базы данных и приложения, а также организовывать видеоконференции и другие средства связи.
- **Интернет вещей (IoT):** WAN может использоваться для подключения различных устройств IoT, которые могут находиться на значительном расстоянии от центральной системы.
WAN играет ключевую роль в современной телекоммуникационной инфраструктуре, обеспечивая связь и доступ к информации на глобальном уровне.
https://serverspace.uz/support/glossary/frejmvork.mdУзнайте, что такое фреймворк, его основные характеристики и аспекты и преимущества использования фреймворков
Фреймворк (или "рамка") — это структурированный набор правил, принципов и стандартов, который служит основой для разработки программного обеспечения или выполнения других задач. Фреймворки помогают разработчикам, упрощая и ускоряя процесс создания приложений, обеспечивая общую структуру и набор инструментов.
## Основные характеристики фреймворков
- **Структура**: Фреймворки предоставляют общую архитектуру и структуру для разработки, что помогает организовать код и сделать его более управляемым.
- **Повторное использование кода**: Они обычно включают в себя библиотеки и модули, которые можно использовать повторно, что снижает объем работы при разработке.
- **Стандарты и лучшие практики**: Фреймворки часто основаны на лучших практиках и стандартах разработки, что способствует созданию качественного и поддерживаемого кода.
- **Гибкость**: Хотя фреймворки обеспечивают определенную структуру, они также часто позволяют разработчикам настраивать и расширять функциональность в зависимости от конкретных потребностей проекта.
## Примеры фреймворков
- **Веб-фреймворки**: Например, Django (Python), Ruby on Rails (Ruby) и Express (Node.js) используются для упрощения разработки веб-приложений.
- **Фреймворки для мобильной разработки**: React Native и Flutter позволяют создавать мобильные приложения для различных платформ с использованием общего кода.
- **Фреймворки для тестирования**: Например, JUnit (Java) и pytest (Python) обеспечивают инструменты и методы для тестирования программного обеспечения.
## Преимущества использования фреймворков
- **Ускорение разработки**: За счет использования готовых компонентов и шаблонов разработка происходит быстрее.
- **Снижение ошибок**: Стандартизированный подход помогает уменьшить количество ошибок и повысить качество кода.
- **Легкость поддержки**: Четкая структура и организация кода облегчают его поддержку и расширение в будущем.
В целом, фреймворки являются важным инструментом в разработке программного обеспечения, помогая разработчикам создавать более качественные и эффективные приложения.
https://serverspace.uz/support/glossary/junit.mdУзнайте, что такое JUnit, его основные характеристики и аспекты, преимущества использования Junit и почему он стал стандартом для тестирования
JUnit — это фреймворк, созданный для тестирования программного обеспечения на языке Java. Он предназначен для разработки и выполнения автоматизированных тестов, что дает разработчикам возможность проверять правильность функционирования своего кода и обнаруживать ошибки на ранних стадиях разработки.
## Основные особенности JUnit
- **Модульное тестирование**: JUnit поддерживает тестирование отдельных модулей, позволяя разработчикам проверять работу отдельных компонентов (методов и классов) независимо друг от друга.
- **Аннотации**: JUnit использует аннотации, такие как @Test, @Before, @After, которые упрощают написание тестов и делают код более читабельным. Например, аннотация @Before позволяет выполнять определенный код перед каждым тестом, а @After — после его завершения.
- **Ассер'ты**: JUnit предоставляет различные методы ассертов, такие как assertEquals, assertTrue, assertNotNull, которые помогают проверять ожидаемые результаты тестов.
- **Группировка тестов**: Тесты могут быть сгруппированы с помощью аннотации @Suite, что позволяет запускать их вместе.
- **Интеграция**: JUnit просто интегрируется с различными инструментами и фреймворками, такими как Maven, Gradle и широко используемые IDE, включая Eclipse и IntelliJ IDEA, что упрощает процесс тестирования.
## Преимущества использования JUnit
- **Упрощение процесса тестирования**: JUnit делает написание тестов более удобным и структурированным.
- **Автоматизация**: Позволяет автоматизировать тесты, что снижает вероятность ошибок и повышает качество кода.
- **Поддержка непрерывной интеграции**: JUnit хорошо совместим с системами непрерывной интеграции, позволяя запускать тесты автоматически при каждом изменении кода.
- **Снижение** затрат на отладку: Регулярное тестирование помогает выявлять проблемы на ранних стадиях, что уменьшает расходы на их исправление.
JUnit стал стандартом для тестирования Java-приложений и широко используется разработчиками для обеспечения качества программного обеспечения.l>
https://serverspace.uz/support/glossary/systemd.mdУзнайте, что такое systemd, его основные характеристики, преимущества использования и почему Systemd стал важным инструментом
Systemd — это система инициализации и менеджер служб для операционных систем на базе Linux. Он предназначен для управления процессами и службами, упрощая запуск, остановку и мониторинг служб, а также их конфигурацию. Systemd стал стандартной системой инициализации для многих современных дистрибутивов Linux, таких как Fedora, CentOS, Ubuntu и Debian.
## Основные характеристики Systemd
- **Параллельный запуск**: Systemd способен одновременно запускать несколько служб, что существенно сокращает время загрузки системы по сравнению с классическими системами инициализации.
- **Управление службами**: Он предоставляет команды для управления службами (например, start, stop, restart, status) и позволяет отслеживать их состояние.
- **Системные юниты**: Systemd использует концепцию юнитов, которые представляют собой отдельные объекты (например, службы, таймеры, точки монтирования и др.). Каждый юнит имеет свой конфигурационный файл, который определяет, как он должен вести себя.
- **Логирование**: Systemd включает встроенную систему журналирования — journald, которая собирает и хранит логи системы и служб, что упрощает диагностику и мониторинг.
- **Зависимости**: Он управляет зависимостями между юнитами, позволяя определять, какие службы должны быть запущены или остановлены в определенном порядке.
- **Таймеры**: Вместо традиционных cron-заданий, Systemd предоставляет возможность использовать таймеры для планирования выполнения задач.
## Преимущества использования Systemd
- **Ускорение загрузки**: Параллельный запуск служб сокращает время загрузки системы.
- **Упрощенное управление**: Централизованное управление службами через единый интерфейс.
- **Улучшенное логирование**: Интегрированная система логирования позволяет более удобно управлять журналами.
- **Гибкость**: Возможность конфигурирования и расширения благодаря поддержке различных типов юнитов.
Systemd стал важным инструментом для управления службами и процессами в современных дистрибутивах Linux, обеспечивая более эффективное и гибкое управление системой.
https://serverspace.uz/support/glossary/journald.mdУзнайте, что такое journald, основные характеристики, преимущества использования и почему journald стал важным компонентом
journald — это компонент системы инициализации Systemd, отвечающий за сбор и хранение журналов (логов) системы и служб. Он является частью механизма логирования, обеспечивая централизованный способ управления и доступа к записям логов на системах, использующих Systemd.
## Основные характеристики journald
- **Централизованное логирование**: journald собирает логи от различных системных служб и приложений, позволяя хранить их в одном месте.
- **Структурированные логи**: Записи в журналах имеют структурированный формат, что облегчает их анализ и фильтрацию. Каждая запись содержит метаданные, такие как временные метки, идентификаторы процессов и уровни важности.
- **Поддержка различных источников**: journald может собирать логи не только от Systemd-юнитов, но и от других приложений, использующих стандартные выходные потоки (stdout и stderr).
- **Фильтрация и поиск**: journald предоставляет мощные инструменты для фильтрации и поиска по записям журнала, что упрощает диагностику и мониторинг.
- **Поддержка ротации**: Система автоматической ротации позволяет управлять объемом хранимых логов, удаляя старые записи, чтобы освободить место.
- **Журналирование в реальном времени**: journald поддерживает вывод логов в реальном времени, что позволяет администраторам следить за происходящими событиями на сервере.
## Преимущества использования journald
- **Удобство**: Централизованное хранение логов упрощает их анализ и управление.
- **Безопасность**: journald может использовать различные механизмы защиты для обеспечения конфиденциальности и целостности журналов.
- **Гибкость**: Возможность фильтрации и поиска по записям делает его мощным инструментом для диагностики проблем.
journald стал важным компонентом систем на базе Systemd, обеспечивая надежное и эффективное управление логами, что улучшает мониторинг и администрирование Linux-систем.
https://serverspace.uz/support/glossary/fedora.mdУзнайте, что такой за дистрибутив Fedora, его основные характеристики, примеры применения и что из себя представляет Fedora
Fedora — это дистрибутив Linux, созданный сообществом и находящийся под поддержкой компании Red Hat. Он славится своей направленностью на инновации, регулярные обновления и внедрение новейших технологий в экосистеме Linux. Благодаря этому Fedora становится популярным выбором среди разработчиков и пользователей, стремящихся следить за последними достижениями.
## Основные характеристики
- **Инновации**: Fedora регулярно включает в себя последние версии программного обеспечения и технологий, что позволяет пользователям тестировать и использовать новейшие функции.
- **Разделение на версии**: Fedora выпускается в нескольких вариантах (или "изданиях"), таких как Fedora Workstation (для настольных пользователей), Fedora Server (для серверов) и Fedora IoT (для Интернета вещей).
- **Комьюнити**: Fedora управляется сообществом, и все пользователи могут участвовать в его развитии, предоставляя отзывы и разрабатывая новые функции.
- **Пакетная система**: Fedora использует систему управления пакетами RPM и менеджер пакетов DNF, что упрощает установку, обновление и удаление программного обеспечения.
- **Поддержка**: Несмотря на то что Fedora — это проект сообщества, он получает поддержку от Red Hat, что обеспечивает определённый уровень стабильности и безопасности.
- **Безопасность**: Fedora включает в себя ряд функций безопасности, таких как SELinux (Security-Enhanced Linux), что делает систему более защищенной.
## Применение Fedora
- **Разработка**: Fedora часто используется разработчиками для тестирования новых программ и технологий.
- **Образование**: Благодаря доступности и активному сообществу, Fedora используется в образовательных учреждениях для обучения
- **Linux.Серверные решения**: Fedora Server предоставляет функциональность, необходимую для настройки серверов и сетевых услуг.
Fedora представляет собой динамичный и прогрессивный дистрибутив, который активно развивается и ориентирован на передовые технологии в мире Linux
https://serverspace.uz/support/glossary/selinux.mdУзнайте, что такое SELinux простыми словами. В статье мы также обсудим основные характеристики и преимущества se linux
SELinux (**Security-Enhanced Linux**) — это механизм безопасности, разработанный для повышения уровня защиты операционных систем на базе Linux. Он предоставляет архитектуру для реализации контроля доступа, позволяя системным администраторам управлять правами доступа к ресурсам системы более тонко, чем это возможно с традиционными методами.
## Основные характеристики SELinux
- **Контроль доступа:** SELinux использует политику управления доступом, основанную на правилах, что позволяет ограничивать доступ к файлам, процессам и другим ресурсам в зависимости от заданных политик.
- **Модели безопасности:** SELinux поддерживает несколько моделей безопасности, включая мандатный контроль доступа (Mandatory Access Control, MAC), который позволяет устанавливать более строгие ограничения по сравнению с традиционной системой контроля доступа.
- **Политики безопасности:** Администраторы могут настраивать и применять различные политики безопасности, которые определяют, какие процессы и пользователи могут выполнять определенные действия в системе.
- **Логирование**: SELinux ведет журнал всех нарушений политик безопасности, что помогает в мониторинге и анализе безопасности системы.
- **Применение:** SELinux можно настроить для работы в различных режимах, включая режим enforcing (принудительное применение правил), режим permissive (разрешение действий, но с логированием нарушений) и режим disabled (выключение SELinux).
## Преимущества использования SELinux
- **Улучшенная безопасность:** SELinux значительно повышает уровень безопасности системы, ограничивая возможности потенциальных злоумышленников.
- **Гибкость:** Политики SELinux можно адаптировать под специфические требования и сценарии использования.
- **Прозрачность:** Логирование позволяет администраторам отслеживать попытки нарушений и анализировать безопасность системы.
SELinux является мощным инструментом для обеспечения безопасности Linux-систем, предоставляя администраторам дополнительные возможности контроля и защиты ресурсов.
https://serverspace.uz/support/glossary/logirovanie.mdУзнайте, что за процесс такой логирование, простыми словами. В статье также мы обсудим основные характеристики и применение логирования
Логирование — это процесс записи и хранения информации о событиях, действиях и состояниях системы, приложений или пользователей. Логи (журналы) служат важным инструментом для мониторинга, диагностики и анализа работы программного обеспечения и аппаратных компонентов.
## Основные характеристики логирования
- **Запись событий**: Логирование фиксирует различные события, такие как ошибки, предупреждения, информационные сообщения и действия пользователей. Это помогает отслеживать, что происходит в системе.
- **Форматы журналов**: Логи могут иметь разные форматы, включая текстовые файлы, структурированные форматы (например, JSON или XML) и базы данных. Выбор формата зависит от целей логирования и используемых инструментов.
- **Уровни логирования**: Часто используется несколько уровней важности сообщений, таких как DEBUG, INFO, WARNING, ERROR и CRITICAL. Это помогает фильтровать и приоритизировать информацию в журналах.
- **Системы логирования**: Логирование может быть реализовано с помощью различных инструментов и библиотек, таких как Syslog, journald (в Systemd), Log4j, Serilog и другие.
- **Хранение и ротация**: Логи могут занимать много места, поэтому важно организовать их хранение и ротацию, чтобы старые записи автоматически удалялись или архивировались.
## Применение логирования
- **Мониторинг**: Логирование позволяет отслеживать состояние системы в реальном времени, выявляя потенциальные проблемы и аномалии.
- **Диагностика и отладк**а: При возникновении ошибок или сбоев логи помогают разработчикам и администраторам понять причины проблемы и устранить её.
- **Безопасность**: Логи фиксируют действия пользователей и системных процессов, что помогает в расследовании инцидентов и повышении общей безопасности системы.
- **Анализ производительности**: Анализ логов может предоставить информацию о производительности приложений и систем, выявляя узкие места и области для оптимизации.
Логирование является ключевым аспектом управления информационными системами, обеспечивая необходимую прозрачность и возможность анализа событий.
https://serverspace.uz/support/glossary/syslog.mdУзнайте, что такое Syslog, его основные характеристики, применение и примеры syslog-серверов
Syslog — это стандартный протокол для сбора, передачи и хранения сообщений журналов (логов) в компьютерных системах и сетях. Он широко используется в Unix-подобных операционных системах, таких как Linux, для централизованного управления журналированием и мониторинга событий.
## Основные характеристики Syslog
- **Структура сообщений:** Сообщения Syslog содержат временные метки, идентификаторы хостов, приоритеты и текстовые сообщения. Это позволяет легко идентифицировать и анализировать события.
- **Уровни важности:** Syslog использует уровни приоритета для обозначения серьезности сообщений. Эти уровни варьируются от 0 (Emergency) до 7 (Debug), что помогает фильтровать сообщения по важности.
- **Централизованное логирование:** Syslog позволяет собирать логи с нескольких устройств и приложений в одном месте, что упрощает мониторинг и управление событиями.
- **Гибкость:** Syslog может использоваться для передачи сообщений как локально (на том же устройстве), так и удаленно (на другие серверы или устройства), что делает его полезным для распределенных систем.
- **Конфигурируемость:** Администраторы могут настраивать правила и фильтры для управления тем, какие сообщения и куда отправляются, а также как они хранятся.
## Применение Syslog
- **Мониторинг системы:** Syslog позволяет администраторам отслеживать события и действия в системе, что важно для диагностики и устранения неполадок.
- **Безопасность:** Логи, собранные с помощью Syslog, могут помочь в расследовании инцидентов и повышении уровня безопасности системы.
- **Анализ производительности:** Анализ сообщений Syslog может выявить узкие места и проблемы с производительностью.
## Примеры Syslog-серверов
Существуют различные реализации Syslog, такие как rsyslog, syslog-ng и journald (часть Systemd), которые предлагают расширенные возможности для логирования и управления журналами.
Syslog стал важным стандартом в области логирования, обеспечивая централизованный подход к сбору и анализу сообщений журналов в компьютерных системах.
https://serverspace.uz/support/glossary/log4j.mdУзнайте, что за библиотека такая log4j, ее основные характеристики, аспекты и безопасность. Почему Log4j является мощным инструментом для логирования
Log4j — это популярная библиотека для логирования, разработанная для Java-приложений. Она предоставляет разработчикам мощные и гибкие инструменты для создания, управления и настройки логов, позволяя им эффективно отслеживать выполнение программ и выявлять проблемы.
## Основные характеристики Log4j
- **Гибкость конфигурации**: Log4j позволяет настраивать уровни логирования (например, DEBUG, INFO, WARN, ERROR, FATAL) и определять, какие сообщения будут записываться, а какие — игнорироваться. Конфигурация может осуществляться через XML, JSON или свойства файлов.
- **Поддержка различных выходных потоков**: Логи могут быть записаны в различные источники, такие как файлы, консоль, базы данных, удаленные серверы и другие. Это делает систему логирования более удобной и адаптируемой.
- **Форматирование сообщений**: Log4j позволяет настраивать формат сообщений, что упрощает чтение логов и анализ событий.
- **Модульность**: Библиотека состоит из различных компонентов, которые можно подключать и настраивать в зависимости от потребностей проекта.
- **Асинхронное логирование**: Log4j поддерживает асинхронное логирование, что помогает уменьшить задержки при записи логов и повысить производительность приложений.
## Применение Log4j
- **Разработка приложений**: Log4j используется в большинстве Java-приложений для создания логов, что помогает разработчикам отслеживать ошибки и производительность.
- **Системы мониторинга**: Логи, собранные с помощью Log4j, могут быть использованы для мониторинга состояния приложений и выявления узких мест.
## Безопасность
В конце 2021 года Log4j привлек внимание из-за уязвимости, известной как "Log4Shell", которая позволяла злоумышленникам выполнять произвольный код на серверах, использующих уязвимую версию библиотеки. Это привело к широкомасштабным мерам по обновлению и устранению уязвимости в приложениях.
Log4j является мощным инструментом для логирования в Java-приложениях, предлагая множество возможностей для управления логами и настройки процессов. Однако важно следить за безопасностью и обновлениями, чтобы избежать потенциальных уязвимостей.
https://serverspace.uz/support/glossary/urovni-logirovaniya.mdУзнайте, что такое уровни логирования, примеры их применения, основные уровни. где они играют ключевую роль и правильное их использование
Уровни логирования — это категории, которые помогают классифицировать сообщения логов в зависимости от их серьезности или важности. Это позволяет разработчикам и системным администраторам фильтровать и анализировать логи более эффективно. Обычно уровни логирования располагаются по шкале от самых критичных до менее значимых. Вот основные уровни:
- **FATAL**: Указывает на серьезную ошибку, которая приводит к завершению работы приложения. Это крайняя степень серьезности и требует немедленного внимания.
- **ERROR**: Указывает на ошибку, которая влияет на выполнение приложения, но не вызывает его завершение. Это важно для отслеживания сбоев в работе.
- **WARN**: Предупреждающие сообщения, которые указывают на потенциальные проблемы или ситуации, которые могут привести к ошибкам в будущем. Хотя приложение продолжает работать, важно обратить внимание на такие сообщения.
- **INFO**: Информационные сообщения, которые сообщают о нормальном функционировании приложения. Они могут включать события, такие как запуск или завершение процессов, изменения конфигурации и другие важные действия.
- **DEBUG**: Уровень, предназначенный для отладки. Сообщения этого уровня предоставляют детальную информацию о процессе работы приложения, что полезно для разработчиков при поиске и устранении ошибок.
- **TRACE**: Наиболее подробный уровень, который записывает всю информацию о выполнении приложения, включая детали о каждом вызове методов и потоках. Этот уровень используется реже, так как может генерировать большое количество данных.
## Применение уровней логирования
- **Фильтрация сообщений**: Позволяет администраторам настраивать, какие сообщения отображать или сохранять в зависимости от их важности.
- **Упрощение анализа**: Уровни помогают быстро идентифицировать проблемы и области, требующие внимания.
- **Оптимизация производительности**: Установка правильного уровня логирования может помочь уменьшить объем записываемых данных, что важно для производительности системы.
Уровни логирования играют ключевую роль в управлении и анализе логов. Правильное использование этих уровней позволяет разработчикам и администраторам эффективно отслеживать состояние приложений и систем, выявлять проблемы и принимать необходимые меры.
https://serverspace.uz/support/glossary/appsettings.mdУзнайте, что такое AppSettings, ее основные характеристики, применение и примеры использования. Почему AppSettings удобная секция
AppSettings — это секция конфигурационных файлов в .NET-приложениях, которая используется для хранения настроек приложения в формате "ключ-значение". Обычно данные из этой секции загружаются при запуске приложения и используются для конфигурации его поведения без необходимости изменять код.
## Основные характеристики AppSettings
- **Формат хранения**: AppSettings обычно находится в файле конфигурации, таком как appsettings.json в ASP.NET Core или web.config в более старых версиях .NET. В JSON-файле значения могут быть структурированы и вложены, что позволяет организовать сложные настройки.
- **Простота использования**: AppSettings предоставляет простой способ хранения и доступа к конфигурационным параметрам, что делает управление настройками более удобным для разработчиков.
- **Типизация данных**: В ASP.NET Core можно легко привязывать значения из AppSettings к определенным классам, что упрощает работу с конфигурацией и уменьшает вероятность ошибок при чтении значений.
- **Гибкость**: AppSettings позволяет менять конфигурацию без необходимости перекомпиляции приложения. Это особенно полезно для развертывания в разных средах (например, разработка, тестирование, продакшн).
- **Поддержка различных источников**: В ASP.NET Core можно комбинировать AppSettings с другими источниками конфигурации, такими как переменные окружения, параметры командной строки и Azure Key Vault, что позволяет создавать более гибкие и безопасные приложения.
## Применение AppSettings
- **Настройка соединений**: Хранение строк подключения к базам данных и другим ресурсам.
- **Конфигурация сервисов**: Указание параметров для сторонних библиотек и сервисов, используемых в приложении.
- **Управление поведением приложения**: Определение флагов, которые управляют функциями и режимами работы приложения.
## Пример использования
Вот пример appsettings.json в ASP.NET Core:
```css
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
},
"AppSettings": {
"FeatureEnabled": true,
"MaxItems": 100
}
}
```
В этом примере в секции AppSettings хранится информация о настройках приложения, таких как флаг для включения функции и максимальное количество элементов.
AppSettings предоставляет удобный и гибкий способ управления конфигурацией .NET-приложений. Правильное использование этого механизма позволяет улучшить адаптивность и управляемость приложений в различных средах.
https://serverspace.uz/support/glossary/aix.mdУзнайте, что такое AIX (Advanced Interactive eXecutive), основные характеристики, применение и почему AIX продолжает оставаться важным игроком
**AIX (Advanced Interactive eXecutive)** — это коммерческая операционная система, разработанная компанией IBM. Она основана на Unix и предназначена для использования на серверах IBM, особенно на их линейке систем Power. AIX была впервые выпущена в 1986 году и с тех пор прошла через множество обновлений и улучшений.
## Основные характеристики AIX
- **Многозадачность и многопользовательский режим**: AIX поддерживает одновременное выполнение нескольких процессов и доступ нескольких пользователей к системе.
- **Поддержка аппаратного обеспечения IBM**: AIX оптимизирован для работы на серверах IBM Power, что позволяет использовать мощные функции, такие как динамическое распределение ресурсов и управление нагрузкой.
- **Управление памятью и производительностью**: AIX включает усовершенствованные механизмы управления памятью и процессами, такие как система виртуальной памяти и динамическое перераспределение ресурсов.
- **Безопасность и управление доступом**: AIX предоставляет расширенные функции безопасности, включая поддержку шифрования данных, управление пользователями и группами, а также систему контроля доступа.
- **Поддержка стандартов UNIX**: AIX соответствует стандартам POSIX и другим Unix-стандартам, что обеспечивает совместимость с многими Unix-приложениями.
- **Инструменты для администрирования**: AIX предлагает множество утилит для системного администрирования, включая графические интерфейсы и командную строку для упрощения управления системой.
## Применение AIX
AIX используется в различных сферах, включая:
- **Корпоративные системы**: Многие крупные компании используют AIX для управления критически важными бизнес-приложениями и базами данных.
- **Системы с высокой доступностью**: AIX предлагает функции для обеспечения высокой доступности и устойчивости к сбоям, что делает его популярным выбором для важных приложений.
- **Виртуализация**: AIX поддерживает технологии виртуализации, позволяя запускать несколько виртуальных машин на одном физическом сервере.
AIX продолжает оставаться важным игроком в мире корпоративных IT-систем, благодаря своей надежности и высокой производительности на серверах IBM.
https://serverspace.uz/support/glossary/mac.mdУзнайте, что такое модель MAC, ее основные характеристики, преимущества и недостатки. Почему MAC является мощным инструментом для безопасности
**Mandatory Access Control** (MAC) — это модель управления доступом, в которой доступ к ресурсам и объектам системы регулируется строгими правилами, установленными администратором, а не пользователями. Эта модель часто используется в высокозащищенных системах и критически важных приложениях, таких как государственные учреждения, военные организации и финансовые учреждения, где безопасность данных является приоритетом.
### Основные характеристики MAC:
- **Строгие политики доступа**: В MAC доступ к ресурсам основывается на заранее определённых политик, которые не могут быть изменены пользователями. Это помогает предотвратить случайные или злонамеренные попытки изменить уровень доступа.
- **Уровни безопасности**: Пользователи и объекты (файлы, процессы и т. д.) могут быть присвоены различным уровням безопасности. Например, в системе может быть несколько уровней, таких как "секретно", "конфиденциально" и "открыто". Доступ к объекту может быть разрешен только пользователям с соответствующим уровнем.
- **Тегирование данных**: Данные и ресурсы могут быть помечены метками безопасности, которые определяют, кто может получить доступ к этим ресурсам. Пользователи должны иметь соответствующую метку, чтобы получить доступ к защищенным данным.
- **Изоляция ресурсов**: MAC позволяет изолировать ресурсы, чтобы минимизировать риски несанкционированного доступа. Это делает систему более устойчивой к внутренним угрозам.
### Примеры MAC:
- **SELinux (Security-Enhanced Linux)**: Это расширение для ядра Linux, которое реализует принципы MAC. Оно позволяет администраторам определять политики доступа, которые ограничивают, что могут делать пользователи и приложения.
- **Trusted Solaris**: Эта версия операционной системы Solaris от Sun Microsystems использует MAC для управления доступом к ресурсам и предоставляет различные уровни безопасности.
### Преимущества MAC:
- **Высокий уровень безопасности**: MAC обеспечивает более строгий контроль доступа, чем другие модели, такие как Discretionary Access Control (DAC), что делает его идеальным для чувствительных данных.
- **Снижение рисков**: Устойчивость к внутренним угрозам и случайным ошибкам пользователей помогает защитить систему от потерь и утечек данных.
### Недостатки MAC:
- **Сложность управления**: Политики MAC могут быть сложными для настройки и управления, особенно в больших организациях.
- **Гибкость**: Из-за строгих правил доступа пользователи могут испытывать трудности с доступом к необходимым ресурсам, что может снизить продуктивность.
MAC является мощным инструментом для обеспечения безопасности, особенно в средах, где конфиденциальность и защита данных имеют критическое значение.
https://serverspace.uz/support/glossary/trusted-solaris.mdУзнайте, что такое Trusted Solaris, ее основные характеристики, применение и преимущества. Что из себя представляет Trusted Solaris
Trusted Solaris — это версия операционной системы Solaris, разработанная компанией Sun Microsystems, которая включает в себя расширенные функции безопасности и управления доступом. Она была создана для удовлетворения потребностей в безопасных вычислениях в организациях, требующих строгих стандартов защиты данных, таких как государственные учреждения и крупные корпорации.
### Основные характеристики Trusted Solaris:
- **Модель управления доступом**: Trusted Solaris использует модель Mandatory Access Control (MAC), что позволяет устанавливать строгие политики доступа к системным ресурсам и файлам. Доступ предоставляется на основе заранее определённых уровней безопасности.
- **Тегирование объектов**: Все объекты в системе, включая файлы и процессы, могут быть помечены метками безопасности. Эти метки определяют, какие пользователи могут получить доступ к данным и что они могут с ними делать.
- **Аудит безопасности**: Trusted Solaris включает функции аудита, которые позволяют отслеживать действия пользователей и изменения в системе, что помогает выявлять потенциальные угрозы безопасности.
- **Изоляция процессов**: Система предоставляет механизмы для изоляции процессов, что уменьшает риски несанкционированного доступа и повышения устойчивости к атакам.
- **Управление пользователями и группами**: Trusted Solaris позволяет более детально управлять пользователями и группами, предоставляя возможность задавать различные уровни доступа и права на ресурсы.
### Применение Trusted Solaris:
- **Государственные учреждения**: Trusted Solaris используется в системах, где необходимы высокие стандарты безопасности и защиты данных.
- **Финансовые организации**: Банки и финансовые учреждения используют эту ОС для защиты конфиденциальной информации и обеспечения соответствия нормативным требованиям.
- **Военные и оборонные организации**: Trusted Solaris отвечает строгим требованиям безопасности, что делает её подходящей для использования в военных системах.
### Преимущества Trusted Solaris:
- **Высокий уровень безопасности**: Расширенные функции безопасности обеспечивают защиту от внутренних и внешних угроз.
- **Совместимость с Solaris**: Trusted Solaris сохраняет совместимость с основным ядром Solaris, что упрощает переход для организаций, уже использующих эту ОС.
- **Поддержка стандартов безопасности**: Trusted Solaris соответствует различным стандартам безопасности, что делает её подходящей для организаций с высокими требованиями к безопасности.
Trusted Solaris представляет собой мощное решение для организаций, требующих высокоуровневой безопасности и управления данными в сложных вычислительных средах.
https://serverspace.uz/support/glossary/dac.mdУзнайте, что такое DAC, ее основные характеристики, преимущества и недостатки, примеры и почему DAC является одной из самых распространённых моделей
**Discretionary Access Control (DAC)** — это модель управления доступом, в которой владельцы ресурсов (файлов, объектов и т. д.) имеют возможность самостоятельно определять, кто и каким образом может получать доступ к этим ресурсам. В отличие от Mandatory Access Control (MAC), где доступ определяется жесткими политиками, DAC предоставляет пользователям большую гибкость и контроль над своими данными.
### Основные характеристики DAC:
- **Владение ресурсами**: Каждый объект в системе имеет владельца, который имеет право на управление доступом к этому объекту. Владельцы могут предоставлять доступ другим пользователям или группам пользователей.
- **Уровни доступа**: Владельцы могут задавать различные уровни доступа, такие как чтение, запись и выполнение, определяя, что конкретные пользователи могут делать с объектом.
- **Гибкость**: DAC позволяет пользователям изменять права доступа в зависимости от их потребностей, что делает модель более динамичной и удобной в использовании.
### Примеры DAC:
- **Файловые системы**: В операционных системах, таких как Windows и Unix/Linux, пользователи могут устанавливать права доступа к своим файлам и папкам, определяя, кто может их просматривать или изменять.
- **Базы данных**: В некоторых системах управления базами данных (СУБД) администраторы могут предоставлять доступ к определённым таблицам или записям другим пользователям, основываясь на их ролях или потребностях.
### Преимущества DAC:
- **Удобство**: Пользователи могут легко управлять доступом к своим ресурсам без необходимости обращения к администраторам.
- **Гибкость**: Возможность динамически изменять права доступа позволяет адаптироваться к изменяющимся требованиям и условиям работы.
### Недостатки DAC:
- **Безопасность**: Поскольку пользователи могут свободно предоставлять доступ к своим ресурсам, это может привести к случайным утечкам данных или несанкционированному доступу.
- **Управление правами**: В крупных организациях управление правами доступа может стать сложным, если много пользователей и объектов, что увеличивает риски ошибок.
DAC является одной из наиболее распространённых моделей управления доступом, особенно в настольных и серверных операционных системах, благодаря своей простоте и удобству. Однако организации, работающие с чувствительными данными, могут предпочесть более строгие модели, такие как MAC, для обеспечения более высокого уровня безопасности.
https://serverspace.uz/support/glossary/ci-cd.mdУзнайте, что такое CI/CD, зачем нужна CI/CD, основные этапы и шаги интеграции
**CI/CD** (Continuous Integration и Continuous Delivery/Continuous Deployment) — это практика автоматизации и оптимизации процессов разработки, тестирования и развертывания программного обеспечения. Она позволяет командам непрерывно интегрировать изменения кода и быстрее доставлять обновления пользователям, обеспечивая высокое качество и стабильность продукта.
## Основные этапы CI/CD
- **Continuous Integration (CI)** — непрерывная интеграция. Включает автоматическую сборку и тестирование кода при каждом коммите в репозиторий. Это помогает разработчикам оперативно выявлять и исправлять ошибки, поскольку тесты проверяют совместимость новых изменений с существующим кодом. CI ускоряет командную работу и уменьшает вероятность конфликтов в коде.
- **Continuous Delivery (CD)** — непрерывная доставка. На этом этапе продукт становится готовым к развертыванию в любой момент, так как проходит автоматические тесты и проверки качества. Изменения могут быть отправлены на тестовый сервер или в staging-среду для финального тестирования, но финальное развертывание по-прежнему требует ручного подтверждения.
- **Continuous Deployment (CD)** — непрерывное развертывание. Это следующий шаг после непрерывной доставки, когда продукт автоматически разворачивается на продакшен-среду без участия человека. Continuous Deployment требует высокого уровня автоматизации тестов, чтобы исключить риски багов при каждом развертывании.
## Зачем нужна CI/CD?
CI/CD помогает минимизировать количество ошибок, ускоряет релизы и делает процессы более управляемыми и предсказуемыми. Это особенно важно в командах с частыми обновлениями, где стабильность и качество критически важны.
https://serverspace.uz/support/glossary/rhel.mdRed Hat Enterprise Linux — это коммерческое дистрибутивное решение на базе Linux, разработанное компанией Red Hat
RHEL (Red Hat Enterprise Linux) — это коммерческое дистрибутивное решение на базе Linux, разработанное компанией Red Hat. Оно предназначено для использования в корпоративной среде и предлагает стабильную, безопасную и поддерживаемую платформу для развертывания серверов, рабочих станций и облачных решений.
## Основные характеристики RHEL
- **Коммерческая поддержка**: RHEL предоставляет пользователям доступ к профессиональной поддержке от Red Hat, включая техническую помощь, обновления и исправления безопасности.
- **Стабильность и безопасность**: Distro ориентирован на долгосрочную стабильность, что делает его подходящим для критически важных приложений и систем. RHEL также включает регулярные обновления безопасности и исправления.
- **Управление пакетами**: RHEL использует систему управления пакетами RPM и инструмент yum/dnf для установки, обновления и удаления программного обеспечения, что упрощает управление зависимостями.
- **Широкий набор инструментов**: Включает инструменты для управления, мониторинга и автоматизации, такие как Red Hat Ansible Automation, что позволяет оптимизировать операции и улучшать производительность.
- **Кросс-платформенные решения**: RHEL поддерживает развертывание на различных платформах, включая физические и виртуальные серверы, а также облачные инфраструктуры, что делает его гибким решением для различных бизнес-потребностей.
- **Лицензирование**: RHEL использует модель подписки, что подразумевает платное получение доступа к обновлениям и поддержке.
## Применение RHEL
- **Серверы**: RHEL часто используется для настройки веб-серверов, баз данных и других критически важных приложений.
- **Облачные решения**: Многие компании используют RHEL для развертывания своих приложений в облаке благодаря его надежности и поддержке контейнеризации.
- **Разработка**: Платформа также широко используется разработчиками для создания и тестирования приложений благодаря своей стабильности и большому количеству доступного программного обеспечения.
RHEL является одним из самых популярных дистрибутивов Linux в корпоративной среде благодаря своей надежности, безопасности и поддержке.
https://serverspace.uz/support/glossary/posix.mdУзнайте, что такое POSIX, ее основные характеристики, основные компоненты, применение и преимущества системы posix
**POSIX (Portable Operating System Interface)** представляет собой свод стандартов, созданных с целью обеспечения совместимости и переносимости различных операционных систем. Эти стандарты определяют интерфейсы, команды и функциональные возможности, которые должны быть реализованы операционными системами, чтобы приложения могли функционировать на разных платформах без необходимости внесения изменений.
## Основные характеристики POSIX
- **Совместимость**: POSIX определяет набор стандартных функций и интерфейсов, что позволяет разработчикам писать код, который будет работать на любых операционных системах, соответствующих этому стандарту.
- **Язык программирования**: Основное внимание уделяется языку C, так как многие интерфейсы и библиотеки POSIX предназначены для работы с C, однако многие из них могут быть адаптированы для других языков программирования.
- **Многоуровневая структура**: POSIX включает в себя различные подстандарты, такие как POSIX.1 (описывающий базовые функции, такие как системные вызовы), POSIX.2 (стандартные утилиты командной строки) и другие.
## Основные компоненты POSIX
- **Системные вызовы:** Определяет стандартные функции для работы с процессами, потоками, памятью и файлами.
Командные интерфейсы: Определяет стандартные команды и утилиты, которые должны быть доступны в командной строке операционной системы.
- **Потоки и многопоточность**: Включает стандарты для работы с потоками (threads), что позволяет создавать многопоточные приложения.
- **Сигналы:** Определяет механизм обработки сигналов, что позволяет приложениям реагировать на события, происходящие в системе.
## Применение POSIX
- **Универсальность:** POSIX используется во многих Unix-подобных системах, включая Linux, macOS и BSD, что делает его важным для разработки кроссплатформенных приложений.
- **Стандартизация:** Обеспечивает стандарты для системных программ и утилит, что способствует лучшему взаимодействию между различными операционными системами.
- **Разработка ПО:** Многие библиотеки и фреймворки, используемые для разработки программного обеспечения, соответствуют стандартам POSIX, что делает их более универсальными и переносимыми.
## Преимущества POSIX
- Переносимость: Программы, написанные с учетом стандартов POSIX, могут быть запущены на разных операционных системах без значительных изменений.
- Совместимость: POSIX гарантирует взаимодействие между различными операционными системами, что облегчает процесс разработки и поддержки программного обеспечения.
- Сообщество: Широкая поддержка в сообществе разработчиков, что приводит к большему количеству ресурсов и инструментов для работы с POSIX.
POSIX стал важной частью экосистемы Unix и Unix-подобных операционных систем, способствуя развитию совместимых и переносимых приложений.
https://serverspace.uz/support/glossary/bsd.mdУзнайте, что такое BSD (Berkeley Software Distribution), основные характеристики, основные версии и применение BSD
**BSD (Berkeley Software Distribution)** — это семейство операционных систем, основанных на Unix, которое было разработано в Университете Беркли в 1970-х и 1980-х годах. BSD известен своими новаторскими разработками в области операционных систем и сетевых технологий, а также тем, что стал основой для множества современных Unix-подобных систем.
## Основные характеристики BSD:
- **Происхождение**: Первоначально BSD был создан как расширение для Unix Version 6, разработанного AT&T. BSD внедрил множество улучшений, включая новые утилиты, средства разработки и сетевые протоколы.
- **Лицензирование**: BSD использует более свободную лицензию по сравнению с другими Unix-системами, такими как Linux. Это позволяет пользователям изменять и распространять исходный код без строгих ограничений, что способствовало популярности BSD.
- **Архитектура**: BSD имеет модульную архитектуру, что облегчает добавление новых функций и улучшений. Это позволяет системам на основе BSD быть высоко настраиваемыми и адаптируемыми к различным задачам.
- **Сетевые технологии**: BSD считается пионером в области сетевых технологий и протоколов, таких как TCP/IP, и стал основой для развития многих сетевых приложений.
## Основные версии BSD:
- **FreeBSD**: Один из самых популярных дистрибутивов BSD, который ориентирован на производительность и стабильность. Он широко используется на серверах и встраиваемых системах.
- **OpenBSD**: Известен своим акцентом на безопасность и кодовую чистоту. OpenBSD включает в себя множество встроенных мер безопасности и активно работает над минимизацией уязвимостей.
- **NetBSD**: Сосредоточен на переносимости и может работать на множестве различных архитектур и платформ. Это делает NetBSD идеальным выбором для встраиваемых систем и экспериментальных проектов.
- **DragonFly BSD**: Ориентирован на производительность и разработку, этот дистрибутив включает в себя уникальные функции, такие как HAMMER файловая система.
## Применение BSD:
- **Серверы**: BSD-системы широко используются в качестве серверных операционных систем благодаря своей стабильности и производительности.
- **Встраиваемые системы**: Многие встраиваемые решения используют BSD из-за его гибкости и переносимости.
- **Сетевые устройства**: BSD-системы активно применяются в сетевых устройствах, таких как маршрутизаторы и межсетевые экраны.
BSD оказал значительное влияние на развитие Unix-подобных систем и продолжает оставаться важной частью экосистемы операционных систем благодаря своим уникальным характеристикам и высокой производительности.
https://serverspace.uz/support/glossary/hammer.mdУзнайте, что за такая файловая система HAMMER, ее основные аспекты и применение.
**HAMMER** — это файловая система, созданная специально для операционной системы DragonFly BSD. Она фокусируется на высокой производительности, надежности и предлагает расширенные возможности управления данными. Ключевые характеристики HAMMER включают поддержку моментальных снимков, репликацию и эффективное управление данными.
## Основные характеристики HAMMER
- **Моментальные снимки**: HAMMER позволяет создавать моментальные снимки файловой системы, что дает возможность сохранять состояние системы в определенный момент времени. Это полезно для резервного копирования и восстановления данных.
- **Копирование при записи (Copy-on-write)**: Файловая система использует метод копирования при записи, что обеспечивает защиту данных от потерь при изменении файлов. Вместо изменения существующего блока, система создает новый блок с изменениями, что предотвращает повреждение данных.
- **Репликация**: HAMMER поддерживает репликацию данных между несколькими системами, что позволяет синхронизировать данные в реальном времени. Это полезно для создания отказоустойчивых систем.
- Эффективное использование пространства: Файловая система оптимизирует использование дискового пространства, хранит только необходимые данные и минимизирует дублирование.
- **Поддержка больших файлов**: HAMMER может эффективно работать с большими файлами и объемами данных, что делает его подходящим для серверных и встраиваемых приложений.
- **Доступ к данным**: HAMMER предоставляет пользователям мощные средства для поиска и доступа к данным, включая возможность восстановления данных из моментальных снимков.
## Применение HAMMER
- **Серверы**: HAMMER используется на серверах, где необходима высокая производительность и надежность, особенно в сценариях с большими объемами данных.
- **Встраиваемые системы**: Благодаря своей эффективности и возможности резервирования данных, HAMMER подходит для встраиваемых решений.
Файловая система HAMMER является важной частью DragonFly BSD и предлагает уникальные возможности, которые делают её привлекательной для использования в разнообразных приложениях, требующих надежного хранения и управления данными.
https://serverspace.uz/support/glossary/copy-on-write.mdУзнайте, что такое Copy-on-write, основные характеристики, преимущества и недостатки, применение copy on write.
**Copy-on-write (COW)** — это метод управления данными, который оптимизирует использование памяти и дискового пространства. Этот подход широко используется в различных системах, включая файловые системы и механизмы управления памятью.
## Основные характеристики Copy-on-write:
- **Копирование при записи**: Когда данные изменяются, вместо перезаписи существующих блоков, создается новая копия блока с изменениями. Таким образом, оригинальные данные остаются неизменными до тех пор, пока не потребуется их модифицировать.
- **Экономия пространства**: COW позволяет избежать дублирования данных, так как одинаковые блоки могут ссылаться на один и тот же экземпляр данных. Это особенно полезно при работе с большими объемами данных или в системах, где изменения происходят часто.
- **Моментальные снимки**: Этот метод хорошо подходит для реализации моментальных снимков (snapshot), поскольку позволяет сохранить текущее состояние данных без необходимости полного копирования. Снимки создаются быстро и занимают меньше пространства.
- **Производительность**: Хотя COW может иметь накладные расходы на производительность при записи (из-за необходимости создания копий), оно повышает производительность при чтении, так как доступ к неизмененным данным осуществляется быстрее.
## Применение Copy-on-write:
- **Файловые системы**: Многие современные файловые системы, такие как Btrfs и ZFS, используют COW для эффективного управления данными и создания моментальных снимков.
- **Виртуализация**: Виртуальные машины часто применяют COW для создания снимков дисков и управления состоянием, позволяя быстро откатиться к предыдущим состояниям.
- **Управление памятью**: В операционных системах COW используется для управления виртуальной памятью, где при копировании страниц памяти новые страницы создаются только при необходимости изменений.
## Преимущества Copy-on-write:
- **Снижение объема данных**: Эффективное использование пространства и минимизация дублирования данных.
- **Быстрые моментальные снимки**: Возможность создания снимков состояния системы с минимальными затратами по времени и ресурсам.
- **Упрощение управления данными**: Позволяет легко реализовать откаты и восстановление данных.
Copy-on-write является мощным инструментом для управления данными, который повышает эффективность и производительность в различных областях, от хранения данных до виртуализации и управления памятью.
https://serverspace.uz/support/glossary/schetchik-ssilok.mdУзнайте, что такое счетчик ссылок, принцип работы, применение, преимущества и недостатки, почему счетчик ссылок - полезный подход в системах автоматизации
**Reference сounting или же счетчик ссылок** — это метод управления памятью, в рамках которого каждому объекту или ресурсу присваивается счетчик, регистрирующий количество ссылок на него. Такой подход способствует эффективному контролю за жизненным циклом объектов, позволяя освобождать память, когда объект становится ненужным.
## Принципы работы
- **Увеличение счетчика**: Когда создается новая ссылка на объект, счетчик увеличивается.
- **Уменьшение счетчика**: Когда ссылка на объект удаляется, счетчик уменьшается.
- **Освобождение памяти**: Когда счетчик ссылок достигает нуля, это означает, что объект больше не используется, и память может быть освобождена.
## Применение
- **Языки программирования**: Счетчик ссылок используется в языках, таких как Objective-C, Swift и Python (в некоторых случаях), для управления памятью и предотвращения утечек.
- **Объектно-ориентированные системы**: В ООП-системах, где объекты могут передаваться между разными частями кода, этот метод обеспечивает безопасное управление памятью без необходимости вручную освобождать ресурсы.
- **GUI и системы управления ресурсами**: В приложениях с графическим интерфейсом или при работе с ресурсами, такими как изображения или звуки, счетчик ссылок помогает гарантировать, что ресурсы остаются доступными, пока они используются.
## Преимущества
- **Автоматическое управление памятью**: Этот метод облегчает контроль над жизненным циклом объектов, поскольку разработчики освобождаются от необходимости вручную заниматься освобождением памяти.
- **Гибкость**: Упрощается работа с комплексными структурами объектов и их взаимосвязями.
## Недостатки
- **Циклические ссылки**: Если два объекта ссылаются друг на друга, их счетчики ссылок могут никогда не достигать нуля, что может привести к утечкам памяти.
- **Перфоман**с: Частые изменения счетчиков могут замедлять выполнение, особенно в многопоточных средах.
В целом, Счетчик ссылок — полезный подход, особенно в системах, где важна автоматизация управления памятью, но требует внимания к потенциальным проблемам, связанным с циклическими ссылками.
https://serverspace.uz/support/glossary/gui.mdУзнайте, что такое GUI (графический пользовательский интерфейс), ключевые компоненты, преимущества и недостатки, где GUI широко используется
**GUI** (графический пользовательский интерфейс) — это тип интерфейса, который предоставляет пользователям возможность взаимодействовать с компьютерными системами и приложениями через визуальные элементы, такие как окна, иконки, кнопки и меню, а не текстовые команды. Главная задача GUI — сделать общение с компьютером более интуитивным и удобным.
## Ключевые компоненты GUI
- **Окна**: Основные пространства для вывода информации и взаимодействия с программами.
- **Иконки**: Визуальные символы, представляющие файлы, приложения или действия.
- **Кнопки**: Элементы, по которым можно кликнуть для выполнения определённых операций.
- **Меню**: Перечни доступных команд и вариантов, из которых можно сделать выбор.Ползунки: Элементы для регулировки значений в диапазоне, например, громкости или яркости.
## Преимущества GUI
- **Удобство использования**: Графические элементы делают интерфейс более понятным и доступным для пользователей, особенно для тех, кто не знаком с командной строкой.
- **Визуальная обратная связь**: Пользователи могут видеть результаты своих действий сразу, что облегчает понимание работы программы.
- **Интуитивно понятное взаимодействие**: Множество пользователей могут быстро освоить интерфейс благодаря визуальным подсказкам и знакомым элементам.
## Недостатки GUI
- **Ресурсоемкость**: GUI требует больше ресурсов (оперативной памяти и вычислительной мощности), чем текстовые интерфейсы.
- **Меньшая скорость**: Для опытных пользователей работа с командной строкой может быть быстрее, чем через графические элементы.
- **Ограниченная автоматизация**: Автоматизация задач с помощью GUI может быть более сложной по сравнению с текстовыми интерфейсами.
GUI широко используется в операционных системах (например, Windows, macOS, Linux с графическими окружениями) и приложениях, таких как текстовые редакторы, браузеры и игры, благодаря своей удобности и доступности.
https://serverspace.uz/support/glossary/tenevoe-copirovanie.mdУзнайте, что такое shadow copy или же теневое копирование, основные характеристики, применение и преимущества.
**Shadow copy или же теневое копирование** — это технология, которая позволяет создавать снимки состояния файлов и папок на компьютере в определённый момент времени, не прерывая работу с этими данными. Это особенно полезно для резервного копирования и восстановления данных.
## Основные характеристики
- **Создание снимков**: Теневое копирование позволяет создавать копии данных на уровне файловой системы, включая открытые и используемые файлы, что обеспечивает их защиту даже во время работы.
- **Не требует остановки работы системы**: Теневое копирование может выполняться в фоновом режиме, не мешая пользователям и не требуя перезагрузки системы.
- **Восстановление данных**: При утрате информации или повреждении файлов пользователи имеют возможность вернуть их из ранее созданных версий, что существенно облегчает процесс восстановления.
- **Поддержка различных приложений**: Shadow Copy часто используется в сочетании с системами резервного копирования и в приложениях, которые требуют защиты данных, такими как базы данных и почтовые серверы.
## Применение
- **Операционные системы**: Shadow Copy часто используется в Windows (например, в Windows Server и Windows 10) для создания резервных копий и восстановления данных.
- **Системы резервного копирования**: Многие программы резервного копирования используют теневое копирование для создания резервных копий, не прерывая работу пользователей.
- **Организации**: В корпоративной среде Shadow Copy помогает обеспечить защиту критически важных данных и позволяет быстро восстановить работу после сбоев.
## Преимущества
- **Удобство**: Позволяет пользователям легко восстанавливать файлы, не прибегая к сложным процедурам.
- **Безопасность**: Защищает данные от случайного удаления или повреждения.
- **Гибкость**: Можно создать несколько версий теневых копий для различных точек времени.
В целом, Shadow Copy — это мощный инструмент для управления данными, обеспечивающий защиту и восстановление информации в случае необходимости.
https://serverspace.uz/support/glossary/otobrazhenie-faila-v-pamiat.mdУзнайте, что такое отображение файла в память (Memory Mapping), ее основные аспекты, преимущества и недостатки
**Memory Mapping** или же отображение файла в память— это метод, который позволяет отображать файлы или другие объекты в адресное пространство процесса, что дает возможность работать с ними так, как если бы они были обычными массивами в памяти. Эта техника используется для эффективного доступа к данным и управления ими.
## Основные аспекты Memory Mapping
- **Отображение файлов в память**: При помощи Memory Mapping файлы или их части отображаются в виртуальной памяти приложения. Это позволяет программам читать и записывать данные, используя указатели и адреса, а не традиционные операции ввода-вывода.
- **Эффективный доступ**: Memory Mapping позволяет программам быстро и эффективно работать с большими объемами данных, так как данные загружаются в память по мере необходимости, а не целиком.
- **Совместный доступ**: Несколько процессов могут одновременно обращаться к одним и тем же отображенным данным, что упрощает обмен информацией и межпроцессное взаимодействие.
## Применение
- **Базы данных**: Memory Mapping часто используется в системах управления базами данных для быстрого доступа к данным и повышения производительности.
- **Графические приложения**: Программы, работающие с большими изображениями или видео, могут использовать Memory Mapping для эффективного чтения и обработки данных.
- **Операционные системы**: Memory Mapping используется для управления файлами и обеспечивания быстрого доступа к их содержимому.
## Преимущества
- **Скорость**: Уменьшает время доступа к данным благодаря непосредственному взаимодействию с памятью.
- **Упрощение кода**: Разработчики могут использовать привычные структуры данных и алгоритмы для работы с файлами.
- **Экономия ресурсов**: Снижает нагрузку на систему, так как данные загружаются в память только по мере необходимости.
## Недостатки
- **Управление памятью**: Требует внимательного подхода к управлению памятью, так как ошибки могут привести к утечкам или повреждению данных.
- **Проблемы с производительностью**: В некоторых случаях работа с отображенными данными может быть медленнее, чем с обычными файлами, особенно при частых обновлениях.
В целом, Memory Mapping — мощный инструмент, который позволяет эффективно управлять данными и улучшает производительность приложений, работающих с большими объемами информации.
https://serverspace.uz/support/glossary/pull-request.mdУзнайте, что такое Pull Request, почему он полезен, когда лучше всего использовать Pull Request и как он работает
**Pull Request (PR)** — это запрос на внесение изменений в код, используемый в системах контроля версий, таких как GitHub, GitLab и Bitbucket. С помощью Pull Request разработчик может предложить свои изменения для основной ветки проекта или другой ветки, дать команде возможность просмотреть изменения, обсудить их и принять или отклонить их интеграцию. PR помогает управлять процессом совместной работы над кодом, особенно в командах с несколькими разработчиками.
### Как работает Pull Request?
- **Создание новой ветки**. Разработчик обычно создает отдельную ветку для новых изменений, чтобы они не влияли на основной код до завершения работы.
- **Внесение изменений**. В новой ветке разработчик работает над функцией или исправлением, делает коммиты и сохраняет версии.
- **Открытие Pull Request**. Когда изменения завершены, разработчик отправляет PR, чтобы запросить слияние своей ветки с основной (например, main или master) или другой целевой веткой. В PR показываются все изменения, добавленные разработчиком.
- **Код-ревью**. Остальные участники команды могут просмотреть PR, оставить комментарии и предложить доработки. Это важная часть процесса, так как позволяет обнаружить потенциальные ошибки и улучшить качество кода.
- **Слияние**. После одобрения изменений они могут быть слиты с основной веткой, обычно с помощью одного клика. Изменения становятся частью основной ветки, и проект обновляется с учетом новых функций или исправлений.
### Почему Pull Request полезны?
- **Качество кода**. PR помогает улучшить код благодаря код-ревью: разработчики могут предложить оптимизации или заметить ошибки.
- **История изменений**. Каждый PR сохраняет историю изменений, обсуждений и исправлений, что делает процесс разработки более прозрачным и позволяет отслеживать, кто и когда внес изменения.
- **Безопасность проекта**. С помощью PR команды могут контролировать, какие изменения будут добавлены в проект, и убедиться, что новый код соответствует стандартам.
- **Совместная работа**. PR дает возможность всей команде участвовать в разработке, предлагая улучшения и комментируя изменения.
### Когда использовать Pull Request?
PR полезен как при командной работе, так и в проектах с открытым исходным кодом, где внешний участник предлагает изменения. PR помогает следить за качеством, делать процесс разработки структурированным и обеспечить прозрачность работы над проектом.
https://serverspace.uz/support/glossary/gitlab.mdУзнайте, что такое GitLab, основные функции, преимущества, для чего используется GitLab и почему он популярен среди разработчиков и компаний
GitLab — это платформа, предназначенная для совместной работы над программным обеспечением, объединяющая инструменты для управления кодом, проектами и выполнением DevOps-задач, включая CI/CD, планирование, мониторинг и развертывание приложений.
## Основные функции GitLab
- **Хранилище кода.** Подобно GitHub, GitLab позволяет хранить и управлять репозиториями кода, предоставляя функции для совместной работы и мониторинга изменений.
- **CI/CD**. GitLab встроил в свою платформу мощные инструменты для CI/CD, позволяя автоматически тестировать и разворачивать приложение при каждом изменении кода. GitLab CI/CD помогает автоматизировать весь цикл доставки — от тестирования до развертывания.
- **Управление задачами**. С помощью Issues и Boards GitLab позволяет отслеживать задачи, ошибки и функции, что удобно для организации рабочего процесса и планирования. Это делает его полезным инструментом для командной работы и управления проектом.
- **Безопасность и мониторинг**. GitLab предлагает функции сканирования уязвимостей и инструмент для проверки качества кода, что помогает поддерживать безопасность и стабильность проектов.
- **Планирование и управление проектами**. GitLab поддерживает функции Agile-методологий, такие как задачи, борды, эпики и дорожные карты (milestones), которые делают его удобным для работы с долгосрочными проектами и позволяют отслеживать прогресс и приоритеты.
- **Self-hosted и облачные решения**. GitLab поддерживает развертывание как на локальных серверах, так и в облачной среде, что дает возможность выбрать оптимальный вариант в соответствии с потребностями безопасности и финансовыми ограничениями.
## Преимущества GitLab
- **Полный цикл DevOps**. GitLab покрывает весь цикл разработки и доставки, обеспечивая интеграцию CI/CD, управления проектами и безопасности в одной платформе.
- **Открытый код и гибкость**. GitLab предлагает как коммерческую, так и бесплатную версии, а также может быть развернут на собственных серверах, что делает его подходящим для компаний с высокими требованиями к безопасности.
- **Масштабируемость**. GitLab подходит как для небольших команд, так и для крупных организаций, предлагая гибкость в управлении доступом, задачами и развертыванием.
## Для чего используется GitLab?
GitLab используется для управления проектами и автоматизации DevOps-процессов. Он популярен среди разработчиков и компаний, которым важна гибкость в настройке рабочего процесса, интеграция инструментов CI/CD и безопасность. GitLab подходит как для командной работы, так и для крупных корпоративных решений с высокими требованиями к безопасности и контролю качества.
В Базе знаний Serverspace, в разделе Глоссарий, вы можете найти еще больше терминов связанных с Git, GitHub, GitLab.
https://serverspace.uz/support/glossary/vim.mdУзнайте, что такое Vim, его основные особенности и почему Vim упрощает редактирование текстовых файлов
**Vim** — это текстовый редактор, известный своей высокой функциональностью и мощностью для редактирования текста, особенно кода. Его отличительная особенность — модальный подход к редактированию, который отличается от большинства текстовых редакторов.
Основные особенности Vim:
- **Модальный редактор**: Vim работает в нескольких режимах, таких как командный, режим вставки и визуальный. В командном режиме можно перемещаться по тексту, удалять и изменять текст, не используя мышь.
- **Горячие клавиши**: Vim полностью управляется с клавиатуры, а команды редактирования текста можно быстро вызывать комбинациями клавиш, что делает его чрезвычайно удобным и быстрым при привыкании.
- **Мощные возможности настройки**: Vim поддерживает плагины, конфигурации и макросы, позволяя пользователям адаптировать его под свои нужды и добавлять необходимый функционал.
- **Работа с большими файлами**: Vim эффективно обрабатывает большие объемы данных и поддерживает регулярные выражения, что облегчает поиск и замену текста.
- **Кроссплатформенность**: Vim доступен на большинстве операционных систем, включая Unix, Linux, macOS и Windows.
- **Совместимость с Vi**: Vim является усовершенствованной версией Vi, что делает его совместимым с его командами.
Vim требует некоторого времени на изучение, но после освоения он значительно упрощает редактирование текстовых файлов, особенно для разработчиков и системных администраторов, которым приходится часто работать в терминале.
https://serverspace.uz/support/glossary/shell.mdУзнайте, что такое Shell, его основные аспекты и типы. Узнайте почему Shell это один из базовых инструментов для работы в Unix-системах
**Shell**, или командная оболочка, представляет собой программное средство, создающее интерфейс для взаимодействия пользователя с операционной системой. С её помощью можно вводить команды, запускать приложения, выполнять файловые операции и другие задачи, обеспечивая связь пользователя с ядром системы. Shell выступает посредником между пользователем и операционной средой, особенно распространён в Unix-подобных системах, таких как Linux и macOS, где он является важным инструментом управления и автоматизации.
## Основные аспекты Shell
- **Командная строка**: Пользователь вводит текстовые команды в терминале, а Shell их интерпретирует и передает операционной системе для выполнения. Примеры таких команд: ls, cd, mkdir, rm, cp и многие другие.
- **Скрипты**: Shell поддерживает написание и выполнение скриптов — файлов с командами, которые выполняются последовательно. Это делает Shell мощным инструментом для автоматизации задач.
## Типы Shell
- **Bash (Bourne Again Shell)** — одна из самых популярных оболочек, особенно на Linux.Zsh — расширенная оболочка, включающая дополнительные функции, такие как автодополнение и подсветка синтаксиса.Fish (Friendly Interactive Shell) — ориентирован на удобство и простоту, с интуитивным интерфейсом.C Shell (csh) и Korn Shell (ksh) — альтернативные оболочки, популярные в разных Unix-системах.
- **Переменные окружения**: Shell позволяет использовать переменные, такие как PATH, HOME, USER, которые содержат данные о настройках системы и пути к исполняемым файлам.
- **Пайплайны и перенаправление**: Shell поддерживает передачу вывода одной команды на вход другой (через |), а также перенаправление вывода в файлы (>, >>), что позволяет создавать цепочки обработки данных.
- **Управление процессами**: Через Shell можно управлять процессами, например, запускать команды в фоновом режиме, завершать процессы, смотреть их статус и использовать сигналы для взаимодействия.
Shell — это один из базовых инструментов для работы в Unix-системах. Он популярен среди системных администраторов, разработчиков и инженеров, так как позволяет быстро и гибко управлять системой, особенно в серверных и облачных средах.
https://serverspace.uz/support/glossary/bash.mdУзнайте, что такое Bash (Bourne Again Shell), основные особенности и почему Bash это мощный и гибкий инструмент
**Bash (Bourne Again Shell)** — это одна из самых популярных командных оболочек в Unix-подобных системах, в первую очередь в Linux. Bash был разработан как улучшенная версия более ранней оболочки Bourne Shell (sh), дополняющая её новыми возможностями и удобством использования. Она служит для управления системой через командную строку, выполнения команд, автоматизации задач и написания скриптов.
Основные особенности Bash:
- **Командный интерфейс**: Bash позволяет пользователю вводить команды для работы с файлами, управления процессами и конфигурации системы.
- **Скрипты**: Bash поддерживает написание и выполнение скриптов, что делает её мощным инструментом для автоматизации повседневных задач. Скрипты на Bash часто используются для резервного копирования, настройки окружения, обработки данных и других задач.
- **Управление процессами**: Bash позволяет запускать команды в фоновом режиме, останавливать, возобновлять и завершать процессы.
- **Переменные окружения**: Bash использует переменные, которые помогают настраивать поведение командной оболочки и хранят данные о системе. Например, **PATH **хранит пути к исполняемым файлам, **HOME** указывает на домашний каталог пользователя.
- **Поддержка пайпов и перенаправления**: Bash позволяет передавать вывод одной команды в другую (через символ **| **) и перенаправлять вывод в файлы (**>**,** >>**). Это делает возможным сложную обработку данных с использованием простых команд.
- **Условные операторы и циклы**: Bash поддерживает конструкцию условных операторов (**if**, **case**) и циклов (**for**, **while**), что расширяет возможности скриптов и позволяет создавать сложные сценарии.
- **Автодополнение и история команд**: Bash поддерживает автодополнение команд, имён файлов и переменных, а также ведёт историю команд, что упрощает повторное использование ранее введённых команд.
Bash — это мощный и гибкий инструмент, используемый администраторами, разработчиками и пользователями для быстрого и эффективного управления системой и её ресурсами.
https://serverspace.uz/support/glossary/kernel.mdУзнайте, что такое Kernel (ядро), его основные функции и особенности, рассмотрите виды ядер
Kernel (ядро) — это основная часть операционной системы, обеспечивающая взаимодействие между аппаратным обеспечением и программами. Ядро управляет ресурсами компьютера (процессором, памятью, устройствами ввода-вывода) и координирует их работу, обеспечивая выполнение задач, запросов и команд. В Unix-подобных системах, таких как Linux, ядро играет центральную роль, и без него операционная система не может функционировать.
## Основные функции и особенности ядра
- **Управление процессами**: Ядро контролирует запуск, приостановку, возобновление и завершение процессов, распределяет процессорное время между ними и управляет многозадачностью.
- **Управление памятью**: Ядро отвечает за распределение и освобождение оперативной памяти, виртуальную память и защиту памяти. Оно выделяет необходимую память для программ и следит, чтобы программы не использовали область памяти друг друга.
- **Управление устройствами**: Ядро взаимодействует с драйверами для управления подключенными устройствами, такими как диски, принтеры, видеокарты и сети. Оно абстрагирует физическое устройство, предоставляя программам единый интерфейс для взаимодействия.
- **Файловая система**: Ядро обеспечивает работу с файловой системой, управление доступом к файлам и их чтение и запись. Оно также поддерживает различные типы файловых систем, такие как ext4, NTFS, FAT, и другие.
- **Безопасность и управление правами доступа**: Ядро контролирует доступ к ресурсам, обеспечивая безопасность данных и ресурсов от несанкционированного доступа. Оно определяет, какие процессы или пользователи имеют доступ к определённым ресурсам и файлам.
- **Сетевое взаимодействие**: Ядро управляет сетевыми подключениями, протоколами и передачей данных, обеспечивая взаимодействие с другими устройствами и сетями. Оно поддерживает TCP/IP и другие сетевые протоколы.
## Виды ядер
- **Монолитное ядро**: Включает основные функции в одном модуле. Пример — ядро Linux, в котором все основные компоненты, такие как управление памятью и устройствами, работают в одном пространстве.
- **Микроядро**: Имеет минимальную функциональность, включая только базовые задачи, такие как управление памятью и процессами. Все остальные компоненты работают как независимые модули. Пример — микроядро Minix или Mach.
- **Гибридное ядро**: Комбинирует черты монолитного и микроядра. Пример — ядро Windows NT, которое содержит части, работающие в разных режимах.
Ядро — это фундамент операционной системы, отвечающий за стабильность и производительность системы.
https://serverspace.uz/support/glossary/cron.mdУзнайте, что такое Cron, основные команды для управления, примеры задания в cron, основные аспекты и особенности
Cron — это инструмент для автоматизации задач в Unix-подобных операционных системах, который обеспечивает автоматический запуск команд и скриптов по заданному графику. Его функциональность особенно востребована для выполнения регулярных действий, таких как создание резервных копий, очистка журналов, обновление информации и другие повторяющиеся задачи.
### Основные аспекты и особенности Cron:
- **Cron-таблицы (crontab)**: В системе cron существует специальный файл, называемый _crontab_ (от _cron table_), в котором хранятся задания и их расписание. Каждая строка в crontab-файле представляет собой задание с заданным временем выполнения и командой.
- **Синтаксис расписания**: Crontab использует пять полей для определения времени выполнения задания:
**Минута** (0–59)
- **Час** (0–23)
- **День месяца** (1–31)
- **Месяц** (1–12)
- **День недели** (0–7), где 0 и 7 обозначают воскресенье.
Например, 30 2 * * * указывает на выполнение задачи в 2:30 ночи каждый день.
- **Специальные выражения**: Помимо конкретных значений, crontab поддерживает специальные символы:
* — любое значение (например, любое время или любой день).
- , — несколько значений (например, 1,15 означает 1-е и 15-е число месяца).
- - — диапазон значений (например, 1-5 означает с понедельника по пятницу).
- / — интервал (например, */5 для запуска каждые 5 минут).
- **Редактирование Cron-заданий**: Пользователь может управлять своими задачами через команду crontab -e, которая открывает файл crontab в редакторе. Системные задачи находятся в файле /etc/crontab.
- **Запись вывода задач**: По умолчанию cron отправляет вывод выполнения задач на почту пользователю. Также можно перенаправить вывод в файл для ведения логов.
- **Cron и Anacron**: _Cron_ запускает задачи по точному расписанию, но если система была выключена, когда задача должна была быть выполнена, то она не будет выполнена. _Anacron_, в свою очередь, предназначен для выполнения периодических задач на системах, которые не всегда работают, например, на ноутбуках.
### Пример задания в crontab:
30 7 * * 1 /home/user/backup.sh
пример выполнит скрипт /home/user/backup.sh каждую неделю по понедельникам в 7:30 утра.
### Основные команды для управления Cron:
- crontab -e — редактировать crontab текущего пользователя.
- crontab -l — просмотреть текущие задания.
- crontab -r — удалить все задания.
Cron — незаменимый инструмент для автоматизации работы в Unix-системах, облегчая выполнение рутинных задач без вмешательства пользовател
https://serverspace.uz/support/glossary/simvolicheskaya-ssylka.mdУзнайте, что такое symlink или символическая ссылка, как создавать и удалять символическую ссылку
**Symlink** (symbolic link, или символическая ссылка) — это особый тип файла, используемый в Unix-подобных операционных системах для указания на другой файл или директорию. Символическая ссылка служит "ярлыком" на исходный файл, расположенный в другом месте файловой системы. Она не содержит данных самого файла, а лишь сохраняет путь к нему, что позволяет получить доступ к содержимому через альтернативный путь.
## Основные особенности Symlink
- **Путь к целевому файлу**: Символическая ссылка хранит путь к файлу или каталогу, который она представляет. Это может быть как абсолютный (полный), так и относительный путь. При доступе к символической ссылке система перенаправляет запрос на целевой файл.
- **Гибкость и удобство**: Symlink позволяет создать более простую организацию файлов. Например, можно создать одну символическую ссылку в удобном месте для доступа к файлу, который находится в глубокой директории.
- **Разница с жесткой ссылкой**: В отличие от символических ссылок, жесткие ссылки (hard links) представляют собой другую запись оригинального файла. Они непосредственно указывают на данные в файловой системе, а не на путь к ним. Если оригинальный файл удален, жесткая ссылка продолжает работать, а символическая ссылка "ломается" и указывает на несуществующий путь.
- **Использование для конфигурации и совместного доступа**: Symlink часто применяются для создания "коротких" путей к конфигурационным файлам, удобной организации файлов и каталогов. Они также полезны для совместного доступа, например, можно создать ссылку на библиотеку, чтобы несколько приложений могли использовать один и тот же файл.
## Создание Symlink
Символические ссылки создаются с помощью команды ln -s. Например, команда:
```
ln -s /original/path/to/file /path/to/symlink
```
создаст символическую ссылку /path/to/symlink, указывающую на файл /original/path/to/file.
Примеры использования: Ссылки широко используются для создания альтернативных точек доступа к файлам и каталогам. Это помогает при настройке системных конфигураций и упрощает управление файлами.
## Удаление Symlink
Удалить символическую ссылку можно с помощью команды rm, не затрагивая при этом оригинальный файл:
```
rm /path/to/symlink
```
Symlink — это полезный инструмент для гибкого управления файлами, создания простых путей к данным и организации структуры системы.
https://serverspace.uz/support/glossary/init-system.mdУзнайте, что такое Init System (система инициализации) и какие они существуют, для чего используются в серверных и десктопных версиях ОС
**Init System** (система инициализации) — это компонент операционной системы, который отвечает за запуск, управление и завершение процессов и сервисов в процессе загрузки системы. Он инициализирует и следит за состоянием всех необходимых для работы ОС служб, таких как сеть, файловая система и другие системные процессы.
**Примеры init-систем:**
- **Systemd** — современная, многофункциональная система, популярная в Linux.
- **SysVinit** — более старый метод, основанный на скриптах.
- **Upstart** — система, использующая события для управления процессами.
Init-системы широко используются в серверных и десктопных версиях операционных систем для эффективного управления запуском служб.
https://serverspace.uz/support/glossary/pid.mdУзнайте, что такое PID (идентификатор процесса), для чего он нужен, область применения и примеры
**PID (идентификатор процесса)** — это числовой код, который операционная система назначает каждому активному процессу. Он необходим для эффективного управления процессами и мониторинга их состояния.
## Области применения PID
- **Операционные системы**: В таких системах, как Windows, Linux и macOS, PID служит для уникальной идентификации каждого процесса.
- **Управление процессами**: В многозадачных ОС множество процессов могут работать параллельно. PID помогает операционной системе различать их друг от друга.
- **Инструменты и утилиты**: Для администрирования и контроля процессов часто используют такие программы, как top или ps в Linux, а также Диспетчер задач в Windows, где отображается информация о PID процессов.
## Зачем нужен PID
- **Контроль процессов**: Операционная система использует PID для завершения процессов (например, с помощью команды kill в Linux) или изменения их приоритета.
- **Мониторинг**: PID помогает отслеживать ресурсы, которые потребляют процессы, их состояние, время работы и другие параметры.
- **Отладка и диагностика**: Программисты и системные администраторы могут использовать PID для поиска и устранения неисправностей, в том числе через логирование.
## Примеры
Linux: Команда ps aux выводит список всех активных процессов, где для каждого процесса указан его PID:
```
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169112 7524 ? Ss Oct06 0:57 /sbin/init
user 2223 1.0 2.5 400000 35000 pts/1 S+ 12:40 1:20 /usr/bin/python3
```
Windows: В Диспетчере задач можно увидеть PID каждого процесса, что позволяет, например, определить, какой процесс стал причиной сбоя приложения.
## Завершение процесса
Для завершения процесса с PID 1234 в Linux можно использовать команду:
```
kill 1234
```
## Дополнительная информация
Обычно операционная система начинает присваивать PID с 1 (для процесса init или systemd) и увеличивает их с каждым новым процессом. В некоторых случаях PID может быть перераспределен, если процесс завершился, а затем был вновь запущен.
https://serverspace.uz/support/glossary/kontekstnyj-pereklyuchatel.mdУзнайте, что такое контекстный переключатель, как он работает, зачем нужен, влияет на производительность и примеры контекстных переключателей
**Контекстный переключатель** (Context Switch) — это процесс сохранения состояния текущего выполняющегося процесса и загрузки состояния другого процесса в многозадачной операционной системе. Он позволяет системе переключаться между различными процессами или потоками, обеспечивая иллюзию их параллельного выполнения.
## Как работает контекстный переключатель:
Когда операционная система решает, что текущий процесс должен уступить выполнение другому процессу (например, из-за приоритетов, событий ввода-вывода или истечения времени работы), она выполняет несколько шагов:
- **Сохранение состояния текущего процесса**: Операционная система сохраняет контекст выполнения текущего процесса — это включает в себя его регистры, указатели стека, данные о текущем состоянии программы (например, счетчик команд, который указывает, какую инструкцию процесс должен выполнить следующим).
- **Загрузка состояния нового процесса**: Операционная система загружает контекст следующего процесса, включая его регистры, указатель стека и другие данные, необходимые для продолжения его выполнения с того места, где он был остановлен.
- **Передача управления процессу**: После загрузки контекста нового процесса управление передается ему, и он продолжает выполнение.
## Зачем нужен контекстный переключатель:
- **Многозадачность**: Контекстный переключатель позволяет операционной системе эффективно управлять многозадачностью. Это дает возможность нескольким процессам или потокам работать на одном процессоре, переключаясь между ними, создавая впечатление, что все они выполняются одновременно.
- **Использование процессора**: С помощью переключения контекста операционная система может использовать процессорное время более эффективно, распределяя его между несколькими задачами.
- **Реализация приоритетов**: Контекстный переключатель позволяет операционной системе уделять внимание более важным или высокоприоритетным задачам, временно приостанавливая выполнение менее приоритетных.
## Влияние на производительность:
- Контекстный переключатель сам по себе занимает время, так как необходимо сохранить и восстановить состояние процессов. Поэтому частые переключения могут снижать общую производительность системы.
- В операционных системах с большим числом процессов контекстные переключения могут становиться ощутимыми для производительности, особенно если процессы требуют интенсивного использования процессора.
## Пример:
- **Linux**: В Linux при многозадачности система регулярно переключает контексты процессов для управления их выполнением. Например, когда один процесс ожидает данных с диска, система может переключиться на другой процесс, пока первый не завершит операцию ввода/вывода.
- **Windows**: В Windows контекстные переключения происходят в случае многозадачности, когда операционная система распределяет ресурсы между различными приложениями, чтобы они могли работать одновременно.
Контекстный переключатель является важным элементом многозадачности и многопоточности в операционных системах, обеспечивая эффективное распределение ресурсов и управление процессами.
https://serverspace.uz/support/glossary/pochtovyj-server.mdУзнайте, что такое почтовый сервер, их виды и примеры использования
Почтовый сервер — это специализированное программное обеспечение, которое обрабатывает отправку, получение и хранение электронных сообщений (e-mail). Обычно почтовый сервер функционирует на базе подключенного к интернету компьютера (сервера). Основные функции почтового сервера включают пересылку, маршрутизацию и хранение электронной почты, а также обеспечение безопасности и управление доступом.
## Виды почтовых серверов
Почтовые серверы работают на базе нескольких протоколов интернета, среди которых наиболее распространены:
- SMTP (Simple Mail Transfer Protocol) — используется для отправки и пересылки электронной почты.
- POP3 (Post Office Protocol, version 3) — используется для загрузки электронной почты с сервера на клиентское устройство, обычно с последующим удалением писем с сервера.
- IMAP (Internet Message Access Protocol) — позволяет пользователям работать с электронной почтой на сервере, сохраняя письма на сервере и синхронизируя их между различными устройствами.
## Роли почтовых серверов
На практике почтовый сервер выполняет несколько разных ролей:
SMTP-сервер отправки: принимает исходящие сообщения от пользователей и пересылает их получателям через интернет.
POP3 или IMAP-сервер: позволяет пользователям получать свои сообщения.
## Примеры
Примеры популярных программных пакетов почтовых серверов включают:
- Microsoft Exchange— широко используемое решение, особенно в корпоративных средах, предоставляющее функции интеграции с другими сервисами Microsoft.
- Postfix и Exim — распространённые почтовые серверы на основе открытого исходного кода, часто используемые в UNIX и Linux системах.
- Sendmail — один из самых ранних и стабильных почтовых серверов, также на базе UNIX и Linux.
- Dovecot или Courier — обычно используются в качестве IMAP и POP3 серверов для получения и управления электронной почтой.
Настройка и управление почтовым сервером требуют определённых знаний и навыков, поэтому администрирование таких систем часто выполняется квалифицированными специалистами.
https://serverspace.uz/support/glossary/lemp.mdУзнайте, что такое LEMP, его особенности и различия от LAMP
LEMP — это акроним, используемый для обозначения набора программного обеспечения, часто применяемого для создания и запуска веб-приложений и веб-сайтов. В этот технологический стек входят:
1. **Linux** — операционная система. Это базис, на котором работают все остальные составляющие.
2. **Nginx** — веб-сервер, также произносится как "Engine-X". Nginx используется для обработки HTTP-запросов и распределения нагрузки. Он известен высокой производительностью и низким потреблением ресурсов.
3. **MySQL/MariaDB** — система управления базами данных. MySQL и её форк MariaDB широко применяются для хранения данных, таких как информация о пользователях и контент.
4. **PHP** является серверным языком программирования, предназначенным для создания динамического контента и взаимодействия с базами данных.
При использовании LEMP стек веб-приложение разворачивается на сервере с операционной системой Linux, применяет Nginx для обработки пользовательских запросов, взаимодействует с базой данных через MySQL или MariaDB и динамически генерирует контент с помощью PHP.
LEMP-стек получил широкое признание благодаря своей высокой производительности и эффективности при работе с веб-приложениями.
- Linux был представлен Линусом Торвальдсом в 1991 году.
- Nginx, разработанный Игорем Сысоевым, увидел свет в 2004 году и быстро приобрел популярность благодаря своей способности обрабатывать большое количество одновременных соединений.
- MySQL появилась в 1995 году благодаря шведской компании MySQL AB, а MariaDB, являющаяся форком MySQL, была создана в 2009 году сообществом разработчиков.
- PHP был разработан Расмусом Лердорфом в 1994 году как набор инструментов для обработки HTML-форм и с тех пор стал одним из самых востребованных серверных языков программирования.
## Основное применение
**LEMP**-стек используется для создания и развертывания веб-приложений различного масштаба и назначения. Примеры его использования включают:
- Системы управления контентом (CMS): такие как WordPress, Joomla, Drupal.
- Платформы электронной коммерции: для создания и управления онлайн-магазинами и платежными системами.
- Социальные сети и блоги: сайты для создания и управления пользовательским контентом.
- Форумы и доски объявлений: платформы для общения и обмена информацией.
- Веб-приложения и API: разнообразные онлайн-сервисы и интерфейсы для интеграции с другими системами.
## Примеры применения
1. **WordPress**: одна из самых популярных систем управления контентом, которая может работать на LEMP-стеке.
2. **Magento**: платформа для электронной коммерции, развертываемая на LEMP для повышения производительности.
3. **MediaWiki**: программное обеспечение для вики-сайтов, таких как Википедия, также может функционировать на LEMP.
## Различия LAMP и LEMP
LAMP и LEMP — это две популярные сборки программного обеспечения, применяемые для разработки и развертывания веб-приложений. Основное различие между ними заключается в выборе веб-сервера. Рассмотрим основные различия и особенности каждого из них.
### Сравнение и выбор
**Производительность**:
- LEMP часто выбирают для высоконагруженных сайтов и веб-приложений благодаря его лучшей производительности и меньшим требованиям к ресурсам по сравнению с Apache.
**Конфигурация и удобство:**
- Apache предлагает большую гибкость благодаря широкому выбору модулей и более простым конфигурационным файлам.
- Nginx может показаться сложнее в настройке, особенно для тех, кто знаком только с Apache, но его базовые настройки часто оказываются проще и удобнее.
**Используемые ресурсы:**
- Nginx обычно потребляет меньше оперативной памяти и процессорного времени, что делает его подходящим для серверов с ограниченными ресурсами.
**Применение:**
- **LAMP** более универсален для разнообразных сценариев, особенно когда необходимо поддерживать старое ПО, требующее Apache.
- **LEMP** идеально подходит для современных высоконагруженных приложений, нуждающихся в максимальной производительности.
Таким образом, оба стека, **LAMP** и **LEMP**, предлагают мощные и надежные решения для разработки и развертывания веб-приложений. Выбор между ними зависит от специфических требований вашего проекта, уровня нагрузки на сервер и предпочтений в конфигурации и управлении сервером.
## LEMP и Serverspace
В [нашей базе знаний](https://serverspace.ru/support/help/category/lamp-lemp/) вы можете найти большое количество инструкций по LAMP и его установке.
Например инструкций по установке на различные системы: [на Ubuntu](https://serverspace.ru/support/help/ustanovka-linuxnginxmysqlphp-na-ubuntu-20-04/) и [на CentOS](https://serverspace.ru/support/help/ustanovka-lemp-steka-na-centos-7/).
https://serverspace.uz/support/glossary/sftp.mdУзнайте, что такое SFTP, об его применение и особенностях, недостатках
SFTP (SSH File Transfer Protocol) представляет собой протокол, предназначенный для безопасной передачи файлов между клиентом и сервером. Он использует шифрование SSH (Secure Shell), чтобы обеспечить безопасность данных во время их передачи. SFTP объединяет функции традиционной передачи файлов, как у FTP, с мощной защитой информации.
## Применениe SFTP
Этот протокол широко используется в различных сферах, таких как:
1. Корпоративные сети: Обеспечивает безопасный обмен файлами между различными офисами или филиалами компании.
2. Веб-хостинг: Используется для безопасного размещения веб-страниц и других ресурсов на серверах.
3. Архивирование и резервное копирование: Обеспечивает безопасное хранение данных.
4. Электронная коммерция: Пригоден для безопасной передачи финансовых данных и информации о клиентах.
5. Разработка ПО: Удобен для обмена большими файлами исходного кода и бинарными файлами между командами разработчиков.
## Особенности SFTP
1. Безопасность: Шифрует данные, обеспечивая их конфиденциальность и целостность.
2. Авторизация: Поддерживает различные методы аутентификации, включая публичные ключи и пароли.
3. Целостность данных: Использует хеширование и контрольные суммы для проверки целостности переданных файлов.
4. Управление правами доступа: Позволяет настраивать права доступа на уровне серверов.
5. Сессии и каналы: Ведение нескольких сессий SFTP через один SSH-канал.
6. Совместимость: Поддерживается на разных операционных системах и множеством программ для передачи файлов, таких как WinSCP и FileZilla.
## Преимущества SFTP
1. Высокая безопасность: Благодаря шифрованию данных и аутентификации SFTP является более безопасным по сравнению с традиционным FTP.
2. Единый канал: Работает через один канал связи (чаще всего порт 22), что упрощает настройку firewall и NAT.
3. Гибкость в аутентификации: Поддерживает разные методы аутентификации.
4. Совместимость с SSH: Использует ту же инфраструктуру безопасности, что и SSH, что упрощает администрирование.
5. Переносимость: Поддерживается множеством операционных систем и клиентов.
## Недостатки SFTP
1. Производительность: Из-за шифрования и дешифрования данных производительность может быть ниже по сравнению с незашифрованными протоколами, такими как FTP.
2. Сложность настройки: Требует более сложной конфигурации как сервера, так и клиента для обеспечения безопасности.
3. Меньшая поддержка в браузерах: В отличие от протоколов HTTP/S, SFTP чаще всего требует специализированного программного обеспечения для передачи файлов.
## Заключение
SFTP — мощный и безопасный протокол передачи файлов, подходящий для широкого спектра задач. Он обеспечивает высокий уровень безопасности и конфиденциальности, но требует дополнительных ресурсов и знаний для правильной настройки и использования. Протокол особенно полезен для организаций, которые ставят в приоритет защиту данных.
https://serverspace.uz/support/glossary/swift.mdУзнайте, что такое SWIFT, его преимущества и недостатки, основные характеристики и применение
SWIFT, также известный как OpenStack Swift, представляет собой распределённую систему хранения объектов и является одним из ключевых компонентов платформы OpenStack. Данная система предназначена для масштабируемого и надежного хранения больших объёмов неструктурированных данных. Рассмотрим основные аспекты SWIFT:
## Основные характеристики
**Масштабируемость:**
- SWIFT создан с учётом возможности лёгкого горизонтального масштабирования. Это означает, что при росте объёмов данных можно добавить новые серверы, не подвергая систему перебоям.
**Устойчивость архитектуры:**
- Данные сохраняются в нескольких копиях на различных узлах кластера, что обеспечивает высокую устойчивость системы к сбоям. Если один узел становится недоступен, данные остаются доступны на других узлах.
**Отказоустойчивость:**
- Система автоматически обрабатывает репликацию данных и восстанавливает их после сбоев, что делает её особенно надёжной.
**Управление доступом:**
-SWIFT поддерживает различные механизмы контроля доступа, включая аутентификацию по ключам и интеграцию с внешними системами аутентификации.
## Основные компоненты SWIFT
**Прокси-сервер:**
- Он обрабатывает запросы от клиентов и направляет их к соответствующим хранилищам данных. Также выполняет функции балансировки нагрузки и аутентификации пользователей.
**Account Server, Container Server и Object Server:**
- Эти серверы управляют метаданными учетных записей, контейнеров и объектов соответственно, и являются теми компонентами, где непосредственно хранятся данные.
**Кольцо (Ring):**
- Структура данных, управляющая распределением объектов в кластере. Обеспечивает балансировку нагрузки и репликацию, гарантируя, что каждый объект хранится на нескольких физических узлах.
**Репликатор:**
- Обеспечивает согласованность данных, проверяя актуальность и обновление всех копий объекта.
## Применение
SWIFT можно использовать для различных задач, таких как:
- Архивирование и резервное копирование данных.
- Хранение больших объёмов мультимедийных файлов (видео, аудио, изображения).
- Хранение журналов и данных мониторинга.
- Долгосрочное хранение данных с редким доступом.
## Преимущества и недостатки
**Преимущества:**
- Высокая масштабируемость.
- Устойчивость к отказам и автоматическое восстановление данных.
- Независимость выделения ресурса от архитектуры приложения (RESTful API).
- Гибкость и способность интеграции с другими компонентами OpenStack.
**Недостатки:**
- Сложность настройки и управления для пользователей без опыта.
- Значительные требования к аппаратной части при больших масштабах хранилища.
OpenStack Swift предлагается как мощное и надёжное решение для облачного хранения данных, особенно подходящее для организаций, которым требуются высокая масштабируемость и устойчивость системы.
## SWIFT и Serverspace
В нашей базе знаний находится множество инструкций по SWIFT: от "[Подключение к облачному хранилищу по Swift API",](https://serverspace.ru/support/help/podklyuchenie-cherez-swift-api/) до "[Как подключиться к Объектному Хранилищу SWIFT с помощью CLI на Ubuntu?"](https://serverspace.ru/support/help/kak-podklyuchit-obektnoe-hranilishhe-swift-s-pomoshhyu-cli-na-ubuntu/)
https://serverspace.uz/support/glossary/oracle-linux.mdУзнайте, что такое Oracle Linux, его ключевые особенности и аспекты
Oracle Linux — это операционная система с открытым исходным кодом, разработанная и распространяемая компанией Oracle Corporation. Эта ОС построена на основе дистрибутива Red Hat Enterprise Linux (RHEL) и полностью совместима с ним на уровне API и ABI, что облегчает перенос приложений между этими системами. Oracle Linux предлагает дополнительные инструменты и усовершенствования, направленные на повышение производительности, безопасности и управляемости.
## Ключевые особенности Oracle Linux
- **Совместимость с RHEL**: Приложения и драйверы, созданные для Red Hat Enterprise Linux, будут работать на Oracle Linux без необходимости внесения изменений.
- **Безопасность и обновления**: Oracle регулярно предоставляет обновления безопасности и исправления, что делает систему надежной и защищенной.
- **Unbreakable Enterprise Kernel (UEK)**: Специализированное ядро от Oracle, оптимизирующее производительность и масштабируемость. Администраторы могут выбрать между стандартным ядром Red Hat Compatible Kernel (RHCK) и UEK.
- **Ksplice**: Технология, позволяющая применять обновления ядра без перезагрузки системы, что существенно увеличивает время безотказной работы.
- **Поддержка и интеграция с продуктами Oracle:** Oracle Linux идеально подходит для работы с программным обеспечением Oracle, таким как базы данных Oracle, Oracle WebLogic, Oracle Cloud и другие корпоративные решения.
- **Oracle Cloud Infrastructure (OCI)**: Хорошо интегрирован с облачными решениями Oracle, обеспечивая высокую производительность и надежность при работе в облаке.
- **Бесплатное использование и поддержка**: Oracle Linux доступен для бесплатного скачивания и использования. Пользователи могут приобрести подписку на техподдержку от компании Oracle по желанию.
- **Преимущества контейнеризации и виртуализации**: Oracle Linux превосходно поддерживает контейнерные технологии, такие как Docker и Kubernetes, а также средства виртуализации, такие как Oracle VM и KVM.
Oracle Linux является популярным выбором среди предприятий, которые используют продукты Oracle и нуждаются в высокопроизводительной, надежной и поддерживаемой операционной системе для своих самых важных приложений.
## Дополнительные аспекты
Рассмотрим несколько дополнительных аспектов, которые делают Oracle Linux уникальной и востребованной системой:
- **Инструменты управления и мониторинга**: Oracle Linux предоставляет продвинутые инструменты для управления серверами и мониторинга их состояния. Например, Oracle Enterprise Manager позволяет централизованно управлять и контролировать различные аспекты инфраструктуры, что упрощает администрирование.
- **Совместимость с контейнерами**: Oracle Linux полностью поддерживает контейнерные технологии, такие как Docker и Kubernetes, что позволяет разработчикам создавать, разворачивать и управлять контейнеризованными приложениями с высокой эффективностью. Это упрощает разработку, тестирование и развертывание приложений в различных средах.
- **Обновления и управление патчами**: Oracle Linux оснащен удобными средствами для управления обновлениями и патчами, что позволяет поддерживать системы в актуальном и безопасном состоянии. Использование сервисов, таких как Oracle Ksplice, позволяет применять обновления ядра без необходимости перезагрузки системы.
- **Техподдержка и сервисы**: Компания Oracle предлагает широкий спектр профессиональных услуг и консультаций для пользователей Oracle Linux. Это включает подписки на техподдержку, обучение и сертификацию, а также помощь в планировании и развертывании ИТ-решений на базе Oracle Linux.
- **Масштабируемость и производительность**: Благодаря высокопроизводительным ядрам и оптимизированной архитектуре, Oracle Linux обеспечивает превосходную масштабируемость и производительность, что делает его идеальным выбором для крупных корпоративных приложений и загрузок.
- **Интеграция с облачными технологиями**: Oracle Linux полностью интегрирован с Oracle Cloud, что позволяет без труда переносить рабочие нагрузки между локальными серверами и облачной инфраструктурой. Это обеспечивает гибкость и надежность при разработке и развертывании облачных приложений.
- **Поддержка открытых стандартов и совместимость**: Oracle Linux поддерживает широкий спектр открытых стандартов и совместим с множеством приложений и сервисов от сторонних производителей, что делает его универсальной платформой для различных ИТ-экосистем.
- **Сообщество и документация**: Oracle Linux поддерживается активным сообществом пользователей и разработчиков, а также обширной документацией и ресурсами для обучения. Это упрощает решение проблем и ускоряет процесс освоения системы.
## Oracle Linux и Serverspace
[В панели управления Serverspace](https://my.serverspace.ru/vstack/servers/) вы можете арендовать сервер [с ОС Oracle Linux](https://serverspace.ru/services/vps-server/oracle/):
https://serverspace.uz/support/glossary/abi.mdУзнайте, что такое ABI, его основные компоненты, для чего он нужен и его значение для разработчиков
ABI (**Application Binary Interface)** — это интерфейс, который связывает два бинарных модуля программы на уровне машинного кода. ABI задает низкоуровневые аспекты взаимодействия между элементами программного обеспечения, с акцентом на выполнение инструкций процессора.
## Основные компоненты ABI
- **Calling Convention** (Конвенция вызова): Устанавливает правила передачи параметров в функции, возврата результатов, распределения регистров и ответственности за их сохранение.
- **Binary Format** (Формат бинарных файлов): Определяет стандарты хранения и организации исполняемых и объектных файлов, библиотек, таких как ELF на Unix-подобных системах или PE на Windows.
- **System Calls** (Системные вызовы): Включает набор интерфейсов для взаимодействия с операционной системой.
- **Data Representation** (Представление данных): Задает формат и выравнивание данных, таких как числа с плавающей запятой, массивы и структуры в памяти.
## Зачем нужен ABI?
**Совместимость**: Обеспечивает совместимость между различными программными модулями, позволяя использовать библиотеки скомпилированные разными компиляторами.
**Переиспользование кода**: Дает возможность библиотекам работать с различными приложениями, независимо от компилятора.
**Оптимизация**: Стандартизация ABI позволяет компиляторам производить более оптимизированный код, точно зная, как вызываются функции и передаются данные.
**Пример:**
Если у вас есть скомпилированная библиотека на языке C, она может использоваться программой на C++ или другом языке, компилятор которого поддерживает соответствующий ABI. Например, на платформе x86_64 для Unix-подобных систем является стандартом System V ABI.
## Значение для разработчиков
Разработчикам следует учитывать важность ABI, особенно при создании библиотек и модулей для широкого использования. Несовместимость ABI между версиями может вызывать ошибки и снижать стабильность работы программного обеспечения.
ABI — ключевой элемент в экосистеме ПО, обеспечивая взаимодействие и совместимость различных программных компонентов на низкоуровневом уровне.
https://serverspace.uz/support/glossary/squid.mdУзнайте, что такое Squid, его основные функции, применение и примеры использования
Squid — это мощное программное обеспечение для кэширования и прокси-сервера, широко используемое для оптимизации веб-доступа и повышения эффективности использования сетевых ресурсов. Оно поддерживает различные протоколы, такие как HTTP, HTTPS, FTP и другие.
## Основные функции Squid
- **Кэширование веб-контента**: Squid хранит копии посещенных веб-страниц, что значительно сокращает время загрузки при повторных запросах тех же страниц.
- **Фильтрация контента**: Squid может блокировать доступ к определенным веб-сайтам или типам контента.
- **Управление пропускной способностью**: Squid позволяет контролировать объем трафика, проходящего через сервер, что способствует более рациональному использованию каналов связи.
- **Аутентификация пользователей**: Squid может интегрироваться с различными системами аутентификации для управления правами доступа пользователей.
- **Балансировка нагрузки**: Squid распределяет трафик между несколькими серверами для обеспечения лучшей производительности и отказоустойчивости.
## Применение Squid
- **Организации и корпоративные сети**: Для ускорения загрузки веб-страниц и экономии полосы пропускания.
- **Интернет-провайдеры**: Для уменьшения нагрузки на внешние каналы связи и повышения скорости доступа к часто посещаемым ресурсам.
- **Учебные заведения**: Для контроля доступа к интернет-ресурсам и экономии трафика.
## Примеры использования
- **Кэширование**: Веб-страницы, загружаемые через Squid, сохраняются на сервере. Если другой пользователь запрашивает ту же страницу, она загружается из кэша, что значительно ускоряет процесс.
- **Фильтрация контента**: В учебных заведениях или офисах Squid можно настроить для блокировки ненужных веб-сайтов.
- **Контроль доступа**: Squid позволяет администраторам сети требовать от пользователей авторизации, что помогает отслеживать и ограничивать доступ к интернет-ресурсам.
Squid написан на языках программирования C и C++ и распространяется под лицензией GNU General Public License, что делает его доступным и гибким решением для разнообразных задач в сфере сетевой инфраструктуры.
https://serverspace.uz/support/glossary/http.mdУзнайте, что за протокол HTTP и как он работает
HTTP, или HyperText Transfer Protocol, представляет собой основной протокол для передачи данных в сетях Интернет. Он служит фундаментом для взаимодействия веб-браузеров и веб-серверов, позволяя обмениваться информацией в виде веб-страниц. Разработка HTTP началась в конце 1980-х годов, и первая версия протокола была представлена в начале 1990-х.
## Основная идея
Основная идея HTTP заключается в запросно-ответной модели: клиент (обычно веб-браузер) отправляет запрос, а сервер отвечает соответствующими данными. Запросы и ответы состоят из строк текста, включая заголовки и, при необходимости, тело сообщения. Важным элементом HTTP является метод запроса, который определяет действие, которое нужно выполнить: GET, POST, PUT, DELETE и другие.
GET-запросы используются для получения данных, например, веб-страниц или ресурсов на сервере. POST-запросы применяются для отправки данных на сервер, например, заполнение форм. PUT-запросы позволяют загружать или заменять ресурсы, а DELETE — удалять их.
## Как HTTP работает
HTTP использует текстовый формат сообщений, что делает его простым для понимания и анализа. Современные версии протокола, такие как HTTP/2, включают улучшения по части производительности и безопасности, что делает обмен данными быстрее и надежнее.
Кроме текстовых сообщений, HTTP поддерживает использование кодировок и форматов данных, таких как JSON и XML, что делает его гибким для различных типов приложений. Протокол также может работать поверх шифрованного канала SSL/TLS, известного как HTTPS, что обеспечивает защиту данных от перехвата и подмены.
С течением времени HTTP претерпел множество изменений и улучшений, но его основная концепция и принципы работы остались неизменными, обеспечивая надежную и эффективную передачу данных в глобальной сети Интернет.
https://serverspace.uz/support/glossary/samba.mdУзнайте, что такое Samba, ее основные особенности и пример использования
Samba — это открытая реализация протокола SMB/CIFS (Server Message Block/Common Internet File System), который широко используется для предоставления общего доступа к файлам и принтерам в сетях, преимущественно с участием операционных систем Windows. Сама по себе Samba позволяет компьютерам на базе Linux и Unix полноценно обмениваться файлами и другими ресурсами с машинами под управлением Windows.
## Основные возможности и особенности Samba
- **Совместное использование файлов и принтеров**. Через Samba компьютеры с Windows и другие устройства, поддерживающие SMB/CIFS, могут иметь доступ к файлам и принтерам, размещенным на серверах Linux или Unix.
- **Управление правами доступа**. Администраторы могут конфигурировать права доступа к общим ресурсам для различных пользователей и групп, предоставляя или ограничивая доступ в зависимости от необходимости.
- **Аутентификация пользователей**. Samba поддерживает различные методы аутентификации, включая локальные файлы паролей, LDAP, а также интеграцию с контроллерами домена Windows (Active Directory).
- **Интеграция в окружение Windows**. С помощью Samba возможно интегрировать Linux и Unix системы в инфраструктуру Windows, поддерживая работу в доменах Active Directory, назначение ролей контроллера домена и включение в существующие домены Windows.
- **Поддержка протоколов**. Samba работает с различными версиями протокола SMB, включая SMB1, SMB2 и SMB3, обеспечивая совместимость как с новыми, так и с устаревшими системами.
- Для настройки Samba необходимо редактировать конфигурационный файл, который обычно располагается по пути `/etc/samba/smb.conf`. В этом файле задаются основные параметры, такие как пути к общим ресурсам, права доступа пользователей, параметры аутентификации и другие важные настройки. После внесения изменений в конфигурационный файл нужно запустить или перезапустить службы Samba, чтобы изменения вступили в силу. Как правило, это службы `smbd` и `nmbd`.
## Пример
Пример простой секции конфигурационного файла smb.conf:
```
ini
path = /srv/samba/shared
read only = no
browsable = yes
guest ok = yes
```
Данный пример создает общий ресурс с именем `shared`, расположенный в директории `**/srv/samba/shared**`, который доступен для записи и чтения любому пользователю.
Samba — это мощный инструмент для создания единой сетевой инфраструктуры, объединяющей различные операционные системы. Это упрощает работу по совместному использованию ресурсов в гетерогенных сетях, где могут быть задействованы как Linux/Unix, так и Windows машины.
https://serverspace.uz/support/glossary/drupal.mdУзнайте, что такое Drupal, его преимущества и недостатки, примеры применения
Drupal — это функциональная и адаптивная система управления контентом (CMS) с открытым исходным кодом, широко применяемая для разработки и администрирования сайтов разного уровня сложности. Написанная на языке программирования PHP, она распространяется под лицензией GNU General Public License. Вот несколько основных характеристик и возможностей Drupal:
## Ключевые особенности
**Модульная структура:**
Drupal славится своей возможностью модульного расширения. Базовые функции могут быть дополнены и изменены с помощью множества доступных модулей. Существует тысячи модулей, которые обеспечивают разнообразные функции, от SEO до усиленной защиты.
**Высокая гибкость:**
Drupal позволяет создавать различные типы веб-проектов: от простых блогов до крупных корпоративных и социальных платформ. Возможности настройки практически безграничны.
**Активное сообщество:**
Одним из важнейших преимуществ Drupal является его динамичное и большое сообщество. Тысячи разработчиков, дизайнеров и пользователей регулярно вносят вклад в развитие платформы, создают новые модули и темы, а также предлагают поддержку.
**Уделение особого внимания безопасности:**
Drupal известно своими высокими стандартами безопасности. Сайты на этой платформе защищены от множества угроз, регулярно выпускаются обновления безопасности.
Поддержка мультиязычности:
Drupal изначально поддерживает многоязычность, что позволяет легко создавать сайты на нескольких языках. Это особенно полезно для глобальных проектов.
**Система менеджмента юзеров:**
Drupal предлагает обширные возможности для управления пользователями, включая администрирование ролей, прав доступа и групп пользователей.
## Преимущества
**Бесплатный открытый исходный код:**
Возможность использования, изменения и распространения Drupal без необходимости уплаты лицензий.
**Расширяемость:**
Благодаря множеству доступных модулей и тем, Drupal можно легко подстроить под конкретные нужды проекта.
**Отличная масштабируемость:**
Подходит для создания как небольших сайтов, так и крупных корпоративных порталов с высокой посещаемостью.
**Оптимизированность для SEO:**
Drupal предоставляет много инструментов для улучшения видимости сайтов в поисковых системах.
## Недостатки
**Крутая кривая обучения:**
Освоение Drupal может быть сложным для новичков, особенно при отсутствии опыта работы с PHP или другими CMS.
**Высокая требовательность к ресурсам:**
Сложные и масштабные проекты на Drupal могут требовать больше серверных ресурсов по сравнению с некоторыми другими CMS.
## Версии
На текущий момент последней стабильной версией является Drupal 9, которая включает в себя множество улучшений в производительности, управлении медиа и поддержке API.
## Применение
Drupal применяется для разработки различных типов веб-ресурсов, таких как:
- Внутренние корпоративные порталы
- Официальные правительственные сайты
- Образовательные онлайн-платформы
- Соцсети и сообщества в интернете
- Маркетплейсы
- Персональные блоги и страницы
Drupal — это серьезная и адаптируемая платформа для создания и управления веб-сайтами, подходящая как для простых, так и для самых сложных проектов. Она предлагает богатый функционал, активное сообщество и высокий уровень безопасности, что делает её популярным выбором среди профессиональных разработчиков и крупных компаний
https://serverspace.uz/support/glossary/cname.mdУзнайте, что такое CNAME-записи, их ключевые аспекты и особенности
CNAME (Canonical Name) представляет собой разновидность записи в системе DNS (Domain Name System), предназначенную для перенаправления одного доменного имени на другое. Эта запись позволяет указать, что одно доменное имя является псевдонимом другого, основного домена.
## Ключевые аспекты и применение CNAME-записей
**Перенаправление запросов:** С помощью CNAME-записей можно направить запросы с одного доменного имени на другое. К примеру, если у вас есть сайт с несколькими поддоменами (www.example.com, blog.example.com), вы можете использовать CNAME-запись для их перенаправления на один основной домен (example.com).
**Упрощение администрирования:** CNAME-записи делают управление доменными именами более удобным. Вместо настройки отдельных записей типа A (Address) для каждого поддомена, можно создать CNAME-запись, указывающую на одно каноническое имя.
**Перенос сервисов:** При необходимости переноса сайта на другой сервер или хостинг, CNAME-записи значительно упрощают этот процесс. Достаточно изменить целевой домен в CNAME-записи, и все запросы автоматически будут перенаправлены на новый сервер.
**Настройка поддоменов:** CNAME-записи часто используются для создания поддоменов. Например, для создания поддомена shop.example.com, указывающего на другой домен, например, store.example.com, можно использовать CNAME-запись.
## Пример CNAME-записи
```
www.example.com. IN CNAME example.com.
```
В этом примере все запросы к www.example.com будут перенаправляться на example.com.
## Ограничения и рекомендации
**Корневые домены:** CNAME-записи нельзя использовать для корневых доменов (например, example.com); они могут применяться только для поддоменов (например, www.example.com или mail.example.com).
**Замена записей типа A:** Как правило, CNAME-запись заменяет записи типа A (Address), так как она указывает на другое доменное имя, которое затем разрешается в IP-адрес.
**Несовместимость с другими типами записей:** Не рекомендуется совмещать CNAME-записи с другими типами записей для одного и того же доменного имени. Например, не должно быть одновременно CNAME-записи и записи типа A для одного имени.
**Заключение:**
CNAME-записи являются важным и удобным инструментом для управления DNS и перенаправления доменных имен. Они особенно полезны для создания псевдонимов и управления поддоменами, обеспечивая гибкость и удобство администрирования сетевых ресурсов.
https://serverspace.uz/support/glossary/softaculus.mdУзнайте, что такое Sofctaculus и его ключевые особенности
Softaculus — это популярный автоустановщик веб-приложений, который облегчает процесс установки различных программ и скриптов на веб-серверах. Он доступен в многочисленных панелях управления хостингом, таких как cPanel, Plesk, DirectAdmin и других.
Вот некоторые ключевые особенности и преимущества Softaculus:
Обширный ассортимент приложений: Softaculus предлагает свыше 450 разнообразных веб-приложений, включая известные CMS (системы управления контентом) такие как WordPress, Joomla, Drupal, а также форумы, платформы для блогов, интернет-магазины и многое другое.
- **Автоматизация установки**: Softaculus автоматизирует множество задач, таких как создание базы данных, конфигурация файлов и т.д. Пользователи могут установить любое доступное приложение в несколько кликов.
- **Легкость обновления:** Приложение уведомляет пользователей о доступных обновлениях для установленных приложений и предоставляет возможность обновить их автоматически.
- **Создание резервных копий и восстановление**: С помощью Softaculus пользователи могут без труда генерировать резервные копии своих установленных приложений и восстанавливать их при возникновении необходимости.
- **Демо-приложения**: Пользователи могут протестировать демо-версии приложений перед установкой, чтобы убедиться, соответствованию их требований.
- **Многоязычность**: Интерфейс Softaculus доступен на различных языках, что делает его удобным для пользователей по всему миру.
Softaculus значительно упрощает процесс инсталляции и администрирования веб-приложений, делая его быстрым и доступным даже для пользователей с минимальными техническими навыками, что особенно ценно начинающим разработчикам и владельцам небольших бизнесов.
https://serverspace.uz/support/glossary/deb-paket.mdУзнайте, что такое deb-пакет и его особенности
DEB-пакет представляет собой формат пакета, применяемый в операционных системах, созданных на основе Debian, таких как Debian, Ubuntu и их производные. Этот пакет содержит всю необходимую информацию для установки, настройки, обновления или удаления программного обеспечения.
## Структура DEB-пакета
DEB-пакет — это архив, который обычно включает в себя три ключевых компонента:
- **Control.tar.gz**: Содержит метаданные о пакете, такие как информация о зависимостях, имя пакета, версия, описание и скрипты для установки и удаления.
- **Data.tar.gz**: Содержит сами файлы программы, которые будут установлены на систему.
- **Debian-binary**: Файл, содержащий версию формата DEB-пакета (обычно просто текстовый файл с числом "2.0").
## Основные поля метаданных
- **Package**: Имя пакета.
- **Version**: Версия пакета.
- **Section**: Категория, к которой относится пакет.
- **Priority**: Приоритет пакета (например, optional, required).
- **Architecture**: Архитектура, для которой пакет был собран (например, amd64, i386).
- **Depends**: Список зависимостей, которые должны быть установлены для правильной работы пакета.
- **Maintainer**: Информация о разработчике или ответственном за пакет.
## Управление DEB-пакетами
В операционных системах, основанных на Debian, существует несколько инструментов для работы с DEB-пакетами:
**- dpkg: Основная утилита для установки, удаления и управления DEB-пакетами в системе.**
bash
sudo dpkg -i package.deb # Установка пакета
sudo dpkg -r package_name # Удаление пакета
sudo dpkg -l # Список установленных пакетов
**- apt (Advanced Package Tool): Высокоуровневая утилита, управляющая зависимостями и взаимодействующая с репозиториями.**
bash
sudo apt update # Обновление списка пакетов
sudo apt install package_name# Установка пакета из репозитория
sudo apt remove package_name # Удаление пакета
sudo apt upgrade # Обновление установленных пакетов
**- gdebi: Инструмент для установки локальных DEB-пакетов, автоматически обрабатывающий зависимости.**
bash
sudo gdebi package.deb
## Установка deb-пакета
В нашей базе знаний вы можете найти инструкцию "[Как установить deb пакет](https://serverspace.ru/support/help/kak-ustanovit-deb-paket/)?", с помощью которой вы сможете узнать, как установить deb-пакет в Ubuntu и других дистрибутивах на базе Debian с помощью простых команд в терминале.
https://serverspace.uz/support/glossary/vpo.mdУзнайте, что такое ВПО, какие бывают типы и как защититься от вредоносных программ
ВПО (Вредоносное Программное Обеспечение) - это общий термин, описывающий любые типы программного обеспечения, которые предназначены для нанесения вреда компьютеру, его владельцу или другим пользователям.
## Цели атаки ВПО
ВПО может иметь различные формы и цели, но общей чертой является намеренное причинение вреда или ущерба компьютеру, или его владельцу. ВПО может быть спрограммировано для:
- Похищение персональных данных, включая логины, информацию о банковских картах и счетах, а также другие конфиденциальные сведения.
- Захват управления компьютером с целью использования его ресурсов для рассылки спама, организации кибератак, таких, как DDoS, или иных злонамеренных действий.
- Уничтожения или повреждения данных на компьютере.
- Шпионажа за пользователем, собирая информацию о его поведении в интернете.
- Принуждения пользователя к покупке или скачиванию определенного программного обеспечения или услуги.
## Как распространяется ВПО
ВПО может распространяться через различные каналы, такие как:
- Зараженные электронные письма или вложения.
- Инфицированные веб-сайты или скачиваемые файлы.
- Уязвимости в операционной системе или приложениях.
- usb-устройства или другие носители данных.
## Типы ВПО
ВПО может иметь различные типы, такие как:
- **Вирусы** - программы, которые прикрепляются к другим программам или файлам и размножаются при их запуске.
- **Червь** - программа, которая может размножаться и распространяться самостоятельно, не требуя присутствия хозяина.
- **Троянские программы** - программы, которые маскируются под полезное программное обеспечение, но на самом деле предназначены для нанесения вреда.
- **Шпионское ПО** - программы, которые собирают информацию о пользователе и передают ее третьим лицам.
- **Pansomware** - программы, которые шифруют файлы на компьютере и требуют оплаты выкупа за их расшифровку.
## Защита от ВПО
Защита от ВПО включает в себя:
- Установите надежное антивирусное программное обеспечение и регулярно обновляйте его базы данных, чтобы обнаруживать и блокировать вредоносные программы.
- Внедрите жесткую политику блокировки подозрительных файлов и веб-сайтов, чтобы предотвратить проникновение злоумышленников в вашу систему.
- Защитите свой онлайн-идентитет с помощью сложных паролей и двухфакторной аутентификации, чтобы предотвратить несанкционированный доступ.
- Регулярно обновляйте операционную систему и приложения, чтобы иметь доступ к последним обновлениям безопасности и функциям.
- Установите строгие контроли доступа и разрешения, чтобы защитить критические системы и конфиденциальные данные от несанкционированного доступа или манипуляций.
https://serverspace.uz/support/glossary/winget.mdУзнайте что такое Winget и его главные аспекты
Winget - это менеджер пакетов для Windows, представленный компанией Microsoft в 2020 году. Он предназначен для упрощения процесса обнаружения, установки и управления приложениями в Windows 10 и более поздних версиях. Winget - это инструмент с открытым исходным кодом, который предоставляет интерфейс командной строки (CLI) для взаимодействия с пакетами.
## Главные аспекты Winget
- **Управление пакетами**: Winget позволяет легко обнаруживать, скачивать и устанавливать приложения из централизованного репозитория. Вы можете искать пакеты, просматривать их подробности и устанавливать их с помощью одной команды.
- **Репозиторий**: Репозиторий Winget - это кураторская коллекция пакетов, которые проверены и одобрены компанией Microsoft. Это обеспечивает безопасность пакетов и соответствие им определенным стандартам качества.
- **Источники пакетов**: Winget поддерживает несколько источников пакетов, включая Магазин Microsoft, GitHub и другие репозитории. Это позволяет получить доступ к широкому спектру приложений и пакетов.
- **Управление зависимостями**: Winget может автоматически управлять зависимостями между пакетами, обеспечивая корректную установку всех необходимых компонентов.
- **Обновление пакетов**: Winget может автоматически обновлять пакеты до последней версии, поддерживая систему в актуальном и безопасном состоянии.
- **Скриптинг и автоматизация**: Winget предоставляет интерфейс скриптинга, который позволяет автоматизировать задачи управления пакетами, упрощая интеграцию с существующими workflow и скриптами.
- **Интеграция с Windows**: Winget тесно интегрирован с Windows, обеспечивая функции, такие как автоматическая установка пакетов, и поддержку функций Windows, таких как Windows Subsystem for Linux (WSL).
- **Интерфейс командной строки**: Winget предлагает мощный интерфейс командной строки, который позволяет управлять пакетами с помощью простых команд, упрощая автоматизацию задач и интеграцию с другими инструментами.
- **Открытый исходный код**: Winget - это проект с открытым исходным кодом, что означает, что сообщество может вносить свой вклад в его развитие, и он бесплатен для использования.
## Примеры команд Winget
**winget search: Поиск пакета в репозитории.
**winget install**: Установка пакета из репозитория.
**winget upgrade:** Обновление всех установленных пакетов до последней версии.
**winget uninstall: Удаление пакета.
В целом, Winget предоставляет удобный и эффективный способ управления пакетами в Windows, упрощая процесс обнаружения, установки и обслуживания приложений.
https://serverspace.uz/support/glossary/namespace.mdУзнайте, что такое namespace и как данный механизм ядра Linux используется
namespace - это механизм ядра Linux, который обеспечивает изолированную среду для процессов и ресурсов. Namespace позволяет создавать отдельные экземпляры различных системных ресурсов, таких как файловые системы, сетевые интерфейсы, процессы и другие, что позволяет изолировать их друг от друга.
## Применение
Применение namespace позволяет создавать изолированные среды для процессов, что обеспечивает безопасность и независимость между приложениями. Также это позволяет более эффективно управлять ресурсами и избежать конфликтов между приложениями.
## Пример использования
Примером использования namespace может быть создание контейнеров с помощью технологий, таких как Docker или LXC, которые позволяют изолировать приложение от основной операционной системы и других контейнеров. Namespace также является важной основой для реализации виртуализации и управления ресурсами в современных операционных системах.
Кроме того, namespace позволяет обеспечивать изоляцию сетевых ресурсов, таких как сетевые интерфейсы, IP адреса и маршруты. Это позволяет создавать отдельные виртуальные сетевые среды для различных приложений или контейнеров, что обеспечивает безопасность и управляемость сетевого трафика.
## Типы namespaces
Linux поддерживает несколько типов namespaces, каждый из которых отвечает за изоляцию определённых ресурсов:
- **Mount namespace:**
Позволяет изолировать файловые системы. Процессы в одном namespace могут иметь свои точки монтирования, не влияя на другие.
- **UTS namespace (Unix Time-Sharing):**
Изолирует информацию о названии узла (hostname) и доменном имени, позволяя контейнерам иметь собственные настройки имени хоста.
- **IPC namespace (Inter-Process Communication):**
Обеспечивает изоляцию механизмов межпроцессного взаимодействия, таких как семафоры, очереди сообщений и разделяемая память.
- **PID namespace:**
Обеспечивает изоляцию идентификаторов процессов (PID), создавая иллюзию для процессов внутри namespace, что они функционируют в отдельной, независимой системе процессов.
- **Network namespace:**
Отвечает за изоляцию сетевых интерфейсов, маршрутов, таблиц ARP и других сетевых ресурсов.
- **User namespace:**
Позволяет процессам в одном namespace иметь разные идентификаторы пользователей (UID и GID) относительно хоста, что важно для обеспечения безопасности.
- **Cgroup namespace:**
Изолирует контрольные группы (cgroups), которые используются для управления использованием ресурсов (CPU, память и т. д.).
## Преимущества использования namespaces
- **Безопасность:**
Обеспечивается изоляция процессов и ресурсов, минимизируется влияние одного приложения на другое.
- **Масштабируемость:**
Возможность развертывания нескольких изолированных приложений на одном сервере.
- **Управление ресурсами:**
Комбинируя namespaces с cgroups, можно ограничивать доступ процессов к CPU, памяти, диску и другим ресурсам.
- **Удобство разработки:**
Создание изолированных окружений для тестирования и разработки.
## Примеры использования
- **Контейнеризация:**
Docker, Podman, LXC и Kubernetes активно используют namespaces для изоляции процессов, сетей и файловых систем.
- **Изоляция сетевых ресурсов:**
Использование Network namespaces для настройки виртуальных сетей в тестовых средах или многозадачных серверных конфигурациях.
- **Тестирование ядра и системных приложений:**
Создание песочниц для проверки нового ПО без риска повлиять на основную систему.
## Связь с другими технологиями
Namespaces часто используются вместе с:
- **Control Groups (cgroups):** Для управления ограничениями на использование ресурсов.
- **Seccomp и AppArmor:** Для повышения безопасности в контейнерах.
- **OverlayFS:** Для управления файловыми системами контейнеров.
## Пример создания namespace
Можно дополнить текст небольшим примером использования **unshare** для создания изолированного пространства:
```
# Создание нового PID namespace
unshare --pid --fork bash
# Проверка процесса в новом namespace
ps aux
```
## Перспективы развития
Namespaces продолжают развиваться:
- **Улучшение производительности:** Оптимизация изоляции для минимизации накладных расходов.
- **Гибридные технологии:** Интеграция namespaces с облачными решениями и микросервисной архитектурой.
- **Поддержка новых типов изоляции:** Например, для GPU и других специализированных ресурсов.
В целом, namespace предоставляет механизм для создания изолированных сред, что делает Linux более гибким и безопасным для работы с приложениями и ресурсами.
https://serverspace.uz/support/glossary/otlozhennaya-zagruzka.mdУзнайте, что такое отложенная загрузка (Lazy loading), ее преимущества и недостатки, применение и основные аспекты
**Lazy loading (отложенная загрузка)** — это техника оптимизации, используемая в программировании, которая позволяет загружать ресурсы или данные только по мере необходимости, а не заранее. Это помогает снизить время загрузки приложения, уменьшить потребление памяти и повысить общую производительность.
## Основные аспекты отложенной загрузки
- **Отложенная инициализация**: Данные или объекты загружаются только тогда, когда они впервые запрашиваются. Это означает, что если пользователь не взаимодействует с определённым элементом, он не будет загружен.
- **Экономия ресурсов**: За счёт загрузки только необходимых данных, lazy loading помогает сократить использование оперативной памяти и вычислительных ресурсов, что особенно полезно в мобильных и веб-приложениях.
- **Улучшение производительности**: Поскольку не все данные загружаются сразу, время первоначальной загрузки приложения сокращается, что делает его более отзывчивым и удобным для пользователя.
## Применение
- **Веб-разработка**: Lazy loading часто используется для изображений, видео и других медиафайлов. Например, изображения загружаются только тогда, когда они попадают в область видимости пользователя на странице.
- **Фреймворки и библиотеки**: Многие современные фреймворки и библиотеки, такие как React и Angular, поддерживают lazy loading компонентов, позволяя загружать их только при необходимости.
- **Базы данных**: В системах управления базами данных можно использовать lazy loading для загрузки связанных объектов или данных только по мере запроса.
## Преимущества
- **Скорость**: Уменьшает время загрузки приложения за счёт минимизации объёма загружаемых данных.
- **Экономия памяти**: Использует меньше ресурсов, так как данные загружаются только при необходимости.
- **Пользовательский опыт**: Делает приложение более отзывчивым и удобным, позволяя пользователям быстро получать доступ к необходимой информации.
## Недостатки
- **Проблемы с производительностью**: При первом обращении к отложено загруженным данным может возникнуть задержка, так как они должны быть загружены в этот момент.
- **Сложность реализации**: Реализация lazy loading может требовать дополнительных усилий в плане кода и архитектуры приложения.
В целом, lazy loading является эффективным способом оптимизации работы приложений и повышения их производительности, особенно при работе с большими объемами данных или медиафайлов.
https://serverspace.uz/support/glossary/neizmenyaemye-struktury-dannyh.mdУзнайте, что такое неизменяемые структуры данных, основные характеристики, преимущества и недостатки и применение
**Immutable Data Structures** или же **неизменяемые структуры данных** — это структуры данных, которые не могут быть изменены после их создания. Это означает, что любые операции, которые могли бы изменить данные, на самом деле создают новую версию структуры с изменениями, оставляя исходную версию нетронутой.
## Основные характеристики
- **Неизменяемость**: После создания такая структура данных не может быть изменена. Это исключает возможность случайных изменений, что повышает надежность кода.
- **Безопасность потоков**: Поскольку неизменяемые структуры данных не могут быть изменены, они безопасны для использования в многопоточных приложениях, так как не возникает необходимости в синхронизации доступа к данным.
- **Состояние**: Изменения состояния достигаются путём создания новых копий, что позволяет сохранять историю изменений и упрощает отладку.
## Применение
- **Функциональное программирование**: Многие функциональные языки, такие как Haskell и Scala, активно используют неизменяемые структуры данных, так как это соответствует концепциям функционального программирования.
- **Языки программирования**: Некоторые языки, такие как Java (через ImmutableList, ImmutableMap и т. д. из библиотеки Guava) и C# (с использованием ImmutableArray и ImmutableList), также предлагают поддержку неизменяемых коллекций.
- **Базы данных**: В системах управления версиями и временных базах данных неизменяемые структуры помогают сохранять историю изменений.
## Преимущества
- **Упрощение отладки**: Из-за неизменяемости состояния легче отслеживать и воспроизводить ошибки.
- **Оптимизация производительности**: Некоторые реализации неизменяемых структур могут использовать шардинг и кэширование, что улучшает производительность.
- **Безопасность**: Уменьшается вероятность ошибок, связанных с изменением данных, что делает код более надежным.
## Недостатки
- **Переполнение памяти**: Создание новых версий структур может потребовать больше памяти по сравнению с изменяемыми структурами.
- **Производительность**: В некоторых случаях операции создания новых копий могут быть медленнее, чем изменения в изменяемых структурах данных.
В целом, неизменяемые структуры данных предлагают преимущества в надежности и безопасности, что делает их популярным выбором в различных областях программирования.
https://serverspace.uz/support/glossary/tranzakczionnaya-pamyat.mdУзнайте, что такое транзакционная память, ее основные моменты, типы и куда она активно внедряется.
**Транзакционная память** или же **Transactional memory (TM)** — это концепция в компьютерных науках, которая предназначена для упрощения параллельного программирования. Она позволяет разработчикам управлять доступом к разделяемым ресурсам без необходимости использовать традиционные механизмы синхронизации, такие как мьютексы или семафоры.
## Основные моменты, касающиеся TM
- **Транзакции**: В TM код, который выполняет операции над общими ресурсами, организован в виде транзакций. Каждая транзакция должна либо завершиться успешно, либо не повлиять на состояние системы. Это аналогично транзакциям в базах данных.
- **Изолированность**: Транзакции в TM работают изолированно друг от друга, что означает, что изменения, внесенные одной транзакцией, не видны другим, пока транзакция не завершится. Это помогает избежать конфликтов и несогласованности данных.
- **Управление конфликтами**: Если две транзакции пытаются одновременно изменить одни и те же данные, TM предоставляет механизм для разрешения конфликтов. Это может быть сделано через откат одной из транзакций или повторное выполнение её после завершения другой.
- **Эффективность**: TM может повысить производительность, особенно в многопоточных приложениях, поскольку разработчики могут писать код без явной блокировки ресурсов, что уменьшает накладные расходы на синхронизацию.
## Типы
Существуют два основных типа transactional memory:
- **Аппаратная или же HTM (Hardware Transactional Memory)** — аппаратная транзакционная память. Это подход, который использует встроенные аппаратные средства для реализации транзакционной памяти. В HTM аппаратные контроллеры обеспечивают механизмы, такие как обнаружение конфликтов и управление откатами транзакций, что позволяет повысить производительность и эффективность. HTM может использоваться в современных процессорах для автоматического управления доступом к разделяемым данным.
- **Программная или же STM (Software Transactional Memory)** — программная транзакционная память. Это подход, который реализуется на уровне программного обеспечения. В STM разработчики могут использовать библиотеки или языковые конструкции для работы с транзакциями. STM позволяет создавать транзакции, управляя состоянием и конфликтами, но это может потребовать большего объема вычислительных ресурсов по сравнению с аппаратными решениями, так как вся логика работы с транзакциями реализуется программно.
TM активно исследуется и внедряется в различные языки программирования и системы, поскольку он предлагает более простой способ работы с параллелизмом и уменьшает количество ошибок, связанных с синхронизацией.
https://serverspace.uz/support/glossary/github.mdУзнайте, что такое GitHub, его основные особенности и аспекты и как он поддерживает сообщество разработчиков
**GitHub** — платформа для совместной разработки программного обеспечения и управления версиями кода, которая использует систему контроля версий Git. GitHub предоставляет возможность хранить, изменять, отслеживать и комментировать изменения в коде, обеспечивая высокий уровень сотрудничества между разработчиками. Платформа также поддерживает управление проектами, автоматизацию задач, интеграцию с другими инструментами DevOps и CI/CD, что делает её одним из самых популярных инструментов для разработки, тестирования и развертывания ПО.
## Ключевые особенности GitHub
- **Репозитории (repositories)** — хранилища, где находятся файлы проекта и где фиксируются все изменения. Каждый репозиторий может быть публичным или частным.
- **Ветвление и слияние (branching and merging)** — позволяет разработчикам работать над новыми функциями или исправлениями в отдельных ветках, а затем интегрировать их в основную ветку без конфликта с основным кодом.
- **Pull Request** — инструмент для предложений изменений, позволяющий участникам обсудить нововведения перед их добавлением в проект.
- **Issues и Projects** — инструменты для отслеживания задач, ошибок и управления проектом, что помогает командам организовывать рабочие процессы и отслеживать прогресс.
GitHub поддерживает сообщество разработчиков через социальные функции: каждый пользователь может следить за проектами, ставить звёздочки репозиториям и предлагать улучшения, что способствует обмену опытом и знаниями.
https://serverspace.uz/support/glossary/gotovye-oblachnye-resheniya-1-click-apps.mdУзнайте, что такое готовые облачные решения, об их преимуществах и как арендовать готовый сервер с данными приложениями для разработки и бизнеса
## Что такое готовые облачные решения?
**Готовые облачные решения** или же** 1-click apps**— это программные решения, которые пользователи могут установить и настроить с минимальными усилиями, используя буквально один клик мыши или несколько простых действий.
## Основные особенности 1-click apps
- **Простота установки**: Процесс установки и настройки автоматизирован, что позволяет существенно сократить время и уменьшить риск ошибок.
- **Пре-конфигурации**: Приложения обычно поставляются с предустановленными параметрами и преднастроенными конфигурациями, которые подходят для большинства пользователей.
- **Широкий выбор**: 1-click apps могут включать различные виды программного обеспечения, такие как блоги, системы управления контентом (например, [WordPress](https://serverspace.uz/services/cloud-marketplace/wordpress.md)), форумы, инструменты аналитики, платформы для разработки (Docker) и многое другое.
- ** Обновления и поддержка**: Часто такие приложения также включают автоматические обновления и поддержку от провайдера.
## Преимущества 1-click apps
- Экономия времени: Процесс настройки занимает гораздо меньше времени.
- Удобство использования: Подходят для пользователей с любым уровнем технических навыков.
- Минимальная возможность ошибок: Благодаря автоматизации установки и конфигурации.
- Готовность к использованию: Приложения часто уже полностью готовы к использованию после установки.
## Готовые облачные решения от Serverspace
Быстро и легко создавайте, простые в управлении и масштабируемые приложения и проекты, с помощью Serverspace **1-click-apps**
С помощью Serverspace вы можете [развернуть сервер с предустановленным приложением за несколько секунд](https://serverspace.uz/services/cloud-marketplace.md).
В нашем маркетплейсе вы найдете приложения, покрывающие многие современные требования для выполнения задач. Веб-разработка, базы данных, мониторинг — все это в одном месте. Выберите решение, которое
подходит вам.
Пример приложений, которые предоставляет Serverspace:
- **PostgreSQL** - Объектно-реляционная система управления базами данных
- **WordPress** - Система управления содержимым сайта (CMS)
- **Docker** - Платформа для разработки, доставки и запуска контейнерных приложений
- **MySQL** - Реляционная система управления базами данных
- **Nginx** - Веб-сервер и почтовый прокси сервер для Unix-подобных операционных систем
- **Apache** - Кроссплатформенное программное обеспечение для создания веб-сервера
- **LAMP** - Стек серверного программного обеспечения для работы с динамическими сайтами и веб-приложениями
- **LEMP** - Набор серверного программного обеспечения для разработки и развертывания веб-приложений
https://serverspace.uz/support/glossary/direct-connect.mdУзнайте, что такое Direct connect, его основные функции и как бизнесу получить доступ к Serverspace Direct Connect
## Что такое Direct connect
Direct Connect — это прямое соединение между вашей корпоративной частной сетью и облаком Serverspace. Благодаря этому вы можете увеличить пропускную способность между локациями и обеспечить более стабильную сеть, чем общедоступное подключение.. Например, Serverspace предлагает такой сервис под названием [Serverspace Direct Connect.](https://serverspace.ru/services/direct-connect/)
## Сколько стоит подключение Direct connect
Подключение к оборудованию Serverspace полностью бесплатно, все, что нужно - с вашей стороны необходимо выбрать точку подключения.
## Какую скорость поддерживает Direct connect?
Максимальная пропускная способность зависит от вашего сетевого оборудования. С нашей стороны скорость не ограничена.
## Основные функции и особенности Direct Connect
- **Прямое соединение**: Direct Connect обеспечивает прямое физическое соединение между инфраструктурой пользователя и облачными серверами, минуя общедоступные сети, такие как интернет.
- **Высокая пропускная способность**: Direct Connect обеспечивает высокую пропускную способность и низкую латентность, что особенно важно для приложений и данных, требующих большого объема трафика и быстрой передачи данных.
- **Надежность**: Прямое соединение через Direct Connect обычно более надежно по сравнению с соединением через интернет, так как оно менее подвержено внешним воздействиям и перегрузкам сети.
- **Безопасность**: Direct Connect предоставляет более высокий уровень безопасности, поскольку данные не проходят через общедоступные сети и снижается риск перехвата и несанкционированного доступа.
- **Полоса пропускания**: Пользователи могут выбирать полосу пропускания в зависимости от своих потребностей, начиная от десятков мегабит в секунду до нескольких гигабит в секунду.
## Преимущества Direct Connect
- **Улучшенная производительность**: Прямое соединение обеспечивает более высокую скорость и надежность передачи данных.
- **Экономия средств**: В ряде случаев Direct Connect может снизить затраты на передачу данных, особенно при большом объеме трафика.
- **Упрощенное управление**: Direct Connect позволяет легче управлять соединением и мониторингом сетевого трафика между локальной и облачной инфраструктурой.
## Кто предоставляет услугу Direct connect?
**Облачный провайдер[Serverspace предлагает услугу Direct connect](https://serverspace.ru/services/direct-connect/) для:**
- **Гибридного развертывания** - Обеспечьте плавное расширение своей инфраструктуры, объединив её с дата-центрами Serverspace.
- **Передачи больших данных** - Организуйте беспрерывную передачу больших массивов данных. Подойдет для резервного копирования, аналитики в реальном времени и передачи медиаконтента.
- **Соединения корпоративной инфраструктуры** -Объедините офисы в единую высокоскоростную сеть. Транслируйте данные между локациями по максимально короткому пути.
**AT&T**
**Verizon**
**Equinix**
## Serverspace Direct Connect
Вы можете получить прямое физическое подключение локальной инфраструктуры к облаку [Serverspace](http://serverspace.ru).
Serverspace гарантирует:
- **Высокую скорость**: Гарантируем максимальную пропускную способность и низкие задержки.
- **Удобство**: Берем на себя все сетевые работы — вам лишь нужно выбрать точку подключения.
- **Безопасность**: Подключаем через выделенные каналы связи без доступа к интернету.
https://serverspace.uz/support/glossary/nat.mdУзнайте, что такое NAT, какие его преимущества, его основные функции, особенности и разновидности
## Что такое NAT простыми словами
**NAT (Network Address Translation)** — технология, применяемая в сетевых устройствах для преобразования локальных (частных) IP-адресов в глобальные (публичные) и наоборот. Это решение позволяет множеству устройств в частной сети совместно использовать один публичный IP-адрес для выхода в интернет, что особенно актуально при ограниченном количестве доступных глобальных IP-адресов.
NAT был разработан главным образом для решения проблемы нехватки **IPv4**-адресов. В IPv4 всего около 4,3 миллиарда уникальных адресов, что оказалось недостаточным для растущего количества устройств в интернете. С помощью NAT одно публичное IPv4-адресное пространство может использоваться для подключения множества частных устройств.
В отличие от **IPv4**, новый стандарт **IPv6** предлагает гораздо больший диапазон адресов (более 340 ундециллионов), что значительно снижает потребность в NAT. Тем не менее, NAT все еще используется в современных сетях, чтобы обеспечить совместимость между устройствами с IPv4 и IPv6 и для дополнительной безопасности.
## Основные функции и особенности NAT
- **Преобразование адресов**: NAT преобразует частные IP-адреса устройств в локальной сети в один или несколько публичных IP-адресов при их отправке в интернет, и обратно - публичные IP-адреса пакетов, приходящих из интернета, в частные IP-адреса.
- **Экономия IP-адресов**: NAT позволяет сократить потребность в публичных IP-адресах, так как несколько устройств в локальной сети могут использовать один и тот же публичный IP-адрес.
- **Повышение безопасности**: NAT скрывает внутреннюю структуру сети от внешних пользователей, что затрудняет несанкционированный доступ извне.
## Какие бывают разновидности NAT
Существует несколько разновидностей NAT: статический, динамический и NAT с перегрузкой (PAT — Port Address Translation).
- **Статический NAT** создает соответствие между одним частным IP-адресом и одним публичным IP-адресом.
- **Динамический NAT** использует пул доступных публичных IP-адресов, чтобы сопоставлять их с частными IP-адресами по мере необходимости.
- **PAT (NAT с перегрузкой)** позволяет нескольким устройствам одновременно использовать один публичный IP-адрес, отличая их с помощью номеров портов
## Преимущества NAT
- **Снижение потребности в публичных IP-адресах**: Используя преобразование адресов, устройства в частной сети могут выходить в интернет через один общий публичный IP-адрес.
- **Повышение безопасности**: NAT делает внутренние IP-адреса невидимыми для внешних пользователей, что помогает защитить локальную сеть.
- **Легкость развертывания**: NAT просто настраивается и широко используется в сетевых устройствах, таких как маршрутизаторы и межсетевые экраны.
## NAT IP
- **NAT IP**: Это термин, который часто используется для обозначения публичного IP-адреса, присваиваемого устройствам в частной сети через NAT. Он позволяет устройствам, не имеющим собственных публичных адресов, взаимодействовать с внешними сетями.
- **Типы NAT IP-адресов**:
**Входящий NAT IP**: Используется для получения данных из интернета, преобразуя публичные IP-адреса в частные, чтобы пакеты могли быть доставлены нужным устройствам внутри сети.
- **Исходящий NAT IP**: Применяется при отправке данных в интернет, преобразуя частные IP-адреса в один или несколько публичных адресов для обеспечения связи.
- **Роль NAT IP в сетях IPv6**: Хотя NAT IP в основном используется в сетях **IPv4** из-за ограничения адресного пространства, в сетях **IPv6** NAT имеет ограниченное применение. IPv6 предоставляет достаточно адресов для каждого устройства, что делает NAT менее необходимым, но его могут использовать для других целей, например, для повышения безопасности или для упрощения управления сетью.
- **NAT и IP-маскирование**: NAT IP также может обеспечивать **IP-маскирование**, скрывая реальные адреса устройств за общим публичным IP. Это предотвращает попытки отслеживания или атак на конкретные устройства в сети.
- **Симметричный NAT**: Один из вариантов NAT, который применяет жесткое сопоставление портов между частными и публичными адресами, увеличивая уровень безопасности, но ограничивая прямой доступ снаружи, что может усложнить использование некоторых интернет-приложений.
## NAT и Serverpace
С помощью [Serverspace и их шлюзов](https://serverspace.ru/services/edge-gateways/) вы можете настраивать элементы безопасности локальной сети — NAT и Firewall, обеспечив этим, защиту внутренних данных.
Больше терминов связанных с протоколами вы сможете найти в [Глоссарии Serverspace](https://serverspace.ru/support/glossary/).
https://serverspace.uz/support/glossary/udp.mdУзнайте, что такое UPD, его функции и особенности, преимущества и недостатки и различия с TCP, простыми словами
## Что такое UDP простыми словами
**UDP (User Datagram Protocol)** — это один из основных протоколов для передачи данных в сети. В отличие от TCP (Transmission Control Protocol), UDP не нуждается в установлении соединения перед передачей данных и не гарантирует их доставку. Благодаря своей простоте и высокой скорости, UDP обычно применяется в случаях, когда важнее снизить задержки, чем обеспечить полную надежность доставки.
## Основные аспекты User Data Protocol
- **Без установления соединения**: UDP не нуждается в создании соединения между отправителем и получателем перед отправкой данных. Пакеты передаются в форме отдельных датаграмм без подтверждения получения.
- **Быстрая передача данных**: Благодаря тому, что не происходит обмена дополнительной служебной информацией, UDP обеспечивает более быструю передачу данных по сравнению с TCP.
- **Нет гарантии доставки**: Протокол не осуществляет проверку целостности данных и не повторно отправляет потерянные или поврежденные пакеты. Пакеты могут быть получены в неправильном порядке или не поступить вообще.
- **Малый размер заголовка**: Заголовок UDP компактный — всего 8 байт, в отличие от заголовка TCP, который занимает минимум 20 байт. Это снижает накладные расходы и упрощает обработку данных.
- **Применение**: UDP чаще всего используется в тех случаях, где критична скорость передачи, например, в стриминговых сервисах, онлайн-играх, голосовых звонках через VoIP, а также в системе доменных имен (DNS).
## Где UDP выигрывает
- **Высокая скорость**: Благодаря отсутствию соединения и минимальным накладным расходам, UDP обеспечивает быстрое выполнение операций с низкой задержкой.
- **Простота**: Меньший заголовок и отсутствие механизмов управления потоком и перегрузкой упрощают реализацию UDP.
## Где UDP слаб
- **Отсутствие надежности**: Нет механизмов для подтверждения доставки, контроля порядка или восстановления поврежденных данных.
- **Неуправляемость потоком**: UDP не предусматривает контроль за потоком данных, что может привести к перегрузке сети при высокой интенсивности трафика.
## Сравнение двух протоколов TCP и UDP
- **Надежность**: Протокол TCP обеспечивает надежную доставку данных благодаря механизмам подтверждения получения и повторной отправке потерянных пакетов. В отличие от этого, UDP не гарантирует доставку и не осуществляет проверку целостности данных.
- **Установление соединения**: TCP требует установления соединения перед началом передачи данных, что позволяет контролировать порядок и надежность доставки. UDP, наоборот, передает данные без предварительного соединения, что ускоряет процесс обмена, но снижает степень надежности.
## Применение
TCP наиболее эффективен для приложений, где критична надежность и точность передачи данных, таких как веб-серфинг или обмен файлами. UDP используется в ситуациях, где важна высокая скорость передачи, а потеря некоторых данных не имеет серьезных последствий, например, в потоковом видео или онлайн-играх.
Таким образом, UDP является оптимальным выбором для случаев, когда приоритет отдается скорости, в то время как TCP используется в ситуациях, где необходима надежная и гарантированная передача данных.
https://serverspace.uz/support/glossary/icmp.mdУзнайте, что такое ICMP, его преимущества и недостатки, его функции и особенности
## Простыми словами, что такое ICMP
ICMP (**Internet Control Message Protocol**) — это сетевой протокол, предназначенный для обмена диагностическими сообщениями и сообщениями об ошибках в IP-сетях. ICMP является важной составляющей протокола IP и применяется для управления сетевыми устройствами и устранения сетевых неполадок.
## Функции и особенности ICMP
- **Передача сообщений об ошибках**: ICMP служит для отправки сообщений об ошибках, которые могут возникнуть при передаче IP-пакетов. Например, если маршрутизатор не в состоянии доставить пакет по указанному адресу, он может отправить отправителю сообщение об ошибке через ICMP.
- **Передача диагностических сообщений**: ICMP также важен для диагностики сетевых соединений. Одно из наиболее известных применений ICMP — это команда ping, с помощью которой можно проверить доступность удаленного узла и измерить задержку сигнала.
- **Структура ICMP-пакетов**: ICMP-пакеты состоят из заголовка и основного текста сообщения. Заголовок включает тип сообщения, код сообщения и контрольную сумму. Основное содержимое сообщения может включать дополнительную информацию, зависящую от конкретного типа сообщения.
- **Разновидности сообщений ICMP**: ICMP включает несколько типов сообщений, таких как:
**Echo Request и Echo Reply**: Используются для проверки доступности устройства в сети, например, через команду ping.
- **Destination Unreachable**: Информирует отправителя о невозможности доставки пакета по указанному адресу.
- **Time Exceeded**: Уведомляет отправителя, что время жизни (TTL) пакета истекло.
- **Redirect**: Направляет отправителя на более эффективный маршрут для доставки пакета.
## Применение и инструменты ICMP
- **Ping** - одно из самых популярных приложений ICMP. Оно позволяет администраторам проверить доступность узла и измерить задержку передачи данных.
- **Traceroute** - использует ICMP Time Exceeded сообщения для определения пути по которому пакеты проходят через сеть до конечного узла. У Serverspace есть статья [Как использовать traceroute Linux?](https://serverspace.ru/support/help/kak-ispolzovat-traceroute-linux/), где рассказывается принцип работы traceroute и как установить его на Linux.
## Преимущества ICMP
- **Диагностика сети:** ICMP позволяет сетевым администраторам выявлять и устранять проблемы, связанные с подключением и производительностью сети..
- **Управление сетью**: ICMP можно использовать с маршрутизацией и информирования об ошибках, что улучшает работу сети.
- **Простота**: ICMP является простым и легковесным протоколом, легко интегрируемым в существующие сетевые инфраструктуры.
## Недостатки ICMP
- **Незащищенность**: ICMP может использоваться злоумышленниками для проведения атак, таких как DoS (Denial of Service) и DDoS (Distributed Denial of Service), поэтому ICMP-запросы часто ограничиваются или фильтруются в сетях.
- **Ограниченная функциональность**: ICMP в основном предназначен для диагностики и сообщения об ошибках и не предназначен для передачи данных.
https://serverspace.uz/support/glossary/docker-engine.mdУзнайте, что такое Docker Engine, его особенности и в каких сценариях он используется
## Что такое Docker Engine?
Docker Engine — это программное обеспечение, которое позволяет создавать, разворачивать и администрировать контейнеризированные приложения. Основными компонентами Docker Engine являются сервер, который называется Docker Daemon, REST API интерфейс, с помощью которого взаимодействуют программы с демоном, и клиентская утилита командной строки Docker CLI, через которую пользователи взаимодействуют с Docker.
**Docker Daemon** управляет объектами Docker, такими как образы, контейнеры, сети и тома. Он отвечает за создание, запуск и мониторинг контейнеров, а также за управление всеми ресурсами и процессами, связанными с Docker.
**Docker CLI** предоставляет интерфейс командной строки, с помощью которого пользователи могут выполнять команды для создания, выполнения и управления контейнерами, образами и другими элементами экосистемы Docker. Команды Docker CLI отправляются в Docker Daemon через REST API, который обрабатывает команды и возвращает результаты.
## Особенности Docker Engine
Docker Engine обладает несколькими ключевыми особенностями и используется в различных сценариях:
- **Изоляция**: Docker использует контейнеризацию для изоляции приложения и его зависимостей от остальной системы. Это позволяет запускать несколько приложений на одном хосте без конфликтов.
- **Портативность**: Контейнеры Docker могут быть запущены на любой системе, поддерживающей Docker, будь то локальная машина разработчика, сервер в облаке или даже кластер. Это значительно упрощает процесс переноса приложений между различными средами, такими как разработка, тестирование и продуктив.
- **Эффективность**: В отличие от виртуальных машин, контейнеры делят одну и ту же операционную систему хоста, что делает их намного легче и быстрее в запуске. Это также позволяет лучше использовать ресурсы хоста.
- **Микросервисная архитектура**: Docker активно используется для построения приложений на основе микросервисной архитектуры, где каждое микросервисное приложение размещается в отдельном контейнере. Это упрощает масштабирование и управление компонентами приложения.
- **Автоматизация и оркестрация**: Совместно с инструментами оркестрации, такими как Kubernetes, Docker Engine позволяет автоматизировать процесс развертывания и управления контейнерами. Это включает в себя такие задачи, как автоматическое масштабирование, обновление и мониторинг контейнеров.
- **Версионирование и контроль изменений**: Docker позволяет сохранять версии образов контейнеров, что облегчает откат к предыдущим версиям при наличии проблем. Это также способствует улучшению контроля над изменениями и качеством приложений.
- **Экосистема**: Docker Engine является частью широкой экосистемы инструментов и сервисов, таких как Docker Compose для многоконтейнерных приложений, Docker Swarm для встроенной оркестрации, Docker Hub для хранения и передачи образов, и другие.
## Основные сценарии использования Docker Engine
- **Разработка и тестирование**: Упрощает настройку и управление средами для разработчиков, позволяя им работать с одинаковыми контейнерами, что и в продуктиве.
- **CI/CD**: Автоматизирует процесс сборки, тестирования и развертывания приложений в рамках непрерывной интеграции и доставки.
- **Микросервисы**: Упрощает развертывание и управление микросервисными архитектурами.
- **Облачные и гибридные решения**: Обеспечивает переносимость приложений между различными облачными провайдерами и локальными ресурсами.
https://serverspace.uz/support/glossary/docker-daemon.mdУзнайте, что такое Docker daemon, как с ним взаимодействовать и безопасно использовать
Docker daemon, известный также как демон Docker, функционирует как задний плановый процесс на системе-хосте и управляет объектами Docker включая образы, контейнеры, сети и тома. Вместо прямого общения пользователей с демоном, они используют клиентские команды Docker или другие инструменты для взаимодействия с демоном через REST API, сокеты или командную строку.
## Основные задачи Docker daemon
- Создание и управление образами Docker: Демон позволяет создавать образы, загружать их или загружать из удаленных репозиториев, как Docker Hub.
- Запуск и организация контейнеров: Демон используется для создания контейнеров из образов и контролирует их жизненный цикл.
- Управление сетевыми операциями: Демон настраивает и управляет сетевым взаимодействием между контейнерами и между контейнерами и системой-хостом.
- Операции с томами: Демон управляет постоянным хранением данных, позволяя удерживать данные контейнеров отдельно от их собственного цикла.
Для запуска Docker демона используется команда dockerd. Для настройки вариантов выполнения демона можно использовать флаги командной строки или файл конфигурации. Демон может быть настроен для различных аспектов работы, включая сетевые и безопасные настройки, расположение директорий для хранения данных и журналов, а также конфигурации для кластерных режимов, например Docker Swarm.
## Взаимодействие с Docker daemon
С демоном Docker можно взаимодействовать различными способами:
- Docker CLI: Большинство пользователей использует командную строку Docker для взаимодействия с демоном.
- Docker Remote API: API предоставляет возможности для взаимодействия с демоном напрямую через HTTP/HTTPS запросы.
- Графические интерфейсы и инструменты от сторонних разработчиков: Эти инструменты упрощают управление Docker созданием визуальных представлений контейнеров и сервисов.
## Безопасность
Безопасность Docker демона включает в себе несколько аспектов, поскольку он управляет объектами Docker, такими как контейнеры и образы, и может запускать код внутри хост-системы с высокими привилегиями. Важно должным образом защитить демона и окружение в котором он работает. Вот несколько ключевых моментов безопасности для Docker демона:
**Аутентификация для демона**: По умолчанию Docker демон принимает подключения только через Unix сокеты, которые доступны только для пользователей системы. Если требуется удаленный доступ через TCP сокет, рекомендуется использовать TLS с правильно настроенными и верифицированными сертификатами для шифрования и аутентификации клиентов.
**Ограничение привилегий**: Запуск Docker демона и контейнеров с минимально возможными привилегиями снижает риски безопасности. Это значит что нельзя использовать учетные записи суперпользователя для контейнеров, если это не совершенно необходимо.
**Использование правил AppArmor или SELinux**: эти инструменты помогают ограничить возможности, которые имеют процессы, в том числе и для Docker демона. Они позволяют создать политики безопасности, контролирующие, как приложения могут взаимодействовать с системой.
**Ограничение использования kernel capabilities**: Linux ядра позволяют детально управлять привилегиями процессов. Docker может запускать контейнеры с ограниченным набором privileges, чтобы контейнер не имел полного доступа к системным возможностям.
**Изоляция ресурсов**: Использование cgroups (control groups) в Linux позволяет Docker ограничивать, сколько системных ресурсов (CPU, память и т.д.) может использовать контейнер, что помогает предотвратить DoS атаки.
**Обновление и патчинг**: Регулярное обновление Docker и хост-системы важно для закрытия известных уязвимостей безопасности. Следует убедиться, что используются последние версии программного обеспечения и все необходимые патчи безопасности установлены.
**Логирование и аудит**: Постоянное наблюдение и анализ логов демона и контейнеров можно использовать для выявления подозрительной активности или других индикаторов компрометации.
**Безопасность образов**: Важно убедиться, что используемые образы Docker получены из доверенных источников и поддерживаются в актуальном безопасном состоянии.
**Ограничение сетевого доступа**: Управление входящими и исходящими подключениями к контейнерам и ограничение доступа между контейнерами помогает минимизировать риск распространения атак.
Использование этих и других практик безопасности помогает обезопасить Docker демон и контейнеры, снижая риск потенциальных угроз и атак.
## Версионирование Docker Daemon
Docker достаточно часто обновляется, принося новые функции, исправления и улучшения безопасности. Каждая версия имеет свой уникальный номер, который следует семантике версионирования (MAJOR.MINOR.PATCH). Например, в версии 20.10.5, 20 - это номер основной версии (major), 10 - минорная версия (minor), и 5 - патч (patch). Docker старается следовать принципу обратной совместимости, что облегчает переход на новые версии.
## Обновление Docker Daemon
Рекомендуется регулярно обновлять Docker до последних версий для улучшения безопасности и производительности системы. Обновление Docker может потребовать остановки демона, выполнения команды обновления и перезапуска системы. Для крупных производственных систем, следует тщательно планировать обновления, сначала тестировать их в стендовых средах и следить за соответствующей документацией для минимизации времени простоя и других потенциальных рисков.
## Архитектурные особенности
Docker использует клиент-серверную архитектуру, где клиент коммуницирует с демоном (сервером) через REST API. Docker daemon может работать на различных платформах, что позволяет использовать Docker на различных системах и облаках.
## Интеграция с системами оркестровки
Docker демон легко интегрируется с популярными системами оркестровки контейнеров, такими как Kubernetes и Docker Swarm. Это позволяет управлять масштабированием, развертыванием и балансировкой нагрузки в больших распределенных приложениях.
## Производительность Docker Daemon
Производительность демона можно оптимизировать, настраивая файлы конфигурации и используя лучшие практики управления ресурсами. Например, ограничение чрезмерного количества одновременно запущенных контейнеров может помочь предотвратить чрезмерное потребление ресурсов и улучшить общую производительность системы.
## Изучайте Docker с помощью Serverspace
В Serverspace есть [страница часто задаваемых вопросов по Docker](https://serverspace.ru/support/help/category/docker/), где вы можете найти много информации о Docker:
от Docker Engine до [базовых команд Docker](https://serverspace.ru/support/help/osnovnye-komandy-docker/).
Также в Serverspace есть статья — [Docker для новичков](https://serverspace.ru/support/help/docker-dlya-novichkov/), которая может послужить вам "вратами" в мир этой открытой платформы.
https://serverspace.uz/support/glossary/docker-compose.mdУзнайте, что такое Docker Compose, как его применяют и его основные характеристики
Docker Compose предоставляет инструментарий для удобной организации сложных приложений, которые состоят из множества связанных контейнеров. Он использует файл в формате YAML для конфигурации всех сервисов приложения, что позволяет скомпоновать эти сервисы в единую систему и управлять ею из одной точки.
## Применение Docker Compose
- Разработка приложений: Docker Compose обеспечивает стабильную и изолированную среду для каждого сервиса, что позволяет разработчикам экспериментировать и проводить тестирование локально, не мешая друг другу.
- Автоматизация тестирования: Используя Docker Compose, можно легко поднять тестовое окружение, имитирующее продакшн, что делает автоматическое тестирование более эффективным.
- Развертывание на серверах: С помощью Docker Compose можно стандартизировать процесс деплоймента микросервисов, что упрощает перенос приложений между разными средами.
## Основные характеристики Docker Compose
- Управление комплексом контейнеров: Docker Compose позволяет одной командной строчкой запустить целую группу сервисов, что значительно облегчает координацию компонентов приложений с большим числом контейнеров.
- Организация сетевого взаимодействия: Compose самостоятельно создает сети для взаимодействия между контейнерами, позволяя сервисам общаться и подключаться друг к другу без лишнего ручной настройки.
- Обработка данных: Docker Compose упрощает задачу сохранения данных и состояний приложений с помощью томов, которые можно указать в конфигурации.
- Гибкость масштабирования: Compose предоставляет инструменты для изменения количества запущенных экземпляров сервисов с учетом текущей нагрузки за счет простых команд.
- Использование переменных окружения: для тонкой настройки сервисов в зависимости от среды можно задавать переменные окружения напрямую в файле конфигурации или через внешний .env файл.
Таким образом, Docker Compose делает процесс разработки, тестирования и развертывания контейнеризированных приложений более прямолинейным и легко воспроизводимым.
## Изучайте Docker с помощью Serverspace
В Serverspace есть [страница часто задаваемых вопросов по Docker](https://serverspace.ru/support/help/category/docker/), где вы можете найти много информации о Docker:
от Docker Engine до [базовых команд Docker](https://serverspace.ru/support/help/osnovnye-komandy-docker/).
Также в Serverspace есть статья — [Docker для новичков](https://serverspace.ru/support/help/docker-dlya-novichkov/), которая может послужить вам "вратами" в мир этой открытой платформы.
https://serverspace.uz/support/glossary/docker-desktop.mdУзнайте, что такое Docker Desktop, его особенности и примеры использования
**Docker Desktop** — это приложение, которое упрощает управление процессом разработки, развертывания и выполнения приложений в контейнерах Docker на рабочих станциях. Это приложение доступно для Windows и macOS и предназначено для разработчиков, которые хотят использовать Docker в более удобной и интуитивно понятной среде.
## Особенности
Docker Desktop имеет несколько особенностей, которые упрощают и улучшают процесс работы с Docker, особенно для разработчиков, использующих Windows и macOS:
- **Графический интерфейс пользователя (GUI)**: Docker Desktop предоставлят удобный графический интерфейс, позволяющий управлять контейнерами, образами, томами и сетями, а также просматривать логи, без необходимости использования командной строки.
- **Интеграция с операционными системами**: Docker Desktop тесно интегрирован с операционными системами Windows и macOS, обеспечивая лёгкую интеграцию с файловой системой хоста и сетевыми нюансами своих ОС.
- **Поддержка Kubernetes**: Docker Desktop включает в себя Kubernetes, позволяя разработчикам протестировать свои кластеры Kubernetes локально перед развертыванием их в больших масштабах.
- **Easy-to-use networking**: Docker Desktop облегчает работу с сетями контейнеров, автоматически управляя сетевыми настройками, чтобы контейнеры могли общаться друг с другом и с хост-системой.
- **Volume Mounting для файловой синхронизации**: Пользователи могут монтировать директории с хост-системы в контейнеры Docker, что позволяет легко обмениваться файлами между контейнером и рабочей станцией.
- **Docker CLI интеграция**: Помимо графического интерфейса, Docker Desktop также предоставляет полнофункциональный интерфейс командной строки (CLI) для Docker, который позволяет запускать, останавливать и управлять контейнерами и образами с помощью команд.
- **Режимы Linux и Windows контейнеров**: На Windows Docker Desktop позволяет переключаться между использованием Linux и Windows контейнеров, что облегчает кросс-платформенную разработку.
- **Docker Compose**: Docker Desktop включает поддержку Docker Compose, инструмент для определения и запуска много-контейнерных Docker приложений, что позволяет разработчикам легко конфигурировать сложные приложения с помощью YAML файлов.
- **Поддержка плагинов и интеграций**: Docker Desktop может интегрироваться с различными сторонними инструментами и плагинами для улучшения рабочего процесса.
- **Обновления и безопасность**: Docker Desktop облегчает процесс обновления Docker Engine и других компонентов, также обеспечивая, чтобы локальное окружение соответствовало нормам безопасности.
## Использование
Использование Docker Desktop распространено среди разработчиков, которым нужно:
- Разрабатывать, тестировать и запускать приложения в изолированных контейнерах.
- Работать с микросервисной архитектурой и контейнеризированными приложениями.
- Быстро создавать и уничтожать тестовые и разработческие среды.
- Поддерживать согласованность развёртывания между различными средами (разработка, тестирование, продакшн).
- Управлять и тестировать кластеры Kubernetes локально.
- Осуществлять кросс-платформенную разработку приложений для разных операционных систем.
Docker Desktop стал популярным инструментом в экосистеме контейнеров благодаря его удобству, скорости и широкому набору функций, которые позволяют разработчикам сосредоточиться на создании программного обеспечения.
## Изучайте Docker с помощью Serverspace
В Serverspace есть [страница часто задаваемых вопросов по Docker](https://serverspace.ru/support/help/category/docker/), где вы можете найти много информации о Docker:
от Docker Engine до [базовых команд Docker](https://serverspace.ru/support/help/osnovnye-komandy-docker/).
Также в Serverspace есть статья — [Docker для новичков](https://serverspace.ru/support/help/docker-dlya-novichkov/), которая может послужить вам "вратами" в мир этой открытой платформы.
https://serverspace.uz/support/glossary/voip.mdУзнайте, что такое VoIP, его преимущества, недостатки и примеры использования
VoIP (Voice over Internet Protocol) является технологией, позволяющей передавать голосовые данные через интернет или другую IP-сеть. В отличие от обычных телефонных линий, VoIP преобразует голосовые сигналы в цифровые пакеты, которые затем передаются через интернет.
## Ключевые элементы VoIP-систем
- IP-телефоны: Специально разработанные для работы с VoIP.
- Компьютеры и мобильные устройства: С помощью программного обеспечения софтфонов можно осуществлятьVoIP-звонки с компьютеров смартфонов или планшетов
- VoIP-шлюзы: Устройства которые соединяют традиционные телефонные сети с IP-сетями
- Сервисы и провайдеры VoIP: Компании предоставляющие услуги VoIP такие как Skype, Zoom, Google Voice и другие
## Использование VoIP
**Корпоративная связь:**
Офисные телефоны - Компании используют VoIP для внутренних и внешних телефонных звонков снижая расходы на связь
Конференц связь - Многофункциональные VoIP системы позволяют проводить совещания и видеоконференции
Удаленная работа - VoIP упрощает связь для сотрудников работающих удаленно позволяя им использовать офисные номера из любого места
**Личная связь:**
Мобильные устройства - С помощью VoIP приложений таких как Skype WhatsApp и Viber люди могут звонить друг другу бесплатно или по очень низким тарифам
Международные звонки - Пользователи могут значительно экономить на международных звонках используя VoIP вместо традиционной телефонии
**Call центры:**
Поддержка клиентов - VoIP системы часто используются в call центрах для управления большим числом входящих и исходящих звонков
Аналитика и запись разговоров - VoIP позволяет легко записывать и анализировать звонки для улучшения качества обслуживания
**Онлайн игры и мультимедиа:**
Голосовой чат в играх - Геймеры и пользователи мультимедийных платформ часто используют VoIP для голосового общения во время игры или просмотра контента
**Образование:**
Виртуальные классы VoIP помогает проводить онлайн уроки поддерживая аудио и видеосвязь между учителями и студентами
Вебинары и онлайн курсы Преподаватели могут вести лекции и семинары через VoIP платформы такие как Zoom и Microsoft Teams
**Здравоохранение:**
Телемедицина - Многие медицинские учреждения используют VoIP для проведения удалённых консультаций и поддержания связи между врачами и пациентами
Обмен информацией - VoIP помогает медицинскому персоналу обмениваться информацией быстро и безопасно
**Гостиничный и туристический бизнес:**
Обратная связь с гостями - Гостиницы и туристические агентства используют VoIP для связи с клиентами бронирования и поддержки
Внутренняя связь - VoIP помогает сотрудникам отелей и туристических компаний работать более эффективно и координировать свои действия
## Преимущества VoIP
**Экономическая выгода**
- Уменьшение расходов: VoIP обходится дешевле традиционных телефонных систем, особенно при международных звонках, что позволяет бизнесу и частным пользователям существенно сокращать затраты на связь.
- Нет необходимости в дорогостоящем оборудовании: Для использования VoIP не нужны специальные дорогие устройства — достаточно обычных компьютеров, смартфонов или других гаджетов.
**Мобильность и универсальность**
- Связь отовсюду: VoIP предоставляет возможность звонить и принимать звонки из любой точки, где есть интернет. Это удобно для удалённой работы и сотрудников, которые часто находятся в разъездах.
- Поддержка разных платформ: VoIP-системы могут работать на различных устройствах, включая настольные компьютеры, ноутбуки, смартфоны и планшеты.
**Расширенные функции**
- Видеообщение и конференции: VoIP позволяет проводить видеозвонки и видеоконференции, нередко не требуя дополнительных инвестиций.
- Мессенджеры и мультимедиа: Помимо голосовой связи, VoIP-системы поддерживают текстовые сообщения, обмен изображениями, видео и другими файлами.
- Совместимость с бизнес-приложениями: VoIP-системы могут быть интегрированы с разными бизнес-программами и CRM-системами для повышения эффективности и управления клиентами.
**Качество вызовов**
- Зависимость от качества интернет-соединения: Уровень VoIP-звонков напрямую зависит от скорости и стабильности интернет-подключения. Потеря пакетов данных или неустойчивое соединение могут негативно повлиять на качество связи.
- HD-звонки: При наличии качественного интернет-соединения VoIP может обеспечить высокое качество звонков в формате HD, которое часто превосходит традиционную телефонию по чистоте и четкости звука.
**Безопасность**
- Защита данных: Многие VoIP-системы предлагают шифрование звонков и сообщений, что повышает уровень безопасности передачи информации.
- Риски интернет-передач: Несмотря на шифрование, данные, передающиеся по интернету, всё равно подвержены рискам, поэтому компаниям необходимо дополнительно заботиться о безопасности.
**Масштабируемость**
- Простое расширение: VoIP-системы легко расширяются — можно добавлять новых пользователей или изменять конфигурации без сложных настроек оборудования.
- Комплексные бизнес-решения: VoIP позволяет организациям создавать сложные системы связи, включающие автоматическое распределение звонков, голосовые меню и другие функции.
**Управление и анализ**
- Аналитика и отчеты: VoIP-платформы часто оборудованы инструментами для аналитики и отчетности, что помогает отслеживать и анализировать активность вызовов.
- Запись звонков: Запись звонков полезна для обучения, контроля качества и в юридических целях.
## Недостатки VoIP
Зависимость от уровня сети: Уровень звонков может существенно колебаться в зависимости от скорости и устойчивости интернет-соединения.
Энергозависимость: В отличие от традиционной телефонной системы VoIP требует электричества для работы
Безопасность: Передача данных через интернет всегда сопряжена с рисками такими как взлом и несанкционированный доступ поэтому важно использовать шифрование и другие меры безопасности
https://serverspace.uz/support/glossary/dpkg.mdУзнайте, что такое dpkg и его ключевые особенности
Dpkg (Debian Package) — это утилита установки, удаления и управления пакетами программного обеспечения в операционной системе Debian и других на ее основе. Dpkg предоставляет пользователю возможность управлять установленными программами, обновлять их, удалять или проверять их статус. Также с помощью dpkg можно управлять файлами конфигурации и зависимостями пакетов. Dpkg использует формат deb для упаковки пакетов программного обеспечения.
Dpkg является частью системы управления пакетами APT (Advanced Package Tool), которая также обеспечивает удобное управление зависимостями и обновлениями программного обеспечения. Dpkg также предоставляет широкий спектр команд для работы с пакетами, включая установку, удаление, обновление, очистку, настройку и многое другое.
## Ключевые особенности
Одной из ключевых особенностей dpkg является его способность обрабатывать сложные зависимости между пакетами, позволяя устанавливать или удалять необходимые пакеты и автоматически устанавливать их зависимости.
Кроме того, dpkg также предоставляет возможность управления файлами конфигурации пакетов, позволяя пользователю выбирать между сохранением текущей версии конфигурационного файла, установкой новой версии или сравнением обоих версий.
В целом, dpkg является важным инструментом для управления пакетами программного обеспечения в операционных системах, основанных на Debian, и играет ключевую роль в обеспечении стабильной и безопасной работы с программным обеспечением.
https://serverspace.uz/support/glossary/diskreczionnaya-model-dostupa.mdУзнайте, что такое дискреционная модель доступа, для чего она используется и ее недостатки
Дискреционная модель доступа - это модель управления доступом, в которой администратор или владелец ресурса определяет, кому и какие разрешения предоставлять на доступ к ресурсу. Это означает, что человек, решающий, кому предоставить доступ, имеет полный контроль над этим процессом и может самостоятельно устанавливать правила доступа для каждого пользователя или группы пользователей.
## Использование данной модели
Дискреционная модель доступа широко используется в системах управления информацией и в компьютерных сетях, где важно контролировать доступ к конфиденциальным данным или ресурсам. Однако она имеет свои недостатки, такие как сложность управления большим количеством пользователей, отсутствие возможности установления гранулярных прав доступа и недостаточная защита от неправомерных действий со стороны пользователей.
В современных системах управления доступом часто используются более сложные модели, такие как мандатная модель доступа или ролевая модель доступа, которые предоставляют более гибкий и удобный способ управления доступом к ресурсам.
Дискреционная модель доступа основывается на принципе минимального доступа, что означает, что пользователи получают только те разрешения, которые им необходимы для выполнения своей работы. Кроме того, в этой модели существует возможность установки ограничений на доступ к определенным ресурсам или действиям.
## Недостатки данной модели
Основным недостатком дискреционной модели доступа является то, что управляющие права принимаются владельцем ресурса или администратором системы, что может привести к произволу или неправомерным действиям со стороны этих лиц. Кроме того, эта модель не всегда обеспечивает эффективную защиту от внутренних угроз, таких как утечки информации или злонамеренные действия сотрудников.
В связи с этим, в современных системах безопасности часто используются более сложные и усовершенствованные модели доступа, которые обеспечивают более гибкий и эффективный контроль за доступом к ресурсам, такие как мандатная модель доступа, ролевая модель доступа, или атрибутивная модель доступа.
https://serverspace.uz/support/glossary/fajlovaya-sistema.mdУзнайте, что такое файловая система, какие функции она выполняет и где используется
Файловая система - это организация, структура и управление данными на компьютере или других устройствах хранения информации. Она определяет, как файлы и каталоги (папок) хранятся и организованы на диске, а также как они могут быть файлами, каталогами, устройствами и другими объектами.
Файловая система выполняет следующие основные функции:
- **Организация данных**: файловая система упорядочивает данные, размещает их на диске и обеспечивает доступ к ним.
- **Управление доступом**: файловая система определяет, кто может просматривать, менять или удалять файлы и каталоги.
- **Название файлов и каталогов**: файловая система предоставляет способ называть файлы и каталоги с помощью уникальных имён.
- **Индексирование и поиск**: файловая система упрощает поиск файлов и каталогов на диске с помощью индексации.
- **Присвоение разрешений доступа**: файловая система определяет, какие права доступа имеют пользователи и группы для каждого файла и каталога.
Файловые системы используются в различных устройствах и операционных системах, включая:
- **Компьютеры**: файловая система используется для хранения и управления файлами на жестких дисках, твердотельных накопителях и других внешних устройствах хранения данных.
- **Сети**: файловая система используется для обмена файлами между компьютерами в сети, например, с помощью протоколов файлообмена, таких, как FTP, SMB/CIFS и NFS.
- **Серверы**: файловая система используется на серверах для хранения и управления файлами, которые могут быть доступны для многих пользователей.
- **Операционные системы**: файловая система используется для управления файлами и каталогами на компьютерах с различными операционными системами, такими как Windows, macOS, Linux и Unix-подобные системы.
Существует множество типов файловых систем, каждая со своими преимуществами и недостатками. Например, NTFS и FAT32 используются в Windows, HFS+ - в macOS, ext3, ext4 и ext5 - в Linux, а XFS и ZFS - в Unix-подобных системах.
https://serverspace.uz/support/glossary/dpi.mdУзнайте, что такое DPI, для каких целей он необходим и как он работает
DPI (Deep Packet Inspection) - технология глубокого анализа сетевых пакетов позволяет проводить детальный анализ и управление интернет-трафиком на уровне отдельных пакетов информации. Благодаря DPI можно извлекать метаинформацию из пакетов, определять тип передаваемых данных, источник и конечный адресат, а также регулировать передачу информации в сети Интернет.
DPI необходим для следующих целей:
- **Мониторинг и управление сетевой безопасностью**: DPI обеспечивает обнаружение и блокировку вредоносных данных, включая вирусы, троянские программы и другие киберугрозы, чтобы предотвратить ущерб для сети.
- **Модернизация трафика**: с помощью DPI администраторы сети могут регулировать и контролировать поток данных, чтобы предотвратить перегрузку сети и оптимизировать использование ресурсов.
- **Контроль контента**: DPI позволяет фильтровать и блокировать доступ к нежелательному контенту, включая порнографию и вредоносные сайты, чтобы обеспечить безопасность и целостность сети.
- **Обработка и анализ данных**: DPI собирает статистику о трафике и анализирует ее, чтобы помочь в принятии решений об оптимизации сети и улучшении ее производительности.
DPI работает следующим образом:
- **Сбор пакетов данных**: DPI-система собирает пакеты данных, проходящие через сеть.
- **Анализ пакетов**: DPI-система анализирует каждый пакет данных, чтобы извлечь информацию о типе трафика, источнике и целевом адресе.
- **Идентификация трафика**: DPI-система использует различные алгоритмы и базы данных, чтобы идентифицировать тип трафика, например, HTTP, FTP, SSH и т.д.
- **Применение политик**: DPI-система применяет политики безопасности и фильтрации, чтобы определить, какой трафик нужно блокировать или фильтровать.
- **Контроль трафика**: DPI-система контролирует трафик в соответствии с установленными политиками, блокируя или фильтруя нежелательный трафик.
В целом, DPI - это мощный инструмент для контроля и мониторинга сетевого трафика, который помогает обеспечить безопасность и эффективность сети.
https://serverspace.uz/support/glossary/ansible.mdУзнайте, что такое Ansible, его функции, преимущества, примеры использования и рабочий процесс
Ansible - это открытое программное обеспечение для автоматизации, которое помогает вам управлять и оркестрировать инфраструктуру, приложения и сервисы. Это мощная платформа, которая позволяет автоматизировать повторяющиеся задачи, развертывать приложения и управлять сложными системами с легкостью.
## Основные функции Ansible
- **Управление конфигурацией**: Ansible помогает управлять и настраивать инфраструктуру, такая как серверы, сети и базы данных, в различных средах (например, разработка, тестирование, производство).
- **Развертывание приложений**: Ansible автоматизирует развертывание приложений, включая веб-серверы, базы данных и микросервисы, для обеспечения согласованного и повторяемого развертывания.
- ** Оркестрация**: Ansible координирует сложные задачи, такие как обновления, резервное копирование и исправление уязвимостей, для обеспечения того, что ваши системы всегда актуальны и безопасны.
- **Мониторинг и техническое обслуживани**е: Ansible предоставляет способ мониторинга и обслуживания вашей инфраструктуры, обнаружения проблем и выполнения задач для их исправления.
Ansible работает с помощью уникального подхода, называемого "архитектура без агентов", что означает, что она не требует установки агентов или программного обеспечения на управляемых узлах (серверах, устройствах и т.д.). Вместо этого Ansible использует протоколы SSH (Безопасная оболочка) или WinRM (Управление удаленными системами Windows) для подключения к узлам и выполнения задач.
## Обзор рабочего процесса Ansible
- **Инвентаризация**: Вы создаете каталог узлов (серверов, устройств и т. д.) в тщательно проработанном файле инвентаризации. Этот основополагающий документ служит чертежом для вашего пути автоматизации.
- **Playbook Pioneer**: Далее вы разрабатываете playbook - YAML-файл, который организует последовательность задач для выполнения на указанных узлах. Этот стратегический документ описывает точные действия, которые необходимо предпринять, обеспечивая гармоничный и эффективный рабочий процесс.
- **Превосходство выполнения**: Затем Ansible устанавливает безопасное соединение с узлами через SSH или WinRM и с точностью до мелочей выполняет задачи, указанные в книге действий. Эта бесшовная интеграция гарантирует, что ваша концепция автоматизации воплотится в реальность
## Ключевые преимущества Ansible
- **Эффективность**: Ansible автоматизирует повторяющиеся задачи, освобождая ваше время для более стратегических активностей.
- **Согласованность**: Ansible обеспечивает согласованность в вашей инфраструктуре, уменьшая ошибки и время простоя.
- **Гибкость**: Ansible поддерживает широкий спектр платформ, включая Linux, Windows, сетевые устройства и провайдеров облачных услуг.
- **Безопасность**: Ansible обеспечивает безопасный способ управления инфраструктурой, используя протоколы SSH и WinRM для защищенной связи.
Примеры использования:
- **DevOps**: Ansible - популярный выбор для команд DevOps, позволяющий им автоматизировать CI/CD-pipelines, развертывание и мониторинг.
- **Управление облаком**: Ansible помогает управлять инфраструктурой облака, такой как AWS, Azure и Google Cloud, в нескольких регионах и аккаунтах.
- **Автоматизация сетей**: Ansible автоматизирует задачи, такие как настройка, мониторинг и обслуживание сетевых устройств.
- **Безопасность и соответствие**: Ansible помогает с патчами безопасности, управлением уязвимостями и отчетностью о соответствии.
В целом, Ansible - это мощный инструмент автоматизации, который упрощает управление инфраструктурой, развертывание приложений и оркестрацию. Его гибкость, безопасность и эффективность делают его популярным выбором среди команд DevOps, администраторов систем и ИТ-профессионалов.
https://serverspace.uz/support/glossary/index-git.mdУзнайте, что такое Index Git или же Git Index, какую роль он выполняет, его возможности и команды связанные с ним
Index Git, также известный как Git Index или Staging Area, является важной частью системы контроля версий Git. **Index Git** - это файл в репозитории Git, который хранит информацию о файловой системе репозитория. Он выступает в роли промежуточного слоя между рабочим деревом (Working tree) и коммитом (Commit).
Когда вы делаете изменения в файловой системе репозитория, Git не сразу фиксирует эти изменения в коммите. Вместо этого, он сохраняет информацию о изменениях в Index Git. Затем, когда вы готовы зафиксировать изменения, Git берет информацию из Index и создает коммит.
Index Git содержит информацию о следующих вещах:
- Файлы, которые были изменены или добавлены в репозиторий.
- Файлы, которые были удалены из репозитория.
- Метки времени (timestamps) для каждого файла.
- Информация о родительских директориях для каждого файла.
Index Git играет важную роль в работе с Git, потому что он позволяет:
- Контролировать изменения, которые будут включены в коммит.
- Проверять изменения перед созданием коммита.
- Отменять изменения, если они не нужны.
- Создавать коммиты с учетом выбранных изменений.
Команды Git, которые напрямую связаны с Index Git, включают:
- **git add**: добавляет файлы в Index Git.
- **git reset**: отменяет изменения в Index Git.
- **git rm** --cached: удаляет файлы из Index Git, но не из файловой системы.
- **git status**: отображает информацию о состоянии Index Git и рабочего дерева.
В целом, Index Git - это важный механизм, который позволяет Git эффективно управлять изменениями в репозитории и создавать коммиты с учетом выбранных изменений.
https://serverspace.uz/support/glossary/commit.mdУзнайте, что такое Commit (коммит), его свойства, для чего он используется и основные команды, которые напрямую связаны с ним
**Commit** (коммит) в Git - это снапшот (моментальный снимок) состояния репозитория в определенный момент времени. Коммит - это основная единица хранения изменений в репозитории Git.
Когда вы создаете коммит, Git берет информацию из Index Git (Staging Area) и сохраняет ее в виде снапшота в репозитории.
Коммит содержит информацию о:
- Изменениях, которые были внесены в репозиторий.
- Авторе коммита (имя и электронный адрес).
- Дата и время создания коммита.
- Сообщение коммита (описание изменений).
Каждый коммит имеет свой уникальный отпечаток пальца в виде хеша SHA-1, который обеспечивает его уникальность и позволяет связать его с предшественниками и потомками.
В Git коммиты образуют сложную сеть, где каждый узел (коммит) имеет ссылку на своего предка, что позволяет системе контроля версий реконструировать историю изменений репозитория и восстанавливать любое его прошлое состояние.
## Свойства
Коммиты в Git имеют следующие свойства:
- Immutable: Коммиты в Git неизменны, то есть после создания коммита его содержимое не может быть изменено.
- Ordered: Коммиты в Git имеют определенный порядок, то есть каждый коммит имеет ссылку на предыдущий коммит.
- Connected: Коммиты в Git связаны между собой в виде графа.
## Для чего используются
- Хранения истории изменений в репозитории.
- Восстановления любого состояния репозитория в прошлом.
- Сравнения изменений между коммитами.
- Создания веток и слияния изменений.
Команды Git, которые напрямую связаны с коммитами, включают:
- **git commit**: создает новый коммит на основе изменений в Index Git.
- **git log**: отображает список коммитов в репозитории.
- **git show**: отображает информацию о конкретном коммите.
- **git branch**: создает новую ветку на основе существующего коммита.
- **git merge**: сливает изменения из одной ветки в другую.
В сущности, коммиты в Git представляют собой cornerstones цифрового хранилища, обеспечивая строгий контроль над
https://serverspace.uz/support/glossary/docker-hub.mdУзнайте, что такое Docker Hub, его преимущества, основные функции, для чего используется и что нужно чтобы им пользоваться
**Docker Hub** — это облачная платформа для публикации, хранения и распространения Docker-образов, которая позволяет разработчикам делиться контейнеризированными приложениями и сервисами. Это своеобразное хранилище (регистри), где можно найти как официальные, проверенные образы от различных поставщиков и проектов, так и образы от сообщества и отдельных пользователей.
## Основные функции Docker Hub
- **Публичные и приватные репозитории** — Docker Hub позволяет хранить образы как в открытых, доступных для всех, так и в закрытых репозиториях, доступ к которым ограничен.
- **Автоматическая сборка образов** (Automated Builds) — с помощью Docker Hub можно настроить автоматическую сборку образов Docker на основе кода из GitHub или Bitbucket. Это позволяет каждый раз при обновлении кода в репозитории автоматически создавать новый образ.
- **Вебхуки** — интеграция с CI/CD-системами через вебхуки, которые запускают сборку или обновление образов при изменениях.
- **Docker Hub CLI и API** — инструменты для автоматизации и управления репозиториями через командную строку и API.
## Преимущества использования Docker Hub
- **Ускорение развертывания приложений** — можно быстро скачать готовые образы, что экономит время на установку и настройку.
- **Совместная работа** — команды разработчиков могут использовать один общий реестр для обмена сборками и версиями приложений.
- **Надежность и безопасность** — многие образы проходят проверку и публикуются официально, например, образы от компаний-разработчиков баз данных, серверов, операционных систем и прочих инструментов.
- Для использования Docker Hub достаточно создать аккаунт, загрузить Docker-клиент и с его помощью загружать, скачивать и управлять образами.
https://serverspace.uz/support/glossary/registri.mdУзнайте, что такое регистри в контексте Docker, как он работает и примеры самых популярных публичных регистри
В контексте Docker, Регистри — это серверное приложение или платформа для хранения и управления Docker-образами, своеобразное "хранилище", куда загружаются контейнеры, и откуда их можно скачивать. Оно позволяет разработчикам публиковать образы, сохранять версии, управлять ими и обеспечивать доступ для скачивания.
## Как работает регистри
- **Загрузка** (Push) — разработчики могут загружать свои образы в регистри.
- **Скачивание** (Pull) — любые пользователи, имея доступ, могут скачать образы для развертывания контейнеров.
- **Метки и версии** — образы хранятся в виде версий, так что одна и та же программа может быть представлена несколькими версиями (например, latest, 1.0, 2.0), и их удобно скачивать для различных нужд.
Docker Hub — это один из самых популярных публичных регистри, но есть и другие, например, Amazon ECR, Google Container Registry, а также возможность установить частный регистри для работы в рамках компании.
https://serverspace.uz/support/glossary/automated-builds.mdУзнайте, что такое Automated Builds (автоматические сборки), их преимущества, как они работают и для чего используются
**Automated Builds** (автоматические сборки) — это функция Docker Hub, которая позволяет автоматически создавать Docker-образы из исходного кода. С ее помощью при каждом обновлении кода в репозитории, например, в GitHub или Bitbucket, автоматически запускается процесс сборки нового образа. Это удобно для интеграции с CI/CD, так как позволяет поддерживать образы актуальными и сводит к минимуму ручные действия.
## Как работает Automated Builds
- **Связь с репозиторием** — сначала нужно связать Docker Hub с репозиторием, где хранится код (например, GitHub или Bitbucket).
- **Настройка триггера на обновления** — при каждом коммите или изменении ветки в репозитории автоматически запускается сборка.
- **Создание образа** — Docker Hub создает новый образ на основе Dockerfile и загружает его в выбранный репозиторий.
- **Теги и версии** — можно настроить теги для версий образов, чтобы каждый новый билд был доступен с нужным тегом.
## Преимущества Automated Builds
- **Автоматизация и экономия времени** — разработчики освобождаются от необходимости вручную обновлять и загружать образы.
- **Обеспечение актуальности** — образы всегда обновлены и синхронизированы с последними изменениями в коде.
- **Удобство версионирования** — возможность задавать теги помогает управлять версиями образов, что полезно для развертывания и тестирования.
Automated Builds упрощает процесс развертывания приложений, поддерживая их образы актуальными без лишних усилий.
https://serverspace.uz/support/glossary/migracziya.mdУзнайте, что такое миграция, как IT термин, какие типы миграции бывают и узнайте о миграции вместе с Serverspace
Миграция в IT сфере — это процесс переноса данных, приложений или других цифровых ресурсов с одной системы на другую. Этот процесс может происходить по нескольким причинам, включая необходимость обновления оборудования или программного обеспечения, улучшение безопасности, оптимизацию производительности или переход на более мощные или гибкие платформы.
## Типы миграции
**Миграция данных:**
- Обновление или замена систем управления базами данных (СУБД): Перенос данных с одной СУБД на другую, например, с MySQL на PostgreSQL.
- Миграция хранилищ данных: Перенос данных между различными хранилищами данных, например, с локального сервера на облачное хранилище.
**Миграция приложений:**
- Перемещение на другую платформу: Перенос приложения с одной вычислительной платформы на другую, например, с локального сервера на облачный сервис.
- Обновление приложений: Переход с одной версии программного обеспечения на другую, более новую версию.
**Миграция инфраструктуры:**
- Перемещение в облако: Перенос IT-инфраструктуры организации в облако.
- Обновление серверов и хранилищ: Замена старого оборудования новыми, более производительными системами.
**Миграция виртуальных машин:**
- Перемещение виртуальных машин между хостами: Например, с одного физического сервера на другой, чтобы улучшить нагрузку или обеспечить бесперебойную работу.
**Миграция сетевой инфраструктуры:**
- Переход на новые технологии (например, с IPv4 на IPv6) или расширение и модернизация сети.
## Процесс миграции
Процесс миграции обычно включает следующие этапы:
- **Планирование**: Определение объема работы, анализ текущего состояния и выбор новой целевой системы.
- **Подготовка**: Резервное копирование данных, обучение персонала, настройка целевой системы.
- **Перенос**: Собственно процесс миграции, включающий передачу данных и конфигурации с минимальными перебоями.
- **Тестирование**: Проверка корректности переноса и функциональности на новой платформе.
- **Завершение**: Устранение проблем, если они возникли, и переход на новые системы.
Миграция может быть сложным и трудоемким процессом, требующим тщательного планирования и исполнения, чтобы минимизировать риски и обеспечить непрерывность работы.
## Миграция и Serverspace
Нужна помощь по переносу данных с физического на виртуальный сервер? Ищете инструкцию по миграции с помощью OVF или OVA файлов? Ответы на ваши вопросы вы найдете в нашем пуле инструкций - [Миграция](https://serverspace.ru/support/help/category/migration/).
Также Serverspace бесплатно мигрирует ваши серверы от другого провайдера. [Бесплатно перевезем ваши виртуальные серверы в облако Serverspace](https://serverspace.ru/services/cloud-migration-serverspace/). Обеспечим круглосуточную поддержку по телефону и через панель управления.
https://serverspace.uz/support/glossary/deploj.mdУзнайте, что такое деплой и какие шаги он включает
Деплой в IT сфере означает процесс развертывания и выпуска программного обеспечения в рабочую среду. То есть, деплой включает в себя все шаги, необходимые для того, чтобы приложение или система были готовы к использованию конечными пользователями. Этот процесс может включать в себя проверку кода, сборку, конфигурацию, тестирование и, наконец, развертывание на серверах.
С появлением облачных технологий деплой стал более гибким и масштабируемым процессом. Облачные сервисы предоставляют множество инструментов и платформ для автоматизации и упрощения деплоя. Вот основные аспекты деплоя в сфере облачных серверов.
- **Автоматизация деплоя:**
CI/CD (Continuous Integration/Continuous Deployment): Интеграция и непрерывное развертывание. Облачные платформы, такие как AWS CodePipeline, Azure DevOps и Google Cloud Build, предлагают инструменты для автоматизации процессов интеграции и развертывания кода.
Скрипты и инструменты: Использование скриптов (например, Shell, Python) и инструментов (например, Terraform, Ansible) для автоматизации рутинных задач конфигурации и развертывания.
- **Контейнеризация:**
Docker: Контейнеры Docker дают возможность собрать приложение вместе со всеми его зависимостями в единый пакет, который можно без труда развернуть в любом окружении.
Оркестрация контейнеров: Платформы для управления контейнерами, такие как Kubernetes, помогают автоматизировать деплой, управление и масштабирование контейнеризованных приложений.
- **Использование облачных сервисов PaaS и FaaS:**
PaaS (Platform as a Service): Платформы, такие как Heroku, Google App Engine или AWS Elastic Beanstalk, предлагают интегрированное рабочее окружение, где можно развернуть приложение с минимальной конфигурацией инфраструктуры.
FaaS (Function as a Service): Облака включают такие технологии, как AWS Lambda, Azure Functions и Google Cloud Functions, где можно развернуть и запускать небольшие функциональные куски кода без необходимости управления серверами.
- **Инфраструктура как код (IaC):**
Terraform, CloudFormation и другие: Эти инструменты позволяют описывать инфраструктуру с помощью кода. Можно прописать всю конфигурацию серверов, сетей и других ресурсов, что упрощает репликацию и развертывание в различных окружениях.
- **Мониторинг и логирование:**
Облачные провайдеры предлагают разнообразные инструменты мониторинга (например, AWS CloudWatch, Azure Monitor) и логирования (ELK Stack), которые помогают отслеживать состояние и производительность развернутых приложений и своевременно реагировать на возникающие проблемы.
- **Безопасность**:
Безопасность является критически важным аспектом деплоя в облаке. Это включает в себя шифрование данных, управление доступом, настройку брандмауэров и регулярные обновления безопасности.
Шаги деплоя в облаке
- **Написание кода и сборка:** Разработка и тестирование кода на локальной машине или в изолированном окружении.
- **Контейнеризация (при необходимости):** Упаковка приложения в контейнер.
- **Настройка CI/CD пайплайна:** Настройка CI/CD для автоматизации проверки и развертывания кода.
- **Развертывание инфраструктуры (IaC):** Использование инструментов IaC для развертывания необходимой инфраструктуры.
- **Развертывание приложения:** Непосредственный деплой приложения на облачную платформу.
- **Мониторинг и поддержка:** Конфигурация систем мониторинга и записи логов для гарантии надежной работы приложения.
https://serverspace.uz/support/glossary/gpu.mdУзнайте, что такое графический процессор (GPU), как он работает и где применяется. Рассмотрим параллельные вычисления, рендеринг, глубокое обучение, научные расчёты и ведущих производителей GPU, таких как NVIDIA, AMD и Intel.
**Графический процессор (GPU, Graphics Processing Unit)** — это специализированное электронное устройство, предназначенное для выполнения вычислений, связанных с обработкой графики и параллельных вычислительных задач. Первоначально GPU были разработаны для рендеринга изображений, обработки видеоигр и других графических операций. Со временем их функциональные возможности были значительно расширены, что позволило решать более широкий спектр вычислительных задач.
## Основные характеристики и функции GPU
**Параллельные вычисления:**
GPU содержит множество ядер (иногда тысячи), которые могут выполнять небольшие задачи параллельно. Это делает его очень эффективным для задач, которые можно разбить на множество независимых операций, таких как рендеринг графики или обработка больших массивов данных.
**Графическая обработка:**
GPU специально сконструирован для ускорения рендеринга как в 2D, так и в 3D-графике. Он выполняет такие операции, как растеризация, текстурирование и шейдинг.
**Использование в глубоком обучении и научных вычислениях:**
Из-за своей параллельной архитектуры, GPU стали очень популярными в таких областях, как глубокое обучение (нейронные сети) и научные вычисления. Программные платформы, такие как CUDA (от NVIDIA) и OpenCL, позволяют разработчикам выполнять вычислительные задачи на GPU.
**Видео и мультимедийная обработка:**
GPU может декодировать и кодировать видео, обрабатывать высококачественное видеоизображение, обеспечивая плавное воспроизведение мультимедийного контента.
## Применение GPU
**Компьютерные игры:**
Этот компонент жизненно важен для получения высококачественной графики в видеоиграх. Он обеспечивает высокую производительность и реалистичность графики, поддерживая технологии, такие как рейтрейсинг (трассировка лучей).
**Профессиональная графика и дизайн:**
В областях, таких как 3D-моделирование, анимация, CAD (системы автоматизированного проектирования), GPU помогает ускорить процесс визуализации и создавать сложные визуальные эффекты.
**Научные и инженерные расчеты:**
GPU используется в задачах, требующих интенсивных вычислений, таких как моделирование, симуляция и обработка больших данных.
**Глубокое обучение и искусственный интеллект:**
Тренировка нейронных сетей с большими количеством данных значительно ускоряется при использовании GPU, что делает его ключевым компонентом в современных исследованиях и разработках в сфере AI.
## Популярные производители
- **NVIDIA:**
Известна своей линейкой GPU, включая серию GeForce для игр и серию Quadro для профессиональной графики. Также предлагает платформу CUDA для разработки параллельных вычислений.
- **AMD:**
Продукты включают игровые GPU серии Radeon и профессиональные графические карты Radeon Pro. AMD также поддерживает OpenCL для разработки на GPU.
- **Intel:**
В последние годы Intel начала вкладываться в рынок GPU, выпуская свои продукты, такие как Intel Iris Xe для интегрированных решений и планируя выпуск дискретных GPU для настольных компьютеров и серверов.
GPU играет ключевую роль в современных вычислениях, не ограничиваясь только графикой, но и охватывая широкий спектр высокопроизводительных вычислительных задач.
https://serverspace.uz/support/glossary/balansirovshhik-nagruzki.mdУзнайте, что такое балансировщик нагрузки и его основные функции, преимущества, примеры использования и многое другое!
Балансировщик нагрузки, или Load Balancer, это специализированное устройство или программное решение, предназначенное для равномерного распределения входящего трафика среди нескольких серверов или сервисов. Основная цель балансировщика нагрузки — улучшение доступности и производительности системы, а также обеспечение отказоустойчивости.
## Основные функции балансировщика нагрузки
**Распределение трафика:**
- **Round Robin**: Поочередное распределение запросов по серверам.
- **Least Connections**: Направление запросов на сервер с наименьшим количеством активных соединений.
- **Least Response Time**: Направление запросов на сервер с наименьшим временем отклика.
- **Source IP Hash**: Использует хеширование IP-адреса источника для определения сервера назначения.
**Мониторинг состояния серверов: **
Балансировщики нагрузки регулярно проверяют состояние серверов с помощью различных методов (например, Ping, HTTP-запросы). Если один из серверов выходит из строя, балансировщик исключает его из списка активных до восстановления работоспособности.
**SSL/TLS терминация:**
Балансировщику нагрузки можно доверять расшифровку зашифрованного трафика (SSL/TLS), освобождая приложение от этой задачи и уменьшая нагрузку на серверы.
**Сессии и кэширование:**
Некоторым пользователям требуется сохранять сессионные данные (sticky sessions), такие как корзины покупок в интернет-магазинах. Балансировщик может направлять все запросы от одного пользователя на один и тот же сервер.
**Отказоустойчивость: **
В случае отказа одного или нескольких серверов, балансировщик обеспечивает продолжение обслуживания пользователей, перенаправляя трафик на работающие сервера.
## Преимущества использования балансировщиков нагрузки
- Высокая доступность и надежность: За счет распределения трафика обеспечивается большая отказоустойчивость системы.
- Масштабируемость: Легкость добавления новых серверов в кластер для обработки увеличенного объема трафика.
- Оптимизация производительности: Улучшение времени отклика и общей производительности благодаря равномерному распределению нагрузки.
- Централизованное управление трафиком: Упрощает управление и мониторинг распределения нагрузки.
Примеры балансировщиков нагрузки:
- **Аппаратные**: F5 Networks, Cisco, Citrix ADC (ранее известный как NetScaler).
- **Программные**: Nginx, HAProxy, Apache Traffic Server.
- **Облачные**: AWS Elastic Load Balancing, Google Cloud Load Balancing, Azure Load Balancer.
Балансировщики нагрузки являются важным инструментом в современных веб-приложениях и крупномасштабных системах для обеспечения их надежности, производительности и масштабируемости.
## Виды балансировщиков нагрузки
Балансировщики нагрузки предназначены для распределения входящего сетевого трафика между различными серверами или ресурсами. Это помогает оптимизировать использование ресурсов, улучшить производительность системы и обеспечить её отказоустойчивость. Существуют следующие основные виды балансировщиков нагрузки:
### 1. **Аппаратные балансировщики нагрузки**
- **Описание**: Это специализированные устройства, которые используются в центрах обработки данных для управления сетевым трафиком. Они предоставляют высокую производительность, безопасность и масштабируемость.
- **Примеры**: F5 Networks, Citrix ADC (ранее NetScaler), A10 Networks.
### 2. **Программные балансировщики нагрузки**
- **Описание**: Это программные решения, которые работают на стандартных серверах. Они гибкие и часто более доступные по сравнению с аппаратными балансировщиками.
- **Примеры**: HAProxy, Nginx, Traefik, Apache HTTP Server.
### 3. **Облачные балансировщики нагрузки**
- **Описание**: Облачные провайдеры, такие как AWS, Azure и Google Cloud, предлагают встроенные решения для балансировки нагрузки, которые легко масштабируются и управляются.
- **Примеры**: AWS Elastic Load Balancing (ELB), Azure Load Balancer, Google Cloud Load Balancer.
### 4. **DNS-балансировка нагрузки (Anycast)**
- **Описание**: Это метод распределения нагрузки с использованием системы доменных имен (DNS). DNS возвращает IP-адрес сервера на основе различных факторов, таких как географическое положение клиента.
- **Примеры использования**: Например, в системе CDN (сети доставки контента).
### 5. **Балансировка нагрузки на уровне сети (L4)**
- **Описание**: Работа осуществляется на уровне 4 модели OSI (транспортный уровень), обычно распределяя трафик на основе IP-адресов источника и назначения, а также портов.
- **Примеры решений**: балансировка с использованием IP-хэша, персистентность сессий.
### 6. **Балансировка нагрузки на уровне приложений (L7)**
- **Описание**: Работа осуществляется на уровне 7 модели OSI (уровень приложений), анализируя HTTP-заголовки, содержимое запросов и предоставляя более сложные возможности маршрутизации.
- **Примеры решений**: маршрутизация на основе URL, балансировка трафика с SSL-терминацией.
Эти типы балансировщиков можно комбинировать для достижения лучших результатов в зависимости от нужд сети и приложений.
https://serverspace.uz/support/glossary/lamp.mdУзнайте, что такое LAMP, его особенности и различия от LEMP
LAMP (Linux, Apache, MySQL, PHP) — это акроним, который обозначает набор программного обеспечения, используемого для разработки и развертывания веб-приложений. Обычно он включает в себя следующие компоненты:
- **Linux**: Операционная система, базирующаяся на ядре Linux. Она обычно выбирается за свою стабильность, безопасность и доступность кода.
- **Apache**: Веб-сервер Apache, обрабатывающий запросы от клиентов (веб-браузеров) и отправляющий запрашиваемые данные. Apache ценится за надежность и гибкость.
- **MySQL**: Система управления реляционными базами данных (СУБД). MySQL используется для хранения данных веб-приложений и поддерживает SQL (язык структурированных запросов). Она хорошо интегрируется с другими компонентами стека.
- **PHP**: Язык программирования PHP, предназначенный для создания динамических веб-страниц. PHP интерпретируется сервером и может взаимодействовать с базой данных для создания веб-контента в реальном времени.
LAMP является одним из самых распространенных стэков для разработки веб-приложений.
Этот стек популярен для веб-разработки благодаря своей открытости (практически все компоненты имеют открытый исходный код), гибкости и широкой поддержке сообщества. Существуют вариации стека, такие как WAMP (на базе Windows), MAMP (на базе macOS) и LEMP, где Nginx заменяет Apache.
## Преимущества LAMP
- Open code: Все элементы стека LAMP являются бесплатными и поставляются с открытым исходным кодом.
- Широкая поддержка: Большое количество документации, форумов и сообществ.
- Масштабируемость: Возможность масштабирования приложений по мере роста числа пользователей.
- Гибкость: Высокий уровень настройки и использования компонентов.
## Недостатки
- Настройка и конфигурация: Может потребоваться знание Linux и сетевых конфигураций.
- Производительность: В некоторых случаях может потребоваться оптимизация для высоких нагрузок.
## Варианты стека LAMP
В рамках стека LAMP возможны различные вариации в зависимости от специфических потребностей проекта. Например, замена MySQL на MariaDB, что также является реляционной базой данных и полностью совместимой веткой MySQL. Кроме того, PHP может дополняться другими языками серверного программирования, такими как Perl или Python.
## Производительность и оптимизация
Хотя LAMP-стек сам по себе способен обрабатывать значительные нагрузки, многие администраторы применяют дополнительные методы оптимизации для повышения производительности:
- **Кэширование**: Использование кэширующих механизмов, таких как Memcached или Redis, для уменьшения нагрузки на базу данных.
- **Оптимизация базы данных**: Настройка и индексация таблиц, регулярный анализ запросов для улучшения их выполнения.
- **Реверс-прокси**: Использование систем вроде Varnish для кэширования HTTP-запросов и уменьшения нагрузки на веб-сервер.
## Безопасность
С учетом того, что LAMP является открытым программным обеспечением, сообщество постоянно находит и исправляет уязвимости. Однако, администраторам необходимо соблюдать лучшие практики безопасности, такие как регулярное обновление компонентов, ограничение прав доступа, использование брандмауэров и внедрение SSL/TLS для шифрования трафика.
## Современные альтернативы
Хотя LAMP остается популярным выбором, существуют и другие стеки, такие как MEAN (MongoDB, Express.js, Angular, Node.js) и MERN (MongoDB, Express.js, React, Node.js), которые предлагают современные инструменты для разработки приложений на JavaScript.
## Различия LAMP и LEMP
LAMP и LEMP — это две популярные сборки программного обеспечения, применяемые для разработки и развертывания веб-приложений. Основное различие между ними заключается в выборе веб-сервера. Рассмотрим основные различия и особенности каждого из них.
### Сравнение и выбор
**Производительность**:
- LEMP часто выбирают для высоконагруженных сайтов и веб-приложений благодаря его лучшей производительности и меньшим требованиям к ресурсам по сравнению с Apache.
**Конфигурация и удобство:**
- Apache предлагает большую гибкость благодаря широкому выбору модулей и более простым конфигурационным файлам.
- Nginx может показаться сложнее в настройке, особенно для тех, кто знаком только с Apache, но его базовые настройки часто оказываются проще и удобнее.
**Используемые ресурсы:**
- Nginx обычно потребляет меньше оперативной памяти и процессорного времени, что делает его подходящим для серверов с ограниченными ресурсами.
**Применение:**
- LAMP более универсален для разнообразных сценариев, особенно когда необходимо поддерживать старое ПО, требующее Apache.
- LEMP идеально подходит для современных высоконагруженных приложений, нуждающихся в максимальной производительности.
Таким образом, оба стека, LAMP и LEMP, предлагают мощные и надежные решения для разработки и развертывания веб-приложений. Выбор между ними зависит от специфических требований вашего проекта, уровня нагрузки на сервер и предпочтений в конфигурации и управлении сервером.
## LAMP и Serverspace
В [нашей базе знаний](https://serverspace.ru/support/help/category/lamp-lemp/) вы можете найти большое количество инструкций по LAMP и его установке.
Например инструкций по установке на различные системы: [на Ubuntu](https://serverspace.ru/support/help/ustanovka-lamp/) и [на CentOS](https://serverspace.ru/support/help/ustanovka-lamp-na-centos/).
https://serverspace.uz/support/glossary/cgroups.mdУзнайте, что такое Cgroups и для чего они используются
Cgroups (Control Groups) - это механизм в ядре Linux, который позволяет ограничивать и управлять ресурсами, такими как CPU, память, ввод/вывод, и другие, для групп процессов. Это позволяет справляться с проблемой изоляции и контроля ресурсов в многопользовательских и многозадачных системах.
Cgroups позволяют устанавливать ограничения на использование ресурсов для определенных групп процессов, что обеспечивает более эффективное и предсказуемое использование ресурсов на сервере. Например, можно установить, что определенная группа процессов не может использовать более определенного количества CPU или памяти, что улучшит общую производительность системы.
Кроме ограничения ресурсов, cgroups также могут использоваться для управления приоритетами процессов, изоляции процессов, балансировки нагрузки и контроля доступа к ресурсам.
Cgroups позволяют группировать процессы и устанавливать правила для управления ресурсами для каждой группы. Это особенно полезно в виртуализированных средах, где необходимо обеспечить изоляцию и управление ресурсами для различных групп процессов или контейнеров.
Также стоит отметить, что cgroups широко используются в различных технологиях контейнеризации, таких как Docker, Kubernetes и других. Они позволяют управлять и распределять ресурсы между контейнерами, обеспечивая более эффективное использование вычислительных ресурсов.
https://serverspace.uz/support/glossary/apt.mdУзнайте, что такое apt и для чего он нужен
apt (Advanced Package Tool) - пакетный менеджер, предназначенный для операционных систем Debian и Ubuntu. Этот инструмент обеспечивает легкий и удобный способ установки, удаления и обновления программного обеспечения. Дополнительно, APT способен автоматически управлять зависимостями между пакетами, что значительно облегчает процесс установки приложений и библиотек. APT использует файлы конфигурации и репозитории пакетов для обеспечения актуальности и безопасности установленного программного обеспечения.
**APT** сделал свой дебют в Debian в 1998 году и стал основной утилитой управления пакетами для большинства дистрибутивов Linux, построенных на базе Debian, включая Ubuntu, Linux Mint и другие. В своем арсенале APT имеет широкий спектр инструментов командной строки, включая** apt-get, apt-cache, apt-key**, предоставляющих множество возможностей для эффективного контроля за пакетным программным обеспечением.
С появлением последних версий Debian и Ubuntu появились дополнительные утилиты, основанные на APT, такие как aptitude и synaptic, которые предлагают удобный графический интерфейс для управления пакетами.
**APT** упрощает обновление списка доступных пакетов, а также выполнение установки, удаления и обновления пакетов с минимальными усилиями со стороны пользователя. Благодаря проверке подлинности и обеспечению безопасной установки пакетов, APT представляет собой надежный инструмент для управления программным обеспечением на операционных системах Linux.
https://serverspace.uz/support/glossary/mandatnaya-model-dostupa.mdУзнайте, что такое мандатная модель доступа, примеры ее использования, плюсы и недостатки данной системы
Мандатная модель доступа - это модель управления доступом, которая основана на назначении ролей и правил для пользователей. В этой модели каждый пользователь имеет определенную роль, которая определяет их права доступа к различным ресурсам системы.
Кроме того, в мандатной модели доступа существует концепция обязательных доступов, которая определяет, что пользователи могут делать только то, что разрешено их ролью ( нельзя совершать действия, которые выходят за рамки их роли)
Эта модель доступа обычно используется в сфере информационной безопасности, где важно строго контролировать доступ пользователей к чувствительной информации и ресурсам системы.
## Примеры использования данной модели
Примеры использования мандатной модели доступа включают в себя:
- Государственные учреждения: мандатная модель доступа широко используется в оборонной и правительственной сфере, где важно контролировать и ограничивать доступ к конфиденциальным и секретной информации.
- Финансовые учреждения: банки и финансовые организации также часто применяют мандатную модель доступа для обеспечения безопасности и ограничения доступа к финансовым данным и операциям.
- Корпоративные сети: в больших компаниях и организациях управление доступом к конфиденциальным данным и информационным ресурсам имеет важное значение, и мандатная модель доступа может помочь в этом.
## Плюсы данной модели доступа
Плюсы мандатной модели доступа:
- Высокий уровень безопасности: мандатная модель обеспечивает строгий контроль и ограничение доступа к ресурсам, что обеспечивает защиту от несанкционированного доступа.
- Четкое определение прав доступа: каждая роль имеет определенные права и ограничения, что упрощает управление доступом и обеспечивает прозрачность.
- Соответствие регулированиям: мандатная модель доступа помогает организациям соблюдать правила и стандарты в области безопасности информации.
## Недостатки данной модели доступа
Недостатки мандатной модели доступа:
- Сложность управления: мандатная модель может быть сложной для настройки и управления, особенно в компаниях с большим числом пользователей и ролей.
- Жесткость: иногда мандатная модель может быть слишком строгой, что делает сложным обеспечение гибкости в управлении доступом.
- Сложность внедрения: реализация мандатной модели может потребовать значительных ресурсов и времени, особенно при наличии большого числа ролей и пользователей.
https://serverspace.uz/support/glossary/netcat.mdУзнайте, что такое netcat, примеры его использования, плюсы и минусы
Netcat, или nc, представляет собой мощную утилиту командной строки, обеспечивающую возможность чтения и записи данных через сетевые соединения по протоколам TCP или UDP. Он широко используется для отладки сетевых проблем, а также для передачи данных через сеть. Благодаря своей гибкости, Netcat позволяет создавать как простые серверы, так и клиентов, что делает его важным инструментом для сетевых администраторов, пентестеров и разработчиков. Netcat обладает обширными возможностями, делая его неотъемлемой частью инструментария для работы с сетями.
## Примеры использования
Netcat, также известный как "swiss army knife" сетевых утилит, предоставляет множество возможностей для работы с сетевыми соединениями. Вот несколько примеров использования:
- **Передача файлов**: Netcat может использоваться для передачи файлов с одной машины на другую через сеть. Например, чтобы отправить файл "file.txt" с одного компьютера на другой, можно использовать команду nc -l 12345< file.txt на принимающем компьютере и nc 123.45.67.89 12345 > file.txt на отправляющем компьютере.
- **Прослушивание портов**: Netcat может быть использован для прослушивания определенного порта, что позволяет считывать данные, отправленные на этот порт.
- **Проверка открытых портов**: С помощью Netcat можно проверить, открыты ли определенные порты на удаленном хосте.
- **Установка простого чата**: Netcat может быть использован для установки простого чата между двумя компьютерами.
## Плюсы
Плюсы Netcat:
- **Простота использования**: Netcat имеет простой и понятный синтаксис командной строки, что делает его легким в освоении.
- **Мощные возможности**: Netcat обладает широкими возможностями для работы с сетевыми соединениями, что делает его полезным инструментом для различных задач.
- **Портативность**: Netcat доступен для многих платформ, включая Linux, Windows и macOS.
## Минусы
Минусы Netcat:
- **Не является безопасным**: Netcat не обладает функциями авторизации, шифрования или другими механизмами безопасности, поэтому его использование в открытых сетях может представлять риск.
- **Не поддерживается**: Официальная версия Netcat (называемая GNU Netcat) имеет свои лимиты, и не обновляется с 2004 года, хотя существуют различные форки и модификации.
В целом Netcat является мощным инструментом для работы с сетевыми соединениями, но при использовании его важно учитывать его ограничения и уделять внимание безопасности.
https://serverspace.uz/support/glossary/iteracziya.mdУзнайте, что обозначает термин итерация в IT, что происходит в данном процессе
Итерация - это процесс разработки программного обеспечения, при котором разработчики выполняют повторяющиеся циклы разработки, проверки и улучшения продукта. Каждая итерация представляет собой отдельный этап разработки, в течение которого выполняется определенный объем работы, результаты тестируются и анализируются, и вносятся необходимые корректировки. Этот подход позволяет поэтапно улучшать качество и функциональность программного продукта, а также оперативно реагировать на изменения и запросы заказчика. Итеративная разработка позволяет ускорить процесс разработки и улучшить удовлетворенность заказчика.
Итерации в IT часто используются в гибких методологиях разработки, таких как Scrum или Agile. Эти методологии предполагают разбиение всего проекта на небольшие итерации, называемые спринтами или циклами разработки, каждый из которых обычно длится от нескольких недель до нескольких месяцев.
Во время каждой итерации команда разработчиков фокусируется на выполнении определенных задач и достижении конкретных целей, что позволяет им более эффективно управлять процессом разработки, улучшать продукт на ранних этапах и быстро реагировать на изменения требований клиентов.
Итерации также позволяют создавать рабочие прототипы продукта и получать обратную связь от заказчика или пользователей на ранних этапах разработки. Это помогает уменьшить риск провала проекта, убедиться, что разработчики движутся в правильном направлении, и внести коррективы до того, как будет потрачено слишком много времени и ресурсов.
Таким образом, итерации играют важную роль в управлении процессом разработки программного обеспечения, обеспечивая гибкость, прозрачность и учет потребностей заказчиков.
https://serverspace.uz/support/glossary/cziklicheskie-konstrukczii-v-python.mdУзнайте, что такое циклические конструкции в Python, какие бывают типы данных конструкций и для чего они используются
Циклические конструкции в Python (или же просто циклы Python) представляют собой структуры, которые позволяют многократно выполнять одни и те же действия в зависимости от заранее определенных условий. В Python есть два основных вида циклов: for и while, которые используются в разных контекстах.
## Цикл for
Цикл for используется для обхода элементов коллекций, таких как списки, кортежи, строки и другие итерируемые объекты. Он выполняет заданный блок кода для каждого элемента в коллекции, что делает его идеальным для обработки данных, выполнения повторяющихся вычислений и работы со структурами данных.
Пример:
```
# Обработка элементов списка
for i in [1, 2, 3, 4, 5]:
print(i)
```
## Основные применения цикла for
- **Обработка данных:** Преобразование, фильтрация или агрегация элементов.
- **Итерация по данным:** Перебор элементов различных коллекций, таких как списки или множества.
- **Повторение вычислений:** Применение операций к каждому элементу данных, например, вычисление суммы элементов.
Цикл **for **прекрасно подходит для случаев, когда количество итераций заранее известно или зависит от размера коллекции.
## Цикл while
Цикл **while **выполняет блок кода, пока истинно указанное условие. В отличие от цикла for, этот цикл обладает большей гибкостью, так как его выполнение продолжается до тех пор, пока не будет достигнуто заданное состояние или не выполнится изменяющееся условие.
Пример: **Выполнение цикла до тех пор, пока переменная не станет равной 5**
```
counter = 0
while counter < 5:
print(counter)
counter += 1
```
Пример 2: **Суммирование чисел до тех пор, пока не будет введено отрицательное число**
```
total = 0
while True:
number = int(input("Введите число (или отрицательное для выхода): "))
if number < 0:
break
total += number
print(f"Общая сумма: {total}")
```
## Основные применения цикла while
- **Неопределенные итерации**: Когда количество повторений не известно заранее, например, при обработке пользовательского ввода.
- **Алгоритмы с переменными условиями**: Когда выполнение зависит от изменяющихся данных.
- **Логика ожидания**: Используется в асинхронных приложениях или в случае ожидания определенных событий.
Цикл while хорошо подходит, когда условие завершения зависит от изменения данных в процессе работы программы
## Вложенные циклы
Python позволяет использовать вложенные циклы, когда один цикл находится внутри другого. Это особенно полезно при работе с многомерными структурами данных, такими как матрицы или таблицы.
Пример:** Вложенные циклы для работы с двумерной матрицей**
```
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
for element in row:
print(element)
```
Пример 2: **Перебор элементов в двумерном списке (матрице)**
```
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=" ")
print() # Переход на новую строку после каждого ряда
```
## Основные применения вложенных циклов
- **Работа с многомерными массивами**: Например, обработка двумерных или трехмерных данных.
- **Генерация комбинаций и перестановок**: Перебор всех возможных вариантов из нескольких наборов данных.
- **Итерация по сложным данным**: Например, при работе с вложенными списками или другими многоуровневыми структурами.
- **Управление выполнением цикла**
Python предлагает дополнительные ключевые слова для управления выполнением цикла: break, continue и else.
- **break**: Прерывает цикл, немедленно выходя из него.
- **continue**: Пропускает текущую итерацию и продолжает выполнение со следующей.
- **else**: Выполняется, если цикл завершен без использования break.
Пример: **Прерывание цикла при нахождении первого четного числа**
```
for i in range(1, 10):
if i % 2 == 0:
print(f"Найдено четное число: {i}")
break
```
Пример 2: **Нахождение первого четного числа в списке (с использованием break)**
```
numbers = [1, 3, 7, 10, 5]
for num in numbers:
if num % 2 == 0:
print(f"Первое четное число: {num}")
break
```
Пример 3: **Поиск числа в списке с использованием else (если не найдено, выводится сообщение)
**
```
numbers = [1, 3, 5, 7, 9]
search_for = 4
for num in numbers:
if num == search_for:
print(f"Число {search_for} найдено в списке.")
break
else:
print(f"Число {search_for} не найдено в списке.")
```
Пример 4: **Пропуск нечетных чисел в списке с использованием continue
**
```
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in numbers:
if num % 2 != 0:
continue
print(f"Четное число: {num}")
```
## Основные применения управления циклом
- **Досрочное завершение**: С помощью break можно завершить цикл, как только будет выполнено требуемое условие.
- **Пропуск шага**: С помощью ключевого слова continue можно пропустить текущую итерацию цикла, если заданное условие не выполняется.
## Бесконечные циклы
Циклы могут продолжаться бесконечно, если условие в **while **остается истинным. Подобные циклы широко применяются в таких ситуациях, как серверные приложения или игры, где программа должна работать постоянно, пока не будет остановлена вручную или из-за внешнего события.
Пример: **Бесконечный цикл для серверного приложения**
```
while True:
handle_request()
```
Бесконечные циклы должны быть реализованы с осторожностью и иметь механизм выхода, иначе программа может зависнуть.
Пример 2: **Бесконечный цикл с выводом времени**
```
import time
while True:
print("Программа работает. Нажмите Ctrl+C для остановки.")
time.sleep(2) # Задержка в 2 секунды
```
## Заключение
Циклические конструкции в Python являются мощным инструментом, который помогает эффективно решать задачи, требующие многократного выполнения одинаковых действий. Циклы for и while предлагают гибкие способы работы с данными и позволяют реализовывать различные алгоритмы.
**Основные применения циклов включают:**
- Обработку данных (фильтрация, преобразование, агрегация).
- Итерацию по коллекциям (списки, словари, множества).
- Реализацию алгоритмов, таких как сортировка или поиск.
- Создание непрерывных или асинхронных приложений.
Понимание и умение работать с циклическими конструкциями позволяет создавать более гибкие и мощные программы на Python, автоматизируя повторяющиеся задачи и повышая эффективность разработки.
## База знаний Serverspace
В нашей [Базе знаний](https://serverspace.ru/support/) и [Глоссарии](https://serverspace.ru/support/glossary/) вы сможете найти еще больше инструкций и терминов связанных с Python и другими языками программирования.
https://serverspace.uz/support/glossary/scrum.mdУзнайте, что такое Scrum, для чего он используется, его преимущества и недостатки
Scrum - это метод управления проектами, который используется для разработки программного обеспечения и управления командами. Он основан на принципах гибкой разработки и предполагает поэтапную итеративную работу над проектом.
Основные принципы Scrum включают в себя установление четких целей проекта, работу в небольших автономных командах, регулярные сеансы планирования и обзора прогресса, а также акцент на постоянное совершенствование процесса работы.
Проекты, управляемые по методологии Scrum, разделяются на короткие временные периоды, называемые спринтами, обычно продолжающимися от двух недель до месяца. Каждый спринт начинается с планирования, в ходе которого команда определяет цели и задачи на следующий период времени. Затем они работают над выполнением этих задач, в течение спринта ведут контроль и оценивают результаты.
Scrum позволяет командам быть более гибкими и адаптироваться к изменениям на ходу. Это помогает повысить производительность и качество проектов, а также сделать процесс управления более прозрачным и предсказуемым.
## Достоинства Scrum
- **Гибкость**: Scrum позволяет командам быстро адаптироваться к изменениям и повышает реакцию на требования клиентов или рынка.
- **Прозрачность**: благодаря регулярным обзорам прогресса заказчики всегда видят текущее состояние проекта.
- **Увеличение вовлеченности заказчика**: заказчик активно участвует в процессе разработки, что способствует точному пониманию и удовлетворению его потребностей.
- **Улучшение коммуникации**: Scrum обеспечивает регулярные обсуждения и обратную связь.
- **Повышение производительности**: Работа в коротких спринтах и фокусировка на конкретных задачах помогает увеличить производительность.
## Недостатки Scrum
- **Не подходит для всех проектов**: Scrum лучше всего подходит для разработки ПО и может быть менее эффективен в других областях.
- **Требует высокой вовлеченности участников**: Реализация Scrum требует усилий и времени от всех участников команды.
- **Необходимость постоянной коммуникации**: Недостаточная коммуникация может замедлить или ухудшить процесс разработки в Scrum.
- **Сложность оценки времени**: Некоторые задачи сложно оценить по времени, что может привести к задержкам в выполнении спринтов.
В целом, Scrum хорошо подходит для проведения проектов, требующих ритмичного развития, но требует подготовки и соблюдения основных принципов для успешной реализации.
https://serverspace.uz/support/glossary/docker-layers.mdУзнайте, что такое Docker Layers, их основные аспекты, преимущества и недостатки
Docker layers (слои Docker) — это ключевая концепция в Docker, которая помогает эффективно управлять контейнерами и их образом. Docker образ состоит из цепочки слоев, где каждый слой представляет собой изменения или добавления к предыдущему слою.
## Основные аспекты
Вот основные аспекты, которые помогут лучше понять Docker layers:
- **Union File System (UnionFS)**: Docker использует UnionFS, что позволяет объединять несколько файловых систем в одну. Этот подход позволяет слоям Docker быть как можно более легковесными и повторно используемыми.
- **Кэширование слоев:** Каждый слой кэшируется. Если в Dockerfile или процессе создания образа меняется только один шаг, все до этого шага можно использовать из кэша, что делает создание образов быстрее.
- **Шаги в Dockerfile:** Каждый шаг в Dockerfile (например, RUN, COPY, ADD) создает новый слой. Это позволяет изолировать изменения и оптимизировать сборку.
- **Базовый образ:** Образ обычно начинается с базового образа (например, FROM ubuntu:20.04), который сам по себе уже состоит из нескольких слоев.
- **Полезные слои:** Каждый последующий слой хранит информацию только о различиях по сравнению с предыдущими слоями. Это позволяет Docker экономить место и упрощать процесс обновления образов.
- **Слои только для чтения и запись:** Все слои, кроме самого последнего, являются только для чтения. Последний слой, соответствующий запущенному контейнеру, является слоем записи, куда вносятся все изменения, которые происходят, пока контейнер работает.
**Пример базового Dockerfile и его слои:**
```
FROM ubuntu:20.04
COPY . /app
RUN apt-get update && apt-get install -y python3
CMD ["python3", "/app/app.py"]
```
**Слои:**
- FROM ubuntu:20.04 — базовый слой, который сам по себе может состоять из нескольких слоев.
- COPY . /app — слой, который копирует файлы в контейнер.
- RUN apt-get update && apt-get install -y python3 — слой, добавляющий Python и другие зависимости.
- CMD ["python3", "/app/app.py"] — не создает новый слой, но определяет команду по умолчанию для запуска контейнера.
## Достоинства Docker Layers
**Эффективное использование ресурсов:**
- Благодаря кэшированию слоев, создание образов Docker становится быстрее.
- Повторное использование уже существующих слоев экономит дисковое пространство.
**Модульность и повторное использование:**
- Каждый слой может быть повторно использован в других образах, что упрощает управление зависимостями и конфигурациями.
**Упрощение процессов DevOps:**
- Docker предоставляет универсальную среду для разработки, тестирования и эксплуатации, что уменьшает несоответствия между различными этапами жизненного цикла разработки.
**Изоляция приложений:**
- Контейнеры изолируют приложения друг от друга и от хоста. Это повышает безопасность и обеспечивает стабильность работы приложений.
**Портативность:**
- Образы Docker можно запускать на любом хосте, поддерживающем Docker. Это облегчает перенос приложений между различными средами (локальная разработка, тестирование, продакшн).
## Недостатки Docker Layers
**Проблемы с производительностью:**
- Хотя Docker очень эффективен, использование контейнеров может внести небольшое накладное время на виртуализацию по сравнению с нативным выполнением на хостовой системе.
**Комплексность настройки и управления:**
- Управление большим количеством контейнеров и образов может стать сложным. Инструменты оркестрации, такие как Kubernetes, могут помочь, но они также добавляют сложность.
**Безопасность:**
- Исходные образы могут содержать уязвимости. Важно регулярно обновлять образы и проверять их на наличие уязвимых зависимостей.
- Контейнеры разделяют ядро операционной системы, что может стать потенциальной уязвимостью.
**Ограниченная совместимость:**
- Некоторые приложения или зависимости могут не работать корректно в контейнеризированной среде, что потребует дополнительных настроек или отказа от контейнеризации для этих случаев.
**Фрагментация образов:**
- При частых обновлениях и создании новых слоев образы могут стать фрагментированными, что может потребовать очистки и оптимизации.
Docker предоставляет мощные инструменты для создания, развертывания и управления контейнеризированными приложениями, но как и любая технология, он имеет свои достоинства и недостатки. Понимание этих аспектов поможет лучше использовать Docker и избегать потенциальных проблем.
https://serverspace.uz/support/glossary/dockerfile.mdУзнайте, что такое dockerfile, его преимущества и недостатки, примеры использования
**Dockerfile** — это текстовый файл со специальным синтаксисом, который содержит инструкции для сборки Docker-образа. Dockerfile определяет, какие шаги необходимо выполнить для установки приложений и настройки среды внутри контейнера. Образ, созданный на основе Dockerfile, определяет все зависимости и компоненты, необходимые для выполнения приложения, поэтому он может быть легко воспроизведен и использован на других машинах.
Использование Dockerfile имеет ряд достоинств и недостатков. Вот основные из них:
## Достоинства
- **Портативность.** Dockerfile позволяет создавать образы, которые могут быть запущены на любой машине, где установлен Docker. Это упрощает переносимость приложений между различными средами, от разработки до производства.
- **Автоматизация и консистентность.** Все инструкции для создания образов описаны в одном файле, что позволяет воспроизводить идентичные окружения повторно. Это означает, что окружение разработки может быть идентичным окружению производства, уменьшая вероятность "это работает на моей машине, но не в проде".
- **Легкость управления зависимостями.** Dockerfile включает все необходимые зависимости для приложения, будь то библиотеки, исполнимые файлы или конфигурационные файлы. Это минимизирует проблемы, связанные с отсутствием зависимостей.
- **Изолированность.** Контейнеры запускаются в изолированных средах, что повышает безопасность и стабильность. Проблемы в одном контейнере не влияют на работу других контейнеров.
- **Эффективность.** Dockerfile поддерживает кэширование промежуточных слоев образа, что может существенно ускорить процесс сборки.
## Недостатки
- **Размер образов.** Если Dockerfile не оптимизирован, образы могут быть достаточно большими, что увеличивает время загрузки и развертывания.
- **Сложность конфигурации.** Оптимизация Dockerfile для создания маленьких и эффективных образов иногда может быть сложной задачей, требующей глубокого понимания работы Docker.
- **Переносимость между платформами**. Хотя Docker предоставляет большую степень портативности, в некоторых случаях могут возникнуть проблемы с кросс-платформенной совместимостью, особенно если базовый образ или зависимости специфичны для определенной операционной системы.
- **Проблемы с отладкой.** Отладка внутри контейнеров может быть сложнее по сравнению с отладкой на хостовой системе, особенно если контейнер окружение отличается от хостовой среды.
- **Ресурсоемкость.** Хотя Docker менее требователен к ресурсам по сравнению с виртуальными машинами, запуск большого количества контейнеров на одном хосте все равно может потребовать значительных аппаратных ресурсов.
## Примеры использования
- **Микросервисная архитектура:** В микросервисной архитектуре каждое микроприложение можно упаковать и изолировать с помощью Docker, что упрощает развертывание и масштабирование.
- **Тестирование и CI/CD:** Docker удобен при настройке систем непрерывной интеграции и доставки, так как позволяет быстро развертывать и тестировать приложения в предсказуемом окружении.
- **Локальная разработка:** Dockerfile упрощает настройку окружения для локальной разработки, обеспечивая идентичную конфигурацию на всех машинах разработчиков.
**Dockerfile** — это мощный инструмент, который при правильном использовании может значительно упростить развертывание и управление приложениями. Однако, для достижения наилучших результатов, важно учитывать и потенциальные недостатки.
https://serverspace.uz/support/glossary/czp.mdУзнайте, что такое ЦП (Центральный процессор), его основные и дополнительные функции
Центральный процессор (ЦП), также известный как процессор или CPU (от англ. Central Processing Unit), является основным компонентом компьютерной системы, который выполняет команды программ и управляет другими частями компьютера. CPU выполняет математические и логические операции, принимает и исполняет инструкции, и координирует деятельность всех блоков компьютера.
## Основные функции ЦП
**Выполнение программных команд:**
- ЦП извлекает инструкции из оперативной памяти, интерпретирует их и выполняет. Этот процесс состоит из нескольких этапов: извлечение (fetch), декодирование (decode) и выполнение (execute).
- Он выполняет команды, написанные на различных языках программирования посредством машинного кода.
**Арифметические и логические операции:**
- Процессор выполняет все основные вычислительные задачи, такие как сложение, вычитание, умножение и деление.
- Он также выполняет логические операции, например, сравнения двух значений.
**Управление потоками данных:**
- ЦП координирует передачу данных между оперативной памятью, жестким диском и другими устройствами ввода-вывода (например, клавиатурой, мышью, принтером).
- Он отвечает за эффективное использование системной шины и других компонентов системы для передачи данных.
**Управление системными ресурсами:**
- Процессор контролирует работу других компонентов компьютера, таких как оперативная память (RAM), видеокарта и накопители данных.
- Он обеспечивает, чтобы все части системы работали согласованно и эффективно.
## Дополнительные задачи ЦП
**Многозадачность:**
- Современные ЦП поддерживают многозадачность, что позволяет выполнять несколько программ одновременно.
- Это осуществляется за счет поддержки нескольких ядер, потоков и технологий, таких как Hyper-Threading.
**Кэширование данных:**
- В целях повышения производительности ЦП использует кэш-память, чтобы быстрее получать доступ к часто используемым данным.
- Это уменьшает задержки и повышает общую скорость обработки данных.
**Обработка прерываний:**
- ЦП обрабатывает аппаратные и программные прерывания, обеспечивая своевременную реакцию на различные события (например, получение сетевого пакета или нажатие клавиши на клавиатуре).
- Это важно для обеспечения интерактивности и стабильной работы системы.е
**Виртуализация:**
- Некоторые современные ЦП поддерживают виртуализацию, что позволяет одной физической машине функционировать как несколько виртуальных машин.
- Это полезно для тестирования и распределения ресурсов в среде серверов.
## Примеры применения ЦП
**Персональные компьютеры и ноутбуки:**
- В этих устройствах процессор выполняет все основные задачи пользователя, от работы в текстовом редакторе до игры в видеоигры.
**Мобильные устройства:**
- В смартфонах и планшетах ЦП отвечает за управление всеми функциями устройства, включая звонки, работу приложений и графику.
**Серверы и центры обработки данных:**
- На серверах процессоры исполняют сложные вычислительные задачи, такие как базы данных и веб-приложения.
**Встраиваемые системы:**
- Встраиваемые процессоры используются в специализированных устройствах, таких как автомобили, медицинские приборы и промышленное оборудование.
Центральный процессор — это "мозг" любой вычислительной системы, без которого компьютер не мог бы функционировать. Выполняя разнообразные задачи, от простых арифметических операций до сложного управления ресурсами и многозадачности, ЦП является ключевым элементом, обеспечивающим работу и производительность как настольных, так и мобильных устройств.
Применение ЦП:
ЦП используется во всех электронных устройствах, от персональных компьютеров и смартфонов до серверов и встраиваемых систем. Его производительность и эффективность напрямую влияют на работу и возможности любой компьютерной системы.
https://serverspace.uz/support/glossary/baza-dannyh.mdУзнайте, что такое база данных, для чего они используются и примеры баз данных
База данных (БД) - это упорядоченная коллекция данных, которая хранится в электронном виде и предназначена для хранения, поиска и извлечения информации.
База данных состоит из следующих компонентов:
- Данные - это сами сведения, которые хранятся.
- Схема - это описание структуры БД, включая типы данных, отношения между ними и ограничения.
- Язык запросов - это язык, который используется для запросов к БД, таких как создание, изменение и извлечение данных.
- Система управления базами данных (СУБД) - это программное обеспечение, которое управляет БД, обеспечивает доступ к данным и выполняет запросы.
Базы данных используются везде, где необходима обработка и хранение больших объемов данных, таких как:
- Интернет-магазины - для хранения информации о товарах, заказах и клиентах.
- Социальные сети - для хранения информации о пользователях, их друзьях и публикациях.
- Банки - для хранения информации о счетах, транзакциях и клиентах.
- Онлайн-сервисы - для хранения информации о пользователях, их настройках и истории взаимодействия.
- Научные исследования - для хранения и анализа больших объемов данных.
Примеры баз данных:
- MySQL - одна из самых популярных СУБД, используемых в веб-разработке.
- PostgreSQL - мощная СУБД, используемая в различных отраслях, от банкинга до научных исследований.
- MongoDB - документо-ориентированная БД, используемая в веб-разработке и big data.
- Microsoft SQL Server - СУБД, разрабатываемая компанией Microsoft, используемая в различных отраслях.
- Oracle Database - мощная СУБД, используемая в крупных предприятиях и государственных учреждениях.
Базы данных используются для:
- Хранения и управления данными - для обеспечения доступа к данным и управления ими.
- Анализа и отчетности - для получения insights из данных и создания отчетов.
- Автоматизации бизнес-процессов - для автоматизации различных задач и процессов.
- Обеспечения безопасности - для защиты данных от несанкционированного доступа.
- Улучшения пользовательского опыта - для персонализации и улучшения взаимодействия с пользователями.
В целом, базы данных играют важную роль в современных технологиях, обеспечивая эффективное хранение, управление и использование данных в различных отраслях.
https://serverspace.uz/support/glossary/poddomen.mdУзнайте, что такое поддомен, как он выглядит и для чего используется
Поддомен (subdomain) - это часть домена, которая находится перед именем домена и отделена от него точкой. Поддомен позволяет создавать несколько отдельных веб-ресурсов или сервисов внутри одного домена, каждый со своим уникальным именем.
Пример: если у вас есть домен example.ru , то поддомены могут выглядеть так:
- blog.example.ru
- shop.example.ru
- forum.example.ru
В каждом из этих случаев example.ru - это основной домен, а blog , shop , forum - это поддомены.
Поддомены используются для различных целей:
- Создание отдельных разделов на сайте, таких как блог, магазин или форум.
- Разделение ресурсов или сервисов внутри одного домена, но с разными функциями.
- Создание тестовых или стейджинговых окружений для разработки и тестирования.
- Разделение региональных или языковых версий сайта.
Поддомены могут иметь свои отдельные настройки DNS, SSL-сертификаты и другие параметры, что позволяет управлять ими независимо от основного домена.
В целом, поддомены - это удобный способ организовать и структурировать контент внутри одного домена, сделав его более доступным и понятным для пользователей.
https://serverspace.uz/support/glossary/subfinder.mdУзнайте, что такое subfinder, что он использует и как работает
Subfinder - это инструмент для обнаружения поддоменов (subdomains) для заданного домена. Он используется в основном для целей информационной безопасности, тестирования на проникновение иpentesting.
Subfinder работает по принципу отправки запросов на DNS-серверы и анализа ответов на них. Он может обнаруживать как известные, так и неизвестные поддомены, что может быть полезно для:
- Обнаружения скрытых ресурсов или сервисов
- Определения границ и периметра сети
- Тестирования на уязвимости и обнаружения уязвимостей
- Мониторинга и контроля за безопасностью сети
Subfinder использует различные источники для обнаружения поддоменов, включая:
- DNS-резолверы
- WHOIS-базы данных
- Архивы Интернета
- Open-source интеллектуальные системы
В результате работы Subfinder может выдать отчет с информацией о найденных поддоменах, включая их имена, IP-адреса и другие метаданные.
Subfinder является популярным инструментом среди специалистов по информационной безопасности и тестированию на проникновение, так как он позволяет быстро и эффективно обнаруживать поддомены и получать информацию о них.
https://serverspace.uz/support/glossary/lvm.mdУзнайте, что такое LVM, его ключевые компоненты, преимущества и о том, как он работает
LVM, или Управление логическими томами, - это мощная система управления диском, которая обеспечивает гибкий и масштабируемый способ управления хранением данных на операционных системах Linux и Unix-подобных. Это метод распределения пространства на накопителях массового хранения, таких как жёсткие диски, твердотельные диски или флэш-накопители, на логические тома, которые могут быть легко изменены в размере, перемещены или созданы резервные копии.
## Ключевые компоненты
- **Физические тома (PV)**: Это подлежащие физические устройства хранения, такие как жёсткие диски или разделы.
- **Группы томов (VG)**: Коллекция одного или нескольких физических томов, которые объединены в единый логический пул хранения.
- **Логические тома (LV)**: Это виртуальные диски, созданные из группы томов, и эквивалентны традиционным дискovým разделам.
## Как работает LVM
- **PV созданы**: Физические тома инициализируются на подлежащих устройствах хранения.
- **VG создана**: Группа томов создается путем объединения одного или нескольких физических томов.
- **LV созданы**: Логические тома создаются из группы томов, с указанным размером и.layout.
- **Файловые системы созданы**: Файловые системы, такие как ext4 или XFS, созданы на основе логических томов.
## Преимущества LVM
- **Гибкость**: LVM позволяет легко изменять размер, перемещать или удалять логические тома без влияния на подлежащие физические устройства хранения.
- **Масштабируемость**: LVM позволяет добавлять или удалять физические тома из группы томов по мере необходимости, что делает легко масштабировать емкость хранения вверх или вниз.
- **Избыточность**: LVM поддерживает различные конфигурации RAID, такие как зеркальное отображение и полосовое хранение, для обеспечения избыточности данных и улучшения производительности.
- **Снимки**: LVM позволяет создавать снимки логических томов, которые могут быть использованы для резервного копирования и восстановления.
- **Миграция данных**: LVM позволяет мигрировать данные между физическими томами без простоя или нарушения.
## Общие операции LVM
- **Расширение логического тома**: Увеличение размера логического тома путем добавления дополнительного физического хранения.
- **Уменьшение логического тома**: Уменьшение размера логического тома,释вобождая физическое хранение.
- **Перемещение логического тома**: Перемещение логического тома на другой физический том или устройство хранения.
- **Объединение групп томов**: Объединение нескольких групп томов в одну, более крупную группу томов.
В целом, LVM обеспечивает мощный и гибкий способ управления хранением данных, делая его легче масштабировать, обслуживать и восстанавливать данные в средах Linux и Unix-подобных.
https://serverspace.uz/support/glossary/application-programming-interface.mdУзнайте, что такое API. ключевые аспекты при работе с ним, из каких компонентов он состоит и где api используется
Application Programming Interface, или сокращенно API, называют интерфейс взаимодействия с приложением, позволяющий сервисам и прочим приложениям коммуницировать друг с другом.
API определяет функциональность, которую предоставляет программа (модуль, библиотека), но в то же время, API дает возможность абстрагироваться способа реализации этой функциональности.
Как правило, между компонентами устанавливается иерархия, когда самые высокоуровневые компоненты используют API низкоуровневых и так далее по нисходящей спирали.
Ключевой аспект в работе с API — использование готового кода, либо постоянной функции, которая будет использована в конечном продукте. Способ реализации здесь отходит на другой план, а разработчики получают возможность легко использовать наработки сторонних программистов.
В самом определении API выделяются два компонента:
-
Фрагмент ПО с конкретной функцией,
- Отдельная часть приложения, либо полное приложение.
Фрагментирование отдельных частей можно определить по тому, насколько самостоятельным является компонент приложения. Чаще всего по такому сценарию устроены API отдельных библиотек, которые с его помощью взаимодействуют с остальными приложениями или частями сайта.
К API не относится скрытая логика приложения — разработчики вправе оставлять определенные области открытыми только для собственного использования.
В одном приложении таких объектов, взаимодействующих между собой, может быть много. У каждого из них есть свой API — набор характеристик и методов для взаимодействия с другими объектами в приложении.
Использование API на данный момент является повсеместным. Большинство ресурсов в интернете используют сразу несколько API, поскольку это решение также отличается своей надежностью и обширной практикой интеграции. Использование API стало своего рода отраслевым стандартом при создании современных сайтов или приложений.
https://serverspace.uz/support/glossary/docker2.mdDocker представляет собой платформу или программное обеспечение (что тоже будет верным) с открытым исходным кодом, которое используют для разработки, тестирования, доставки и запуска приложений в контейнерных средах.
Docker представляет собой платформу или программное обеспечение (что тоже будет верным) с открытым исходным кодом, которое используют для разработки, тестирования, доставки и запуска приложений в контейнерных средах. Полезность платформы обнаруживается в более эффективном использовании ресурсов, быстром переносе приложений в рабочем состоянии в другие среды и автоматизации развертывания.
Платформа заключает программное обеспечение в стандартизованные контейнеры вместе со всей логикой созависимостей. Собранный таким образом контейнер содержит все ключевые компоненты: системные инструменты, код и среду исполнения, а также необходимые библиотеки.
Принцип работы Docker состоит в использовании стандартизированного способа исполнения кода, который ускоряет разработку, лишает ее определенных рисков и в большинстве случаев, более экономически выгоден. Например, в установке Redis или Elasticsearch больше нет нужды, поскольку их можно запускать напрямую из контейнера.
Способность к быстрому развертыванию дает Docker возможность быстрого описания всего окружения, что значительно удешевляет и ускоряет процессы разработки.
В практическом использовании Docker выделяется ряд преимуществ:
- Docker дает возможность доставлять сервисы на порядок чаще;
- Благодаря использованию заранее описанных контейнеров (со всеми зависимостями), облегчается механика развертывания, поскольку достигается повторяемость среды. Кроме этого, снижается критичность ошибок, поскольку запустить бэкап более ранней версии на порядок проще;
- Контейнерная упаковка Docker позволяет запустить больше кода на каждом используемом сервере, что оптимизирует расход ресурсов;
- Облегченная система переноса приложения из среды разработки и тестирования в продуктивную среду с последующим развертыванием.
Docker работает не только с родной ОС Linux, но и с Windows, а также macOS. Несмотря на очевидные плюсы использования ОС, Docker все равно может обладать рядом ограничений в зависимости от конфигурации конкретной системы.
https://serverspace.uz/support/glossary/container.mdКонтейнеры: что это такое. Container представляет собой альтернативный тип виртуализации, который состоит в использовании изолированной среды для исполнения приложений.
Контейнеры представляют собой альтернативный тип виртуализации, который состоит в использовании изолированной среды для исполнения приложений. Реализация контейнеров достигается использованием изолированного пространства, которое содержит все необходимые компоненты: от системных инструментов до библиотек. Данные ресурсы принято называть виртуализированными именами. Со всеми компонентами контейнера поддерживается взаимодействие, но ограничивается выход за их пределы. Иначе говоря, операционная система дает использовать только маркированные компоненты.
Внутри контейнеров приложения функционируют без ограничений, поскольку определяется как единственное. Для внесения изменений в уже существующий файл, либо для создания нового, контейнер получает только новые области от основной ОС хоста. Это дает ключевое преимущество в скорости развертывания нескольких контейнеров на одном хосте.
Между технологиями виртуальных машин (ВМ) и контейнерами есть важное отличие. Контейнеры не работают со сторонними системными файлами и инструментами, тогда как ВМ используют отдельный пул ресурсов со своей ОС. Для того, чтобы работать с контейнером потребуются только ресурсы, в остальном же процесс больше похож на шэринг компонентов операционной системой. Это дает контейнером преимущество относительно ВМ не только в скорости запуска, но и в степени нагрузки системы, особенно во время запуска.
Контейнеры могут обладать спецификацией по-определенному API или ОС. Например, контейнеры Linux не будут работать без Linux API, поэтому для Windows они будут малопригодны.
Чтобы управлять контейнерами, можно использовать PowerShell (позволяет работать только с локальным репозиторием), который постепенно теряет популярность или Docker. Между Microsoft и Docker существует соглашение, по которому все команды управления актуальны и для контейнеров Win, и для Linux.
https://serverspace.uz/support/glossary/kubernetes.mdУзнайте, как Kubernetes помогает автоматизировать развертывание, масштабирование и управление контейнеризованными приложениями, обеспечивая оптимизацию ресурсов, балансировку нагрузки и высокую доступность для современных IT-систем.
**Kubernetes: Современная платформа для управления контейнерами**
[Kubernetes](https://serverspace.ru/services/managed-kubernetes/) — это мощная платформа с открытым исходным кодом, изначально разработанная Google и открытая для общественности в 2014 году. Она представляет собой систему для управления контейнерами, обеспечивая автоматизацию развертывания, масштабирования и управления контейнеризованными приложениями. Сегодня Kubernetes является основой для многих современных ИТ-инфраструктур и играет ключевую роль в поддержке микросервисной архитектуры, предоставляя команды разработки множество инструментов для эффективной работы.
## Ключевые особенности и преимущества Kubernetes
- **Декларативная настройка и автоматизация**
Kubernetes позволяет пользователям задавать желаемые состояния своих приложений и инфраструктуры. Платформа автоматически выполняет все необходимые операции для приведения системы к заданному состоянию. Это упрощает настройку и управление сложными системами, минимизируя человеческий фактор.
- **Контроль потребления ресурсов**
Kubernetes эффективно управляет ресурсами, автоматически перезапуская приложения, которые потребляют слишком много ресурсов. Это позволяет снизить риски перегрузок и обеспечить оптимальную работу приложений без человеческого вмешательства.
- **Равномерное распределение нагрузки**
Платформа помогает распределить нагрузку между различными узлами в кластере, принимая во внимание особенности локальной инфраструктуры. Это гарантирует, что приложение будет работать эффективно даже в условиях меняющейся нагрузки.
- **Гибкость при обновлениях кластера**
Kubernetes поддерживает возможность добавления новых хостов в кластер, что делает процесс масштабирования и обновления инфраструктуры гибким и безболезненным для пользователей.
- **Автоматическая балансировка нагрузки**
Платформа автоматически ребалансирует нагрузку между различными версиями приложения, что позволяет обеспечить стабильную работу на разных уровнях нагрузки и исключить перегрузки.
- **Миграция приложений и отказоустойчивость**
Kubernetes позволяет легко переносить приложения с одного хоста на другой в случае нехватки ресурсов или при необходимости провести техническое обслуживание, обеспечивая высокую доступность и устойчивость системы.
- **Откат к предыдущим версиям и канареечные релизы**
Kubernetes упрощает процесс отката к предыдущим версиям приложения, что важно при проведении тестов или внедрении новых функций. Канареечные релизы позволяют протестировать новый функционал на небольшом проценте пользователей, минимизируя риски.
- **Автономия и самообслуживание**
Платформа предоставляет возможности для создания виртуальных аппаратных абстракций, что позволяет пользователям самостоятельно управлять ресурсами и ускоряет процесс поставки ресурсов в ответ на изменяющиеся нагрузки.
- **Оптимизация использования ресурсов**
Kubernetes использует контейнеризацию, которая более эффективно расходует ресурсы (ЦП, память) по сравнению с традиционными виртуальными машинами или гипервизорами. Это позволяет сэкономить ресурсы и повысить общую эффективность инфраструктуры.
## Как работает Kubernetes
В центре архитектуры Kubernetes лежит **кластер**, состоящий из множества физических или виртуальных машин. Эти машины делятся на два типа узлов:
- **Рабочие узлы (worker nodes)** — это физические или виртуальные машины, на которых фактически выполняются контейнеры.
- **Контрольный узел (master node)** — отвечает за управление и координацию работы кластера. Он контролирует параметры контейнеров и управляет их развертыванием и маршрутизацией трафика.
Каждый узел может содержать несколько **подов** (pods) — базовых единиц развертывания в Kubernetes. Под представляет собой группу контейнеров, которые работают вместе, обеспечивая выполнение одного приложения или части приложения.
Среда выполнения контейнера, например, **Docker**, запускает контейнеры и контролирует их жизненный цикл, когда они развертываются на узлах с помощью Kubernetes. Контрольный узел управляет развертыванием контейнеров, их масштабированием и маршрутизацией трафика.
## Заключение
Kubernetes стал стандартом в управлении контейнерами, обеспечивая гибкость, автоматизацию и отказоустойчивость для современных приложений. С его помощью разработчики могут создавать высоконагруженные, масштабируемые и легко поддерживаемые системы, что делает Kubernetes важным инструментом в современной разработке и эксплуатации программного обеспечения.
https://serverspace.uz/support/glossary/cluster.mdКластер — это группа компьютеров, объединённых высокоскоростными каналами связи. Что такое вычислительные кластеры, кластеры высокой доступности. Модульная избыточность. Активный резерв. Пассивный резерв.
Кластером называют группу компьютеров, объединённых высокоскоростными каналами связи. По сути, такая группа является объединенным аппаратным ресурсом с определенной функциональностью:
- Обеспечение вычислительных мощностей;
- Балансировка нагрузки;
- Автомасштабирование;
- Высокая доступность.
Вычислительные кластеры
Здесь определяющими характеристиками считается высокая производительность процессоров кластера при работе с числовыми значениями, имеющими плавающую точку. Кроме этого, определяющий фактор — низкая латентность объединяющей сети. Операции ввода-вывода имеют меньшее значение для определения характера, поскольку быстрый темп исполнения этих процессов более характерен для баз данных.
Вычислительные кластеры способны разбивать расчеты на множество параллельных веток и вести анализ данных сразу по всем направлениям одновременно. Обмен данными при такой структуре возможен через связывающую сеть между ветвями.
Кластеры балансировки нагрузки
Данный вид кластеров также называют распределительными. Принцип их работы состоит в работе входных узлов, которые селектируют запросы по вычислительным узлам. При этом входных точек для запросов может быть более, чем один узел.
Запросы поступают в один или несколько узлов, играющих роль входных точек. Далее узлы распределяют запросы по вычислительным узлам, которые проводят их непосредственную обработку.
Кластеры высокой доступности
Кластеры этого вида создаются для предоставления высокой доступности сервисов. Подобный кластер содержит избыточное количество узлов (минимум два), которые выступают как цепочка предохранителей. При выходе из строя одного и более серверов, кластер по-прежнему сможет предоставлять сервис.
Кластеры подобного рода строятся по трем главным архетипам:
- **Модульная избыточность**. Включается в случаях, когда простой системы недопустим: при срабатывании каждый узел обрабатывает один запрос, либо его отдельные фрагменты. Результаты работы отдельных узлов будут идентичны результатам других узлов, либо не изменят характер последующей работы, поэтому не должно быть разницы какой из них будет выбран.
- **Активный резерв**. Каждый узел кластера обрабатывает запросы, но при выходе из строя одного или целой группы узлов, нагрузка перераспределяется между рабочими узлами.
- **Пассивный резерв**. Часть узлов находятся в "спящем" состоянии, не выполняют запросы и ждут инцидента, когда активные узлы получат отказ, и только в этом случае вступят в обработку запросов.
https://serverspace.uz/support/glossary/devops.mdDevOps (сокр. от DEVelopment OPeration) называют целый набор agile-практик для повышения эффективности процессов разработки и использования ПО путем постоянной интеграции и сотрудничества различных специалистов через инструменты автоматизации.
DevOps (сокр. от DEVelopment OPeration) называют целый набор agile-практик для повышения эффективности процессов разработки и использования ПО путем постоянной интеграции и сотрудничества различных специалистов через инструменты автоматизации. Концепция DevOps характеризуется, в первую очередь, снятием организационных барьеров между группами разработчиков с целью создания более качественного продукта. Также DevOps ориентируется на реализацию методологии CI/CD.
В отличие от других подобных концепций DevOps предлагает распространять agile-практики на весь цикл жизни ИТ-продукта: от создания и тестировки до эксплуатации и поддержки.
Другой аспект, который отличает DevOps — поддержка микросервисной архитектуры. На практике это означает построение системы из сегментированных модулей, которые слабо связаны между собой и находятся в ведении одного специалиста. Это открывает возможность перманентного рефакторинга и постоянного выпуска обновлений без необходимости останавливать работу ИТ-продукта.
## Задачи DevOps
- Ускорение выхода продукта на рынок.
- Уменьшение частоты отказов новых релизов;
- Сокращение времени на дебагинг;
- Улучшение системы восстановления после сбоев.
## Принципы DevOps
Концепция DevOps исповедует пять основных принципов, направленных на повышение ответственности разработчиков за продукт на всех стадиях его производства и ускорение выпуска релизов.
- **Культура коммуникации**. DevOps во многом связан с работой команд в едином информационном поле в доверительной среде общения специалистов разного профиля.
- **Автоматизация**. Новый код обязан проходить автоматизированную серию тестов прежде чем попадать на рабочий сервер.
- **Бережливость**. Принцип работает на устранение действий и инструментов с недостаточной полезностью в пользу постоянного совершенствования и оптимизированного исправления проблем.
- **Измерение**. Принцип связан с постоянным анализом данных и оценок эффективности процессов.
- **Обмен**. Коллективная ответственность и разделение успехов на всю команду. Принцип направлен на объединение и взаимодействие между всеми участниками создания ИТ-продукта.
https://serverspace.uz/support/glossary/cloud-storage.mdОблачное хранилище — модель предполагает хранение данных в интернете при помощи ресурсов облачного провайдера или поставщика, который управляет облачной инфраструктурой.
Облачное хранилище — модель предполагает хранение данных в интернете при помощи ресурсов облачного провайдера или поставщика, который управляет облачной инфраструктурой.
Особенностью данной модели является подход к потреблению ресурсов, который определяется тарифом или техническими возможностями провайдера. Кроме этого, подобный подход избавляет потребителя услуги от необходимости закупать и обслуживать собственные СХД, что несет за собой сокращение издержек.
Облачный сервис Cloud Storage направлен на работу с данными: хранением и раздачей цифрового контента, который используют нагруженные приложения и другие сервисы.
С точки зрения клиента все данные хранятся на одном виртуальном сервере, в то время как фактически данные могут распределяться между удаленными друг от друга физическими серверами, но их структура остается непрозрачной для потребителя услуги.
Сервис может использоваться мобильными разработчиками, онлайн-СМИ или сайтами, которые работают с пользовательским контентом и поэтому нуждаются в постоянном масштабировании и, конечно, обычными пользователями.
## Преимущества Cloud Storage
- Высокая степень доступности данных;
- Возможность организовать коллективную проектную работу с данными;
- Оплата происходит по факту использования ресурсов, а не за аренду всего сервера;
- Потенциальная возможность бесконечного масштабирования;
- Оптимизация бизнес-расходов на покупке и обслуживании железа;
- Сохранность данных даже в случае аппаратных сбоев.
Еще одно преимущество является скорее факультативным, поскольку в большей степени зависит от конкретного сервис-провайдера, но администрацией Cloud Storage может, как правило, заниматься специалист, не обладающий ИТ-образованием, тогда как администрирование физического сервера такой ситуации не допускает.
Арендуйте масштабируемые [облачные серверы](https://serverspace.ru/services/cloud-servers/) для хостинга, видеонаблюдения и разработки с круглосуточной поддержкой.
https://serverspace.uz/support/glossary/virtual-machine.mdВиртуальная машина (ВМ) — файл (образ), который работает по типу обычного компьютера, фактически являясь программой. Функционирует в отдельном окне и эмулирует для пользователя работу в операционной системе.
Виртуальная машина (ВМ) представляет собой файл (образ), который работает по типу обычного компьютера, фактически являясь программой. Виртуальная машина функционирует в отдельном окне и эмулирует для пользователя работу в операционной системе. Действия в виртуальной машине изолированы от остальной части системы, поэтому ПО внутри нее не может влиять или управлять остальной системой.
Кроме этого, ВМ способны запускать отдельные приложения в той среде, для которой они изначально разрабатывались. Особенно это полезно при разработке мобильных приложений.
Виртуальные машины часто используются для тестирования различных решений: от обновления ПО до умышленного заражения вирусами и проверки информационной безопасности.
Иначе говоря, ВМ способны выполнять роль своеобразной "песочницы" для разработки ПО.
Другой ключевой особенностью использования ВМ является их способность к легкой миграции с одной физической машины на другую, что чрезвычайно полезно при управлении кластерами.
На одном физическом компьютере могут быть запущены сразу несколько ВМ с разными операционными системами. Переключение между ними не требует перезагрузки, а только переключения между окнами. Каждая ВМ при этом обладает своим набором ресурсов (ядра, память диски), которые распределяет администратор.
Далее виртуальное оборудование сопоставляется с фактическим на физическом компьютере. Это помогает оптимизировать средства за счет устранения необходимости в физических аппаратных системах и сопутствующих затратах на их поддержку, а также уменьшает требования к производительности и охлаждению.
По этой причине ВМ (точнее сеть из нескольких ВМ) также применяются для моделирования информационных систем с клиент-серверной архитектурой в рамках единой эмуляции и для оптимизации потребления ресурсов мейнфреймов.
Наибольшей популярностью сегодня пользуются три типа систем аппаратной виртуализации, с помощью которых создаются ВМ:
- Microsoft Hyper-V;
- Oracle VirtualBox;
- VMware Workstation.
https://serverspace.uz/support/glossary/iaas.mdIaaS, или Infrastructure-as-a-Service, дословно означает инфраструктуру, которую предоставляют как услугу. В качестве инфраструктуры могут выступать разные составляющие: хранилища данных, виртуальные серверы или операционные системы.
IaaS, или Infrastructure-as-a-Service, дословно означает инфраструктуру, которую предоставляют как услугу. В качестве инфраструктуры могут выступать разные составляющие: хранилища данных, виртуальные серверы или операционные системы.
Каждый подобный компонент предоставляется облачным провайдером в качестве услуги. Управлять ресурсами при этом может как провайдер, так и клиент в зависимости от выбранной модели потребления. Разделение ролей в управлении зависит от нагрузки ИТ-отдела клиента и задач, которые должны быть закрыты при помощи IaaS.
Как правило, клиент получает управление хранением данных, установкой и запуском ПО. Облачный провайдер занимается контролем работы своей физической инфраструктуры: сети, серверы, собственным и промежуточным ПО.
Модель IaaS имеет ряд преимуществ, среди которых выделяется три основных:
**Возможность масштабирования**. Клиент может оплачивать только те ресурсы, которыми он фактически пользуется. Это помогает сохранять работу сервисов даже во время пиковых нагрузок и экономить в периоды, когда в полном объеме ресурсов нет необходимости.
**Экономия на инфраструктуре**. Аренда ресурсов по модели IaaS почти всегда будет дешевле покупки собственной инфраструктуры. Не последней статьей расходов является поддержка штата специалистов, которая требует регулярных вложений от клиента.
**Мобильность и доступность**. IaaS предоставляет возможность работать с данными вне зависимости от оборудования и геолокации пользователя. Достаточно иметь стабильное интернет-подключение.
## Области применения IaaS
- Возможность создания песочницы для новых продуктов и тестирования различных решений;
- Хранение и бэкапы данных;
- Предоставление ресурсов для своих клиентов;
- Анализ больших объемов данных;
- Обеспечение доступности сервисов во время пиковых нагрузок;
- Резервная площадка для собственной инфраструктуры.
https://serverspace.uz/support/glossary/solid-state-drive.mdSolid State Drive или сокращенно SSD называют тип твердотельных накопителей данных, которые в основном используют флэш-память. Те, что используют динамическую память, выделяют в отдельную группу Ram Drive накопителей.
Solid State Drive или сокращенно SSD называют тип твердотельных накопителей данных, которые в основном используют флэш-память. Те, что используют динамическую память, выделяют в отдельную группу Ram Drive накопителей.
На данный момент технология достигла того уровня, чтобы заменить любой HDD на SSD, которые выпускаются во всех форм-факторах привычных жестких дисков. Для этого нужно только учесть совместимость интерфейсов. При подобной замене для пользователя изменения будут касаться только быстродействия, но сами процессы деления на разделы или форматирования не изменятся.
SSD логически эмулирует обычный жесткий диск, но при этом обладает большей производительностью, которая зависит от типа базового контроллера. Выбор SSD зависит от типа задач и характера записи/стирания информации. В промышленных SSD немаловажную роль играют вспомогательные технологии, отвечающие за износостойкость ячеек памяти. Их основная цель — обеспечить равномерное использование дискового пространства и тем самым продлить срок эксплуатации устройств.
На данный момент для SSD используют четыре типа NAND-Flash памяти: SLC (Single Level Cell), eMLC(Enterprise Multi Level Cell), MLC (Multi Level Cell) и TLC (Three Level Cel), отличающиеся плотностью хранения информации и ресурсом Записи/Стирания.
Чипы SLC принято считать наиболее ресурсными, но область их применения ограничена из-за высокой стоимости за гигабайт данных. Для построения серверной архитектуры более всего применимы чипы eMLC, которые обладают сравнимым объемом ресурсов, но стоят на порядок дешевле, что приближает их к SSD домашнего типа использования.
В домашних устройствах использование SSD чаще всего связывают с созданием недорогой дисковой подсистемы, которая позволяет наладить быструю работу с приложениями путем установки операционной системы на твердотельном накопителе.
https://serverspace.uz/support/glossary/rdp.mdRDP - Это протокол компании Microsoft, который был создан в 2010 году для удаленного подключения к персональным компьютером на базе операционной системы Windows.Данный протокол работает через определенный открытый порт, а именно 3398.
RDP (Remote Desktop Protocol) — это протокол компании Microsoft созданный для удаленного подключения к персональным компьютером на базе операционной системы Windows. Протокол использует порт 3398, его можно изменить в настройках вашей системы.
## **Как применяется**
Обычно RDP используют для работы, а конкретно для удаленного подключения к персональным компьютерам, чтобы персонал мог выполнять работу удаленно. Также RDP распространен среди VDS компаний, ведь сервера на Windows могут работать с графической оболочкой, и удаленное подключение должно быть изначально, чтобы не возникало проблем при создании нового сервера.
## **Минимальные требования для нормальной работоспособности RDP**
- Версия операционной системы Windows 7 и выше
- Для серверов используется версия ОС Windows Server 2008 и выше
- На некоторых сборках операционной системы Windows - RDP требуется первоначально настроить
- Хорошая скорость интернета
Преимущества RDP обуславливается полным взаимодействием с удаленным рабочим столом, прямо как со своим собственным персональным компьютером.
## Пример использования протокола RDP
Представим что сотруднику требуется отправить важный файл с рабочего компьютера, который находится в офисе, но сам сотрудник не имеет физический доступ к пк. У пользователя есть два способа решения проблемы, приехать в офис и отправить файл, либо удаленно подключиться к пк, используя протокол RDP.
https://serverspace.uz/support/glossary/server.mdСервер – это вычислительная машина для выполнения каких-либо серверных задач, которая не требует физического участия пользователя.
Сервер — это вычислительная машина для выполнения каких-либо серверных задач, которая не требует физического участия пользователя. Для работы сервера требуется его первостепенная настройка, после чего вычислительная машина может работать и выполнять поставленные задачи без прямого участия человека, следуя заданным конфигурациям на этапе настройки.
## Возможности сервера
Сервер может выполнять множество полезных функций:
- Хранить информацию одного или нескольких сайтов
- IP Телефония. Свой собственный сервер можно использовать для телефонии, где будут храниться ваши данные и записи звонков.
- Координировать взаимодействие компьютеров, находящихся в одной сети. Благодаря созданию домена внутри сети предприятия, появляется множество возможностей по контролю безопасности вашей сети.
- Хранить данные. Сервер может выступать хранилищем корпоративных данных и предоставлять доступ к ним.
## Вариации серверов
## Физический сервер
Физический сервер (или же dedicated server) — это самостоятельная и самодостаточная единица оборудования, открывающая перед своим владельцем полный спектр возможностей. Данный сервер является аппаратным комплексом, настроенным на хранение данных или непрерывное решение поставленных задач. Неважно это ваша собственность или вы арендуете его в дата-центре, процессорная мощность, оперативная память и жесткие диски задействуются для работы установленного вами ПО.
Кроме того, физический сервер должен быть подключен к портам, соединяющим его с Сетью, порты обладают различной пропускной способностью, но чем она выше, тем более оперативно будет работать сервер.
## Виртуальный сервер
[Виртуальный сервер](https://serverspace.ru/services/vps-server/) ( он же VPS) предоставляет общий доступ к ресурсам аппаратного-программного обеспечения с помощью другой операционной системы. Одной из отличительных особенностей виртуального сервера является его создание именно с такими параметрами, которые необходимы именно сегодня и под конкретные задачи вашего бизнеса: можно настраивать количество ядер, емкость диска, оперативную память и не только. Более того, при создании виртуального сервера достаточно 10 минут, чтобы ваш VPS был готов к работе с необходимой конфигурацией, так же легко и просто можно увеличить или уменьшить параметры сервера, оплачивая именно те ресурсы, которые вам необходимы.
Для управления виртуальным сервером предоставляются администраторские права, что позволяет менять настройки, устанавливать любую операционную систему и программное обеспечение, не ограничиваясь только тем, что предлагает вам оператор.
## Облачный сервер
Облачный сервер (или же cloud server) — это вычислительная машина, которая размещена у компании предоставляющая гибкую настройку мощности.
Пользователю предоставляется возможность выбора и настройки характеристик сервера. Корректировка характеристик происходит в панели управления, при этом нет необходимости останавливать сервер. Возможность использования не всей мощности сервера, а лишь его части, позволяет снизить затраты.
## Из каких компонентов состоит физический сервер
Он состоит из:
- Материнской платы
- Процессор
- Блока питания
- Оперативной памяти
- Твердотельный накопитель (hdd/ssd)
- Система охлаждения
Кроме перечисленных комплектующих, сервер может иметь несколько слотов для процессора, тем самым увеличивая мощности сервера для масштабирования.
https://serverspace.uz/support/glossary/vpn.mdVPN (Virtual Private Network) или Виртуальная Частная Сеть – Это протокол, создающий защищенное подключение между пользователем и виртуальной сетью, что в будущем способствует получению доступа к ограниченным интернет ресурсам, и оберегает пользователя от небезопасной передачи трафика в общедоступных сетях.
VPN (Virtual Private Network) — это протокол, создающий защищенное подключение между пользователем и виртуальной сетью, что в будущем способствует получению доступа к ограниченным интернет ресурсам, и оберегает пользователя от небезопасной передачи трафика в общедоступных сетях.
Частная сеть — это соединение в сети, в которой установлены некоторые ограничения для защищенной среды, тип сети можно настроить так, что устройства, не находящиеся в этой сети, не смогут получить к нему доступ.
## **Типы VPN**
Remote Access VPN — Пользователь подключается удаленно к сети, и тем самым получает возможность взаимодействовать с данными и работать удаленно. При этом любой трафик как исходящий, так и входящий - шифруется.
Site-To-Site VPN также известна как "point-to-point" — Предназначена для того, чтобы объединять сети организации. Он соединяет две честные сети. Распространенный тип соединения при конфигурации сети для предприятия.
## **Работа VPN**
VPN скрывает ваш уникальный IP-адрес, тем самым позволяет перенаправлять его через сервер, который управляется узлом VPN. Значит, если вы подключены через VPN, то VPN-сервер вам выдает другой IP -адрес и становится вашим "основным" IP-адресом на время его работы. Получается, что ваш провайдер не может проконтролировать какие сайты вы посетили или данные отправили.
## **Применение VPN **
- Сохранение конфиденциальности вашей информации и местоположения от злоумышленников (в публичных WiFi-сетях)
- С помощью VPN вы можете получить контент который недоступен в некоторых странах (как например Netflix и т.д.)
- Соединять две частные сети для компании, тем самым упроcтив взаимодействие между работниками
## Преимущества VPN
- Это прежде всего защита данных.
- Конфиденциальность в общедоступных сетях.
- Скрывает ваш IP-адрес.
- Предотвращает ограничение пропускной способности на основании определенных действий.
- Защита от DDoS-атак.
## **Недостатки VPN**
- Снижение скорости вашего интернета.
- VPN не дает 100% гарантию, что ваши данные не утекут в различные социальные сети. Бесплатные/дешевые VPN работаю медленно, тем самым они подставляют вашу "анонимность" под угрозу и могут собирать ваши данные.
- Если хотите быть полностью уверенным за вашу "анонимность" нужно платить за качественный VPN.
https://serverspace.uz/support/glossary/vstack.mdУзнайте что такое vStack, как выглядит его архитектура, как он развивается, лицензируется и его ключевые преимущества
vStack — инновационная гиперконвергентная платформа от компании ITGLOBAL.COM LABS, выбранная Serverspace в 2019 году, несмотря на то, что на момент выхода на рынок России эта платформа виртуализации только начинала свой путь. Причина выбора в пользу vStack была очевидна — ее гиперконвергентный подход позволил провайдеру сократить расходы на оборудование и упростить управление инфраструктурой, не уступая по производительности знакомым решениям, таким как VMware.
Важно отметить несколько ключевых преимуществ платформы vStack:
- Интегрированное решение: vStack объединяет в себе компоненты vStack OS, vStack Storage, vStack Network и vStack Management в одну гиперконвергентную платформу. Это позволяет управлять всей инфраструктурой через единый интерфейс, что значительно упрощает ее управление и экономит ресурсы на обслуживание.
- Экономическая эффективность: Разработчики могут создать виртуальный Центр обработки данных (ЦОД) на уровне предприятия, используя даже оборудование потребительского класса, без потери производительности. Это открывает новые возможности для экономии средств при построении инфраструктуры.
- Увеличение производительности: Работа в условиях CPU overcommit — одно из сильных преимуществ платформы vStack, позволяющее значительно повысить экономическую эффективность за счет оптимизации использования вычислительных ресурсов.
- Масштабируемость и отказоустойчивость: vStack обеспечивает возможность быстрого масштабирования aинфраструктуры и замены элементов, вышедших из строя, что делает ее идеальным выбором для компаний, стремящихся к высокой доступности и надежности своей IT-инфраструктуры.
- Эффективное использование ресурсов: Снимки виртуальных машин vStack содержат в себе всю необходимую конфигурацию, включая виртуальные сетевые порты, обеспечивая тем самым оптимальное использование ресурсов.
- Экономия средств: Виртуальные машины на платформе vStack доступны клиентам по более привлекательной цене по сравнению с аналогичными решениями на базе VMware, что делает ее экономически выгодным выбором для компаний любого масштаба.
Отличительной особенностью платформы vStack является ее полноценный гиперконвергентный подход. Это означает, что в отличие от интегрированных решений, vStack не привязан к определенным производителям оборудования, что дает пользователям большую гибкость в выборе железа для построения своей инфраструктуры. Таким образом, vStack представляет собой современное и мощное решение для создания и управления виртуальными средами, обеспечивая высокую производительность, экономичность и простоту в управлении.
Гиперконвергентная инфраструктура (HCI) представляет собой инновационное решение в области IT-инфраструктуры, которое объединяет функции вычислений (Software-Defined Computing - SDC), хранения данных (Software-Defined Storage - SDS) и управления сетью (Software-Defined Networking - SDN) в единую платформу. В отличие от традиционных подходов, где каждая из этих функций обычно реализуется на отдельных устройствах или серверах с различными ролями, в HCI все эти функции интегрированы на уровне каждого сервера в составе инфраструктуры
## HCI
Гиперконвергентная инфраструктура (HCI) представляет собой современный подход к организации IT-инфраструктуры, где функции вычислений (Software-Defined Computing - SDC), хранения данных (Software-Defined Storage - SDS) и управления сетью (Software-Defined Networking - SDN) сливаются в одно целое. В отличие от старых методов, где каждая из этих функций обычно работает на отдельном оборудовании или серверах с разными функциями, в HCI все эти задачи интегрированы на уровне каждого сервера в составе инфраструктуры.
Классическая инфраструктура: В этой схеме различные функции (вычислительные, сетевые, хранилища) реализованы на отдельном оборудовании или серверах с выделенными ролями. Например, есть отдельные роутеры, коммутаторы, серверы и хранилища данных. Управление каждым из сегментов требует отдельных специалистов и знаний.
Решение гиперконвергентной инфраструктуры: В данной конфигурации все функции (SDS, SDC, SDN) объединены в кластере однородных x86-серверов с дисками. Это приводит к существенному упрощению инфраструктуры, сокращению расходов на оборудование и управление, а также увеличению гибкости и масштабируемости всей системы.
Таким образом, HCI представляет собой эволюцию в области построения IT-инфраструктуры, обеспечивая компактность, гибкость и удобство управления, что делает ее привлекательным выбором для современных организаций, стремящихся к оптимизации своих IT-ресурсов
**Ключевые преимущества HCI:**
Гиперконвергентная инфраструктура (HCI) предоставляет целый набор преимуществ, которые делают ее предпочтительным выбором для современных организаций:
- Простота инфраструктуры: HCI значительно снижает сложность инфраструктуры за счет интеграции всех функций в единую платформу. В отличие от конвергентной инфраструктуры, где требуется работа с несколькими отдельными устройствами и интерфейсами управления, HCI предоставляет единый интерфейс и API для управления всей инфраструктурой, что упрощает ее эксплуатацию и снижает необходимость в узкоспециализированных специалистах.
- Унифицированность и однородность элементов: HCI обеспечивает однородность элементов инфраструктуры, что делает процесс управления более эффективным и упрощенным. В случае неисправности, замена компонентов становится проще благодаря стандартизированным процедурам и отсутствию необходимости в сложных диагностических процессах.
- Использование любого доступного оборудования: HCI не связана с конкретными вендорами оборудования, что позволяет использовать различное аппаратное обеспечение, включая даже потребительское. Это открывает новые возможности для экономии средств на оборудовании и упрощает процесс замены компонентов.
- Экономия на оборудовании: Благодаря возможности использования потребительского оборудования и горизонтально-масштабируемых решений, HCI позволяет существенно снизить затраты на оборудование. Это особенно актуально для тестовых сред и проектов, не требующих высокой степени резервирования.
- Управление через единый интерфейс: Единый интерфейс управления HCI позволяет обслуживать всю инфраструктуру с помощью одного опытного специалиста, что упрощает процесс управления и снижает затраты на персонал.
Таким образом, HCI обеспечивает не только технические преимущества, но и значительные экономические и организационные выгоды для предприятий любого масштаба.
## Архитектура vStack
Архитектура vStack представляет собой инновационное решение, объединяющее три ключевых компонента — Software Defined Storage (SDS), Software Defined Networking (SDN) и Software Defined Computing (SDC) — в единое кластерное пространство на базе серверов. Вот основные характеристики и особенности каждого компонента:
Программно-определяемые вычисления (SDC):
Слой SDC реализован на базе гипервизора второго типа, обеспечивая высокую степень виртуализации вычислительных ресурсов.
Поддерживается спецификация virtio для сетевых портов, дисков и другой периферии, обеспечивая гибкость и эффективность в работе с различным оборудованием.
Платформа поддерживает различные операционные системы, включая FreeBSD, различные дистрибутивы Linux (OEL, CentOS, Ubuntu, Debian) и Windows 2019/2022.
Для облачных образов доступны инструменты cloud-init для Unix-систем и cloud-base для Windows, обеспечивающие кастомизацию гостевых ОС и быструю инициализацию.
Облачные образы (cloud images):
- Возможность лимитировать производительность сетевого порта и дисков в реальном времени, что позволяет эффективно управлять ресурсами и гарантировать их доступность для всех виртуальных машин.
Автоматическое распределение квантов CPU в зависимости от степени overcommit, утилизации узла и нагрузки конкретной ВМ, что позволяет максимально эффективно использовать ресурсы и добиться высокой производительности.
Снимки виртуальных машин содержат их конфигурацию, включая сетевые порты и IP-адреса, что упрощает управление и восстановление в случае необходимости.
Таким образом, архитектура vStack обеспечивает высокую производительность, гибкость и простоту в управлении, делая платформу идеальным выбором для построения современной и надежной инфраструктуры облачных вычислений.
Автономный механизм бюджетирования квантов vCPU в vStack заслуживает отдельного упоминания, поскольку позволяет добиться экономической эффективности в слое SDC до 900%. Этот инновационный подход позволяет оптимизировать использование ресурсов и максимально эффективно распределять вычислительные мощности между виртуальными машинами, что становится возможным благодаря уникальному гипервизору bhyve, обеспечивающему низкий показатель CPU Overhead, всего лишь 2-5%.
Хранилище данных в vStack, основанное на технологии ZFS, предоставляет разнообразные функции, включая компрессию, дедупликацию, контроль целостности, создание клонов и снимков, а также автоматическое восстановление данных. В системе хранения используются пулы и узлы кластера, где каждый пул содержит диск от каждого узла. Для обеспечения надежности рекомендуется использовать избыточность N+2 или более. В случае аварии система автоматически переключает ресурсы, обеспечивая непрерывную работу и безопасность данных.
Таким образом, vStack предоставляет уникальные возможности для оптимизации ресурсов, обеспечивая высокую производительность, надежность и удобство в управлении инфраструктурой.
### Программно-определяемое хранилище (SDS)
Хранилище данных, определяемое программно (SDS), в рамках vStack, использует в своей основе технологию ZFS.
Возможности SDS включают в себя возможности по компрессии и дедупликации данных, обеспечению внутренней целостности данных, созданию клонов и снимков, а также функции самовосстановления данных и гарантии транзакционной целостности.
Ограничения в объеме хранилища (pool/filesystem) включают в себя размер до 1 зеттабайта, а также неограниченное количество файловых систем и блочных устройств.
Схема пятиузлового кластера визуализирует вертикальные контейнеры, представляющие пулы, и горизонтальные узлы кластера. Каждый пул включает в себя диск из каждого узла, при этом избыточность (redundancy) пула всегда соответствует избыточности кластера.
Хранилище данных в vStack, основанное на технологии ZFS, предоставляет разнообразные функции, включая компрессию, дедупликацию, контроль целостности, создание клонов и снимков, а также автоматическое восстановление данных. В системе хранения используются пулы и узлы кластера, где каждый пул содержит диск от каждого узла. Для обеспечения надежности рекомендуется использовать избыточность N+2 или более. В случае аварии система автоматически переключает ресурсы, обеспечивая непрерывную работу и безопасность данных.
Таким образом, vStack предоставляет уникальные возможности для оптимизации ресурсов, обеспечивая высокую производительность, надежность и удобство в управлении инфраструктурой.
### Программно-определяемая сеть (SDN)
Сеть, определенная программно (SDN) в vStack, предлагает три способа создания виртуальных сетей: VLAN, VXLAN и GENEVE (собственная реализация). Это обеспечивает широкие возможности для конфигурации сетевой инфраструктуры в соответствии с требованиями конкретной среды. Независимо от способа реализации, сеть может быть настроена как изолированная, обеспечивая отдельные виртуальные сети для различных приложений или клиентов, так и маршрутизированная, обеспечивающая связь между различными сегментами виртуальной инфраструктуры.
Каждый узел виртуальной сети оперирует на распределенном свитче, являющемся опорным элементом сетевой структуры vStack. Обозначенный на диаграмме темно-синим прямоугольником, этот свитч подчеркивает свою ключевую роль и центральное место в сетевой архитектуре. Разработанные внутренние механизмы, такие как реализация виртуальной сети, внедрение свитча в экосистему netgraph и улучшения в сетевом стеке, успешно прошли тщательные испытания и активно используются в промышленной эксплуатации с сентября 2020 года на многочисленных кластерах. Это подтверждает высокую надежность, эффективность и готовность данных решений к применению в разнообразных сценариях использования и рабочих средах.
- Собственный MTU для каждого экземпляра сети, что позволяет оптимизировать производительность и эффективность передачи данных.
- Возможность настройки сетей как маршрутизируемых или изолированных, обеспечивая гибкость в развертывании и управлении сетевыми ресурсами.
- Поддержка jumbo frames, что позволяет передавать более крупные пакеты данных, увеличивая пропускную способность сети и снижая нагрузку на нее.
- Поддержка TSO/GSO (TCP Segmentation Offload / Generic Segmentation Offload), оптимизирующая процесс сегментации данных для более эффективной передачи через сеть.
- Поддержка path MTU discovery "из коробки", обеспечивающая автоматическое обнаружение оптимального размера MTU для каждого соединения.
- Лимиты программно-определяемой сети включают:До 65536 виртуальных сетей.
- До 1 048 576 портов на свитче одного хоста.
- Пропускная способность виртуального порта составляет 22 GBps / 2.5Mpps.
- Таким образом, SDN в vStack обеспечивает высокую гибкость, производительность и надежность сетевой инфраструктуры, делая ее идеальным выбором для различных сценариев использования в облачных средах и промышленных кластерах
## Как развивается vStack
В новой версии vStack v.2.1 внедряются существенные функциональные улучшения и расширенные возможности:
- **Миграция активных виртуальных машин**: Появляется возможность переноса активных нагрузок с одного сервера на другой без остановки работы, обеспечивая непрерывный доступ к системам для пользователей, аналогично функции vMotion в VMware.
- **Полноценное клонирование виртуальных машин**: Реализуется мгновенное создание копий виртуальных машин любого объема, опираясь на ресурсы кластера.
- **Поддержка сетей на основе GENEVE**: Интеграция открытой технологии, соответствующей стандарту, для более гибкого и эффективного управления сетями.
- **Поддержка функциональности EDGE в графическом интерфейсе**: Внедрение программного маршрутизатора EDGE-роутера, обеспечивающего доступ виртуальных машин к внешним сетям и наоборот через графический интерфейс.
- **Поддержка VM ballooning**: Внедрение механизма оптимизации использования оперативной памяти виртуальных машин, который позволяет эффективно управлять ресурсами и улучшить производительность.
- **Поддержка QinQ (802.1ad)**: Добавляется возможность работы с вложенными виртуальными сетями для более гибкой конфигурации и управления сетевой инфраструктурой.
- **Повышение производительности:** Проводятся улучшения в слое хранения и вычислений для повышения производительности и эффективности работы инфраструктуры.
## Лицензирование
Важным аспектом лицензирования vStack является его доступность по двум моделям: сервисной (OPEX) и on-premise (CAPEX), что предоставляет клиентам выбор и гибкость в оплате и управлении расходами. Также доступна опция Managed vStack, предоставляющая удаленное администрирование от вендора для клиентов, не имеющих собственного IT-персонала.
Вы всегда можете воспользоваться услугой Managed vStack, предоставляемой поставщиком. Если в вашей компании нет подходящего сотрудника для администрирования, мы готовы взять на себя эту роль и обеспечить эффективное управление вашей инфраструктурой.
Арендовать сервер с виртуализацией **vStack** можно в панели управления [Serverspace](https://serverspace.ru/services/cloud-servers/)
https://serverspace.uz/support/glossary/vulnerability-management.mdУзнайте. что такое Vulnerability Management, его цель и что он в себя включает
**Vulnerability Management** (Управление уязвимостями) - это процесс систематического обнаружения, оценки, приоритизации и устранения уязвимостей в информационных системах и приложениях.
Уязвимость (Vulnerability) - это слабое место в системе или приложении, которое может быть использовано злоумышленником для несанкционированного доступа, кражи данных, нарушения конфиденциальности или целостности информации. Уязвимости могут быть вызваны ошибками в коде, неправильной настройкой, отсутствием обновлений и патчей, и другими факторами.
Цель Vulnerability Management - снизить риск ущерба от уязвимостей, обнаруживая и устраняя их до того, как злоумышленники смогут использовать их.
Вulnerability Management включает в себя следующие шаги:
- **Discovery** (Обнаружение): поиск уязвимостей в системах и приложениях с помощью сканирования, тестирования на проникновение и других методов.
- **Identification** (Идентификация): определение и документация обнаруженных уязвимостей, включая описание, оценку риска и приоритет.
- **Classification** (Классификация): классификация уязвимостей по типу, тяжести и другим критериям.
- **Prioritization** (Приоритизация): определение порядка устранения уязвимостей на основе их риска и влияния на безопасность.
- **Remediation** (Устранение): исправление уязвимостей с помощью патчей, обновлений, настройки и других мер.
- **Verification** (Верификация): проверка эффективности мер по устранению уязвимостей.
- **Reporting** (Отчетность): отчетность о состоянии уязвимостей и результатах работ по их устранению.
Vulnerability Management является важной частью общей безопасности информационных систем и помогает снизить риск атак и ущерба от уязвимостей.
https://serverspace.uz/support/glossary/razvertyvanie.mdУзнайте, что такое развертывание, какие шаги оно в себя включает, цели и способы развертывания
**Развертывание** (или же Deployment) означает процесс установки, настройки и запуска программного обеспечения, системы или приложения на сервере или в производственной среде.
В более широком смысле, развертывание может включать в себя следующие шаги:
- **Планирование**: определение требований к развертыванию, выбор подходящей инфраструктуры и ресурсов.
- **Разработка**: создание программного обеспечения, системы или приложения.
- **Тестирование**: проверка работоспособности и стабильности системы в тестовой среде.
- **Развертывание**: установка и настройка системы на сервере или в производственной среде.
- **Мониторинг**: наблюдение за работой системы, ее производительностью и исправление ошибок.
Цель развертывания - обеспечить надежную и стабильную работу системы, приложения или программного обеспечения в производственной среде, чтобы оно могло выполнять свои функции и обслуживать пользователей.
В зависимости от типа системы или приложения, развертывание может быть выполнено с помощью различных инструментов и технологий, таких как:
- скрипты автоматизации, такие как Ansible или SaltStack
- системы управления версиями, такие как Git
- инструменты контейнеризации, такие как Docker
Развертывание может быть выполнено в различных способах, таких как:
- **Мануальное развертывание**: ручное установка и настройка системы на сервере.
- **Автоматическое развертывание**: использование инструментов автоматизации для установки и настройки системы.
- **Развертывание с нуля**: создание новой системы или приложения с нуля.
- **Обновление**: обновление существующей системы или приложения до новой версии.
В целом, развертывание - это важный шаг в жизненном цикле системы или приложения, который обеспечивает ее работоспособность и доступность для пользователей.
https://serverspace.uz/support/glossary/winrm.mdУзнайте, что такое WinRM, какие задачи он позволяет выполнять, из каких компонентов состоит и его ограничения
**WinRM** (Windows Remote Management) - это компонент операционной системы Windows, который позволяет управлять удаленными компьютерами, получать информацию о них и исполнять команды на них.
WinRM был введен в Windows Server 2003 R2 и с тех пор является стандартным компонентом ОС Windows. Он позволяет администраторам удаленно управлять компьютерами, что упрощает администрирование и мониторинг систем.
WinRM использует протокол WS-Management (WS-Man), который является открытым стандартом для удаленного управления. Протокол WS-Man позволяет передавать данные между клиентом и сервером в формате XML, что обеспечивает взаимодействие между разными ОС и платформами.
WinRM позволяет выполнять следующие задачи:
- Удаленный доступ к ресурсам компьютера: к файлам, регистрам и ивент логам.
- Исполнение команд и сценариев на удаленном компьютере.
- Мониторинг системных ресурсов, таких как CPU, память и использование диска.
- Получение информации о системе, включая версию ОС, установленное ПО и конфигурацию сети.
- Установка и настройка параметров системы.
WinRM состоит из двух компонентов:
- **WinRM Service** - это служба, которая работает на удаленном компьютере и отвечает за прием и выполнение запросов от клиентов.
- **WinRM Clien**t - это инструмент, который позволяет администраторам отправлять запросы на удаленный компьютер и получать результаты.
WinRM имеет несколько преимуществ перед другими средствами удаленного управления, такими как Remote Desktop или SSH:
- **Безопасность**: WinRM использует защищенный протокол и поддерживает аутентификацию и шифрование данных.
- **Масштабируемость**: WinRM может обрабатывать множество соединений и запросов одновременно.
- **Интеграция**: WinRM тесно интегрирован с ОС Windows и может использовать существующие механизмы безопасности и аутентификации.
Однако, WinRM также имеет некоторые ограничения и требования:
- WinRM требует настройки и конфигурации на обоих концах соединения.
- WinRM может иметь ограничения на количество одновременных соединений.
- WinRM может иметь проблемы с совместимостью с некоторыми ОС и платформами.
В целом, WinRM - это мощный инструмент для удаленного управления и мониторинга систем на основе ОС Windows.
https://serverspace.uz/support/glossary/domen.mdУзнайте, что такое домен, как он используется и какие виды существуют
Домен (Domain) - это уникальное имя, которое идентифицирует веб-сайт, сервер, организацию или лицо в интернете. Это основной компонент интернет-адреса, который позволяет пользователям найти и доступ к ресурсу в сети.
## Структура домена
Домен состоит из двух частей: имени домена (Domain Name) и доменной зоны (Top-Level Domain, TLD). Имя домена - это уникальное имя, выбранное владельцем домена, а доменная зона - это родительская зона, к которой принадлежит имя домена.
Пример: в домене 'example.com', 'example' - это имя домена, а '.com' - это доменная зона.
## Виды доменов
1. **Country-Code Top-Level Domain (ccTLD)**: домены, связанные с конкретной страной, например, '.ru' для России или '.us' для Соединенных Штатов.
2. **Generic Top-Level Domain (gTLD)**: общие домены, не связанные с конкретной страной, например, '.com', '.org', '.net'.
3. **Sponsored Top-Level Domain (sTLD)**: домены, спонсируемые организациями или группами, например, '.edu' для образовательных учреждений.
4. **Country-Code Second-Level Domain (ccSLD)**: домены, являющиеся поддоменами ccTLD, например, '.co.uk' для Соединенного Королевства.
## Как используется домен
Домен используется для:
1. **Веб-сайтов**: домен является частью URL-адреса веб-сайта, например, 'https://example.com'.
2. **Электронной почты**: домен может быть использован для создания электронного почтового адреса, например, 'info@example.com'.
3. **Серверов**: домен может быть использован для идентификации серверов, например, 'ftp.example.com'.
4. **Бизнес-идентичности**: домен может быть использован для создания бренда и идентичности компании в интернете.
https://serverspace.uz/support/glossary/aaa-server.mdУзнайте, что такое AAA-сервер (Authentication, Authorization, and Accounting Server), его преимущества, функции и применение
AAA-сервер (Authentication, Authorization, and Accounting Server) - это компьютерная система, которая обеспечивает безопасность и управление доступом к ресурсам в сети. AAA-сервер отвечает за аутентификацию (Authentication), авторизацию (Authorization) и учет (Accounting) пользователей и устройств, которые пытаются получить доступ к ресурсам сети.
## Функции AAA-сервера
- **Аутентификация (Authentication)**: AAA-сервер проверяет идентичность пользователей и устройств, которые пытаются получить доступ к ресурсам сети. Это делается с помощью различных методов аутентификации, таких как логин и пароль, цифровые сертификаты, биометрические данные и т.д.
- **Авторизация (Authorization)**: AAA-сервер определяет, какие ресурсы сети доступны для пользователей и устройств, прошедших аутентификацию. Он проверяет права доступа и ограничения для каждого пользователя и устройства.
- **Учет (Accounting)**: AAA-сервер ведет учет ресурсов, используемых пользователями и устройствами. Он отслеживает использование ресурсов, такие как трафик, время доступа и т.д.
## Применение AAA-сервера
AAA-серверы используются в различных сценариях:
- **Доступ к интернету**: провайдеры интернета используют AAA-серверы для аутентификации и авторизации пользователей, которые пытаются получить доступ к интернету.
- **Виртуальные частные сети (VPN)**: AAA-серверы используются для аутентификации и авторизации пользователей, которые пытаются подключиться к VPN.
- **Корпоративные сети**: AAA-серверы используются для управления доступом к ресурсам корпоративной сети.
- **Мобильные сети**: AAA-серверы используются для аутентификации и авторизации абонентов мобильной сети.
## Преимущества AAA-сервера
- **Улучшенная безопасность**: AAA-сервер обеспечивает более высокую безопасность сети, ограничивая доступ к ресурсам только для авторизованных пользователей и устройств.
- **Удобство управления**: AAA-сервер упрощает управление доступом к ресурсам сети, через единый интерфейс для управления правами доступа.
- **Сокращение затрат**: AAA-сервер может помочь снизить затраты на управление доступом к ресурсам сети.
В целом, AAA-сервер играет важную роль в обеспечении безопасности и управления доступом к ресурсам в сети.
https://serverspace.uz/support/glossary/gpo.mdУзнайте, что такое GPO, его преимущества, недостатки и из чего оно состоит
GPO (Group Policy Object) - это механизм, используемый в операционных системах Windows для централизованного управления настройками и политиками безопасности в сети.
GPO позволяет администраторам сети определять и применять различные настройки и политики безопасности для компьютеров и пользователей в сети. GPO может быть использован для управления настройками таких как:
- Безопасность: пароли, доступ к ресурсам, аудит и т.д.
- Сетевые настройки: настройки сети, прокси, DNS и т.д.
- Приложения: настройки приложений, такие как Microsoft Office, и т.д.
- Системные настройки: настройки операционной системы, такие как диск квота, настройки экрана и т.д.
GPO состоит из следующих компонентов:
- **Group Policy Container**: это контейнер, который содержит настройки и политики безопасности.
- **Group Policy Template**: это шаблон, который определяет структуру и содержимое GPO.
- **Group Policy Editor**: это инструмент, который позволяет администраторам создавать и редактировать GPO.
GPO может быть применен к следующим объектам:
- **Domains**: GPO может быть применен к всей домене или к отдельным подразделениям.
- **Sites**: GPO может быть применен к отдельным сайтам или группе сайтов.
- **Organizational Units**: GPO может быть применен к отдельным организационным единицам или группе организационных единиц.
- **Computers**: GPO может быть применен к отдельным компьютерам или группе компьютеров.
- **Users**: GPO может быть применен к отдельным пользователям или группе пользователей.
Преимущества GPO:
- **Централизованное управление**: GPO позволяет администраторам централизованно управлять настройками и политиками безопасности в сети.
- **Удобство управления**: GPO упрощает управление настройками и политиками безопасности, позволяя администраторам легко изменять и применять настройки.
- **Увеличение безопасности**: GPO помогает улучшить безопасность сети, обеспечивая единообразие настроек и политик безопасности.
Недостатки GPO:
- **Сложность**: GPO может быть сложен в настройке и управлении, особенно для крупных сетей.
- **Конфликты**: GPO может вызывать конфликты между настройками и политиками безопасности, если они не настроены правильно.
- **Ограничения**: GPO имеет ограничения в плане настроек и политик безопасности, которые могут быть применены.
https://serverspace.uz/support/glossary/ide.mdIDE, или Integrated Development Environment — ИСР (интегрированная среда разработки) или ЕСР (единая среда разработки) - набор комплексных программных средств, используемый программистами для разработки.
IDE (Integrated Development Environment) — это кластер программных средств, используемый программистами для разработки. Другими словами это интегрированная среда разработки.
****
## Суть IDE для разработчика
Некоторые начинающие разработчики путают понятия среды и редактора кода. ИСР предоставляет большой список возможностей: от подключения различных языков и проверки написанной программы, до компиляции и помощи при сборке проекта. ИСР представляет собой зону для комфортной работы разработчика. Ее цель - это объединение различных утилит, для комфортной работы программиста. Благодаря окружению ИСР, программист может не тратить время на выполнение дополнительных задач, тем самым успевая сделать гораздо больше, за меньшее количество времени.
ИСР помогает повысить продуктивность.
## Состав IDE
- Редактор кода
- Транслятор (компилятор и/или интерпретатор)
- Инструменты для автоматизации сборки проектов
- Отладчик
Редакторы кода помогают с написанием программ, подсвечивая синтаксис, добавляя отступы, проверяя расстановку символов и предлагая контекстную помощь по коду. Их возможности можно расширять установкой дополнительных плагинов.
Компилятор и интерпретатор - отвечают за преобразование написанного человеком кода в машинный, понятный компьютеру.
Отладчик (debugger) - позволяет находить и исправлять ошибки в коде.
Сейчас большая часть IDE разрабатываются с мультиязыковой поддержкой, благодаря этому найти подходящую среду разработки становится проще.
## Выбор IDE
При выборе IDE обратите внимание на эти пункты:
- Поддерживается ли нужный вам язык, операционная система, на которой вы собираетесь работать.
- Определение задач, под какое устройство вы разрабатываете проект (android, web, desktop, ios)
- Функционал
https://serverspace.uz/support/glossary/ftp.mdFTP (File Transfer Protocol) - это протокол передачи файлов по сети, созданный еще в 1971 году.
FTP (File Transfer Protocol) — это протокол передачи файлов по сети, созданный еще в 1971 году.
Работает данный протокол в режиме "Клиент — Сервер" и он является прикладным, на ряду с такими протоколами как : HTTP; SMTP; DNS.
На сервере имеется файловая система, являющаяся структурой каталогов, в которой находятся файлы.
## Принцип работы FTP
FTP для адресации файлов использует URL (uniform resource locator), разберем как он это делает:
К примеру, у нас есть URL ссылка, которая позволяет скачать документ с нашего файлового сервера (пример ftp://serverspace.ru/host/doc/readme.txt). URL состоит из 3 частей.
- Первая часть - идентификатор протокола ftp — [**ftp:**//serverspace.ru/host/doc/readme.txt] .
- Вторая часть - наименование нашего сервера используя DNS имя, или его ip адрес — [ftp://**serverspace.ru**/host/doc/readme.txt].
- Третья часть - это путь к файлу в файловой системе сервера — [ftp://serverspace.ru**/host/doc/readme.txt**]
В отличии от других протоколов прикладного уровня, FTP использует два соединения:
- Управляющее соединение, работающее по порту 21
- Соединение для передачи данных, работающее по протоколу 20 в активном режиме.
В активном режиме FTP инициатором установки соединения для передачи данных является сервер, в этом случае будет использован порт 20 на сервере, а со стороны клиента используются порты от 1024.
В пассивном режиме FTP инициатором установки соединения для передачи данных выступает клиент, в этом режиме используются порты от 1024.
Клиент, подключаясь к серверу, получает возможность взаимодействовать с файловой системой, переходить по каталогам, копировать данные и выполнять другие операции файловой системы.
## Аутентификация
Протокол FTP требует от пользователя пройти аутентификацию. Необходимо ввести имя пользователя и пароль, после чего пользователь получит доступ к тем каталогам, которые приписаны к пользователю аутентификации.
Еще один способ аутентификации к серверу выступает анонимный пользователь. Для его авторизации требуется ввести имя пользователя "ftp ; anonymous" и пароль (паролем может выступать как логин, так и ваша почта). У анонимных пользователей много ограничений, и доступ разрешен исходя из настроек анонимного пользователя.
## FTP в наше время
Сейчас данный протокол используется реже, из-за проблемы безопасности. Идентификатор пользователя и пароль передаются по сети в открытом виде, в том числе и данные. Многие компании перешли с FTP на другие протоколы, основанные на SSH (SFTP, SCP), он подойдет для локальной сети, к примеру для передачи фильмов с компьютера на телевизор внутри сети, где компьютер будет выступать сервером.
Для создания собственного сервера FTP, вам потребуется любой персональный компьютер с установленной операционной системой Windows, Linux, MacOS.
MacOS и Windows поддерживают возможность выступать в роли сервера FTP, но для этого необходимо в настройках системы включить параметры FTP/SFTP.
На операционной системе Linux потребуется установить и настроить пакет "vsFTPd".
https://serverspace.uz/support/glossary/tcp.mdTCP - Transmission Control Protocol - протокол передачи данных, специализированный на управление передачей данных.
TCP (Transmission Control Protocol ) — это протокол передачи данных интернета, он находится на транспортном уровне на ряду с UDP, RTP. Различие UDP и TCP заключается в том, что второй более надежно доставляет данные.
## TCP гарантирует
- Доставку данных
- Сохранение порядка следования сообщений.
Гарантией доставки данных и сохранения порядка следования сообщений является, получение подтверждающего сообщения.
## Пример работы протокола
Отправитель пересылает по сети сообщение, получатель принимает его и посылает отправителю АСК (Acknowledgment - Подтверждение; ACK — говорит о том что сегмент данных получен). После отправляется следующее сообщение, и если адресат получил его,то он опять отправит АСК.
Такая операция будет повторяться до тех пор, пока файл отправки, не будет получен адресатом.
## Работа протокола при ошибке
Если во время транспортировке произойдет какая то ошибка, то сегмент данных просто не дойдет до получателя, а тот в свою очередь не отправит АСК. Отправитель, отправляя файл, устанавливает таймлок, по истечении времени которого, файл будет отправлен повторно, если не прибудет АСК. При успешной работе таймера, протокол возобновляет отправку сегментов до конечного получения файла.
Протокол TCP подтверждает несколько сегментов отправленных друг за другом, а не отдельный сегмент.
К TCP файлы поступают как один большой поток байт. Затем, этот поток разделяется на куски. Эти куски называются сегментами. После разделения, сегменты отправляются друг за другом адресату. Адресат, получает их, объединяет в один поток и отправляет его приложению.
Весь процесс отправки защищен только от потери сегментов. Полученные сегменты могут быть получены не в том порядке, в котором они были отправлены. Также сегменты могут дублироваться.
https://serverspace.uz/support/glossary/ip.mdIP
IP (Internet Protocol) — Это протокол межсетевого взаимодействия. Данный протокол возник задолго до того как появилось и стала набирать популярность сеть, именуемая Интернет.
- internetworking - объединение сетей
- internet - объединенная сеть
- subnet - подсеть
- Internet - наименование самой крупной объединенной сети.
В модели взаимодействия открытых систем (OSI) и TCP/IP, протокол находится на одном уровне
https://serverspace.uz/support/glossary/protocol-ssh.mdSSH - Secure Shell Protocol/Протокол защищенной оболочки. Протокол безопасного доступа к удалённым системам.
SSH (Secure Shell Protocol/Протокол защищенной оболочки) — это протокол безопасного доступа к удалённым системам. Он относится к прикладным на ряду с такими как: http, smtp, snmp, FTP, Telnet etc. Протокол функционирует на порту 22, при настройке конфигурации протокола ssh, порт можно изменить.
По сравнению с протоколом Telnet, ssh передает зашифрованный трафик который защищен ключом шифрования.
## Как работает SSH
Протокол для работоспособности и передачи данных в зашифрованном виде использует ключи шифрования. Благодаря шифрованию, злоумышленнику перехвативших поток зашифрованных данных потребуется несколько лет для его дешифровки, тем самым время актуальности данных теряется, именно поэтому используется ассиметричное шифрование.
Ассиметричное шифрование - использование двух ключей для шифровки и дешифровки данных.
SSH ключ — последовательность произвольных символов. С помощью него данные шифруются, после шифрования отправляются на конечный узел.
Публичный ключ - данный ключ шифрует данные, его можно передавать другой стороне которая должна отправлять зашифрованные сообщения/данные.
Приватный ключ - данный ключ дешифрует данные, его требуется хранить в безопасном месте. Присутствует возможность зашифровать приватный ключ, использовав ключевую фразу-пароль при создании ключа.
## Пример работы SSH протокола используя SSH ключ
Подключение между сервером и клиентом работает в случае настроенного файла конфигурации протокола ssh на сервере, так же открыты нужные порты. От клиента требуется отправить публичный ключ серверу, что бы он мог шифровать данные в обратную сторону для удаленного подключения по зашифрованному каналу. При отправке запроса на подключения от клиента к серверу, данные шифруются благодаря приватному ключу который находится только у клиента, затем трафик проходит через сеть до сервера, сервер отправляет обратно ответ о получение данных в зашифрованном виде, и передает снова зашифрованный трафик используя публичный ключ шифрования.
Клиентом может выступать любое устройство на котором есть доступ к интернету, а так же клиент приложение ssh.
Примеры клиента:
- Ноутбук (на операционной системе Linux; MacOS; Windows)
- Android устройства
- IOS устройства тоже могут выступать клиентом, требуется установить клиент ssh.
https://serverspace.uz/support/glossary/virtualization.mdВиртуализация — это технология, которая позволяет запускать несколько операционных систем на одном физическом сервере
**Виртуализация** — это технология, которая позволяет запускать несколько операционных систем на одном физическом сервере. Выделение ресурсов сервера/персонального компьютера в изолированную среду, она работает так же как и простой персональный компьютер, то есть для запуска виртуальной машины вам требуется изолировать часть ресурсов основного физического устройства.
Изоляция может быть физических устройств (аппаратная виртуализация: CPU, Ram, HDD), или программных ресурсов. Виртуализация зародилась в 1960х - 1970х годах и развивается по сей день, помогая нам в создании собственных виртуальных машин, облаков, дата-центров.
## Виды аппаратной виртуализации
Обычная работа сервера или пк:
- Физическое "Железо" (Материнская плата; Процессор; Оперативная память; Накопитель)
- Операционная система (Система установленная на ваш носитель, Linux, Windows, etc.)
- Приложения под операционную систему.
## Виртуализация первого типа
Для виртуализации первого типа, не требуется использовать оболочку другой операционной системы.
- Физическое "Железо" (Материнская плата; Процессор; Оперативная память; Накопитель)
- Гипервизор
Для него потребуется сервер со всеми необходимыми компонентами, как и для простого пк. На это устройство устанавливается операционная система для виртуализации — Hypervisor. В рамках этого гипервизора осуществляется аппаратная виртуализация, с помощью которой создается множество изолированных сред, то есть виртуальных машин.
## **Виртуализация второго типа **
Для виртуального компьютера требуются такие же ресурсы, как и на простом пк:
- Физическое "Железо" (Материнская плата; Процессор; Оперативная память; Накопитель)
- Операционная система (Система установленная на ваш носитель, Linux, Windows, etc.)
- Virtualization Soft (Hypervisor)
- Any OS (Любая операционная система для виртуальной машины)
Работа виртуального компьютера выполняется благодаря приложениям виртуализации (VmWARE; VirtualBOX; HyperV), они изолируют часть ресурсов вашего компьютера, взамен на запуск другой системы.
Виртуализация создана не только для системных администраторов, она подойдет и обычному пользователю, для безопасности рабочего персонального компьютера.
## Рассмотрим один из примеров
Вы, как пользователь, скачали с подозрительного сайта файл, и считаете что он может быть с вирусом. Для того чтобы не подвергнуть заражению рабочего пк, вы можете создать виртуальную машину с нужной вам операционной системой и запустить данный файл на ней, тем самым заразив виртуальный компьютер, а не рабочий. После заражения виртуального компьютера у пользователя остается выбор между удалением виртуальной машины и возвратом до точки восстановления системы (иным словом Snapshoot).
https://serverspace.uz/support/glossary/api.mdAPI — это описание способов взаимодействия между программами, как они могут общаться и передавать данные друг другу.
API (Application Programming Interface) — это интерфейс программирования приложения, другими словами описание способов взаимодействия между программами, как они могут общаться и передавать данные друг другу. API упрощает формирование программного кода, так как дает комплект отделанных классов, функций или структур с целью работы вместе с существующими сведениями.
Это понятие применимо не только лишь к веб-разработке, однако и к различным программным продуктам в принципе. Геймпад, холодильник, тв, динамики — все без исключения обладают собственным API.
## Из чего он состоит
API состоит из двух частей:
- Интерфейс взаимодействия;
- Описание.
Интерфейсом может выступать некое окно которое будет подкреплено текстом, а описание будет отвечать на вопрос "как это окно работает?"
Рассмотрим понятие API под другим углом, где примером будет выступать наша компания:
API *serverspace* — это интерфейс, который позволяет получать информацию из базы данных "serverspace.ru" с помощью http-запросов к определенному серверу. Вам не требуется знать в подробностях, какую базу данных использует и как она реализована — достаточно того, что запрос API об этом знает.
## Пример работы клиент-сервер
Предположим что у нашей компании "serverspace" есть интерфейс работы с клиентами, тот самый API в котором есть определённые функции куда можно отправить запрос и получить ответ. Представим что у API "serverspace.ru" есть функция "вернуть список сервисов компании", в таком случае браузер должен сделать запрос к нашему API компании на получение списка сервисов, получить данные и отрисовать их на странице браузера.
Важно учесть что API интерфейсы ограничены, вы получите только те функции, которые были заложены разработчиком. Для добавления каждой новой функции, программист должен разработать ее.
Взаимодействие может проходить не только между клиентом и сервером, но и между серверами.
## Пример работы сервер-сервер
Представим что вы решили приобрести билет на поезд, зашли на сайт, выбрали город в который вы хотите отправиться, и сайт показал вам прогноз погоды этого города вместе с ближайшими датами поездов. Нет, это не означает что у компании по продаже билетов есть свои собственные метеорологические датчики по всему миру. Сайт с билетами взаимодействует с каким либо сервисом погоды используя их API.
##
https://serverspace.uz/support/glossary/vmware.mdVMware
VMware, основанная в 1998 году, выделяется среди ведущих поставщиков программного обеспечения в области виртуализации и облачных технологий. Она специализируется на создании решений, позволяющих запускать множество виртуальных ОС на одном физическом компьютере. Такой подход оптимизирует использование аппаратного обеспечения, повышает отказоустойчивость и упрощает управление IT-инфраструктурой.
Продукты VMware включают в себя:
_VMware vSphere_ - Это платформа виртуализации для построения облачной инфраструктуры. Она предоставляет ряд функций, включая управление ресурсами, автоматизацию, масштабируемость и высокую доступность.
_VMware ESXi_ - Гипервизор, который запускается непосредственно на серверном оборудовании и управляет виртуальными машинами. ESXi предоставляет высокую производительность и безопасность для виртуализированных окружений.
_VMware Workstation_ - ПО для виртуализации на рабочих станциях, позволяющее пользователям запускать несколько виртуальных машин на одном компьютере. Оно часто используется для тестирования приложений и разработки программного обеспечения.
_VMware Fusion_ - Аналог VMware Workstation для macOS, который позволяет пользователям запускать виртуальные машины с операционными системами Windows, Linux и другими на компьютерах Mac.
_VMware Cloud -_Платформа облачных услуг, предоставляемых через сеть дата-центров VMware. Это включает в себя такие продукты, как VMware Cloud Foundation, VMware Cloud on AWS и другие, предлагающие гибкость и масштабируемость облачных вычислений.
VMware использует инновационный метод виртуализации, известный как гипервизорная виртуализация. Это программное обеспечение создает уникальную виртуальную среду, где операционные системы и приложения могут функционировать независимо. Гипервизор устанавливается на уровне аппаратного обеспечения, что позволяет запускать множество виртуальных машин на одном сервере.
Ключевой особенностью этого метода является изоляция ресурсов, которая обеспечивает безопасность и стабильность в работе. VMware также предоставляет инструменты для эффективного управления ресурсами, автоматизации задач и мониторинга.
Благодаря функциям миграции и высокой доступности, VMware обеспечивает непрерывную работу в случае сбоев аппаратной части. Этот метод виртуализации обеспечивает гибкость, масштабируемость и оптимальное использование ресурсов, что делает его востребованным выбором для развертывания виртуализированных инфраструктур.
Компания VMware продолжает развиваться, адаптироваться к изменяющимся требованиям рынка информационных технологий, предлагая инновационные решения в области виртуализации, облачных вычислений и цифровой трансформации.
Сервера с виртуализацией VMware вы можете арендовать у [Serverspace.ru](http://serverspace.ru)
https://serverspace.uz/support/glossary/terraform.mdЧто такое инструмент Terraform? Основные концепции и возможности Terraform. Для чего нужен Terraform? Как установить Terraform для автоматизации
Terraform представляет собой инструмент для управления инфраструктурой в виде кода (Infrastructure as Code, IaC), разработанный HashiCorp. Этот инструмент позволяет определять желаемое состояние инфраструктуры через декларативный код на языке HCL (HashiCorp Configuration Language) или JSON.
## Основные концепции и возможности Terraform
- Определение желаемого состояния инфраструктуры в виде конфигурационных файлов, вместо того чтобы задавать шаги для достижения этого состояния.
- Поддержка множества провайдеров, включая AWS, Azure, Google Cloud Platform, Kubernetes и другие, что позволяет управлять инфраструктурой в различных облачных сервисах.
- Возможность создания, изменения и удаления ресурсов инфраструктуры, а также контроль их жизненного цикла, включая виртуальные машины, сетевые ресурсы, базы данных и контейнеры.
- Использование файлов состояния для отслеживания текущего состояния инфраструктуры и управления изменениями, что обеспечивает точное определение необходимых изменений.
- Расширяемость Terraform с помощью плагинов, что позволяет создавать собственные провайдеры и расширять функциональность инструмента.
- Предварительная проверка изменений с помощью создания плана, который показывает влияние изменений на инфраструктуру.
- Поддержка модулей для организации и переиспользования конфигурации с набором ресурсов и параметров.
## Для чего нужен Terraform
- Стандартизация в инфраструктуре как код (IaC) позволяет легко разворачивать одинаковые инфраструктурные среды в различных регионах. Каждый аспект конфигурации всегда может быть изменен в соответствии с потребностями, просто отредактировав конфигурационный файл.
- Контроль версий позволяет отслеживать каждое изменение в конфигурации. Если результат после обновления не соответствует ожиданиям, всегда есть возможность вернуться к предыдущему состоянию.
- Преимущество экономии времени достигается за счет более быстрого развертывания, масштабирования и восстановления инфраструктуры, чем при ручной настройке.
- Использование конфигурационного файла гарантирует однородный результат и исключает возможность человеческой ошибки.
## Установка Terraform
Чтобы установить Terraform используйте [данную ссылку](https://registry.terraform.io/providers/itglobalcom/serverspace/latest/docs).
Использование Terraform упрощает автоматизацию процесса управления инфраструктурой, в том числе [облачными серверами](https://serverspace.uz/services/cloud-servers.md), делая его более надежным, масштабируемым и повторяемым. Этот инструмент также способствует снижению вероятности ошибок и ускоряет развертывание инфраструктуры и приложений.
https://serverspace.uz/support/glossary/cli.mdЧто такое Интерфейс командной строки (CLI)? Чем он может вам помочь в управлении облачной инфраструктурой? Какие возможности у CLI Serverspace?
## Что такое CLI?
CLI, также известный как командная строка, — это текстовый интерфейс, который предоставляет пользователю возможность взаимодействия с компьютерной системой. Он служит альтернативой графическому пользовательскому интерфейсу (GUI), который использует визуальные образы и пространственные метафоры для иллюстрации функций и действий компьютера.
В обычном режиме CLI представляет собой текстовое окно, где пользователь вводит команды, а в ответ система выдает текстовые сообщения. Эти команды могут включать в себя запуск приложений, перемещение по файловой системе, управление процессами и множество других функций.
[CLI](https://serverspace.uz/services/cli.md) часто выбирают программисты и системные администраторы за его эффективность и мощность. Он позволяет решать сложные задачи с помощью простых текстовых команд. Несмотря на то, что для новичков CLI может показаться сложным, он предоставляет большую гибкость и дает возможность контролировать систему.
## Что может CLI?
- Совместимость с ОС - доступен для установки на Linux и Windows.
- Поддержка API - поддерживаются все функции API Serverspace.
- Наличие документации - описание всех команд доступно в документации на GitHub.
## Возможности CLI
С помощью CLI вы можете управлять [облачными серверами](https://serverspace.uz/services/cloud-servers.md), сетями, ключами SSH и проектами, используя простой набор команд. Все, что вам нужно - это терминал.
https://serverspace.uz/support/glossary/vps.mdУзнайте, что такое VPS и как технология виртуализации позволяет создать несколько изолированных VPS на одном физическом сервере.
VPS (Виртуальный частный сервер, Virtual Private Server) — это универсальное решение, которое сочетает в себе преимущества физического сервера и гибкость облачных технологий. [VPS](https://serverspace.ru/services/vps-server/) представляет собой отдельную виртуализированную операционную систему, работающую внутри физического сервера. Это решение идеально подходит для бизнеса и технических проектов, где требуется контроль, безопасность и масштабируемость без высоких затрат на физическое оборудование.
## Основные характеристики VPS
### Виртуализация
Виртуализация — это технология, позволяющая создать на одном физическом сервере несколько изолированных виртуальных машин, каждая из которых функционирует как отдельный сервер со своей операционной системой и выделенными ресурсами. Это достигается с помощью специального программного обеспечения для виртуализации, такого как [VMware](https://serverspace.ru/services/iaas/), Hyper-V или KVM, которое разделяет аппаратные ресурсы — процессор, память, хранение данных — между виртуальными машинами.
Такой подход не только повышает эффективность использования физического сервера, но и обеспечивает высокий уровень безопасности и контроля, поскольку каждая виртуальная машина изолирована от других и может независимо управляться и настраиваться. [VPS](https://serverspace.ru/services/vps-server/) становится идеальным выбором для бизнеса и разработчиков, которым требуется настройка и масштабирование ресурсов под конкретные проекты, при этом избегая затрат и сложностей управления полноценным физическим сервером.
### Приватность ресурсов
На [VPS](https://serverspace.ru/services/vps-server/) каждому клиенту выделяется часть ресурсов сервера (CPU, память, дисковое пространство), которая полностью изолирована от других виртуальных серверов на том же физическом устройстве. Это обеспечивает стабильную производительность и уменьшает риски, связанные с "соседями" на сервере.
### Масштабируемость и гибкость
[VPS](https://serverspace.ru/services/vps-server/) предоставляет возможность легко увеличивать или уменьшать выделенные ресурсы в зависимости от потребностей вашего бизнеса, что делает его идеальным решением для растущих компаний.
## Преимущества использования VPS
- Каждый [VPS](https://serverspace.ru/services/vps-server/) функционирует независимо, что исключает влияние действий или нагрузки других пользователей на вашу производительность и доступность.
- Пользователи [VPS](https://serverspace.ru/services/vps-server/) могут устанавливать нужные им приложения, управлять настройками безопасности и выполнять другие операции, как на собственном сервере, что делает VPS прекрасным выбором для требовательных приложений и бизнес-критических задач.
- Обслуживание физического сервера может быть дорогостоящим из-за необходимости в аппаратных инвестициях, электроэнергии, пространстве в дата-центре и техническом обслуживании. VPS предлагает аналогичные возможности за меньшую стоимость, делая его доступным для более широкого круга клиентов.
## Для чего нужен VPS
- [VPS для хостинга сайтов](https://serverspace.ru/services/vps-server/cloud-hosting/). Использование VPS для хостинга веб-сайтов обеспечивает более высокую производительность, безопасность и стабильность, особенно для сайтов с высоким трафиком или сложными приложениями.
- Хранение данных и бэкап. VPS может использоваться для создания надёжных решений для резервного копирования данных, обеспечивая их защиту и доступность в случае аварийных ситуаций.
- [VPS для развертывания приложений](https://serverspace.ru/solutions/app-hosting/). Разработчики и компании могут использовать VPS для развертывания и тестирования приложений, благодаря возможности настройки окружения и управления доступом.
## Как выбрать подходящего провайдера?
При выборе провайдера VPS важно оценивать не только стоимость услуг, но и качество обслуживания, отзывы клиентов, а также предлагаемую техническую поддержку и SLA (гарантии уровня обслуживания). Ключевые аспекты выбора включают проверку времени безотказной работы серверов, скорости соединений и доступности технической поддержки 24/7.
## Serverspace как провайдер VPS
[Serverspace](https://serverspace.ru/) предоставляет профессиональные услуги VPS на международном уровне, с [дата-центрами](https://serverspace.ru/infrastructure/data-centers/), расположенными в различных частях света, что обеспечивает высокую скорость и доступность сервисов. Продолжительность бесперебойной работы серверов Serverspace составляет 99.9%, что гарантирует клиентам максимальную доступность их виртуальных серверов. Предлагаемые [гибкие тарифы](https://serverspace.ru/conditions/price/) позволяют клиентам выбирать и настраивать ресурсы в соответствии с их текущими потребностями.
## Пошаговое руководство по началу работы
Чтобы [арендовать VPS](https://serverspace.ru/services/vps-server/), достаточно [зарегистрироваться на сайте Serverspace](https://serverspace.ru/), выбрать нужный тариф и конфигурацию сервера, после чего можно начать использование VPS в течение нескольких минут.
VPS представляет собой эффективное решение для множества задач в сфере ИТ, обеспечивая высокую производительность, гибкость и контроль по сравнению с традиционными хостинговыми решениями. Выбор качественного провайдера, такого как Serverspace, позволяет максимально реализовать потенциал[виртуальных серверов](https://serverspace.ru/services/vps-server/), учитывая все потребности и требования современного бизнеса.
https://serverspace.uz/support/glossary/klaster.mdУзнайте, что такое кластер, что такое вычислительные кластеры, кластеры высокой доступности. Узнайте про безопасность и мониторинг кластеров
Кластером называют группу компьютеров, объединённых высокоскоростными каналами связи. По сути, такая группа является объединенным аппаратным ресурсом с определенной функциональностью:
- Обеспечение вычислительных мощностей;
- Балансировка нагрузки;
- Автомасштабирование;
- Высокая доступность.
## Вычислительные кластеры
Ключевыми характеристиками вычислительных кластеров являются высокая производительность процессоров при обработке числовых данных с плавающей точкой. Важным фактором также является минимизация задержек в сети, которая связывает узлы кластера. В отличие от операций ввода-вывода, которые играют меньшую роль в определении характеристик системы, высокая скорость их выполнения является более типичной для баз данных.
Вычислительные кластеры обладают возможностью разделять вычисления на параллельные потоки, что позволяет одновременно анализировать данные по нескольким направлениям. Обмен информацией между этими потоками осуществляется через соединительную сеть.
## Кластеры серверов
**Кластеры серверов** — это группа взаимосвязанных серверов, которые работают вместе, чтобы предоставить высокую доступность, масштабируемость и улучшенную производительность для различных приложений и сервисов. Вместо того, чтобы полагаться на один сервер для выполнения всех задач, кластеры серверов позволяют распределять вычисления и ресурсы между несколькими узлами (серверами), что обеспечивает лучшую отказоустойчивость и увеличивает вычислительную мощность.
## Кластеры балансировки нагрузки
Данный вид кластеров также называют распределительными. Принцип их работы состоит в работе входных узлов, которые селектируют запросы по вычислительным узлам. При этом входных точек для запросов может быть более, чем один узел.
Запросы поступают в один или несколько узлов, играющих роль входных точек. Далее узлы распределяют запросы по вычислительным узлам, которые проводят их непосредственную обработку.
## Кластеры высокой доступности
Кластеры этого вида создаются для предоставления высокой доступности сервисов. Подобный кластер содержит избыточное количество узлов (минимум два), которые выступают как цепочка предохранителей. При выходе из строя одного и более серверов, кластер по-прежнему сможет предоставлять сервис.
Кластеры подобного рода строятся по трем главным архетипам:
- **Модульная избыточность**. Включается в случаях, когда простой системы недопустим: при срабатывании каждый узел обрабатывает один запрос, либо его отдельные фрагменты. Результаты работы отдельных узлов будут идентичны результатам других узлов, либо не изменят характер последующей работы, поэтому не должно быть разницы какой из них будет выбран.
- **Активный резерв**. Каждый узел кластера обрабатывает запросы, но при выходе из строя одного или целой группы узлов, нагрузка перераспределяется между рабочими узлами.
- **Пассивный резерв**. Часть узлов находятся в "спящем" состоянии, не выполняют запросы и ждут инцидента, когда активные узлы получат отказ, и только в этом случае вступят в обработку запросов.
## Кластеры для хранения данных
Эти кластеры специализируются на обеспечении надежного и масштабируемого хранения данных. Они часто используются для создания распределённых файловых систем и посадочных баз данных.
Примеры: Hadoop Distributed File System (HDFS), Сlustermap системой Cassandra.
Основные характеристики: высокая доступность данных, обеспечение целостности данных, балансировка нагрузки при доступе к данным.
## Контейнерные кластеры
Кластеры, ориентированные на использование контейнеров, такие как Kubernetes, получили широкое распространение благодаря своей способности легко развертывать, масштабировать и управлять контейнеризированными приложениями в различных средах.
## Архитектура и типы кластеров
- Symmetric Multi-Processing (SMP): Используются для соединения нескольких процессоров в одну систему с общей памятью. Это повышает производительность и ускоряет вычисления, поскольку множество процессоров могут работать параллельно над задачами.
- Massively Parallel Processing (MPP): Система, в которой множество процессоров выполняют параллельно отдельные задачи без общей памяти, что позволяет масштабировать системы до очень большого числа узлов.
- Grid Computing: Объединение ресурсов нескольких кластеров, которые могут находиться в различных географических локациях, в единое целое для решения масштабных задач.
## Мониторинг и управление кластерами
Управление кластерами требует специальных инструментов для мониторинга производительности, диагностики проблем и автоматизации управления ресурсами.
Примеры инструментов: Kubernetes для оркестрации контейнеров, Apache Mesos, Prometheus для мониторинга.
## Безопасность кластеров
Безопасность кластеров имеет критически важное значение, особенно в производственных средах.
Общие меры включают аутентификацию и авторизацию пользователей, шифрование данных в пути и на дисках, контроль доступа к ресурсам.
## Автоматическое восстановление и отказоустойчивость
Современные кластеры оснащены механизмами автоматического восстановления. Например, Kubernetes может автоматически перезапустить падшие компоненты контейнеризированных служб.
В случае отказоустойчивости, кластеры могут использовать специализированные протоколы, например, Paxos или Raft, чтобы обеспечить консенсус и поддержание состояния системы в условиях отказа одного или нескольких узлов.
## Кластеры GPU
Кластеры GPU — это вычислительные системы, состоящие из множества графических процессоров (GPU), объединённых в единую сеть, для выполнения высокопараллельных задач, таких как глубокое обучение, рендеринг, научные вычисления и обработка больших данных. В таких кластерах каждый GPU работает параллельно с другими, что позволяет значительно ускорить выполнение задач, требующих интенсивных вычислений.
### Основные характеристики и применения кластеров GPU:
- **Параллельные вычисления**: GPU обладают архитектурой, оптимизированной для параллельных вычислений, что позволяет выполнять множество операций одновременно. В кластере GPU используется эта способность для ускорения обработки данных и решения задач, таких как обучение нейросетей, моделирование физических процессов или рендеринг графики.
- **Масштабируемость**: Кластеры GPU могут масштабироваться, добавляя дополнительные устройства, чтобы обработать большие объемы данных или решить более сложные задачи. Масштабируемость важна для задач, таких как обучение моделей машинного обучения, где с увеличением данных и сложности модели требуется больше вычислительных мощностей.
- **Распределенные вычисления**: В кластерах GPU вычисления могут быть распределены между несколькими узлами, каждый из которых имеет несколько GPU. Это позволяет эффективно использовать ресурсы, минимизируя время вычислений для задач, которые могут быть параллельно обработаны. Такие кластеры могут работать через высокоскоростные сети (например, InfiniBand или Ethernet) для передачи данных между узлами.
- **Применение в области ИИ и глубокого обучения**: Кластеры GPU широко используются для обучения глубоких нейросетей, которые требуют огромных вычислительных мощностей. Каждый GPU может обрабатывать части данных, а результаты могут быть объединены с другими узлами кластера для быстрого достижения решения.
- **Обработка больших данных**: GPU-кластеры используются для обработки больших данных (Big Data), включая анализ данных, машинное обучение и обработку изображений или видео в реальном времени. Например, такие кластеры могут быть использованы в биоинформатике, финансах, а также для анализа изображений и видео в медицине или в производстве.
- **Рендеринг и графика**: В области компьютерной графики кластеры GPU применяются для рендеринга сложных 3D-сцен и анимаций, где требуется высокая производительность для обработки огромных объемов данных (например, в киноиндустрии или для создания визуальных эффектов).
### Преимущества кластеров GPU:
- **Высокая производительность**: GPU значительно ускоряют выполнение задач, которые можно параллелить, по сравнению с традиционными процессорами (CPU).
- **Эффективное использование ресурсов**: GPU-кластеры позволяют эффективно использовать вычислительные мощности, позволяя быстрее обрабатывать большие объемы данных.
- **Снижение времени на обучение моделей**: В глубоких нейросетях обучение моделей, которое может занять недели на CPU, с GPU-кластерами может быть сокращено до дней или даже часов.
### Примеры известных GPU-кластеров:
- **NVIDIA DGX**: Серия суперкомпьютеров от NVIDIA, специально разработанная для задач глубокого обучения. Эти системы включают несколько GPU, что позволяет ускорить обучение нейросетей.
- **Google TPUs**: Хотя TPUs (тензорные процессоры) — это не GPU, их использование в кластерах, аналогичных GPU-кластерам, позволяет решать задачи машинного обучения с высокой эффективностью.
- **AWS EC2 P- и G-серии**: В Amazon Web Services (AWS) доступны виртуальные машины, оснащённые мощными GPU, которые можно использовать для создания кластеров для вычислений с GPU.
### Технологии для работы с GPU-кластерами:
- **CUDA**: Платформа и API от NVIDIA, которая позволяет программировать GPU для выполнения вычислений общего назначения (GPGPU).
- **MPI (Message Passing Interface)**: Стандарт, используемый для обмена данными между различными узлами в распределённой системе, в том числе в кластерах с GPU.
- **Deep Learning Frameworks**: Многие популярные фреймворки для машинного обучения, такие как TensorFlow, PyTorch, и Caffe, поддерживают использование кластеров GPU для распределённого обучения.
В результате, кластеры GPU — это мощные инструменты для решения задач, которые требуют значительных вычислительных мощностей, особенно в области ИИ, машинного обучения, обработки больших данных и компьютерной графики.
## Вне IT: Кластеры или кластера
Правильно будет именно **кластеры**
https://serverspace.uz/support/glossary/cdn.mdУзнайте что такое CDN, как он работает, также мы покажем примеры популярных CDN-провайдеров и расскажем про CDN Serverspace
**CDN** (Content Delivery Network) — это распределённая сеть серверов, предназначенная для эффективной доставки контента пользователям. CDN улучшает восприятие пользователей за счет сокращения времени загрузки контента из сети, баланса нагрузки на сервера и повышения доступности ресурсов.
## Основные аспекты работы CDN
- **Распределение серверов по различным географическим регионам:**
Серверы CDN расположены в различных географических точках по всему миру, что позволяет уменьшить задержку при доставке контента. Ближайший к пользователю сервер быстро предоставляет запрашиваемые данные, минимизируя время передачи.
- **Кеширование контента:**
Кэширование — это основной механизм работы CDN, при котором часто запрашиваемые ресурсы (например, изображения, видео, CSS и JavaScript файлы) хранятся временно на серверах CDN. При повторных запросах контент берется из кеша, что значительно ускоряет загрузку.
- **Балансировка нагрузки:**
CDN распределяет трафик между несколькими серверами, что позволяет избежать перегрузки отдельных узлов и обеспечивает стабильность работы при резких всплесках нагрузки.
- **Повышение доступности и отказоустойчивости:**
В случае, если один или несколько серверов CDN выйдут из строя, другие серверы могут подхватить обслуживание запросов. Это значительно повышает доступность контента.
- **Защита от атак DOoS (Distributed Denial of Service):**
CDN часто включает в себя механизмы для защиты от атак DDoS, распределяя трафик и фильтруя злонамеренные запросы, что помогает защитить исходный сервер от перегрузок и сбоев.
## Принцип работы CDN
Сначала идет запрос пользователя - Когда пользователь запрашивает ресурс (например, веб-страницу, видео или изображение), запрос отправляется на сервер ближайший к нахождению пользователя (точка присутствия, PoP).
После чего происходит обращение к кешу - Cервер CDN проверяет кеш для наличия запрашиваемого ресурса. Если ресурс найден, он немедленно отправляется пользователю.
Последний шаг, запрос корневому серверу - Если ресурс не найден в кеша сети CDN, сервер CDN обращается к первичному серверу (ориджин-серверу) для получения контента. После того, как контент получен, сервер CDN сохраняет копию в кеш и отправляет ресурс пользователю.
## Примеры использования CDN
Медиа-ресурсы: Видео-платформы, такие как YouTube и Netflix, используют CDN для доставки видеоконтента с минимальной задержкой.
Электронная коммерция: Онлайн-магазины, такие как Amazon, используют CDN для быстрой загрузки страниц, изображений и других статических ресурсов.
Веб-сайты с высокой посещаемостью: Новостные сайты, блоги и социальные сети используют CDN для ускорения загрузки страниц и повышения устойчивости к пиковым нагрузкам.
Примеры популярных CDN-провайдеров:
- Serverspace
- Akamai
- Cloudflare
- Amazon CloudFront
- Fastly
- Google Cloud CDN
## CDN Serverspace
Облачный провайдер Serverspace пополнил список облачных сервисов, интегрировав [CDN (Content Delivery Network)](https://serverspace.ru/services/cdn/) – систему доставки контента. Сервис предоставляет пользователям два варианта подключения своего домена к CDN: через делегирование зоны или путем настройки A- и CNAME-записей. Это дает пользователям свободу выбора, как наилучшим образом интегрировать CDN в их текущую структуру.
## Как подключить домен к CDN Serverspace?
-
создайте учетную запись в [Serverspace](https://serverspace.ru/) или войдите в панель управления;
- перейдите во вкладку CDN и выберите способ подключения: через делегирование зоны или через CNAME-запись;
- следуйте инструкции в панели;
- нажмите кнопку "Подключить".
В панели управления вы также сможете арендовать север
* Инструкции доступны в панели управления в разделе настройки параметров CDN.
## Кто такой CDN провайдер?
**CDN-провайдер** — это компания, предлагающая услуги доставки контента через сеть серверов, распределённых по различным регионам. Основная задача CDN заключается в том, чтобы ускорить загрузку веб-страниц, видео и других данных, сокращая задержку и снижая нагрузку на основную инфраструктуру серверов.
### Что такое сервер CDN?
**CDN-сервер** — это сервер, входящий в состав сети доставки контента, который занимается хранением и быстрой передачей данных пользователям по всему миру. Эти серверы расположены в различных точках, что помогает уменьшить время отклика и ускоряет доступ к контенту.
Еще больше терминов связанных с серверами и облачными вычислениями, вы можете найти в нашем Глоссарии.
## Ответы на частые вопросы о CDN
**Что такое CDN и зачем он нужен?**
CDN-сервер — это элемент сети доставки контента, предназначенный для хранения данных и их оперативной передачи пользователям по всему миру. Благодаря размещению таких серверов в разных регионах значительно сокращается время отклика и ускоряется доступ к информации
**Как работает кэширование в CDN?**
Кэширование представляет собой временное сохранение данных, таких как изображения, видео, JavaScript или CSS файлы, на серверах CDN. При повторном запросе ресурса пользователь получает его напрямую из кэша, что существенно ускоряет загрузку и уменьшает нагрузку на исходный сервер.
**Сколько стоит использование CDN?**
Стоимость CDN зависит от объёма переданного трафика, географического распределения пользователей и дополнительных функций, таких как защита от DDoS-атак или расширенные аналитические данные. Некоторые провайдеры предлагают бесплатные тарифы для базового использования.
**Какие виды контента наиболее эффективно передаются с помощью CDN?**
CDN оптимален для статического контента, такого как изображения, видео, файлы стилей и сценариев, а также для потокового видео и аудио. Он также улучшает работу динамических ресурсов с помощью оптимизации маршрутов передачи.
**Можно ли использовать CDN для защиты от DDoS-атак?**
Да, большинство современных CDN-провайдеров предлагают встроенные механизмы защиты от DDoS-атак. Они распределяют входящий трафик по сети серверов, фильтруя вредоносные запросы и предотвращая перегрузку основной инфраструктуры.
**Какие сложности могут возникнуть при настройке CDN?**
Чаще всего сложности связаны с интеграцией домена. Нужно правильно настроить DNS-записи (например, CNAME или A-записи) или делегировать зону. Некорректные настройки могут привести к недоступности контента или задержкам в его загрузке.
**Как выбрать подходящего CDN-провайдера?**
При выборе провайдера учитывайте географию вашей аудитории, скорость и надёжность сети, предлагаемые функции (например, защита от атак, аналитика), стоимость услуг и отзывы пользователей. Популярные провайдеры, такие как Cloudflare, Akamai и Amazon CloudFront, часто предлагают тестовые периоды для оценки.
[CDN предоставляемый Serverspace](https://serverspace.ru/services/cdn/) помогает ускорить и оптимизировать доставку статичного контента конечному пользователю
**Что делать, если контент не загружается через CDN?**
Проверьте настройки DNS, убедитесь, что ресурс закэширован, и проверьте конфигурацию основного сервера. Если проблема не решается, обратитесь в техническую поддержку CDN-провайдера.
https://serverspace.uz/support/glossary/vpc.mdУзнайте, что такое VPC, об его особенностях, компонентах, преимуществах и недостатках, об примерах использования и об VPC Serverspace
Частное облако (VPC) — это модель облачных вычислений, которая предоставляет ресурсы, включая серверы, системы хранения данных и сетевые устройства, исключительно для одной организации или предприятия. Эта ограниченная среда позволяет размещать в виртуальном пространстве различные IT-процессы, что способствует оптимизации работы физического оборудования и обеспечивает высокий уровень защиты конфиденциальной информации. В статье разберем подробно: зачем нужен VPC, для чего используется и как сфера деятельности компании влияет на выбор сервиса.
## Основные особенности VPC
- **Изоляция:**
VPC изолирован от других виртуальных сетей и ресурсов в рамках облачного провайдера. Это достигается за счет использования виртуальных машин, маршрутизации и других сетевых технологий.
- **Настройка сети:**
Пользователи могут создавать собственные подсети, определять диапазоны IP-адресов, устанавливать правила маршрутизации и конфигурировать таблицы маршрутизации.
- **Брандмауэр:**
Для защиты ресурсов внутри VPC можно использовать сетевые ACL (Access Control Lists) и групповые политики безопасности. Эти инструменты помогают контролировать и фильтровать входящий и исходящий трафик.
- **Подключение:**
VPC позволяет подключать изолированные сети к интернету, к другим VPC или к локальной сети через защищенные каналы связи, такие как VPN или прямое подключение (Direct Connect).
- **Гибкость ресурсов:**
Внутри VPC можно запускать и управлять различными ресурсами, такими как виртуальные машины (EC2), базы данных, хранилища и другие сервисы облачного провайдера.
## Примеры использования VPC
- **Тестирование и разработка:**
Изолированные среды VPC идеально подходят для разработки и тестирования приложений без риска влияния на производственные ресурсы.
- **Гибридные облака:**
VPC можно использовать для создания гибридных облаков, объединяя локальные ресурсы с облачными через защищенные каналы.
- **Регулирование и соответствие требованию законодательству:**
VPC позволяет соответствовать стандартизированным требованиям безопасности и конфиденциальности за счет изоляции и контроля сетевых ресурсов.
## Преимущества VPC
**Высокий уровень контроля и безопасности - **Владельцы VPC могут тщательно настраивать все аспекты сети, обеспечивая высокий уровень защиты данных.
**Масштабируемость - **VPC легко масштабируется в зависимости от потребностей, что позволяет организациям адаптироваться к изменениям нагрузки и требованиям.
**Сегментация и изоляция - **Возможность сегментировать сетевые ресурсы и изолировать их по различным критериям, таким как по отделам, проектам или уровням доступа.
## Примеры облачных провайдеров, предлагающих VPC
**Serverspace** ([Serverspace VPC](https://serverspace.ru/services/vpc/))
Serverspace предоставляет пользователям виртуальное частное облако обладающее такими преимуществами, как:
- **Pay-as-you-Go**
Фиксированных платежей нет, оплата списывается раз в 10 минут только за использованные серверы.
- **Поддержка 24x7
**Отвечаем круглосуточно в обращениях через панель управления, по телефону, в чате на сайте и по почте.
- **Публичные адреса IPv4
**IPv4 — основной протокол, который обеспечивает возможность адресации примерно 4,3 млрд адресов.
- **Ширина канала 1 Гбит/c
**Пропускная способность позволяет запускать масштабные проекты с большим количеством трафика.
- **SLA 99.9%
**Гарантия непрерывной доступности серверов в рамках SLA и компенсация в случае его нарушения.
- **Аттестация по 152-ФЗ
**Московский дата-центр аттестован в соответствии с требованиями о хранении персональных данных.
**Amazon Web Services (AWS):**
Amazon Virtual Private Cloud (Amazon VPC) предоставляет пользователям полный контроль над виртуальной сетевой средой, включая выбор IP-адресного диапазона, создание подсетей, настройки маршрутов и настройку брандмауэров.
**Google Cloud Platform (GCP):**
Google Cloud VPC предлагает глобальную виртуальную сеть, которая позволяет создавать и управлять изолированными сетевыми ресурсами по всем регионам GCP.
**Microsoft Azure:**
Azure Virtual Network (VNet) предоставляет возможность создания изолированных сетевых сред в облаке Azure.
## Компоненты VPC
- **Подсети (Subnets):**
Разделяют IP-адресное пространство VPC на более мелкие сегменты для организации и управления ресурсами.
- **Интернет-шлюз (Internet Gateway):**
Позволяет VPC подключаться к Интернету, обеспечение доступа к и от внешних ресурсов.
- **NAT-шлюзы (Network Address Translation Gateway):**
Позволяют ресурсам в частных подсетях VPC получать доступ к Интернету без возможности приема входящих соединений снаружи.
- **VPN-соединения:**
Позволяют соединять VPC с локальными сетями через зашифрованные туннели для безопасной передачи данных.
- **Таблицы маршрутизации (Route Tables):**
Определяют правила маршрутизации трафика между подсетями внутри VPC и за его пределами.
А работать в изолированной и защищенной среде со всеми преимуществами публичного облака можно с помощью [Serverspace](https://serverspace.ru/services/vpc/)!
## Часто задаваемые вопросы о частном облаке VPC
**Что такое частное облако VPC?**
Частное облако VPC (Virtual Private Cloud) — это модель облачных вычислений, предоставляющая ресурсы, такие как серверы, системы хранения данных и сетевые устройства, только для одной организации или предприятия. Это изолированная среда, где можно управлять всеми аспектами вычислительных ресурсов, что позволяет повысить безопасность и эффективность работы.
**Для чего используется VPC?**
VPC применяется для создания изолированных облачных сетей, которые обеспечивают гибкость в управлении вычислительными ресурсами. Это идеальный выбор для организаций, которые хотят контролировать свою инфраструктуру, защищать данные и соответствовать требованиям безопасности.
**Как выбрать подходящее облако VPC для моей компании?**
Выбор зависит от специфики вашей работы, требований к безопасности и необходимости интеграции с другими облачными сервисами. Если вам нужно высокое управление и защита данных, частное облако VPC будет идеальным выбором. Важно также учитывать поддержку нужных сервисов и возможность масштабирования в будущем.
**Какие преимущества дает использование VPC для организации?**
VPC предоставляет высокий уровень контроля за ресурсами, безопасность благодаря изоляции, а также возможность масштабирования в зависимости от нужд бизнеса. Эти преимущества делают VPC идеальным решением для создания гибридных облаков и соблюдения стандартов безопасности.
**Как можно подключить свой домен к VPC?**
Для подключения домена к VPC можно использовать различные методы, включая настройку DNS и виртуальные частные каналы, такие как VPN или Direct Connect, для безопасного взаимодействия с локальными сетями или другими облаками.
**Что такое интернет-шлюз и зачем он нужен в VPC?**
Интернет-шлюз (Internet Gateway) позволяет подключить виртуальное облако VPC к Интернету, обеспечивая доступ к внешним ресурсам и позволяя пользователям в VPC получать данные из глобальной сети.
https://serverspace.uz/support/glossary/blochnoe-hranilishhe.mdУзнайте, что такое блочное хранилище (block storage), его характеристики и как его арендовать.
## Что такое блочное хранилище?
Блочное хранилище (block storage) представляет собой архитектуру ИТ, при которой данные организуются в виде файловой системы. В этой модели данные сохраняются в объемах на сетевых устройствах NAS или SAN (сеть хранения данных). Такая структура данных популярна среди разработчиков, поскольку обеспечивает высокую скорость, эффективность и надежность передачи информации, что необходимо для различных вычислительных задач.
## Основные характеристики блочного хранилища
- **Масштабируемость**: Блочное хранилище легко масштабируется, что позволяет увеличивать объём хранения данных по мере необходимости.
- **Производительность**: Обычно обеспечивает высокую производительность ввода/вывода (I/O), что делает его подходящим для критически важных приложений.
- **Гибкость**: Поддерживает различные файловые системы и может быть использовано как базовый уровень для множества других технологий хранения данных, например, виртуальных машин.
- **Использование в приложениях**: Блочное хранилище широко используется в системах баз данных, виртуализации, веб-службах и других критически важных приложениях.
## В чём отличие блочного хранилища от объектного?
- **В блочном хранилище** файлы разбиваются на части и размещаются в блоках с фиксированным размером. Каждый блок имеет идентификатор расположения, с помощью которого организуется доступ через сеть хранения данных SAN.
- **В объектном хранилище** хранятся неструктурированные данные. Файлы здесь не используют иерархию и хранятся в виде объектов, у каждого из которых есть свой идентификатор. Здесь вы можете напрямую получить доступ к данным.
## Когда стоит выбрать блочное хранилище
- Когда вам требуется высокая производительность и быстрая реакция системы.
- Когда нужно гибко управлять пространством хранения и файловыми системами.
- Когда вы работаете с базами данных или высоконагруженными приложениями.
## Под какие задачи можно использовать хранилище?
### Увеличение пространства ВМ
Добавляйте дополнительное дисковое пространство SSD к облачным серверам без увеличения или уменьшения CPU и RAM. К одной виртуальной машине можно подключить до 4 дополнительных томов.
### Размещение приложений
Адаптируйте хранилище под работу с данными приложений. Например приложения Exchange, SharePoint, Oracle, SAP поддерживают запись данных в блоки и полностью совместимы с блочным хранилищем. Это повышает скорость их работы, так как нет необходимости записывать данные несколько раз.
### Хранение баз данных
Размещайте базы данных разных размеров в блочном хранилище с высокой скоростью чтения/записи и низкой задержкой. По мере роста баз данных объем можно масштабировать в соответствии с потребностями проекта.
## Покупка Блочного хранилища
[Арендовать Блочное хранилище](https://serverspace.ru/services/block-storage/) вы можете с помощью Serverspace. Тут же присутствует удобный калькулятор, рассчитывающий стоимость дополнительного SSD-диска для вашего сервера.
## Как управлять блочным хранилищем?
Управлять блочным хранилищем можно с помощью панели управления Serverspace или API. В настройках сервера в панели управления вы можете добавить и удалить тома (доступно создание до 4 дополнительных томов).
API Serverspace позволяет выполнять любые действия, включая создание, присоединение, отсоединение и получение информации о томе.
https://serverspace.uz/support/glossary/setevoe-hranilishhe-nas.mdУзнайте, что такое сетевое хранилище или же NAS хранилище, как оно работает и его основные характеристики и преимущества
**NAS** (Network-Attached Storage или сетевое хранилище данных) — это устройство для хранения информации, подключаемое к локальной сети (LAN), которое обеспечивает централизованный доступ к данным для множества пользователей и клиентских устройств. Главная цель NAS — упрощение совместного доступа к данным и централизация их хранения в одном месте сети.ети
## Основные характеристики и преимущества NAS
- **Централизованное управление**: Все данные централизованы, что облегчает их управление, резервное копирование и восстановление.
- **Совместный доступ**: Множество пользователей и устройств могут одновременно работать с данными, что делает NAS отличным выбором для офисных и домашних сетей.
- **Простота развертывания и управления**: Обычно NAS легко настраивается и управляется через веб-интерфейс, позволяя администраторам сетей и пользователям быстро и без лишних усилий добавлять и настраивать дисковое пространство.
- **Масштабируемость**: Можно легко добавить к существующей системе новые жесткие диски или установить более емкие устройства для увеличения объема хранения.
- **Поддержка различных протоколов**: NAS поддерживает разнообразные сетевые протоколы, такие как NFS (Network File System), SMB/CIFS (Server Message Block/Common Internet File System) и FTP (File Transfer Protocol), что обеспечивает совместимость с различными операционными системами (Windows, macOS, Linux и др.).
- **Функции безопасности**: Может включать функции, такие как контроль доступа на основе ролей, шифрование данных и защита от несанкционированного доступа.
## Примеры применения NAS
- Домашние медиа-серверы: NAS часто находит применение в домашних сетях для хранения и стриминга мультимедийных файлов (фильмов, музыки, фотографий) на различные устройства, такие как смарт-ТВ, компьютеры и мобильные гаджеты.
- Резервное копирование: Компании и частные пользователи могут использовать NAS в качестве централизованного хранилища для резервного копирования данных с разных устройств.
## Как функционирует NAS
- Аппаратное обеспечение: NAS представляет собой специализированное устройство или сервер, оснащенный несколькими жесткими дисками или твердотельными накопителями (SSD), которое интегрируется в локальную сеть.
- Операционная система и программное обеспечение: На NAS-устройствах установлена специализированная операционная система и программное обеспечение, специально предназначенные для управления файлами и сетевыми ресурсами.
- Сетевое подключение: Устройство соединяется с локальной сетью через Ethernet или Wi-Fi, что позволяет всем устройствам в сети, будь то компьютеры, мобильные гаджеты и т.д., получать к нему доступ.
- Доступ к данным: Пользователи могут получать доступ к данным, хранящимся на NAS, посредством различных сетевых протоколов (NFS, SMB/CIFS, FTP) или через веб-интерфейс.
## Виды и классы NAS
Домашние NAS: Устройства, предназначенные для личного использования и небольших домашних сетей. Они обычно имеют более доступную цену и простую настройку.
Корпоративные NAS: Для предприятий и организаций. Они предлагают более высокую степень масштабируемости и большое количество функций, включая специализированные решения для обеспечения безопасности и непрерывности бизнеса.
NAS для малых и средних предприятий (SMB): Промежуточное решение с балансом между ценой и возможностями.
## Дополнительные функции и возможности
Приложения и расширения: Многие современные NAS поддерживают установку дополнительных приложений через интегрированные магазины приложений, которые могут добавлять функциональность, такую как видеонаблюдение, медицинские архивы, системы управления контентом и другие.
Синхронизация с облаком: Некоторые модели NAS могут автоматически синхронизироваться с облачными сервисами (Google Drive, Dropbox, Amazon S3), что обеспечивает дополнительный уровень защиты и доступности данных.
Мультимедийные функции: Поддержка DLNA и других стандартов для потоковой передачи мультимедийного контента на различные устройства, включая смарт-ТВ и медиаплееры.
## Уровни защиты данных
- **RAID-массивы**: NAS часто поддерживает различные схемы RAID (Redundant Array of Independent Disks), такие как RAID 0, 1, 5, 6, 10 и др., что обеспечивает баланс между производительностью, надежностью и емкостью хранения.
- **Снимки (Snapshots)**: Регулярное создание снимков файлов позволяет быстро восстановить данные в случае случайного удаления или модификации.
- **Антивирусная и антишпионская защита**: Некоторые модели NAS включают встроенные антивирусные решения для дополнительной безопасности.
## Производительность и технические характеристики
Скорость передачи данных: Важные показатели для выбора NAS — пропускная способность сетевого интерфейса (Gigabit Ethernet, 10-Gigabit Ethernet и т.д.), скорость чтения и записи данных.
Процессор и оперативная память: Производительность NAS может значительно зависеть от использованного процессора (ARM, x86) и объема оперативной памяти.
## Контроль и наблюдение
**Мониторинг состояния системы:** Встроенные инструменты мониторинга позволяют отслеживать состояние жестких дисков, температуру системы, сетевую активность и другие важные параметры.
**Уведомления и оповещения**: Пользователи могут получать уведомления о состоянии системы и любые проблемы через email или SMS, что позволяет быстрее реагировать на потенциальные угрозы и неисправности.
## Реальные сценарии использования
**Образовательные учреждения**: Использование NAS для хранения и предоставления доступа к учебным материалам.
**Здравоохранение**: Хранение медицинских данных и изображений с высоким требованием к безопасности и доступности.
**Креативные агентства**: Центральное хранение больших мультимедийных файлов для работы с видео, графикой и анимацией.
## Аренда облачного объектного хранилища
С помощью [Serverspace](http://serverspace.ru) вы можете арендовать [Объектное хранилище S3](https://serverspace.ru/services/storage/)
## Преимущества Cloud Storage
- Легко интегрируйте объектное хранилище со своими приложениями и инструментами с помощью API[https://serverspace.ru/support/glossary/api/](https://serverspace.ru/support/glossary/api/).
- Соблюдаем Федеральный закон №152 и храним персональные данные на территории Российской Федерации.
- Не думайте об ограничениях дискового пространства. Кластер[https://serverspace.ru/support/glossary/klaster/](https://serverspace.ru/support/glossary/klaster/)ы автоматически масштабируются до любого размера.
- Гарантируем непрерывную доступность данных в рамках SLA и компенсацию в случае его нарушения.
- ЦОД[https://serverspace.ru/support/glossary/czod/](https://serverspace.ru/support/glossary/czod/) в РФ имеет сертификацию Tier III Operations Gold, работает без единой секунды простоя.
- Отвечаем круглосуточно в обращениях через панель управления, по телефону, в чате на сайте и по почте.
https://serverspace.uz/support/glossary/agile.mdУзнайте, что за гибкую методологию разработки из себя представляет Agile. прочитайте про ее преимущества и недостатки
Agile - стратегия разработки ПО, основанная на принципах гибкости, прозрачности и сотрудничества. Основными характеристиками Agile являются итеративная разработка, где проект разбивается на короткие циклы разработки, известные как спринты, и постоянное взаимодействие с заказчиком. Этот метод также способствует самоорганизации команд, что может улучшить производительность и качество продукта.
**Преимущества Agile** включают гибкость, прозрачность и улучшение качества программного обеспечения. Однако есть и **некоторые недостатки**, такие как ограничение применимости для крупных проектов, необходимость постоянного вовлечения заказчика и требование высокого уровня самоорганизации команды.
В целом, использование Agile способствует** более эффективной разработке программного обеспечения, улучшенной коммуникации и достижению гибкости продукта**.
Также в нашем Глоссарии есть статья про еще одну гибкую методологию разработки - Scrum
https://serverspace.uz/support/glossary/os.mdУзнайте, что такое операционная система и какую роль она играет в работе компьютера
**Операционная система (ОС)** — это программное обеспечение, управляющее ресурсами компьютера и обеспечивающее возможность запуска и выполнения других прикладных программ. ОС обеспечивает удобство работы пользователя с компьютером, управляет файловой системой, вводом и выводом данных, памятью и процессором, обеспечивает безопасность и конфиденциальность информации, и многое другое.
Современные ОС, такие как Windows, MacOS, Linux, iOS, Android и другие, обычно имеют графический интерфейс пользователя, делающий работу с компьютером более удобной. ОС также могут поддерживать многозадачность, многопользовательский доступ, виртуализацию ресурсов и другие продвинутые функции.
ОС играет ключевую роль в работе компьютера, так как она является основным слоем программного обеспечения между аппаратным обеспечением компьютера и прикладными программами, позволяя им взаимодействовать и функционировать совместно.
Разработанные для определенных целей, операционные системы разделяются на несколько типов. К ним относятся настольные ОС для ПК и ноутбуков, серверные ОС для управления ресурсами на серверах, мобильные ОС для смартфонов и планшетов, а также встраиваемые ОС, применяемые в устройствах Интернета вещей. Основная функция файловых систем – обеспечение доступа к данным на носителях информации.
Все больше ОС интегрируют дополнительные функции, такие как многозадачность, многопользовательский доступ, поддержка сетей, защита информации, виртуализация ресурсов и искусственный интеллект. Разные дистрибутивы и версии ОС поддерживают различное аппаратное обеспечение и функциональность, позволяя пользователям подобрать и настроить операционную систему по своим потребностям и предпочтениям.
В [нашей Базе знаний](https://serverspace.ru/support/help/category/virtual-servers/) есть множество инструкций про разные операционные системы и работу с ними:
Инструкции по Linux, Windows, Ubuntu, Debian, CentOS, Rocky Linux, FreeBSD, VyOS, RED OS, AlmaLinux, pfSense
https://serverspace.uz/support/glossary/konfiguracziya.mdУзнайте, что такое конфигурация в контексте информационных технологий
Конфигурация в контексте информационных технологий обозначает способ настройки программного обеспечения, аппаратных устройств или сетевых компонентов для обеспечения определенного функционала или выполнения определенной задачи. Конфигурация может включать в себя различные параметры, настройки, параметры безопасности, доступ к ресурсам и другие параметры, которые определяют работу системы или компонента. Управление конфигурацией важный аспект в области IT, поскольку позволяет обеспечить правильную работоспособность системы и ее компонентов.
Конфигурация также является важной частью процесса развертывания и управления информационными системами. Это включает в себя создание, изменение и управление конфигурационными данными, включая настройки программного обеспечения, сетевые параметры, аппаратные компоненты и другие элементы системы.
Управление конфигурацией включает в себя процессы и инструменты для контроля и отслеживания изменений, а также для обеспечения целостности и безопасности конфигурационной информации. Это помогает избежать конфликтов между компонентами системы, обеспечивает удобство восстановления после сбоев и повышает общую надежность информационной системы.
Таким образом, конфигурация играет важную роль в обеспечении корректной работы информационных систем и представляет собой важный аспект управления IT-инфраструктурой.
https://serverspace.uz/support/glossary/centos.mdУзнайте, что такое операционная система CentOS, ее достоинства и недостатки
CentOS - это операционная система с открытым исходным кодом, созданная на основе RHEL (Red Hat Enterprise Linux). Поддерживается и разрабатывается сообществом разработчиков, а ее использование абсолютно бесплатно.
## Достоинства CentOS
- **Устойчивость**: Одной из главных характеристик CentOS является его надежность и стабильность, что делает его идеальным вариантом для серверных систем и рабочих станций.
- **Защищенность**: CentOS характеризуется высокими мерами защиты, предлагая надежный уровень безопасности против разнообразных угроз и вредоносного ПО.
- **Бесплатная доступность**: CentOS распространяется без оплаты, благодаря чему он доступен для широкого спектра пользователей.
- **Возможность запускать различные архитектуры**: CentOS поддерживает различные архитектуры, что позволяет ему быть гибким и универсальным в различных сценариях использования.
- **Поддержка долгосрочных выпусков**: Это означает, что каждая версия CentOS будет поддерживаться и обновляться в течение длительного времени, обеспечивая стабильность работы системы.
## Недостатки CentOS
- **Относительно устаревшие версии программного обеспечения**: Обычно CentOS предлагает более старые версии программных продуктов по сравнению с последними выпусками операционных систем.
- **Ограниченная поддержка оборудования**: Из-за использования устаревших программных версий, совместимость CentOS с новым оборудованием может быть ограничена.
- **Ограниченная поддержка**: Так как CentOS основан на системе с открытым исходным кодом, предоставляемая поддержка в основном исходит от сообщества и может быть менее всесторонней по сравнению с коммерческими операционными системами.
Несмотря на эти минусы, CentOS сохраняет свою популярность в сфере серверов благодаря стабильности, безопасности и бесплатной лицензии.
Именно благодаря бесплатной лицензии и высокой стабильности, CentOS широко используется как операционная система для серверов, веб-хостинга, баз данных, облачных вычислений и во многих других областях IT.
https://serverspace.uz/support/help/ustanovka-apache-kafka-na-ubuntu-18-04.mdПодробная инструкция по установке и настройке Apache Kafka (Install Kafka) на VPS под управлением Ubuntu 18.04. Пошаговое руководство. Install Apache Kafka.
Публикация расскажет, как установить брокер сообщений Apache Kafka на серверную платформу. В качестве серверной ОС используется Ubuntu Server 18.04.
## **Немного теории**
Apache Kafka не просто менеджер сообщений: он работает с большими объемами данных, оповещая каждого пользователя в зависимости от его подписок. Принцип работы сервиса следующий.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением Apache**.
В любой организации существует множество приложений и программ, которые генерирует различные сообщения и оповещения. С другой стороны находятся системы мониторинга, которым необходима информация, например, об авторизации пользователей в базе данных 1С. Apache Kafka обеспечивает стабильную связь между двумя точками, гарантируя доставку пакетов. Несомненным преимуществом является то, что обновление перечня сообщений происходит в автоматическом режиме.
Система является масштабируемой по горизонтали, а также обладает высоким уровнем отказоустойчивости по сравнению с другими аналогичными продуктами. Ее используют такие крупные компании как Netflix, Twitter и др.
## **Предварительная подготовка**
[step num="1"]
Apache Kafka создан на Java, т.е. для работы ему необходимы соответствующие компоненты на сервере. Для начала установим default-jre. Заведем пользователя с одноименным именем и паролем, который будет обрабатывать запросы брокера:
```
sudo useradd kafka –m
```
```
sudo passwd kafka
```
[/step]
[step num="2"]
Теперь добавим учетное имя к группе sudo для получения привилегированных прав доступа:
```
sudo adduser kafka sudo
```
[/step]
[step num="3"]
Перелогинимся и перейдем к инсталляции продукта:
```
su -l kafka
```
[/step]
## **Скачивание дистрибутива**
[step num="4"]
Сначала создаем директорию в домашнем разделе для сохранения загруженных файлов:
```
mkdir ~/Downloads
```
[/step]
[step num="5"]
Загрузим дистрибутив с официального сайта продукта:
```bash
curl "http://www-eu.apache.org/dist/kafka/2.3.0/kafka-2.3.0-src.tgz" -o ~/Downloads/kafka.tgz
```
[/step]
**Важно!** На дату 22 августа 2019 года актуальный релиз — 2.3.0.
[step num="6"]
Далее создаем каталог для распаковки архива, перейдем в него и извлечем информацию:
```
mkdir ~/kafka
```
```
cd ~/kafka
```
```bash
tar -xvzf ~/Downloads/kafka.tgz --strip 1
```
[/step]
Теперь перейдем к конфигурированию решения.
## **Настройка Apache Kafka**
[step num="7"]
Шаблон конфигурации, который поставляется вместе с брокером, расположен в kafka/config/server.properties. Чтобы сконфигурировать параметры Kafka под требуемые задачи, открываем его текстовым редактором и вносим соответствующие правки.
[/step]
[step num="8"]
К примеру, добавим опцию удаления тем брокера. Для этого откроем файл через редактор vi и внесем следующую строку.
```sql
delete.topic.enable = true
```
[/step]
## **Первичный старт Kafka на сервере**
[step num="9"]
Настроим параметры запуска "брокера" сообщений под требуемые задачи. Для этого воспользуемся сервисом ZooKeeper. Он отслеживает состояние и конфигурацию Kafka.
[/step]
[step num="10"]
Создадим файл конфигурации для ZooKeeper:
```
sudo vi /etc/systemd/system/zookeeper.service
```
[/step]
[step num="11"]
Припишем в него следующую информацию:
```
Requires=network.target remote-fs.target
After=network.target remote-fs.target
```
```
Type=simple
User=kafka
ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
```
```
WantedBy=multy-user.target
```
[/step]
[step num="12"]
Файл содержит разные блоки. К примеру, Unit отвечает за работоспособность сети и файловой системы, а Install говорит о том, чтобы служба ZooKeeper перезапускалась в автоматическом режиме, если произошел сбой.
[/step]
[step num="13"]
Теперь создадим шаблон systemd для Apache Kafka.
```
sudo nano /etc/systemd/system/kafka.service
```
[/step]
[step num="14"]
Также добавим в него строки:
```
Requires=zookeeper.service
After=zookeeper.service
```
```
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
```
```
WantedBy=multy-user.target
```
[/step]
В данном файле каждая секция также отвечает за разные условия.
[step num="15"]
После создания шаблонов, запустим службу kafka. Если необходимо, чтобы сервис запускался совместно с серверной частью, то прописываем:
```bash
sudo systemctl enable kafka
```
[/step]
Протестируем работоспособность брокера сообщений.
## **Тестирование**
[step num="16"]
Для проверки создадим фразу "Good morning", а потом ликвидируем ее. Чтобы сообщение опубликовалось, необходимы producer (тот, кто публикует) и consumer (тот, кто читает).
[/step]
1. Придумываем тему, в который будет публикация. Дадим ей имя Demo:
```
~/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Demo
```
2. Используя внутреннюю команду kafka-console-producer.sh брокера, создаем producer. От его имени оформляем публикацию в теме Demo:
```
echo "Good Morning" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Demo > /dev/null
```
3. Теперь создадим consumer, который прочитает публикацию в топике. Для этого также используем внутренний скрипт kafka-console-consumer.sh:
```
~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic Demo --from-beginning
```
4. В результате на мониторе появится "Good Morning". Чтобы остановить тестирование, нажимаем сочетание клавиш Ctrl+C.
https://serverspace.uz/support/help/upravlenie-logami-s-pomoshhyu-logrotate-na-ubuntu-16.mdВ инструкции подробно описано, как настроить утилиту Logrotate, установленную на серверной ОС Ubuntu 16.04. И как с ее помощью сохранять и получать доступ к логам.
Любая информационная система сохраняет операции и действия в специальных текстовых файлах – логах. Чтобы ИС исправно сохраняла логи, а администраторы могли получить к ним доступ, используют специализированное ПО. В статье расскажем об одной утилите – Logrotate, которая установлена на серверной ОС Ubuntu 16.04.
### Предварительная подготовка
Logrotate архивирует лог-файлы в автоматическом режиме по заданным параметрам. Если не сжимать логи и не удалять старые версии, то со временем закончится место на жестком диске. Чтобы избежать подобной ситуации, системные администраторы используют программы.
Прежде, чем настраивать логирование, подключаемся к серверной платформе по SSH и выполняем нижеуказанные действия от имени суперпользователя.
### Установка
[step num="1"]
Подключившись к Ubuntu Server, проверяем наличие программы командой:
```
logrotate -- version
```
[/step]
**Важно!** На середину августа 2019 года релиз 3.15.0.
[step num="2"]
Если вместо ответа в виде цифр, пользователь получает сообщение, что утилита не установлена, то инсталлируем стандартными средствами "Убунту".
[/step]
### Настройка
[step num="3"]
Стандартная конфигурация Logrotate хранится по двум путям:
1. Файл /etc/logrotate.conf хранит часть конфигураций по умолчанию. Также он содержит шаблоны архивирования для несистемных файлов.
2. Второй путь – /etc/logrotate.d/ предназначен для сохранения сторонних параметров, которые администратор задает самостоятельно. Здесь хранятся шаблоны ротаций для системных утилит (apt, rsyslog, dpkg и др.).
[/step]
[step num="4"]
После инсталляции утилита использует стандартный шаблон еженедельной ротации данных. Согласно параметрам архивируются логи, которые относятся к пользователю root и системной группе syslog.
[/step]
[step num="5"]
Зайдем во второй файл, который отвечает за системную команду apt, чтобы изучить стандартные параметры.
```
cat /etc/logrotate.d/apt
```
[/step]
Внутри расположено два раздела:
Скриншот №1. Содержимое файла.
Как видно, данные хранятся в виде одинаковых блоков условий:
- rotate 12 указывает, что утилита сохраняет последние двенадцать логов;
- вторая строка означает обновление содержимого один раз в месяц;
- compress – команда архивирования, по умолчанию используется стандартная утилита Linux-систем – gzip, если же требуется изменить на другую, то указываем ключи после команды;
- четвертый параметр говорит logrotate о том, чтобы не сохранять сообщение с ошибкой, если лог-файла нет;
- последний параметр отменяет архивацию, если лог пустой.
[step num="6"]
Если необходим собственный скрипт для ротации, то создаем его в директории /etc/logrotate.d/. Ниже приведем тестовый вариант создания шаблона ротации.
[/step]
### Пример №1
[step num="7"]
Исходное: существует виртуальный сервер. Необходимо сохранять логи в access.log и error.log. Они находятся в каталоге /var/log/example-app/. На сервере присутствует пользователь www-data и группа с аналогичным именем.
[/step]
[step num="8"]
Создаем файл через текстовый редактор.
```
sudo vi /etc/logrotate.d/example-app
```
[/step]
[step num="9"]
Вставляем следующие команды в него:
[/step]
Скриншот №2. Пример файла.
[step num="10"]
**Важно!** Если необходима подробная информация о команде, то используем утилита man. Например,
```
man logrotate
```
[/step]
[step num="11"]
После добавления информации сохраняем изменения. Тестируем результат:
```
sudo logrotate /etc/logrotate.conf –debug
```
[/step]
[step num="12"]
**Важно!** В рабочем окне терминала отображается информация об операциях, которые в данный момент проводит logrotate.
[/step]
### Пример №2
[step num="13"]
Исходные данные: Logrotate запущен от учетного имени Sammy. Лог-файлы сохраняются в директорию /home/sammy/logs/. Необходимо настроить архивирование с интервалом каждый час.
[/step]
[step num="14"]
**Важно!** Настройки будут выполняться в другом каталоге, а не в /etc/logrotate.d.
[/step]
[step num="15"]
Создаем новую конфигурацию через редактор vi.
```
vi /home/sammy/logrotate.conf
```
[/step]
[step num="16"]
В него добавим следующую информацию:
```sql
/home/sammy/logs/*.log {
hourly
missingok
rotate 24
compress
create
}
```
[/step]
[step num="17"]
Команды hourly и rotate 24 указывают на то, что архивирование происходит ежечасно. Закрываем файл с сохранением.
[/step]
[step num="18"]
Для проверки создадим тестовый файл, в котором будут храниться логи.
```
cd ~
mkdir logs
touch logs/access.log
```
[/step]
[step num="19"]
Теперь укажем logrotate новый путь для сохранения информации.
```
logrotate /home/sammy/logrotate.conf --state /home/sammy/logrotate-state –verbose
```
[/step]
[step num="20"]
На мониторе после запуска утилиты появится следующее:
[/step]
Скриншот №3. Результат тестирования.
Для программы логирования – это новый файл.
[step num="21"]
Для ежечасного запуска утилиты – сконфигурируем планировщик заданий cron. Откроем его:
```
crontab –e
```
[/step]
[step num="22"]
Внесем последнюю строку в виде:
```
15 * * * * /usr/sbin/logrotate /home/sammy/logrotate.conf --state /home/sammy/logrotate-state
```
[/step]
Сохраняем изменения, закрываем файл.
https://serverspace.uz/support/help/rezervnoe-kopirovanie-linux-serverov.mdСоздание резервных копий с помощью встроенных утилит dd и tar на семействах ОС Linux. Рассмотрим, как создать бэкап и восстановить систему из резервной копии.
Создание резервных копий – одна из неотъемлемых задач системного администратора. Рассмотрим, как осуществить процедуру с помощью встроенных утилит dd и tar на семействах ОС Linux.
### Создаем бэкап
Утилита dd является одной из первых в своем направлении. У нее отсутствуют некоторые опции, которые доступны на современных аналогах, но она удобна и проста в использовании. К тому же, исходный файл бэкапа читается другими программами без проблем.
[step num="1"]
Запускаем утилиту с заданными параметрами:
```
dd if=xxx of=yyy bs=8M conv=sync,noerror
```
[/step]
[step num="2"]
Синтаксис следующий. XXX – имя диска, с которого производится резервное копирование, а YYY – наименование файла бэкапа.
[/step]
[step num="3"]
Операнд bs задает размер кэша жесткого диска. Установим его на 8 Мб, чтобы копирование происходило быстрее. Параметр conv указывает на то, что копирование файлов происходит побитно с пропуском ошибок чтения.
[/step]
[step num="4"]
Команда tar в основном используется для создания архивов, но ее используют и для бэкапов:
```bash
tar -cvpzf name1.tar.gz --exclude=name2 --one-file-system folder1
```
[/step]
- name1 – произвольное имя для новой резервной копии;
- exclude=name2 означает, что из архива исключаем все папки и файлы с таким именем;
- one file system сообщает архиватору о том, что используем только одну файловую систему;
- folder1 – имя директории, резервная копия которой создается командой tar.
### Как восстановить
[step num="5"]
Чтобы выполнить восстановление из резервной копии, используем следующий синтаксис:
```
dd if=ZZZ of=QQQ bs=8M conv=sync,noerror
```
[/step]
[step num="6"]
Расшифровка следующая. ZZZ – имя бэкапа с указанием пути до него. Например, /mnt/backup/21082019.img, QQQ – диск, на который восстанавливается копия.
[/step]
[step num="7"]
Архиватор использует немного другой набор команд:
```bash
sudo tar -xvpzf XXX -C YYY --numeric-owner
```
[/step]
- XXX – полное наименование архива;
- YYY – директория, в которой будет перемещена разархивированная информация.
[step num="8"]
Последний ключ (--numeric-owner) означает, что пользователи тоже будут восстановлены, но не по учетному имени, а по числовому значению.
https://serverspace.uz/support/help/ustanovka-mongodb-na-ubuntu-18-04.mdПодробная инструкция по установке СУБД MongoDB и проверке подключения на VPS с ОС Ubuntu 18.04. Что такое MongoDB? Преимущества MongoDB
Описание процесса установки СУБД MongoDB и проверки подключения на виртуальных серверах Ubuntu 18.04.
## Что такое MongoDB?
MongoDB - это документо-ориентированная база данных с открытым исходным кодом, которая обеспечивает высокую производительность, высокую доступность и автоматическое масштабирование. MongoDB предоставляется бесплатно по лицензии [General Public](https://ru.wikipedia.org/wiki/GNU_General_Public_License), а также по [коммерческой лицензии](https://www.mongodb.com/community/licensing) от производителя.
Компания-производитель определила MongoDB как:
_"MongoDB is a scalable, open source, high performance, document-oriented database."_
## Преимущества MongoDB
- прежде всего, СУБД очень легко установить и настроить;
- самой основной особенностью MongoDB является то, что это база данных без схемы. Поскольку MongoDB не содержит схемы, только ваш код определяет вашу схему.
- возможность вывести модель данных на основе документов. Способ хранения данных в формате BSON (двоичный JSON), хэши ruby и т.д. помогает хранить данные удобным образом, в то же время он способен хранить массивы и другие документы;
- язык запросов документов, играет важную роль в поддержке динамических запросов;
- легко масштабируется;
- настройка производительности абсолютно проста по сравнению с любыми реляционными базами данных;
- нет необходимости сопоставлять объекты приложения с объектами данных;
- обеспечивает более быстрый доступ к данным благодаря своей природе использования внутренней памяти для хранения;
- MongoDB также можно использовать в качестве файловой системы, которая помогает распределять нагрузку:
- MongoDB поддерживает поиск по регулярным выражениям и полям;
- MongoDB также может быть запущена как служба Windows;
- доступно большое количество документации;
- поддержка Sharding является одной из ключевых функций. Разделение - это процесс хранения данных на разных машинах и способность MongoDB обрабатывать данные по мере увеличения размера данных. Это приводит к горизонтальному масштабированию. С помощью шардинга можно записывать и считывать больший объем данных по мере увеличения объема данных.
## Установка
[step num="1"]
Прежде чем начать устанавливать документо-ориентированную СУБД MongoDB, необходимо скачать и импортировать ключ GPG в операционную систему.
```bash
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
```
[/step]
[step num="2"]
После импорта ключа GPG добавьте репозиторий:
```
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu
xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
```
[/step]
[step num="3"]
Обновите локальную базу пакетов и установите MongoDB:
```bash
sudo apt-get update
sudo apt-get install mongodb
```
[/step]
[step num="4"]
Запустите СУБД на виртуальном сервере:
```bash
sudo systemctl start mongodb
```
[/step]
[step num="5"]
Если необходимо запускать сервис сразу после загрузки сервера, то выполните следующую команду:
```bash
sudo systemctl enable mongodb
```
[/step]
[step num="6"]
Проверьте статус запущенного сервиса:
```bash
sudo systemctl status mongodb
```
[/step]
[step num="7"]
Если все установлено корректно, то в консоли отобразится подобное сообщение:
```
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-07-22 14:30:11 MSK; 36min ago
Docs: man:mongod(1)
Main PID: 31599 (mongod)
Tasks: 23 (limit: 507
CGroup: /system.slice/mongodb.service
└─31599 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Jul 22 14:30:11 Ubuntu1804x64 systemd[1]: Started An object/document-oriented database.
```
[/step]
[step num="8"]
По умолчанию сервис должен прослушивать порт 27017, чтобы это проверить выполните следующую команду:
```
ss -tunelp | grep 27017
```
[/step]
[step num="9"]
Вы увидите следующий вывод:
```
tcp LISTEN 0 128 127.0.0.1:27017 0.0.0.0:*
users:(("mongod",pid=31599,fd=11)) uid:112 ino:72894 sk:1
```
[/step]
## Проверка подключения
Для тестового соединения с СУБД MongoDB можно выполнить команду:
```
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
```
Краткая информация по результату подключения в формате json:
```
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
"authInfo" :
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
```
Для подключения к субд используйте простую команду:
```
mongo
```
Ниже приведены простые примеры по работе с mongo.
Создание базы данных:
```
> use cloud_db
switched to db cloud_db
```
Показать текущую БД:
```
> db
cloud_db
```
Вставить данные:
```
> db.files.insert({"name":"serverspace"})
WriteResult({ "nInserted" : 1 })
```
Вывести все БД на сервере:
```
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
сloud_db 0.000GB
```
Удалить текущую БД:
```
> db.dropDatabase()
{ "dropped" : "cloud_db", "ok" : 1 }
```
Команда выхода:
```
> exit
bye
```
https://serverspace.uz/support/help/ustanovka-elk-na-centos-7.mdПодробная инструкция по установке Elasticsearch, Logstash и Kibana (ELK) на виртуальный сервер с ОС Centos 7. Установка Java. Настройка Nginx
В инструкции описана установка ELK Stack на виртуальный сервер под управлением Centos 7.
## Что такое ELK Stack?
**"ELK"** — это сокращение от трех проектов с открытым исходным кодом: Elasticsearch, Logstash и Kibana. Elasticsearch - это поисковая и аналитическая система. Logstash - это конвейер обработки данных на стороне сервера, который получает данные из нескольких источников одновременно, преобразует их, а затем отправляет в "тайник", подобный Elasticsearch. Kibana позволяет пользователям визуализировать данные с помощью диаграмм и графиков в Elasticsearch.
## Первоначальные требования
Минимальные системные требования для нормальной работы ELK - 4Gb RAM и 2 СPU
## Установка Java
Для развертывания стека Elastic требуется установка Java. Выполните следующую команду:
```bash
yum -y install java-1.8.0
```
Проверить установленную версию можно с помощью команды:
```
java -version
```
## Установка и настройка Elasticsearch
С помощью команды rpm загрузите ключ Elasticsearch:
```
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
```
Добавьте репозиторий:
```
sudo vi /etc/yum.repos.d/elasticsearch.repo
```
Вставьте в него следующее содержимое и сохраните файл:
```
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
```
Запустите процесс установки:
```bash
sudo yum install elasticsearch
```
Далее необходимо отредактировать файл конфигурации, для начала его нужно открыть с помощью текстового редактора vi:
```
vi /etc/elasticsearch/elasticsearch.yml
```
В файле необходимо раскомментировать следующую строку:
```
bootstrap.memory_lock: true
```
Раскомментировать и установить значения следующим параметрам:
```yaml
network.host: localhost
http.port: 9200
```
Сохраните изменения и закройте текстовый редактор.
Следующим шагом является редактирование файла конфигурации sysconfig для Elasticsearch:
```
vi /etc/sysconfig/elasticsearch
```
Раскомментируйте параметр MAX_LOCKED_MEMORY и убедитесь, что установлено значение unlimited:
```
MAX_LOCKED_MEMORY=unlimited
```
Перед тем, как запустить сервис, сначала перезагрузите системы и разрешите запуск Elasticsearch во время загрузки:
```bash
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
```
## Установка и настройка Kibana
Используйте wget для загрузки Kibana 6.2.4, а затем установите его с помощью команды rpm:
```bash
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
rpm -ivh kibana-6.2.4-x86_64.rpm
```
Далее необходимо отредактировать конфигурационный файл Kibana:
```
vi /etc/kibana/kibana.yml
```
Раскомментируйте следующие строки и установите значения:
```yaml
server.port: 5601
server.host: "[IP-адрес вашего сервера]"
elasticsearch.url: "http://localhost:9200"
```
Например:
```yaml
server.port: 5601
server.host: "123.234.123.234"
elasticsearch.url: "http://localhost:9200"
```
Запустите службу Kibana и настройте ее на автоматический запуск при загрузке:
```bash
systemctl enable kibana
systemctl start kibana
```
Откройте порт 5601 для подключения к веб-интерфейсу Kibana:
```
sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
```
## Настройка Nginx
На вашем виртуальном сервере должен быть установлен веб-сервер NGINX, о том как это сделать написано в нашей [инструкции](https://serverspace.uz/support/help/ustanovka-nginx-na-centos-7/).
Установите дополнительные инструменты для работы с веб-сервером:
```bash
yum install httpd-tools
```
Далее необходимо создать новый файл конфигурации виртуального хоста в каталоге conf.d:
```
vi /etc/nginx/conf.d/[Домен или IP-адрес].conf
```
Например:
```
vi /etc/nginx/conf.d/123.234.123.234.conf
```
И вставить следующие данные:
```css
server {
listen 80; server_name [Домен или IP-адрес];
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.kibana;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
Затем создайте с помощью команды htpassw новый файл базовой аутентификации. Потребуется создать пароль для пользователя admin:
```
sudo htpasswd -c /etc/nginx/htpasswd.kibana admin
```
Перезапустите сервер nginx:
```bash
systemctl restart nginx
```
## Установка и настройка Logstash
Загрузите и установите Logstash:
```bash
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm
rpm -ivh logstash-6.2.4.rpm
```
По завершении установки Logstash запустите сервис:
```bash
systemctl restart logstash
systemctl enable logstash
```
## Подключение к kibana
После завершения настроек подключитесь к Kibana в браузере, для этого перейдите по следующей ссылке:
```
http://[IP-адрес вашего сервера]:5601
```
Например:
http://123.234.123.234:5601
https://serverspace.uz/support/help/active-directory-group-policies.mdДля чего необходимы групповые политики Active Drirectory? Рассмотрим примеры работы с этим инструментом на VDS под управлением Windows Server
Групповые политики Windows являются неотъемлемой частью администрирования Windows-систем. Рассмотрим примеры работы с этим инструментом на VDS под управлением ОС семейства Windows Server.
### Что такое групповые политики и как ими пользоваться
- Для чего необходимы групповые политики
- Клиентский и серверный компоненты групповых политик
- Настройка управления групповыми политиками
- Как создать новый объект групповой политики
- Как настроить управление групповыми политиками
- Как найти нужный объект групповой политики
- Как удалить объект групповой политики
## Для чего используются групповые политики
Говоря простым языком, **групповая политика** — это инструмент архитектуры Active Directory, который позволяет управлять настройками серверов и рабочих терминалов, подключенных к домену, централизованно. Также, с помощью групповых политик достаточно просто распространить программное обеспечение. Администратор может указать политики для группы в одном месте, а затем применить их к целевой группе пользователей.
Во многих компаниях, как правило, применяется деление на отделы: отдел кадров, бухгалтерия, юристы, отдел системного администрирования. Предположим, что каждому отделу необходим собственный минимальный набор программного обеспечения, а рабочие станции должны быть настроены для конкретных нужд и под конкретные задачи. Благодаря групповым политикам появляется возможность создать настройки для конкретных групп пользователей в домене. При помощи Active Directory GPO администратор может устанавливать и управлять стандартизированными наборами настроек, конкретно для бухгалтерии или отдела кадров.
Настроить рабочие места (компьютеров и пользователей) проще и эффективнее, потому что расположены по тому что располагаются централизованно и требуют дублирования на каждом ПК.
## Клиентский и серверный компоненты групповых политик
Выделяют два компонента групповых политик: клиентский и серверный, т.е. формируется структура "клиент-сервер".
Серверный компонент представляет оснастка MMC (Microsoft Management Console), предназначенная для настройки групповой политики. MMC можно использовать для создания политик, а также для контроля и управления административными шаблонами, настройками безопасности (установка ПО, скрипты и т.п.). Обобщенное название "возможностей" называется расширением. Каждое расширение может иметь дочернее расширение, которое разрешает добавление новых или удаление старых компонентов, а также их обновление.
Клиентский компонент получает и применяет настройки групповой политики. Клиентские расширения являются компонентами запускаемыми на клиентской ОС, которые отвечают за интерпретацию и обработку объектов групповой политики.
Для администрирования GPO используют оснастки MMC - Group Policy Management Console (GPMC) и Group Policy Management Editor.
Сценарии использования Active Directory GPO:
- Централизованная настройка пакета программ Microsoft Office;
- Централизованная настройка управлением питанием компьютеров;
- Настройка веб-браузеров и принтеров;
- Установка и обновление ПО;
- Применение определенных правил в зависимости от местоположения пользователя;
- Централизованные настройки безопасности;
- Перенаправление каталогов в пределах домена;
- Настройка прав доступа к приложениям и системным программам.
## Как настроить управление групповыми политиками
[step num="1"]
Сперва следует установить роль сервера Active Directory Domain Service (AD DS) на контроллер домена. После этого будет доступна оснастка Group Policy Management, для ее запуска вызываем окно "Выполнить" (Windows + R). В открывшемся окне вводим команду:
```
gpmc.msc
```
И нажимаем "**OK**".
[/step]
[step num="2"]
Возможно оснастка не сможет открыться т.к. не была установлена ранее. Исправим это.
[/step]
[step num="3"]
Открываем диспетчер серверов и выбираем установку ролей и компонентов.
[/step]
[step num="4"]
На этапе выбора типа установки, отметим параметр "**Установка ролей и компонентов**". Кликаем по кнопке "**Далее**".
[/step]
[step num="5"]
Так как установка выполняется для текущего сервера - нажимаем "**Далее**".
[/step]
[step num="6"]
Установку серверных ролей пропускаем нажатием на кнопку "**Далее**".
[/step]
[step num="7"]
На этапе выбора компонентов отметим галкой "**Управление групповой политикой**". Кликаем по кнопке "**Далее**".
[/step]
[step num="8"]
Завершаем установку компонентов как обычно.
[/step]
Окно оснастки управления групповой политикой выглядит так:
## Как создать новый объект групповой политики
[step num="9"]
Добавим новый объект групповой политики. В левой части, проследуем по пути: **Лес → Домены → → Объекты групповой политики**.
В правой части окна, кликаем правой кнопкой мыши в свободном месте. В открывшемся контекстном меню, выбираем "**Создать**".
[/step]
[step num="10"]
В открывшемся окне, вводим имя новой политики. Нажимаем "**OK**".
[/step]
Добавленный объект появится в общем списке:
## Настройка созданного объекта групповой политики
[step num="11"]
Для настройки нового объекта кликаем по нему правой кнопкой мыши. В контекстном меню выбираем "**Изменить**".
[/step]
[step num="12"]
Откроется окно редактора управления групповыми политиками. Займемся "полезным" делом - удалим папку со стандартными играми из меню Пуск. Для этого, в меню слева проследуем по пути Конфигурация пользователя Конфигурация пользователя → Политики → Административные шаблоны: получены определения политик (ADMX-файлы) с локального компьютера → Меню "Пуск" и панель задач.
В правой части окна найдем параметр "Удалить ссылку "Игры" из меню "Пуск"". Для удобства поиска можно воспользоваться сортировкой по имени, вверху окна.
[/step]
[step num="13"]
Кликаем по этому параметру правой кнопкой мыши, выбираем "**Изменить**".
В открывшемся окне изменим состояние на "**Включено**". В поле комментария рекомендуем не игнорировать. Для завершения настройки нажимаем "**OK**".
[/step]
Создание объектов можно считать оконченным.
## Как найти нужный объект групповой политики
[step num="14"]
В корпоративных средах, как правило, создается большое количество объектов GPO. Хорошо было бы уметь находить нужный объект. У консоли есть данный функционал. Для этого, в левой части окна кликаем правой кнопкой мыши по лесу. В открывшемся меню выбираем "Найти..."
[/step]
[step num="15"]
В открывшемся окне выбираем в каком домене выполнять поиск. Можно выполнить поиск и по всем доменам, но это может занять продолжительное время.
Попробуем найти созданный ранее объект.
В поле "Элемент поиска" из выпадающего списка выбираем "Имя объекта групповой политики". В условии оставляем вариант "Содержит". В "Значение" указываем имя созданной ранее политики. Именно по этой причине следует создавать понятные имена политик. Нажимаем кнопку "Добавить".
Критерии поиска заданы. нажимаем кнопку "Найти" и просматриваем результаты поиска.
[/step]
## Как удалить объект групповой политики
[step num="16"]
Если в объекте GPO пропадает необходимость, будет лучше его удалить. Кликаем по созданному объекту правой кнопкой мыши, в контекстном меню выбираем "**Удалить**". Если уверены в своем решении, на вопрос подтверждения отвечаем "**Да**".
https://serverspace.uz/support/help/routing-in-pfsense-port-forwarding.mdРассмотрим настройку маршрутизации в pfSense - проброса портов (Port Forwarding). Настройка сетевых интерфейсов клиентов и проверка работы
Сетевые специалисты делят маршрутизаторы на два больших класса — программные и аппаратные. Аппаратные маршрутизаторы представляют оборудование разрабатываемое на предприятиях как готовый продукт. Программные реализации представляют собой набор программ или готовые сборки операционных систем, которые можно установить практически на любой современный компьютер или серверную платформу. Иногда бывает необходимо предоставить доступ из Интернета к машинам находящимся в локальной сети. Рассмотрим настройки маршрутизации - проброса портов (Port Forwarding) с помощью pfSense.
**pfSense** — это дистрибутив ПО, основанный на ОС FreeBSD и предназначенный для организации маршрутизатора либо межсетевого экрана, либо все сразу . Данная ОС может быть установлена практически на любой компьютер или сервер. Ключевая особенность pfSense — решение поставленных задач через web-интерфейс.
## Настройка сети
Если настройка выполняется через VPS/VDS, то следует создать все требуемые серверы, один из которых будет под управлением pfSense. Добавить сетевые адаптеры и объединить в в одну виртуальную сеть.
## Приступаем к настройке
[step num="1"]
В основном меню программы (горизонтальное черное) выбираем** Interfaces → Assignments**.
[/step]
[step num="2"]
Веб-страница обновится, появится список всех сетевых интерфейсов. "**Свободные**" интерфейсы находятся в поле Available network ports. Все интерфейсы показаны с mac-адресами на них. Из выпадающего списка выбираем необходимый и нажимаем кнопку "**Add**".
[/step]
[step num="3"]
После завершения действия, система уведомит об успешном добавлении. Интерфейс получит название "**LAN**". Сохраняем настройки кликом по кнопке "**Save**".
[/step]
[step num="4"]
Настроим сетевой адаптер. Для этого в главном меню открываем** Interfaces → LAN**.
[/step]
[step num="5"]
Установкой галки в поле Enable задействуем интерфейс. Установим настройку IPv4 как статичный IP (Static IPv4).
[/step]
[step num="6"]
В секции настроек конфигурации "**Static IPv4 Configuration**" указываем IP-адрес для этого интерфейса, в нашем случае 10.0.0.254, возможно у вас будет другой. В самом низу страница нажимаем кнопку "**Save**" для сохранения внесенных изменений.
[/step]
[step num="7"]
Система уведомит о внесенных изменениях. Применим их кликом по кнопке "**Apply changes**".
[/step]
## Настроим сетевые интерфейсы клиентов
[step num="8"]
При настройке сетевых интерфейсов клиентов важно помнить, что адрес сервера pfSense должен быть указан в качестве шлюза, в нашем случае 10.0.0.254.
[/step]
### Настройка в Ubuntu
[step num="9"]
Редактируем файл /etc/network/interfaces:
```
auto ens31
```
```
iface ens31 inet static
```
```
address 10.0.0.2
```
```
netmask 255.255.255.0
```
```
dns-nameserver 8.8.8.8
```
```
gateway 10.0.0.254
```
[/step]
[step num="10"]
Перезапускаем службу сети:
```
/etc/init.d/networking restart
```
[/step]
### Windows
[step num="11"]
Для настройки сетевого адаптера в среде Windows необходимо открыть **Пуск → Панель управления → Сеть и интернет → Сетевые подключения** либо
**Пуск → Панель управления → Сеть и интернет → Центр управления сетями и общим доступом → Изменение параметров адаптера**.
[/step]
[step num="12"]
В открывшейся папке кликаем правой кнопкой мыши по значку сетевого адаптера, выбираем "**Свойства**".
[/step]
[step num="13"]
В открывшемся окне кликом мыши по названию (не по галке) выбираем "**Протокол Интернета версии 4 (TCP/IPv4)**". Нажимаем кнопку "**Свойства**".
[/step]
[step num="14"]
В новом окне указываем:
- IP-адрес - 10.0.0.3;
- Маска подсети: 255.255.255.0;
- Шлюз - 10.0.0.254;
- Предпочитаемый DNS-сервер: 8.8.8.8.
[/step]
[step num="15"]
Для сохранения нажимаем кнопку "**OK**". В окне Свойств сетевого адаптера также нажимаем кнопку "**OK**".
[/step]
[step num="16"]
Важно! Еще раз обращаем внимание, что IP-адрес сервера pfSense должен быть указан в качестве основного шлюза и шлюза по умолчанию.
[/step]
## Настроим маршрутизацию
[step num="17"]
В главном меню веб-приложения выбираем **Firewall → NAT**. На вкладке "**Port Forward** ". Нажимаем кнопку **Add**.
[/step]
[step num="18"]
На открывшейся странице редактирования правила перенаправления трафика создадим правило для RDP-интерфейса.
[/step]
[step num="19"]
В поле **Destination **указываем **Any**.
[/step]
[step num="20"]
Destination port range (from port) - выбираем порт назначения, в нашем случае MS RDP. Поле "to port" заполнится автоматически.
[/step]
[step num="21"]
Redirect target IP - указываем IP-адрес сервера или компьютера под управлением ОС Windows.
[/step]
[step num="22"]
Redirect target port - MS RDP.
[/step]
[step num="23"]
При желании заполняем поле описания - "**Description**".
[/step]
[step num="24"]
Нажимаем кнопку "**Save**". И не забываем нажать кнопку "**Apply changes**".
[/step]
**Важно! В случае если порт RDP был изменен (по умолчанию 3389), имя порта выбираем "Other", в поле Custom указываем текущее значение.**
Созданное правило отображается как в примере ниже.
[step num="25"]
Аналогичным способом создаются правила, скажем, для SSH-доступа.
[/step]
## Проверка подключения
[step num="26"]
Для проверки работоспособности настроек требуется подключиться SSH-клиентом или приложением для доступа к удаленному рабочему столу на внешний IP-адрес сервера pfSense.
[/step]
[step num="27"]
Также, проверку можно выполнить с помощью сниффера сетевых портов - **nmap**.
https://serverspace.uz/support/help/setting-timeouts-for-rdp-sessions.mdИнструкция по настройке таймаутов для RDP-сессий. Это решает проблему прекращения работы программ, скриптов и макросов при разрыве сессии
В ходе удаленной работы пользователей, бывает важным выполнить настройку таким образом, чтобы программы, а также скрипты и макросы запущенные клиентом продолжали свою работу, а не закрывались сразу при разрыве сессии. В основе решения проблемы лежит всего лишь настройка таймаутов для RDP-сессий. Рассмотрим как это сделать.
[step num="1"]
Устанавливаем Службу удаленных рабочих столов. Для этого открываем "**Панель управления сервером**". В открывшемся окне выбираем второй пункт - "**Добавить роли и компоненты**".
[/step]
[step num="2"]
В окне мастера установки ролей приводится общий ознакомительный материал. Данный текст будет появляться при каждой попытке добавить роли или компонент сервера. Чтобы эта информация не появлялась вновь, рекомендуем установить галочку "**Пропускать эту страницу по умолчанию**". Нажимаем кнопку "**Далее**".
[/step]
[step num="3"]
Следующим шагом выбираем тип установки - "**Установка служб удаленных рабочих столов**". Нажимаем "**Далее**".
[/step]
[step num="4"]
На следующем этапе выбираем тип развертывания - "**Службы Multipoint**". Обычно этот параметр установлен по умолчанию. Кликаем по кнопке "**Далее**".
[/step]
[step num="5"]
Следующим шагом выбираем сервер для которого выполняется установка. В нашем случае сервер уже добавлен, так как рассматриваем установку на единичный сервер не добавленный в домен. Нажимаем "**Далее**".
[/step]
[step num="6"]
Следующим шагом подтверждаем выбор. Установим галку, которая позволит системе перезагрузить сервер автоматически в случае необходимости. Нажимаем кнопку "**Развернуть**".
[/step]
**Важно! В ходе установки могут быть закрыты все RDP-соединения, а также сервер может быть несколько раз перезагружен без дополнительного уведомления об этом.**
[step num="7"]
Дожидаемся окончания процесса установки.
[/step]
[step num="8"]
В окне трижды написано "**Успешно**". Закрываем окно установки.
[/step]
**Приступаем к настройке групповых политик.**
[step num="9"]
Для настройки групповых политик запускаем соответствующую консоль. В программе выполнить (Windows + R) вводим "gpedit.msc". Нажимаем кнопку "**OK**" или **Enter**.
[/step]
[step num="10"]
В открывшемся окне следуем по пути **Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Ограничение сеансов по времени**.
[/step]
[step num="11"]
Следующим параметрам необходимо установить значение "**Включено**":
- Завершать сеанс при достижении ограничения по времени - Установка данного параметра разрешает или запрещает использовать таймауты.
- Задать ограничение по времени для активных, но бездействующих сеансов служб удаленных рабочих столов - параметр определяет задержку для неактивных сеансов, когда пользователь бездействует.
- Задать ограничение по времени для отключенных сеансов - параметр задает таймаут для завершенных сеансов, когда сеанс завершен, но в фоновом режиме запущены некоторые процессы.
[/step]
[step num="12"]
Для изменения значений, кликаем правой кнопкой мыши по каждому из пунктов. В контекстном меню выбираем "**Редактировать**". Аналогичное окно откроется по двойному клику.
[/step]
[step num="13"]
В открывшемся окне устанавливаем состояние как "**Включено**". Затем устанавливаем временные рамки. По окончании нажимаем кнопку "**OK**".
[/step]
Выбор временных диапазонов остается на усмотрение системного администратора.
Параметр "**Завершать сеанс при достижении ограничения по времени**" не имеет временных диапазонов. Данный параметр нужно просто включить.
После включения всех опций окно будет выглядеть следующим образом.
[step num="14"]
На этом настройка окончена.
https://serverspace.uz/support/help/ustanovka-nginx-na-centos-7.mdРассмотрим процесс установки NGINX на виртуальный VPS сервер с ОС Centos 7 из репозитория EPEL. Конфигурация firewall сервера.
Описание установки web-сервера NGINX на VPS/VDS под управлением Centos 7.
**В Serverspace вы можете создать сервер с уже установленным приложением Nginx**.
## Что такое NGINX?
NGINX, произносится как "engine-ex", является известным веб-сервером с открытым исходным кодом. Изначально он предназначался для веб-обслуживания HTTP трафика, но в результате развития Nginx также может работать как почтовый прокси-сервер IMAP/POP3, а также как балансировщик нагрузки и HTTP-кэш-сервер.
Официальный релиз NGINX состоялся в октябре 2004 года. Создатель программного обеспечения, Игорь Сысоев, начал свой проект в 2002 году, пытаясь решить проблему [C10k](https://ru.wikipedia.org/wiki/C10k). C10k - это задача одновременного управления 10000 соединениями. По этой причине NGINX предлагает управляемую событиями асинхронную архитектуру. Это делает NGINX одним из самых надежных серверов по скорости и масштабируемости.
## Первоначальные требования
[step num="1"]
Для установки web-сервера nginx требуются права суперпользователя.
[/step]
## Процесс установки
[step num="2"]
В первую очередь необходимо добавить репозиторий EPEL:
```bash
sudo yum install epel-release
```
[/step]
Примечание: репозиторий EPEL (Extra Packages for Enterprise Linux) - поддерживается в рамках проекта Fedora и содержит дополнительные пакеты, не входящие в стандартный набор CentOS.
[step num="3"]
Далее установите NGINX на ваш виртуальный сервер:
```bash
sudo yum install nginx
```
[/step]
[step num="4"]
После того, как программное обеспечение будет установлено, необходимо запустить веб-сервер:
```bash
sudo systemctl start nginx
```
[/step]
[step num="5"]
Также необходимо открыть порты 80 (http) и 443 (https) для подключения из сети Интернет:
```
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
```
[/step]
[step num="6"]
Сконфигурировать firewall сервера можно также в настройках сервера в панели управления, о том как это сделать [написано в нашей инструкции](https://serverspace.uz/support/help/firewall-configuring-the-server-firewall/).
[/step]
[step num="7"]
Для проверки перейдите в браузере по доменному имени или ip-адресу вашего сервера:
http://IP-or-domain-name/
[/step]
[step num="8"]
Если необходимо запускать NGINX при загрузке системы, то выполните следующую команду:
```bash
sudo systemctl enable nginx
```
https://serverspace.uz/support/help/ustanovka-php-mysql-plus-iis.mdРассмотрим, как создать связку IIS + MySQL + PHP. IIS - это набор служб Интернета от компании Microsoft. Установка и настройка PHP и MySQL
Так бывает, что Windows-сервер необходимо использовать как web-сервер. Первое, что приходит на ум, так это установить [WAMP](https://serverspace.uz/support/help/installing-and-configuring-the-wamp-server/). Или просто по отдельности установить Apache, MySQL и PHP. Однако случаются и частности, например вместо Apache требуется использовать IIS. Причины могут быть совершенно разными. От отсутствия желания у системного администратора изучить что-то новое, до радикальных взглядов со стороны службы информационной безопасности. Рассмотрим как создать связку IIS + MySQL + PHP.
IIS - это набор служб Интернета от компании Microsoft, иными словами web-платформа. Особенность IIS такова, что он поддерживает большое количество модулей и приложений, в том числе и работу с MySQL и PHP.
[step num="1"]
**Устанавливаем IIS.**
[/step]
[step num="2"]
Запускаем Диспетчер серверов.
[/step]
[step num="3"]
В открывшемся окне выбираем "Добавить роли и компоненты".
[/step]
[step num="4"]
В появившемся окне мастера установки ролей и компонентов, по желанию, устанавливаем галочку "Пропускать эту страницу по умолчанию". Данная страница будет появляться при каждой попытке добавления роли или компонентов. Нажимаем кнопку "**Далее**".
[/step]
[step num="5"]
На следующем шаге - Тип установки - проверяем, чтобы был выбран параметр "**Установка ролей и компонентов**". Кликаем по кнопке "**Далее**".
[/step]
[step num="6"]
На этапе выбора серверов просто нажимаем "**Далее**", так как в нашем случае существует один сервер.
[/step]
[step num="7"]
На шаге выбора ролей сервера отмечаем галкой "**Веб-сервер (IIS)**", кликаем по кнопке "**Далее**".
[/step]
[step num="8"]
В открывшемся окне нажимаем кнопку "**Добавить компоненты**". Окно закроется.
[/step]
[step num="9"]
В оставшемся окне мастера кликаем по кнопке "**Далее**".
[/step]
[step num="10"]
На этапе выбора компонентов, рекомендуем отметить галочкой "Функции .NET Framework 3.5". Нажимаем "**Далее**".
[/step]
[step num="11"]
На шаге "**Роль веб-сервера (IIS)" - "Далее**".
[/step]
[step num="12"]
При желании можно отметить дополнительные службы роли Веб-сервера, например FTP-сервер. Нажимаем кнопку "**Далее**".
[/step]
[step num="13"]
Подтверждаем установку кликом по кнопке "**Установить**".
[/step]
Дожидаемся окончания процесса установки.
[step num="14"]
В окне "Диспетчер серверов" появится значок IIS. Кликаем по нему.
[/step]
[step num="15"]
В обновившемся окне кликаем правой кнопкой мыши по имени сервера. Из контекстного меню выбираем "**Диспетчер служб IIS**".
[/step]
[step num="16"]
В появившемся окне диспетчера, в левой части, выбираем текущий сервер. В правой части окна - "**Получить новые компоненты веб-платформы**".
[/step]
[step num="17"]
Откроется окно браузера используемого в системе по умолчанию с предложением скачать и установить установщик Web-платформ.
[/step]
[step num="18"]
Скачиваем пакет установки, запускаем и устанавливаем.
[/step]
[step num="19"]
После установки, еще раз нажимаем "Получить новые компоненты веб-платформы".
[/step]
[step num="20"]
Запустится мастер установки Web Platform Installer,
[/step]
[step num="21"]
**Устанавливаем MySQL и PHP.**
В окне программы есть поле поиска. Воспользуемся им. В результатах поиска выбираем пакет PHP. Кликаем по кнопке "**Добавить**".
[/step]
[step num="22"]
Аналогичным образом находим пакет MySQL, кликаем "**Добавить**". Когда добавлены все пакеты, нажимаем кнопку "**Установить**".
[/step]
[step num="23"]
Как и в Linux системах, программа установки запросит пароль для пользователя root к СУБД MySQL. Не забываем введенный пароль. Нажимаем "**Продолжить**".
[/step]
[step num="24"]
В центральной части окна перечислен список программ которые будут установлены. Чтобы посмотреть текст лицензионного соглашения устанавливаемого ПО, кликаем по гиперссылке. Если согласны, нажмите кнопку "**Принимаю**".
[/step]
Дожидаемся окончания установки.
[step num="25"]
Результат установки. Нажимаем "**Готово**".
[/step]
[step num="26"]
Как видно, не был установлен пакет "Диспетчер PHP для IIS". Установим его аналогичным способом. Находим через поле поиска, кликаем по кнопке "**Добавить**", затем по кнопке "**Установить**".
[/step]
[step num="27"]
Помним, что программа не установилась из за неверной цифровой подписи. Такое бывает. Скачаем программу с [github](https://github.com/phpmanager/phpmanager/releases). Не забываем о разрядности ОС.
[/step]
В результате будет получен MSI-файл. Устанавливаем как обычную программу. Возможно, в ходе установки, потребуется закрыть диспетчер IIS.
[step num="28"]
После завершения установки, в окне диспетчера IIS появится значок "**Администратор PHP**". Откроем его двойным кликом.
[/step]
[step num="29"]
В открывшемся окне проверим phpinfo(). кликнем по соответствующей гиперссылке.
[/step]
[step num="30"]
В открывшемся окне выбора сайта и URL, выбираем сайт по умолчанию. Нажимаем "OK".
[/step]
Результат выполнения функции phpinfo() будет отображен в диспетчере IIS.
[step num="31"]
**Проверим результат установки MySQL.**
Открываем окно PowerShell и перейдем в директорию расположения СУБД с помощью команды:
```
cd "C:Program FilesMySQLMySQL Server 5.5bin"
```
[/step]
[step num="32"]
Пробуем подключиться к СУБД:
```
./mysql -u root -p
```
[/step]
[step num="33"]
Вводим пароль указанный при установке.
https://serverspace.uz/support/help/configuring-the-remote-desktop-gateway.mdПодробная инструкция по установке и настройке шлюза удаленных рабочих столов (Remote Desktop Gateway в домене Active Directory
Для того чтобы повысить уровень безопасности Windows-сервера бывает недостаточно [сменить TCP-порт RDP](https://serverspace.uz/support/help/smena-nomera-rdp-v-windows-server-2012/) . Рассмотрим настройку шлюза удаленных рабочих столов (Remote Desktop Gateway / Terminal Services Gateway) в домене Active Directory.
## Remote Desktop Gateway, что это?
Remote Desktop Gateway - это роль Windows-сервера, обеспечивающая защищенное соединение, с помощью протокола SSL, с сервером по RDP. Главное преимущество этого решения в том, что не требуется развертывание VPN-сервера, для этого и используется шлюз.
Следует отметить, что начиная с Windows Server 2008 R2, [были изменены названия](https://docs.microsoft.com/ru-ru/windows/win32/termserv/terminal-services-is-now-remote-desktop-services) всех служб удаленных рабочих столов. Именуемые ранее службы Terminal Services были переименованы в Remote Desktop Services.
Преимущества Remote Desktop Gateway в следующем:
- Используя зашифрованное соединение, шлюз позволяет подключаться к внутренним сетевым ресурсам без необходимости использования VPN-соединения удаленными пользователями;
- Шлюз дает возможность контроля доступа к определенным сетевым ресурсам, тем самым реализуя комплексную защиту;
- Шлюз разрешает подключение к сетевым ресурсам, которые размещены за межсетевыми экранами в частных сетях или NAT;
- С помощью консоли диспетчера шлюза появляется возможность настраивать политики авторизации для тех или иных условий, которые должны быть выполнены при подключении к сетевым ресурсам удаленными пользователями. В качестве примера, можно указать конкретных пользователей, которые могут подключаться к внутренним сетевым ресурсам, а также должен ли клиентский компьютер при этом быть членом группы безопасности AD, допустимо ли перенаправление устройства и диска;
- Консоль диспетчера шлюза содержит инструменты, предназначенные для отслеживания состояния шлюза. Используя их, вы можете назначить отслеживаемые события для аудита, например, неудачные попытки подключения к серверу шлюза служб терминалов.
Важно! Шлюз служб терминалов должен входить в домен Active Directory. Настройка шлюза выполняется только от имени администратора домена, на любом сервере в домене.
## Установим роль
[step num="1"]Открываем Диспетчер серверов.[/step]
[step num="2"]Выбираем "**Добавить роли и компоненты**".[/step]
[step num="3"]На этапе "**Тип установки**", выбираем "**Установка ролей и компонентов**".[/step]
[step num="4"]Следующим шагом выбираем текущий сервер.[/step]
[step num="5"]Роль сервера - **Служба удаленных рабочих столов**.[/step]
[step num="6"]Переходим к службе ролей. Выбираем "**Шлюз удаленных рабочих столов**".[/step]
[step num="7"]Переходим к этапу подтверждения, нажимаем кнопку "**Установить**".[/step]
## Настройка политики авторизации подключения и ресурсов.
[step num="8"]В открывшемся окне диспетчера шлюза удаленных рабочих столов, в левой части окна, раскрываем ветку с именем сервера → Политики → Политики авторизации подключений.
В правой части того же окна выбираем **Создать новую политику → Мастер**.[/step]
[step num="9"]В открывшемся окне "**Мастер создания новых политик авторизации**" выбираем рекомендуемый параметр "Создать политику авторизации подключений к удаленным рабочим столам и авторизации ресурсов удаленных рабочих столов". Нажимаем кнопку "**Далее**".[/step]
[step num="10"]На следующем шаге вводим удобное имя для политики авторизации подключения. Мы рекомендуем давать имена на английском языке.[/step]
[step num="11"]Следующим этапом будет выбор удобного метода аутентификации - пароль или [смарт-карта](https://docs.microsoft.com/ru-ru/windows/win32/secauthn/smart-card-authentication). В нашем случае оставляем отмеченным только "**Пароль**". Добавляем группы, которые могут подключаться к данному RD-шлюзу, для этого нажимаем кнопку "**Добавить группу...**".[/step]
[step num="12"]В окне выбора групп кликаем по кнопке "**Дополнительно**".[/step]
[step num="13"]Окно изменит размеры. Нажимаем кнопку "**Поиск**". В результатах поиска находим "**Администраторы домена**" и нажимаем кнопку "**OK**".[/step]
[step num="14"]В окне выбора группы проверяем выбранные имена объектов и нажимаем "**OK**".[/step]
[step num="15"]Группа добавлена. Для перехода к следующему шагу нажимаем кнопку "**Далее**".[/step]
[step num="16"]На следующем этапе выбираем пункт "**Включить перенаправление устройств для всех клиентских устройств**" и нажимаем "**Далее**".[/step]
[step num="17"]Устанавливаем таймауты - время простоя и время работы сессии, значения указаны в часах. Нажимаем "**Далее**".[/step]
[step num="18"]Проверяем выполненные настройки. Все правильно - нажимаем "**Далее**".[/step]
[step num="19"]На следующем этапе настроим политику авторизации ресурсов. Указываем желаемое имя политики. Нажимаем "**Далее**".[/step]
[step num="20"]Следующим шагом установим членство в группах. Обычно, группа уже установлена, но если это не выполнено, следует выполнить действия приведенные выше. Нажимаем "**Далее**".[/step]
[step num="21"]Выбираем доступные сетевые ресурсы. Для этого необходимо выбрать группу, которая содержит серверы на которых требуемые группы пользователей могли бы работать с удаленным рабочим столом. Нажимаем кнопку "**Обзор**".[/step]
[step num="22"]В окне выбора группы, нажимаем кнопку "**Дополнительно**".[/step]
[step num="23"]В измененном окне нажимаем кнопку "**Поиск**". В окне результатов находим "**Контроллеры домена**". Нажимаем "**OK**".[/step]
[step num="24"]Проверяем выбранные объекты и нажимаем "**OK**".[/step]
[step num="25"]Еще раз проверяем какая сетевая группа добавлена и нажимаем "**Далее**".[/step]
[step num="26"]Если номер RDP-порта не изменялся, устанавливаем значение переключателя в "**Разрешить подключение только к порту 3389**". Если порт был изменен, следует указать новое значение.[/step]
[step num="27"]Кликаем "**Готово**"[/step]
[step num="28"]На этапе подтверждения создания политики нажимаем кнопку "**Закрыть**".[/step]
[step num="29"]По окончании настройки окно будет выглядеть подобным образом.[/step]
## Установим SSL-сертификат
В том же окне "**Диспетчер шлюза удаленных рабочих столов**", в левой окна кликаем по значку сервера, в основной части окна - "**Просмотр и изменение свойств сертификата**".
В открывшемся окне "Свойства " переходим на вкладку "Сертификат SSL". Устанавливаем переключатель "Создать самозаверяющий сертификат" и кликаем по кнопке "Создать и импортировать сертификат...".
Хотя возможны еще 2 варианта:
- импорт ранее загруженного сертификата (самоподписанного ранее или стороннего);
- загрузка стороннего сертификата (например, Comodo) и его импорт;
В окне "**Создание самозаверяющего сертификата**" проверяем параметры и нажимаем кнопку "**OK**".
Система уведомит, что сертификат был создан успешно. также присутствует информация, где можно найти сам файл сертификата. Нажимаем кнопку "**OK**".
В окне свойств сервера, нажимаем кнопку "**Применить**".
Самозаверенный сертификат установлен на TCP-порт 443 (SSL-порт по умолчанию).
Мы рекомендуем, в целях безопасности, изменить порт SSL, используемый по умолчанию. Для этого, в основном меню окна, выбираем "**Действия" → "Свойства**".
Переходим на вкладку "**Параметры транспорта**" и устанавливаем желаемое значение поля "**HTTPS-порт**". Сохраняем параметры нажимая кнопку "**Применить**".
Система запросит подтверждение - отвечаем "**Да**".
## Выполним подключение через шлюз
Открываем RDP-клиент, переходим на вкладку "**Дополнительно**" и нажимаем кнопку "**Параметры**".
В открывшемся окне выбираем "**Использовать следующие параметры сервера шлюза удаленных рабочих столов**". Указываем доменное имя сервера и через двоеточие (:) указываем SSL-порт. Метод входа - "**Запрашивать пароль**". Нажимаем "**OK**"
Переходим на вкладку "**Общие**". Указываем адрес компьютера и пользователя под которым будет выполняться подключение. Нажимаем кнопку "**Подключить**"
Программа запросит пароль от учетной записи.
Результаты работы шлюза можно проверить трассировкой - команда tracert.
https://serverspace.uz/support/help/how-to-add-a-server-to-an-existing-windows-domain.mdВ пошаговой инструкции рассматриваем, как добавить новый сервер в уже существующий домен Windows Active Directory
Одним из значимых событий роста и развития локальной сети является появление нового сервера. Рассмотрим как новый сервер добавить в уже существующий домен Windows.
Доменные службы Active Directory - это реализация службы каталогов Microsoft, представляющая централизованные службы авторизации и проверки подлинности. Active Directory Domain Services в Windows Server - это развитая служба каталогов предназначенная для централизованного хранения данных, а также управления безопасностью. В задачи "безопасности" входит управление компьютерами, пользователями и их группами, обеспечение безопасного и централизованного доступа к ресурсам сети. AD DS используют для организации ЛВС.
## Перед началом настройки
[step num="1"]
Для нормального функционирования сети и AD, в частности, необходимо создать серверы и контроллеры домена. Для этого, на этапе заказа VDS, в панели управления, в личном кабинете, следует отметить галочкой поле "Выполнить системную подготовку Windows".
[/step]
[step num="2"]
По окончании процесса формирования серверов, необходимо все машины объединить в одну частную сеть. В результате этих действий, серверы получат дополнительные сетевые адаптеры и локальные IP-адреса.
[/step]
[step num="3"]
Предварительно должен быть настроен контроллер домена и создан пользователь.
[/step]
Настраиваем сетевой адаптер.
[step num="4"]
Подключаемся к серверу по RDP.
[/step]
[step num="5"]
Открываем настройки сети. Выбираем "IP версии 4".
[/step]
[step num="6"]
Указываем, в качестве первичного DNS-сервера, адрес сервера с контроллером домена. Нажимаем кнопку "OK".
[/step]
## Добавляем сервер в домен
[step num="7"]
Для добавления сервера в домен откроем свойства системы. Для этого открываем **Панель управления → Система и безопасность → Система **(Или кликаем правой кнопкой мыши по значку "Этот компьютер", в контекстном меню выбираем "**Свойства**").
[/step]
[step num="8"]
В открывшемся окне кликаем по ссылка "**Изменить параметры**".
[/step]
[step num="9"]
В появившемся окне указываем описание сервера и нажимаем кнопку "**Изменить**" для смены рабочей группы на домен.
[/step]
[step num="10"]
Кликаем по переключателю, что данный компьютер является членом домена и указываем имя домена.
Также, следует ввести понятное имя компьютера.
Для сохранения настроек кликаем по кнопке "**OK**".
[/step]
[step num="11"]
Система попросит ввести пользовательские данные, для того, чтобы можно было подключиться к домену.
[/step]
[step num="12"]
В случае, если пользовательские данные корректны, появится системное уведомление.
[/step]
[step num="13"]
А также появится уведомление о необходимости перезагрузки сервера.
[/step]
[step num="14"]
О необходимости перезагрузки система напомнит еще раз.
[/step]
[step num="15"]
И предложит принять решение. Если нет неотложных задач, то перезагружаем сервер.
[/step]
## Подключение к серверу
[step num="16"]
Пробуем подключиться по протоколу RDP с учетными данными созданного пользователя, через значок "@" ("собака") указываем домен.
[/step]
[step num="17"]
Если подключение прошло успешно, значит сервер в домен добавлен верно.
[/step]
[step num="18"]
Несмотря на то, что Windows рекомендует держать Брандмауэр включенным для всех сетей, мы рекомендуем, во избежание непредсказуемого поведения, отключить его для доменной и частной сетей. Для публичной сети, все же, рекомендуем оставить его включенным.
https://serverspace.uz/support/help/configuring-samba.mdSamba - серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS
Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше - используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи, как настроить Samba.
[step num="0"]
## Что такое Samba?
Samba - серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.
[/step]
## Настройка общих папок в Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
[step num="1"]
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
```bash
apt-get update && apt-get upgrade
```
[/step]
[step num="2"]
Устанавливаем пакет Samba:
```bash
apt-get install -y samba samba-client
```
[/step]
[step num="3"]
Создадим резервную копию файла конфигурации:
```
cp /etc/samba/smb.conf /etc/samba/smb.conf_sample
```
[/step]
[step num="4"]
Создадим директории для файлов, например в каталоге /media:
```
mkdir /media/samba
```
[/step]
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем [монтировать отдельный жесткий диск](https://serverspace.uz/support/help/mounting-a-disk-and-creating-partitions-in-linux/) в /media/samba.
[step num="5"]
Создаем каталог для всех пользователей:
```
mkdir /media/samba/public
```
[/step]
[step num="6"]
Изменим права доступа к каталогу:
```bash
chmod -R 0755 /media/samba/public
```
[/step]
Также следует воспользоваться командой chown для смены владельца и/или группы.
[step num="7"]
Создаем директорию для ограниченного круга лиц:
```
mkdir /media/samba/private
```
[/step]
[step num="8"]
С помощью системных инструментов создадим группу пользователей:
```
groupadd smbgrp
```
[/step]
[step num="9"]
Добавляем пользователей Samba:
```
useradd user1
```
[/step]
[step num="10"]
Созданных пользователей добавляем в группу:
```
usermod -aG smbgrp user1
```
[/step]
[step num="11"]
Изменим группу, которой принадлежит приватная директория:
```
chgrp smbgrp /media/samba/private
```
[/step]
[step num="12"]
С помощью инструментов Samba создадим пароль для добавленного пользователя:
```
smbpasswd -a user1
```
[/step]
[step num="13"]
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
```
nano /etc/samba/smb.conf
```
[/step]
[step num="14"]
Удаляем все строки из файла. Вставляем следующие:
```
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
```
[/step]
Сохраняем используя сочетание **Ctrl + X**, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
**global **- данная секция отвечает за общие настройки Samba-сервера;
**public **и **private **- секции описания настроек директорий общего доступа.
В секции **global **присутствуют пять параметров:
- **workgroup **- рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
- **security **- уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
- **map to guest** - параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
- **wins support** - включить или выключить поддержку WINS;
- **dns proxy** - возможность проксирования запросов к DNS.
Настройки директорий выполняются в соответствующих секциях:
**path **- полный путь до директории на жестком диске;
**guest ok** - возможность доступа к каталогу без пароля (гостевой);
**browsable **- показывать ли каталог ("шару") на сервере среди прочих. Если параметр установлен как "no", то доступ будет возможен по полному пути, например ip-addresshidden_directory;
**force user **- пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root - это небезопасно.
**writable** - установка значения как "yes" позволяет пользователю выполнять действия над файлами внутри каталога - переименование, добавление, удаление, перемещение в подкаталог и копирование;
**valid users** - список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ "at" @ ("собака").
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
[step num="15"]
Проверяем настройки с помощью команды:
```
testparm -s
```
[/step]
[step num="16"]
Перезапускаем сервер:
```bash
service smbd restart
```
```bash
service nmbd restart
```
[/step]
[step num="17"]
Настроим межсетевой экран. Для этого в правилах откроем TCP-порты 139 и 445, а также UDP-порты 137 и 138, но только для тех подсетей, которым доверяете. Для указания собственного диапазона адресов, замените значение после ключа "-s":
```
iptables -A INPUT -p tcp -m tcp --dport 445 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 139 -s 10.0.0.0/24 -j ACCEPT
```
```
iptables -A INPUT -p udp -m udp --dport 137 -s 10.0.0.0/24 -j ACCEPT
```
```
iptables -A INPUT -p udp -m udp --dport 138 -s 10.0.0.0/24 -j ACCEPT
```
[/step]
[step num="18"]
Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:
```bash
apt-get install iptables-persistent
```
[/step]
[step num="19"]
Входе установки пакета, программа предложит запомнить существующие правила iptables. Подтверждаем это действие.
[/step]
[step num="20"]
Для проверки существующих правил используем:
```
iptables -L
```
[/step]
## Настройка общих папок в Windows
[step num="21"]
По аналогии с Linux, настроим общий доступ к папкам public и private, но в ОС Windows.
[/step]
[step num="22"]
Для создания общего доступа к каталогу без парольной защиты, необходимо настроить ограничения защиты в панели управления. Для этого открываем:
**Панель управления → Сеть → Центр управления сетями и общим доступом → Расширенные настройки общего доступа.**
[/step]
[step num="23"]
В обновленном окне открываем раздел "Все сети" и ищем секцию "Общий доступ с парольной защитой". Устанавливаем параметр в положение "Отключить общий доступ с парольной защитой". Для сохранения значений параметра кликаем по кнопке "**Сохранить изменения**".
[/step]
[step num="24"]
Теперь откроем доступ к самому каталогу. Кликаем по папке правой кнопкой мыши, в контекстном меню выбираем "Свойства". Открываем вкладку "Доступ" и кликаем по "Расширенная настройка".
[/step]
[step num="25"]
В открывшемся окне расширенных настроек общего доступа отмечаем галочкой "Открыть общий доступ к этой папке", в поле "Имя общего ресурса" указываем название, которое будет отображено пользователям. Кликаем по кнопке "Разрешения".
[/step]
[step num="26"]
В открывшемся окне, в группах пользователей выбираем "Все", а в разрешениях для группы, устанавливаем галку "Полный доступ". Нажимаем "OK" в этом и остальных окнах.
[/step]
[step num="26"]
В окне свойств папки public кликаем по кнопке "Общий доступ".
[/step]
[step num="27"]
В открывшемся окне добавляем пользователя "Все", а также делегируем права на "Чтение и запись". Кликаем по кнопке "Поделиться".
[/step]
[step num="28"]
В обновленном окне нажимаем "Готово".
[/step]
[step num="29"]
Настроим папку общего доступа, но для ограниченного круга лиц.
[/step]
[step num="30"]
Кликаем правой кнопкой мыши по папке, выбираем "**Свойства**".
[/step]
[step num="31"]
В открывшемся окне переходим на вкладку "**Доступ**". Кликаем по кнопке "**Расширенные настройки**".
[/step]
[step num="32"]
В новом открывшемся окне, устанавливаем галку **"Открыть общий доступ к этой папке**". Затем кликаем по кнопке "**Разрешения**".
[/step]
[step num="33"]
В открывшемся окне, в поле "**Группы или пользователи**" выбираем "**Все**" и нажимаем кнопку "**Удалить**".
[/step]
[step num="34"]
Таким образом установлен запрет на анонимный доступ к папке.
[/step]
[step num="35"]
Окно обновится. Кликаем по кнопке "**Добавить**".
[/step]
[step num="36"]
В открывшемся окне кликаем по кнопке "**Дополнительно**".
[/step]
[step num="37"]
Окно изменится в размере. Кликаем по кнопке "**Поиск**". Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, buhgalter.
[/step]
[step num="38"]
В открывшемся окне, при желании, можем добавить еще одного пользователя через "**Дополнительно**" - "**Поиск**". Аналогичным образом можно добавить группу пользователей, например, "**Администраторы**", при этом следует понимать, что доступ будет предоставлен всем пользователям из этой группы.
[/step]
[step num="39"]
Установим права доступа для пользователя "buhgalter". Если требуется полный доступ к директории, устанавливаем галку в соответствующем месте.
[/step]
[step num="40"]
Нажимая кнопки "**OK**" возвращаемся к окну свойств папки, в котором кликаем по кнопке "**Общий доступ**".
[/step]
[step num="41"]
В данном окне необходимо найти и добавить пользователя "бухгалтер".
[/step]
[step num="42"]
В окне выбора пользователей и групп кликаем по кнопке "**Дополнительно**".
[/step]
[step num="43"]
Окно снова изменит свои размеры. Кликаем по кнопке "**Поиск**". В найденном ниже списке пользователей и групп выбираем искомого пользователя. Выбираем его двойным кликом.
[/step]
[step num="44"]
В оставшемся окне проверяем правильно ли указан пользователи и нажимаем кнопку "**OK**".
[/step]
[step num="45"]
Устанавливаем требуемый уровень разрешений для пользователя и кликаем по кнопке "**Поделиться**".
[/step]
[step num="46"]
Кликаем по кнопке "**Готово**".
[/step]
## Подключение к общим папкам из Linux
[step num="47"]
Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения - smbclient. Установим:
```bash
sudo apt-get install smbclient
```
[/step]
[step num="48"]
Для подключения к серверу используется следующий формат команды:
```
smbclient -U
```
[/step]
[step num="49"]
Пример:
```
smbclient -U buhgalter 10.0.0.1public
```
[/step]
[step num="50"]
Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:
```bash
sudo apt-get install cifs-utils
```
[/step]
[step num="51"]
Монтирование выполняется по следующему шаблону:
```
mount -t cifs -o username=,password= ///
```
[/step]
[step num="52"]
Пример:
```
mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media
```
[/step]
Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать "Everyone". Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя "nobody". В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.
## Подключение к общим папкам из Windows
[step num="53"]
Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:
```
```
[/step]
[step num="54"]
Указав просто IP-адрес сервера вы получите список общих папок.
[/step]
[step num="55"]
При подключении к Windows-серверу, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.
[/step]
[step num="56"]
При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:
```
```
[/step]
[step num="57"]
или просто адрес сервера:
```
```
[/step]
## Как создать общий сетевой ресурс в Samba
Создайте директорию, которую в хотите сделать общей:
```
mkdir /home//
```
Создайте бэкап, если что-то пойдет не так:
```
sudo cp /etc/samba/smb.conf ~
```
Отредактируйте файл "/etc/samba/smb.conf":
```
sudo nano /etc/samba/smb.conf
```
Добавьте следующее содержимое в файл:
```
[]
path = /home//
valid users =
read only = no
```
Заполните файл своими данными, сохраните его и затем закройте
Перезапустим Samba:
```bash
sudo service smbd restart
```
Использую данную команду проверьте вашу директорию smb.conf на ошибки:
```
testparm
```
Чтобы получить доступ к вашему общему сетевому ресурсу:
```bash
sudo apt-get install smbclient
# Просмотр всех общих ресурсов:
smbclient -L /// -U
# Подключение:
smbclient /// -U
```
_Note 1_: Чтобы подключиться к вашему общему сетевому ресурсу используйте имя вашего пользователя () и пароль, который находится "smb:////"
Учтите, что "" значение передается в "[]",
другими словами, имя общего ресурса, которое вы ввели в "/etc/samba/smb.conf".
_Note 2_: Группа пользователей samba по умолчанию это - "WORKGROUP".
https://serverspace.uz/support/help/rezervnoe-kopirovanie.mdКак настроить создание резервных копий (backup, бэкапов) VPS сервера в панели управления Serverspace, как подключить и отключить услугу и ее стоимость
Услуга **Резервное копирование** доступна для всех [виртуальных серверов](https://serverspace.uz/services/vps-server.md).
### Как работает
Резервное копирование выполняется 1 раз в сутки на территориально удаленный дисковый массив. Параметр **Глубина хранения** определяет сколько будут храниться резервные копии (1, 2, 3 или 4 недели). Копии старше выбранного срока автоматически удаляются.
### Как подключить услугу
[step num="1"]
При создании нового сервера подключение резервного копирования происходит с помощью соответствующего поля и выбора глубины хранения копий.
[/step]
[step num="2"]
Для уже созданного сервера подключить услугу можно в меню сервера **Backup**, так же указав глубину хранения копий.
[/step]
[step num="3"]
Не забудьте сохранить изменения.
[/step]
### Как восстановить сервер из резервной копии
[step num="4"]
Для восстановления сервера из резервной копии перейдите на вкладку **Backup** → **Восстановить из копии** и выберете способ восстановления сервера: Рядом или Поверх. В первом случае будет создан дубликат сервера во втором случае на основном сервере будет восстановлена выбранная копия.
[/step]
[step num="5"]
Выберете дату создания резервной копии, которую необходимо восстановить.
[/step]
[step num="6"]
При восстановлении Поверх отметьте галочкой дополнительное поле. Нажмите кнопку **Восстановить**.
[/step]
### Как отключить услугу
[step num="7"]
Для отключения услуги перейдите на вкладку **Backup** → **Расписание** и нажмите кнопку **Выключено**. Подтвердите свои действия с помощью кнопки **Изменить**.
[/step]
### Тарификация и стоимость
[step num="8"]
Стоимость услуги рассчитывается по формуле:
_Z = G * S * (N / 7)_
Здесь G - стоимость услуги за 1 гигабайт, S - суммарный объем всех дисков сервера, N - глубина хранения копий. Информацию о текущей стоимости всегда можно найти на вкладке **Биллинг** заказанного сервера.
[/step]
Правила тарификации:
- услуга тарифицируется каждые 10 минут;
- сумма списания не зависит от состояния сервера (включен или выключен).
Подборки VPS/VDS: [аренда VPS в Европе](https://serverspace.uz/services/vps-server/europe/), [аренда VPS на Linux](https://serverspace.uz/services/vps-server/linux.md) и [Windows](https://serverspace.uz/services/vps-server/windows.md).
https://serverspace.uz/support/help/kak-sozdat-snapshot.mdВ инструкции описано создание моментального снимка всей файловой системы сервера и процесс восстановления из него.
**Снапшот** — моментальная копия всей файловой системы сервера. В отличии от резервного копирования снапшот создается оперативно и только по непосредственной команде пользователя.
Вы можете хранить только один снапшот для каждого сервера VMware. Длительность хранения снимка - 7 дней, по истечению этого периода снимок автоматически удаляется.
Стоимость услуги зависит от объема дискового пространства сервера.
## Создание снимка
Для создания снимка сервера, выберете нужный и в горизонтальном меню перейдите на вкладку **Снимки** → **Сделать снимок**. В пустое поле введите имя снимка и нажмите **Сделать снимок**.
## Восстановление из снимка
Для восстановления сервера из снимка перейдите в меню Снимки, а затем на троиточие рядом с нужным снимком. На снимке будет указано его название и временной штамп. Для восстановления нажмите на кнопку **Восстановить**. Также на этой странице возможно удалить созданный снапшот.
https://serverspace.uz/support/glossary/vps-vds-server.mdVPS Virtual Private Server - Это виртуальный приватный сервер. VDS Virtual Dedicated server - Это виртуальный выделенный сервер.
VPS (он же Virtual Private Server) - Это виртуальный приватный сервер. На таких серверах выделяются определенные мощности под определенную выбранную конфигурацию клиента. Другими словами, один физический сервер может обеспечивать работу десятков и сотен независимых сайтов. Данный вариант распространён среди маленьких компаний, или среди тех кому хватит выделенных мощностей.
VDS (он же Virtual Dedicated Server) - Это виртуальный выделенный сервер. Предоставляет отдельный сервер под ваши нужды. У клиента есть возможность настроить BIOS и установить любую операционную систему, в том числе нестандартные сборки дистрибутивов. Выделенные сервера используются в больших компаниях, где требуется стабильная работоспособность корпоративных порталов для сотрудников, высокопроизводительных приложений, порталы государственных организаций, облачных сервисов и так далее.
Облачный сервер (или же cloud server) – Вычислительная машина, которая размещена у компании предоставляющая гибкую настройку мощности.
Пользователю предоставляется возможность выбора и настройки характеристик сервера. Корректировка характеристик происходит в панели управления. При этом нет необзодимости останавливать сервер. Возможность использования не всей мощности сервера, а лишь его части, позволяет сзнизить затраты.
https://serverspace.uz/support/glossary/docker.mdЧто такое Docker? — Это инструмент предназначенный для помощи в создании, развертывании и запуске приложений с использованием контейнеров
Docker — это инструмент предназначенный для помощи в создании, развертывании и запуске приложений с использованием контейнеров. Говоря простыми словами, это программное обеспечение которое позволяет "собрать" приложение со всем его окружением и зависимостями в контейнер, который устанавливается на выбранную операционную систему (Docker стал поддерживать операционную систему с 2015 года, данное по можно установить на MacOS и выбранный вами дистрибутив Linux).
Контейнер — это файл содержащий приложения и все необходимые зависимости, а так же инструкции требующие для запуска приложения. Аналог слова "Контейнер" — является IMG/образ, появляется он в результате выполнения операции "сборки".
## Запуск образа
При запуске образа платформа контейнеризации (Docker) распаковывает образ контейнера с нужными файлами и метаданными, затем инициализирует сеть и файловую систему, и в соответствии с инструкциями в обрезе, запускает приложение. В конечном итоге получается обычный процесс операционной системы. Изолированное окружение достигается за счет использование возможности ядра операционной системы и нескольких библиотек.
Отличие контейнера от виртуального сервера, заключается в том что внутри контейнера нет своей собственной операционной системы.
## Пример операции сборки
При создании архива, вы помещаете в него разные документы, файлы, папки. То же самое делает и докер, он собирает необходимые данные и помещает это все в образ, который в будущем можно использовать для установки на другой системе.
Образ может быть создан на основе другого контейнера, тем самым получается слоеная структура образов где каждый новый слой содержит только изменения относительно предыдущих.
## Для чего же нужен Docker
Благодаря сборке приложения в контейнер вместе со всеми нужными библиотеками, можно не волноваться об правильной работоспособности данного контейнера на другом устройстве/сервере. Ведь если перед сборкой вы проверили приложение и оно работало правильно, значит оно так же и запустится установив контейнер на другом сервере.
https://serverspace.uz/support/glossary/czod.mdУзнайте, что такое ЦОД, его основные компоненты, ключевые функции и особенности дата-центров Serverspace
ЦОД (Центр обработки данных) — это специализированное пространство или комплекс сооружений, предназначенных для размещения и эксплуатации серверного, сетевого и прочего вычислительного оборудования. Они обеспечивают хранение, обработку и передачу данных для различных компаний и сервисов.
## Основные компоненты ЦОД
- **Серверы**: Выполняют задачи по обработке данных и запуску приложений.
- **Хранилища данных**: Включают в себя жесткие диски, SSD и другие устройства для сохранения информации.
- **Компоненты сетевой инфраструктуры**: Коммутаторы, маршрутизаторы и прочие устройства, обеспечивающие связь с интернетом и локальными сетями.
- **Охладительные системы**: Поддерживают оптимальные температурные условия для работы оборудования.
- **Системы электропитания**: Включают источники бесперебойного питания (UPS), дизельные генераторы и прочие средства для надежного электроснабжения.
- **Средства защиты**: Видеонаблюдение, системы контроля доступа, фаерволы и антивирусное ПО для обеспечения безопасности.
## Ключевые функции ЦОДов
- **Хранение**: Надежное размещение и сохранение большого объема данных.
- **Обработка**: Выполнение вычислительных операций и обработка информации.
- **Сетевая инфраструктура**: Обеспечение связи между различными устройствами и пользователями.
- **Безопасность**: Защита данных и оборудования от несанкционированного доступа и угроз.
## ЦОД Serverspace
Особенности [дата-центров Serverspace:](https://serverspace.ru/infrastructure/data-centers/)
- **Геораспределение**: Отсутствие привязки к конкретной технологической площадке делает управление облаком более эффективным. Именно поэтому наше оборудование распределено по нескольким центрам обработки данных.
- **Отказоустойчивость**: За счет настроенных механизмов автоматического переключения и резервирования всех критически значимых компонентов инфраструктуры на физическом уровне, наша архитектура не имеет единой точки отказа.
- **Безопасность и надежность**: Каждый центр обработки данных оснащен передовой системой безопасности, которая защищает от любых внутренних и внешних воздействий. Будьте уверены, ваши облачные проекты полностью защищены.
- **Локации дата-центров**: Облачные серверы доступны в 8 странах: США, Нидерланды, Канада, Бразилия, Турция, Россия, Беларусь и Казахстан.
https://serverspace.uz/support/glossary/tsl.mdУзнайте, что такое TSL, для чего этот протокол используется, его преимущества и недостатки
TLS (Transport Layer Security) представляет собой криптографический протокол, разработанный для защиты передачи данных в компьютерных сетях. TLS заменил более ранний протокол SSL (Secure Sockets Layer) и включает разнообразные улучшения
## Ключевые аспекты TLS
- **Шифрование**: TLS обеспечивает зашифровку данных, передаваемых между клиентом и сервером, предотвращая их несанкционированное перехватывание и доступ.
- **Аутентификация**: Сервер предъявляет цифровой сертификат, подтверждающий его подлинность. Этот сертификат выдаётся доверенным центром сертификации (CA). Клиент может также аутентифицироваться при необходимости.
- **Целостность данных**: TLS использует алгоритмы хеширования для гарантии того, что данные остаются неизменными в процессе передачи. Для этого применяются коды аутентификации сообщений (MAC).
- **Совместимость**: Поддержка широкого спектра криптографических алгоритмов и методов позволяет адаптировать TLS к различным требованиям по безопасности и производительности.
## Процесс установки соединения (TLS Handshake)
- **Client Hello:**
Клиент отправляет серверу сообщение "Hello", указывая поддерживаемые версии TLS и криптографические алгоритмы.
- **Server Hello:**
Cервер присылает ответ: "Hello", выбирая подходящую версию протокола и алгоритмы из предложенных клиентом.
- **Сертификат сервера (Server Certificate):**
Сервер отправляет свой цифровой сертификат, содержащий его открытый ключ и подтверждение подлинности от доверенного центра сертификации.
- **Ключевой обмен:**
Клиент и сервер договариваются о методе генерации общего секретного ключа, который будет использоваться для шифрования сеанса.
Процесс может включать в себя методы, такие как обмен ключами Диффи-Хеллмана (DH) или асимметричное шифрование с использованием RSA.
- **Сообщения завершения (Finished):**
Клиент и сервер обмениваются сообщениями, подтверждающими, что настройка защищённого канала завершена, и всё последующее общение будет зашифровано.
## Где применяется TLS
- **Веб-сайты**: HTTPS (HTTP Secure) использует TLS для защиты данных, передаваемых между браузером и веб-сервером.
- **Электронная почта**: Протоколы, такие как SMTP, IMAP и POP3, могут использовать TLS для защиты передаваемых сообщений.
- **VPN**: TLS протоколы могут быть использованы для защиты VPN-соединений.
- **VoIP**: Протоколы для передачи голоса через IP, такие как SIP, могут использовать TLS для шифрования звонков.
## Достоинства
- **Безопасность передачи данных:**
TLS шифрует передаваемые данные, защищая их от перехвата и несанкционированного доступа.
- **Аутентификация:
**Использование цифровых сертификатов позволяет удостовериться в подлинности серверов и клиентов, предотвращая атаки типа "человек посередине" (Man-in-the-Middle, MITM).
- **Целостность данных:
**Хеш-функции и механизмы контроля целостности обеспечивают защиту данных от изменения в процессе передачи, что позволяет обнаружить любые попытки их модификации.
- **Совместимость:
**Поддержка широкого спектра криптографических алгоритмов и методов шифрования позволяет адаптировать TLS к различным требованиям безопасности и производительности.
- **Использование в различных протоколах:
**TLS может быть интегрирован с несколькими прикладными протоколами, такими как HTTP (в виде HTTPS), SMTP, IMAP, POP3 и другими, что делает его универсальным решением для обеспечения безопасности.
- **Обновления и улучшения:
**Протокол постоянно обновляется для исправления уязвимостей и повышения уровня безопасности. Пример тому — переход от TLS 1.0 и 1.1 к более безопасным версиям TLS 1.2 и 1.3.
## Недостатки
- **Дорогие вычислительные ресурсы:**
Шифрование и дешифрование данных требует значительных вычислительных ресурсов, что может увеличивать задержки и снижать производительность серверов и клиентов.
- **Комплексная настройка:**
Правильная настройка и поддержание TLS могут быть сложными и требуют определённых знаний и навыков. Ошибки в конфигурации могут привести к уязвимостям в системе безопасности.
- **Трудность получения сертификатов:**
Необходимость приобретения и управления цифровыми сертификатами может быть затратной и трудоёмкой. Кроме того, существует риск использования поддельных или скомпрометированных сертификатов.
- **Проблема совместимости:**
Старые версии операционных систем, браузеров и других приложений могут не поддерживать более новые и безопасные версии TLS, что создаёт проблемы совместимости.
- **Возможные уязвимости:**
Несмотря на хороший уровень безопасности, TLS не застрахован от уязвимостей. Интервалы между обнаружением и устранением уязвимостей могут использоваться злоумышленниками для атак.
- **Прямые атаки:**
Прямые атаки на продукты и алгоритмы, используемые в TLS, такие как атаки на сжатие (CRIME, BREACH), атаки на обмен ключами (Logjam, FREAK), показывают, что протокол требует постоянного мониторинга и обновлений.
В целом, TLS является мощным и гибким решением для обеспечения безопасности передачи данных, но требует тщательной настройки и регулярного обновления для поддержания высокого уровня защиты.
TLS стал стандартом по обеспечению безопасности данных в интернете, гарантируя защищённость и доверие в цифровом пространстве.
https://serverspace.uz/support/glossary/obratnaya-trassirovka.mdУзнайте, что такое обратная трассировка, как она работает и примеры ее использования
**Обратная трассировка** — это процесс анализа программы для понимания того, какой путь в коде привел к определенному состоянию или действию. Этот метод широко используется в отладке программного обеспечения и уязвимостей, а также в анти-чит системах для выявления манипуляций с кодом или памятью игры.
## Как работает обратная трассировка
- **Фиксация состояния**: Начальный этап включает фиксацию состояния программы в определенный момент времени. Это может быть конкретная точка, где зафиксирована аномалия, несанкционированное изменение в памяти или вызов подозрительного API.
- **Анализ стека вызово**в: Обратная трассировка включает анализ стека вызовов программы (call stack) для выявления последовательности вызовов функций, которые привели к текущему состоянию. Стек вызовов хранит информацию о том, какие функции были вызваны и в каком порядке, начиная от текущей функции и заканчивая начальной точкой выполнения программы.
- **Пошаговый отладочный процесс**: Используя инструменты отладки (debuggers), такие как GDB (GNU Debugger) или WinDbg, разработчик или система анти-чит может пошагово пройти весь процесс выполнения программы, начиная с текущего состояния и двигаясь обратно по вызовам функций. Это позволяет понять, какие изменения были внесены и каким образом.
- **Анализ регистров и памяти**: Во время обратной трассировки могут быть проанализированы регистры процессора и состояние оперативной памяти, чтобы понять изменения данных и их источник. Это особенно полезно для выявления инъекций кода или использования эксплойтов.
- **Определение кода нарушителя**: Обратная трассировка помогает найти конкретные участки кода, которые были изменены или использованы читом. Это может выявить место, где сторонний инструмент вмешался в нормальное выполнение программы.
## Применение в анти-чит системах
В анти-чит системах обратная трассировка может использоваться для:
- **Выявления инъекций и модификаций**: Обратная трассировка помогает определить, откуда появилась неожиданная модификация в памяти или коде игры, позволяя выявить использованный инструмент или метод.
- **Анализа поведения игроков**: Если игрок демонстрирует необычное поведение (например, суперточность прицеливания), система может использовать обратную трассировку для анализа выполненного кода и выявления потенциального вмешательства.
- **Отладка анти-читовых алгоритмов**: Разработчики анти-чит систем используют обратную трассировку для анализа и улучшения своих алгоритмов обнаружения, выявляя непредвиденные проблемы и улучшая точность детектирования.
## Пример использования
Декомпиляция игры и инъекция кода:
- **Инициация**: Анти-чит обнаруживает, что в определённый момент времени были модифицированы данные в оперативной памяти, что не соответствует нормальному поведению.
- **Фиксация стека вызовов**: Запускается обратная трассировка, фиксируя все вызовы функций, которые были выполнены до момента обнаружения аномалии.
- **Анализ**: Анализируется последовательность вызовов функций и регистров. Обнаруживается, что код, отвечающий за изменение данных, был инжектирован из внешнего процесса.
- **Выявление нарушителя**: Обратная трассировка показывает, что внешняя программа, инжектировавшая свой код, использовала определённый системный вызов для внедрения своих изменений.
- **Действие**: Анти-чит может блокировать идентифицированный процесс, уведомить игрока и отправить информацию разработчикам для дальнейшего анализа и обновления сигнатур.
Обратная трассировка является мощным инструментом не только для отладки программного обеспечения, но и для обеспечения безопасности и целостности игровых приложений, позволяя выявить и заблокировать несанкционированные вмешательства.
https://serverspace.uz/support/help/view-and-manage-processes.mdОперационные системы семейства Linux для каждой задачи или операции запускают отдельный системный процесс. Рассмотрим один из инструментов работы с ними - утилиту Top.
Операционные системы семейства Linux для каждой задачи или операции запускают отдельный системный процесс. Если во время работы происходит сбой службы или появляется ошибка, то необходимо принимать меры. Рассмотрим один из инструментов работы с процессами в ОС семейства Linux.
## Top – бог или менеджер
Название Top ассоциируется с богом грома, но в Linux это утилита, которая управляет системными процессами. Она интегрирована в любой дистрибутив операционной системы. С помощью Top процессам можно задавать приоритеты, просматривать полный список, а также завершать.
[step num="1"]
Запуск осуществляется вводом команды в терминале:
```
top
```
[/step]
**Важно!** Приложение интерактивное, т.е. изменения происходят в режиме реального времени и отображаются на экране пользователя.
## Расшифровка Top
[step num="2"]
Верхняя часть утилиты отображает сведения о технических характеристиках компьютера (сервера), общем количестве сервисов, а также об объеме оперативной памяти и файла подкачки:
[/step]
Скриншот №1. Сведения об устройстве
[step num="3"]
Далее следует информация о процессах:
[/step]
Скриншот №2. Сервисы
Каждая колонка отображает свое значение:
1. PID – идентификатор сервиса, который не повторяется. Он позволяет однозначно идентифицировать процесс.
2. USER – учетное имя, под которым запущена служба.
3. PR расшифровывается как приоритет расписания. Назначается на уровне ядра операционной системы.
4. NI означает nice. В терминологии Linux чем выше цифра, тем меньше системных ресурсов выделяется. Отрицательное значение показывает максимальный приоритет сервису.
5. VIRT – объем виртуальной памяти, который выделяется под конкретный процесс. Обозначает общий ресурс, т.е. в него входит информация, страницы памяти, коды ошибок и т.д.
6. RES – это часть VIRT, которая не помещена в раздел подкачки. По сути это физическое значение оперативной памяти, используемое данной службой.
7. SHR расшифровывается как совместная оперативная память. Она распределяется между другими процессами.
8. S – статус. Каждой службе присваивается свой код в зависимости от принятых кодов:
Скриншот №3. Расшифровка кодов S
9. %CPU и %MEM – потребляемый ресурс процессора и памяти. Рассчитывается в процентном соотношении от общего времени.
10. TIME+ отображает время, которое служба использовала с момента своего запуска. Рассчитывается от общего времени работы процессора.
11. COMMAND проводит соответствие между процессом и программой, которая его запустила.
## Управление через Top
[step num="4"]
Навигация в терминале осуществляется с помощью клавиатуры. Стрелки вверх и вниз перемещаются между строками, а вправо и влево отвечают за горизонтальную навигацию.
[/step]
[step num="5"]
Клавиша I убирает процессы, которые не используются:
[/step]
Скриншот №4. Убрать неактивные процессы
[step num="6"]
Кнопка Z включает/выключает цветовой режим:
[/step]
Скриншот №5. Активация цвета
[step num="7"]
Если требуется отобразить полный путь к приложению, которое запустило выбранный процесс, нажимаем клавишу C.
[/step]
## Завершить процесс
[step num="8"]
Нажатие клавиши K приведет к завершению выбранного сервиса. На экране отобразится дополнительная строка, в которой указываем идентификатор (PID):
[/step]
Скриншот №6. "Убить" процесс
Следующая опция попросит указать звуковой сигнал, который оповестит об удачном завершении сервиса.
**Важно!** Если первое поле оставить пустым, то утилита закроет самый верхний процесс в списке.
## Сортировка
[step num="9"]
Преимущества Top в том, что он выполняет сортировку в режиме реального времени. Во время его работы нажимаем одну из четырех букв:
[/step]
Скриншот №7. Включение фильтра
[step num="10"]
Стандартно выборка производится в порядке уменьшения. Для смены отображения – нажмите клавишу R.
[/step]
## Заключение
В публикации мы рассказали о системной утилите Top, расписали ее функции и возможности. Каждое описание сопровождается скриншотами.
https://serverspace.uz/support/help/razgranichenie-prav-polzovatelej.mdВ зависимости от семейства операционной системы существуют разные способы разграничения прав пользователей. Рассмотрим, как это происходит в ОС Ubuntu.
Ограничение прав пользователей в операционной системе – тема сложная, но необходимая. В зависимости от семейства операционной системы существуют разные правила и стандарты. Рассмотрим подробнее, как это происходит в ОС Ubuntu.
## Права администратора
[step num="1"]
Чтобы запускать привилегированные команды, пользователь должен обладать правами, как минимум, администратора системы. По умолчанию операционная система отключает повышенный уровень прав у любого пользователя. Чтобы его повысить, воспользуемся следующей командой.
```
usermod -a -G sudo username1
```
[/step]
Теперь пользователь с именем username1 добавлен в группу sudo и является администратором для операционной системы. Ему доступны настройки ОС, а также доступ к каталогу /dev с вложениями. Большинство привилегий администраторов схоже с возможностями суперпользователя, но они неполные.
### Как выставить запрет
[step num="2"]
В корпоративных информационных системах большинство ОС являются многопользовательскими. Соответственно, необходимо для каждого владельца разграничить права доступа. Для этого используется внутренняя команда chmod, например:
```bash
sudo chmod o-x $(which ls)>
```
[/step]
Вышеуказанная строка означает, что только root имеет право запускать команду ls. Всем остальным в доступе будет отказано.
[step num="3"]
Разберем другую ситуацию. Есть пользователь с именем username1. Ему необходимо ограничить доступ к команде ls. Для этого создаем группу пользователей usergroup1, в которую перенесём всех кроме username1.
```
sudo groupadd usergroup1
sudo useradd -G usergroup1
```
[/step]
[step num="4"]
Вторая строка добавляет в группу usergroup1 пользователей username2, username3 и т. д. Ограничим права на запуск команды ls. Её смогут активировать только участники usergroup1.
```bash
sudo chown :group2 $(which ls)
sudo chmod 754 $(which ls)
```
[/step]
Теперь неучастник usergroup1 не сможет активировать ls.
### Немного о файле /etc/sudoers
[step num="5"]
Sudoers содержит информацию о пользователях, которые могут использовать утилиту sudo. Чтобы открыть файл, используем специальную утилиту visudo.
```
visudo /etc/sudoers
```
[/step]
Внутри содержится следующая информация:
Скриншот №1. Содержимое sudoers
Расскажем подробнее о строке:
Скриншот №2. Задать правила
[step num="6"]
%sudo означает, что к группе sudo применяется следующее правило. Если устанавливаем правила для конкретного пользователя, то % не нужен.
[/step]
[step num="7"]
Первая переменная ALL расшифровывает, как применить правило ко всем IP-адресам. Второй и третий ALL – указанный пользователь или группа имеют право исполнять команды в сессии любого пользователя или группы. Четвертая переменная означает, что данный шаблон применяется ко всем командам.
[/step]
[step num="8"]
Например, необходимо установить права на запуск утилиты apt get для группы admin.
```
%admin ALL=(ALL)NOPASSWD:/usr/bin/apt-get
```
[/step]
### Alias (псевдонимы)
[step num="9"]
Для удобства разграничения прав доступа используются алиасы. Они объединяют один или несколько значений в один параметр. Например, присвоим IP-адресу облачного хранилища более удобное имя.
```
Host_Alias CLOUD = 105.17.125.37
```
[/step]
CLOUD – псевдоним, который указывается в параметрах вместо IP-адреса.
[step num="10"]
При необходимости алиасы используются для объединения пользователей в одну группу.
```
User_Alias Name = user1,user2,...
```
, где Name – псевдоним, а user1, user2 – имена пользователей. Также утилита Alias доступна и для команд, т. е. объединяем список инструкций в единую группу.
[/step]
[step num="11"]
```
Cmnd_Alias Name = cmd1,cmd2
```
- name – произвольное наименование для перечня команд;
- cmd1, cmd2 – перечисление команд через запятую.
[/step]
[step num="12"]
Например, объединим обновление пакетов в алиас:
```
cmnd_Alias APT = /usr/bin/apt-get update,/usr/bin/apt-get upgrade
```
https://serverspace.uz/support/help/installing-and-configuring-dfs.mdИнструкция по установке Distributed File System — распределенной файловой системы на сервере под управлением ОС Windows Server
Рано или поздно системные администраторы задаются вопросом о децентрализованном хранении информации или хотя бы об объединении нескольких существующих файловых серверов в единый. Параллельно этому поднимается вопрос о безопасности хранимой информации. Относительно простым, менее затратным и популярным среди администраторов AD (Active Directory) является использование DFS. Рассмотрим что это и как настроить.
DFS - **D**istributed **F**ile **S**ystem - распределенная файловая система. Является продуктом компании Microsoft, предназначенный для упрощения доступа пользователей к файлам. Что примечательно, файлы могут быть разнесены территориально.
Выделяют два типа DFS:
1. Namespace DFS (Пространство имен DFS). Данный тип реализует виртуальное дерево, которое объединяет общие каталоги сети в единое пространство имен. Существует возможность настройки нескольких пространств имен.
2. Replication DFS (Репликация DFS) - репликация уже существующего каталога с отслеживанием содержимого и внесенных изменений.
## Установка (DFS Installation)
Сразу заострим внимание, что установку, в рамках данного примера, будем выполнять на уже настроенный контроллер домена.
[step num="1"]
Открываем диспетчер серверов. В основной части окна кликаем по "**Добавить роли и компоненты**":
[/step]
[step num="2"]
В новом окне переходим к пункту "**Тип установки**", выбираем параметр "**Установка ролей и компонентов**", нажимаем кнопку "**Далее**":
[/step]
[step num="3"]
В обновленном окне выбираем текущий сервер и кликаем по кнопке "**Далее**":
[/step]
[step num="4"]
Следующим шагом, в списке доступных ролей находим "**Файловые службы и службы хранилища**" и раскрываем список, в котором необходимо отыскать "**Файловые службы и службы iSCSI**". Также раскрываем список параметров. Отмечаем галочками "**Пространства имен DFS**" и "**Репликация DFS**". В появившемся окне кликаем "**Добавить компоненты**". Нажимаем кнопку "**Далее**" несколько раз и дожидаемся окончания установки:
[/step]
## Создание пространства имен DFS
[step num="5"]
Перед тем, как приступить к созданию пространства имен DFS, необходимо создать хотя бы одну сетевую директорию на любом из серверов входящих в домен. В нашем случае будем использовать директорию созданную на том же контроллере домена.
[/step]
[step num="6"]
Для того чтобы папка стала доступна из сети, кликаем по ней правой кнопкой мыши, в контекстном меню выбираем "**Поделиться**", затем "**Отдельные люди**":
[/step]
[step num="7"]
В поле ввода указываем "**Пользователи домена**", нажимаем кнопку "**Добавить**", затем "**Поделиться**":
[/step]
[step num="8"]
Общий доступ к папке готов. Кликаем по кнопке "**Готово**":
[/step]
[step num="9"]
Теперь сервер доступен по пути:
```
WINSERVER2019net_share
```
[/step]
[step num="10"]
Создадим пространство имен DFS.
Для этого в меню "**Пуск**" выбираем "**Средства администрирования Windows**". Также можно через **Панель управления** **Система и безопасность** **Администрирование**.
В открывшемся окне, выбираем "**Управление DFS**":
[/step]
[step num="11"]
В новом окне "**Управление DFS**", в правой части кликаем по "**Новое пространство имен** ...":
[/step]
[step num="12"]
В окне мастера указываем имя сервера. Его можно отыскать как в окне, которое откроется при клике по кнопке "**Обзор**", так и в свойствах системы на вкладке "**Имя компьютера**". Нажимаем "**Далее**":
[/step]
[step num="13"]
Следующим шагом указываем имя пространства имен. В нашем случае, пусть будет "**MyDFS**". Нажимаем кнопку "**Изменить настройки**...". В новом окне следует обратить внимание на строку "**Локальный путь общей папки**", при необходимости измените его. В том же окне установим переключатель на значение "**Использовать пользовательские разрешения**" и кликаем кнопку "**Настроить**":
[/step]
[step num="14"]
В открывшемся окне разрешаем полный доступ для всех и нажимаем кнопку "**OK**":
[/step]
[step num="15"]
Окно изменения настроек закрываем кликом по кнопке "**OK**", в окне мастера нажимаем кнопку "**Далее**":
[/step]
[step num="16"]
На новом этапе выбора типа пространства имен устанавливаем переключатель на значение "**Доменное пространство имен**", нажимаем кнопку "**Далее**".
Внимательно просматриваем настройки. Все устраивает - нажимаем "**Создать**":
[/step]
[step num="17"]
В случае успеха мастер покажет следующее окно:
[/step]
Нажимаем кнопку "**Закрыть**".
## Добавляем новый каталог в существующее пространство имен
Смысла в проделанном выше нет, если не добавить каталоги к уже существующему пространству имен. В примере процесс будет выполнен на том же сервере, однако, метод применим ко всем серверам в домене.
[step num="18"]
В окне управления DFS, в левой его части, разворачиваем дерево управления DFS до существующего, кликаем по необходимому. В правой части окна, в разделе действий, выбираем "**Создать папку**...":
[/step]
[step num="19"]
В открывшемся окне "**Создание папки**" указываем имя, в нашем случае "**Test**" и нажимаем кнопку "**Добавить**":
[/step]
[step num="20"]
В новом окне необходимо добавить путь к существующей сетевой папке. Список доступных каталогов можно посмотреть кликнув по кнопк "**Обзор**...". По окончании, нажимаем "**OK**":
[/step]
Результат будет таким:
[step num="21"]
Нажимаем "**OK**".
Доступ к DFS можно получить из любой адресной строки (Пуск->Выполнить, или из адресной строки любой папки) по шаблону:
```
```
Например:
```
laa.testMyDFS
```
[/step]
Результат таков:
## Настройка DFS-репликации
[step num="22"]
Для выполнения репликации данных необходимо добавить второй сервер в этот же домен и установить на нем роль сервера "**Репликация DFS**" с помощью диспетчера серверов:
[/step]
[step num="23"]
На этом же сервере создаем папку и разрешаем общий доступ к ней. В эту папку будут реплицироваться данные из директории, расположенной на сервере контроллера домена:
[/step]
[step num="24"]
При открытии доступа и позже, в меню свойств папки можно увидеть сетевой путь до каталога:
[/step]
[step num="25"]
Возвращаемся к контроллеру домена и развернутому на нем пространству имен DFS. Открываем уже знакомое из примеров выше окно "**Управление DFS**". В левой части окна, разворачиваем дерево до созданного пространства имен. В правой части окна выбираем "**Добавить конечный объект папки**...". В новом окне вводим адрес до общего каталога на другом сервер (который создали ранее). Нажимаем кнопку "**OK**":
[/step]
[step num="26"]
Система задаст вопрос желании создать группу репликации. Нажимаем кнопку "**Да**":
[/step]
[step num="27"]
Дожидаемся окончания хода выполнения. Итогом будет открытое окно "**Мастера репликации папок**". Необходимо проверить имя группы репликации, а также имя каталога, который будет реплицирован. Переходим к следующему шагу кликнув по кнопке "**Далее**":
[/step]
[step num="28"]
На данном этапе проверяем пути до сетевых каталогов и нажимаем "**Далее**":
[/step]
[step num="29"]
Следующим шагом предстоит выбрать основной узел из выпадающего списка. Это тот узел с которого данные будут реплицироваться. В случае с примером, основной член репликации сервер с именем WINSERV2016 - это сервер, на котором поднят контроллер доменов. Конкретный пример, лишний раз напоминает о необходимости определения понятных имен для серверов и прочих узлов сети. Нажимаем "**Далее**":
[/step]
[step num="30"]
Теперь предстоит выбрать топологию подключений между членами репликации. Выбираем доступную - "**Полная сетка**", однако если вы желаете создать свою топологию репликации позже, то выбирайте "**Нет топологии**". Нажимаем "**Далее**":
[/step]
[step num="31"]
Настройка подходит к концу и на этом шаге следует определиться с периодичностью репликации данных. Выбираем вариант с постоянной репликацией. Преимущества этого метода в том, что данные будут дублироваться сразу. Недостаток - нагружает локальную сеть при больших объемах информации, а также нагрузка на жесткий диск.
[/step]
[step num="32"]
Второй вариант, предлагает настроить репликацию по расписанию. Минус этого способа в том, что данные будут синхронизированы "потом". Выбираем желаемый вариант и нажимаем "**Далее**":
[/step]
[step num="33"]
Программа предлагает просмотр выбранных параметров. Если все устраивает - нажимаем кнопку "**Создать**":
[/step]
[step num="34"]
В случае успеха результат будет таким:
[/step]
[step num="35"]
Нажимаем кнопку "**Закрыть**".
[/step]
[step num="36"]
Система напомнит о задержках репликации. Чтобы не получать это сообщение вновь, при желании, следует установить галочку в соответствующем месте. Нажимаем кнопку "**OK**":
[/step]
[step num="37"]
Настройку распределенной файловой системы, а также репликацию данных можно считать оконченной.
https://serverspace.uz/support/help/installing-seafile-cloud-storage.mdРассмотрим установку и настройку дискового хранилища Seafile для синхронизации информации на ОС: Windows, Linux/Unix, Android и iOS
Статья расскажет об "облаке", которое создано при помощи программного решения Seafile. Продукт позволяет синхронизировать информацию между разными операционными системами: Windows, Linux/Unix, Android и iOS. Рассмотрим, как установить и настроить дисковое хранилище под требования администратора.
## Требования
Для инсталляции Seafile необходимо наличие предустановленного MySQL. О том, как это сделать, на нашем сайте присутствует отдельная публикация.
В качестве серверной платформы (Seafile Server) используется Ubuntu Server 16.04.
## Установка
[step num="1"]
Проверим наличие актуальных версий ПО.
```bash
sudo apt-get update
sudo apt-get upgrade
```
[/step]
[step num="2"]
Проинсталлируем компоненты для работы с python.
```bash
sudo apt-get install python-imaging python-mysqldb python-setuptools
```
[/step]
[step num="3"]
Используя менеджер загрузок, скачаем последний релиз Seafile с официального сайта.
```bash
wget https://download.seadrive.org/seafile-server_7.0.4_x86-64.tar.gz
```
[/step]
**Важно!** На момент написания статьи (22.08.2019) актуальная версия серверной части 7.0.4.
[step num="4"]
Распакуем архив. Перейдем в директорию.
```bash
tar xzvf seafile-server*
cd seafile-server_7.0.4_x86-64
```
[/step]
[step num="5"]
Внутри находим шаблон, запускаем его. Он проведет проверку необходимых компонентов.
```
./setup-seafile-mysql.sh
```
[/step]
Если все присутствует, то на мониторе появится надпись:
Скриншот №1. Успешная проверка.
[step num="6"]
Следуя подсказкам на экране, нажимаем Enter и переходим к конфигурированию.
[/step]
## Настройка Seafile
[step num="7"]
Придумываем произвольное наименование для серверной части. Имя не должно содержать более 15 символов:
[/step]
Скриншот №2. Прописываем имя сервера.
[step num="8"]
Следующий шаг – указываем IP-адрес либо имя. В нашем примере используем первый вариант:
[/step]
Скриншот №3. Вводим IP-адрес.
[step num="9"]
Выбираем домашнюю директорию для хранилища:
[/step]
Скриншот №4. Выбор папки.
[step num="10"]
По умолчанию предлагается создать каталог Seafile-data под учетным именем root.
[/step]
[step num="11"]
Далее мастер настройки спросит про порт:
[/step]
Скриншот №5. Порт.
[step num="12"]
Заводская настройка – порт 8082. Если менять не нужно, то оставляем как есть и переходим к следующем этапу.
[/step]
[step num="13"]
На пятом шаге мастер попросят придумать имя для БД, которые будут использоваться для работы, либо указать путь к существующим:
[/step]
Скриншот №6. Выбор БД.
[step num="14"]
Так как рассказ идет про первоначальную установку и настройку, то выбираем первый пункт.
[/step]
[step num="15"]
Следующие два пункта – имя сервера MySQL и номер порта:
[/step]
Скриншот №7. Наименование хоста.
Скриншот №8. Номер порта.
[step num="16"]
Если изменения не требуются, то пропускаем и идем дальше.
[/step]
[step num="17"]
Задаем пароль для учетного имени администратора MySQL:
[/step]
Скриншот №9. Придумываем пароль.
[step num="18"]
Рекомендуется использовать следующие правила: минимум 9 символов, спецсимволы, цифры и заглавные буквы.
[/step]
[step num="19"]
Мастер инсталляции по умолчанию создает пользователей, которые будут работать с файловым хранилищем:
[/step]
Скриншот №10. Пользователи БД и "облака".
[step num="20"]
По желанию администратор меняет значения на собственные.
[/step]
[step num="21"]
На последнем этапе утилита настройки выводит итоговую конфигурацию на экран:
[/step]
Скриншот №11. Результаты настройки.
[step num="22"]
Если значения указаны верно, то нажимаем Enter.
[/step]
## Первоначальный запуск Seafile
1. Запустим сервис с шаблоном, созданным в предыдущем разделе. Добавим подключение через браузер, чтобы провести дальнейшую настройку.
```
./seafile.sh start
./seahub.sh start
```
2. Во время первого запуска необходимо указать учетное имя для администратора системы и электронный ящик:
Скриншот №12. Настройка для учетной записи.
Для примера возьмем имя admin, а e-mail укажем на домене serverspace.ru
3. Следующий шаг – ввод пароля для администратора:
Скриншот №13. Паролирование.
Система попросит дважды указать ключ, чтобы избежать ошибки. Если указано верно, то сервис запустится с указанными параметрами.
4. Последний этап – прописываем исключения в межсетевом экране.
```
iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
iptables-save
```
По умолчанию веб-интерфейс запускается на 8000 порту.
## Подключение через браузер
Открываем обозревателя и прописываем IP-адрес, который указан выше во время настройки. В примере – 111.111.111.111. Обязательно прописываем номер порта через двоеточие:
Скриншот №14. Имя сервера.
Если адрес указан верно, то откроется окно авторизации. Используем для входа электронный ящик и пароль для администратора. В нашем примере e-mail – admin@serverspace.ru.
Откроется панель управления файловым хранилищем.
Создание нового пользователя
Переходим во вкладку "Пользователи", нажимаем на кнопку "Добавить".
В открывшемся окне вводим электронный ящик и придумываем пароль. При необходимости указываем имя человека и отдел.
Нажимаем ОК. В рабочей области появится вновь созданный пользователь.
https://serverspace.uz/support/help/ustanovka-oblachnogo-xranilishha-owncloud-na-linux.mdРассмотрим установку и настройку облачного хранилища ownCloud. В качестве операционной системы возьмем Linux Ubuntu 16.04. Конфигурирование. Подключение к хранилищу.
[Облачные хранилища](https://serverspace.uz/services/storage.md) используются не только в компаниях и корпорациях, но также в повседневной жизни граждан. Основная цель — резервные копии важной информации и обмен файлами. Рассмотрим установку и настройку одного из представителей — ownCloud. В качестве операционной системы возьмем Ubuntu 16.04.
## **Предварительный этап**
[step num="1"]
На серверной платформе должен стоять пакет LAMP. Если его нет, то вводим:
```bash
sudo apt-get install tasksel
sudo tasksel install lamp-server
```
[/step]
**Важно!** В репозиториях Linux систем присутствует готовый пакет LAMP.
## **Установка ownCloud**
[step num="2"]
Загрузим актуальный релиз с официального сайта, используя утилиту Wget. Для начала переместим дистрибутив в директорию временного репозитория, чтобы установить доверенный сертификат:
```bash
wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_16.04/Release.key -O Release.key
sudo apt-key add - < Release.key
```
[/step]
[step num="3"]
Теперь пропишем в официальном перечне обновляемого ПО Ubuntu сайт ownCloud, а затем установим:
```
sudo echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_16.04/' > /etc/apt/sources.list.d/owncloud.list
```
```bash
sudo apt-get update
sudo apt-get install owncloud-files
```
[/step]
Перейдем к настройке серверной части.
## **Конфигурирование**
[step num="4"]
Отредактируем шаблон owncloud.conf через vi или nano. Добавляем следующие строки:
```xml
Alias /owncloud "/var/www/owncloud/"
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
```
[/step]
[step num="5"]
Используя команду ln создаем ссылку:
```
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
```
[/step]
[step num="6"]
Корректируем права доступа к папке ownCloud, добавив уровень –R.
[/step]
[step num="7"]
Перезагружаем Apache.
[/step]
## **Как подключиться к хранилищу**
[step num="8"]
Открываем браузер. В адресной строке прописываем IP-адрес виртуального сервера, на котором установлено облако. В конце через добавляем "/owncloud".
[/step]
[step num="9"]
Отобразится страница входа. Учитывая, что это первый вход — создаем администраторскую учетную запись. В качестве примера используем имя Admin, а пароль придумываем самостоятельно:
[/step]
Скриншот №1. Регистрация администратора.
**Важно!** Обязательно указываем путь к рабочей папке (Data Folder).
[step num="10"]
После успешного входа переключаемся в профиль Admin и добавляем новых клиентов при необходимости. Опция доступна в разделе "Пользователи".
[/step]
[step num="11"]
Для подключения к облаку также используется протокол WebDAV. Расскажем на примере программы CyberDuck, загрузить которую можно на официальном сайте: https://cyberduck.io/download/.
[/step]
[step num="12"]
Устанавливаем утилиту, заходим в раздел "Настройки", выбираем новое соединение и прописываем следующие параметры:
[/step]
Скриншот №2. Создание подключения.
[step num="13"]
В строке "сервер" прописываем IP-адрес нашего сервера с добавлением "/owncloud". Пользователь и пароль — добавляем учетное имя и ключ, которые зарегистрированы в ownCloud. В нашем примере используем admin. Теперь для работы с облачным хранилищем используем CyberDuck.
https://serverspace.uz/support/help/vnc-dlya-udalennogo-dostupa-k-ubuntu-c-obolochkoj-xfce4.mdРассмотрим подключение к удаленному рабочему столу при помощи системы VNC. В качестве примера используется Ubuntu Server 16.04 с графической средой xfce4.
Осуществить подключение к удаленному рабочему столу можно разными способами. Рассмотрим подробно один из множества – систему VNC. В качестве примера используется Ubuntu Server 16.04 с графической средой xfce4.
### Предварительный этап
[step num="1"]
Подготовим "Убунту" для удаленного подключения: проинсталлируем пакет VNC и графическую оболочку xfce4.
```bash
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver xorg lightdm
```
[/step]
**Важно!** Перед инсталляцией нового ПО обязательно обновляем локальные пакеты (первая строка).
[step num="2"]
Задаем парольную защиту для доступа к удаленному рабочему столу, набрав строку:
```
vncserver
```
[/step]
[step num="3"]
VNC подразделяет пароль на два типа: один для полного доступа, а другой – только на просмотр. В терминологии системы удаленного доступа – view-only. Рекомендуется задать два разных значения.
[/step]
### Конфигурирование
[step num="4"]
Перейдем к настройке серверной части VNC, значения которой хранятся в файле ~/.vnc/xstartup. VNC-сервер активируется на порте 5901, но в системе прописан как ":1". Соответственно, при запуске на других присваивается номера по порядку – ":2", ":3" и т. д.
[/step]
[step num="5"]
1. Сначала деактивируем первый порт.
```
vncserver –kill :1
```
Это необходимо для дальнейшей настройки системы удаленного доступа.
[/step]
[step num="6"]
2. Обязательно создаем резервную копию настроек:
```
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
```
**Важно!** Бэкап имеет расширение .BAK
[/step]
[step num="7"]
3. Откроем его через встроенную утилиту Vi:
```
vi ~/.vnc/xstartup
```
[/step]
[step num="8"]
Добавим три строки:
```bash
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
```
Графическая оболочка перемещена в меню автозапуска на стороне сервера.
[/step]
[step num="9"]
4. Скорректируем права доступа к файлу xstartup. Разрешим доступ на активацию.
```bash
sudo chmod +x ~/.vnc/xstartup
```
[/step]
[step num="10"]
5. Добавим пользователя, и создадим сценарий запуска. Открываем через Vi:
```
sudo vi /etc/init.d/vncserver
```
[/step]
[step num="11"]
Вносим корректировки, как показано на скриншоте. Расшифровка каждого пункта ниже:
[/step]
Скриншот №1. Скрипт для VNC-сервер.
В первой строке меняем имя пользователя на необходимое.
Вторая часть текста регулирует параметры дисплея: разрешения, глубину цвета, качество цветопередачи и другие параметры. Третий блок запускает логирование при активности VNC.
Предпоследние строки закрывают приложение и останавливают службу, а последняя часть связывает между собой команды открытия и закрытия VNC.
[step num="12"]
6. Добавляем права на активацию кода
```bash
sudo chmod +x /etc/init.d/vncserver
```
[/step]
[step num="13"]
7. Теперь откроем удаленный доступ путем проброса портов.
```
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
iptables-save
```
[/step]
[step num="14"]
8. Активируем автозапуск сервиса при старте VNC и перезапустим его для применения изменений.
```bash
sudo update-rc.d vncserver defaults
sudo service vncserver start
```
[/step]
[step num="15"]
Запустится рабочий стол, недоступный пока что по удаленному соединению. Завершим процесс.
```
vncserver -kill :1
```
[/step]
[step num="16"]
9. Переходим к старту дополнительных служб на VNC-сервере.
```
sudo /etc/init.d/lightdm start
sudo /etc/init.d/x11-common start
```
Активируем менеджер дисплея и рабочего окна (lightdm и x11-common).
[/step]
[step num="17"]
10. Теперь запустим удаленный рабочий стол, чтобы администратор мог подключиться к нему.
```
vncserver
```
[/step]
[step num="18"]
Не стоит забывать, что при каждом подключении открывается новое соединение, то есть новые порты. Соответственно, для каждого придется выполнять проброс. Команда выглядит так:
```
iptables -A INPUT -p tcp --dport 59zz -j ACCEPT
iptables-save
```
, где zz – цифры порта, для которого открываем доступ.
[/step]
[step num="19"]
11. Теперь запускаем VNC-клиент и подключаемся к серверу. Например, через программу Remmina, UltraVNC, Vino и др.
https://serverspace.uz/support/help/ustanovka-lemp-steka-na-ubuntu-16-04.mdИнструкция по установке комплекта LEMP (Linux, Nginx, MySQL, PHP) на Ubuntu Server. Подготовим серверную платформу для дальнейших работ — установим Nginx.
О том, как установить комплект LAMP на Ubuntu Server, написано десятки публикаций. Но гораздо меньше известно о LEMP. Отличие в том, что первый вариант использует Apache, а второй — Nginx. Расскажем подробнее про инсталляцию и первичное конфигурирование. В качестве примера используется Ubuntu 16.04.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением LEMP**.
## **Как установить LEMP**
Подготовим серверную платформу для дальнейших работ — установим Nginx. Подключаемся к оборудованию по SSH и устанавливаем его стандартными средствами операционной системы. Дистрибутив доступен в официальных репозиториях.
Откроем стартовую страницу Nginx в обозревателе: пропишем IP в адресной строке программы. Должно появиться следующее изображение:
Скриншот №1. Успешная инсталляция.
Если изображение не открывается, добавляем строки в параметры брандмауэра. Вводим команды:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
```
iptables-save
```
Откроется порт 80. Он предоставляет доступ Nginx в "белом" списке файрвола.
Предварительная подготовка завершена, переходим к конфигурированию.
1. Установим СУБД. В LAMP используют MySQl, а в LEMP — MariaDB. Оба продукта идентичны, за исключением способа распространения: MariaDB поставляется бесплатно, а у MySQL есть ограничения. Используем штатные средства установки ПО:
```bash
sudo apt-get install mariadb-server mariadb-client
```
Во время операции пакет потребует придумать секретный ключ для учетной записи с правами администратора.
**Важно!** Рекомендуются следующие правила — минимум 9 символов, заглавные буквы, цифры и спецсимволы.
По окончании проверяем работоспособность:
```bash
sudo systemctl status mariadb
```
Результат показан на скриншоте:
Скриншот №2. Проверка статуса.
2. Повышаем уровень безопасность пакета:
```
sudo mysql_secure_installation
```
Команда отключает гостевой вход в базу данных, удаленный доступ для суперпользователя, ликвидирует временные таблицы и обновляет права.
3. Следующий шаг — установка PHP. Для установки используем утилиту apt-get. Список пакетов, которые требуется установить:
```bash
sudo apt-get install php7.2
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-curl
sudo apt-get installphp7.2-json
sudo apt-get installphp7.0-cgi
sudo apt-get installphp7.0 libapache2-mod-php7.0
sudo apt-get installphp7.0-xml
```
Процесс займет примерно 10 минут. Дополнительных действий не потребуется, следуем подсказкам мастера.
4. После установки можно подключить дополнительные модули на PHP. Список доступен по команде:
```bash
apt-cache search php7
```
На мониторе появится перечень команд с расшифровкой. Выбираем требуемый и устанавливаем стандартными средствами Ubuntu.
5. Соединим установленные приложения между собой. Набираем:
```bash
sudo apt-get install php-fpm php-mysql
```
По окончании открываем конфигурационный файл PHP через встроенную утилиту vi. Находим строку cgi.fix, и присваиваем значение ноль. Красным показан путь к php.ini:
Скриншот №4. Внесение изменений.
**Важно!** Чтобы строка была активной, удаляем точку с запятой в начале строки.
Выходим из утилиты, сохранив изменения. Чтобы применить новую конфигурацию, перезапустим службу php7.2-fpm. Процесс займет меньше минуты.
6. Скорректируем конфигурационный файл Nginx:
```
sudo vi /etc/nginx/sites-available/default
```
Находим строку с именем Index и вносим дополнительные значения:
```
index.php index.html index.htm index.nginx-debian.html
```
Скриншот №5. Добавить строку.
Если требуется поменять имя сервера, используем команду:
```
server_name XXX
```
где XXX — произвольное наименование серверной части. В нашем примере используем имя LEMP.
Добавляем возможность обрабатывать запросы PHP: удаляем символ ";" перед строками. На изображении это отмечено цифрами "3" и "4":
Скриншот №6. Итоговая конфигурация.
Сохраним изменения и перезагрузим сервис штатными средствами ОС.
На этом настройка закончена. Проверим.
## **Проверка**
Откроем тестовую страницу для проверки. Создаем пробный вариант:
```
vi /var/www/html/info.php
```
Добавим информацию:
```php
```
Закрываем редактор с сохранением. Открываем браузер, вводим IP-адрес серверной платформы с ключом info:
http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx – адрес.
Если конфигурирование прошло успешно, на странице отобразится следующее:
Скриншот №7. LEMP-сервер установлен.
https://serverspace.uz/support/help/ustanovka-cacti-na-centos-7.mdКак установить систему мониторинга сетевых устройств и сервера Cacti на VPS с Centos 7? Рассмотрим в нашей инструкции. Настройка репозиториев, установка компонентов, оптимизация БД.
Инструкция по установке системы для мониторинга серверов и сетевых устройств Cacti на виртуальный сервер под управлением Centos 7.
### Что такое Cacti?
Cacti — это инструмент с открытым исходным кодом для мониторинга сервера, визуализации собранных данных и построения графиков, написан на PHP/MySQL. Cacti использует RRDTool (инструмент для работы с базами данных Round-Robin) для хранения данных и генерации графики, сборка периодических данных происходит через Net-SNMP — набор приложений для реализации SNMP (Simple Network Management Protocol).
### Настройка репозиториев
[step num="1"]
Необходимо отключить функции безопасности SELinux, для этого с помощью текстового редактора, например vi откройте следующий системный файл:
```
vi /etc/sysconfig/selinux
```
[/step]
[step num="2"]
Измените значение параметра SELINUX на disabled:
```
SELINUX=disabled
```
[/step]
[step num="3"]
Перезагрузите виртуальный сервер, чтобы изменения вступили в силу:
```
reboot
```
[/step]
[step num="4"]
Настройте репозиторий EPEL:
```
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
```
[/step]
[step num="5"]
Установите репозиторий [Remi](https://rpms.remirepo.net/):
```bash
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
```
[/step]
[step num="6"]
Выведите список доступных репозиториев:
```bash
yum repolist
```
[/step]
### Установка компонентов
[step num="7"]
В первую очередь необходимо установить веб-сервер Apache:
```bash
yum install httpd httpd-devel
systemctl start httpd
```
[/step]
[step num="8"]
Установите утилиты RRDTool и SNMP, для дальнейшей обработки и визуализации данных:
```bash
yum install net-snmp net-snmp-utils net-snmp-libs rrdtool
systemctl start snmpd
```
[/step]
[step num="9"]
Далее установите MariaDB и запустите сервис:
```bash
yum install mariadb-server
systemctl start mariadb
```
[/step]
[step num="10"]
Запустите скрипт, с помощью которого задайте пароль администратора и дополнительные параметры безопасности:
```
mysql_secure_installation
```
[/step]
[step num="11"]
Запустите следующую команду, чтобы установить несколько компонентов PHP:
```bash
yum --enablerepo=remi install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-intl php-snmp
```
[/step]
### Создание базы данных Cacti
[step num="12"]
Подключитесь к СУБД MariaDB:
```bash
mysql -u root -p
```
[/step]
[step num="13"]
С помощью следующих команд создайте БД и пользователя, задав надежный пароль:
```sql
CREATE DATABASE fosslinuxcacti;
CREATE USER 'fosslinuxuser'@'localhost' IDENTIFIED BY 'password';
```
[/step]
[step num="14"]
Предоставьте привилегии пользователю:
```
grant all privileges on fosslinuxcacti.* to fosslinuxuser@localhost;
FLUSH PRIVILEGES;
```
[/step]
[step num="15"]
Созданный пользователь базы данных должен иметь доступ к таблице mysql.time_zone_name. Поэтому необходимо импортировать mysql_test_data_timezone.sql в базу данных MySQL:
```bash
mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
```
[/step]
[step num="16"]
Выполните вход в MariaDB:
```bash
mysql -u root -p
```
[/step]
[step num="17"]
Предоставьте доступ пользователю базы данных cacti и обновите привилегии:
```
GRANT SELECT ON mysql.time_zone_name TO fosslinuxuser@localhost;
FLUSH PRIVILEGES;
```
[/step]
### Оптимизация базы данных
[step num="18"]
Для повышения производительности нужно изменить параметры базы данных. Откройте файл конфигурации.
```
vi /etc/my.cnf.d/server.cnf
```
[/step]
[step num="19"]
Вставьте следующие строки в секцию [mysqld]:
```
event_scheduler=ON
plugin-load=BLACKHOLE=ha_blackhole.so
blackhole=FORCE
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8mb4
max_heap_table_size = 128M
max_allowed_packet = 16777216
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_per_table = on
innodb_buffer_pool_size = 512M
innodb_doublewrite = off
innodb_additional_mem_pool_size = 80M
innodb_lock_wait_timeout = 50
innodb_flush_log_at_trx_commit = 2
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000
```
[/step]
[step num="20"]
Перезапустите СУБД для применения изменений:
```bash
systemctl restart mariadb.service
```
[/step]
### Установка и конфигурация Cacti
[step num="21"]
Установите Cacti используя yum:
```bash
yum -y install cacti
```
[/step]
[step num="22"]
Импортируйте файл базы данных cacti по умолчанию в созданную базу данных.
```
cd /usr/share/doc/cacti-1.2.5/
```
[/step]
_Примечание: версия Cacti может отличаться._
[step num="23"]
Импортируйте SQL-файл:
```bash
mysql -u root -p fosslinuxcacti < cacti.sql
```
[/step]
[step num="24"]
Отредактируйте файл конфигурации Cacti, указав базу данных, пароль, пользователя и пр.:
```
vi /usr/share/cacti/include/config.php
```
[/step]
[step num="25"]
Измените следующие параметры:
```
$database_type = 'mysql';
$database_default = 'fosslinuxcacti';
$database_hostname = 'localhost';
$database_username = 'fosslinuxuser';
$database_password = 'password';
$database_port = '3306';
$database_ssl = false;
```
[/step]
### Настройка Apache
[step num="26"]
Выполнить настройку Apache необходимо для удаленного подключения:
```
vi /etc/httpd/conf.d/cacti.conf
```
[/step]
[step num="27"]
Замените строку **Require host localhost** на **Require all granted** и **Allow from localhost** на **Allow from all**.
Файл будет выглядеть следующем образом:
```
Alias /cacti /usr/share/cacti
```
```xml
# httpd 2.4
Require all granted
# httpd 2.2
Order deny,allow
Deny from all
Allow from all
```
```xml
Require all denied
Order deny,allow
Deny from all
```
```xml
Require all denied
Order deny,allow
Deny from all
```
[/step]
[step num="28"]
Далее откройте файл конфигурации PHP:
```
vi /etc/php.ini
```
[/step]
[step num="29"]
Измените значения следующих параметров:
```
date.timezone = Europe/Minsk
memory_limit = 800M
max_execution_time = 360
```
[/step]
[step num="30"]
Перезапустите запущенные сервисы:
```bash
systemctl restart httpd.service
systemctl restart mariadb.service
systemctl restart snmpd.service
```
[/step]
[step num="31"]
Не забудьте настроить Firewall, чтобы подключиться Cacti:
```
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
```
[/step]
### Подключение к веб-интерфейсу Cacti
[step num="32"]
Перейдите в браузере по следующему адресу:
```
/cacti
```
[/step]
[step num="33"]
Например:
```
121.123.123.121/cacti
```
[/step]
[step num="34"]
При первом подключении используйте логин и пароль admin/admin:
[/step]
[step num="35"]
Вам сразу же необходимо будет изменить значения по умолчанию:
[/step]
[step num="36"]
Далее необходимо выбрать язык и принять пользовательское соглашение:
[/step]
[step num="37"]
На следующем шаге будет выполнена проверка наличия зависимостей и необходимых конфигураций PHP и MySQL:
[/step]
[step num="38"]
Выберите тип установки, можно оставить значение по умолчанию:
[/step]
[step num="39"]
Далее будет выполнена проверка прав и доступов:
[/step]
[step num="40"]
Выберите профиль по умолчанию и подсети для сканирования:
[/step]
[step num="41"]
На следующих шагах вы можете выбрать все шаблоны и таблицы:
[/step]
[step num="42"]
Подтвердите установку:
[/step]
[step num="43"]
По завершении установки отобразится лог с ошибками, если они имели место быть:
[/step]
[step num="44"]
Далее вы можете зайти в панель Cacti и приступать к мониторингу:
[/step]
Пример графиков со статистикой:
https://serverspace.uz/support/help/ustanovka-platformy-kanboard-na-ubuntu-18-04.mdИнструкция по установке платформы управления проектами и задачами Kanboard на VPS с ОС Ubuntu 18.04. В нашем руководстве платформа управления Kanban будет установлена поверх LAMP-стека.
Инструкция по установке платформы управления проектами и задачами Kanboard на виртуальный сервер под управлением Ubuntu 18.04.
### Что такое Kanboard?
Kanboard — это платформа для управления проектами с открытым исходным кодом, основанная на стеке LAMP/LEMP, которая помогает пользователям создавать и управлять рабочим процессом проектов с использованием методологии Kanban.
Независимо от того, создаете ли вы личную или общую платформу управления проектами, Kanboard может помочь вам создавать и управлять своими задачами с помощью интуитивно понятных и мощных панелей пользователей и администратора.
Примечание: с отличиями Kanboard и Trello можно ознакомиться [здесь](https://project-management.zone/system/kanboard,trello).
### Первоначальные требования
В нашем руководстве платформа управления Kanban будет установлена поверх LAMP-стека. Подробнее о том, что это такое и как выполнить установку на Ubuntu 18.04 написано в [нашей инструкции](https://serverspace.uz/support/help/ustanovka-lamp/).
### Настройка PHP и установка дополнительных модулей
С помощью следующей команды установите дополнительные модули PHP:
```bash
sudo apt install libapache2-mod-php7.2 php7.2-common php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-pgsql php7.2-xml php7.2-cli php7.2-zip
```
После установки PHP откройте файл конфигурации PHP для Apache с помощью текстового редактора, например vi:
```
sudo vi /etc/php/7.2/apache2/php.ini
```
Затем внесите изменения в значения следующих параметров. Приведенные ниже значения - это оптимальные настройки для работы Kanboard:
```
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Minsk
```
После внесения изменений перезапустите веб-сервер:
```bash
sudo systemctl restart apache2.service
```
### Создание базы данных
Для создания базы данных подключитесь к СУБД MySQL (MariaDB):
```bash
sudo mysql -u root -p
```
Создайте БД с именем kanboard:
```sql
CREATE DATABASE kanboard;
```
Создайте нового пользователя и задайте ему надежный пароль:
```sql
CREATE USER 'kanboarduser'@'localhost' IDENTIFIED BY 'secure_password';
```
Затем предоставьте пользователю полный доступ к базе данных:
```
GRANT ALL ON kanboard.* TO 'kanboarduser'@'localhost' WITH GRANT OPTION;
```
Наконец, сохраните изменения и выполните выход:
```
FLUSH PRIVILEGES;
EXIT;
```
### Установка Kanb
Загрузить последний релиз Kanban board возможно из Github-репозитория разработчиков. Установите [composer](https://ru.wikipedia.org/wiki/Composer), [cURL](https://ru.wikipedia.org/wiki/CURL) и [Git](https://ru.wikipedia.org/wiki/Git):
```bash
sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
```
После установки перейдите в каталог /tmp, загрузите и распакуйте, а затем переместите содержимое Kanboard в корневой каталог Apache и выполните установку:
```bash
cd /tmp
git clone https://github.com/kanboard/kanboard.git
sudo mv kanboard /var/www/kanboard
cd /var/www/kanboard
sudo mv config.default.php config.php
sudo composer install
```
Для конфигурации Kanboard откройте файл с настройками:
```
sudo vi /var/www/kanboard/config.php
```
Установите значения для следующих параметров, указав пароль созданный для пользователя kanboarduser:
```
define('DB_DRIVER', 'mysql');
define('DB_USERNAME', 'kanboarduser');
define('DB_PASSWORD', 'kanboarduser_password');
define('DB_NAME', 'kanboard');
```
Измените права на каталог с доской:
```bash
sudo chown -R www-data:www-data /var/www/kanboard/
sudo chmod -R 755 /var/www/kanboard/
```
### Настройка Apache
Необходимо настроить файл конфигурации Apache для Kanboard. Создайте новый файл конфигурации с именем kanboard.conf:
```
sudo vi /etc/apache2/sites-available/kanboard.conf
```
Вставьте следующие строки, заменив e-mail администратора сервера и доменное имя:
```xml
ServerAdmin admin@example.com
DocumentRoot /var/www/kanboard
ServerName example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
```
Сохраните изменения и перезапустите сервис:
```bash
systemctl reload apache2
sudo a2ensite kanboard.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service
```
### Подключение к Kanban Board
Подключитесь к вашему серверу, например:
```
http://example.com
```
Или просто по IP-адресу:
```
121.123.123.121
```
Войдите с именем пользователя - admin и паролем - admin. Обязательно измените значения по умолчанию сразу после подключения:
Если по каким-то причинам вы не можете подключиться, то проверьте [настройки firewall](https://serverspace.uz/support/help/firewall-configuring-the-server-firewall/), а именно состояние 80 порта.
После подключения вы можете начинать работу с платформой управления проектами Kanban:
https://serverspace.uz/support/help/installing-and-configuring-openvpn-on-centos.mdРуководство по установке и настройке OpenVPN на сервер под управлением ОС CentOS7. OpenVPN позволяет создавать зашифрованные туннели
Рассмотрим установку OpenVPN на сервер под управлением ОС CentOS7.
**OpenVPN** — открытая программная реализация протокола VPN. Отличительной особенностью данного продукта является возможность создания зашифрованных туннелей, при этом существуют реализации под большинство популярных ОС, в том числе и для мобильных платформ.
[step num="1"]
Особенность репозитория CentOS такова, что OpenVPN в него не входит. Зато этот пакет можно получить используя репозиторий EPEL (Enterprise Linux), который управляется Fedora Project. Из данного репозитория, кстати, можно получить и другие пакеты, которые не входят в стандартный репозиторий CentOS. Установим командой:
```bash
yum install epel-release
```
[/step]
[step num="2"]
## Приступаем к установке OpenVPN
Устанавливаем пакет:
```bash
yum install openvpn easy-rsa -y
```
[/step]
[step num="3"]
Приступаем к настройке сервера. Копируем server.conf:
```
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
```
[/step]
[step num="4"]
Важно обратить внимание на "*". Если выполнялась только одна попытка установить, то версию программы можно заменить символом "звездочки". Если же было несколько попыток установки, возможно придется указать путь до файла полностью.
[/step]
**Перед генерацией ключей, внесем несколько изменений в файл конфигурации сервера. **
[step num="5"]
Открываем server.conf любым редактором.
```
nano /etc/openvpn/server.conf
```
[/step]
[step num="6"]
Находим строку "Diffie hellman parameters." и ищем:
```
dh dh2048.pem
```
Если указано именно, так, то изменения вносить не нужно. Нюанс новой версии пакета заключается в том, что параметру уже соответствуют значения. В старых версиях там просто "dh". Приводим к виду, как у нас.
[/step]
[step num="7"]
Далее ищем строку "# Certain Windows-specific network settings". раскомментируем один из параметров ниже (удалим символ "точка с запятой" (;) в начале строки). Должно получиться примерно так:
```
push "dhcp-option DNS 8.8.8.8"
```
DNS-сервер можно указать свой, по желанию. Также, можно раскомментировать вторую строку, чтобы передавать клиентам еще и альтернативный DNS-сервер.
[/step]
[step num="8"]
Для безопасности сервера будем запускать от пользователя nobody и группы nogroup. Раскомментируем строки:
```
user nobody
```
```
group nobody
```
[/step]
## Приступаем к созданию сертификатов
[step num="9"]
С помощью установленного ранее пакета easy-rsa создадим ключи сервера и клиента.
Создаем директорию, в которой будут лежать ключи:
```
mkdir -p /etc/openvpn/easy-rsa/keys
```
[/step]
[step num="10"]
В только что созданную директорию easy-rsa копируем скрипты:
```
cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa
```
[/step]
[step num="11"]
Переходим в каталог /etc/openvpn/easy-rsa/3/ и создаем скрипт vars
cd /etc/openvpn/easy-rsa/
```
nano vars
```
Важно! Версия easy-rsa может быть другой, а следовательно путь необходимо будет скорректировать.
[/step]
[step num="12"]
В открытый файл добавляем следующие строки:
```
set_var EASYRSA "$PWD"
```
```
set_var EASYRSA_PKI "$EASYRSA/pki"
```
```
set_var EASYRSA_DN "cn_only"
```
```
set_var EASYRSA_REQ_COUNTRY "RU"
```
```
set_var EASYRSA_REQ_PROVINCE "Moscow"
```
```
set_var EASYRSA_REQ_CITY "Moscow"
```
```
set_var EASYRSA_REQ_ORG "MyOrg"
```
```
set_var EASYRSA_REQ_EMAIL "openvpn@mydomain.net"
```
```
set_var EASYRSA_REQ_OU "CA"
```
```
set_var EASYRSA_KEY_SIZE 2048
```
```
set_var EASYRSA_ALGO rsa
```
```
set_var EASYRSA_CA_EXPIRE 7500
```
```
set_var EASYRSA_CERT_EXPIRE 365
```
```
set_var EASYRSA_NS_SUPPORT "no"
```
```
set_var EASYRSA_NS_COMMENT "CERTIFICATE AUTHORITY"
```
```
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
```
```
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
```
```
set_var EASYRSA_DIGEST "sha256"
```
Сохраняем файл и закрываем редактор.
[/step]
[step num="13"]
Разрешаем исполнение файла:
```bash
chmod +x vars
```
[/step]
[step num="14"]
Инициализируем PKI директорию и создадим CA сертификат:
```
./easyrsa init-pki
```
```
./easyrsa build-ca
```
[/step]
Важно! При создании CA-сертификата скрипт запросит ввод пароля минимум из 4 символов. Введенный пароль следует запомнить.
[step num="15"]
Создаем ключ сервера.
```
./easyrsa gen-req server nopass
```
[/step]
Если не указывать атрибут "nopass", то при создании ключа, скрипт запросит пароль.
[step num="16"]
Подписываем сертификат сервера:
```
./easyrsa sign-req server server
```
[/step]
Первым действием скрипт поинтересуется в нашей уверенности, отвечаем "Yes". Затем запросит пароль, который был указан при создании CA-сертификата.
[step num="17"]
Проверяем, подписался ли сертификат:
```
openssl verify -CAfile pki/ca.crt pki/issued/ server.crt
```
[/step]
[step num="18"]
Генерируем дополнительный ключ сервера ta.key:
```
openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key
```
[/step]
## Пользовательские сертификаты
Процесс создания пользовательского сертификата идентичен созданию сертификата сервера.
1. Создаём без парольной защиты:
```
./easyrsa gen-req client01 nopass
```
2. Подписываем сертификат:
```
./easyrsa sign-req client client01
```
3. Проверяем подпись:
```
openssl verify -CAfile pki/ca.crt pki/issued/client01.crt
```
Диффи-Хеллман.
## Создаем сертификат
```
./easyrsa gen-dh
```
В итоге будет создан файл dh.pem, а в конфиге dh2048.pem. Переименуем его позже, при копировании ключей.
**Переносим сертификаты.**
Копируем файлы ключей сервера. Для этого последовательно выполняем:
```
cp pki/ca.crt /etc/openvpn/
```
```
cp pki/issued/server.crt /etc/openvpn/
```
```
cp pki/private/server.key /etc/openvpn/
```
```
cp /etc/openvpn/easy-rsa/keys/ta.key /etc/openvpn/
```
**Копируем ключи клиента:**
```
cp pki/ca.crt /etc/openvpn/client/
```
```
cp pki/issued/client01.crt /etc/openvpn/client/
```
```
cp pki/private/client01.key /etc/openvpn/client/
```
**Копируем файл ключа Диффи-Хеллмана:**
```
cp pki/dh.pem /etc/openvpn/dh2048.pem
```
Важно! Целевое имя файла намеренно изменено под имя в конфиге.
**Настраиваем маршрутизацию.**
Для ускорения настройки, работы будут выполняться с iptables, а не c FirewallD. Последовательно выполняем:
```bash
yum install iptables-services -y
```
```bash
systemctl mask firewalld
```
```bash
systemctl enable iptables
```
```bash
systemctl stop firewalld
```
```bash
systemctl start iptables
```
```
iptables --flush
```
Перед дальнейшей настройкой следует заглянуть вы названия интерфейсов с помощью команды:
```
ifconfig -a
```
Добавляем правило для NAT:
```
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o -j MASQUERADE
```
```
iptables-save > /etc/sysconfig/iptables
```
Как пример:
```
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
```
```
iptables-save > /etc/sysconfig/iptables
```
Разрешаем форвардинг пакетов между сетевыми интерфейсами. Для этого редактируем системный файл sysctl.conf:
```
nano /etc/sysctl.conf
```
В начале файла вставляем строку:
```
net.ipv4.ip_forward = 1
```
Сохраняем файл, закрываем редактор и перезапускаем сетевую службу командой:
```bash
systemctl restart network.service
```
## Запускаем OpenVPN-сервер
Для начала добавим службу в автозагрузку:
```bash
systemctl -f enable openvpn@server.service
```
Запускаем OpenVPN:
```
openvpn /etc/openvpn/server.conf
```
Настройка клиента.
Сервер настроен, осталось выполнить настройку клиента, чтобы он мог подключиться.
Независимо от используемой ОС, будь то мобильная, серверная или домашняя версии, Linux или Windows, всегда понадобятся 4 файла:
- ca.crt;
- client.crt;
- client.key;
- client.ovpn
Первые 3 файла расположены в директории /etc/openvpn/client/, а client.ovpn придется создать. Для этого перейдем в каталог, где лежат все ключи клиента:
```
cd /etc/openvpn/client/
```
Создадим файл:
```
nano client.ovpn
```
Заполним следующим содержимым:
```
client
```
```
dev tun
```
```
proto udp
```
```
remote 1194
```
```
resolv-retry infinite
```
```
nobind
```
```
persist-key
```
```
persist-tun
```
```
comp-lzo
```
```
verb 3
```
```
ca ca.crt
```
```
cert client01.crt
```
```
key client01.key
```
Вместо IP_ADDRESS вставляем IP-адрес сервера, либо его доменное имя. Сохраняем файл сочетанием Ctrl + X и закрываем редактор.
Передаем файлы клиенту. Это возможно сделать, например, через SFTP или заархивировать каталог и "отдать" его через web-сервер.
## Подключение клиента
В зависимости от операционной системы скачиваем установочный файл либо выполняем инсталляцию из репозитория. Также OpenVPN можно получить с [официального сайта](https://openvpn.net/download-open-vpn/).
Windows:
Для компьютеров под управлением Windows следует следует скачать дистрибутив продукта с официального сайта, полученные "четыре файла", следует положить в папку, C:Program FilesOpenVPNconfig.
После запуска OpenVPN GUI, в системном трее появится значок программы. Кликаем по нему правой кнопкой мыши, выбираем Connect (подключиться).
**MacOS:**
С OpenVPN для MacOS немного сложнее. Следует воспользоваться open-source инструментом Tunnelblick. Ключи и конфигурационный файл следует положить в ~/Library/Application Support/Tunnelblick/Configurations. Либо дважды кликнуть по файлу конфигурации.
**Linuix:**
Следует выполнить установку из репозитория.
**Для Debian/Ubuntu:**
```bash
apt-get install openvpn
```
**Для CentOS/OpenSUSE/Fedora:**
```bash
yum install openvpn -y
```
После установки следует перейти в папку, в которой расположен конфигурационный файл с ключами и выполнить команду:
```
sudo openvpn --config client.ovpn
```
Для проверки работы сервера следует воспользоваться любым из сайтов, показывающих ваш IP-адрес.
https://serverspace.uz/support/help/configuring-openvpn-on-ubuntu.mdOpenVPN - открытая реализация одной из технологий VPN, предназначенная для организации защищенных виртуальных частных сетей. Рассмотрим ее настройку в Ubuntu Linux
Считается, что публичные (открытые) сети не обеспечивают необходимый уровень безопасности соединений. Существуют риски перехвата трафика злоумышленниками в подобных сетях — в кафе, вокзалах, торговых центрах, и др. Перехваченный трафик может стать источником информации, которая поможет взломать аккаунты\серверы, украсть конфиденциальную информации, или стать причиной других инцидентов безопасности.
VPN (virtual private network) — один из способов создать частную (приватную) сеть, используя общедоступные сети.
VPN используется как рядовыми пользователями, так и организациями всех размеров.
Доступ к частной сети имеют только определенные пользователи (используя многочисленные виды аутентификации), все соединения защищены шифрованием, поэтому перехват трафика не позволяет получить доступ к ценным (полезным) данным.
В общем виде, функционирование частной сети зависит от конкретной реализации.
Чаще используется клиент-серверная модель, в которой коммуникацию между узлами сети обеспечивает один или более серверов VPN. Под сервером понимается как физический или виртуальный хост с серверной ОС (а нередко и десктопной), так и специализированные сетевые устройства, поддерживающие ту или иную технологию VPN.
Вид коммуникаций может быть точка-точка (т.е. один хост коммуницирует с каким-то другим о определённым хостом), и объединение целых подсетей (с заметными изменениями маршрутизации).
OpenVPN — широко распространенная решение по реализации технологии VPN (и одноименный протокол).
Это кроссплатформенное решение, доступное для операционных систем Linux, Windows, MacOS, Android.
Лицензия GNU GPL допускает использование коммерческими организациями.
Далее пошагово показано, как установить, а затем запустить OpenVPN в серверной роли на хосте с ОС Ubuntu, применяя базовую конфигурацию, достаточную для безопасной работы.
## Немного пояснений перед действиями
OpenVPN функционирует в связке с PKI.
Разработчики рекомендуют к применению скрипт easyrsa — он позволяет упростить выпуск\отзыв ключей и сертификатов. Скрипт становится доступным после загрузки пакета "easy-rsa" — его запуск с нужными опциями поможет провести подготовку к работе своего центра сертификации (ЦС).
В дальнейших действиях предполагается использование ассиметричного шифрования, требующего наличия на каждом хосте закрытого (для шифрования передаваемых пакетов) и открытого (для расшифровки) ключей.
Хосты частной (приватной) сети проводят распознавание (аутентификацию) друг друга перед взаимодействием, т.е. удостоверяются, что другая сторона та, за кого себя выдает. Это выполняется путем предоставления обеими сторонами своих публичных ключей.
В простом случае, каждый хост должен иметь копию открытого ключа всех остальных хостов частной сети для аутентификации (и для возможности безопасного обмена данных).
Но, следить за наличием ключей затруднительно, а также возможна подмена ключа.
Вместо этого вводится сторонний участник взаимодействия, которому доверяют остальные хосты –ЦС. Его назначение обработать запрос на выпуск сертификата для каждого открытого ключа. Обработка — значит выпуск и подписание этого сертификата своим собственным (который известен всем хостам). Таким образом, любому хосту достаточно проверить, что сертификат заверен ЦС.
Исходя из пояснений, для настройки потребуются:
- Закрытый ключ и сертификат для ЦС;
- Серверный закрытый ключ OpenVPN, сертификат открытого ключа, подписанный в ЦС;
- Клиентский закрытый ключ, сертификат открытого ключа, также подписанный сертификатом ЦС;
- Дополнительный файл, сформированный в соответствии с протоколом Diffie-Hellman. Использование такого файла затрудняет для злоумышленника расшифровку перехваченного трафика при компрометации закрытого ключа (т.е. когда ему удалось заполучить каким-то образом ключ).
- Специальный ключ HMAC как дополнение в целях безопасности, защищающий от различных атак на систему.
## Установка
OpenVPN можно установить:
- из исходников;
- из репозитория Ubuntu;
- из репозитория разработчиков редакции Community.
Рекомендуется устанавливать обновления для ПО с помощью менеджера пакетов apt, поэтому вариант установки из исходников не подходит. В репозитории Ubuntu версия OpenVPN не совпадает с текущей стабильной версией. В репозитории разработчиков всегда имеется текущая стабильная версия, поэтому будем его использовать источником при установке.
Для добавления репозитория необходимо (все командах выполняются от root):
-
Добавить GPG ключ в систему:
```bash
curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | gpg --dearmor -o /usr/share/keyrings/openvpn-public.gpg
```
-
Добавить новый источник поиска и установки пакетов:
```
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] https://build.openvpn.net/debian/openvpn/stable jammy main" > /etc/apt/sources.list.d/openvpn-repo.list
```
-
Произвести установку необходимых далее пакетов (включая зависимости):
```bash
apt update && apt install easy-rsa openvpn
```
## Подготовка приватного ЦС
-
Требуется сформировать поддиректорию и сопутствующее содержимое для работы ЦС:
```
make-cadir /etc/openvpn/ca && cd /etc/openvpn/ca && ./easy-rsa init-pki
```
Впоследствии, закрытые ключи ".key" помещаются в поддиректорию _pki/private_, выпущенные сертификаты ".сrt" в поддиректорию _pki/issued_.
-
Перед началом работы easyrsa считываются значения переменных из файла "vars".
В нем записаны названия самих переменных, а также их дефолтные значения. Их допускается поменять на свое усмотрение, предварительно раскомментировав соответствующую строку.
Для внесения информативности перед выпуском сертификатов, можно изменить следующие переменные, к примеру, так:
Срок действия ключа ЦС указан в _EASYRSA_CA_EXPIRE_, измеряется в количестве дней. По умолчанию указано 3650 дней (т.е. 10 лет), если требуется – можно указать другой срок действия.
Также, можно поменять срок действия сертификата в строке с переменной _EASYRSA_CERT_EXPIRE_.
Остальные значения допустимо оставить закомментированными.
В этом же файле перед переменными представлены объяснения в виде комментариев по их использованию.
-
Сгенерировать новый закрытый ключ и сертификат ЦС:
```
./easy-rsa build-ca
```
Рекомендуется установить сложную парольную фразу при появлении запроса на ее создание — это затруднит применение ключа в том случае, если он окажется скомпрометированным.
_"Commom Name"_ &mdash нажать Enter, т.е. согласиться с предложенным именем в квадратных скобках, либо ввести свое произвольное имя.
Результат выполнения скрипта — закрытый ключ ЦС, сохраненный по пути "ca.key" — этот файл никогда не следует передавать никому, и хранить в недоступном для сторонних лиц месте. Также, будет создан соответствующий сертификат "ca.crt" — он используется далее в настройках.
-
Сгенерировать файл Diffie-Hellman (процесс не моментальный, может продолжаться две-три минуты):
```
./easyrsa gen-dh
```
Файл "dh.pem" окажется в поддиректории "pki".
-
Сгенерировать ключ HMAC:
```
openvpn --genkey secret pki/ta.key
```
## Серверный ключ и сертификат
-
Запустить easyrsa для генерации закрытого серверного ключа:
```
./easyrsa gen-req serverspace nopass
```
_"nopass"_ позволит сгенерировать ключ без парольной фразы. Если ее задать — systemd потребует ее вводить перед каждым стартом сервиса. Если все же политика безопасности требует обязательного применения парольной фразы — не используйте эту опцию.
После запуска появится запрос на указание _"Common Name"_ — следует указать произвольное имя, к примеру Serverspace.
Результат — закрытый серверный ключ "serverspace.key", который нельзя никому передавать. Этот же запуск скрипта сформирует и запрос сертификата — "serverspace.req".
-
Выпустить и подписать сертификат (задействуя полученный ".req" файл):
```
./easyrsa sign-req server serverspace
```
Перед подписанием система запросит подтверждение содержащихся в нем данных _"Confirm request details:"_ в ответ необходимо написать _yes_, затем скрипт запросит парольную фразу для закрытого ключа ЦС.
Серверный сертификат — "server.crt", он потребуется далее при создании конфиг-файла.
-
Собрать все нужные файлы (ключ и сертификат сервера, файл Diffie-Hellman, сертификата ЦС и ключа HMАC) путем копирования в директорию /etc/openvpn/server:
```
cp pki/private/serverspace.key pki/issued/serverspace.crt pki/dh.pem pki/ca.crt pki/ta.key /etc/openvpn/server/
```
## Подготовка серверного конфиг-файла
Создать файл /etc/openvpn/server/server.conf с содержимым, представленным ниже:
```
port 1194
proto udp
dev tun
mode server
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 172.16.61.0 255.255.255.0
push "redirect gateway def1"
push "dhcp-option DNS 8.8.8.8"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
```
Порт остается дефолтным — 1194 (допустимо поменять если необходимо), трафик в udp (tcp задействуют для специфичных ситуаций), заданы подсеть и DNS, применяется сжатие.
Доступны и другие параметры (опции) — их использование определяется спецификой и конкретной задачей.
## Запуск сервера OpenVPN
-
Включить systemd сервис OpenVPN:
```bash
systemctl enable openvpn-server@server.service --now
```
После старта процесса в систему добавляется новый интерфейс _"tun0"_. Команду _"ip a | grep tun0"_ можно выполнить для проверки его добавления, в выводе команды также должен быть отобразиться IP для этого интерфейса. Если _"tun0" появился_, то сервис запустился корректно.
Разрешить переход пакетов из внешнего интерфейса в созданный "tun0" (сервер начнет выполнять роль шлюза):
```
sysctl -w net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p
```
-
Добавить запись в IPTables, задействующую механизм NAT:
```
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE
```
В команде указан интерфейс _enp0s5_ — следует заменить на имя того внешнего интерфейса, на который пойдут подключения клиентов.
После перезагрузки ОС это правило пропадет.
Для его автоматического применения достаточно добавить несложный скрипт в директорию /etc/networkd-dispatcher/routable.d/.
Например, назвать скрипт 50-ifup, и добавить такое содержимое:
```bash
#!/usr/bin/env bash
if [[ "$IFACE" == "enp0s5" ]];
then
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE
fi
```
На этом с базовой серверной настройкой мы закончили.
## Клиентский ключ и сертификат
-
Выполнить запрос, генерирующий закрытый ключ, и соответствующий клиентский сертификат:
```
./easy-rsa gen-req client_1
```
-
Подписать файл созданного запроса:
```
./easyrsa sign-req client_1
```
Скрипт запросит подтверждение — в ответ написать yes, и затем ввести парольную фразу для ключа ЦС.
Созданный клиентский сертификат — "client_1.crt", закрытый ключ — "client_1.key".
Файлы, указанные ниже, требуется передать на то устройство, на котором предполагается создание клиентского подключения:
- ca.crt – сертификат ЦС;
- client_1.key – закрытый клиентский ключ;
- client_1.crt – сертификат клиента
- ta.key – ключ HMAC
В новой статье будет показано их применение на клиенте OpenVPN (включая их объединение вместе с параметрами для запуска).
https://serverspace.uz/support/help/ustanovka-apache-php-mysql.mdЭта статья поможет установить Apache, PHP, MySQL на Windows Server. Самый простой способ, облегчающий установку, настройку и управление всеми компонентами
Эта статья поможет установить Apache, PHP, MySQL на Windows Server. Самый простой способ, облегчающий установку, настройку и управление всеми компонентами - WampServer. WampServer это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для наиболее простой обработки баз данных.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением Apache, PHP, MySQL**.
### Установка
Перед началом установки WampServer необходимо настроить Windows Firewall, указав специфические порты: 80 и 443. Подробнее в [статье](https://serverspace.uz/support/help/dobavlenie-pravila-v-windows-firewall/).
Также необходимо [настроить браузер Internet Explorer](https://serverspace.uz/support/help/otkluchit-usilennuya-bezopasnosti-ie/), для того чтобы загрузить файлы из внешних источников.
Перед работой с WampServer для начала установим необходимые библиотеки. Для этого требуются компоненты The Visual C++ Redistributable Packages (2008-2019), которые можно загрузить по следующей [ссылке](http://wampserver.aviatechno.net/files/vcpackages/all_vc_redist_x86_x64.zip) и установить все компоненты из каждого исполняемого файла.
Теперь загружаем [установщик WampServer.](http://www.wampserver.com/ru/)
После запуска исполняемого файла начнется установка Wampserver
Принимаем лицензионное соглашение, указываем папку для установки (указываемый путь не должен содержать пробелов!).
Нажимаем Next и Install. Дожидаемся окончания установки.
На предложение изменить стандартный браузер и текстовый редактор нажимаем "No".
Установка завершена, нажимаем Finish
На рабочем столе появится иконка с Wampserver64, запускаем сервер двойным щелчком.
В нижней панели справа появится зеленый значок запущенного сервера.
В браузере перейдите по ссылке http://localhost/ или вашему ip адресу для проверки.
### Конфигурирование Apache
Откройте файл C:wamp64binapacheapache2.4.39confhttpd.conf с помощью текстового редактора. С помощью поиска найдите первое вхождение строки "Require local", и замените параметр "local" на "all granted".
Меняем на
Сохраните изменения и закройте файл.
Откройте файл конфигурации виртуальных хостов C:wamp64binapacheapache2.4.39confextrahttpd-vhosts.conf и замените содержимое тега Directory на следующие параметры:
```
Options +Indexes +Includes +FollowSymLinks +MultiViews
```
```
AllowOverride All
```
```
Order deny,allow
```
```
allow from all
```
Сохраните изменения и закройте файл.
Перезапустите WampServer нажав правой кнопкой мыши в нижней панеле на значок сервера и выберите пункт "Refresh".
### Проверка
C другого компьютера в браузере попытайтесь перейти по адресу:
```
/index.html
```
где ip-address - адрес вашего Windows Server. Его можно узнать в панели управления сервером Serverspace.
Например:
### Настройка phpMyAdmin
На своем локальном хосте на главной странице WampServer в меню "Tools" выберете "phpmyadmin", или перейдите по ссылке http://localhost/phpmyadmin/ в браузере.
В открывшемся окне введите значения логина и пароля по умолчанию:
Логин: root
Пароль: оставьте поле пустым
После авторизации вы можете изменить пароль для пользователя root, а также добавить новых пользователей. Для этого перейдите во вкладку "Учетные записи пользователей".
Для добавления пользователя перейдите по ссылке "Добавить учетную запись пользователя". Чтобы изменить пароль для уже существующих пользователей выберите действие "Редактировать привилегии", далее "Изменить пароль".
Сохраните изменения и перезапустите WampServer нажав правой кнопкой мыши в нижней панеле на значок сервера и выберите пункт "Refresh".
Веб-сервер готов к работе.
https://serverspace.uz/support/help/dobavlenie-pravila-v-windows-firewall.mdРассмотрим процесс добавления новых правил в Брандмауэре Windows (Firewall) на примере портов 80 и 443, используемых веб-сервером. Пошаговая инструкция.
В этой статье мы рассмотрим процесс добавления новых правил в Брандмауэре Windows на примере портов 80 и 443, используемых веб-сервером.
Windows Firewall - это программа, созданная для защиты компьютера от нежелательных внешних подключений. Добавление нового правила поможет настроить защиту и позволит компьютеру пропускать доступ к необходимым приложениями и сервисам.
Откройте "Панель управления" и найдите раздел "Системная и безопасность". Затем кликните на "Windows Firewall". Альтернативный способ - нажмите сочетание клавиш Win + R и введите команду firewall.cpl.
-
Настройки Windows Firewall
- Создайте новое правило
Кликните на "Действия" в разделе Windows Firewall и выберите "Создание нового правила". В открывшемся окне выберите нужные параметры, включающие порт, сервис или приложение для использования правил и установите желаемый тип подключений (частные, общественные или доменные).
-
Добавьте название правила. После выбора параметров, введите название нового правила для возможности быстрого поиска в будущем.
- Закончите установку нового правила.
В заключение, настройка Windows Firewall способствует усилению защиты компьютера от нежелательных соединений. Добавив новое правило в Firewall, вы можете пропускать доступ к желаемым приложениям и сервисам, делая компьютер более защищенным. Теперь заданные порты смогут принимать подключения извне.
https://serverspace.uz/support/help/backing-up-using-the-windows-server-backup-component.mdНастройка Windows Server Backup - встроенного компонента семейства операционных систем Windows Server, предназначенного для создания резервных копий ОС.
Резервное копирование важной информации - полезная привычка в системном администрировании, позволяющая сэкономить ценное время. Рассмотрим как избавить себя от мучений в час "X" с помощью компонента Windows Server Backup.
Windows Server Backup - встроенный компонент семейства операционных систем Windows Server предназначенный для создания резервных копий ОС и работы с ними.
Приступаем к настройке.
Из меню Пуск запускаем Диспетчер серверов.
В открывшемся окне "Диспетчер серверов" выбираем "Добавить роли и компоненты".
В открывшемся окне мастера добавления ролей и компонентов, в левой части окна, выбираем "Тип установки", в правой - "Установка ролей или компонентов" и кликаем по кнопке "Далее".
В обновленном окне, на этапе выбора сервера, выбираем из пула текущий. Нажимаем "Далее".
В обновленном окне мастера, в левой его части, кликаем по "Компоненты". В центральной части окна, в основной части окна, выбираем "Система архивации данных Windows Server". Кликаем по кнопке "Далее".
На этапе подтверждения кликаем по кнопке "Установить".
Дожидаемся окончания процесса установки.
По окончании, нажимаем кнопку "Закрыть".
Окно "Диспетчер серверов" остается открытым. В верхней правой части выбираем "Средства". В открывшемся меню, выбираем "Система архивации данных Windows Server".
В открывшемся окне "wbadmin", в левой части, выбираем "Локальная архивация", в правой части станут доступны действия с локальной архивацией. Настроим резервное копирование по расписанию - выбираем "Расписание архивации...".
В открывшемся окне мастера расписания активации, на начальном этапе, кликаем по кнопке "Далее".
Следующим шагом следует выбрать тип конфигурации - весь сервер или что-то конкретное. Создадим копию всего сервера. Кликаем "Далее".
Теперь необходимо определиться сколько раз в день делать резервную копию и в какое время. Слишком часто это делать не рекомендуется. Также, лучше настроить резервное копирования на конец рабочего дня или задолго до его начала. В нашем случае пусть будет 21:00. Нажимаем "Далее".
Теперь выбираем "куда" будет сохраняться резервная копия. Параметр имеет смысл оставить рекомендуемый системой. При желании, можно выбрать и сохранение в сетевую папку, но важно помнить, что процесс будет сильно зависеть от скорости локальной сети. Жмем "Далее".
В обновленном окне мастера, следует выбрать диск назначения. Кликаем по кнопке "Показать все доступные диски...". Предварительно вам необходимо создать дополнительный диск для бэкапов в разделе "Настройки" вашего сервера, вкладка "Диски".
В открывшемся дочернем окне, будут показаны другие (несистемные) диски. Устанавливаем галочку напротив необходимого носителя.
Важно! Резервные копии рекомендуется выполнять на физический, а не логический диски.
Кликаем по кнопке "OK".
Выбранный диск добавится в общий список доступных дисков. Отмечаем его галкой и нажимаем кнопку "Далее".
Система уведомит о намерении отформатировать выбранные ранее диски. Отвечаем нажатием на кнопку "Да".
На этапе подтверждения операций, если все действия корректны, нажимаем кнопку "Готово".
После непродолжительного форматирования диска программа уведомит об успешном создании события в планировщике, а также укажет дату первого выполнения резервного копирования. Кликаем по кнопке "Закрыть".
Результат выполнения резервного копирования можно посмотреть в центральной части окна wbadmin.
Рассмотрим восстановление из резервной копии.
Все в том же окне wbadmin, в правой его части, кликаем по "Восстановление...".
В окне мастера восстановления, выбираем место хранения архива с резервной копией. Выбираем "Этот сервер" и кликаем по кнопке "Далее".
Следующим шагом выбираем дату создания резервной копии и кликаем "Далее".
В обновленном окне, предстоит выбрать "Что нужно восстановить", например, "Файлы и папки". Нажимаем "Далее".
Выбираем все файлы и каталоги, располагающиеся на диске "C:". Нажимаем кнопку "Далее".
На следующем этапе необходимо определиться что делать с файлами, если таковые уже существуют. Выбор данного действия остается за системным администратором. Мы будем перезаписывать эти файлы. Кликаем "Далее".
На следующем шаге проверяем каталоги, которые будут восстановлены. В случае, если все указано верно, кликаем "Восстановить".
Дожидаемся окончания процесса восстановления. По окончании нажимаем кнопку "Закрыть".
Важно! Процесс может занять некоторое время.
https://serverspace.uz/support/help/active-directory-struktura-hranilisha.mdПодробный обзор как устроена структура хранилища Active Directory. Домены и леса, DNS, схема, хранилище данных.
У многих, кто впервые сталкивается с Active Directory возникает вопрос "что это такое". Ответим на этот вопрос, а также разберемся с терминологией и структурой хранилища.
## Терминология
| Сервер | Компьютер, выполняющий одну или несколько ролей в домене. |
| --- | --- |
| Контроллер домена | Сервер, на котором расположен каталог. Задача контроллера - обслуживание запросов пользователей к каталогу. Также, контроллер домена может выступать в качестве одной из FSMO-ролей (Владелец схемы, владелец доменных имен и прочее) |
| Домен | Минимальная структурная единица Active Directory (состоит из пользователей, принтеров, компьютеров и прочих ресурсов) |
| Дерево доменов | Иерархическая система доменов с единым корнем - корневой домен. |
| Лес доменов | Множество деревьев доменов, находящихся в различной форме доверительных отношений. |
## Что же такое AD?
Зачастую технология Active Directory используется системными администраторами для хранения и организации объектов сети в защищенную логическую иерархическую структуру, например, пользователей, принтеров, компьютеров, внешних хранилищ и прочих ресурсов.
Домены и леса - основа логической структуры. Для обеспечения независимости данных и сервисов (но не их изоляция), а также оптимизации и репликации, домены можно структурировать в деревья, а затем и в леса. Разделение логических структур от физических может улучшить управляемость системы, снизив затраты на администрирование. Это связано с тем, что на изменения в физическом устройстве не влияют на логическую структуру. В свою очередь, логическая структура используется для контроля к блокам данных.
Хранимые в AD данные могут поступать из различных источников. Для поддержания целостности хранящейся информации, большое количество различных источников данных, а также множество их различных типов, требуют от Active Directory использования некого стандартизированного механизма хранения.
Для хранения информации, объекты в AD используют каталоги. Все объекты определены в схеме. Определения объектов содержат информацию, такую как тип данных и синтаксис. Данную информацию использует каталог, чтобы гарантировать достоверность хранения. Данные сохраняются в каталоге только после определения в схеме. По умолчанию, схема содержит все определения и описания объектов, необходимые для корректной работы AD.
При доступе к каталогу через логическую структуру, состоящую из доменов и леса, реализация каталога происходит через физическую структуру, которая состоит из базы данных. База данных хранится на всех контроллерах домена леса.
Хранилище AD обрабатывает весь доступ к базе данных. В свою очередь, хранилище данных состоит из физических файлов и служб, которые управляют правами доступа, процессами чтения и записи данных внутри БД на жестком диске каждого контроллера.
## Архитектура хранилища и структура Active Directory
**Домены и леса**
Организационные единицы (OU - Organization Unit), домены и леса являются основными элементами логической структуры AD. Лес определяет единый каталог и обозначает границу безопасности. Домены входят в состав Лесов.
**DNS**
DNS применяется для разрешения имен в иерархической архитектуре, которую использует AD.
**СХЕМА (SCHEMA)**
Схема содержит определения объектов, которые используются для их создания, хранящихся в каталоге.
## Хранилище данных (Data Store)
Хранилище данных является частью каталога, который управляет хранением и извлечением данных на каждом контроллере домена.
Более подробно вы можете ознакомиться с материалами на официальном [сайте](https://docs.microsoft.com/ru-ru/windows-server/identity/ad-ds/active-directory-domain-services).
https://serverspace.uz/support/help/resilio-sync.mdРассмотрим, как при помощи Resilio Sync перенести изменения в одном файле на несколько машин. Синхронизация данных, конфигурационных файлов, программ
Какие варианты синхронизации данных, конфигурационных файлов, программ или проектов вам знакомы? Первое что приходит на ум — копирование с сервера на сервер. Второе — различные системы контроля версий ПО.
А что если таких серверов более двух? Рассмотрим как перенести изменения выполненные в одном файле на несколько машин. На помощь приходит решение компании BitTorrent - Resilio Sync.
[step num="1"]
Открываем любой браузер, переходим на официальный [сайт](https://www.resilio.com/individuals-sync/?) проекта.
[/step]
Скриншот №1. Выбор версии продукта (Free)
[step num="2"]
Выбираем желаемую версию продукта. В нашем случае "Бесплатная" (Free).
[/step]
Скриншот №2. Выбор варианта использования (Home)
[step num="3"]
Теперь выбираем желаемый вариант использования. В нашем случае будет выбран "Домашний" (Home) исключительно для ознакомления.
[/step]
[step num="4"]
После загрузки файла, запускаем его.
[/step]
Скриншот №3. Настройки Resilio Sync
[step num="5"]
Если есть желание запускать в качестве службы - ставил галку в соответствующем поле. Кликаем по кнопке Далее.
[/step]
[step num="6"]
Запустится программа Sync.
[/step]
[step num="7"]
Вводим желаемое имя, а также отмечаем галками соответствующие поля, если согласны с условиями. Кликае по кнопке "Начать работу".
[/step]
Скриншот №4. Диспетчер задач
[step num="8"]
Программа перезапустится с функциональным пользовательским интерфейсом. Кликаем по значку "+", чтобы добавить папку для синхронизации.
[/step]
Скриншот №5. Добавление папки
[step num="9"]
В предложенных вариантах выбираем стандартную папку.
[/step]
Скриншот №6. Стандартная папка
[step num="10"]
В открывшемся окне, выбираем папку, например, "Документы". По окончании, кликаем по кнопке "Выбор папки".
[/step]
Скриншот №7. Выбор папки
[step num="11"]
После выбора папки. Программа предложит настроить политики доступа.
[/step]
Скриншот №8. Настройки доступа
[step num="12"]
По окончании настроек, копируем ссылку.
[/step]
[step num="13"]
На стороне клиента выполняем те же действия, но на этапе добавления каталога следует выбрать "Введите ключ или ссылку".
[/step]
Скриншот №9. Выбор действия
[step num="14"]
В новом окне вставляем ссылку и кликаем по кнопке "Далее".
[/step]
Скриншот №10. Вставляем ссылку
[step num="15"]
В обновленном окне указываем по какому пути следует располагать принимаемые файлы. Для удобства указания пути, можно кликнуть по кнопке "Изменить". По окончании настроек кликаем по кнопке "Подключить".
[/step]
[step num="16"]
На первоначальной машине появится запрос на разрешения действия.
[/step]
Скриншот №11. Запрос на разрешения действия
[step num="17"]
Если разрешаем доступ - кликаем по галке.
[/step]
[step num="18"]
Теперь добавленные файлы в каталог будут синхронизированы между машинами.
https://serverspace.uz/support/help/ustanovka-gitlab-na-ubuntu.mdВ статье рассмотрим настройку GitLab под Ubuntu 18.04. GitLab - это система управления репозиториями для Git.
GitLab - это система управления репозиториями для Git. В пакет включен wiki, Web-интерфейс, а также система отслеживания ошибок. Рассмотрим настройку GitLab под Ubuntu 18.04.
**В Serverspace вы можете [создать сервер](https://serverspace.uz/services/cloud-marketplace/gitlab.md) с уже установленным приложением GitLab**.
[step num="1"]
Для удобства работы переходим в режим суперпользователя:
```
sudo su
```
[/step]
[step num="2"]
В самом начале обновляем данные о пакетах в репозитории и компоненты системы:
```bash
apt-get update && apt-get upgrade
```
[/step]
[step num="3"]
Устанавливаем основные пакеты:
```bash
apt-get install ca-certificates curl openssh-server
```
[/step]
[step num="4"]
Если какие-либо компоненты уже установлены, система проигнорирует их.
[/step]
[step num="5"]
Приступаем к установке.
Переходим в каталог /tmp.
```
cd /tmp
```
[/step]
[step num="6"]
Скачиваем установочный скрипт для Debian/Ubuntu:
```bash
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
```
[/step]
[step num="7"]
Выполняем скрипт:
```
bash /tmp/script.deb.sh
```
[/step]
[step num="8"]
Программа установит недостающие пакеты, импортирует gpg-ключи, а также настроит сервер для поддержки репозиториев GitLab.
[/step]
[step num="9"]
Устанавливаем актуальную версию GitLab:
```bash
apt-get install gitlab-ce
```
[/step]
[step num="10"]
В ходе установки будет выкачано около 81 Мб пакетов.
Итоговый результат:
[/step]
[step num="11"]
Выполняем первоначальную конфигурацию:
```
gitlab-ctl reconfigure
```
[/step]
[step num="12"]
Этот процесс полностью автоматизирован. По окончании процесса в консоли будет примерно такая картина.
[/step]
[step num="13"]
Настраиваем межсетевой экран.
[/step]
[step num="14"]
Для того чтобы была возможность подключаться к GitLab извне, необходимо настроить межсетевой экран. Для этого добавляем разрешающее правило для web-порта:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
[/step]
[step num="15"]
Важно! Если 80-порт вас не устраивает по каким-либо причинам, например, на этом сервере уже существует web-служба, тогда можно изменить порт. Для этого отредактируем файл:
```
nano /etc/gitlab/gitlab.rb
```
[/step]
[step num="16"]
Изменяем параметр external_url. После указанного доменного имени через двоеточие (":") указываем номер порта, например 8080. Как пример было:
```
external_url 'http://gitlab.example.com'
```
[/step]
[step num="17"]
Стало:
```
external_url 'http://gitlab.example.com:8080'
```
[/step]
[step num="18"]
При первом переходе по адресу сервера, web-интерфейс предложит установить пароль для учетной записи администратора.
[/step]
[step num="19"]
После ввода пароля и его подтверждения, вы будете перенаправлены на страницу авторизации. Вводим имя пользователя root и пароль из пункта выше.
[/step]
[step num="20"]
Настроим правила регистрации. Переходим в Admin Area.
[/step]
[step num="21"]
Затем, в боковом меню открываем настройки (Settings). Далее General. Напротив пункта Sign-up restrictions кликаем по кнопке Expand. Проверяем наличие галки Sign-up enabled.
Данный параметр разрешает регистрацию.
[/step]
[step num="22"]
Важно! Чтобы пользователи могли получать письма при регистрации на сервере необходимо настроить агент передачи электронной почты.
https://serverspace.uz/support/help/utilita-rsync-dlya-sinkhronizatsii-fajlov.mdИнструкция по использованию утилиты Rsync для удаленной синхронизации файлов и каталогов между VPS, а также на локальной машине Linux
Инструкция по использованию небесполезной утилиты Rsync для синхронизации файлов и каталогов между удаленными серверами, а также на локальной машине на базе операционных систем семейства Linux.
## Что такое Rsync?
Rsync — это remote sync или удаленная синхронизация, является средством удаленной и локальной синхронизации файлов. Он использует алгоритм, который минимизирует объем копируемых данных, перемещая только те части файлов, которые были изменены.
Утилита в основном используется для синхронизации деревьев веб-сайтов от промежуточных до рабочих серверов, а также может использоваться для резервного копирования ключевых областей файловых систем через cron. Rsync помогает легко передавать большие объемы данных, обеспечивая сверхбыстрое и эффективное резервное копирование.
## Основной синтаксис
[step num="1"]
Синтаксис утилиты rsync очень прост и похож на ssh, scp и cp.
[/step]
[step num="2"]
Для создания тестовых директорий и файлов с помощью выполните следующие команды:
```
cd ~
mkdir directory1
mkdir directory2
touch directory1/file{1..50}
```
[/step]
[step num="3"]
В результате в каталоге directory1 появятся 50 пустых файлов. Для просмотра можно выполнить команду:
```
ls directory1
```
[/step]
[step num="4"]
Для синхронизации каталогов directory1 и directory2 на одной операционной системе, введите:
```bash
rsync -r directory1/ directory2
```
[/step]
[step num="5"]
Ключ -r обеспечивает рекурсивную синхронизацию каталогов.
Вместо опции -r чаще всего на практике используют опцию -a. Опция позволяет выполнять рекурсивную синхронизацию, сохраняет символические ссылки, специальные файлы и файлы устройств, время модификации, группу, владельца и права.
[/step]
## Синхронизация удаленной системы
[step num="6"]
Синхронизация с удаленным каталогом выполняется по аналогии с синхронизацией локальных каталогов. Используйте команду в следующем формате:
```bash
rsync -a ~/directory1 username@remote_host:destination_directory
```
[/step]
[step num="7"]
В терминах git данную операцию можно назвать push. Операцию аналогичную pull также можно выполнить:
```bash
rsync -a username@remote_host:/home/username/directory directory1
```
[/step]
## Полезные опции
Rsync предоставляет множество опций для изменения поведения утилиты по умолчанию.
[step num="8"]
Если вы передаете файлы, которые еще не были сжаты, например, текстовые файлы, то включить сжатие можно с помощью опции -z:
```bash
rsync -az source destination
```
[/step]
[step num="9"]
Для отображения процесса синхронизации можно использовать флаг -P:
```bash
rsync -azP source destination
```
[/step]
[step num="10"]
Вывод в консоль будет выглядеть примерно следующим образом:
```
sending incremental file list
file1
0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101)
file10
0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101)
file2
0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=87/101)
```
https://serverspace.uz/support/help/smena-nomera-rdp-v-windows-server-2012.mdПодробная инструкция, как сменить номер службы RDP-порта в операционной системе Windows Server 2012 через редактирование параметров реестра.
RDP **(R**emote **D**esktop** P**rotocol), он же протокол удаленного подключения к рабочему столу, разработанный компанией Microsoft в 1996 году, активно применяется и сегодня. Сложно представить работу в "окнах" через консоль. Данный протокол, по умолчанию, работает на TCP-порту 3389, однако, политика безопасности некоторых организаций может потребовать скорректировать это.
Рассмотрим способ сменить номер службы RDP в Windows Server 2012. Решение данной задачи лежит через редактирование параметров реестра. Просмотр дерева системного реестра выполняется средствами стандартной программы ОС Windows - regedit.
[step num="1"]
Для запуска программы вызываем окно запуска программ сочетанием клавиш **Windows + R**. В открывшемся окне пишем regedit и кликаем по кнопке OK.
[/step]
[step num="2"]
В открывшемся окне "Редактор реестра" переходим по пути:
```
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
```
[/step]
[step num="3"]
В правой части окна обращаем внимание на элемент реестра PortNumber. Двойным кликом открываем окно редактирования параметров.
[/step]
[step num="4"]
В открывшемся окне переключаем систему счисления в Десятичную, указываем значение порта, например, 62000 и кликаем по кнопке OK.
[/step]
При выборе нового порта важно понимать, что новое значение не должно быть таким же, как из уже существующих. Посмотреть список "слушаемых" портов можно командой:
```
netstat -nal
```
Также важно понимать, что порты распределены между системными службами. Таким образом, диапазон портов:
- от 0 до 10213 определяются организацией IANA. Это известные порты и именно этот диапазон используют системные приложения и службы по умолчанию;
- от 1024 до 49151 - зарегистрированные порты, которые также назначаются IANA, но их уже регламентируют для использования в частных сетях;
- от 49152 до 65535 - частные порты, которые могут использоваться любыми приложениями и службами.
[step num="5"]
Теперь следует изменить настройки межсетевого экрана.
Открываем Администрирование. Можно из меню Пуск, но если там отсутствует этот пункт, то Пуск → Панель управления → Система и безопасность → Администрирование → Брандмауэр Windows в режиме повышенной безопасности.
[/step]
[step num="6"]
В открывшемся окне кликаем правой кнопкой мыши по "Правила для входящих подключений". В открывшемся контекстном меню выбираем "Создать правило...".
[/step]
[step num="7"]
В открывшемся окне "Мастер создания правила для нового входящего подключения" создаем правило "Для порта" и кликаем по кнопке "Далее".
[/step]
[step num="8"]
В обновленном окне отмечаем "Протокол TCP" и "Определенные локальные порты", а в поле напротив указываем установленный вами порт ранее (в реестре). В нашем случае 62000. Кликаем по кнопке "Далее".
[/step]
[step num="9"]
В обновленном окне выбираем "Разрешить подключение" и кликаем по кнопке "Далее".
[/step]
[step num="10"]
На следующем этапе необходимо выбрать для каких сетей будет применяться правило. Важно помнить, что если доступ к серверу будет через сеть Интернет, то необходимо указать "Публичный". Кликаем по кнопке "Далее".
[/step]
[step num="11"]
Окно обновится и потребует ввод имени правила и описания к нему. Рекомендуется указывать логически понятные имена и описания для упрощения администрирования. По окончании настроек кликаем по кнопке "Готово".
[/step]
[step num="12"]
Для применения настроек необходимо перезагрузить сервер.
[/step]
[step num="13"]
Для подключения к серверу, по новому порту средствами стандартного RDP-клиента, в поле "Компьютер" следует указывать адрес сервера и через двоеточие указать номер порта для подключения.
https://serverspace.uz/support/help/windows-2016-creating-a-user.mdСоздание учетной записи пользователя в Windows 2016 - через панель управления и через консоль. Предоставление доступа пользователю к RDP
Создание собственной учетной записи для каждого пользователя важный атрибут безопасности сервера. Рассмотрим как добавить пользователя в Windows 2016.
## Способ 1. Традиционный
[step num="1"]
Открываем **Пуск → Панель управления.**
[/step]
[step num="2"]
В открывшемся окне кликаем по **"Учетные записи пользователей".**
[/step]
[step num="3"]
В обновленном окне еще раз кликаем по** "Учетные записи пользователей".
**
[/step]
[step num="4"]
Особенность операционной системы такова, что откроются параметры текущей учетной записи, а нам нужно создать новую. Кликаем по надписи **"Управление другой учетной записью".**
[/step]
[step num="5"]
В нижней части обновленного окна кликаем по** "Добавить учетную запись пользователя".**
[/step]
[step num="6"]
В новом окне** "Добавление пользователя"** следует заполнить все поля:
- имя пользователя;
- пароль;
- подтверждение пароля;
- подсказка к паролю.
[/step]
[step num="7"]
Если пароль не соответствует критериям безопасности, программа об этом уведомит.
[/step]
[step num="8"]
В обновившемся окне кликаем по кнопке **"Готово"**.
[/step]
[step num="9"]
Окно добавления пользователя закроется и в окне** "Управление учетными записями"** появится возможность выбора учетной записи для изменения параметров.
[/step]
## Способ 2. Через консоль управления компьютером
Сочетанием клавиш **"Windows + R" вызываем системное окно "Выполнить"**. В его единственное поле впишем команду mmc.
Откроется пустая консоль оснасток. Для того чтобы появилась возможность создать пользователя, необходимо добавить необходимую оснастку в консоль. Для этого открываем **Файл → Добавить или удалить оснастку...**
В открывшемся окне "Добавление и удаление оснасток", в левой его части, находим "Локальные пользователи и группы". Теперь кликаем по кнопке "Добавить".** "Локальные пользователи и группы"** переместится в секцию **"Выбранные оснастки"**.
Сразу после действия выше, откроется окно** "Выбор целевого компьютера"**. Выбираем параметр "Локальный компьютер (на котором запущено окно этой программы консоли)", обычно этот параметр установлен по умолчанию. Кликаем по кнопке** "Готово"**.
Окно закроется. В оставшемся окне кликаем по кнопке "OK".
Окно "Добавления и удаления оснасток" закроется. Останется только окно Консоль 1. В левой части окна развернем деров "Локальные пользователи и группы", затем кликнем по папке "Пользователи". В основной части окна, кликаем правой кнопкой мыши и в контекстном меню выбираем **"Новый пользователь"**.
В открывшемся окне "Новый пользователь" важными для заполнения являются поля:
- Пользователь;
- Полное имя;
- Пароль;
- Подтверждение пароля.
Рекомендуем понятно заполнить поле **"Описание"**.
Важно обратить внимание на параметр **"Требовать смены пароля при следующем входе в систему"**. Галка устанавливается по умолчанию. Таким образом, когда администратор передает пароль пользователю, при первом входе, операционная система потребует от пользователя указать новый пароль для входа в систему.
Кликаем по кнопке** "Создать"**.
Результат будет примерно таким.
## Разрешаем удаленное подключение
Изначально планировалось чтобы созданный пользователь имел возможность подключения к удаленному рабочему столу на этом сервере. Предоставим эту возможность.
### Способ 1. Через консоль сервера
Из способа выше, все в том же окне "Консоль 1", кликаем по созданному пользователю правой кнопкой мыши. В открывшемся контекстном меню выбираем пункт "Свойства".
Открываем вкладку **"Членство в группах"** и кликаем по кнопке "Добавить".
В окне выбора группы кликаем по кнопке **"Дополнительно"**.
В правой части обновленного окна кликаем по кнопке** "Поиск"**. В поле "Результаты поиска" следует выбрать** "Пользователи удаленного рабочего стола"** двойным кликом.
В окне выбора групп кликаем по кнопке "OK".
В окне свойств учетной записи появится соответствующее членство в группах. Закрываем окно кликом по кнопке "OK"
### Способ 2
Рассмотрим альтернативный способ предоставления возможности доступа к удаленному рабочему столу. Открываем меню Пуск и выбираем Панель управления.
В открывшемся окне, кликаем по **"Система и безопасность"**.
В обновленном окне кликаем по **"Система"**.
В левой части нового окна кликаем по **"Настройка удаленного доступа"**.
В открывшемся окне** "Свойства системы"** переходим на вкладку "Удаленный доступ" и кликаем по кнопке "Выбрать пользователей".
В открывшемся окне кликаем по кнопке **"Добавить"**
В окне выбора пользователей кликаем по кнопке** "Дополнительно.."**
В обновленном окне кликаем по кнопке **"Поиск"**, а в нижней части окна, где результаты поиска, находим нужного нам пользователя. Выбираем его двойным кликом мыши.
В окно выбора пользователя добавится строка с логином и на каком сервере находится пользователь. Если все правильно - кликаем по кнопке "OK".
В окне** "Пользователи удаленного рабочего стола" **проверяем пользователей и по окончании кликаем по кнопке "OK".
Теперь можно пробовать подключаться.
Запустить **"Подключение к удаленному рабочему столу"** возможно через меню Пуск → Стандартные - Windows → Подключение к удаленному рабочему столу. Возможно, данная программа будет находиться на "плитке" справа.
Откроется окно программы. В нем необходимо ввести IP-адрес удаленной машины или ее доменное имя. И кликаем по кнопке **"Подключить"**.
Удаленный компьютер запросит имя пользователя и пароль, вводим их и кликаем по кнопке "OK".
https://serverspace.uz/support/help/using-ps-command-to-view.mdСерверы с предустановленной ОС семейства Linux идут без графического интерфейса. Расскажем про утилиту PS, которая отвечает за просмотр процессов на экране пользователя.
Серверы с предустановленной ОС семейства Linux идут без графического интерфейса. Для работы и настройки используют терминал. Расскажем про одну из утилит, которая отвечает за просмотр процессов. В качестве примера рассмотрим Ubuntu Server 18.04.
### Что такое PS
Системная утилита PS отвечает за отображение процессов на экране пользователя. Совместно с ней используются команды more, less и grep для фильтрации.
PS доступна в любом дистрибутиве серверной ОС Linux. Запускается через команду PS:
Скриншот №1. Утилита PS.
Где первый столбец означает идентификатор процесса (PID), второй – его наименование. Третий отображает процессорное время, затраченное сервисом, а четвертый – приложение, которое его запустило.
### Синтаксис PS
Команда работает со следующими дополнительными ключами.
[step num="1"]
Ключ –e (-A). Выводит на экран перечень всех процессов, которые запущены на сервере.
```
ps –e
```
[/step]
[step num="2"]
Опция –d покажет системному администратору все процессы, за исключением так называемых "лидеров". Лидерство – это когда один процесс запускает другие. При запуске процесса с данным ключом пользователь не увидит первый сервис, но ему покажут зависимые от него.
```
ps –d
```
[/step]
[step num="3"]
Ключ –N меняет значения опции с точностью до наоборот. Возьмем для примера предыдущий пункт. Если необходимо увидеть только лидеров, то после ключа D вводим N.
```
ps –d –N
```
[/step]
[step num="4"]
Для отображения сервисов, которые запущены в текущей терминальной сессии, используем букву T, а для просмотра только работающих в данный момент – r.
[/step]
### Сортировка
Рассмотрим возможности утилиты PS как фильтра. Если требуется отобразить информацию о конкретном сервисе, то указываем его идентификатор (PID).
```
ps 1721
```
**Важно!** Если требуется показать несколько процессов, то указываем PID каждого через запятую.
[step num="5"]
Администраторы не запоминают идентификаторы каждого процесса, но помнят наименования. Соответственно, для поиска конкретного сервиса указываем имя через специальный ключ.
```
ps –C bash
```
[/step]
[step num="6"]
Другой способ сортировка – использовать имя группы. Для этого используется ключ –G или –Group.
```
ps --Group users
```
[/step]
[step num="7"]
Альтернативный вариант: совместить поиск по идентификатору группы. За это отвечает опция –g либо –group.
[/step]
**Важно!** Ключи –G и –g отличаются только написанием: заглавная и прописная, но они выполняют разные функции.
[step num="8"]
Чтобы просмотреть перечень процессов, которые запустил конкретный пользователь, используем функцию –U.
```
ps –U name_user
```
[/step]
, где user_name – учетное имя, для которого проводится выборка.
**Важно!** Если требуется отображать процессы, которые запустил пользователь, то берем его имя в прямые кавычки.
### Дополнительные возможности
[step num="9"]
Как было показано выше, PS по умолчанию выводит краткую информацию о процессах. Чтобы получить подобное описание, используем ключ –eF.
```
ps –eF
```
Добавится информация о размере, который забирает сервис из оперативной памяти, временной интервал работы, идентификатор учетного имени, под которым запущен процесс и другие данные.
[/step]
[step num="10"]
Чтобы финализировать информацию используют ключ --sort совместно с дополнительными опциями, которые проводят сортировку по значениям, например, %mem, cp, comm и др.
```
ps –eF --sort
```
[/step]
, где option – один из многочисленных ключей.
Подробная информация доступна в справочной службе команды PS.
[step num="11"]
Ключи less и more регулируют размеры страницы в терминале, т.е. позволяет смотреть под одной странице за каждое нажатие клавиши.
[/step]
[step num="12"]
Команда grep отбирает данные, которые содержат определенное слово, например:
```
Ps –eF | grep nginx
```
[/step]
[step num="13"]
После запуска команды в окне терминала отобразится информация о всех строках, содержащих слово nginx.
https://serverspace.uz/support/help/ustanovka-graylog-na-ubuntu-18-04.mdИнструкция по установке централизованного сборщика логов и сообщений Graylog на VPS с ОС Ubuntu 18.04. Обновление системы и установка Oracle JDK. Установка Elasticsearch. Подключение к web-интерфейсу Graylog.
Описание установки системы сбора логов Graylog на виртуальный сервер под управлением операционной системы Ubuntu 18.04.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением MongoDB**.
### Что такое Graylog?
В крупных корпорациях, как правило, одновременно работает много систем и приложений, что усложняет ведение журнала ошибок. Для эффективного управления этими записями используются специализированные инструменты для их централизации.
Graylog — это профессиональное приложение, которое предоставляет унифицированную и централизованную систему сообщений из разных источников: операционной системы, приложений, информационных систем с целью централизации и упрощения администрирования журналов ошибок или логов.
### Предварительные требования
- Для работы Graylog рекомендуемый объем оперативной памяти на виртуальном сервере - не менее 2Gb.
- Метаданные Graylog хранятся в СУБД MongoDB, для ее установки можно воспользоваться нашей [инструкцией](https://serverspace.uz/support/help/ustanovka-mongodb-na-ubuntu-18-04/).
### Обновление системы и установка Oracle JDK
Обновите локальную базу пакетов:
```bash
apt update && apt upgrade
```
Далее установите OpenJDK и дополнительные пакеты:
```bash
apt install apt-transport-https uuid-runtime pwgen openjdk-8-jre-headless
```
### Установка Elasticsearch
Graylog требует установки Elasticsearch, масштабируемого приложения, которое позволяет выполнять поиск данных в реальном времени, а также хранить и анализировать.
Выполните базовую установку Elasticsearch. Сначала необходимо загрузить GPG-ключ:
```bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
```
Загрузите deb-пакет:
```
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
```
Обновите локальную базу пакетов и установите Elasticsearch:
```bash
apt update && apt install elasticsearch
```
Далее разрешите запуск приложения после загрузки ОС и запусти его:
```bash
systemctl enable elasticsearch
systemctl start elasticsearch
```
В файле конфигурации необходимо изменить название кластера. С помощью текстового редактора vi откройте следующий файл:
```
nano /etc/elasticsearch/elasticsearch.yml
```
Найдите следующий параметр cluster.name и установите имя кластера:
```
сluster.name: graylog
```
Также в конец файла добавьте следующие строки:
```yaml
script.inline: false
script.indexed: false
script.file: false
```
Сохраните внесенные изменения и перезапустите Elasticsearch:
```bash
systemctl restart elasticsearch
```
### Установка Graylog
С помощью команды wget загрузите пакет graylog:
```bash
wget https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.deb
```
Выполните установку пакета:
```
dpkg -i graylog-2.4-repository_latest.deb
```
Обновите информацию о пакетах и запустите процесс установки Graylog:
```bash
apt update && apt install graylog-server
```
После завершения установки необходимо отредактировать файл конфигурации, чтобы установить в нем пароль. Пароль должен содержать 64 символа, для его генерации рекомендуем использовать pwgen:
```
pwgen -N 1 -s 96
```
В результате, в консоль будет выведена строка, пример:
_iQflncka906AZkfcJtMAuuehAjMoj9MfDiYnrj6NDIFaprVY3jP6rQszcd56MwGT4Ra0ckoxpeZnxbpg2pJPEUTa0qYaNtDw_
Далее с помощью откройте файл конфигурации:
```
vi /etc/graylog/server/server.conf
```
Установите параметру password_secret значение сгенерированного пароля, например:
_password_secret = iQflncka906AZkfcJtMAuuehAjMoj9MfDiYnrj6NDIFaprVY3jP6rQszcd56MwGT4Ra0ckoxpeZnxbpg2pJPEUTa0qYaNtDw_
Далее сгенерируйте хеш для пароля пользователя admin, указав значение пароля:
```
echo -n ваш_пароль | sha256sum
```
В результате будет выведена строка следующего вида:
_6c8ccf159a4b150dc29e7b013b1d04700821a5c44a17f6d85dd6e317f7b4e209 -_
Установите параметру root_password_sha2 значение сгенерированного пароля, например:
_root_password_sha2 = 6c8ccf159a4b150dc29e7b013b1d04700821a5c44a17f6d85dd6e317f7b4e209_
Также заполните параметр root_email:
root_email = "example@domain.com"
В конец файла добавьте следующую строку, указав IP-адрес вашего VPS:
```
elasticsearch_discovery_zen_ping_unicast_hosts = :9300
```
Например:
```
elasticsearch_discovery_zen_ping_unicast_hosts = 121.123.123.121:9300
```
Далее необходимо изменить адрес web-интерфейса и апи, для этого найдите следующие строки и замените IP-адрес на адрес вашего виртуального сервера:
```
web_listen_uri = http://:9000/
```
```
web_listen_uri = http://:9000/
```
_Примечание: при необходимости также можно изменить порт._
Сохраните изменения в файле конфигурации.
Перезапустите сервис для применения изменений:
```bash
systemctl restart graylog-server
```
Проверить статус сервиса можно с помощью следующей команды:
```bash
systemctl status graylog-server
```
### Подключение к web-интерфейсу Graylog
Для подключения к Web-интерфейсу Graylog для начала необходимо открыть соответствующий порт, по умолчанию мы везде используем 9000. Открыть порт можно с помощью [межсетевого экрана прямо в панели управления](https://serverspace.uz/support/help/firewall-configuring-the-server-firewall/) или на уровне сервера с помощью простой утилиты iptables:
```
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
iptables-save
```
После этого в браузере можно перейти по следующей ссылке:
```
:9000
```
Например:
```
121.123.123.121:9000
```
На открывшейся странице введите логин admin и созданный ранее пароль:
Подготовка интерфейса может занять несколько дней:
Теперь вы можете приступать к работе с Graylog:
https://serverspace.uz/support/help/ustanovka-i-ispolzovanie-docker-na-centos.mdКак провести установку платформы Docker и использовать ее на виртуальном сервере VPS с операционной системой Centos 7, подробно расскажем в этой статье.
Ниже рассказано, как провести установку платформы Docker и использовать ее на виртуальном сервере с операционной системой Centos 7.
**Вы можете воспользоваться [инструкцией](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) или [создать сервер](https://serverspace.ru/services/cloud-marketplace/) в Serverspace с уже установленным приложением Docker.**
## Описание платформы
Для того, чтобы системные администраторы и разработчики могли заниматься разработкой, развертыванием и запуском приложений в контейнерах, которые находятся в изоляции друг с другом, была создана платформа Docker.
Контейнеризация – процесс, при котором приложения Линукс развертываются в контейнерах. Идея об изолировании приложений возникла еще при создании первых моделей ПК, а применяться на практике начала только недавно. Популярности контейнеризации поспособствовали высокие темпы развития ПО.
Итак, в чем главные отличия образа от контейнера:
- Под образом подразумевается некий исполняемый пакет, в который включены библиотеки, программный код, конфигурационные файлы, среда выполнения и ее переменные – все, что требуется для открытия приложения.
- Под контейнером подразумевается экземпляр образа. То есть один образ может вмещать в себя сразу несколько контейнеров.
Открыть образы можно в режиме "для чтения". Образы платформы делятся на два вида: дистрибутивы Линукс и сконфигурированное корпоративное ПО, подготовленное к запуску. Вид можно прописать в специальном файле Dockerfile. Он представляет собой файл текстового формата, который может понять только демон Docker. Файл создается для того, чтобы можно было запустить новый образ.
_Обратите внимание: демоном называется компонент Docker, которому поручено выполнять трудные задачи создания, распределения и запуска изображений сразу после поступления команды от Docker-клиентов._
Открыть приложение на платформе можно в несколько шагов:
- Выбрать нужное приложение.
- Описать его в Dockerfile, указать среду для выполнения приложения.
- Сформировать общий файл – образ, который будет включать в себя набор библиотек (без общей системной) и исполняемые файлы. Все элементы войдут в контейнер и станут неизменными при дальнейшей работе.
- Запустить платформу, в которой уже указан образ приложения, использующегося для решения прикладной задачи.
## Как установить Docker
[step num="1"]
Первым шагом станет обновление локальной базы пакетов. Для этого используется команда:
```bash
sudo yum check-update
```
[/step]
[step num="2"]
Чтобы установить последнюю вышедшую версию платформы, потребуется сформировать обращение к официальному репозиторию. Через команду, описанную ниже, можно добавить необходимые репозитории и установить актуальную версию Docker:
```bash
curl -fsSL https://get.docker.com/ | sh
```
[/step]
[step num="3"]
Обратите внимание: администраторам, которые собираются запускать платформу не от имени стандартного пользователя root, нужно будет прописать нового юзера. Внесение пользователя проходит сразу после загрузки группы Docker:
```
sudo usermod -aG docker
```
Полная команда будет выглядеть таким образом:
```
sudo usermod -aG docker cloud
```
[/step]
[step num="4"]
По окончанию загрузку платформы на сервер потребуется запустить демона Docker:
```bash
sudo systemctl start docker
```
[/step]
[step num="5"]
Необходимо убедиться, что запуск демона прошел гладко и никаких предупреждений об ошибках не обнаружено:
```bash
sudo systemctl status docker
```
[/step]
[step num="6"]
Если все хорошо, в окне появится такой текст:
```
docker.service - Docker Application Container Engine
```
```
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
```
```
Active: active (running) since Thu 2018-04-26 14:06:06 MSK; 1min 56s ago
```
```
Docs: https://docs.docker.com
```
```
Main PID: 1601 (dockerd)
```
```
Tasks: 16
```
```
Memory: 40.0M
```
```
CGroup: /system.slice/docker.service
```
```
├─1601 /usr/bin/dockerd
```
```
└─1605 docker-containerd --config /var/run/docker/containerd/conta...
```
[/step]
## Как работать с образами
Команды платформы обладают своим синтаксисом, в котором за названием следуют разные опции и аргументы:
```bash
docker
```
Инструкцию по доступным командам и их описанию можно запустить через короткую команду:
```bash
docker
```
Все образы записаны в [Docker Hub](https://hub.docker.com/). Каждый пользователь сможет вносить свои образы в данный реестр. Многие дистрибутивы Линукс, системы управления базами данных и приложения создают собственные образы в Docker Hub.
Может ли пользователь доставать и вносить образы в реестр проверяется такой командой:
```bash
docker run hello-world
```
При положительном ответе на экране возникнет следующий текст:
```
Unable to find image 'hello-world:latest' locally
```
```
latest: Pulling from library/hello-world
```
```
9bb5a5d4561a: Pull complete
```
```
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
```
```
Status: Downloaded newer image for hello-world:latest
```
```
Hello from Docker!
```
```
This message shows that your installation appears to be working correctly.
```
Для выполнения поиска конкретного образа используется такой синтаксис команды:
```bash
docker search
```
К примеру, чтобы найти образ nginx, следует написать:
```bash
docker search nginx
```
В качестве результата на экран высветятся все доступные пользователю образы:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 8341 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con 1328 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of 547 [OK]
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as p 364 [OK]
kong Open-source Microservice & API Management la 184 [OK]
webdevops/php-nginx Nginx with PHP-FPM 102 [OK]
Произвести загрузку выбранного образа можно при помощи строчки:
```bash
docker pull
```
К примеру, для образа nginx синтаксис будет выглядеть:
```bash
docker pull nginx
```
Выполненная команда выведет на экран загрузку образа:
Using default tag: latest
latest: Pulling from library/nginx
f2aa67a397c4: Downloading [===============> ] 7.13MB/22.5MB
3c091c23e29d: Downloading [================> ] 7.091MB/22.11MB
4a99993b8636: Download complete
По окончанию процесса образ будет загружен на виртуальный сервер. Для его запуска следует воспользоваться опцией run:
```bash
docker run
```
Опция images продемонстрирует образы, которые загружены на сервер:
```bash
docker images
```
Результатом будет служить небольшая таблица со списком:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae513a47849c 8 days ago 109MB
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
## Как работать с контейнерами
Нижеописанная команда поможет на базе образа image сделать новый контейнер example:
```bash
docker run --name -d
```
Обратите внимание: для получения интерактивного доступа к контейнерной оболочке shell используются ключи -i и -t.
Создать контейнер example на базе nginx можно следующей командой:
```bash
docker run --name example -d nginx
```
Опция ps продемонстрирует контейнеры, которые были запущены:
```bash
docker ps
```
Обратите внимание: для просмотра всех существующих контейнеров можно воспользоваться ключом -l.
В результате появится:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b8f970efcc91 nginx "nginx -g 'daemon of" 15 seconds ago Up 13 seconds 80/tcp example
Команда для запуска контейнера в фоновом режиме:
```bash
docker container start
```
К примеру:
```bash
docker container start example
```
Если контейнер функционирует фоново, зайти в него можно при помощи команды:
```bash
sudo docker exec -i -t /bin/bash
```
Как это выглядит на практике:
```bash
sudo docker exec -i -t b8f970efcc91 /bin/bash
root@b8f970efcc91:/data#
```
Команда exit позволит выйти из контейнера, а stop – остановит его работу:
```bash
docker container stop
```
Как выглядит полная команда остановки:
```bash
docker container stop example
```
Для удаления следует воспользоваться опцией rm:
```bash
docker rm -f
```
К примеру:
```bash
docker rm -f example
```
Обратите внимание: чтобы удалить открытые контейнеры без необходимости предварительно их останавливать, следует использовать ключ -f.
Для того, чтобы запустить nginx через определенный порт (для примера берем порт 80) и убедиться в его работоспособности, подойдет следующая команда:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
```
Перед выполнением нужно проверить, что в настройках файрволла открыл доступ к порту 80.
Запуск контейнера example:
```bash
docker run --name example -d -p 80:80 nginx
```
Далее в адресную строку браузера нужно вписать адрес сервера, указав порт. В результате появится следующая страница:
https://serverspace.uz/support/help/ustanovka-hranilisha-next-cloud.mdДавайте рассмотрим установку и настройку облачного хранилища Nextcloud на VPS под Linux. Создание конфигурации Apache. Подключение через браузер. Создание пользователей. Подключение через WebDav.
Ниже подробно рассмотрено, как установить на виртуальный сервер (Линукс) и настроить облачное хранилище Nextcloud, подключить его по протоколу WebDAV.
## Описание хранилища
[Nextcloud Files](https://nextcloud.com/) является облачным хранилищем, его исходный код открыт для публичного доступа, позволяя пользователям синхронизироваться и совместно использовать файлы. Отличается легкостью в освоении и отличной защищенностью. Организации применяют данное хранилище для получения быстрого доступа к файлам, изображениям и электронной документации. Хранилищем могут пользоваться клиенты компании, ее сотрудники и партнерские фирмы. Среди особенностей: возможность работы с контактами, календарными событиями и планировщиком.
Nextcloud предоставляет приложения для самых популярных платформ и набор [платных пакетов](https://nextcloud.com/pricing/) для бизнеса.
## Что нужно для загрузки Nextcloud
[step num="1"]
Чтобы установка хранилища прошла без сбоев, на виртуальном сервере должна стоять операционная система Centos 7 или Убунту, а юзер обладать правами суперпользователя.
Для того, чтобы была возможность пользоваться функциями PHP, необходимы модули XML Writer, ctype, posix, JSON, zlib, XML Reader, mbstring, zip, Simple XML, libxml, GD и другие.
[/step]
Как установить
Рассмотрим, как загрузить хранилище на Убунту версии 16. Процедура проходит одинаково для всех дистрибутивов, различаются только незначительные нюансы.
[step num="2"]
Для начала при помощи wget скачивается папка архива с Nextcloud самой свежей версии. Для примера берется облачное хранилище 13.0.4:
```bash
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.tar.bz2
```
[/step]
[step num="3"]
Понадобится загрузить контрольные суммы SHA265 либо MD5:
```bash
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.tar.bz2.md5
```
[/step]
[step num="4"]
Затем нужно загрузить цифровую подпись:
```bash
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.tar.bz2.asc
wget https://nextcloud.com/nextcloud.asc
```
[/step]
[step num="5"]
Посмотреть, соответствуют ли контрольные суммы, можно такой командой (для MD5 и SHA256):
```
md5sum -c nextcloud-13.0.4.tar.bz2.md5 < nextcloud-13.0.4.tar.bz2
sha256sum -c nextcloud-13.0.4.tar.bz2.sha256 < nextcloud-13.0.4.tar.bz2
```
[/step]
[step num="6"]
Если все хорошо, появится строчка:
```
nextcloud-13.0.4.tar.bz2: OK
```
[/step]
[step num="7"]
Проверка цифровой подписи проходит следующим образом:
```
gpg --import nextcloud.asc
gpg --verify nextcloud-13.0.4.tar.bz2.asc nextcloud-13.0.4.tar.bz2
```
[/step]
[step num="8"]
Затем архив нужно разархивировать:
```bash
tar -xjf nextcloud-13.0.4.tar.bz2
```
[/step]
[step num="9"]
И скопировать в директорию сервера:
```
cp -r nextcloud /var/www
```
[/step]
## Как прописать конфигурацию Apache
Посредством текстового редактора vi создается файл с конфигурацией:
```
vi /etc/apache2/sites-available/nextcloud.conf
```
В нем записывается:
```
Alias /nextcloud "/var/www/nextcloud/" Options +FollowSymlinks AllowOverride All Dav off SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud
```
Обратите внимание: путь к каталогу может быть другим.
Создается символьная ссылка:
```
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
```
Подключаются модули:
```
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod setenvif
```
Следующим шагом нужно поменять право владения:
```bash
chown -R www-data:www-data /var/www/nextcloud/
```
Для сохранения изменений необходимо перезапустить сервер:
```bash
service apache2 restart
```
## Как подключиться к хранилищу через браузер
Чтобы подключиться к Nextcloud, нужно использовать IP-адрес. Для создания учетки администратора потребуется ввести имя юзера и придумать длинный пароль. В конце – кликнуть по кнопке "Завершить установку".
На следующем шаге пользователь увидит окно с каталогами и расположенными в них файлами. Интерфейс легок и понятен.
## Как создавать пользователей
Чтобы добавить еще одного юзера Nextcloud, в окне справа вверху необходимо кликнуть по иконке и через выпадающее меню найти пункт "Пользователи".
Потребуется придумать имя для нового юзера и пароль. По желанию можно указать группу.
После создания в таблице пользователей отобразится новый юзер Nextcloud.
## Как подключиться через WebDav
Для подключения к Nextcloud можно использовать клиент Cyberduck протокола WebDAV. Первым делом потребуется инсталлировать приложение, затем перейти к созданному подключению. В настройках графы протокола указывается WebDAV, для сервера записывается полный адрес (посмотреть его можно через настройки страницы в браузере).
В качестве порта указывается 80. После этого нужно еще раз ввести данные юзера.
После подключения в окне появится новый каталог.
https://serverspace.uz/support/help/perenos-failov-na-vds.mdИспользование RDP-клиента для перенаправления дисков с локального устройства на VPS. Для того, чтобы перенести данные с ПК на веб-сервер, их не нужно копировать по отдельности.
Для того, чтобы перенести данные с ПК на веб-сервер, их не нужно копировать по-отдельности. Есть разнообразные методы решения задачи: к примеру, синхронизировать каталоги либо перенаправить диски с локального устройства на VPS, используя при этом RDP-клиент. Ниже будет описан второй метод переноса информации.
_Обратите внимание: синхронизировать несколько директорий можно посредством BitTorrent._
## Как настроить RDP
[step num="1"]Первым делом потребуется зайти в параметры RDP-файла (кликнуть по нему ПКМ, вызвать контекстное меню и нажать "Изменить") и включить возможность проброса локальных данных к VPS.[/step]
[step num="2"]Появится меню, в левом нижнем углу нужно кликнуть по параметрам и открыть вкладку с локальными ресурсами. Для дальнейших настроек надо кликнуть на "Подробнее".[/step]
[step num="3"]Откроется окно, графу "Диски" необходимо полностью развернуть. В появившемся списке отмечаются галочками разделы и носители, предназначенные для проброса на [VPS](https://serverspace.uz/services/vps-server.md).[/step]
[step num="4"]Проверить изменения можно через раздел "Мой компьютер", расположенный на виртуальном сервере.[/step]
Подборки VPS/VDS: [аренда VPS в Европе](https://serverspace.uz/services/vps-server/europe/), [аренда VPS на Linux](https://serverspace.uz/services/vps-server/linux.md) и [Windows](https://serverspace.uz/services/vps-server/windows.md).
https://serverspace.uz/support/help/problemi-pri-podkluchenii-po-rdp.md6 способов решения проблем с подключениями по RDP к Windows Server: не работает RDP, не подключается рабочий стол, ошибка при соединении
Большинство проблемных случаев с подключениями по RDP можно решить одним из ниже приведенных способов.
[step num="1"]
Прочтите внимательно [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_windows_serveru/) к Windows серверу.
[/step]
[step num="2"]
Проверьте, не скопировался ли лишний символ перед или после пароля (например, пробел – его наличие трудно заметить).
[/step]
[step num="3"]
Посмотрите через панель управления, включен ли требуемый сервер.
[/step]
[step num="4"]
Проверьте чтобы в настройках подключения не было указано домена.
[/step]
[step num="5"]
Если компьютер включен в корпоративную сеть, проверьте отсутствие блокировки на порте 3389 (зачастую администраторы корпоративных сетей блокируют его).
[/step]
[step num="6"]
Для более тяжелых случаев, когда предыдущие методы не дают результатов, нужно зайти в Пуск и в строчке Выполнить написать "cmd" — откроется командная строка. В ней напишите "ping ":
-
- Ответ "Reply from IP-адрес: bytes=xx time=xms TTL=xxx" — попробуйте еще раз выполнить способы, описанные ранее;
- Ответ "Превышен интервал времени для запроса" — обратитесь к местному провайдеру, причиной ошибки стало отсутствие сетевого доступа.
https://serverspace.uz/support/help/dobavleni-diskovogo-prostranstva-windows-server-2016.mdПошаговая инструкция по увеличению размера дискового пространства в ОС Windows Server. Длительность: 7 шагов, 10 минут.
Для увеличения размера пространства требуется совершить несколько последовательных операций в панели и только после них пользоваться дисковым пространством станет возможно на уровне ОС Windows Server.
Вам необходимо:
- [step num="1"]Открыть выпадающее меню и зайти в Computer Management. Среди пунктов выбрать
Server Manager, кликнуть по Инструментам (Tools) и найти Computer.[/step]
- [step num="2"]В списке, расположенном слева, будет пункт Storage. Кликните по нему, откроется два подпункта, из которых необходимо выбрать Disk Management. После обновления окна (клавиша F5) появится неразмеченная область. В примере зона "Unallocated" имеет черный цвет, ее размер составляет 40 Гб.[/step]
- [step num="3"]Правой кнопкой мышки кликните по системному диску из списка. В выпадающем контекстном меню выберите команду Extend Volume.[/step]
- [step num="4"]Сразу появится окно Extend Volume Wizard.[/step]
- [step num="5"]В окне нужно выставить, какого размера должна быть неразмеченная область. Чаще всего пользователи выбирают все пространство, которое сейчас свободно. После выставления размера кликните по кнопке Next.[/step]
- [step num="6"]Подтвердить изменения можно кнопкой Finish.[/step]
- [step num="7"]Проверить результат можно в Computer Manager – в окне не должна появиться неразмеченная область.[/step]
https://serverspace.uz/support/help/checklist-bezopasnogo-windows-server.mdНастроим безопасность Windows сервера: настройка межсетевого экрана, учетная запись администратора, настройка политики безопасности
Вопрос безопасности сервера был и будет актуальным. Рассмотрим базовые правила обеспечения безопасности серверов под управлением ОС семейства Window Server.
**Регулярно устанавливать обновления операционной системы и установленного программного обеспечения.**
В быту существует мнение, что Windows не нуждается в обновлениях и их вообще лучше отключить, якобы "чтобы система не тормозила". Это одна из самых главных ошибок. Обновления важно устанавливать своевременно, особенно критические. Упрощает эту задачу специальная утилита, с которой можно ознакомиться на официальном сайте [Центра обновления Windows](https://www.microsoft.com/ru-ru/itpro/windows).
Также важно поддерживать в актуальном состоянии установленное сопутствующее программное обеспечение, в том числе СУБД, различные фреймворки и прочее.
**Использовать ПО из проверенных источников.**
Рекомендуем перед загрузкой установочного пакета программного обеспечения, в том числе и Open Source, убедиться в надежности источника. Нередко бывает так, что визуально похожий на официальный сайт ресурс, распространяет уже скомпрометированное ПО. В пакет установки может быть добавлен файл с вредоносным кодом.
**Грамотно настроить межсетевой экран.**
Важно понимать, что сервер доступен из сети Интернет. По этой причине, ОС должна быть защищена любым устройством выполняющим функции файрволла. Если подобных устройств нет, то Брандмауэр Windows будет последней надеждой на защиту от несанкционированных подключений к серверу.
Чем меньше TCP/UDP портов доступно извне, тем меньше шансов провести атаку на сервер. В этом вопросе важно разобраться что блокировать. Если речь идет о web-сервере, то доступными необходимо оставить 80 и 443 TCP-порты (эти порты служба слушает по умолчанию).
Это были публичные порты, но не стоит забывать, что существуют порты, доступ к которым должен предоставляться по принципу "белого" списка, т.е. только определенному кругу лиц. Пример портов:
- 3389 - RDP (Remote Desktop Protocol);
- 135-139 - NetBIOS;
- 445 - Samba (общий доступ к файлам и папкам);
- 5000 - 5050 - FTP в пассивном режиме;
- 1433 - 1434 - порты SQL;
- 3306 - стандартный порт MySQL;
- 53 - DNS
Создать правило не сложно. Открываем **Пуск → Панель управления → Система и безопасность → Администрирование → Брандмауэр Windows в режиме повышенной безопасности.**
В окне программы кликаем правой кнопкой мыши по "**Правила для входящих подключений"**. В открывшемся контекстном меню выбираем "**Создать правило..**.".
**Переименовать учетную запись администратора.**
**Использовать несколько аккаунтов администратора.**
Если администрированием сервера занимается несколько специалистов, следует создать индивидуальную учетную запись для каждого. Подобная мера позволит выследить виновника в произошедшем.
**Использовать учетную запись пользователя с ограниченными правами.**
Для выполнения повседневных задач не всегда требуется использовать учетную запись с правами администратора. Рекомендуем создать учетную запись с ограниченными правами. В случае если учетная запись будет скомпрометирована, злоумышленнику придется постараться чтобы получить права администратора. Также, подобная мера может помочь спасти сервер от собственных действий.
В случае несанкционированного доступа под учетной записью администратора, злоумышленник получит полный доступ к системе.
**Ограничить общий доступ к файлам и папкам, включить защиту паролем.**
Мы настоятельно не рекомендуем предоставлять подключение к общим каталогам анонимным пользователям и пользователям без пароля. Даже если файлы, хранящиеся в папках, не представляют никакой ценности, ничто не мешает злоумышленнику подменить файл на файл с вредоносным содержимым. Последствия такой подмены могут быть самыми разными.
Кроме использования парольной защиты, рекомендуем ограничить разных пользователей в уровне доступа как к файлам, так и папкам (чтение, запись, изменение).
**Включить запрос пароля для входа в систему при выходе из режима ожидания, а также отключение сессий при бездействии.**
При использовании физического сервера (не удаленного и не виртуального), рекомендуется включить запрос пароля пользователя при выходе из режима ожидания. Данный параметр настраивается в панели управления: **Панель управления → Все элементы панели управления → Электропитание.**
Также важно установить лимиты бездействия пользователя, а "по возвращении" запросить пароль. Это исключит возможность входа другого лица от имени пользователя, в случае если тот отлучился или забыл закрыть RDP-сессию. Чтобы настроить этот пункт, следует воспользоваться настройкой локальных политик** secpol.msc**.
**Использовать Мастер настройки безопасности.**
Мастер настройки безопасности ([SCW – Security Configuration Wizard](https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/cc754997(v=ws.11))) позволяет создавать XML-файлы политик безопасности, которые впоследствии, можно перенести на другие серверы. Эти политики включают в себя не только правила использования сервисов, но и общие параметры системы и правила Firewall.
**Корректно настроить политики безопасности.**
Кроме первоначальной настройки групповых политик Active Directory, периодически следует проводить их ревизию и повторную настройку. Это один из основных способов обеспечения безопасности Windows-инфраструктуры.
Для удобства управления групповыми политиками, можно воспользоваться не только встроенной в Windows Server утилитой "gpmc.msc", но и предлагаемую Microsoft утилиту "Упрощенные параметры настройки безопасности" ([SCM-Security Compliance Manager](https://technet.microsoft.com/ru-ru/library/cc677002.aspx)).
**Использовать локальные политики безопасности.**
Кроме использования групповых политик безопасности Active Directory следует использовать и локальные политики, которые затрагивают права как удаленных пользователей, так и локальные аккаунты.
Для управления локальными политиками вы можете использовать соответствующую оснастку "Локальная политика безопасности", вызываемую командой secpol.msc из Пуск -> Выполнить (клавиша Windows + R).
**Защитить службу удаленных рабочих столов (RDP).**
1. Блокировать RDP-подключения для пользователей с пустым паролем.
Наличие пользователей без паролей недопустимо, но если этого миновать не удается, то можно хотя бы запретить подключение к RDP. Для этого открываем **Пуск → Средства администрирования**.
В открывшемся каталоге, запускаем **Локальная политика безопасности**.
В окне локальный политик безопасности, слева, выбираем **Локальные политики → Параметры безопасности**. В основной части окна, находим "**Учетные записи**: Разрешить использование пустых паролей только при консольном входе".
Выбираем этот пункт двойным кликом и переводим переключатель в положение "**Отключен**". Нажимаем кнопку "**OK**".
2. Поменять стандартный TCP-порт RDP.
Замена номеров TCP-портов стандартных сервисов на другие значения, вполне может повысить безопасность сервера, главное не забыть новый номер порта.
Для замены порта:
1. открываем редактор Реестра Windows - Windows + R
2. На всякий случай, создаем резервную копию реестра (Файл → Экспорт)
3. Разворачиваем ветку **HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp** и, в правой доле окна, находим параметр PortNumber.
4. Открываем параметр двойным кликом мыши. В открывшемся окне выбираем **Систему исчисления: Десятичная**, указываем новое значение порта, нажимаем кнопку "OK" и закрываем окно редактора реестра.
5. Чтобы была возможность подключиться к серверу, создаем соответствующее правило для Брандмауэра Windows. Кликаем правой кнопкой мыши по "**Правила для входящих подключений**", в контекстном меню выбираем "**Создать правило**".
В окне "**Мастера**", выбираем "**Для порта**"
Затем выбираем "**Протокол TCP**", "**Определенные локальные порты**" и указываем новый номер порта.
Следующим шагом выбираем "**Разрешить подключение**"
Настраиваем для каких сетей будет действовать правило, нужное отмечаем галками.
На итоговом шаге, указываем название правила и описание к нему.
6. Перезагружаем сервер чтобы применить изменения.
7. Для подключения к удаленному рабочему столу теперь используем IP-адрес или доменное имя, а через двоеточие указываем порт.
**Настроить шлюз службы терминалов.**
Служба "Шлюз TS (служб удаленных рабочих столов)" позволяет обезопасить подключение к удаленному рабочему столу путем использования протокола HTTPS(SSL), тем самым избавляя системного администратора от необходимости настройки VPN. Инструмент способен комплексно контролировать доступ к машинам, а также устанавливать правила авторизации и требования к удаленным пользователям, например:
- Пользователи или группы пользователей, которым разрешено подключаться к внутренним сетевым ресурсам;
- Сетевые ресурсы, к которым могут подключаться пользователи;
- Должны ли клиентские компьютеры иметь членство в Active Directory;
- Необходимо ли клиентам использовать проверку подлинности на основе смарт-карт или пароля, или они могут использовать один из вышеперечисленных способов аутентификации.
Логика работы работы шлюза удаленных рабочих столов требует использования отдельной машины. Однако, не запрещает использовать самостоятельную виртуальную машину.
**Установим службу шлюза TS.**
1. Открываем Диспетчер серверов.
2. Выбираем "**Добавить роли и компоненты**"
3. На этапе "**Тип установки**", выбираем "**Установка ролей и компонентов**".
4. Следующим шагом выбираем текущий сервер.
5. Роль сервера - **Служба удаленных рабочих столов**.
6. Переходим к службе ролей. Выбираем "**Шлюз удаленных рабочих столов**".
7. Переходим к этапу подтверждения, нажимаем кнопку "**Установить**".
**Устанавливаем SSL-сертификат.**
После установки роли, в окне Диспетчера серверов, выбираем **Средства → Remote Desktop Services → Диспетчер шлюза удаленных столов**.
В открывшемся окне, в левой его части, нажимаем по значку сервера. В основной части окна, выбираем "**Просмотр и изменение свойств сертификата**".
В открывшемся окне "**Свойства**" переходим на вкладку "**Сертификат SSL". Выбираем пункт "Создать самозаверяющий сертификат**", нажимаем кнопку "**Создать и импортировать сертификат**".
Если у вас есть созданный ранее сертификат, можно воспользоваться одним из пунктов ниже, в зависимости от того, кем он был выдан.
В новом окне следует проверить параметры. Если все верно - нажимаем "OK".
Новым окном система оповестит об успешном создании сертификата и выдаст путь до файла.
Переходим к окну свойств сервера. Нажимаем "**Применить**".
**Остается только настроить групповые политики.**
В окне "**Диспетчер шлюза удаленных рабочих столов**", в левой колонке, раскрываем ветку сервера, выбираем "**Политики**", затем "**Политики авторизации подключений**". В правой колонке того же окна, выбираем "Создать новую политику" → "**Мастер**".
В новом окне выбираем "**Создать только политику авторизации подключений к удаленным рабочим столам**", нажимаем "**Далее**".
Указываем желаемое имя для политики. Мы рекомендуем указывать имя латиницей.
Следующим шагом будет выбор удобного метода аутентификации - пароль или [смарт-карта](https://docs.microsoft.com/ru-ru/windows/win32/secauthn/smart-card-authentication). Оставляем отмеченным только "**Пароль**". Нажимаем кнопку "**Добавить группу...**"
В окне выбора групп кликаем по кнопке "**Дополнительно**".
Размер окна изменится. Кликаем по кнопке "**Поиск**". В найденных результатах выбираем "**Администраторы домена**" и нажимаем кнопку "**OK**".
В окне выбора группы проверяем выбранные имена объектов и нажимаем "**OK**".
Группа добавлена. Для перехода к следующему шагу нажимаем кнопку "**Далее**".
На следующем этапе выбираем пункт "**Включить перенаправление устройств для всех клиентских устройств**" и нажимаем "Далее".
Настраиваем таймауты сессий. И действия по их истечении. Рекомендуем отключать сеанс, чтобы фоновые пользовательские процессы не отнимали процессорное время. Нажимаем "Далее".
На крайнем этапе просматриваем сводку, нажимаем "**Готово**".
На подтверждение создания политики нажимаем "**Закрыть**".
**Настроим политику авторизации ресурсов.**
Процесс выполняется подобно предыдущему.
В окне диспетчера шлюза удаленных рабочих столов, раскрываем ветку **Политики → Политики авторизации подключений**. В правой части окна выбираем "**Создать новую политику" → "Мастер**".
В открывшемся окне выбираем "**Создать только политику авторизации ресурсов удаленных рабочих столов**", нажимаем кнопку "**Далее**".
Первым шагом указываем желаемое имя для политики авторизации. Настоятельно рекомендуем указывать имя латиницей. Нажимаем кнопку "Далее".
В окне выбора групп кликаем по кнопке "**Дополнительно**".
Окно изменит размеры. Нажимаем кнопку "**Поиск**". В результатах поиска находим "**Администраторы домена**" и нажимаем кнопку "**OK**".
В окне выбора группы проверяем выбранные имена объектов и нажимаем "**OK**".
Группа добавлена. Для перехода к следующему шагу нажимаем кнопку "**Далее**".
На следующем шаге разрешаем подключение пользователей к любому сетевому ресурсу. Для этого выбираем соответствующий параметр и нажимаем кнопку "**Далее**".
Настраиваем разрешенные порты. сли порт RDP-сервера не был изменен, то оставляем 3389. Нажимаем "**Далее**".
Финальным этапом проверяем настройки и нажимаем кнопку "**Готово**".
В обновленном окне нажимаем "**Закрыть**".
**Изолировать серверные роли. Отключить неиспользуемые сервисы.**
На этапе предварительного планирования сетевой архитектуры, одной из основных задач является планирование рисков в случае выхода из строя какого-либо элемента сети. Причин этому может быть много - от выхода из строя оборудования, до "взлома" извне. Чем большее количество ролей возложено на сервер, тем тяжелее будут последствия при отказе сервера. Для минимизации рисков и ущерба следует, по возможности, разграничить роли серверов еще на этапе проектирования. Отключение сервисов и ролей сервера, в которых необходимости, также положительно скажется на его работе.
Идеальный случай - один сервер выполняет одну конкретную функцию, например Контроллер домена или файловый сервер, или сервер терминалов. На практике, подобное разделение ролей труднодостижимо.
С изоляцией ролей вполне могут справиться и виртуальные серверы. Современные технологии виртуализации предлагают высокий уровень производительности и стабильности, при том, что не администратор, не пользователь не испытывают каких-либо ограничений. Грамотно подобранная аппаратная и настроенная программная части могут являться полноценной заменой целому парку техники.
**Обзор Windows Nano Server.**
Дальнейшим развитием **Windows Server Core** стал **Nano Server**. Данная версия дистрибутива исключает использование графического интерфейса пользователя. Всё управление сосредоточено на WMI - инструментарий управления Windows, а также Windows PowerShell. Данный дистрибутив Windows-сервер имеет на 92% меньше критических рекомендаций безопасности. Nano Server доступен только для клиентов Microsoft Software Assurance и на платформах облачных вычислений, например, Microsoft Azure и Amazon Web Services. Начиная со сборки Windows Server 1709, Nano Server можно устанавливать только внутри хоста контейнера .
https://serverspace.uz/support/help/bazovaya-bezopasnost-linux.mdРазберём базовую безопасность Linux сервера: настройка SSH, защита от брутфорса, firewall, безопасность баз данных и рекомендации по защите системы.
## Базовая безопасность Linux-сервера
Безопасность серверов на базе Linux — один из ключевых факторов стабильной работы любой инфраструктуры. Независимо от того, используется ли небольшой VPS или production-среда, базовые меры защиты позволяют значительно снизить риск атак и утечек данных.
В этом руководстве рассмотрим основные практики защиты Linux-сервера: от обновлений системы до настройки SSH, firewall и баз данных.
## Регулярные обновления системы
Актуальные обновления — это первая линия защиты сервера. Разработчики постоянно закрывают уязвимости, поэтому важно своевременно устанавливать обновления.
Для автоматизации можно использовать:
- Debian / Ubuntu — unattended-upgrades
- CentOS — yum-cron
- Fedora — dnf-automatic
Ручное обновление выполняется командами:
**Ubuntu / Debian:**
```bash
sudo apt-get update
```
```bash
sudo apt-get upgrade
```
**CentOS / Fedora:**
```bash
yum update
```
Важно учитывать, что обновляются только пакеты из репозиториев — сторонние приложения нужно обновлять отдельно.
## Пользователи и контроль доступа
Использование root-аккаунта для повседневной работы повышает риски безопасности. Рекомендуется создать отдельного пользователя с правами администратора через sudo.
Создание пользователя:
```
adduser
```
Добавление в группу:
**Ubuntu / Debian:**
```
adduser sudo
```
**CentOS / Fedora:**
```
usermod -aG wheel
```
Дополнительно:
- используйте сложные пароли
- отключайте неиспользуемые аккаунты
- избегайте стандартных логинов
## Безопасное подключение по SSH
SSH — основной способ удалённого доступа к серверу, поэтому его защита критически важна.
Рекомендуемые меры:
- использование SSH-ключей вместо пароля
- смена стандартного порта
- отключение парольной авторизации
Генерация ключа:
```bash
ssh-keygen -t rsa
```
Передача ключа на сервер:
```bash
ssh-copy-id user@server_ip
```
## Настройка SSH-сервера
Для усиления защиты необходимо изменить конфигурацию SSH:
```
sudo nano /etc/ssh/sshd_config
```
Отключение root-доступа:
```
PermitRootLogin no
```
Отключение входа по паролю:
```
PasswordAuthentication no
```
Применение изменений:
```bash
sudo systemctl restart sshd
```
## Защита от брутфорса (Fail2Ban)
Fail2Ban — инструмент, который автоматически блокирует IP-адреса при подозрительных попытках входа.
Преимущества:
- защита от перебора паролей
- автоматическое реагирование на атаки
- поддержка разных сервисов (SSH, веб, FTP)
Это простой и эффективный способ повысить безопасность сервера.
## Настройка Firewall
Firewall контролирует входящий и исходящий трафик и предотвращает несанкционированный доступ.
Основные принципы:
- открывать только необходимые порты
- ограничивать доступ по IP
- блокировать всё лишнее
Проверка текущих правил:
```
sudo iptables -L
```
```
sudo ip6tables -L
```
Популярные инструменты:
- iptables
- UFW (Ubuntu)
- FirewallD (CentOS / Fedora)
Базовая политика безопасности:
- разрешить loopback
- разрешить SSH
- разрешить HTTP/HTTPS при необходимости
- запретить остальной трафик
## Безопасность баз данных
После установки базы данных важно выполнить базовую настройку защиты.
Для MySQL / MariaDB:
```
sudo mysql_secure_installation
```
Рекомендуется:
- установить пароль root
- удалить анонимные аккаунты
- отключить удалённый доступ для root
- удалить тестовую базу
Для приложений:
- создавайте отдельного пользователя
- давайте минимально необходимые права
Разрешённые права:
- SELECT
- INSERT
- UPDATE
- DELETE
Не рекомендуется:
- ALTER
- DROP
## Требования к паролям и учетным данным
Надёжные пароли — важная часть безопасности.
Рекомендуется:
- минимум 10 символов
- верхний и нижний регистр
- цифры и спецсимволы
- отсутствие простых слов
Также стоит использовать нестандартные логины для усложнения атак.
## Вывод
Базовая защита Linux-сервера строится на нескольких ключевых принципах:
- регулярные обновления системы
- ограничение прав доступа
- защита SSH
- настройка firewall
- безопасная работа с базами данных
- использование сложных паролей
Даже внедрение этих базовых мер значительно снижает риск взлома и делает инфраструктуру устойчивой к большинству типовых атак.
## FAQ
### Что включает в себя базовая безопасность Linux-сервера?
Базовая безопасность Linux включает регулярные обновления системы, настройку SSH-доступа, ограничение прав пользователей, использование firewall, защиту от брутфорса и безопасную конфигурацию баз данных.
### Почему нельзя использовать root для повседневной работы?
Работа под root повышает риск критических ошибок и взлома. Лучше использовать отдельного пользователя с правами sudo, чтобы ограничить доступ и повысить безопасность системы.
### Как защитить сервер от перебора паролей?
Для защиты от брутфорса рекомендуется использовать Fail2Ban, отключить вход по паролю в SSH и настроить авторизацию по ключам. Это значительно снижает вероятность успешной атаки.
### Зачем менять стандартный порт SSH?
Смена порта SSH снижает количество автоматических атак и сканирований. Хотя это не является полной защитой, такая мера помогает уменьшить нагрузку от ботов.
### Какой firewall лучше использовать в Linux?
Выбор зависит от дистрибутива: UFW удобен для Ubuntu, FirewallD используется в CentOS и Fedora, а iptables — универсальный инструмент с гибкой настройкой.
### Как правильно настроить безопасность базы данных?
После установки необходимо выполнить mysql_secure_installation, удалить анонимных пользователей, задать пароль root и ограничить права доступа для приложений.
### Какие порты нужно открывать на сервере?
Рекомендуется открывать только необходимые порты, например: SSH (обычно 22 или изменённый), HTTP (80) и HTTPS (443). Все остальные соединения следует блокировать.
### Какой должен быть безопасный пароль?
Надёжный пароль должен содержать не менее 10 символов, включать буквы разного регистра, цифры и специальные символы, а также не содержать очевидных слов или комбинаций.
### Нужно ли регулярно обновлять сервер?
Да, обновления закрывают уязвимости и повышают безопасность. Рекомендуется включить автоматическое обновление или регулярно выполнять его вручную.
https://serverspace.uz/support/help/ustanovka-git-na-freebsd-11.mdРассмотрим установку Git через пакеты, через порты, конфигурацию системы контроля версий Git на FreeBSD 11. Что такое Git? Это распределенная система управления версиями с открытым исходным кодом.
В инструкции описан процесс установки системы контроля версий Git на виртуальный сервер FreeBSD 11.
## Что такое Git?
Git - это распределенная система управления версиями с открытым исходным кодом.
Система управления означает, что Git является трекером контента. Таким образом, Git может использоваться для хранения контента, но в основном используется для хранения программного кода благодаря другим функциям, которые она предоставляет.
Система контроля версий проверяет код, который хранится в Git и постоянно меняется по мере разработки. Также многие разработчики могут добавлять код параллельно. Таким образом, система контроля версий помогает справиться с этим, сохраняя историю произошедших изменений. Кроме того, Git предоставляет такие функции, как ветки и слияния.
Git имеет удаленный репозиторий, который хранится на сервере, и локальный репозиторий, который хранится на компьютере каждого разработчика. Это означает, что код не просто хранится на центральном сервере, но полная копия кода присутствует на всех компьютерах разработчиков. Git - это распределенная система контроля версий, поскольку код присутствует на каждом компьютере разработчика.
## Установка Git через пакеты
Первый способ установки - с помощью пакетов FreeBSD. Как правило, это самый простой и быстрый способ установки Git.
Для начала необходимо обновить индексацию хранилища pkg:
```
pkg update -f
```
Затем загрузить и установить пакет git:
```
pkg install git
```
В консоль нужно будет ввести y, чтобы подтвердить установку.
## Установка Git через порты
Система портов FreeBSD - это еще один способ управления приложениями на сервере FreeBSD. Сервер управляется через иерархию файловой системы, называемой деревом портов. Дерево расположено в каталоге /usr/ports, который классифицирует каждую доступную часть программного обеспечения.
Portsnap - это инструмент, который поставляется с FreeBSD и упрощает работу с деревом портов.
Загрузите и распакуйте файлы дерева портов в /usr/ports. Это может занять некоторое время, но это действие выполняется только один раз:
```
portsnap fetch extract
```
Если у вас уже есть загруженное дерево портов, вместо этого просто обновите его:
```
sudo portsnap fetch update
```
Затем перейдите в каталог devel/git в дереве портов:
```
cd /usr/ports/devel/git
```
Наконец, запустите сборку Git. Использование опции BATCH = "yes" запустит тихую установку Git-порта и позволит избежать многочисленных диалогов, спрашивающих, какие части определенного программного обеспечения вы хотите установить. Вы можете опустить это, если необходимо установить определенные компоненты:
```
sudo make install clean BATCH="yes"
```
## Конфигурирование Git
Для начала выведете существующие настройки конфигурации Git. Они извлекаются из файла ~ / .gitconfig:
```bash
git config --list
```
Возможно обновить любые настройки, какие необходимо. Например, для обновления имени пользователя используйте следующую команду, заменив CloudAdmin вашим именем пользователя:
```bash
git config --global user.name "CloudAdmin"
```
Чтобы обновить свой адрес электронной почты, используйте следующую команду, заменив CloudAdmin@example.com своим адресом электронной почты:
git config --global user.email "[CloudAdmin@example.com](mailto:CloudAdmin@example.com)"
Возможно указать текстовый редактор по умолчанию, заменив vim ниже предпочитаемым текстовым редактором, например Nano или Emacs:
```bash
git config --global core.editor "vim"
```
Вы можете проверить, что ваши изменения сохранены, просмотрев настройки конфигурации снова:
```bash
git config --list
```
Ожидаемый вывод:
```
user.name=CloudAdmin
user.email=CloudAdmin@example.com
core.editor=vim
```
https://serverspace.uz/support/help/installing-mariadb.mdКак установить и настроить одну из самых популярных СУБД – MariaDB на Ubuntu и CentOS. Подробное пошаговое руководство со скриншотами
Большое количество сервисов использует обращение к БД - web-приложения, сайты компаний, а также почтовые сервисы и различные системы учета. Сегодня рассмотрим установку одной из самых популярных СУБД — MariaDB.
В данной статье мы не будем рассматривать как установить и настроить LAMP-сервер, это рассмотрено в отдельной статье про [установку стека LAMP](https://serverspace.uz/support/help/ustanovka-lamp/)).
Следует обратить внимание, что MySQL-сервер в репозиториях заменен на MariaDB по причине открытости кода и активного развития самого проекта.
[step num="1"]
Добавляем репозиторий, так как система установит версию MariaDB 5.5. Для каждой ОС рассмотрим этот момент отдельно. Если это устраивает, то можно пропустить этот шаг. Если вы все же решили это выполнить, то открываем страницу[на официальном сайте](https://downloads.mariadb.org/mariadb/repositories/#mirror=timeweb) с информацией о репозиториях и их настройке.
[/step]
[step num="2"]
## Ubuntu
Перед установкой обновляем данные о репозиториях и индексах пакетов:
```bash
sudo apt-get update
```
[/step]
[step num="3"]
Обновляем пакеты и компоненты системы:
```bash
sudo apt-get upgrade
```
[/step]
[step num="4"]
Перезагружаем систему, иногда это требуется:
```
sudo reboot
```
[/step]
[step num="5"]
Проверяем версию пакета MariaDB-server в репозитории:
```bash
apt-cache show mariadb-server
```
[/step]
Для Ubuntu 16.04 ответ будет таким
Для Ubuntu 18.04:
[step num="6"]
Добавим информацию о репозитории с версией 10.3. Важно: для каждой версии Ubuntu свои репозитории.
Для Ubuntu 16.04 по очереди выполняем следующие команды:
```bash
sudo apt-get install software-properties-common
```
```bash
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
```
```
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://mirror.timeweb.ru/mariadb/repo/10.3/ubuntu xenial main'
```
[/step]
[step num="7"]
Для Ubuntu 18.04:
```bash
sudo apt-get install software-properties-common
```
```bash
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
```
```
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.timeweb.ru/mariadb/repo/10.3/ubuntu bionic main'
```
[/step]
[step num="8"]
Обновим информацию о содержимом репозиториев и выполним установку
```bash
sudo apt-get update
```
```bash
sudo apt-get install mariadb-server
```
[/step]
[step num="9"]
Независимо от версии Ubuntu, программа установки потребует ввод пароля пользователя root и его подтверждение:
[/step]
[step num="10"]
## CentOS
Обновляем компоненты системы, а заодно и данные о репозиториях
```bash
sudo yum update
```
[/step]
[step num="11"]
Добавляем репозиторий для стабильной версии 10.3. Для этого переходим в каталог с файлами репозитория и создадим файл:
```
cd /etc/yum.repos.d/
```
```
sudo touch MariaDB.repo
```
[/step]
[step num="12"]
Данные с официального сайта добавляем в файл любым редактором:
```
# MariaDB 10.3 CentOS repository list - created 2019-05-07 06:43 UTC
# http://downloads.mariadb.org/mariadb/repositories/
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```
[/step]
[step num="13"]
Устанавливаем пакет:
```bash
sudo yum install MariaDB-server MariaDB-client
```
[/step]
Программа yum соберет все необходимые данные для установки и будет ожидать действия пользователя
[step num="14"]
Отвечаем на вопрос "y" и нажимаем Enter. Количество устанавливаемых пакетов у вас может быть другим.
[/step]
[step num="15"]
Команду следует выполнить повторно в случае следующей ошибки:
```yaml
Error downloading packages:
MariaDB-compat-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try.
MariaDB-client-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try.
MariaDB-common-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try.
```
[/step]
[step num="16"]
После установки следует запустить сервер:
```bash
sudo service mysql start
```
[/step]
## Настройка
[step num="17"]
Большинство программ устанавливаются с параметрами по умолчанию. Независимо от дистрибутива рекомендуется выполнить оптимизацию параметров безопасности.
```
sudo mysql_secure_installation
```
[/step]
Да, именно "mysql", потому что проект MariaDB "вытек" из MySQL.
[step num="18"]
В самом начале программа запросит пароль для пользователя root. Если пароль не был установлен, то нажимаем Enter. На большинство вопросов можно ответить "y". Вопросы и перевод к ним приведены ниже:
[/step]
| Change the root password? [Y/n] | Изменить пароль пользователя root? |
| --- | --- |
| Remove anonymous users? [Y/n] | Удалить анонимных пользователей? |
| Disallow root login remotely? [Y/n] | Запретить удаленное подключение от имени root? |
| Remove test database and access to it? [Y/n] | Удалить базу данных test и доступ к ней? |
| Reload privilege tables now? [Y/n] | Перезагрузить таблицу привилегий сейчас? |
##
## Проверка состояния сервера
Иногда может потребоваться проверка состояния работы сервера. Данная операция может быть выполнена командой:
```bash
sudo service mysql status
```
```
```
Следует обратить внимание, что если сервер не запущен, то его нужно запустить в ручном режиме командой:
```bash
sudo service mysql start
```
## Проверка подключения к СУБД
Подключение к СУБД происходит следующей командой:
```bash
mysql -u -p
```
Если это первое подключение и другие пользователи не были добавлены, следует подключаться от пользователя root:
```bash
mysql -u root -p
```
Затем следует ввести пароль пользователя root, если пароль не был задан, то нажать Enter.
Выход из оболочки по команде:
```
exit
```
https://serverspace.uz/support/help/configuring-an-ftp-server-in-windows-server-2012.mdРассмотрим настройку FTP-сервера из набора IIS от Microsoft, создание самоподписанного сертификата и настройку защищенной передачи файлов. Операционная система - Windows Server 2012 R2.
FTP (File Transfer Protocol) - протокол передачи файлов. Применяется для передачи файлов клиентами локальной сети, а также для загрузки данных на локальные и удаленные хранилища.
Рассмотрим настройку FTP-сервера из набора IIS от компании Microsoft, создание самоподписанного сертификата, а также настройку защищенной передачи файлов.
Операционная система - Windows Server 2012 R2.
[step num="1"]
## Установим Веб-сервер IIS
[/step]
[step num="2"]
1. Запускаем Диспетчер серверов из меню Пуск или кликом по значку на панели задач.
[/step]
[step num="3"]
2. Выбираем пункт Добавить роли и компоненты.
[/step]
[step num="4"]
3. В новом окне выбираем, слева, Тип установки, затем Установка ролей или компонентов, кликаем по кнопке Далее.
[/step]
[step num="5"]
4. Из предложенного пула серверов выбираем необходимый. В нашем случае он один, кликаем Далее.
[/step]
[step num="6"]
5. В списке ролей находим Веб-сервер (IIS) и ставим галочку напротив этого пункта.
[/step]
[step num="7"]
6. В новом окне Мастер добавления ролей и компонентов просто кликаем по Добавить компоненты. Данное окно обычно появляется при первой установке Веб-сервера (IIS). Кликаем Далее.
[/step]
[step num="8"]
7. Слева кликаем по Служба ролей (подпункт Роль Веб-сервера (IIS)). Ставим галку напротив FTP-сервер. При необходимости устанавливаем галку напротив Расширяемость FTP. Кликаем Далее.
[/step]
[step num="9"]
8. Проверяем компоненты для установки. При первой установке, рекомендуем установить галку в поле Автоматический перезапуск конечного сервера, если потребуется. Кликаем Установить. Важно! При первой установке Веб-сервера (IIS) будут установлены дополнительные компоненты службы.
[/step]
[step num="10"]
9. Ожидаем завершения процесса установки. По окончании кликаем Закрыть.
[/step]
[step num="11"]
## Переходим к настройке сервера.
[/step]
[step num="12"]
1. Открываем Администрирование. Можно из меню Пуск, но если там отсутствует этот пункт, то Пуск -> Панель управления -> Система и безопасность - > Администрирование
[/step]
[step num="13"]
2. Запускаем Диспетчер служб IIS
[/step]
[step num="14"]
3. В открывшемся окне, в левой части, разворачиваем ветку под необходимым сервером. Кликаем правой кнопкой мыши по элементу Сайты и выбираем пункт Добавить FTP-сайт
[/step]
[step num="15"]
4. В новом окне Добавить FTP-сайт указываем имя и путь до каталога где будут расположены файлы. Кликаем Далее.
[/step]
[step num="16"]
5. В обновленном окне указываем на каких IP-адресах будет запущен FTP-сервер (актуально, когда у сервера несколько сетевых интерфейсов либо алиасов), а также указываем порт, который будет прослушивать служба (по умолчанию 21 TCP-порт). Проверяем наличие галочки Запускать сайт FTP автоматически. В настройках SSL указываем Без SSL. Если требуется шифрование, тогда выбираем соответствующий пункт и указываем сертификат. Кликаем Далее.
[/step]
[step num="18"]
6. Следующим этапом настраиваем аутентификацию. В разделе Проверка подлинности выбираем Обычный (если требуется анонимное предоставление доступа следует выбрать Анонимный). В разделе Авторизация можно гибко указать доступ для пользователей. В нашем примере разрешим доступ Всем пользователям, кроме анонимных. Разрешаем чтение и запись. Кликаем Готово.
[/step]
[step num="19"]
7. В случае успешности, в окне Диспетчера служб IIS добавится строка с именем добавленного FTP-сервера (сайта). Сворачиваем или закрываем это окно. Оно нам более не понадобится.
[/step]
[step num="20"]
## Настраиваем брандмауэр.
[/step]
[step num="21"]
1. В окне Администрирование открываем Брандмауэр Windows в режиме повышенной безопасности.
[/step]
[step num="22"]
2. В открывшемся окне, в левой части, выбираем Правила для входящих подключений. В правой части кликаем по Создать правило...
[/step]
[step num="23"]
3. В новом окне выбираем Предопределенные. Из выпадающего списка выбираем FTP-сервер. Кликаем Далее.
[/step]
[step num="24"]
4. Отмечаем галочками все пункты, кликаем Далее.
[/step]
[step num="25"]
5. Следующим шагом выбираем Разрешить подключение, кликаем Готово.
[/step]
[step num="26"]
Выбранные правила будут добавлены в общий список правил входящих подключений. Для применения настроек брандмауэра следует перезагрузить сервер.
[/step]
[step num="27"]
Подключиться к серверу можно любым FTP-клиентом указав IP-адрес сервера, имя пользователя и пароль, например FileZilla. Однако, доступность сервера можно проверить и с помощью Internet Explorer. В строке адреса указываем ftp://IP.адрес.нашего.сервера/ (либо доменное имя). Указываем имя пользователя и пароль.
[/step]
[step num="28"]
## Настройка защищенного (Secure) FTP.
[/step]
Для защиты трафика рекомендуется использовать SSL-сертификаты. Можно использовать самоподписанные сертификаты либо выданные центром сертификации. Обратите внимание, что при подключении к серверу с самоподписанным сертификатом пользователь будет уведомлен об этом.
[step num="29"]
### Создадим самоподписанный сертификат.
[/step]
[step num="30"]
1. Запускаем Диспетчер служб IIS (см. выше Настройку сервера).
[/step]
[step num="31"]
2. В открывшемся окне, в левой части, разворачиваем ветку под необходимым сервером. Выбираем Сертификаты сервера.
[/step]
[step num="32"]
3. В новом окне, в правой части, выбираем Создать самозаверенный сертификат.
[/step]
[step num="33"]
4. В открывшемся окне указываем имя сертификата и его тип - Личный. Кликаем Ок.
[/step]
[step num="34"]
Сертификат создан. Теперь перейдем к настройке защищенного FTP.
[/step]
[step num="35"]
1. В окне Диспетчер служб IIS, в левой части, разворачиваем ветку под необходимым сервером, выбираем созданный сервер. В основной части окна выбираем Параметры SSL FTP.
[/step]
[step num="36"]
2. В обновленном окне, в выпадающем списке, выбираем созданный сертификат, либо выданный центром сертификации, если такой имеется. Выбираем Требовать SSL-соединения. В правой части окна выбираем Применить. Закрываем окно, если необходимо.
[/step]
[step num="37"]
Для подключения к защищенному FTP-серверу рекомендуем использовать программу WinSCP.
Файловый протокол - FTP
Шифрование - Явное шифрование TLS/SSL (TLS/SSL Explicit encryption)
Имя узла - IP-адрес или доменное имя.
Порт - 21, либо который был указан.
Имя и пароль пользователя системы.
Кликаем Войти (Login)
https://serverspace.uz/support/help/rdp-sessiya-problemi-s-buferom-obmena.mdПри проблеме с буфером обмена при RDP-подключении пользователям Windows Server 2008 R2 достаточно перезапустить процесс и проверить работу
Достаточно часто пользователи Windows Server 2008 R2 жалуются на проблемы с буфером обмена при RDP-подключении. Подобные ситуации возникают, когда используется несколько активных терминальных сессий. Именно это и является причиной того, что простая операция копирования/вставки перестает работать через RDP-сессию (копируете на своей машине, вставляете на удаленной или наоборот). Подобные сбои могут коснуться только одного соединения, а не всех сразу.
В качестве временной меры пользователи вынуждены переподключаться к RDP-серверу выполнив выход из системы (Log off). Проблема этого метода в том, что приходится закрывать все открытые программы и документы, а после подключения - запускать снова, потратив уйму времени. Обычно, проблема копирования/вставки решается, иногда ненадолго.
[step num="1"]
Существует решение этой проблемы - перезапуск процесса rdpclip.exe. Данный процесс отвечает за функционирование буфера обмена в терминальной сессии - Remote Desktop Clipboard. Каждый раз, когда пользователь подключается или переподключается к удаленному рабочему столу, процесс запускается заново.
[/step]
[step num="2"]
Для перезапуска процесса достаточно запустить Диспетчер задач в RDP-сессии, кликнув правой кнопкой мыши на панели задач и выбрав соответствующий пункт в меню.
[/step]
[step num="3"]
В открывшемся окне Диспетчера задач, на вкладке Процессы, кликаем правой кнопкой мыши по процессу rdpclip.exe. В контекстном меню выбираем Завершить процесс.
[/step]
[step num="4"]
В открывшемся окне с запросом на подтверждение выбираем Завершить процесс.
[/step]
[step num="5"]
Запуск процесса происходит из того же окна Диспетчера задач. Для этого в меню окна кликаем по Файл -> Новая задача (Выполнить....).
[/step]
[step num="6"]
В новом окне, в поле ввода пишем rdpclip.exe и кликаем по кнопке OK.
[/step]
[step num="7"]
В Windows Server 2012 процесс называется "Монитор буфера обмена RDP".
[/step]
Однако, запуск файла происходит аналогично рассмотренному выше.
[step num="8"]
Важно помнить, что использование буфера обмена должно быть включено в настройках подключения удаленного доступа. Кликаем по кнопке "Показать параметры".
[/step]
[step num="9"]
На вкладке "Локальные ресурсы" проверяем наличие галки "Буфер обмена".
[/step]
[step num="10"]
В параметрах сервера также должно быть разрешено использование буфера обмена. Для этого открываем Пуск -> Администрирование -> Службы удаленных рабочих столов -> Конфигурация узла сеансов удаленных рабочих столов.
[/step]
[step num="11"]
В новом окне, двойным кликом мыши по имеющимся настройкам подключений, вызываем окно Свойства RDP-Tcp.
[/step]
[step num="12"]
Важно! Если сервер используется в качестве сервера терминалов, то следует выбирать соответствующий ему пункт подключений.
[/step]
[step num="13"]
На вкладке Параметры клиента проверяем отсутствие(!) галки напротив пункт "Буфер обмена".
https://serverspace.uz/support/help/configuring-the-network-interface-in-ubuntu-18-04.mdРуководство по настройке сети в Ubuntu 18.04. Активация текущих настроек, получение списка доступных интерфейсов и перезагрузка сервера
Конфигурирование сети в Ubuntu 18.04 было, по сравнению с предыдущими версиями операционной системы, достаточно сильно изменено. Системный файл /etc/network/interfaces никуда не делся, однако стал незначимым, теперь внутри него лишь указание, что файлы, относящиеся к настройкам сети, теперь размещаются в директории /etc/netplan:
Выведем ее содержимое:
```
ls /etc/netplan
```
Взглянем на структуру файла:
```
cat /etc/netplan/50-cloud-init.yaml
```
Конфигурация netplan описывается языком YAML. Опишем ее детально:
- network - слово-маркер, обозначающее старт логического блока в конфигурации;
- ethernets - это слово показывает, что дальше настраивается Ethernet-сеть;
- enp0s3 - имя интерфейса, который надлежит сконфигурировать. У вас оно наверное будет выглядеть иначе. Общий список сетевых интерфейсов, видимых в компьютере, будет выведен такой командой:
```
ifconfig -a
```
;
- addresses - список IP-адресов, относящихся к интерфейсу, писать их нужно в CIDR-формате. Первый IP прописывается как на скриншоте, а когда требуется прописать больше одного адреса, они помещаются в квадратные скобки, между адресами ставится запятая;
- gateway4 - шлюз IPv4;
- nameservers - слово-маркер, говорящее о том, что в секции ниже прописаны узлы, обрабатывающие DNS-запросы;
- addresses - собственно имена (или адреса), узлов, разрешающих DNS-имена в IP-адреса. При надобности они точно также прописываются в квадратных скобках, один адрес от другого отделяется запятой;
- version - версия языка YAML.
Для активации изменений служит команда:
```
netplan apply
```
## Конфигурирование сети без использования netplan
Перед собственно настройкой стоит уточнить, какие интерфейсы вообще присутствуют в системе:
```
ifconfig -a
```
На скриншоте выше видно, что физически есть два интерфейса, которым IP-адреса сейчас не назначены, поскольку машина ждет настроек от DHCP-сервера. В ситуации, когда такового сервера в сегменте сети нет, следует прописать IP статически. Запускаем редактор текста и меняем файл, чтобы он выглядел наподобие указанного на скриншоте:
```
sudo nano /etc/network/interfaces
```
Расшифрую параметры:
- auto enp0s3 - указание операционной системе запускать сеть при перезагрузке;
- iface enp0s3 inet static - параметр, говорящий о том, что сетевой адрес назначается вручную;
- address 10.10.2.6 - назначенный IPv4-адрес;
- netmask 255.255.255.0 - маска подсети;
- gateway 10.10.2.1 - шлюз IPv4;
- dns-nameservers 8.8.8.8 - узлы, обрабатывающие DNS-запросы.
Для применения изменений придется дать команду:
```
sudo /etc/init.d/networking restart
```
После рестарта службы сервер должен быть доступен по назначенному ему IP-адресу. Если же нет, поможет перезагрузка всего сервера.
## Заключение
В данном материале описаны два способа конфигурации сети в Ubuntu 18.04, как с использованием netplan, так и без такового.
https://serverspace.uz/support/help/ispolzovanie-platformy-salt.mdОсновные понятия платформы Salt, примеры конфигурации и использования. Удаленное выполнение команд. Salt state, формулы и Top-файл. Функция Pillar. Шаблоны Jinja.
В статье описаны основные понятия платформы Salt, примеры конфигурации и использования с комментариями.
## Salt — что это такое?
Salt — это платформа с открытым исходным кодом для управления инфраструктурой, построена на динамической коммуникационной шине. Salt может использоваться для управления конфигурацией для любого набора систем или приложений, для управления данными, для удаленного запуска команд и т.д.
О там как установить и настроить взаимодействие Salt Master и Salt Minions на серверах под управлением операционной системы Ubuntu 18.04 вы можете прочитать в [нашей инструкции](https://serverspace.uz/support/help/nastrojka-salt-master-minions-na-ubuntu/).
## Masters и Minions
**Salt Master (Мастер)** - это сервер, который выступает в качестве центра управления для своих миньонов, именно от Master отправляются запросы на удаленное выполнение команд. Например, эта команда сообщает текущее использование диска каждым из миньонов, которыми управляет мастер:
```
salt '*' disk.usage
```
Таких команд большое множество. Например, вы можете установить NGINX на миньона с именем webserver1:
```
salt 'webserver1' pkg.install nginx
```
**Salt Minions (Ноды, Миньоны)** - это ваши серверы под управлением мастера, именно на них запускаются приложения и сервисы. Каждому миньону присваивается идентификатор, а мастер может ссылаться на этот идентификатор для назначения команд конкретным миньонам.
Связь между мастером и миньонами осуществляется по транспортному протоколу [ZeroMQ](https://en.wikipedia.org/wiki/ZeroMQ), канал зашифрован парой открытого и закрытого ключей. Пара ключей генерируется миньоном, после чего он отправляет свой открытый ключ мастеру.
## Удаленное выполнение
Salt предлагает очень широкий спектр модулей для удаленного выполнения команд. Модуль выполнения - это набор связанных функций, которые вы можете запускать на миньонах по команде от мастера. Например:
```
salt 'webserver1' npm.install gulp
```
В этой команде npm - это модуль, а install - это функция. Эта команда устанавливает пакет Gulp Node.js через диспетчер пакетов Node (NPM).
Доступные модули выполнения представляют собой удобные решения для системного администрирования:
- создание и управление пользователями системы
- установка и удаление программного обеспечения
- редактирование или создание файлов конфигурации
Функция cmd.run используется для запуска произвольных команд на управляемых миньонах:
```
salt '*' cmd.run 'ls -l /etc'
```
Эта команда выведет содержимое каталога /etc для каждого миньона.
## Состояния, формулы и Top-файл
Salt предлагает еще один способ управления нодой, с помощью которого необходимо описать состояние, в котором миньон должен находиться. Этот вид конфигурации называется Salt state (состояние), а методология обычно называется управлением конфигурацией.
Состояния определяются в файлах состояний. После того, как состояния миньонов описаны, они применяются к миньону.
### Описание состояния
Ниже приведен пример файла состояния /srv/salt/webserver_setup.sls, который гарантирует, что установлены следующие компоненты: rsync, curl, NGINX, и при этом NGINX запускается и включается при загрузке ОС:
```bash
network_utilities:
pkg.installed:
- pkgs:
- rsync
- curl
nginx_pkg:
pkg.installed:
- name: nginx
nginx_service:
service.running:
- name: nginx
- enable: True
- require:
- pkg: nginx_pkg
```
Файлы состояний заканчиваются расширением .sls (SaLt State). Файлы состояний могут иметь одно или несколько описаний состояния, которые являются разделами верхнего уровня (network_utilities, nginx_pkg и nginx_service в приведенном выше примере). Идентификаторы описаний являются произвольными, поэтому вы можете называть их по своему усмотрению.
Описания состояний содержат модули состояний. Модули состояний отличаются от модулей выполнения, но часто выполняют аналогичные задания. Например, существует модуль состояния pkg с функциями, аналогичными модулю выполнения pkg, как с функцией состояния pkg.installed и функцией выполнения pkg.install.
Файлы состояний - это просто наборы словарей, списков, строк и чисел, которые затем интерпретирует Salt. По умолчанию Salt использует синтаксис YAML для представления состояний.
Файлы состояний обычно хранятся в файловой системе мастера Salt, но они также могут храниться в других местах файлового сервера, например, в репозитории Git.
### Применение состояния к Миньону
Чтобы применить состояние к миньону, используйте функцию state.apply от имени мастера:
```
salt `webserver1` state.apply webserver_setup
```
Эта команда применяет пример состояния webserver_setup.sls к миньону с именем webserver1. При применении состояния суффикс .sls не упоминается. Применяются все описания состояния из файла состояния.
### Формулы
Формулы - это просто наборы состояний, которые вместе настраивают компонент приложения или системы на миньоне. Формулы обычно организованы с помощью нескольких различных файлов .sls. Разделение состояний формулы по разным файлам может упростить организацию вашей работы. Объявления состояний могут включать и ссылаться на объявления в других файлах.
### Top-файл
В дополнение к ручному применению состояний к миньонам, Salt предоставляет возможность автоматически отобразить, какие состояния должны применяться к различным миньонам. Это называется Top-файлом.
Простой пример файла /srv/salt/top.sls:
```
base:
'*':
- universal_setup
'webserver1':
- webserver_setup
```
base это среда окружения. Вы можете указать более одной среды, соответствующей различным этапам вашей работы; например: разработка, QA, производство.
В приведенном выше примере сказано, что состояние universal_setup должно применяться ко всем миньонам ('*'), а состояние webserver_setup должно применяться только к миньону webserver1.
Если вы запустите функцию state.apply без аргументов, Salt проверит Top-файл и применит все состояния в нем в соответствии с созданным отображением:
```
salt '*' state.apply
```
## Хранение Data (данных) и Secrets (секретов)
В платформе Salt есть функция Pillar, которая берет определенные данные в мастере и распространяет их среди миньонов. Основное использование Pillar - хранение секретов, таких как учетные данные. Pillar также является удобным местом для хранения несекретных данных, которые вы не хотите записывать непосредственно в файлы состояния.
Допустим, вы хотите создать системных пользователей для миньонов и назначить разные оболочки для каждого из них. Можно закодировать эту информацию в файл состояния, но для этого потребуется новое объявление для каждого пользователя. Если вы вместо этого сохраняете данные в Pillar, можно просто создать одно объявление состояния и вставить в него данные.
Такие данные хранятся в файлах .sls, например файла /srv/pillar/user_info.sls:
```yaml
users:
joe:
shell: /bin/zsh
amy:
shell: /bin/bash
sam
shell: /bin/fish
```
Как и в случае с файлами состояний, Top-файл (отдельно от Yop-файла состояний) отображает данные Pillar в миньоны, например /srv/pillar/top.sls:
```
base:
'webserver1':
- user_info
```
## Шаблоны Jinja
Для использования данных Pillar в файлах состоянии, используют [шаблоны Jinja](https://docs.saltstack.com/en/latest/topics/jinja/index.html).
Ниже приведен пример файла состояния /srv/salt/user_setup.sls, в котором используются данные Pillar из предыдущей секции для создания пользователей системы и установки оболочки:
```
{% for user_name, user_info in pillar['users'].iteritems() %} {{ user_name }}: user.present: - shell: {{ user_info['shell'] }} {% endfor %}
```
Salt скомпилирует файл состояния в подобный файл прежде чем применить его к миньону:
```yaml
joe:
user.present:
- shell: /bin/zsh
amy:
user.present:
- shell: /bin/bash
sam:
user.present:
- shell: /bin/fish
```
В следующем примере файл состояния /srv/salt/webserver_setup.sls установит Apache и настроит имя для пакета в соответствии с операционной системой:
```
install_apache:
pkg.installed:
{% if grains['os'] == 'CentOS' %}
- name: httpd
{% else %}
- name: apache
{% endif %}
```
Дополнительную информацию можно найти в [официальной документации продукта](https://docs.saltstack.com/en/latest/).
https://serverspace.uz/support/help/installsslbitrix.mdИнструкция по установке SSL-сертификата в системе управления контентом 1С-Битрикс. Генерация CSR-кода, заказ и установка SSL-сертификата
## Генерация CSR-запроса и заказ SSL-сертификата
Для установки SSL-сертификата вашего веб-сайта в CMS 1C-Битрикс необходимо сперва сгенерировать CSR-запрос и [заказать SSL-сертификат](https://serverspace.uz/services/ssl/) через панель управления Serverspace. Так как система управления интернет проектами "1С-Битрикс" работает под управлением дистрибутива Linux CentOS**.**
После генерации CSR-запроса и заказа SSL-сертификата через панель управления Serverspace необходимо установить полученные сертификаты **.CRT** и **.CA** на [сервер 1C-Битрикс](https://serverspace.uz/services/vps-server/bitrix24.md).
После получения SSL-сертификата файлы для его установки появятся в панели управления Serverpsace (меню SSL):
**.CA** - файл цепочки сертификатов Центра Сертификации (Certificate Authority).
**.CRT** - файл сертификата для вашего сайта (сайтов).
## Загрузка необходимых файлов на веб-сервер
Прежде всего, необходимо загрузить представленные в панели управления файлы **.ca** и **.crt** на веб-сервер **1С-Битрикс**. Самый простой способ - загрузить эти файлы на другой компьютер, а затем перенести их на сервер одним из приведенных ниже способов.
**_Примечание_**_: подразумевается, что необходимая для работы пара** закрытый/открытый ключ** была сгенерирована на том же веб-сервере 1С-Битрикс, на который вы будете переносить приобретенный сертификат. Если вы создавали ключи на другой машине, вам необходимо также **перенести файл закрытого ключа .key** на ваш веб-сервер по аналогии с описанной ниже процедурой копирования файлов сертификатов._
### Перенос сертификатов с компьютера Linux/Mac OS:
Самый простой способ загрузки сертификатов на сервер - опция [SCP](https://ru.wikipedia.org/wiki/SCP), встроенная в возможность терминала вашего компьютера:
- Загрузите файлы **.CA** и **.CRT** из панели управления на локальный компьютер.
- Откройте терминал и перейдите в папку, в которую вы сохранили сертификаты (напр., Downloads):
```
cd ~/Downloads
```
Скопируйте **сертификаты вашего сайта и Центра Сертификации** на веб-сервер:
```bash
scp crt.crt ca.crt user@1.22.33.444:/etc/ssl
```
**Где:**
**scp** - команда копирования файлов
**mydomain.ru_crt.crt** - имя загруженного из панели файла сертификата вашего веб-сайта
**mydomain.ru_ca.crt** - имя загруженного из панели файла сертификата Центра Авторизации
**user** - имя вашего пользователя для подключения к серверу через ssh (часто используется root)
**1.22.33.444** - IP-адрес вашего веб-сервера
**/etc/ssl** - директория на удаленном сервере, в которую в хотите сохранить загружаемые файлы.
### Перенос сертификатов с компьютера Windows:
- Установите программу **WinSCP**. Скачать ее можно [здесь](https://winscp.net/download/WinSCP-5.9.1-Setup.exe).
- Запустите WinSCP. В открывшемся окне введите данные, которые вы используете для подключения к вашему серверу по SSH.
В левой части окна программы отображаются файлы на локальном компьютере, в правой - на подключенном удаленном сервере. Выберите или создайте директорию, в которую вы хотите сохранить сертификаты, в правой части окна. Перетащите файлы **.CA** и **.CRT** в эту директорию из левой части окна.
**_Примечание: _**_для удобства в дальнейшем рекомендуем перенести файл закрытого ключа **(.key) **в ту же директорию, в которую вы скопировали файлы сертификатов. Вы можете не делать этого, но таком случае запомните путь до этого файла и в дальнейшем укажите его в файле конфигурации Apache вместо пути, приведённого в нашем примере._
_Если закрытый ключ **.key** был сгенерирован непосредственно на сервере, то для его копирования в другую директорию вы можете использовать команду:
```
cp /home/root/private.key /etc/ssl/private.key
```
**Где:**
**cp** - команда копирования
**/home/root/ **- путь до файла ключа
**private.key** - имя файла ключа
**/etc/ssl/private.key** - путь, по которому необходимо скопировать файл ключа_
_Удалить файл ключа из старого расположения вы можете с помощью команды:
```
rm /home/root/private.key
```
(синтаксис команды аналогичен предыдущему примеру)_
## Настройка сервера 1C-Битрикс на использование SSL-сертификата
После копирования файлов сертификата сайта и Центра Сертификации необходимо **отредактировать параметры вашего сервера 1С-Битрикс**. Для этого подключитесь к вашему серверу по SSH от имени пользователя **root** и выполните следующие операции:
- После подключения к серверу отобразится **консоль 1С-Битрикс с доступными действиями (Available Actions)**. Сейчас нам нужна не она, а непосредственно **командная строка CentOS**. Нажмите **0** для перехода в нее.
- Объедините загруженные на сервер ранее файлы сертификата Центра Сертификации **(.CA)** и сертификата вашего веб-сайта **(.CRT) **в один документ:
```
cat /etc/ssl/mydomain.ru_crt.crt /etc/ssl/mydomain.ru_ca.crt >> mydomain.crt
```
- Откройте файл конфигурации **ssl.conf:**
```
nano /etc/nginx/bx/conf/ssl.conf
```
_**Примечание: **если редактор **nano **не установлен на вашем сервере, вы можете установить его с помощью команды **yum install nano**_
- В открытом файле отредактируйте пути до загруженных ранее файлов сертификатов:
```
ssl_certificate /etc/ssl/mydomain.crt;
ssl_certificate_key /etc/ssl/private.key;
```
**Где:**
**/etc/ssl/mydomain.crt **- путь до файла сертификатов вашего сайта и центра сертификации
**/etc/ssl/private.key **- путь к файлу вашего закрытого ключа**_Пример файла ssl.conf:_**_
```
# If they come here using HTTP, bounce them to the correct scheme
# Nginx internal code used for the plain HTTP requests
# that are sent to HTTPS port to distinguish it from 4XX in a log and an error page redirection.
error_page 497 https://$host$request_uri;
```
_# Increase keepalive connection lifetime
keepalive_timeout 70;
keepalive_requests 150;# SSL encryption parameters
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESG$
ssl_prefer_server_ciphers on;ssl_certificate /etc/ssl/mydomain.crt;
ssl_certificate_key /etc/ssl/private.key;# performance
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
- Теперь нужно активировать опцию **SSL **в консоли управления **1C-Битрикс**. Для этого отключитесь от сервера, а затем повторно подключитесь к нему по SSH.
В открывшейся консоли **Available Actions **вводим **6 (Manage sites in the pool)**, а затем **5 (Change https settings on sites).**
Если на вашем сервере Битрикс установлен только один веб-сайт, можно просто нажать** Enter** в ответ на запрос имени сайта** (Enter site name). **Если же сайтов несколько, введите название веб-сайта, для которого вы устанавливаете SSL-сертификат и нажмите** Enter. **В ответ вам будет предложено отключить доступ по** HTTP **(незащищенному протоколу) для данного сайта**. **Если вы хотите сохранить такой доступ, нажмите** n. **Если вы хотите, чтобы сайт теперь был доступен только по защищенному протоколу** https, **нажмите** Y.**
- Перезагрузите сервер:
```
reboot
```
## Проверка настроек
На этом процедура установки SSL-сертификата на CMS **1С-Битрикс** завершена. Для проверки корректности настроек откройте откройте ваш-веб сайт в браузере по протоколу **https (например, https://mydomain.ru)**. Если сертификат установлен корректно, в адресной строке вашего браузера вы увидите иконку замка, при клике на которую будет отображена информация о приобретенном вами SSL-сертификате.
https://serverspace.uz/support/help/installsslapache.mdУстановка SSL-сертификата на веб-сервер Apache под управлением ОС Linux: Ubuntu, Debian, CentOS. Загрузка файлов на сервер, настройка Apache
После генерации CSR-запроса и [заказа SSL-сертификата](https://serverspace.uz/services/ssl/) через панель управления необходимо установить полученные сертификаты **.CRT** и **.CA** на сервер. Эта пошаговая инструкция поможет вам установить приобретенный SSL-сертификат на веб-сервер Apache под управлением [Linux](https://serverspace.uz/services/virtual-server-vds/linux/): Ubuntu, Debian или CentOS.
**В Serverspace вы можете создать сервер с уже установленным приложением Apache.**
После получения SSL-сертификата файлы для его установки появятся в панели управления (меню SSL):
**.CA** - файл цепочки сертификатов Центра Сертификации (Certificate Authority).
**.CRT** - файл сертификата для вашего сайта (сайтов).
## Загрузка необходимых файлов на веб-сервер
Прежде всего, необходимо загрузить представленные в панели файлы **.ca** и **.crt** на веб-сервер. Если ваш сервер не имеет графического окружения рабочего стола, вы можете загрузить эти файлы на другой компьютер, а затем перенести их одним из приведенных ниже способов.
**_Примечание_**_: подразумевается, что необходимая для работы пара** закрытый/открытый ключ** была сгенерирована на том же веб-сервере, на который вы будете переносить приобретенный сертификат. Если вы создавали ключи на другой машине, вам необходимо также **перенести файл закрытого ключа .key** на ваш веб-сервер по аналогии с описанной ниже процедурой копирования файлов сертификатов._
### Перенос сертификатов с компьютера Linux/Mac OS:
Самый простой способ загрузки сертификатов на сервер - опция [SCP](https://ru.wikipedia.org/wiki/SCP), встроенная в возможность терминала вашего компьютера:
- Загрузите файлы **.CA** и **.CRT** из панели управления на локальный компьютер.
- Откройте терминал и перейдите в папку, в которую вы сохранили сертификаты (напр., Downloads):
```
cd ~/Downloads
```
Скопируйте **сертификаты вашего сайта и Центра Сертификации** на веб-сервер:
```bash
scp crt.crt ca.crt user@1.22.33.444:/etc/ssl
```
**Где:**
**scp** - команда копирования файлов
**mydomain.ru_crt.crt** - имя загруженного из панели файла сертификата вашего веб-сайта
**mydomain.ru_ca.crt** - имя загруженного из панели файла сертификата Центра Авторизации
**user** - имя вашего пользователя для подключения к серверу через ssh (часто используется root)
**1.22.33.444** - IP-адрес вашего веб-сервера
**/etc/ssl** - директория на удаленном сервере, в которую в хотите сохранить загружаемые файлы.
### Перенос сертификатов с компьютера Windows:
- Установите программу **WinSCP**. Скачать ее можно [здесь](https://winscp.net/download/WinSCP-5.9.1-Setup.exe).
- Запустите WinSCP. В открывшемся окне введите данные, которые вы используете для подключения к вашему серверу по SSH.
В левой части окна программы отображаются файлы на локальном компьютере, в правой - на подключенном удаленном сервере. Выберите или создайте директорию, в которую вы хотите сохранить сертификаты, в правой части окна. Перетащите файлы **.CA** и **.CRT** в эту директорию из левой части окна.
**_Примечание: _**_для удобства в дальнейшем рекомендуем перенести файл закрытого ключа **(.key) **в ту же директорию, в которую вы скопировали файлы сертификатов. Вы можете не делать этого, но таком случае запомните путь до этого файла и в дальнейшем укажите его в файле конфигурации Apache вместо пути, приведённого в нашем примере._
_Если закрытый ключ **.key** был сгенерирован непосредственно на сервере, то для его копирования в другую директорию вы можете использовать команду:_
```
cp /home/root/private.key /etc/ssl/private.key
```
_**Где:**
**cp** - команда копирования
**/home/root/ **- путь до файла ключа
**private.key** - имя файла ключа
**/etc/ssl/private.key** - путь, по которому необходимо скопировать файл ключа_
_Удалить файл ключа из старого расположения вы можете с помощью команды:_
```
rm /home/root/private.key
```
_(синтаксис команды аналогичен предыдущему примеру)_
## Настройка веб-сервера Apache на использование SSL-сертификата
После копирования файлов сертификата сайта и Центра Сертификации необходимо **отредактировать параметры вашего веб-сервера Apache**. Для этого подключитесь к вашему серверу по [SSH](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/) от имени пользователя **root** и выполните следующие операции:
- Активируйте использование опции **SSL **веб-сервером Apache:
**Ubuntu/Debian:**
```
a2enmod ssl
```
**CentOS:**
```bash
yum install mod_ssl
```
- Откройте файл конфигурации сайта, для которого вы хотите установить SSL-сертификат.
Например, если параметры веб-сайта хранятся в файле **/etc/apache2/sites-enabled/000-default.conf**:
```
nano /etc/apache2/sites-enabled/000-default.conf
```
_**Примечание: **На **Ubuntu/Debian** файлы параметров сайтов Apache как правило находятся в директории **/etc/apache2/sites-enabled/ .** На **CentOS **стандартное расположение - **/etc/httpd/conf.d/**
Для поиска нужной конфигурации вы можете использовать команду **ls /директория/конфигураций (напр. ls /etc/apache2/sites-enabled)**, которая отображает полный список файлов в указанной директории.
Затем с помощью команды **nano **вы можете открыть определенный файл (напр. **nano /etc/apache2/sites-enabled/000-default.conf**). Проверить, что открытый файл действительно является конфигурацией вашего сайта можно, найдя в нем строку **ServerName**. Ее значение должно соответствовать домену, для которого вы устанавливаете SSL-сертификат (напр. **www.mydomain.ru)
Примечание для CentOS: **если редактор **nano **не установлен на вашем сервере, вы можете установить его с помощью команды **yum install nano**_
- Добавьте приведенные ниже параметры в открытый файл конфигурации:
```
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
```
**Где:**
**/etc/ssl/mydomain.ru_crt.crt **- путь до файла сертификата вашего сайта
**/etc/ssl/mydomain.ru_ca.crt** - путь до файла цепочки сертификатов Центра Сертификации (CA)
**/etc/ssl/mydomain.ru_key.key **- путь к файлу вашего закрытого ключа**Примечание: **если вы хотите, чтобы после установки SSL-сертификата ваш сайт был доступен только по безопасному протоколу **https (порт 443)**, отредактируйте файл его конфигурации по аналогии с приведенным ниже **Примером 1. **Если же вы хотите, чтобы сайт также оставался по-прежнему доступен по незащищенному протоколу **http (порт 80)**, воспользуйтесь **Примером 2.
Вносимые изменения выделены жирным шрифтом.**_Пример 1 (только HTTPS):__
```xml
**** # The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
** SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key**
```
__ **Пример 2 (HTTPS + HTTP):** __
```xml
****
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
** SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key**
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
```
_
- Перезапустите сервис **apache**:
**Ubuntu/Debian:**
```
/etc/init.d/apache2 restart
```
**CentOS:**
```
apachectl restart
```
- Если на вашем сервере настроен файрволла **iptables**, вам необходимо разрешить входящие подключения по протоколу **https (порт 443) **для вашего файрволла. Для этого воспользуйтесь документацией к вашей ОС, т.к. в разных дистрибутивах Linux работа с iptables осуществляется по разному. Ниже приведено несколько примеров:
**Ubuntu 16.04:**
```
ufw allow 443/tcp
```
**Debian:**
```
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
```
**CentOS:**
```
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
```
## Проверка настроек
На этом процедура установки SSL-сертификата на веб-сервер Apache завершена. Для проверки корректности настроек откройте откройте ваш-веб сайт в браузере по протоколу **HTTPS (например, https://mydomain.ru)**. Если сертификат установлен корректно, в адресной строке вашего браузера вы увидите иконку замка, при клике на которую будет отображена информация о приобретенном вами SSL-сертификате.
https://serverspace.uz/support/help/firewall-nastrojka-seti.mdИнструкция по настройке правил Firewall для сетей виртуальных серверов в панели управления Serverspace для фильтрации трафика
Краткий курс по изменению и добавлению правил брандмауэра виртуальных серверов с помощью панели управления сетью.
### Зачем это нужно?
При помощи брандмауэра, который настраивается непосредственно при помощи панели управления, появляется возможность контролировать доступ к серверам в общедоступной сети, а также управлять передачей входящего и исходящего трафика. Эта функция не требует дополнительной оплаты и включена в общую цену сети. Если вам потребуется больше, чем существующее сейчас ограничение в 50 правил для настройки межсетевого экрана, то вы можете обратиться в [техническую поддержку](https://my.serverspace.ru/support) с запросом на увеличение этого лимита.
## Сетевая архитектура
Чтобы избежать конфликта правил брандмауэра и правильно настроить его, важно знать последовательность действий для уже существующих. Сначала можно изменить брандмауэр для локальной сети. Затем через панель управления следует настройка брандмауэра для сервера . Наконец, можно настроить брандмауэр внутри ОС, такой как iptables в ОС Linux или встроенный брандмауэр для Windows.
При обработке входящего трафика в первую очередь применяются правила на уровне сети (в случае их установки). Если проверку прошел пакет, то применяются правила серверного уровня, и в конце применяется внутри ОС. Однако, при обработке исходящих пакетов действия выполняются в обратной последовательности:
## Создание правила
Настройка ограничений доступа возможна в меню Firewall в разделе сетевых настроек.
Важно:
- нужно учитывать непосредственно порядок правил. Чем меньше число, тем выше приоритет правила. Для изменения порядка используйте функцию Drag and Drop, перетаскивая правило левой кнопкой мыши в нужное положение;
- В отключенном состоянии входящий и исходящий трафик пропускается через маршрутизатор;
Трафик, который не соответствуют ни одному правилу, может быть разрешен или запрещен, по умолчанию разрешен. Для добавления правила нажимаем кнопку **Добавить**:
После этого появится окно создания правила, где вам нужно будет заполнить графы:
- **Name** - имя нового правила должно быть понятным пользователю и состоять из не больше, чем 50 символов. Обычно оно минимально описывает назначение этого правила;
- **Action** - Для действия, которое должно быть применено, доступно два варианта: "Allow" (разрешить) или "Deny" (запретить). "Allow" позволяет пересылку данных, а Deny запрет;
- **Source/Destination** - необходимо внести IP-адрес сервера или выбрать один из следующих вариантов: IP-адрес, CIDR, диапазон IP-адресов, any (любой), internal (внутренний) и external (внешний);
- **SourcePort/DestinationPort** - Если выбран протокол TCP, UDP или TCP and UDP ,то можно либо указать порт, либо диапазон портов, либо any;
- **Protocol** - тип сетевого протокола, доступно ANY, TCP, UDP, TCP and UDP и ICMP.
Для применения изменений нажмём **Сохранить.**
В данном случае, правило запрещает принимать входящий TCP трафик в диапазоне адресов 111.111.111.102-111.111.111.104:
Для активации созданного правила необходимо нажать на **Сохранить**. Можно добавить несколько правил и сохранить их одновременно.
По завершении, страница будет иметь примерно такой вид:
## Пример настройки правил
Если номер правила ниже в списке, то его приоритет выше. К примеру, после создания правила, которое запрещает входящие TCP-соединения в некоем диапазоне адресов, мы сделаем правило, позволяющее входящие TCP-соединения на порт 443 с исходящим портом 443. Если сохранить эти настройки, порт 443 по-прежнему останется недоступным, так как запрещающее правило обладает более высоким приоритетом:
Для изменения приоритета правил, переместите разрешающее правило на верхнюю позицию, используя левую кнопку мыши, и сохраните внесенные изменения.
После сохранения порядок номеров правил поменяется, и их приоритет тоже соответственно изменится:
В новой конфигурации брандмауэра разрешены входящие TCP-соединения на порт 443 в определенный диапазон адресов. Однако TCP-пакеты, не соответствующие этим критериям, не будут пропускаться, а все другие не попадающие под эти правила пакеты, будут переданы в сеть.
https://serverspace.uz/support/help/sozdanie-marshruteziruemoi-seti.mdВ инструкции описано создание и настройка маршрутизируемой (routed) сети в панели управления Serverspace. Что такое Routed сеть?
Инструкция по созданию и настройке маршрутизируемой сети в панели управления.
### Что такое Routed сеть?
Маршрутизируемая (Routed) сеть - это частная сеть, к которой уже подключен маршрутизатор с публичным интерфейсом. Все виртуальные серверы в такой сети могут выходить в Интернет через маршрутизатор и принимать входящие подключения, используя NAT.
Стоимость сети складывается из 1 внешнего IP-адреса маршрутизатора и ширины канала связи.
### Как создать маршрутизируемую сеть?
Для создания сети в вертикальном меню слева выберете раздел **Сети** и нажмите кнопку **Добавить сеть**.
В качестве типа выберете **Маршрутизируемая**. Выберете ЦОД, в котором будет создана сеть. При необходимости укажите использование DHCP - в этом случае сетевые настройки будут получены автоматически. Далее с помощью ползунка укажите необходимую ширину канала связи.
Затем укажите адрес сети в CIDR формате. Введенный адрес должен принадлежать одному из указанных диапазонов: 10.0.0.0 — 10.255.255.0, 100.64.0.0 — 100.127.255.0, 172.16.0.0 — 172.31.255.0, 192.168.0.0 — 192.168.255.0.
На последнем шаге введите удобное название и нажмите **Создать**.
Для подключения сервера к сети переведите тумблер Подключить в активное состояние и нажмите **Сохранить**. Возможно подключить только серверы расположенные в ЦОДе, в котором эта сеть находится. При подключении к сети на ваш виртуальный сервер будет добавлен еще один сетевой адаптер, который необходимо настроить на уровне операционной системы.
Во вкладке **Firewall** для маршрутизируемой сети можно настроить брандмауэр. О том, как создавать правила написано в нашей [инструкции](https://serverspace.uz/support/help/firewall-nastrojka-seti/).
Во вкладке **VPN** можно настроить VPN-туннелирование. Описание правил создания тоннелей находится [здесь](https://serverspace.uz/support/help/nastroika-vpn-v-paneli-upravleniya/).
Во вкладке NAT возможно создать правила преобразования адресов, более подробно описано в нашей [инструкции](https://serverspace.uz/support/help/nastroika-nat-v-paneli-upravleniya/).
Для удаления сети во вкладке **Удалить** подтвердите удаление и нажмите соответствующую кнопку. Также, можно удалить сеть из списка сетей, нажав на крестик.
https://serverspace.uz/support/help/nastrojka-salt-master-minions-na-ubuntu.mdИнструкция по работе с Salt на VPS сервере с Ubuntu 18.04. Основные компоненты, которые содержит Salt. Что такое Salt Master и Salt Minions
Инструкция по настройке взаимодействия Salt Master и Salt Minions на серверах под управлением операционной системы Ubuntu 18.04.
## Что такое Salt?
Salt — это платформа с открытым исходным кодом для управления инфраструктурой, построена на динамической коммуникационной шине. Salt может использоваться для управления конфигурацией для любого набора систем или приложений, для управления данными, для удаленного запуска команд и т.д.
## Сетевая архитектура Salt
Два основных компонента, которые содержит Salt это один Salt Master и несколько Salt Minions:
**Salt Master (Мастер)** - это центральная система управления, используемая для отправки команд и конфигураций в Salt Minion (ноды).
**Salt Minions (Ноды, Миньоны) **- это системы, которые работают на управляемых серверах и получают команды и конфигурации от мастера.
Для настройки взаимодействия потребуется минимум 2 виртуальных сервера, один для мастера и один для узла. Настройка всех узлов выполняется аналогично.
## Установка Salt
[step num="1"]
Следующие действия необходимо выполнить как Master-сервере, так и на управляемых узлах.
[/step]
[step num="2"]
Для начала необходимо импортировать ключ репозитория:
```bash
wget -O -
https://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
```
[/step]
[step num="3"]
Затем необходимо добавить репозиторий с помощью следующей команды:
```
echo "deb http://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest bionic main" | sudo tee /etc/apt/sources.list.d/saltstack.list
```
[/step]
[step num="4"]
Обновите список системных пакетов:
```bash
sudo apt update
```
[/step]
[step num="5"]
Установите пакеты Salt, для Master:
```bash
sudo apt -y install salt-api salt-cloud salt-master salt-ssh salt-syndic
```
[/step]
[step num="6"]
для Minion:
```bash
sudo apt -y install salt-minion
```
[/step]
[step num="7"]
Откройте следующие порты, чтобы компоненты могли взаимодействовать по сети:
```
sudo ufw allow proto tcp from any to any port 4505,4506
```
[/step]
## Настройка Salt Master
[step num="8"]
С помощью текстового редактора, например vi, откройте файл /etc/salt/master:
```
vi /etc/salt/master
```
[/step]
[step num="9"]
Найдите директиву:
```
#interface: 0.0.0.0
```
[/step]
[step num="10"]
Раскомментируйте найденную строку и вместо 0.0.0.0 укажите IP-адрес сервера:
```
interface: 121.122.121.122
```
[/step]
[step num="11"]
После внесения изменений перезагрузите службу:
```
/etc/init.d/salt-master restart
```
[/step]
[step num="12"]
Выведите на экран главный ключ, который необходим для подключения управляемых узлов, выполнив следующую команду:
```
salt-key -F master
```
[/step]
Ожидаемый вывод:
```yaml
Local Keys:
master.pem: c2:2b:2f:5f:91:f2:c3:8b:99:35:50:f9:eb:3f:5b:d7:e4:8d:c1:a2:50:9a:04:f9:e9:75:1b:3a:13:b3:24:0e
master.pub: 10:e1:34:61:07:03:ba:aa:c2:56:61:ba:bb:1c:af:34:55:e9:a4:66:a1:35:73:00:17:9f:2f:98:d7:71:f3:09
```
[step num="13"]
Скопируйте содержимое строки master.pub прямо из консоли.
[/step]
## Настройка Salt Minion
[step num="14"]
По умолчанию Salt Minion пытается подключиться к DNS-имени "salt". С помощью текстового редактора, например vi, откройте файл /etc/hosts:
```
vi /etc/hosts
```
[/step]
[step num="15"]
Укажите IP-адрес Master Salt и имя salt, например, так:
```
121.122.121.122 salt
```
[/step]
[step num="16"]
Установите идентификатор для вашей ноды, для этого откройте файл:
```
vi /etc/salt/minion_id
```
[/step]
[step num="17"]
И вставьте любое удобное и понятное название без пробелов, например:
```
ubuntu-sys
```
[/step]
[step num="18"]
Откройте файл конфигурации ноды:
```
vi /etc/salt/minion
```
[/step]
[step num="19"]
Найдите директиву master_finger и вставьте скопированный ключ master.pub, как показано в примере:
```
master_finger: '10:e1:34:61:07:03:ba:aa:c2:56:61:ba:bb:1c:af:34:55:e9:a4:66:a1:35:73:00:17:9f:2f:98:d7:71:f3:09'
```
[/step]
[step num="20"]
Сохраните изменения и выполните перезагрузку службы:
```
/etc/init.d/salt-minion restart
```
[/step]
## Настройка ключей
[step num="21"]
Затем подключитесь к Master-ноде и проверьте появившиеся ключи:
```
salt-key -L
```
[/step]
Ожидаемый вывод:
```
Accepted Keys:
Denied Keys:
Unaccepted Keys:
ubuntu-sys
Rejected Keys:
```
[step num="22"]
Примите ключ:
```
salt-key --accept='ubuntu-sys'
```
[/step]
Перед вами появится следующее диалоговое окно:
```
The following keys are going to be accepted:
Unaccepted Keys:
ubuntu-sys
Proceed? [n/Y] Y
Key for minion ubuntu-sys accepted.
```
Для проверки выполните следующую команду:
```
salt-key -L
```
## Проверка Master-Minion соединения
[step num="23"]
Проверьте связь между Мастером и Миньоном, выполнив команду test.ping:
```
salt ubuntu-sys test.ping
ubuntu-sys:
True
```
[/step]
[step num="24"]
Чтобы проверить связь между мастером и всеми нодами, используйте команду:
```
salt '*' test.ping/noindex>
```
https://serverspace.uz/support/help/installing-and-configuring-the-wamp-server.mdWAMP-сервер является реализацией классического LAMP-сервера (Apache, PHP, MySQL), но для ОС семейства Windows. Перед настройкой WAMP-сервера установим недостающие библиотеки.
WAMP-сервер является реализацией классического LAMP-сервера, но для ОС семейства Windows. В данный дистрибутив входит Apache, PHP, MySQL и автоматический установщик расширений.
[step num="1"]
Перед установкой WAMP-сервера установим недостающие библиотеки - Visual C++ Redistributable for Visual Studio 2015. Для этого переходим по [ссылке](https://www.microsoft.com/en-us/download/details.aspx?id=48145). Для удобства выбираем язык отображения страницы нажимаем на кнопку Download / Загрузить.
[/step]
[step num="2"]
Страница обновится, выбираем разрядность дистрибутива и кликаем по кнопке Next / Далее.
[/step]
[step num="3"]
Дожидаемся полной загрузки пакета. Устанавливаем его по принципе "Далее-Готово".
[/step]
[step num="4"]
Аналогичным образом устанавливаем:
- [Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)](https://www.microsoft.com/en-us/download/confirmation.aspx?id=2092)
- [Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)](https://www.microsoft.com/en-us/download/details.aspx?id=13523)
- [Visual C++ Redistributable for Visual Studio 2012 Update 4](https://www.microsoft.com/en-us/download/details.aspx?id=30679)
- [Update for visual C++ 2013 Redistributable Package](https://support.microsoft.com/en-us/help/4032938/update-for-visual-c-2013-redistributable-package)
[/step]
[step num="5"]
Переходим на сайт проекта WAMP по [ссылке](http://www.wampserver.com/ru/). Открываем раздел "Загрузка"
[/step]
[step num="6"]
Дожидаемся полной загрузки файла и запускаем его.
[/step]
[step num="7"]
В самом начале, программа предлагает выбрать язык для всего процесса установки. Выбираем по удобству. В нашем случае будет английский. Кликаем по кнопке "OK".
[/step]
[step num="8"]
Внимательно читаем лицензионное соглашение. Если все устраивает - принимаем условия и продолжаем установку.
[/step]
[step num="9"]
На следующем этапе программа предложит ознакомиться с информацией по установке.
[/step]
[step num="10"]
Данная информация напоминает о необходимости отключить IIS сервер и обновить пакеты Visual C++.
[/step]
[step num="11"]
Выбираем путь установки. По умолчанию "C:wamp". Важно, чтобы на диске было свободно более 2,5Гб. Если все устраивает, нажимаем "Далее" (Next).
[/step]
[step num="12"]
На следующем шаге, программа предложит создать ярлык в меню Пуск. Кликаем "Далее" (Next).
[/step]
[step num="13"]
Проверяем параметры установки и кликаем "Установить" (Install).
[/step]
[step num="14"]
Дожидаемся окончания процесса установки.
[/step]
[step num="15"]
В процессе установки может появиться вопрос об использовании Internet Explorer в качестве браузера WAMP-сервера. Если желаете выбрать другой браузер, нажимаем кнопку "Да". В этом случае будет необходимо указать exe-файл нового браузера.
[/step]
[step num="16"]
Если установлены все вышеперечисленные обновления, сервер WAMP-запустится в системном трее.
[/step]
[step num="17"]
Проверяем работу сервера. Для этого перейдем по ссылке http://127.0.0.1.
[/step]
[step num="18"]
Н**астроим Apache.**
[/step]
[step num="19"]
Разрешим подключение для всех, а не только для локальных пользователей. Отредактируем файл C:wamp64binapacheapache2.4.39confhttpd.conf.
В данном конфигурационном файле необходимо отыскать секцию:
```
```
Заменяем значение "Require local"на "Require all granted".
[/step]
Сохраняем изменения и закрываем файл.
[step num="20"]
Теперь отредактируем файл C:wamp64binapacheapache2.4.39confextrahttpd-vhosts.conf. Заменяем параметры и значения секции Directory на:
```
Options FollowSymLinks
```
```
AllowOverride All
```
```
Order deny,allow
```
```
allow from all
```
[/step]
Сохраняем и закрываем файл.
[step num="21"]
Перезапускаем WAMP-сервер. Для этого кликаем по значку в трее правой кнопкой мыши и выбираем Refresh.
[/step]
[step num="22"]
Для проверки работы www-сервера, создадим html-файл в корне сайта. Для этого открываем Блокнот и наполняем его html-кодом. Затем сохраним файл по пути C:wamp64wwwindex.html
[/step]
[step num="23"]
Теперь с другого компьютера откроем файл. Это можно сделать по доменному имени, если оно приобретено и настроено, либо по IP-адресу. В качестве примера:
```
http:///index.html
```
```
http:///index.html
```
[/step]
[step num="24"]
Для того, чтобы узнать свой IP-адрес, достаточно открыть командную строку или окно PowerShell и выполнить команду:
```
ipconfig
```
[/step]
Открываем.
[step num="25"]
Важно! Правила Брандмауэра Windows должны разрешать подключение к 80 и 443 TCP-портам.
[/step]
[step num="26"]
Настройка phpMyAdmin
На главной странице сервера, в самом низу, слева, в секции Tools кликаем по phpmyadmin.
[/step]
[step num="27"]
Страница откроется по адресу http://127.0.0.1/phpmyadmin/.
[/step]
[step num="28"]
Web-приложение запросит логин и пароль. По умолчанию, логин - root, пароль следует оставить пустым. Также следует выбрать используемую СУБД и кликнуть по кнопке "Вперед".
[/step]
[step num="29"]
После успешной авторизации можно добавить пользователей, если в этом есть необходимость, а также изменить пароль пользователя root. Перейдем на вкладку "Учетные записи пользователей". В строке пользователя root кликнем по редактировать привилегии.
[/step]
[step num="30"]
Страница обновится, кликаем по "Изменить пароль". Вводим пароль и его подтверждение. Кликаем по кнопке "Вперед".
[/step]
Важно понимать. что root является пользователем с наивысшими привилегиями. Пароль должен быть сложным.
[step num="31"]
По окончании настроек перезапускаем сервер аналогично тому, как это было показано выше.
https://serverspace.uz/support/help/installing-git-on-windows.mdПроцесс установки Git, а также настройка подключения к репозиторию GitHub на выделенном сервере под управлением ОС Windows. Инструкция по Git для программистов и системных администраторов.
Система контроля версий Git полезна не только для программистов но и для системных администраторов. Рассмотрим процесс установки программного обеспечения, а также настройки подключения к репозиторию GitHub, на сервере под управлением ОС Windows.
Немного теории.
Git - одна из популярных современных систем контроля версий. В основном используется разработчиками программного обеспечения с целью отслеживания изменений в программных продуктах в ходе их разработки. Изначально Git создали для помощи в разработке ядра Linux, однако из-за своих преимуществ, проект ушел в массы.
Приступаем к установке.
Открываем официальный сайт [проекта](https://git-scm.com/download/win), кликаем по 64-битной версии для Windows.
.
Загрузка начнется автоматически, дожидаемся ее окончания. Запускаем полученный файл.
Программа установки приветствует нас лицензионным соглашением. Кликаем по кнопке "Next".
На следующем шаге указываем путь установки. Нас устраивает указанный по умолчанию. Кликаем "Next".
На этапе выбора компонентов, отметим галочкой создание ярлыка Git на рабочем столе и переходим к следующему этапу.
Теперь программа установки предлагает создать ярлык в меню Пуск. Если в этом не видите необходимости, установите соответствующую галку. Кликаем по кнопке "Next".
На следующем этапе, установщик предложит выбрать редактор для git по умолчанию. Для новичков лучше использовать nano, для тех, кто любит посложнее - Vim. Хотя допускается использование Notepad++ и прочего. Переходим к следующему шагу.
Теперь программа установщик спрашивает как Вы собираетесь использовать командную строку:
- Use Git from Git Bash only - использование только из командной строки Bash.
- Use Git from the Windows Command Prompt - использование командной строки Bash, а также минимальный набор команд Git из командной строки Windows.
- Use Git and optional Unix tools from the Windows Command Prompt - использование Git и утилит Unix из командной строки Windows. При выборе этой опции будут перезаписаны некоторые утилиты ОС Windows, например find и sort.
Оставляем первый вариант и двигаемся дальше.
Теперь установщик спрашивает о том, какую библиотеку следует использовать для HTTPS-соединений. Оставляем openssl и переходим к следующему шагу.
Следующий шаг можно назвать самым значимым. Вопрос программы установки в том, какой формат завершения строки использовать. Одной из отличительных особенностей Windows от Unix-подобных систем - символ перехода на новую строку в файлах, а именно, LF и CRLF - управляющие символ для переноса строки в Unix и Windows соответственно.
Мы рекомендуем выбрать параметр предложенный системой - отладка файла в формате Windows, а загрузка файла - в Unix-формате. Кликаем по кнопке "Далее".
На данном этапе, программа запросит каким терминалом пользоваться далее:
- MinTTY - терминал Unix;
- Windows - стандартный терминал (командная строка) Windows.
В нашем случае оставляем "как есть" и двигаемся дальше.
На следующем шаге, установщик попросит отметить необходимые функции:
- File system caching - кэширование файловой системой.
- Git Credential Manager - включить менеджер учетных данных.
- Symbolic links - разрешить использование символьных ссылок.
Выбираем то, что необходимо и переходим к следующему шагу.
На данном шаге, программа установки предлагает использовать экспериментальную опцию. Использовать ее или нет - решать Вам. Кликаем по кнопке "Install".
Программа приступает к копированию файлов. Дожидаемся окончания процесса.
По окончании процесса установки нажимаем "Finish".
Подключаемся к репозиторию.
Предполагается, что у вас уже есть своя учетная запись на github/gitlab. Если нет, то, в случае с github, проходим несложный процесс регистрации на [сайте](https://github.com/). Затем авторизуемся на нем и создаем репозиторий. Для этого кликаем по кнопке "Start a project".
Указываем имя репозитория и кликаем по кнопке "Create repository".
Репозиторий создан.
Добавляем файлы.
Предположим, что у нас есть файл, который необходимо добавить в репозиторий git или gitlab. Открываем папку, где располагается файл, кликаем правой кнопкой мыши по свободному месту и из открывшегося контекстного меню выбираем "Git Bash Here".
Откроется командная строка. Последовательно выполняем следующие команды:
```bash
git config --global user.email "youmail@example.com"
```
```bash
git config --global user.name "Ваше имя"
```
Таким образом мы указали нашу почту и имя.
Для того, чтобы начать отслеживать изменения в текущей папке, выполняем следующие команды:
```bash
git init
```
```bash
git add .
```
Выполняем свой первый коммит и добавляем изменения на сервер:
```bash
git commit -m "Init"
```
Важно. Чтобы внести изменения на сервер, следует использовать для github:
```bash
git remote add origin https://github.com/пользователь/название_репозитория.git
```
```bash
git push -u origin master
```
Для gitlab:
```bash
git remote add gitlab https://server/namespace/project.git
```
```bash
git push -u gitlab master
```
После запуска команды, откроется окно авторизации. Вводим данные, которые использовали при регистрации.
Настройка аутентификации по SSH-ключам.
Для начала создадим ключ:
```bash
ssh-keygen -t rsa -b 4096 -C "[yourmail@gmail.com](mailto:yourmail@gmail.com)"
```
В ходе генерации ключа, программа запросит ввод парольной фразы, которая необходима для защиты самого ключа. Можно ответить на вопрос двойным нажатием на Enter.
Закрытый ключ будет находиться по пути C:Users.sshid_rsa. Открытый ключ - C:Users.sshid_rsa.pub
Запускаем SSH-агента:
```
eval $(ssh-agent -s)
```
Добавляем ключи к ssh-агенту:
```bash
ssh-add ~/.ssh/id_rsa
```
Добавляем созданный ключ на сервер Git. На сайте github, в верхнем правом углу, кликаем по иконке учетной записи, выбираем "Setting".
На обновленной странице, в левом меню, выбираем "SSH and PGP keys", а в основной части окна, напротив SSH keys, кликаем по кнопке "New SSH key".
Заполняем поле Title. В поле Key вставляем содержимое файла C:Users.sshid_rsa.pub
Кликаем по кнопке "Add SSH key".
Если все выполнено правильно, появится примерно такая запись:
Для проверки настроек, выполняем команду:
```bash
ssh -T git@
```
Например:
```bash
ssh -T [git@github.com](mailto:git@github.com)
```
В ходе выполнения команды, программа запросит: "Уверены ли вы в продолжении соединения". Это стандартный вопрос безопасности. Отвечаем - yes.
Если все выполнено правильно, программа выведет приветственную речь.
https://serverspace.uz/support/help/ustanovka-fsharp-na-ubuntu-server-18-04.mdПроцесс установки F# с помощью .NET Core и Mono на Linux Ubuntu 18.04, примеры компиляции программного кода F#. Что такое F# ? Инструкция Serverspace.
В инструкции описана установка языка программирования F# на виртуальный сервер Ubuntu Server 18 с помощью .NET Core и Mono, а также примеры компиляции программного кода F#.
**Что такое F# ?**
F# - это зрелый кроссплатформенный функциональный язык программирования с открытым исходным кодом. Он позволяет пользователям и организациям решать сложные вычислительные проблемы с помощью простого, удобного в обслуживании и надежного кода.
Преимущества F#:
- Простота - простой язык, который легко изучить;
- Сильная среда разработки для клиентских и серверных приложений Windows;
- F# Interactive - запуск кода непосредственно в IDE, идеально подходит для написания сценариев и тестирования;
- Проверка статического типа - ловит много ошибок во время компиляции;
- Автоматическое обобщение - функции по мере возможности автоматически делаются обобщенными.
**Установка F# с помощью .NET Core**
Microsoft предоставляет .NET Core Software Development Kit (SDK) для разработчиков на F#. NET Core Software Development Kit (SDK) - это набор библиотек и инструментов, которые позволяют разработчикам создавать приложения и библиотеки .NET Core. Он как правило поддерживает несколько языков программирования, имеет среду выполнения и компилятор. На этом этапе будет выполнена установка SDK.
После того, как вы [подключились к виртуальному серверу](https://serverspace.uz/support/help/kak-podklyuchitsya-k-virtualnomu-serveru/) и открыли терминал, с помощью команды wget выполните загрузку пакетов из репозитория Microsoft:
```bash
wget -q [https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb](https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb)
```
Добавьте репозиторий Microsoft и установите пакеты в вашу систему, используя инструкцию dpkg -i:
```
sudo dpkg -i packages-microsoft-prod.deb
```
Добавьте репозиторий Universe, который даст доступ к зависимости apt-transport-https для передачи пакетов через протокол https:
```
sudo add-apt-repository universe
```
```bash
sudo apt install apt-transport-https
```
Примечание: Universe - поддерживаемое сообществом бесплатное программное обеспечение с открытым исходным кодом
Затем обновите локальный репозиторий:
```bash
sudo apt update
```
Наконец, установите актуальную версию .NET SDK. В нашей инструкции будет использована версия 2.2:
```bash
sudo apt install dotnet-sdk-2.2
```
Для проверки успешной установки .NET SDK выведите информацию:
```
dotnet --info
```
Ожидаемый вывод:
```
Welcome to .NET Core!
---------------------
Learn more about .NET Core: https://aka.ms/dotnet-docs
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
...
```
Также будет выведена информация об установке:
```yaml
.NET Core SDK (reflecting any global.json):
Version: 2.2.300
Commit: 73efd5bd87
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64
Base Path: /usr/share/dotnet/sdk/2.2.300/
Host (useful for support):
Version: 2.2.5
Commit: 0a3c9209c0
.NET Core SDKs installed:
2.2.300 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.2.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.2.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
```
Теперь .NET Core готово к использованию.
В настройках по умолчанию некоторая информация об использовании команд отправляется в Microsoft, чтобы ее отключить необходимо добавить строку в конец файла настроек среды .profile:
```
export DOTNET_CLI_TELEMETRY_OPTOUT=1
```
И активировать изменения:
```
source ~/.profile
```
Для того, чтобы воспользоваться всеми возможностями F#, например, разрабатывать кроссплатформенные и мобильные приложения, необходимо в дополнение установить F# с помощью Mono.
**Установка F# с помощью Mono**
Для установки Mono добавьте репозиторий и ключ с помощью следующих команд:
```bash
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
```
Обновите локальный репозиторий пакетов:
```bash
sudo apt update
```
С помощью следующей команды установите Mono и F#:
```bash
sudo apt install mono-complete fsharp
```
Установка Mono может занять некоторое время.
По завершении этих действий на виртуальном сервере будет установлен компилятор fsharp и fsharpi. Для активации fsharpi просто введите в консоль следующую команду:
```
fsharp
```
Чтобы проверить, что все работает верно, выведете приветственную строку:
```
printfn "Hello World!";;
```
Ожидаемый вывод:
Hello World! val it : unit = () Для выхода из оболочки используйте команду:
```
#quit;;
```
Компиляция программ на F# с помощью .NET Core
Для создания консольного проекта используйте следующую команду:
```
dotnet new console -lang F# -o FSharpHello
```
Здесь опция new создает новый проект, console означает, что проект консольный, -lang задает язык программирования, я опция -o создает директорию для проекта. После выполнения команды вы можете перейти в директорию:
```
сd FSharpHello
```
В каталоге находится файл конфигурации проекта FSharpHello.fsproj и каталог obj, который используется для хранения временных объектных файлов. А в файле Program.fs расположен исходный код. Откройте его в вашем текстовом редакторе:
```
nano Program.fs
```
В качестве содержимого файла будет автоматически сгенерирована программа, выводящая фразу "Hello World from F#!":
```
// Learn more about F# at http://fsharp.org
open System
[]
let main argv =
printfn "Hello World from F#!"
0 // return an integer exit code
```
Чтобы скомпилировать и запустить этот код, используйте следующую команду из каталога проекта ~/FSharpHello:
```
dotnet run
```
Вы увидите следующую строку в консоли:
Hello World from F#!
**Компиляция программ на F# с помощью Mono**
Создайте новый файл, например:
```
nano hello.fs
```
Добавьте следующие программные строки в файл:
```
open System
let hello() =
printf "Who are you? "
let name = Console.ReadLine()
printfn "Oh, Hello %s!nI'm F#." name
hello()
Console.ReadKey() |> ignore
```
В данной программе вызывается функция hello(), которая запрашивает имя и выводит приветствие.
Для компиляции программы выполните следующую команду, очень похожую на компиляцию программ C/C++ на Linux:
```
fsharpc hello.fs -o hello
```
Чтобы запустить скомпилированный исполняемый файл выполните следующую команду:
```
mono hello
```
В консоли появится сообщение:
Who are you?
Консоль будет ожидать ввода данных. Если вы введете Admin, то вывод будет следующий:
```
Oh, Hello Admin!
I'm F#.
```
Нажмите любую клавишу и программа завершится.
https://serverspace.uz/support/help/installsslnginx.mdИнструкция по установке SSL-сертификата на веб-сервер Nginx под управлением Linux: Ubuntu, Debian, CentOS. Загрузка файлов .ca, .crt, .key на сервер, изменение конфигурации Nginx.
Первым делом нужно сгенерировать SCR запрос через панель Serverspace. После создания SCR запросов, а также выбора сертификатов следующим логическим шагом будет установка сертификатов CRT и CA.
Прочитав статью вы сможете узнать все о том, как устанавливать SSL, а именно, на сервера Nginx, на Unix-системах Ubuntu, CentOS или Debian.
В меню SSL (его легко найти в панели Serverspace) находятся два файла:
- выданный вашему ресурсу **— ****.CRT**
- зарегистрированного центра сертификации **— ****.CA**
Загрузка SSL на сервер
Первым делом, наши **.ca** и **.crt** надо отправить на сервер. Часто Linux сервера администрируют через терминал и GUI может отсутствовать, тогда можно отправить файлы на машину с другой ОС, а уже потом переносить их. Ниже мы покажем, как это можно осуществить.
**_Важно_**_: Пара (Закрытый и открытый ключи) должна быть сгенерирована там, куда установим сами сертификаты. Однако если они были созданы на другом компьютере, на ваш сервер следует отправить закрытый ключ (его файл .key), в соответствии с описанными ниже действиями по копированию._
Перенос из Unix-подобных систем
В данном случае самым простым вариантом будет воспользоваться встроенной опцией терминала – SCP:
- Файлы **.CA** и **.CRT **скачиваются из панели serverspace на ваш компьютер.
- Открываем терминал и двигаемся в место скачивания сертификатов, например:
cd ~/MyDownloadedFiles
Загрузите все выданные сертификаты на веб-сервер:
scp yourtest.com_crt.crt yourtest.com_ca.crt login@121.122.222.111:/etc/ssl
**Детальнее:**
**scp** – копирует файлы;
**yourtest.com_crt.crt** – пример названия скаченного из панели serverspace сертификата вашего ресурса;
**yourtest.com_ca.crt** – пример названия скаченного из панели serverspace сертификата ЦА;
**login** – пользователь, что подключается через ssh (иногда им становится root)
**121.122.222.111** – IP-адрес;
**/etc/ssl** – папка, в которую вы хотите отправить сохраняемые файлы.
Загрузка через операционную систему Windows
- Первый шаг – устанавливаем **WinSCP**. Скачать её можно по[ссылке](https://winscp.net/download/WinSCP-5.9.1-Setup.exe).
- Запускаем WinSCP. Откроется окно, куда нужно вести параметры подключения по протоколу SSH к вашему.
Слева вы можете увидеть папки и файлы локальной машины, справа – файлы рабочего сервера, к которому подключились. Следует выбрать (либо создать, если такового нет) место, куда отправятся сертификаты. Используя функцию drag-n-drop, зажав левую кнопку мыши, переносите файлы **.CA** и **.CRT**.
**_Важно_**_: удобнее будет сохранить _**_.key _**_в том же месте, где уже лежат файлы сертификатов. Это необязательно, но тогда вам придется запоминать расположение этого файла и указывать этот путь при конфигурации Apache, а не путь с нашего примера._
Чтобы сделать копию .key и отправить в иную директорию, в случае генерации закрытого ключа на сервере, можно воспользоваться командой:
cp /home/root/private.key /etc/ssl/private.key
**При этом:**
**_cp_**_ – _отвечает за копирование;
**_/home/root/_ **– путь к файлу, если вы зашли "под рутом";
**_private.key_**– имя файла самого ключа;
**_/etc/ssl/private.key _**– путь, куда мы хотим скопировать ключ.
Можно воспользоваться командой и удалить ключ в старой директории:
rm /home/root/private.key
Конфигурация Nginx для SSL
Когда вы сделали копии всех необходимых сертификатов, нужно сконфигурировать Nginx. Чтобы это сделать, заходим через SSH под root-ом и делаем следующее:
1. CA (файл центра Сертификации), а также **.CRT** (файл сайта) преобразовать в один:
cat /etc/ssl/testdomain.com_crt.crt /etc/ssl/testdomain.com_ca.crt >> testdomain.crt
2. Нужно открыть файл с настройками ресурса, для которого необходим сертификат SSL.
Ниже пример, когда параметры находятся по адресу **/etc/nginx/sites-enabled/files**:
nano /etc/nginx/sites-enabled/files
**_Обратите внимание: _**_На _**_Ubuntu/Debian_**_ дистрибутивах, параметры веб-ресурсов Nginx обычно размещаются в следующей директории _**_/etc/nginx/sites-enabled/._**_ В дистрибутиве _**_CentOS _**_стандартным считается – _**_/etc/nginx/conf.d/_**_. В системах Unix-семейства хорошо работает поиск через команду _**_ls /папка/настройки (например, ls /etc/nginx/sites-enabled)_**_, которая откроет вам полный перечень файлов в каталоге._
_Дальше, используя утилиту _**_nano, _**_открываем выбранный файл (например, _**_nano /etc/nginx/websites-enabled/file_**_). Узнать, тот ли файл мы нашли, можно, найдя внутри _**_server_name_**_. Значение этой строки заменить на домен, куда устанавливается сертификат (например,_**_ website.com)._**
**_Важно для дистрибутива CentOS: _**_в случае отсутствия редактора _**_nano_**_, можно установить его следующим образом:_
yum install nano
3. Добавьте параметры из примера к вашей конфигурации:
listen 443 ssl;
ssl_certificate /etc/ssl/testdomain.crt;
ssl_certificate_key /etc/ssl/test.key;
**Не забудьте поменять на ваши:**
**/etc/ssl/test.crt **– прописать расположение ваших сертификатов;
**/etc/ssl/test.key **– прописать расположение закрытого ключа.
4. Сделаем рестарт:
**Рестарт на Debian и Ubuntu:**
/etc/init.d/nginx restart
**Рестарт на CentOS:**
service nginx restart
5. Допустим, что у вас есть настроенный **iptables **firewall**, тогда** следует открыть **443 порт**. Просто обратитесь к документации той системы, которую используете. Различные дистрибутивы Linux могут работать с iptables по-своему. Вот пара примеров:
**Для CentOS пишем:**
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
**Например, Ubuntu 16.04, более лаконичен:**
ufw allow 443/tcp
**В Debian пишем следующее:**
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
Проверяем настройки
После всех проведенных манипуляций на вашем Apache имеются готовые сертификаты SSL. Дабы удостовериться в правильности всех конфигураций, откройте ваш ресурс через любой браузер, добавив к адресу сайта (например, _http://yourwebsite.com_) букву s, чтобы получилось так: _http_**_s_**_://yourwebsite.com. _Если вы сделали всё правильно, возле url-адреса сайта будет отображен "замок". Если вы нажмете на замок, то получите информацию о SSL-сертификате.
https://serverspace.uz/support/help/installssliis.mdПошаговая инструкция по процессу установки и настройки SSL-сертификата на веб-сервер IIS 8, доступный на VPS серверах с Windows
## Вступление
**IIS 8** — веб-сервер, разработанный корпорацией Microsoft и предназначенный для хостинга веб-сайтов и приложений на платформе Windows. IIS 8 является частью операционной системы Windows Server. Он предоставляет инфраструктуру для развертывания, управления и обслуживания веб-сайтов, а также поддерживает различные протоколы и службы, такие как HTTP, HTTPS, FTP, SMTP и другие. IIS 8 также предлагает множество функций безопасности, масштабируемости и производительности для обеспечения эффективной работы веб-сайтов и приложений. В данном обзоре подробно рассмотрим процесс установки сертификатов в IIS 8.
## Работа с панелью управления
[step num="1"]
После заказа [SSL-сертификата](https://serverspace.uz/services/ssl/) через панель управления Serverspace, необходимо установить полученные сертификаты **.CRT** и **.CA** на сервер.
[/step]
[step num="2"]
После успешного заказа SSL-сертификата файлы для его установки появятся в панели управления Serverspace (меню **SSL**):
[/step]
Скриншот №1. Панель управления Serverspace
## Установка сертификата Центра Сертификации (.CA) на IIS 8
[step num="3"]
Откроем командную строку, набрав команду Win+R и далее набираем в ней mmc. Откроется Microsoft Management Console.
В появившемся окне Консоль1 (Console1), выбираем меню Файл (File) и далее пункт Добавить или удалить оснастку (Add/Remove Snap-in):
[/step]
[step num="4"]
[/step]
Скриншот №2. Добавить или удалить оснастку
Скриншот №3. Консоль1
[step num="5"]
В левой части нового окна выбираем пункт Сертификаты (Certificates) и затем нажимаем кнопку **Добавить (Add)** в середине окна:
[/step]
Скриншот №4. Добавить сертификат
[step num="6"]
В открывшейся **Оснастке диспетчера сертификатов (Certificates Snap-in)** выберите пункт **Учетной записи компьютера (Computer Account)**.
[/step]
[step num="7"]
Во вкладке **Выбор компьютера (Select Computer) **выберите **Локальный компьютер (Local Computer)** и нажмите **Готово (Finish)**.
[/step]
[step num="8"]
Закройте оснастку **Add or Remove Snap-in** нажатием кнопки ОК.
[/step]
[step num="9"]
В той же **Консоли 1 (Console 1)** выберите пункт **Промежуточные центры сертификации (Intermediate Certification Authorities)**, кликните на него правой кнопкой мыши - **Все задачи (All tasks) - Импорт (Import)**:
[/step]
Скриншот №5. Импорт сертификата
[step num="10"]
В новом окне нажмём **Далее (Next)**. Выберем загруженный из панели управления файл **.CA-сертификата** и нажмём **Открыть (Open)**:
[/step]
Скриншот №6. Открыть .CA-сертификат
[step num="11"]
На следующей вкладке выберем опцию Разместить все сертификаты в следующем хранилище, затем нажмём кнопку Обзор и выберем папку Промежуточные центры сертификации.
[/step]
[step num="12"]
Нажмём OK, завершив непосредственно процедуру импорта сертификатов.
[/step]
[step num="13"]
Закроем оснастку, отклонив запрос о сохранении изменений:
[/step]
Скриншот №7. Закрыть консоль без сохранения
## Установка SSL-сертификата сайта (.CRT) на IIS 8
Запустим Диспетчер Серверов.
В меню Средства воспользуемся Диспетчером служб IIS.
В меню Подключения слева выберем сервер, для которого раньше был создан CSR-запрос на подпись сертификата.
Заметка: CSR - Code Signing Request, так называется запрос на получение SSL-сертификата.
В центре окна откроем меню Сертификаты Сервера.
Для файла .CRT выполним такие действия:
Используя панель Действия в правой части окна, выберем опцию Завершить запрос установки сертификата:
Скриншот №8. Запрос установки сертификатов
В открывшемся окне заполним поля:
Замечание: Для сертификатов Wildcard (для домена и под доменов) укажем имя, которое соответствует значению Common Name из SSL-сертификата. (к примеру., *.mydomtech.com).
Имя файла, который содержит ответ от центра сертификации : выберем расположение для файла .crt сертификата, полученного от центра сертификации и нажмём Открыть. В поле Понятное имя вводим уникальное значение имени для SSL-сертификата. Выберем хранилище сертификатов для нового полученного сертификата : выберите Личный :
Скриншот №9. Выбор хранилища сертификатовДля сертификата в формате .PFX выполняем следующее:
В панели Действия справа найдём опцию Импортировать.
Далее в новом окне введем путь к файлу сертификата и пароль, который защищает ваш сертификат, установленный при помощи панели управления. Затем выберем хранилище:
Скриншот №10. Ввод пароля
Скриншот №11. Выбор хранилища
Дополнительные действия для сертификатов в формате .CRT и .PFX:
В меню Подключения слева в окне Диспетчера служб IIS выберем сервер с установленным SSL-сертификатом. Раскроем список сайтов на нём и выберем сайт, который требуется с помощью SSL-сертификата защитить (Привязка). На панели Действия справа в окне выберем Привязки::
Скриншот №12. Выбор сайта
[step num="23"]
В открывшемся окне нажмём **Добавить (Add)** и заполним необходимое:
[/step]
Скриншот №13. Настройки
Примечание: для привязки Wildcard сертификата необходимо отдельно привязать каждый поддомен (напр., www.mydomain.com, subdomain.mydomain.com)
- **Тип (Type):** https;
- **IP-адрес (IP address):** все неназначенные или IP адрес сервера, на котором расположен веб-сайт;
- **Имя узла (Hostname):** укажите доменное имя, для которого выпущен сертификат (напр., www.mydomain.com);
- **Порт (Port):** 443;
- **SSL-сертификат (SSL certificate):** выберите загруженный из панели Serverspace файл **.CRT-сертификата**.
[step num="24"]
В панели **Управление веб-сайтом (Manage Web-Site)** в правой части окна Диспетчера IIS нажмите **Перезапустить (Restart)** для завершения процесса установки сертификата.
[/step]
На этом процедура установки SSL-сертификата на веб-сервер IIS 8 завершена. Для проверки корректности установки перейдите на ваш веб-сайт, используя префикс **https://** (напр., https://mydomain.com). Если сертификат установлен правильно, вы увидите замок в адресной строке браузера без отображения ошибок SSL-сертификата. При нажатии на иконку замка будет отображена информация о приобретенном вами SSL-сертификате.
https://serverspace.uz/support/help/using-ansible-playbooks.mdЧто такое Ansible Playbooks? В инструкции описано использование Ansible Playbook, рассмотрена структура и регистрация событий.
В инструкции описано применение и работа с Ansible Playbook, а также кратко рассмотрена их структура.
Вы можете прочитать о том, как установить [Ansible на Ubuntu 18.04 в другой нашей инструкции.](https://serverspace.uz/support/help/ustanovka-ansible-na-ubuntu-18-04/)
## Что такое Ansible Playbooks?
Playbook в Ansible определяет серию некоторых действий для выполнения и адресованы определенным наборам серверов. В отличие от некоторых других инструментов для выполнения настроек, Playbook не описывает состояние машины, а Ansible самостоятельно определяет все изменения, которые необходимо внести. Тем не менее, плейбуки должны быть разработаны как [идемпотенты](https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B5%D0%BC%D0%BF%D0%BE%D1%82%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C), а это значит, что они могут запускаться более одного раза без негативных последствий.
Часто плейбуки используют для выполнения начальной настройки серверов - добавления пользователей и каталогов, управлением пакетами программного обеспечения и файлами.
Playbook - это [YAML-файл](https://yaml.org/), который обычно имеет следующую структуру:
```yaml
---
- hosts: [target hosts]
remote_user: [yourname]
tasks:
- [task 1]
- [task 2]
```
Например, следующий playbook будет входить на все серверы группы marketingservers и обеспечивать запуск веб-сервера Apache:
```bash
---
- hosts: [marketingservers]
remote_user: webadmin
tasks:
- name: Ensure the Apache daemon has started
service: name=httpd state=started
become: yes
become_method: sudo
```
В плейбуке выше приведен пример задания (task):
```bash
tasks:
- name: Ensure the Apache daemon has started
service: name=httpd state=started
become: yes
become_method: sudo
```
Каждое задание должно иметь имя, которое впоследствии регистрируется и может помочь отслеживать прогресс. После строки имени (name) находится модуль, который будет запущен, в данном случае это служебный модуль. Другие атрибуты разрешают больше опций, в примере Ansible разрешается использовать привилегии sudo.
## Запуск Ansible Playbook
Запустить готовый плейбук можно используя следующую команду:
```
ansible-playbook playbook.yml
```
Например:
```
ansible-playbook nginx.yml
```
Однако, если есть необходимость отфильтровать список хостов, чтобы сценарий применялся только к одному из этих хостов, можно добавить флаг и указать подмножество хостов в файле:
```
ansible-playbook -l host_subset playbook.yml
```
Например:
```
ansible-playbook -l host3 nginx.yml
```
## Регистрация результатов
Когда вы устанавливаете и настраиваете службы вручную, почти всегда необходимо знать результат действий. Настроить эту функциональность можно с помощью регистрации.
Для каждой задачи при желании возможно зарегистрировать ее результат (сбой или успех) в переменной, которую можно проверить позже. При использовании этой функциональности рекомендуется указывать Ansible игнорировать ошибки для такой задачи, так как обычно выполнение playbook прерывается в случае возникновения каких-либо проблем.
Таким образом, если необходимо проверить, выполнилась ли задача или нет и принять решение о последующих шагах, необходимо использовать функциональность регистрации.
Например, укажем playbook загрузить файл index.php, если он существует. Если эта задача не выполнится, то начнется загрузка файла index.html:
```bash
---
- hosts: droplets
tasks:
- name: Installs nginx web server
apt: pkg=nginx state=installed update_cache=true
notify:
- start nginx
- name: Upload default index.php for host
copy: src=static_files/index.php dest=/usr/share/nginx/www/ mode=0644
register: php
ignore_errors: True
- name: Remove index.html for host
command: rm /usr/share/nginx/www/index.html
when: php|success
- name: Upload default index.html for host
copy: src=static_files/index.html dest=/usr/share/nginx/www/ mode=0644
when: php|failed
handlers:
- name: start nginx
service: name=nginx state=started
```
Этот сценарий пытается загрузить файл PHP на хост. Ansible регистрирует успех операции в переменной с именем php. Если эта операция прошла успешно, следующая задача - удалить файл index.html. Если операция завершилась неудачно, будет загружен файл index.html.
https://serverspace.uz/support/help/how-to-change-rdp-account-password.mdИнструкция по изменению пароля учетной записи через «Подключение к удаленному рабочему столу» (RDP) в Windows Server 2008, 2012, 2012 R2, 2016
Одной из хороших привычек любого пользователя ПК, а тем более системного администратора, является периодическая смена паролей учетных записей. Главное потом его не забыть.
Как сменить пароль на удаленном рабочем столе:
[step num="1"]
В операционных системах семейства Microsoft Windows Server, для смены пароля, привычно использовать сочетание клавиш Ctrl + Alt + Del. проблема в том, что "три кнопки" нельзя использовать через "Подключение к удаленному рабочему столу".
Рассмотрим как правильно изменить пароль в различных версиях Windows Server.
[/step]
## Смена пароля в Windows Server 2008
[step num="2"]
В ОС Windows Server 2008 это можно сделать из меню Пуск, кликнув по **"Безопасность Windows".**
[/step]
Скриншот №1. Смена пароля через меню "Пуск"
[step num="3"]
На обновлённом экране выбираем экране выбираем **"Сменить пароль".**
[/step]
Скриншот №2. Сменить пароль
[step num="4"]
Вводим старый пароль и новый и его подтверждение.
[/step]
Скриншот №3. Выбор нового пароля
## Смена пароля в Windows Server 2012 / 2012 R2
[step num="5"]
В ОС Windows Server 2012 и Windows Server 2012 R2 несколько усложнилась задача.
[/step]
[step num="5"]
Открываем блокнот и пишем две строки:
```
set objShell = CreateObject("shell.application")
objshell.WindowsSecurity
```
[/step]
Скриншот №4. Блокнот
[step num="6"]
Сохраняем файл с расширением *.vbs (пишем вручную.). Для этого выбираем Файл -> Сохранить как
[/step]
[step num="7"]
В новом окне выбираем директорию для сохранения файла, например, Рабочий стол. В Тип файла выбираем Все файлы, а в Имя файла указываем произвольное имя, например, 1.vbs.
[/step]
Скриншот №5. Выбор директории
[step num="8"]
После сохранения файла, он уже готов к исполнению. Двойной клик левой кнопкой мыши вызовет экран, в которым следует выбрать **"Сменить пароль".**
[/step]
Скриншот №6. Смена пароля
Далее все привычно.
[step num="9"]
Заполняем поля со старым паролем, указываем новый пароль и его подтверждение. Кликаем по иконке стрелки.
[/step]
Скриншот №8. Ввод нового пароля
## Смена пароля в Windows Server 2016
[step num="10"]
ОС Windows Server 2016 радует своим расположением к пользователю, но чтобы изменить удаленно пароль, все равно нужно поискать этот пункт.
[/step]
[step num="11"]
Открываем меню Пуск и кликаем по значку пользователя, в открывшемся меню выбираем **"Изменить параметры учетной записи".**
[/step]
Скриншот №9. Меню пуск в Windows 16
[step num="12"]
В открывшемся окне "Параметры" выбираем "Параметры входа", а в секции Пароль кликаем по кнопке Изменить.
[/step]
Скриншот №10. Пункт "Параметры входа"
[step num="13"]
В новом окне, указываем текущий пароль и кликаем по кнопке Далее.
[/step]
Скриншот №11. Ведение текущего пароля
[step num="14"]
Окно обновится и запросит новый пароль, его подтверждение, а также подсказку к паролю. Кликаем по кнопке далее. В итоге, кликаем по кнопке Готово. Следующий вход в систему будет происходить под новым паролем.
[/step]
Скриншот №12. Введение нового пароля
**Альтернативный способ смены пароля для Windows Server 2016**
[step num="15"]
Этот способ применим как для изменения пароля к своей учетной записи, так и к учетным записям других пользователей.
[/step]
[step num="16"]
В меню Пуск, выбираем Администрирование ("Средства администрирования" в Windows Server 2016).
[/step]
Скриншот №13. Альтернативный метод через пункт "Администрирование"
[step num="17"]
В новом окне двойным кликом мыши открываем **"Управление компьютером".**
[/step]
Скриншот №14. Управление компьютером
[step num="18"]
В левой части открывшегося окна раскрываем ветку "Локальные пользователи и группы" и открываем папку Пользователи. В основной части окна, кликаем правой кнопкой мыши по пользователю и в контекстном меню выбираем "**Задать пароль...".**
[/step]
Скриншот №15. Задать пароль для пользователя
[step num="19"]
Система выдаст предупреждение. Внимательно прочитав которое и осознав все риски кликаем по кнопке "Продолжить". В противном случае - **"Отмена".**
[/step]
Скриншот №16. Предупреждение системы
[step num="20"]
В новом окне указываем новый пароль и его подтверждение. По окончании кликаем по кнопке OK.
[/step]
Скриншот №17. Введение нового пароля
## Как сменить пароль на удаленном компьютере с помощью комбинации CTRL + ALT + END
Для получения комбинации CTRL + ALT + DEL на удаленном компьютере, нужно нажать CTRL + ALT + END.
Нажатие этой комбинации откроет нам диалоговое окно, в котором нам нужно будет выбрать "Изменить пароль":
Для смены пароля нам нужно будет указать некоторые данные:
## Смена пароля на удаленном рабочем столе с помощью экранной клавиатуры
При удаленном подключении к рабочему столу, пароль можно сменить с помощью использования экранной клавиатуры.
Чтобы вызвать экранную клавиатуру введите в меню "Пуск" "Экранная клавиатура" или же "OSK".
После того, как появится экранная клавиатура, зажмите клавиши ALT + CTRL и с помощью мыши нажмите кнопку Del.
У вас вылезет диалоговое окно, в котором вам вам нужно будет выбрать "Сменить пароль":
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
## Вызов окна смены пароля в RDP сессии через VBS-скрипт или PowerShell
Чтобы вызвать окно смены пароля с помощью VBS-скрипта, создайте файл WindowsSecurity.vbs и введите туда данные строчки кода:
```
set objShell = CreateObject("shell.application")
```
```
objshell.WindowsSecurity
```
После чего, после двойного щелчка по данному VBS-скрипту, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать "Сменить пароль":
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Также чтобы открыть окно смены пароля с помощью PowerShell, откройте сам PowerShell с помощью меню "Пуск" и воспользуйтесь командой:
```
New-Object -COM Shell.Application).WindowsSecurity()
```
После чего, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать "Сменить пароль":
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Чтобы открыть диалоговое окно со сменой пароля, можно создать ярлык со ссылкой на расширение оболочки Windows Explorer.
Для начала создаем ярлык и указываем данный путь для него:
```
C:\Windows\explorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
```
Далее выбираем название для ярлыка и создаем его:
После двойного щелчка по данному ярлыка, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать "Сменить пароль":
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
## Cмена пароля через Remote Desktop Web Access
В Windows Server 2012 /R2 и выше у удаленных пользователей с правами Remote Desktop Web Access появилась возможность самостоятельно сбрасывать свой пароль через специальную веб-страницу на сервере Remote Desktop Web Access.
Функционал удаленной смены пароля доступен на сервере с ролью Remote Desktop Web Access, но по-умолчанию эта функция отключена.
Чтобы включить данную функцию:
Открываем консоль управления сервером IIS Manager и переходим в [Name of your Server] – Sites – Default Web Site – RDWeb – Pages и открываем раздел Application Settings.
В правой панели выбираем параметр с именем PasswordChangeEnabled и меняем его значение на true.
Чтобы проверить доступность страницы смены пароля, переходим по: https://[RD-WEB-1]/RDWeb/Pages/en-US/password.aspx
**Важно! Если у вас русская версия Windows Server путь к файлу password.aspx будет отличаться и выглядеть так:**
```
C:\Windows\Web\RDWeb\Pages\ru-RU.
```
После успешной смены пароля пользователя должно появится сообщение:
```
Your password has been successfully changed.
```
## СredSSP, NLA и смена пароля через RDP
**Credential Security Support Provider (CredSSP)** - протокол для передачи учетных данных, который используется при RDP для защиты DDoS атак и несанкционированного исполнения процессов.
**Network Level Authentication (NLA)** — это функция служб удаленных рабочих стол, которая требует, чтобы подключающийся пользователь аутентифицировал себя до установления сеанса с сервером.
Есть одна важная особенность, касающаяся смены истекшего пароля пользователя по RDP, связанная с опцией Network Level Authentication (NLA) и протоколом Credential Security Support Provider (CredSSP). По умолчанию CredSSP с NLA для RDP включен во всех версиях Windows, начиная с Windows Server 2012/Windows 8. NLA обеспечивают защиту RDP сервера за счет выполнения аутентификации пользователя до установки RDP сеанса с сервером.
Если у пользователя истек пароль, или администратор AD пользователя включил ему опцию "userAccountControl" - Требовать смену пароля при первом входе в систему, то при входе в систему по RDP появится ошибка:
```
Remote Desktop Connection
You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support.
```
или
```
Подключение к удаленному рабочему столу
Перед первым входом в систему необходимо сменить пароль. Обновите пароль либо обратитесь к вашему системному администратору или в службу технической поддержки.
Подключение к удаленному рабочему столу Перед первым входом в систему необходимо сменить пароль
```
Как результат — пользователь не сможет подключиться к RDP серверу и сменить пароль.
В этом случае, чтобы пользователь мог самостоятельно сменить пароль, можно:
- Настроить Remote Desktop Web Acces (RDWA) со страницей смены пароля;
- Создать отдельный сервер для смены паролей пользователей. На данном сервере нужно отключить функцию NLA. В этом случае пользователи смогу сменить пароль;
- Пользователь может изменить свой пароль удаленно через PowerShell.
## Смена пароля на удаленном рабочем столе с помощью RDP-файла
Если ситуация требует того, чтобы пользователь изменил пароль с помощью RDP-файла, то это потребует некоторого изменения уровня безопасности настроек протокола RDP на стороне RDP сервера и подготовки специального RDP-файла на стороне клиента.
Сначала на клиентской стороне откроем mstsc.exe.
В меню пуск вводим "mstsc" и выбираем "Подключение к удаленном рабочему столу":
Далее настраиваем все нужные параметры для подключения к серверу.
Нажимаем "Показать больше", вводим туда IP-адрес нашего удаленного компьютера и имя пользователя, затем, используя кнопку Сохранить как, создаем RDP-файл:
После этого откроем RDP-файл с помощью текстового редактора и добавим в конце файла строку:
```
enablecredsspsupport:i:0
```
Пояснение: Добавление данного параметра в свойствах RDP-подключения позволит клиенту успешно установить RDP-сессию с удалённой системой и сменить пароль до получения доступа к удалённому рабочему столу. Однако этот параметр понизит уровень безопасности RDP-подключения, так как клиент не сможет использовать проверку подлинности на уровне сети - Network Level Authentication (NLA), которую мы описывали выше в нашей статье.
Если NLA включен - то пользователь не сможет подключиться и получит соответствующую ошибку:
Исправить эту ошибку можно только понизив уровень безопасности RDP на стороне RDS сервера, отключив обязательное требование проверки подлинности на уровне сети (NLA).
**Важно!**
**Не рекомендуем делать этого, если ваш удаленный компьютер может быть подвергнут DDoS-атакам и несанкционированным процессам.**
Чтобы изменить эту настройку, на удаленном компьютере, в меню пуск вводим "Панель управления":
Затем переходим в "Система и безопасность":
Затем переходим в "Система":
Открываем окно, которое появилось, на весь экран и выбираем "Дополнительные параметры системы": "Разрешить подключения только с..." :
У нас появится окно с "Свойствами системы", перейдем в часть с "Удаленным доступом" и уберем галочку с пункта "Разрешить подключения только с...", затем нажмем "Применить" и "ОК":
После того, как мы отключили функцию NLA на стороне RDS сервера, клиент с помощью специального RDP-файла, может успешно установить RDP-сессию и уже в ней сменить пароль:
После этого вы сможете подключаться с новым паролем.
Таким образом, мы рассмотрели все возможные способы смены пароля учетной записи по RDP.
https://serverspace.uz/support/help/nastroika-planirovshika-linux.mdПодробная пошаговая инструкция, как настроить планировщик заданий Cron несколькими способами на серверах под управлением ОС Linux
Планировщик заданий является по праву одним из важных компонентов системы. По умолчанию, в дистрибутивах Linux, а также FreeBSD, используется планировщик заданий Cron. Рассмотрим как его настроить.
**Настроить cron** можно несколькими способами. Самый простой и быстрый — указать задание руками в файл /etc/crontab. Проблема в том, что это может сделать только пользователь root.
Структура файла /etc/crontab представляет собой последовательность установок даты и времени, имени пользователя от которого выполняется задача и явное указание исполняемого файла.
# m h dom mon dow user command
**# **- строка закомментирована, т.е. не выполняется планировщиком
**m **- минуты. Диапазон значений 0-59
**h **- часы. Диапазон значений 0-23.
**dom **- day of month - день месяца (число). Диапазон значений 1-31
**mon **- месяц. Диапазон значений 1-12
**dow **- day of week - день недели. указывается числом, где 0 - воскресенье, 6 - суббота.
**user **- пользователь от которого выполняется задача.
**command **- выполняемая задача.
**Важно!** Значения минут, часов, дней месяца, дней недели, а также месяца могут быть * (звездочкой) принимая все доступные значения. Также можно использовать список параметров разделенных запятой.
Примеры разберем подробнее немного позже.
Простым пользователям доступна системная утилита crontab. Для гибкости использования используются параметры:
| crontab -e | Используется для редактирования или создания файла расписания для текущего пользователя |
| --- | --- |
| crontab -l | Вывод существующих задач в расписании пользователя |
| crontab -r | Удаление файла расписания текущего пользователя |
| crontab -u username | Работа с расписаниями указанных пользователей. Выполняется только от пользователя root |
[step num="1"]
**Добавим задание.**
Для этого в консоли пишем команду:
```
crontab -e
```
[/step]
[step num="2"]
Запустится редактор файла используемый по умолчанию (Ubuntu - nano/vi, FreeBSD - ee), в нашем случае mcedit из пакета Midnight Commander.
[/step]
[step num="3"]
Синтаксис команд идентичен как и для файла /etc/crontab, за исключением отсутствия параметра имени пользователя. Это значит, что после сохранения файла, все задачи будут выполняться от текущего пользователя.
[/step]
[step num="4"]
Сохраняем файл, выходим из редактора и проверяем список заданий crontab -l.
[/step]
[step num="5"]
Проверим как работает удаление файла заданий - crontab -r.
[/step]
**Важно!** Программа не спрашивает, уверены ли вы в удалении файла заданий. Если нужно удалить конкретное задание, следует использовать crontab -e.
[step num="6"]
Для администратора важно, чтобы не все пользователи могли пользоваться планировщиком. Для этих целей можно использовать файлы /etc/cron.allow и /etc/cron.deny (в некоторых дистрибутивах эти файлы должны размещаться в /etc/cton.d). По умолчанию, использование cron разрешено всем пользователям.
[/step]
Примеры использования в файле /etc/crontab.
[step num="7"]
Выполнение задачи каждые 5 минут от пользователя root:
```
*/5 * * * * root /root/scripts/script1.sh
```
[/step]
[step num="8"]
В полдень и полночь:
```
0 */12 * * * root /root/scripts/backup.sh
```
[/step]
[step num="9"]
Перезагрузка сервера в 0:00 в первый день месяца (исключительно как пример):
```
0 0 1 * * root reboot
```
[/step]
[step num="10"]
Выполнение скрипта с понедельника по пятницу в полночь:
```
0 0 * * 1-5 root /root/script/backup_db.sh
```
[/step]
Неправильный пример:
```
* 0 * * 1-5 root /root/script/backup_db.sh
```
Ошибка в том, что скрипт будет запускаться с понедельника по пятницу каждую минуту с 0:00 по 0:59
В заданиях назначаемых через crontab -e (т.е. от текущего пользователя) не указывается параметр имени пользователя, в случае примеров - root.
На что еще следует обратить внимание:
[step num="11"]
Все пути до исполняемых файлов следует писать абсолютными.
[/step]
Скрипты исполняются из корневой директории, а следовательно, при написании скрипта следует указывать рабочий каталог, либо абсолютные пути до целевых файлов (если в ходе работы скрипта генерируются файлы-отчета и им подобные).
https://serverspace.uz/support/help/validaciya-ssl-sertificata.mdДля того чтобы подтвердить, что домен принадлежит именно вам, существует несколько способов. Рассмотрим валидацию SSL сертификатов DV, OV, EV
## Валидация домена (DV - Domain Validation)
Начальный уровень доверия.
Для того чтобы подтвердить что домен принадлежит именно вам существует три способа. Рассмотрим каждый по отдельности.
### С помощью электронной почты
Администратору домена необходимо создать почтовый ящик, на который будет получено письмо от центра сертификации. Допускаются следующие имена:
- admin@
- administrator@
- webmaster@
- hostmaster@
- postmaster@
В письме вы получите уникальный код и ссылка для подтверждения. Скопируйте код и перейдя по ссылке, вставьте его в соответствующее поле.
Другие способы требуются для получения сертификатов Comodo.
### С помощью DNS-записей
После генерации CSR (Certificate Signing Request - запрос подписи сертификата), вы получите хеш-значения вашего запроса, которые необходимо в запись CNAME вашей доменной зоны. Данная запись имеет строгий формат и будет выглядеть следующим образом:
[/code]_.. CNAME .[.]comodoca.com.[/code]
Следует обратить внимание, что:
- SHA-256 хеш-последовательность разделена символом "." (точка) надвое, по 32 символа с обеих сторон;
- Запись считается верной, если в конце доменного имени стоит символ "." (точка);
- Мультидоменные сертификаты требуют индивидуальные CNAME-записи, т.е. в вашем заказе они должны быть созданы для каждого домена отдельно;
- В CNAME-записи не нужно указывать "www", даже если вы получаете сертификат именно для этого поддомена.
Для наглядности, рассмотрим пример для поддомена:
_09f7e02f1975bf211da707a341f153b3.subdomain0.mydomain.com. CNAME 3d874ab7b199418a9014258369048163.9eb1f1472f4da5aa1ab5bcca1b0df53.comodoca.com.
Для домена www:
_81f9e13a1855bf221da717a341f153b3.mydomain.com. CNAME 3d874ab7bacd5f2e3a9e1f2b3a3cc163.1ae0cbd19f4da5aa1ab5bcca1aedf64.comodoca.com.
### С помощью HTTP(S)
После генерации CSR (Certificate Signing Request - запрос подписи сертификата), вы получите хеш-значения вашего запроса. Для прохождения валидации необходимо создать текстовый файл и разместить его согласно правилам:
Файл должен быть доступен по ссылке:
```
http:///.well-known/pki-validation/.txt
```
Содержимое файла - 2 строки:
comodoca.com
Важно!
- Валидация не будет выполнена, если используются перенаправления;
- Обязательно проверяем существование всех каталогов по указанному выше пути;
- Если заказан Мультидоменный сертификат, то файлы должны быть доступны для каждого домена;
- Проверка www-доменов происходит на основном домене;
- Имя txt-файла не начинается с символа подчеркивания (_) и указано в верхнем регистре;
- Содержимое файлов не требует разделения "точкой". После comodoca.com символ точки не ставится.
### Рассмотрим примеры
для основного домена и в случае с "www":
URL - http://mydomain.com/.well-known/pki-validation/81F9E13A1855BF221DA717A341F153B3.txt
Содержимое файла:
3d874ab7bacd5f2e3a9e1f2b3a3cc1631ae0cbd19f4da5aa1ab5bcca1aedf64
comodoca.com
Для домена третьего уровня - subdomain0.mydomain.com:
URL - http://subdomain0.mydomain.com/.well-known/pki-validation/09F7E02F1975BF211DA707A341F153B3.txt
Содержимое файла:
3d874ab7b199418a90142583690481639eb1f1472f4da5aa1ab5bcca1b0df53
comodoca.com
## Валидация организации (OV - Organization validation)
Для проведения OV, следует выполнить три этапа.
### Этап 1
Выполнить валидацию домена (DV). Способы описаны выше.
### Этап 2
Непосредственно валидация организации. Несколько способов:
- Центр сертификации самостоятельно проверяет существование организации через госреестры организаций;
- Открытые реестры данных, например, Companies House GOV.UK, Lursoft.lv, Duns & Bradstreet, [Hoovers](http://www.hoovers.com/company-information.html).
- Адрес организации следует подтвердить одним из следующих документов:
устав организации (с указанием адреса);
- выданная правительством лицензия на ведение коммерческой деятельности (с указанием адреса);
- копия выписки о состоянии банковского счета организации за последние 6 месяцев; (можно указать номер счета)
- копия телефонного счета организации за последние 6 месяцев;
- копия счета за коммунальные услуги организации за последние 6 месяцев или текущий договор аренды для организации.
- Нотариально заверенное письмо (Legal Opinion Letter).
### Этап 3
Сотрудники центра сертификации (зачастую робот) звонят для подтверждения подлинности запроса сертификата, а также для завершения процесса валидации.
Сертификат будет подписан и выпущен после успешного завершения всех шагов.
## Расширенная валидация (EV - Extended validation)
### Этап 1
Заполняете формы центра сертификации. Специальные бланки вам будут предоставлены.
### Этап 2
Валидация организации, процесс описан выше.
### Этап 3
Валидация домена. Процесс описан в самом начале.
### Этап 4
Как и в случае OV, сотрудники центра сертификации звонят для подтверждения подлинности запроса сертификата и завершения процесса валидации.
Сертификат будет подписан и выпущен после успешного завершения всех шагов.
https://serverspace.uz/support/help/ping-v-windows-server-2012.mdДля того, чтобы включить ответ на ICMP-запросы (Ping), существует два способа: через настройки брандмауэра Windows или с помощью Powershell
Характерной особенностью сетевой безопасности Windows Server 2012 и Windows Server 2012 R2 является то, что ответ на ICMP-запросы отключен в системе по умолчанию, иными словами, система не пингуется. Для того чтобы исправить эту проблему существует два системных способа:
- Разрешить пинги через настройки брандмауэра Windows;
- Воспользоваться программной оболочкой Powershell.
## Первый способ
[step num="1"]
1. В главном меню открываем "Администрирование", затем "Брандмауэр Windows в режиме повышенной безопасности".
[/step]
Альтернативный путь - Пуск -> Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры.
[step num="2"]
2. В новом окне, в левой части, выбираем Правила для входящих подключений, а в основной части ищем "Общий доступ к файлам и принтерам (эхо-запрос - входящий трафик ICMPv4)". Кликаем правой кнопкой мыши и из контекстного меню выбираем "Включить правило".
[/step]
[step num="3"]
3. Проверяем результаты с другой машины.
[/step]
[step num="4"]
## Второй способ
Если вы не сторонник пользовательского интерфейса и/или он по какой-то причине не работает, то можно воспользоваться PowerShell.
[/step]
[step num="5"]
1. Запускаем PowerShell
[/step]
[step num="6"]
2. Поочередно вводим две команды
```
Import-Module NetSecurity
```
[/step]
[step num="7"]
Set-NetFirewallRule -DisplayName "Общий доступ к файлам и принтерам (эхо-запрос - входящий трафик ICMPv4)" -enabled True
[/step]
Важно! Имена существующих правил следует указывать как они вписаны в общий список и на том же языке. В английской версии правило называется "File and Printer Sharing (Echo Request – ICMPv4-In)"
[step num="8"]
3. Проверяем
[/step]
[step num="9"]
Следует обратить внимание, что если в сети используется протокол IPv6, то следует выполнять аналогичные действия подставляя протокол IPv6.
[/step]
Если указанные методы решения проблем не помогли, то рекомендуем:
- проверить используется ли Firewall стороннего производителя и проверить его настройки;
- проверить разрешено ли хождение ICMP-трафика через шлюз.
Аналогичную проверку нужно сделать и на удаленной машине.
https://serverspace.uz/support/help/kak-activirovat-promocod.mdИнструкция, как активировать и использовать промокод в панели управления Serverspace. Зарегистрируйтесь и активируйте аккаунт
В случае получения промокода Serverspace вы можете активировать его следующим образом:
1. [Зарегистрируйтесь](https://auth.serverspace.ru/register) и активируйте аккаунт с помощью регистрационного письма.
2. Авторизуйтесь в панели управления, нажмите на три точки в правом верхнем углу экрана и выберите раздел "Настройки":
3. Перейдите во вкладку "Промокод", введите полученный прокомод в одноименном поле и нажмите кнопку "Активировать промокод":
https://serverspace.uz/support/help/redaktirovanie-fayla-hosts.mdРассказываем для чего требуется редактирование файла hosts. Правила работы файла hosts, его местонахождение в Windows и как применить изменения
ARPANET появился в 1969 году и до появления DNS (датируется 1983 годом), указание имен узлов сети, доменных имен и их соответствие IP-адресам производилось в текстовом файле hosts. Данный файл составлялся на предприятии и был доступен на файлообменных серверах или просто рассылался между компьютерами сети.
## Немного теории
Структура файла представляет собой указание IP-адреса узла, соответствующего ему имени и комментарии. Для понимания написанного, ниже немного отредактированный файл.
Как видно, комментарии начинаются с символа "решетка" (sharp) #.
Принцип работы прост - указываем IP-адрес удаленной, а можно и собственного сервера или рабочей станции, напротив пишем имя.
В операционных системах семейства Microsoft Windows, в том числе и серверные версии, файл располагается по пути C:Windowssystem32driversetchosts.
В Unix-подобных системах, файл доступен по пути **/etc/hosts**.
Скриншот №2. Предупреждение безопасности
Две разные операционные системы, а структура файлов одинакова.
Редактировать файл можно любым текстовым редактором, в Windows среде - Блокнот; в Ubuntu - nano, в FreeBSD - ee. Изменение в файл можно вносить только из-под учетной записи с правами администратора.
## Когда требуется редактирование файла hosts?
1. При настройке почтового сервера, а также для нормального функционирования Web-сервера.
2. Если вы ведете работу над неким проектом и он требует доступ по доменному имени.
Важно то, что внесенные изменения в файл hosts нельзя проверить с помощью утилит nslookup, dig и им подобных, так как они работают непосредственно с DNS-серверами, а не с этим файлом.
Также важно, что некоторые антивирусы считают неприемлемым редактирование этого файла и отменяют изменения в нем.
https://serverspace.uz/support/help/windows-server-adding-a-new-user.mdПодробная инструкция по добавлению нового пользователя, а также назначению ему определенных прав в операционных системах Microsoft Windows Server
## Введение
Процесс добавления учетной записи пользователя на компьютер необходим во многих случаях, например, если вы собираетесь совместно использовать устройство с другими людьми или если вы хотите установить разные уровни доступа для каждого пользователя. Создание нескольких учетных записей и назначение административных прав конкретным лицам позволяет каждому, кто пользуется компьютером, эффективно работать, не мешая другим. Кроме того, наличие индивидуальных учетных записей гарантирует защиту конфиденциальной информации от случайного или преднамеренного доступа других пользователей. Это означает, что если вы работаете над чем-то важным и хотите убедиться, что кто-то другой не сможет получить доступ к вашим файлам и т.д., лучше всего создать отдельную учетную запись для себя, а не использовать стандартный пароль администратора (которым никогда не следует делиться).
## Настройка
Сначала нужно нажать комбинацию клавиш **Win + X**, чтобы открыть утилиту, а найти ее можно, введя в строку поиска фразу Computer management:
Скриншот №1 — Окно
Щелкните на всплывающей вкладке и дождитесь загрузки окна с инструментами, посмотрите на левое меню:
Скриншот №2 — Управление ПК
Нам необходимо выбрать **Local Users and Groups**, где мы увидим папки с метками users и groups, в данной инструкции мы рассмотрим первую папку. Дважды щелкните на папке Пользователи. При настройках по умолчанию у нас будет 4 учетные записи, некоторые из них отключены, что можно заметить по значку возле строк.
Скриншот №3 — Аккаунты по умолчанию
Для создания нового пользователя можно щелкнуть правой кнопкой мыши и увидеть всплывающее окно.
Скриншот №4 — Новый пользователь
Нажмите на кнопку **Новый пользователь...** и дождитесь загрузки формы модуля.
Скриншот №5 — Форма пользователя
При создании новой учетной записи пользователя на компьютере необходимо указать основные сведения о себе, такие как имя и пароль. В этих диалоговых окнах можно задать и другие параметры, например, выключение компьютера через определенное количество минут, требование ввода пароля при перезагрузке компьютера и т.д., но все эти параметры являются необязательными и зависят от личных предпочтений пользователя. Основные поля, которые необходимо заполнить при создании новой учетной записи, включают:
Имя: Это имя, по которому другие пользователи и вы сами сможете обращаться к этому человеку, чтобы не путать его с другими пользователями машины и т.д., поэтому лучше выбрать что-то простое, но уникальное. Например, если Вас зовут Джон, то Вы можете называть себя John, а не john_doe и т.д. Это облегчит обращение к владельцам тех или иных файлов и т.п. на устройстве.
Пароль: Этот пароль будет требоваться каждый раз, когда конкретный пользователь захочет войти в свою учетную запись, а не использовать учетные данные администратора другого человека, поэтому важно выбрать что-то надежное и уникальное, что другие не смогут легко угадать. Например, если вы создаете учетную запись для другого человека, то лучше всего дать ему его собственный пароль, который он создал сам, т.е. такой, который нельзя получить или узнать.
Скриншот №6 — Заполненные данные
Щелкните на кнопке **Create** и дождитесь, пока система обновит данные. После этого щелкните на предыдущем окне и правой кнопкой мыши откройте меню. В нем необходимо выбрать пункт **Refresh**.
Скриншот №7 — Обновление
Хорошо, мы их видим. Но теперь мы не указываем никаких привилегий и настроек. Исправим это, щелкнем на **Jorj** правой кнопкой мыши и в меню выберем пункт **Properties**:
Скриншот №8 — Настройки
Остальных пунктов мы не касаемся по причине - другой функциональности! В новом окне вы увидите кучу информации, не пугайтесь. Посмотрите на вкладки вверху и выберите пункт **Member Of**. Нажмите на кнопку **add **ниже и введите строку **Administrators**. Проверьте имя и дождитесь результата, вы увидите вот такое окно:
Скриншот №9 — Администратор
Нажмите **OK** в каждом окне, и теперь вы можете войти в систему, используя свои новые учетные данные.
## Вывод
В данном руководстве дается пошаговое объяснение процесса добавления учетной записи пользователя на компьютер, подчеркивается важность этого для различных целей, таких как эффективное совместное использование устройства и защита конфиденциальной информации. В нем рассматривается процедура настройки, включая доступ к утилите Computer Management, создание новой учетной записи пользователя и настройку основных параметров учетной записи.
https://serverspace.uz/support/help/otkluchit-usilennuya-bezopasnosti-ie.mdИнструкция по отключению настроек усиленной безопасности Internet Explorer (IE ESC) на Windows Server 2012. Как убрать всплывающие окна в IE.
Так бывает, что для выполнения каких-либо задач нужно воспользоваться браузером Internet Explorer, но в серверных версиях операционной системы Microsoft Windows его функционал сильно ограничен безопасностью.
Будем разбираться как это исправить.
[step num="1"]
На панели задач кликаем по значку "**Диспетчер серверов**".
[/step]
[step num="2"]
В открывшемся окне, в левой части, кликаем по "**Локальный сервер**", а в основной части окна, по ссылке "**Включено**" напротив "**Конфигурация усиленной безопасности Internet Explorer**".
[/step]
[step num="3"]
В новом окне отключаем параметр для администраторов и пользователей. Кликаем по кнопке ОК. Окно закроется.
[/step]
[step num="4"]
В предыдущем окне, спустя несколько секунд, параметр изменится на "Отключено". Возможно потребуется обновить содержимое окна.
[/step]
[step num="5"]
Операцию по включению параметра следует проделать в обратной последовательности.
[/step]
[step num="6"]
Альтернативный путь решения - использовать **PowerShell**
[/step]
[step num="7"]
Открываем окно PowerShell
[/step]
****
[step num="8"]
Вставляем в него скрипт (клик правой кнопкой мыши в окне).
```
function Disable-IEESC {
$AdminKey = "HKLM:SOFTWAREMicrosoftActive SetupInstalled Components{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
$UserKey = "HKLM:SOFTWAREMicrosoftActive SetupInstalled Components{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0
Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0
Stop-Process -Name Explorer
Write-Host "IE Enhanced Security Configuration (ESC) has been disabled." -ForegroundColor Green }
Disable-IEESC
```
[/step]
[step num="8"]
Исполняем его нажатием по клавише **Enter** (иногда требуется двойное нажатие).
[/step]
[step num="9"]
Internet Explorer теперь работает в обычном режиме.
https://serverspace.uz/support/help/ustanovka-open-vm-tools.mdДля оптимизации работы серверов под управлением VMware используют Open-VM-Tools. Инструкция по установке для Debian, Ubuntu, CentOS, FreeBSD
[step num="1"]
Для оптимизации и ускорения работы виртуальных машин под управлением VMWare используют программное решение Open-VM-Tools. Рассмотрим подробнее установку для разных ОС.****
[/step]
## Debian или Ubuntu
[step num="2"]
Обновляем текущее состояние программ до последнего через apt-get.
[/step]
```bash
apt-get update
```
[step num="3"]
Установка пакета Open-VM-Tools происходит стандартными средствами ОС. Ожидаем окончания операции, после чего решение доступно для работы:
[/step]
```bash
sudo apt-get install open-vm-tools
```
## CentOS
[step num="4"]
Обновляем базу продуктов.
```bash
yum apt-get update
```
[/step]
[step num="5"]
Установка производится через стандартную команду YUM.
Для CentOS 6 версии есть отличия. После установки OVT, запускаем сервис:
[/step]
```bash
yum -y install open-vm-tools
```
[step num="6"]
Теперь добавим его в автозагрузку:
[/step]
```
chkconfig vmtoolsd on
```
## FreeBSD
[step num="7"]
Здесь все просто. Набираем в терминале:
[/step]
```
pkg install open-vm-tools
```
Процесс займет некоторое время. После чего администратору будет доступен полный функционал.
https://serverspace.uz/support/help/uvelichenie-diskovo-prostranstva-vyos.mdВ этом руководстве будет рассмотрен процесс увеличения дискового пространства сервера под управлением операционной системы vyOS
В этом руководстве будет рассмотрен процесс увеличения дискового пространства сервера под управлением операционной системы vyOS.
### Настройка
_Примечание: все последующие действия необходимо выполнять в режиме суперпользователя vyos:_
```
sudo su
```
Для начала выведете на экран все существующие диски с помощью команды fdisk:
```
fdisk -l
```
```
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b4645
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1306 10484736 83 Linux
```
Затем необходимо перечитать увеличенный размер диска:
```
echo 1 > /sys/block/sda/device/rescan
```
Запустите fdisk:
```
fdisk -u -c /dev/sda
```
Далее выполните действия в интерфейсе команды fdisk. Удалите единственные существующий раздел опцией d:
```
Command (m for help): d
Selected partition 1
```
Опцией n создайте новый раздел на vyos:
```
Command (m for help): n
```
Выберете тип - основной:
```
Command action
l logical (5 or over)
p primary partition (1-4)
p
```
Укажите номер:
```
Partition number (1-4): 1
```
Выберите начало и конец занимаемого пространства по умолчанию (при нажатии клавиши Enter выберите значения по умолчанию):
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Далее с помощью опции t изменим файловую систему на созданном разделе:
```
Command (m for help): t
Selected partition 1
```
Введите шестнадцатеричный код файловой системы Linux:
```
Hex code (type L to list codes): 83
```
Опцией w сохраните внесенные изменения и выйдите из утилиты.
```
Command (m for help): w
```
```
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
```
Необходимо сообщить ядру об изменениях, для этого перезагрузите сервер:
```
/sbin/shutdown -r now
```
Заново подключитесь к нему с правами суперпользователя по протоколу SSH.
С помощью следующей команды сообщите ядру об изменении таблицы разделов:
```
partx /dev/sda
```
Далее настройте размер файловой системы:
```
resize2fs /dev/sda1
```
Проверить изменения можно с помощью команды df:
```
df -h
```
Дисковое пространство VyOS увеличено.
https://serverspace.uz/support/help/ustanovka-postfix-i-dovecot-na-ubuntu.mdСоздание почтового сервера на Ubuntu, установка и настройка Postfix (агента передачи почты) и Dovecot из SSH-клиента Putty в нашей инструкции
Иногда на предприятии или в быту требуется создать собственный почтовый сервер. Рассмотрим создание такого сервера под управлением ОС Ubuntu 16.04 LTS, а также установку и настройку почтовых агентов Postfix и Dovecot. Все действия будем выполнять из SSH-клиента PuTTY.
**Postfix** — агент передачи почты (MTA — mail transfer agent), является свободным программным обеспечением и создавался как альтернатива Sendmail.
**Dovecot** — свободный IMAP- и POP3-сервер, разработанный с акцентом на безопасность, гибкость настройки и быстродействие.
[step num="1"]
Перед установкой обновляем данные о репозиториях и индексах пакетов:
```bash
sudo apt-get update
```
[/step]
[step num="2"]
Обновляем пакеты и компоненты системы:
```bash
sudo apt-get upgrade
```
[/step]
[step num="3"]
Перезагружаем систему, иногда это требуется:
```
sudo reboot
```
[/step]
[step num="4"]
Приступим к установке. Сперва устанавливаем Postfix:
```bash
sudo apt-get install postfix
```
[/step]
[step num="5"]
Система спрашивает о необходимости установки пакетов и намерении продолжать. Отвечаем Y. Запустится пользовательский интерфейс установки:
[/step]
[step num="6"]
На клавиатуре нажимаем курсорную клавишу вправо (->). Будет подсвечен "Ok". На клавиатуре нажимаем Enter. В обновленном окне Выбираем Internet site, нажимаем курсорную клавишу вправо (->), подсветится "Ок" — нажимаем Enter:
[/step]
[step num="7"]
В новом окне, в поле System mail name, нужно указать доменное или локальное имя сервера и нажать Enter на клавиатуре:
[/step]
[step num="8"]
Установка Postfix завершена. Приступаем к настройке.
Переходим в каталог /etc/postfix:
```
cd /etc/postfix
```
[/step]
[step num="9"]
Создаем файл virtual, в котором будут храниться почтовые адреса и имена пользователей почтового сервера:
```
sudo touch virtual
```
[/step]
[step num="10"]
Создаем директорию private для хранения файлов настроек yandex smtp:
```
sudo mkdir private
```
[/step]
Проверим результаты командой ls:
[step num="11"]
Перейдем в каталог /etc/postfix/private/ и создадим еще три необходимых файла:
```
cd /etc/postfix/private/
```
```
sudo touch canonical sender_relay sasl_passwd
```
[/step]
canonical — в файле определяются правила подмены адресов
sender_relay — определяется соответствие доменов и конкретных отправителей к внешним службам
sasl_passwd — в этот файл добавим внешние учетные данные почтового провайдера
[step num="12"]
Теперь внесем изменения в файл конфигурации main.cf:
```
sudo nano /etc/postfix/main.cf
```
[/step]
[step num="13"]
Записи в данном файле имеют формат параметр = значение1, значение2, значение3. Комментарии начинаются с символа "решетка" #. Заменим значение параметра myhostname на ваше доменное имя. Если доменного имени нет — оставляем по умолчанию:
```
myhostname = example.org
```
[/step]
[step num="14"]
В параметр mydestination следует указать IP-адрес сервера, а также доменное имя, через запятую, если таковое имеется. Чтобы письмо можно было переслать на другие домены или адреса, заменяем параметр alias_maps на virtual_alias_maps и изменяем расположение хеш-файла. Должно получиться так:
```
virtual_alias_maps = hash:/etc/postfix/virtual
```
[/step]
[step num="15"]
В параметре mynetworks определяем список авторизованных сетей:
```
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
```
[/step]
[step num="16"]
Для отправки почты с помощью Yandex SMTP добавим в конец файла следующие строки:
```
smtp_sasl_auth_enable = yes
```
```
smtp_sasl_mechanism_filter = login
```
```
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
```
```
smtp_sasl_security_options = noanonymous
```
```
smtp_sasl_type = cyrus
```
```
smtp_sender_dependent_authentication = yes
```
```
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
```
```
sender_canonical_maps = hash:/etc/postfix/private/canonical
```
[/step]
[step num="17"]
Выйдем из редактирования файла сочетанием клавиш Ctrl+X, и на вопрос о желании сохранить файл нажимаем Y и Enter.
[/step]
Следует объяснить, что значат добавленные строки:
```
smtp_sasl_auth_enable — параметр отвечает за включение поддержки sasl для проверки подлинности почтовых серверов;
```
```
smtp_sasl_password_maps – указываем путь до файла sasl_passwd с внешними учетными данными;
```
```
smtp_sasl_security_options – параметр безопасности, запрещающий механизмы, которые разрешают анонимную проверку подлинности.
```
Возможные значения параметра:
```
noplaintext — не использовать механизмы, которые передают незашифрованное имя пользователя и пароль;
```
```
nodictionary - не использовать механизмы, которые уязвимы для атак по словарю;
```
```
mutual_auth - использовать только механизмы, которые прошли проверку подлинности клиента и сервера друг с другом;
```
```
smtp_sasl_type - тип плагина sasl, используемый для проверки подлинности, по умолчанию установлен cyrus;
```
```
smtp_sasl_mechanism_filter - список поддерживаемых методов аутентификации;
```
```
smtp_sender_dependent_authentication – проверка подлинности будет зависеть от домена отправителя;
```
```
sender_dependent_relayhost_maps - указываем путь до файла sender_relay;
```
```
sender_canonical_maps - указываем путь до файла canonical.
```
[step num="18"]
Далее внесем изменения в файлы:
```
echo "@yandex.ru username@yandex.ru" >> /etc/postfix/private/canonical
echo "@yandex.ru smtp.yandex.ru" >> /etc/postfix/private/sender_relay
```
[/step]
[step num="19"]
Вместо ****** указываем пароль от почты:
echo "[smtp.yandex.ru] username@yandex.ru:******" >> /etc/postfix/private/sasl_password
[/step]
[step num="20"]
Для переадресации писем на другие почтовые адреса следует создать псевдонимы. Для этого отредактируем файл virtual:
```
sudo nano /etc/postfix/virtual
```
[/step]
[step num="21"]
Указываем произвольные электронные адреса, которые необходимо создать, и имена существующих системных пользователей, которым нужно доставлять почту:
```
mailbox_1@example.org username1
```
```
mailbox_2@example.org username1, username2
```
[/step]
[step num="22"]
Чтобы посмотреть список всех системных пользователей, выполним команду:
```
cut -d: -f1 /etc/passwd
```
[/step]
[step num="23"]
Преобразуем файл /etc/postfix/virtual и файлы в директории /etc/postfix/private/ в справочные таблицы выполнив команду postmap и перезапускаем сервис:
```
sudo postmap /etc/postfix/virtual
```
```
sudo postmap /etc/postfix/private/*
```
```
sudo /etc/init.d/postfix restart
```
[/step]
[step num="24"]
С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для отправки почты. Аналогичное следует выполнить и для других портов (465 и 587) если такие используются:
```
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
```
[/step]
[step num="25"]
Проверим работу с помощью утилиты mutt. Для начала установим её:
```bash
sudo apt-get install mutt
```
[/step]
[step num="26"]
Теперь проверяем:
```
echo "Text message" | mutt -s "Subject" mailbox@yandex.ru
```
[/step]
[step num="27"]
Настроим получение писем с помощью Dovecot, но вначале установим:
```bash
sudo apt-get install dovecot-imapd dovecot-pop3d
```
[/step]
[step num="28"]
Перейдем к настройке.
В файле /etc/dovecot/dovecot.conf перечислим протоколы, с которыми будем работать:
```
protocols = pop3 pop3s imap imaps
```
[/step]
[step num="29"]
В файле /etc/dovecot/conf.d/10-mail.conf проверяем значение параметра mail_location:
```
mail_location = mbox:~/mail:INBOX=/var/mail/%u
```
[/step]
[step num="30"]
Перезапускаем сервис:
```
sudo /etc/init.d/dovecot restart
```
[/step]
[step num="31"]
В файл /etc/hosts, добавим собственное доменное имя:
```
ip-address example.com
```
[/step]
[step num="32"]
С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для получения почты:
```
sudo iptables -A INPUT -p tcp --dport 220 -j ACCEPT
```
```
sudo iptables -A INPUT -p tcp --dport 993 -j ACCEPT
```
```
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
```
```
sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
```
[/step]
[step num="33"]
Для проверки нужно отправить письмо с любого почтового сервиса на созданные почтовые адреса. Письмо должно быть доставлено только одному адресату, только существующему системному пользователю и только на адрес с указанием доменного имени. Доставка писем по IP-адресу невозможна.
[/step]
[step num="34"]
Следует обратить внимание, что после перезагрузки сервера правила iptables следует указать заново. Для решения этой проблемы следует прибегнуть к чтению руководства к iptables:
```
man iptables
```
```
man iptables-save
```
```
man iptables-restore
```
https://serverspace.uz/support/help/pfsense-2-3-configuring-site-to-site-vpn.mdИнструкция по настройке Site-to-Site VPN на PfSense 2.3. Два этапа: 1⃣Настройка pfSense и конфигурирование частных сетей. 2⃣Реализация туннеля Site-to-Site
## Рассмотрим настройку pfSense
Для начала, думаю, стоит объяснить **что такое pfSense **и** Site-to-Site VPN** и в чем его **преимущества**. Затем перейдем к реализации.
pfSense - это дистрибутив межсетевого экрана основанный на операционной системе FreeBSD. Дистрибутив позволяет реализовать такие механизмы, как NAT, CARP, VPN (в т.ч. PPTP, IPsec, OpenVPN), Captive portal. Кроме этого выполняет функционал классического файрволла, динамического DNS, DHCP и прокси сервера. Прост в развертывании.
**Почему Site-to-Site?**
Site-to-Site позволяет сконфигурировать только шлюзы в удаленных подсетях, при этом отпадает необходимость конфигурирования самих узлов сети. Говоря простым языком, способ Site-to-Site соединяет два офиса в единую сеть, а Point-to-Site - удаленных сотрудников с офисом. В статье рассмотрим пример соединения двух уже существующих сетей - физической и виртуальной.
**Процесс настройки условно разделим на два этапа:**
- Настройка pfSense и конфигурирование частных сетей;
- Реализация Site-to-Site.
Приступаем.
[step num="1"]
## Настройка pfSense
Сперва настроим внутреннюю локальную сеть и интерфейс шлюза. Для этого, в браузере, переходим по IP-адресу сервера или доменному имени, если такое имеется. Вводим логин и пароль и попадаем на Главный экран (Dashboard). В меню программы переходим в раздел интерфейсов **(Interfaces) -> Назначение (Assignments)**. В нашем примере только два интерфейса и уже распределены - оставляем как есть. Если у Вас несколько интерфейсов, следует выбрать необходимый интерфейс по mac-адресу и нажать кнопку **добавить (Add).**
[/step]
[step num="2"]
Назначаем IP-адрес интерфейсу "смотрящему" в локальную сеть. В меню программы переходим в раздел интерфейсов **(Interfaces) -> LAN.** По окончании настройки нажимаем кнопку **Сохранить (Save).**
[/step]
[step num="3"]
Для всех серверов в локальной сети, в качестве шлюза по умолчанию, устанавливаем IP-адрес, указанный в LAN.
[/step]
_**Важно!**_ Если вы используете облачные сервисы, то объединять узлы сети необходимо из панели администрирования облачного сервиса через "Виртуальные сети".
[step num="4"]
## Настраиваем Firewall для локальных соединений.
[/step]
[step num="5"]
В меню программы выбираем **Firewall -> Правила (Rules) -> LAN**. Наживаем кнопку **Добавить (Add)**.
[/step]
[step num="6"]
На новой странице проверяем параметры:
- Настраиваемый интерфейс (Interface) - **LAN**;
- Протокол (Protocol) - **TCP**, но можно и Any;
- Источник (Source) - **Any**;
- Назначение (Destination)- **Any**.
- Настройки сохраняем кликнув по клавише **Сохранить (Save)**.
[/step]
[step num="7"]
Следует обратить внимание, что эти же настройки надо сделать на всех удаленных серверах pfSense, соединяемых в единую сеть.
[/step]
[step num="8"]
## Приступаем к настройке туннеля Site-to-Site.
[/step]
[step num="9"]
В начале настраиваем OpenVPN. В главном меню выбираем** VPN -> OpenVPN** и кликаем по кнопке **Добавить (Add).**
[/step]
[step num="10"]
На новой странице выбираем пункты (их конкретное расположение показано на скриншоте ниже):
- Режим работы сервера (Server mode) - **Peer to Peer (Shared Key)**;
- Протокол (Protocol) - **UDP on IPv4 only**;
- Device mode - **tun - Layer 3 Tunnel Mode**;
- Интерфейс (Interface) - **WAN**;
- Порт (Local port) - **1194**;
- Shared key - Устанавливаем галку напротив **Automatically generate a shared key**;
- Алгоритм шифрования (Encryption algorithm) - **оставляем по умолчанию**;
- Аппаратное шифрование (Hardware Crypto) -** No hardware crypto acceleration**;
- IPv4 Tunnel Network: 10.0.10.0/24 - _указываем адреса используемые в туннеле_;
- IPv4 Remote networks: 10.0.1.0/24 - _указываем адрес сети находящийся за удаленным шлюзом pfSense_.
Сохраняем настройки и не забываем кликнуть по зеленой кнопке **Применить изменения (Apply Changes).**
[/step]
[step num="11"]
## Настроим Firewall для нового интерфейса.
[/step]
[step num="12"]
В главном меню выбираем **Firewall -> Правила (Rules)**. Выбираем пункт OpenVPN и кликаем по кнопке **Добавить (Add)**.
[/step]
[step num="13"]
На обновленной странице проверяем параметры:
Интерфейс (Interface) - **OpenVPN**;
Протокол - **TCP**, но лучше **Any**;
Источник (Source) и назначение (Destination) - **Any**.
[/step]
[step num="14"]
По окончании кликаем по кнопке **Сохранить (Save)**. Не забываем кликнуть по зеленой кнопке **Применить изменения (Apply Changes)**
[/step]
[step num="15"]
## Настроим Firewall для интерфейса WAN.
[/step]
[step num="16"]
В главном меню выбираем **Firewall -> Правила (Rules)**. Выбираем пункт OpenVPN и кликаем по кнопке **Добавить (Add)**.
- Интерфейс (Interface) - **WAN**;
- Протокол (Protocol) - **UDP**;
Диапазон портов назначения (Destination port range) в обоих выпадающих списках (From и To) выбираем **OpenVPN** (1194).
Сохраняем настройки. Не забываем кликнуть по зеленой кнопке **Применить изменения (Apply Changes)**.
[/step]
[step num="17"]
Теперь копируем сгенерированный ключ, для передачи его на удаленный маршрутизатор. В главном меню выбираем **VPN -> OpenVPN**. Кликаем по значку "Карандаш" (редактировать). На обновленной странице из пункта **Shared Key** копируем всё содержимое поля в текстовый редактор, например, Блокнот.
[/step]
[step num="18"]
Осталось настроить удаленный pfSense-шлюз в качестве клиента.
[/step]
[step num="19"]
В главном меню выбираем **VPN -> OpenVPN** и кликаем по пункту Clients, затем по кнопке Добавить (Add).
[/step]
[step num="20"]
На открывшейся странице проверяем параметры (их конкретное расположение показано на скриншоте ниже):
- Режим работы сервера (Server mode) - **Peer to Peer (Shared Key)**;
- Протокол (Protocol) - **UDP on IPv4 only**;
- Device mode - tun - **Layer 3 Tunnel Mode**;
- Интерфейс (Interface) - **WAN**;
- Адрес сервера (Server host address) - _указывается именно WAN интерфейс сервера, который настраивали ранее_;
- Порт (Local port) - **1194**;
- Shared key - _Снимаем галку напротив_ **Automatically generate a shared key**;
- Алгоритм шифрования (Encryption algorithm) - _оставляем по умолчанию_;
- Аппаратное шифрование (Hardware Crypto) - **No hardware crypto acceleration**;
- IPv4 Tunnel Network: 10.0.10.0/24 - _указываем адреса используемые в туннеле_;
- IPv4 Remote networks: _указываем адрес сети находящийся за удаленным сервером - шлюзом pfSense_.
Кликаем **Сохранить (Save)**. Затем по зеленой кнопке **Применить изменения (Apply Changes)**.
[/step]
Поздравляем! На этом настройка окончена.
https://serverspace.uz/support/help/ustanovka-ansible-na-ubuntu-18-04.mdПодробная инструкция по установке и настройке системы управления конфигурациями Ansible на виртуальный VPS сервер под управлением Ubuntu
Инструкция по установке Ansible на виртуальный сервер под управлением Ubuntu 18.04.
## Что такое Ansible?
Ansible это один из главных трендов автоматизации технологических процессов и производств с помощью программных средств. Это инструмент с открытым исходным кодом для управления программным обеспечением, конфигурацией и развертыванием приложений на множестве хостов. Ansible довольно просто использовать, но при этом он достаточно мощный, чтобы автоматизировать сложные многоуровневые среды ИТ-приложений.
## Установка
[step num="1"]
Обновите локальную базу пакетов:
```bash
sudo apt update
```
[/step]
[step num="2"]
Для начала установите пакет software-properties-common, который позволяет легко управлять дистрибутивами и источниками программного обеспечения от независимых поставщиков:
```bash
sudo apt install software-properties-common
```
[/step]
С помощью этого инструмента можно управлять персональными архивами пакетов (PPA), которые позволяют распространять собственные пакеты и утилиты без лишних сложностей.
[step num="3"]
Затем добавьте репозиторий Ansible PPA с помощью следующей команды:
```bash
sudo apt-add-repository ppa:ansible/ansible
```
[/step]
[step num="4"]
В процессе присоединения потребуется нажать клавишу Enter.
[/step]
[step num="5"]
Еще раз обновите базу пакетов и выполните установку Ansible:
```bash
sudo apt update
```
```bash
sudo apt install ansible
```
[/step]
[step num="6"]
Теперь на виртуальном сервере установлено программное обеспечение Ansible, необходимое для администрирования ваших хостов.
[/step]
## Настройка доступа к хостам по SSH
Ansible в основном связывается с клиентскими компьютерами через SSH.
В нашей инструкции рассмотрено использование SSH-ключей, т.к. этот способ помогает упростить процесс подключения и является более безопасным, чем использование паролей.
Подробнее о том, что такое SSH-ключи и как с ними работать, можно прочитать в нашей [инструкции.](https://serverspace.ru/support/help/generaciya-ssh-kluchey/)
[step num="7"]
С помощью следующей команды создайте SSH-ключ, который будет использоваться для подключения к хостам:
```bash
ssh-keygen -t rsa -b 4096
```
[/step]
[step num="8"]
Скопируйте сгенерированный ключ на каждый хост, который будет обслуживаться Ansible:
```bash
ssh-copy-id user_name@ip-address
```
[/step]
Например: ssh-copy-id root@123.122.123.122
[step num="9"]
С помощью текстового редактора откройте следующий файл конфигурации:
```
vi /etc/ansible/hosts
```
[/step]
[step num="10"]
Используя следующий синтаксис, где group_name - удобное название группы серверов, а your_server_ip_1 и your_server_ip_2 - IP-адреса обслуживаемых серверов, добавьте строки в открытый файл hosts:
```
your_server_ip_1
your_server_ip_2
```
[/step]
Например:
```
123.122.123.122
46.122.123.20
```
[step num="11"]
Сохраните изменения и закройте файл.
[/step]
[step num="12"]
Важно: на каждом хосте должен быть установлен язык python и пакет python-apt:
```bash
apt-get install python python-apt
```
[/step]
## Проверка подключения
По умолчанию Ansible выполняет подключение к удаленному хосту от имени пользователя root, если вы используете другого пользователя, то необходимо выполнить дополнительные настройки. Создайте каталог в структуре конфигурации, в котором будут находиться файлы в формате YAML для каждой группы:
```
sudo mkdir /etc/ansible/group_vars
```
Создайте подкаталог с названием вашей группы:
```
sudo nano /etc/ansible/group_vars/group_name
```
Например:
```
sudo nano /etc/ansible/group_vars/servers_ubuntu
```
Вставьте следующую строку, вместо user_name указав имя вашего пользователя:
```yaml
---
ansible_user: user_name
```
Сохраните изменения.
Примечание: отдельные хосты можно настроить, создав алиасы и файлы с именами в соответствии с их псевдонимом в каталоге /etc/ansible/host_vars
Для проверки подключения выполните команду ping:
```
ansible -m ping all
```
Ожидаемый результат:
```
123.122.123.122 | SUCCESS => {
"changed": false,
"ping": "pong"
}
46.122.123.20 | SUCCESS => {
"changed": false,
"ping": "pong"
}
```
https://serverspace.uz/support/help/nastroika-firewall-iptables-na-linux.mdДля пользователей операционный системы Linux был разработан файрволл Iptables для защиты от угроз извне. Инструкция по настройке Iptables
Для новичков и продвинутых пользователей операционный системы Linux был разработан специальный межсетевой экран (так называемый "файрволл") для защиты от угроз извне, который носит имя Iptables. Ниже в инструкции мы объясним, как его установить и настроить на любых машинах под ОС Linux.
## Что представляет собой Iptables
Данная утилита – это надежный межсетевой экран, минимизирующий риск вирусных и хакерских атак. Процесс настройки файрволла происходит через командную строку при помощи установленных команд, которые позволяют юзеру самостоятельно контролировать поступление и отправление трафика. При попытке установки соединений с ПК, утилита обращается к своим правилам и проверяет, пропустить или ограничить соединение. В случае, когда никакого конкретного правила не выставлено, действия проходят по умолчанию.
[step num="1"]
Файрволл предусмотрен стандартно во всех операционных системах семейства Линукс. Для установки, если его внезапно не оказалось в сборке, или обновления следует применить такую команду:
```bash
sudo apt-get install iptables
```
[/step]
Альтернативой данной утилите может послужить Firestarter – он имеет графический интерфейс и разработан специально для пользователей, которые испытывают трудности с работой через командную строку.
В случае настроек Iptables по удаленному SSH-соединению, пользователю следует проявлять аккуратность: одно ошибочное правило способно прервать подключение и запретить юзеру доступ к удаленной машине.
## Какие бывают правила
[step num="2"]
Для легкой работы с файрволлом разработана тройка основных правил (команд):
[/step]
**1.Input.**
Правило применяется, когда необходимо контролировать входящий трафик. Например, когда юзер подключается к удаленному серверу по протоколу Secure Shell, файрволл начнет сравнивать его IP с другими IP из своего списка. В зависимости от результата, то есть от наличия в списке запретов, доступ пользователю будет открыт или закрыт.
**2.Forward.**
Правило применяется в случаях, когда необходимо проверить входящее сообщение, проходящее через данный компьютер. Например, маршрутизатор постоянно пересылает сообщения к адресату от сетевых пользователей или приложений. Зачастую данное правило не используется, если только юзер целенаправленно не настраивает маршрутизацию на своем устройстве.
**3.Output.**
Правило применяется к исходящим соединениям. Например, юзер хочет проверить пинг к одному из заданных сайтов – утилита вновь сверится со своими правилами из списка и определит, как поступить при пинге веб-сайта: разрешить или запретить.
Примечание:
Делая ping к внешнему хосту, машина не только отправляет пакет, но и дожидается обратного ответа. Поэтому, настраивая Iptables, не нужно забывать о наличии двухсторонних коммуникаций и запрещать подключение к серверам через протокол SSH.
## Как определиться с назначением файрволла
[step num="3"]
Перед тем, как заниматься настройкой утилиты, потребуется разобраться с ее предназначением, а именно – действующими цепочками правил, то есть то, что она будет делать по умолчанию. Как отреагировать, когда запрашиваемые соединения не подходят ни к одному правилу?
Для начала потребуется понять, какие из настроек межсетевого экрана уже установлены. Для этого применяется команда –L:
[/step]
Скриншот №1. Настройки межсетевого экрана
Для четкого и понятного вывода информации можно воспользоваться дополнительной командой "grep". В итоге мы получаем тройку цепочек, у каждой из которых стоит разрешение приема трафика. Подобные правила предпочитают устанавливать при стандартной настройке.
[step num="4"]
Если в процессе эксплуатации Iptables конфигурация была кем-то изменена, значения могут стоять другие. Проверить это можно за пару секунд, достаточно ввести команды:
```
iptables --policy INPUT ACCEPT
```
```
iptables --policy OUTPUT ACCEPT
```
```
iptables --policy FORWARD ACCEPT
```
[/step]
[step num="5"]
Правильнее будет заблаговременно разрешить все входящие/исходящие подключения, после чего выставлять запреты под конкретный порт и IP-адрес.
Можно поступить диаметрально противоположным методом: установить запрет на все соединения, после чего давать разрешения только некоторым из них. Это можно реализовать таким способом:
```
iptables --policy INPUT DROP
```
```
iptables --policy OUTPUT DROP
```
```
iptables --policy FORWARD DROP
```
[/step]
## Что делать с соединением
[step num="6"]
Настроив поведение утилиты, которое будет происходить автоматически, следует приступать к правилам, обрабатывающим входящий/исходящий трафик. Основные способы взаимодействия с трафиком:
[/step]
Accept – разрешение определенного соединения;
Drop – игнорирование запросов (межсетевой экран продолжает свое функционирование, будто никакого запроса не происходило, а запрашивающие ресурсы не узнают об игнорировании);
Reject – блокировка входящего трафика и отправка ответных сообщений с обозначением ошибки (в таком случае запрашивающие ресурсы будут уведомлены о блокировке их трафика).
Пример того, как будет выглядеть ping для
Разрешенного соединения (Accept):
Скриншот №2. Ping для разрешенного соединения
Проигнорированного трафика (Drop):
Скриншот №3. Ping для проигнорированного трафика
Отклоненного подключения (Reject):
Скриншот №4. Ping для отклоненного подключения
## Разрешение и блокировка указанных соединений Iptables
[step num="7"]
Как только политика отношения к трафику настроена, пора приступать к определению правил для конкретных соединений. Мы рассмотрим вариант с отклонением указанного подключения. Способы для разрешения и игнорирования будут устанавливаться похожим методом.
Воспользуемся командой –А. Она позволит добавить новое правило к уже имеющейся цепочке. Межсетевой экран начинает проверку с самого верха, проходя по каждому из правил до тех пор, пока не обнаружит совпадения или не закончит список.
[/step]
[step num="8"]
В случае, когда необходимо разместить правила в определенное место (перед каким-то определенным), следует воспользоваться командой:
iptables -I [цепочка] [номер позиции по списку для нового правила]
[/step]
## Что делать с соединениями от одного IP
[step num="9"]
Для блокировки трафика, поступающего из одного и того же источника (например, IP 120.120.120.120) подойдет команда:
```
iptables -A INPUT -s 120.120.120.120 -j DROP
```
[/step]
[step num="10"]
Для блокировки трафика, поступающего с нескольких IP в определенном диапазоне, следует воспользоваться стандартной записью масок посредством слэша:
```
iptables -A INPUT -s 120.120.120.0/24 -j DROP
```
Либо записью необходимого диапазона:
```
iptables -A INPUT -s 120.120.120.0/255.255.255.0 -j DROP
```
[/step]
## Подключения к определенному порту
[step num="11"]
Следующая команда сделает блокировку соединений типа Secure Shell с хостом 120.120.120.120:
```
iptables -A INPUT -p tcp --dport ssh -s 120.120.120.120 -j DROP
```
[/step]
[step num="12"]
На месте Secure Shell допустимо применение любого протокола. После команды –р указывается тип подключений, в данном случае – TCP. В случае, когда используется другой тип, следует указывать его.
Любому IP будет запрещено подключаться к машине по Secure Shell соединению, если выполнить:
```
iptables -A INPUT -p tcp --dport ssh -j DROP
```
[/step]
## О состояниях соединения
[step num="13"]
Существует множество протоколов, которым требуется двусторонняя коммуникация. К примеру, пользователю понадобилось поработать с SSH-соединением, ему придется внести правило сразу и в Output, и в Input.
Что делать, если юзер хочет предоставить разрешение исключительно входящему соединению? В этом случае поможет состояние соединения. Оно даст возможность пользователю описать любую двустороннюю коммуникацию, в которой разрешено подключение заданного направления.
Разрешим соединение типа SSH, приходящее через хост 120.120.120.120. Система будет отправлять данные по этому протоколу только, если сессия установлена.
```
iptables -A INPUT -p tcp --dport ssh -s 120.120.120.120 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -d 120.120.120.120 -m state --state ESTABLISHED -j ACCEPT
```
## Как сохранить изменения в конфигурации файрволла
[step num="14"]
После всех изменений, которые мы внесли в цепочку межсетевого экрана, понадобится их сохранение. Иначе перезапуск утилиты удалит проделанные нами настройки. Команда сохранения будет различаться от дистрибутива к дистрибутиву Linux.
Для Ubuntu команда выглядит так:
```
=sudo /sbin/iptables-save
```
Для Red Hat и CentOS:
```
=/sbin/service iptables save
```
Либо
```
=/etc/init.d/iptables save
```
[/step]
## Дополнительно
[step num="15"]
Чтобы вывести сконфигурированное ранее правило:
```
iptables –L
```
[/step]
Чтобы просмотреть данные о входящих/исходящих пакетах и трафике, достаточно добавить ключ –v.
Данные об имени хоста, протоколах, сетях появятся в цифровом виде, если дописать в команду –n.
[step num="16"]
Разом удалить все имеющиеся установленные правила возможно командой:
```
iptables –F
```
https://serverspace.uz/support/help/ustanovka-ruby-on-rails-na-ubuntu.mdРассмотрим подробнее процесс установки и настройки фреймворка Ruby on Rails на виртуальном сервере под ОС Ubuntu. Установка MySQL. Создание приложений.
Рассмотрим подробнее, каким способом можно на виртуальном сервере под ОС Ubuntu установить и настроить фреймворк Ruby on Rails.
## Описание фреймворка
Он создавался посредством программного языка Ruby, данный фреймворк имеет открытый исходный код. По сути, как и любой фреймворк, это комбинация приложений и инструментов, создающих единую область взаимодействия пользователя с веб-приложениями.
Ruby on Rails используют при создании самых разнообразных сайтов с формами авторизации, оставления отзывов, совершением заказов и покупок онлайн.
## Как установить Ruby
[step num="1"]
Прежде всего потребуется настроить зависимость для фреймворка. В этом поможет репозиторий Yarn и Node.js:
```bash
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
```
[/step]
[step num="2"]
Обратите внимание: [Webpacker](https://github.com/rails/webpacker), который поддерживается Yarn, помогает пользоваться препроцессорами Bundler и более известным JavaScript.
[/step]
[step num="3"]
Далее потребуется обновление системы и ее инсталляция на устройство:
```bash
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn
```
[/step]
[step num="4"]
Наиболее известным методом инсталла языка Ruby является команда rbenv:
```bash
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
```
[/step]
[step num="5"]
Следующий шаг – загрузить архив из каталога Github:
```bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
```
[/step]
[step num="6"]
Установив фреймворк Ruby, нужно обязательно проверить его версию:
```
rbenv install 2.5.3
rbenv global 2.5.3
ruby -v
```
[/step]
[step num="7"]
Далее устанавливается Bundler – утилита, управляющая [RubyGems](https://ru.wikipedia.org/wiki/RubyGems):
```
gem install bundler
```
[/step]
## Как установить Rails
Данный фреймворк с огромными зависимостями инсталлируется в ту область, которая доступна для работы с Javascript. Для примера можно взять NodeJS. В таком случае можно будет применить Asset Pipeline либо [Coffeescript](https://ru.wikipedia.org/wiki/CoffeeScript) и в фреймворке. Они скомбинируют и уменьшат код Javascript, повышая скорость и производительность.
[step num="8"]
Следующая команда позволит инсталлировать NodeJS:
```bash
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
```
[/step]
[step num="9"]
Далее устанавливается сам фреймворк:
```
gem install rails -v 5.2.1
```
[/step]
[step num="10"]
Файлу Rails нужно присвоить доступ такой командой:
```
rbenv rehash
```
[/step]
[step num="11"]
После чего инсталл можно считать оконченным. Правильность установки проверяется так:
```
rails -v
```
[/step]
[step num="12"]
В результате:
```
# Rails 5.2.1
```
[/step]
Другие строчки сигнализируют о неправильно прошедшей установке и настройке.
## Как настроить MySQL
Фреймворк идет в комплекте с собственной БД – sqlite3. Она элементарна и не имеет хорошей защищенности, поэтому в качестве БД лучше взять более популярную и надежную систему управления базами данных MySQL.
[step num="13"]
Инсталл клиента и сервера осуществляется через хранилище Ubuntu:
```bash
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
```
[/step]
## Как создавать приложения при помощи Rails
[step num="14"]
В создании приложений поможет команда:
```
rails new myapp -d mysql
```
[/step]
[step num="15"]
Для перехода в директорию приложения вводится:
```
cd myapp
```
[/step]
[step num="16"]
Для создания отдельной БД:
```
rake db:create
```
[/step]
[step num="17"]
Открытие 3000 порта для запуска фреймворка:
```
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
```
[/step]
[step num="18"]
Запуск сервера:
```
rails server
```
[/step]
[step num="19"]
Чтобы проверить правильность настройки, надо перейти в браузер, вводя:
```
:3000
```
[/step]
[step num="20"]
К примеру:
```
111.111.111.111:3000
```
[/step]
Когда настройки сделаны без ошибок, перед пользователем появляется такая страница:
https://serverspace.uz/support/help/ustanovka-neo4j-na-windows.mdГрафовая система управления базой данных Neo4j и ее подключение к VPS на Windows. Загрузка СУБД, запуск Neo4j через PowerShell, подключение к веб-интерфейсу.
Что представляет собой графовая система управления базой данных Neo4j и как подключить ее к виртуальному серверу, использующему ОС Виндовс.
## Описание Neo4j
Данная СУБД является графовой, то есть в своей работе с информацией она применяет модель графов. На [сайта разработчика](https://neo4j.com/product/) можно более подробно разузнать обо всех возможностях программы.
## Что потребуется для работы
Чтобы запустить Neo4j на компьютере, устройство должно обладать следующими минимальными характеристиками:
- Оперативная память – от 2 Гб. Для оптимального функционирования необходимо 16 Гб.
- Жесткий диск – SSD типа.
- Язык программирования виртуального сервера – Java. Поэтому понадобится установка Oracle Java на веб-сервер.
## Как загрузить СУБД
[step num="1"]
Чтобы начать загрузку Neo4j, необходимо на [официальном портале ПО](https://neo4j.com/download-center/) подобрать оптимальную версию, которая подойдет для работы с Виндовс системами, а после загрузить zip-архив.
[/step]
[step num="2"]
Разархивировать файлы можно в любую удобную директорию, но желательно поместить их прямо на системный диск:
```
C:neo4j
```
[/step]
После чего система управления базами данных запускается через консольное приложение либо службу Виндовс,
## Открыть как консольное приложение
[step num="3"]
Для запуска Neo4j нужно открыть PowerShell, также подойдет и классическая командная строка. Дальше надо зайти в директорию с файлами:
```
cd neo4jbin
```
[/step]
[step num="4"]
Сделать запуск исполняемого файла:
```
.neo4j.bat console
```
[/step]
Итог: консоль покажет несколько строк с технической информацией.
```
2018-12-14 14:07:42.177+0000 INFO ======== Neo4j 3.5.0 ======== 2018-12-14 14:07:42.192+0000 INFO Starting... 2018-12-14 14:07:45.130+0000 INFO Bolt enabled on 127.0.0.1:7687. 2018-12-14 14:07:46.661+0000 INFO Started. 2018-12-14 14:07:47.630+0000 INFO Remote interface available at http://localhost:7474/
```
После этого открывается виртуальный интерфейс и работа продолжается в нем.
## Открыть как службу Windows
[step num="5"]
Для запуска Neo4j, как и в прошлом случае, потребуется командная строка либо PowerShell. Затем необходимо зайти в директорию с файлом:
```
cd neo4jbin
```
[/step]
[step num="6"]
Инсталлировать сервис через такую команду:
```
.neo4j.bat install-service
```
[/step]
В итоге на экран выведется строчка:
```
Neo4j service installed
```
[step num="7"]
Запустить саму систему управления базами данных можно через:
```
.neo4j.bat start
```
[/step]
А если понадобится завершить работу, есть команда:
```
.neo4j.bat stop
```
## Как подключиться к веб-интерфейсу
[step num="8"]
Когда СУБД успешно запустилась, открывается браузер по умолчанию, в нем в строчке поиска пишется:
```
localhost:7474
```
[/step]
[step num="9"]
Первое подключение запросит пароль, можно указать:
```
neo4j
```
[/step]
[step num="10"]
Далее можно поменять стандартный пароль на более сложный.
[/step]
А после этого откроется окошко с начало работы Neo4j.
https://serverspace.uz/support/help/ustanovka-jupyter-notebook-na-ubuntu.mdПошаговая инструкция, как установить Jupyter Notebook на Ubuntu при помощи Python v3 - процесс инсталляции, настройка виртуального окружения, запуск Jupyter.
Как установить Jupyter Notebook на Ubuntu v18.04 при помощи Python v3
Ниже мы рассмотрим возможность установки веб-серверу под операционной системой Ubuntu приложения Jupyter Notebook и его подключения. Установка будет происходить при помощи языка программирования Python.
## Немного информации
Jupyter Notebook является виртуальным приложением, у которого открыт исходный код. Оно помогает писать и делиться визуализацией, программным кодом и другими объектами. Поддерживается многими программными языками, в том числе Julia, Python, R, Руби, Haskell. Чаще всего используется для взаимодействия с большими объемами данных, статистической информацией и машинным обучением.
Jupyter Notebook состоит из файлов, которые также называются "записными книжками". В них содержится кодовая часть и результат ее выполнения. Результат может быть представлен другим пользователям и воспроизведен сторонними юзерами.
## Как установить
[step num="1"]
Для начала потребуется сделать зависимость через репозиторий Ubuntu, необходимую виртуальной среде для языка Python. Перед этим следует обновить базу с локальными пакетами:
```bash
sudo apt update
sudo apt upgrade
```
[/step]
[step num="2"]
Потом устанавливается pip вместе с файлами заголовка Python, необходимых для создания зависимостей веб-приложения:
```bash
sudo apt install python3-pip python3-dev
sudo apt install virtualenv
```
[/step]
## Как создать виртуальное окружение
[step num="3"]
Первым делом настраивается доступ пользователя для команды virtualenv:
```
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
```
[/step]
Атрибут -Н показывает, что безопасность задается переменным окружения для домашнего каталога.
[step num="4"]
Затем нужно сделать и перейти в новую директорию, в которой будут храниться данные. Пусть названием служит каталог Serverspace:
```
mkdir ~/Serverspace
cd ~/Serverspace
```
[/step]
[step num="5"]
Там, внутри каталога, создается виртуальная среда для Python. Рекомендуется придумывать имя среды, тесно связанное со сферой проекта. Например, Serverspace:
```
virtualenv Serverspace
```
[/step]
[step num="6"]
После таких процедур создастся окружение, в котором хранится Python и pip локальных версий. В последствии можно заняться настройками изолированных сред Python для веб-приложения.
[/step]
[step num="7"]
До установки Jupyter понадобится активация виртуальной среды. Таким образом, название Serverspace следует заменить другим, более актуальным и понятным именем среды:
source Serverspace/bin/activate
[/step]
## Как установить и запустить Jupyter
[step num="8"]
После активации виртуальной среды инсталлировать веб-приложение можно через локальный экземпляр:
```bash
pip install jupyter
```
[/step]
[step num="9"]
Следующим образом можно подключить Jupyter Notebook на любой удаленной ПК либо веб-сервер через браузер с передаваемым токеном. Перед непосредственным запуском необходимо сделать открытие порта:
```
iptables -A INPUT -p tcp --dport -j ACCEPT
```
[/step]
[step num="10"]
Более подробный пример команды:
```
iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
```
[/step]
[step num="11"]
Запустить приложение можно описанной ниже командой. В ней параметр --ip подскажет адреса, которые будут подключаться к виртуальному серверу Jupyter. Выставленные нули говорят о том, что подключиться можно с любым IP. Параметр --no-browser помогает провести запуск сервера без открытия браузеров. За указание портов для запуска отвечает --port=Port№. Непосредственное разрешение запуска включает --allow-root.
```
jupyter notebook --ip 0.0.0.0 --no-browser --port=Port№
```
[/step]
[step num="12"]
Обратите внимание: для суперпользователей команда дополняется еще одним параметром --allow-root, который вносится в самом конце.
К примеру:
```
jupyter notebook --ip 0.0.0.0 --no-browser --port=1234 --allow-root
```
[/step]
[step num="13"]
Когда консоль будет запущена, на экране можно увидеть длинный путь с токеном. Далее необходимо перейти по данному адресу через браузер, заменив значения в скобках доменным именем либо реальным IP-адресом устройства.
[/step]
[step num="14"]
В конце возникнет рабочая область, предназначенная для взаимодействия пользователя с Python.
https://serverspace.uz/support/help/kak-otrkit-port-v-pfsense.mdНиже рассмотрен метод, позволяющий настроить внешний доступ к порту веб-сервера под ОС PFSense версии 2.3. Для открытия порта потребуется в верхней строчке найти Файрволл, а в нем – подменю Rules.
Ниже рассмотрен метод, позволяющий настроить внешний доступ к порту веб-сервера под ОС PFSense версии 2.3.
## Об открытии портов
Для начала потребуется в верхней строчке найти Файрволл, а в нем – подменю Rules. Нажав на него, появится страница, в которой следует выбрать соединение WAN, затем – Добавить.
Появится окошко Destination со вторым полем port range, где выставляет значение порта Откуда и Куда.
Обратите внимание: в место From поступают сетевые запросы, а в To они обрабатываются и перенаправляются. Имя портов может совпадать.
Затем следует сохранить изменения.
После этого Панель управления дополнится новыми правилами, которые можно будет редактировать, а пользователь сможет коннектиться через открытый порт PFSense.
Специальное меню Расписание позволит делать сложные правила, разрабатывать фильтры нежелательного сетевого трафика, уменьшать серверную нагрузку в заданные часы.
https://serverspace.uz/support/help/ustanovka-go-na-windows-server.mdВ инструкции написано, как установить Go (GoLang) на Windows Server и настроить среду программирования с помощью PowerShell. Установка диспетчера пакетов Chocolatey, текстового редактора Nano.
В инструкции написано как установить Go на с Windows Server и настроить среду программирования с помощью PowerShell.
### Что такое Go?
Go или GoLang - это процедурный язык программирования, появившийся благодаря разработчикам Google. Разработчикам постоянно приходилось выбирать между языками, которые выполняются эффективно, но медленно компилируются, и языками, которые быстро компилируются и легки в использовании, но работают неэффективно. Go был спроектирован таким образом, чтобы все требования были доступны одновременно: быстрая компиляция, простота программирования и эффективное выполнение.
Go легко изучить, он обладает небольшим набором ключевых слов, что делает его отличным выбором как для начинающих, так и для опытных разработчиков.
Преимущества языка Go:
- компании, в которых уже разрабатывают на Golang: Google, YouTube, Apple, Dropbox, Docker, BBC, The Economist, The New York Times, IBM, Twitter, Facebook.
- имеет хорошую поддержку. Язык финансируется Google. Его создатели, Роберт Гриземер, Роб Пайк и Кен Томпсон внесли свой вклад в такие влиятельные вещи, как C, B, Unix, JVM и другие.
- язык с открытым исходным кодом. Невероятно важно, чтобы язык программирования был открытым, для того, чтобы становиться лучше, чище и эффективнее. Если в программном коде есть дефекты, суслики (так называют разработчиков Golang) обнаружат и устранят проблемы.
- прост в использовании и быстр в изучении. Go имеет простую структуру и синтаксис. Он лишен классов, наследования, типов. Язык основан на функциях, поэтому он прост и быстр в изучении. Он организован таким образом, что обеспечивает более быструю обратную связь, сокращает время выхода на рынок и экономит время и деньги. Поэтому продукты написанные на GoLang легче обслуживать, а их разработка быстрее и дешевле.
- параллелизм. Параллелизм чрезвычайно важен в наше время. Это позволяет нескольким процессам работать одновременно и эффективно. Golang имеет эффективный параллелизм, такой же как C, C ++, Java, но в то же время параллелизм в Go выполняется намного проще благодаря процедурам, каналам и сборке мусора.
- кроссплатформенность. Он используется для различных платформ, включая версии для Windows, Linux, Unix и BSD и мобильные устройства (начиная с 2015 года). Кроме того, он хорошо компилируется на многих ОС.
- имеет сборщик мусора. Автоматическое управление памятью оказывает существенное влияние на производительность и помогает повысить эффективность параллелизма.
- уменьшает количество ошибок и багов. Поскольку это компилируемый язык с очень строгой типизацией и статической типизацией, разработчики должны быть более точными и внимательными, поэтому код получается более аккуратный и безопасный.
### Открытие и настройка PowerShell
PowerShell - это программа от Microsoft, предоставляющая интерфейс командной строки. Задачи администрирования как правило выполняются с помощью командлетов, которые являются частью программной среды .NET и могут выполнять операции.
Откройте консоль PowerShell, это можно сделать с помощью поиска.
Перейдите в домашний каталог с помощью команды:
```
cd ~
```
Затем вы будете в домашнем каталоге, Например, в C:UsersAdministrator.
Для установки GoLang необходимо настроить разрешения для PowerShell. По умолчанию она настроена для работы в наиболее безопасном режиме. Существует несколько уровней разрешений, которые возможно настроить:
| Restricted | Политика выполнения по умолчанию. В этом режиме нельзя запускать скрипты, а PowerShell работает только как интерактивная оболочка. |
| --- | --- |
| AllSigned | Позволяет запускать все сценарии и файлы конфигурации, которые подписаны доверенным издателем, что означает, что потенциально возможно подвергнуть компьютер риску запуска вредоносных сценариев, которые подписаны доверенным издателем. |
| RemoteSigned | Позволяет запускать все скрипты и файлы конфигурации, а для загруженных из Интернета требуется подпись доверенным издателем. |
| Unrestricted | Сценарии и файлы будут выполняться независимо от источника и наличия подписи. |
Мы рекомендуем использовать политику RemoteSigned, чтобы установить разрешения для текущего пользователя. Это позволит PowerShell принимать доверенные сценарии, не делая разрешения такими же широкими, какими они были бы с неограниченным разрешением. Введите следующую команду в PowerShell:
```
Set-ExecutionPolicy -Scope CurrentUser
```
Далее PowerShell предложит вам указать политику выполнения. Введите RemoteSigned для возможности установки пакетов:
```
RemoteSigned
```
Как только вы нажмете Enter, вас попросят подтвердить изменение в политике выполнения. Введите букву Y, чтобы изменения вступили в силу. Вы можете проверить текущие разрешения на сервере:
```
Get-ExecutionPolicy -List
```
Ожидаемый вывод:
```
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined
```
Это подтверждает, что возможно запускать доверенные сценарии, загруженные из Интернета.
### Установка диспетчера пакетов Chocolatey
Диспетчер пакетов - это набор программных инструментов, которые автоматизируют процесс установки. Он занимается первоначальной установкой, обновлением и настройкой программного обеспечения, а также удалением по мере необходимости.
Chocolatey - это менеджер пакетов командной строки, созданный для Windows по аналогии с apt-get в Linux. Chocolatey поможет быстро установить приложения и различные инструменты.
Начните с создания объекта WebClient с именем $script, который разделяет настройки интернет-соединения с Internet Explorer:
```
$script = New-Object Net.WebClient
```
Используйте этот метод DownloadString для инспекции скрипта:
```
$script.DownloadString("[https://chocolatey.org/install.ps1](https://chocolatey.org/install.ps1)")
```
Установите Chocolatey:
```
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
```
### Установка текстового редактора Nano (опционально)
На этом шаге можно установить текстовый редактор nano, который использует интерфейс командной строки. Вы можете использовать nano для написания программ непосредственно в PowerShell. Это не обязательный шаг, так как вы также можете использовать текстовый редактор с графическим интерфейсом пользователя, например, Блокнот или Sublime.
Используйте Chocolatey для установки nano:
```
choco install -y nano
```
### Установка Go
Как и в случае с nano на предыдущем шаге, используйте Chocolatey для установки Go:
```
choco install -y golang
```
После завершения установки убедитесь, что Go установлен. Чтобы увидеть изменения, закройте и снова откройте PowerShell от имени администратора, а затем проверьте доступную версию Go:
```
go version
```
Ожидаемый вывод:
```
go version go1.12.5 windows/amd64
```
[/step]
### Создание простой программы
В вашем домашнем каталоге откройте текстовый редактор командной строки nano и создайте новый файл:
```
nano hello.go
```
Вставьте следующие строки в файл:
```
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
```
[/step]
Выйдите из nano, нажав клавиши CTRL и X. Когда будет предложено сохранить файл, нажмите Y, а затем ENTER.
Когда вы выйдете из nano и вернетесь в рабочую оболочку, запустите программу:
```
go run hello.go
```
Программа hello.go должна вывести следующую строку:
```
Hello, World!
```
На этом этапе работа базовой программы подтвердила, что рабочее окружение Go настроено правильно.
https://serverspace.uz/support/help/mounting-a-disk-and-creating-partitions-in-linux.mdРассмотрим, как смонтировать диск на Virtual Private Server (VPS), Virtual Dedicated Server (VDS) и Standalone Server. Особенность ОС Linux в том, что существует возможность монтировать диск.
Установленного в системе жесткого диска может быть недостаточно и иногда встает вопрос о добавлении дополнительного носителя. Рассмотрим как смонтировать диск на Virtual Private Server (VPS), Virtual Dedicated Server (VDS) и Standalone Server.
## Подготовка к монтажу и созданию раздела
[step num="1"]
Перед началом работы следует убедиться существует ли диск в системе. Иногда наличие устройства в BIOS может быть недостаточным. Доступные накопители проверяем командой:
```
sudo fdisk -l
```
[/step]
В нашем случае в системе присутствуют 2 диска - sda и sdb, оба по 10 Гб, первый диск системный. Работать будем со вторым диском (sda).
[step num="2"]
Важно помнить, что Linux системы можно повредить неверно указав диск, например системный. Следует тщательно проверять и перепроверять выбор носителя. На помощь приходит тот факт, что новый диск (из коробки) не имеет файловой системы и разделов.
[/step]
## Разметка диска
[step num="3"]
Для разметки диска запустить утилиту fdisk с указанием пути до диска:
```
fdisk /dev/sdb
```
[/step]
[step num="4"]
При нажатии "m" и подтверждением ввода клавишей Enter, программа предоставит страницу доступных команд:
```
Справка:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c переключить флаг совместимости с DOS
Общие
d удалить раздел
F list free unpartitioned space
l список известных типов разделов
n добавить новый раздел
p показать таблицу разделов
t изменить тип раздела
v проверить таблицу разделов
i print information about a partition
Разное
m показать это меню
u изменить единицы отображения/ввода
x дополнительные функции (только для экспертов)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Сохранить и выйти
w сохранить таблицу на диск и выйти
q выйти без сохранения изменений
Создать новую метку
g создать новую пустую таблицу разделов GPT
G создать новую пустую таблицу разделов SGI (IRIX)
o создать новую пустую таблицу разделов DOS
s создать новую пустую таблицу разделов Sun
```
[step num="5"]
Так как мы будем создавать простой раздел (не загрузочный), будем использовать все дисковое пространство, нажимаем клавишу "n" и Enter.
Система спросит о типе раздела - выбираем p (primary) - первичный.
[/step]
[step num="6"]
Номер раздела - 1
[/step]
[step num="7"]
На вопрос о первом и последнем секторе отвечаем нажатием клавиши Enter.
[/step]
Важно! Если вы желаете создать несколько логических дисков, то в ответе на последний сектор следует указать размер в кило-, мега-, гига-, тера-, петабайтах. Соответственно, если раздел нужен размером в 2 гигабайт, то указываем 2G.
[step num="8"]
Сохраняем изменения нажатием "w" и подтверждаем выбор с помощью клавиши Ввод.
[/step]
## Форматирование диска
[step num="9"]
После выполнения операции описанной выше, в системе будет создано устройство /dev/sdb1 - по своей сути это и есть раздел на диске. Теперь форматируем.
[/step]
[step num="10"]
Современный Linux предлагает на выбор несколько вариантов файловых систем. Создание файловой системы происходит выполнением команды mkfs с указанием ключей, либо выполнением одной из программ:
```
mkfs.bfs
```
```
mkfs.btrfs
```
```
mkfs.cramfs
```
```
mkfs.ext2
```
```
mkfs.ext3
```
```
mkfs.ext4
```
```
mkfs.ext4dev
```
```
mkfs.fat
```
```
mkfs.minix
```
```
mkfs.msdos
```
```
mkfs.ntfs
```
```
mkfs.vfat
```
```
mkfs.xfs
```
[/step]
[step num="11"]
Форматирование выполняется командой:
```
sudo mkfs.ext4 /dev/sdb1
```
[/step]
[step num="12"]
Диск готов к работе. Остается только смонтировать его.
[/step]
## Монтирование диска
Особенность ОС Linux в том, что существует возможность монтировать диск (либо иное блочное устройство) в любую из директорий, главное чтобы директория была пустой.
[step num="13"]
Создаем каталог в директории /mnt:
```
sudo mkdir /mnt/1
```
[/step]
[step num="14"]
Изменяем права доступа к каталогу. Только root и и только чтение и запись.
```bash
sudo chmod -R 660 /mnt/1
```
[/step]
[step num="15"]
Собственно, монтируем:
```
sudo mount /dev/sdb1 /mnt/1
```
[/step]
[step num="16"]
Для монтирования диска автоматически при загрузке системы, редактируем файл /etc/fstab. Открываем любым текстовым редактором, например nano:
```
sudo nano /etc/fstab
```
[/step]
[step num="17"]
В самый конец файла вставляем строку:
```
/dev/sdb1 /mnt/1 ext4 defaults 0 0
```
[/step]
[step num="18"]
Сохраняем файл.
[/step]
## Вам также может быть интересно
- [Заказать облачный сервер](https://serverspace.uz/services/cloud-servers.md)
- [Virtual Private Server (VPS)](https://serverspace.uz/services/vps-server.md)
- [Поиск файлов в Linux с определенным текстом](https://serverspace.uz/support/help/kak-najti-vse-fajly-soderzhashhie-opredelennyj-tekst-v-linux-i-windows/)
https://serverspace.uz/support/help/ustanovka-modx-na-ubuntu-16.mdКак загрузить и настроить MODX под Ubuntu? Для начала потребуется скачать систему управления содержимым для виртуального сервера. Настройка базы данных, Apache. Процесс настройки MODX.
Подробное описание установки на веб-сервер с ОС Убунту системы управления содержимым для создания сайтов.
## Описание MODX
Это CMS, которую используют во многих странах для работы с одностраничными и многостраничными веб-сайтами. Ее исходный код открыт для всех желающих, а управление происходит посредством back-end администрирования. CMS радует разработчиков и дизайнеров большим количеством шаблонных решений, надежным API и возможностью расширения функционала сайта.
Обратите внимание: CMS является прикладными программным обеспечением, обладающим веб-интерфейсом. Система помогает управлять сайтом (добавлять контент, редактировать его и удалять).
Рассмотренная ниже инструкция проводилась для администратора, наделенного правом суперпользователя.
Для начала работы с MODX виртуальному серверу потребуется установка LAMP-стека.
С нужными правами и программным обеспечением можно начинать непосредственную работу с CMS.
Как загрузить и настроить MODX
[step num="1"]
Для начала потребуется скачать систему управления содержимым для виртуального сервера. Лучше всего сделать это на [официальном ресурсе](https://modx.com/download) компании.
[/step]
Вероятно, что сначала архив загрузится на локальную машину. Перенести его на сервер с разными операционными системами можно так:
[step num="2"]
Если сервер с Виндовс, на помощь придет программа WinSCP. Заархивированные файлы следует перетащить в директорию /root.
[/step]
[step num="3"]
Если сервер с Линукс, потребуется утилита:
```bash
scp root@:/root/
```
[/step]
[step num="4"]
Более полный пример:
```bash
scp modx-2.6.0-pl.zip root@111.227.222.128:/root/
```
[/step]
[step num="5"]
Для разархивации файлов проводится следующая команда:
```bash
apt-get install unzip
```
[/step]
[step num="6"]
Именно утилита unzip позволяет распаковать архив для CMS:
```bash
unzip
```
[/step]
К примеру:
```bash
unzip modx-2.6.0-pl.zip
```
[step num="7"]
Полученные папки с файлами переносятся в /var/www. Для этого пишется команда:
```
cp -R ./modx-2.5.7-pl/* /var/www
```
[/step]
[step num="8"]
В случае возникновения ненужной директории, ее можно удалить:
```
rm -rf modx-2.5.7-pl
```
[/step]
[step num="9"]
Добавить права для пользователя можно командой:
```bash
sudo adduser $USER www-data
sudo adduser www-data $USER
cd /var/www
chown www-data:www-data -R ./*
```
[/step]
## Как настроить базу данных MODX
[step num="10"]
Без базы данных CMS не сможет полноценно функционировать, ей потребуется MySQL:
```bash
mysql -u root -p
```
[/step]
[step num="11"]
Вход осуществляется по паролю суперпользователя СУБД. В СУБД создается база для сайта, в ней – новый пользователь, которому присваивается пароль. При этом, работая с MySQL, любую команду следует заканчивать ";".
[/step]
[step num="12"]
Как создается БД для MODX:
```sql
CREATE DATABASE modx;
```
[/step]
[step num="13"]
Как создается новый пользователь:
```sql
CREATE USER muser@localhost;
```
[/step]
[step num="14"]
Как происходит задание пароля:
```
SET PASSWORD FOR muser@localhost= PASSWORD("");
```
[/step]
[step num="15"]
Для завершения настроек новый пользователь наделяется привилегиями, которые помогут ему взаимодействовать со всеми таблицами БД:
```
GRANT ALL PRIVILEGES ON modx.* TO muser IDENTIFIED BY '';
```
[/step]
[step num="16"]
Далее нужно обновить систему управления базами данных:
```
FLUSH PRIVILEGES;
```
[/step]
[step num="17"]
И сделать выход:
```
exit
```
[/step]
## Как настроить Apache
[step num="18"]
Перед тем, как начать настраивать CMS в веб-режиме, потребуется поработать с конфигурацией Апача:
```
vi /etc/apache2/apache2.conf
```
[/step]
[step num="19"]
После команды добавляются строчки, где IP меняется на реальный и действующий адрес веб-сервера:
```xml
Listen 80
DocumentRoot /var/www/
ServerName {ip-адрес}
ErrorLog /var/log/apache2/error_ {ip-адрес}
CustomLog /var/log/apache2/access_log_ {ip-адрес} combined
```
[/step]
[step num="20"]
Затем проводится настройка файрволла, чтобы удаленно управлять сервером:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
```
[/step]
[step num="21"]
Для сохранения настроек понадобится перезапуск Апача:
```bash
sudo service apache2 restart
```
[/step]
## Процесс настройки MODX
[step num="21"]
Открывается браузер, в адресную строчку вводится IP:
```
/setup/
```
[/step]
Для примера:
```
185.125.46.12/setup/
```
[step num="22"]
Если адрес правильный, появится панель для входа, где нужно выбрать рабочий язык.
[/step]
[step num="23"]
В окне с параметрами установки лучше оставлять стандартные настройки. Расширенная установка подойдет только продвинутым пользователям.
[/step]
[step num="24"]
После чего MODX подсоединяется к созданной ранее БД. В примере имя базы значилось как "muser@localhost", поэтому для имени пользователя будет браться "muser". Если соединение с базой данных пройдет успешно, появится зеленый текст. Если возникнут трудности, текст станет красным.
[/step]
[step num="25"]
Лучше сделать повторную выборку из MySQL, чтобы удостовериться в правильном подключении.
[/step]
[step num="26"]
В следующем окне высветится анкета админа, в нее вводятся стандартные данные (имя, пароль, почта).
[/step]
[step num="27"]
Далее система покажет отчет. Если появятся ошибки и предупреждения, их следует исправить сразу. На изображении не хватает пакета php7.0-xml.
[/step]
[step num="28"]
Если предупреждения отсутствуют, высветится окошко. Войти на сайт можно через кнопку с логином, вводя придуманные ранее имя админа и пароль учетной записи.
[/step]
[step num="29"]
Обратите внимание: желательно следовать рекомендациям MODX.
[/step]
[step num="30"]
После этого инсталл CMS считается завершенным. Можно приступать к созданию веб-сайтов.
https://serverspace.uz/support/help/ustanovka-joomla-3-na-ubuntu-16.mdКак установить Joomla 3 на Ubuntu v16.04. Чтобы началась работа с Joomla, виртуальному серверу на Ubuntu нужна загрузка LAMP-стека. Установка Joomla 3, настройка СУБД, Apache, файрвола.
Мы рассмотрим установку системы управления содержимым Joomla! для виртуального сервера с ОС Ubuntu.
## Что представляет собой Joomla
Джумла является бесплатной системой, позволяющей управлять содержимым сайта. Она разработана на скриптовом языке php, в работе в обязательном порядке участвует СУБД MySQL. Установка происходит предельно просто, далее пользователю предлагается широкий и гибкий функционал, позволяющий управлять средними и малыми проектами. Джумлу можно назвать второй в мире CMS по популярности, для нее каждый месяц выпускаются новые дополнения и функции. Сегодня Joomla имеет:
- Меню типа ACL;
- Менеджер шаблонов с поддержкой SCSS и SASS файлов;
- Обновленную новостную ленту;
- Сохранность динамической переменной JavaScript;
- Новый способ извлечения строк кода из хранилища данных;
- Расширенные настройки всплывающей подсказки в Bootstrap;
- Написание сложных команд для базы данных;
- Напоминание об обновлении языка php до последней версии;
- Потоковое подключение, поддерживающее прокси;
- Упрощенное создание категорий сайта;
- Обновление происходит быстрее и проще.
Помимо Joomla, на веб-сервер можно установить не менее популярную и практичную CMS.
## Что потребуется для работы
[step num="1"]
Выполнять описанные рекомендации следует администратору, обладающему правом суперпользователя.
[/step]
[step num="2"]
Для того, чтобы началась работа с Джумлой, виртуальному серверу нужна загрузка LAMP-стека.
[/step]
С установленным программным обеспечением и необходимыми правами можно приступать к инсталлу CMS.
## Как загрузить Джумлу
[step num="3"]
Сначала понадобится зайти в домашнюю директорию и создать каталог, где разместятся файлы CMS:
```
cd ~
mkdir tempjo
```
[/step]
[step num="4"]
После этого перейти в созданную папку:
```
cd ~/tempjo
```
[/step]
[step num="5"]
Можно взять самую последнюю версию Джумлы напрямую с сайта разработчика:
```bash
wget https://downloads.joomla.org/cms/joomla3/3-7-2/Joomla_3-7.2-Stable-Full_Package.tar.gz
```
[/step]
Обратите внимание: [здесь](https://downloads.joomla.org/cms/joomla3) найдутся обновленные и актуальные модели CMS.
[step num="6"]
После скачивания архив с файлами системы управления контентом окажется в директории виртуального сервера. Чтобы приступить к дальнейшей установке, Джумлу придется разархивировать и переместить в директорию Апача:
```bash
cd /var/www
mkdir html html/joomla
sudo tar zxvf ~/tempjo/Joomla_3-7.2-Stable-Full_Package.tar.gz -C /var/www/html/joomla
```
[/step]
[step num="7"]
Для освобождения места временная папка удаляется:
```
rm -Rf ~/tempjo
```
[/step]
## Как настроить параметры
[step num="8"]
После переноса файлов, к ним нужно предоставить доступ для установщика Джумлы:
```bash
chown -R www-data.www-data /var/www/html/joomla/
chmod -R 755 /var/www/html/joomla/
```
[/step]
## Как настроить СУБД
[step num="9"]
Для создания базы данных потребуется зайти в MySQL:
```bash
mysql -u root -p
```
[/step]
Вход в базу данных доступен по паролю от суперпользователя. После этого нужна будет новая БД, в ней – пользователь, а пользователю – все привилегии для работы и редактирования.
[step num="10"]
Команда для создания базы:
```sql
CREATE DATABASE joomla;
```
[/step]
[step num="11"]
Теперь пользователь:
```sql
CREATE USER juser;
```
[/step]
[step num="12"]
Установка пароля:
```
SET PASSWORD FOR juser= PASSWORD("");
```
[/step]
[step num="13"]
Обязательно нужно предоставить привилегии, иначе Джумла не будет позволять пользователю оперировать с таблицами в MySQL:
```
GRANT ALL PRIVILEGES ON joomla.* TO juser IDENTIFIED BY '';
```
[/step]
[step num="14"]
Актуализирование привилегий СУБД:
```
FLUSH PRIVILEGES;
```
[/step]
[step num="15"]
В конце нужно выйти:
##
```
exit
```
[/step]
[step num="16"]
Как настроить Apache
Сначала потребуется внести изменения в конфигурацию Апача. Сделать это можно командой:
```
vi /etc/apache2/apache2.conf
```
[/step]
[step num="17"]
После надо добавить строчки, внеся в них актуальный IP:
```xml
Listen 80
DocumentRoot /var/www/
ServerName {ip-адрес}
ErrorLog /var/log/apache2/error_{ip-адрес}
CustomLog /var/log/apache2/access_log_{ip-адрес} combined
```
[/step]
## Способ настройки файрволла
[step num="18"]
Файрволл понадобится, чтобы можно было удаленно управлять устройством:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
```
[/step]
[step num="19"]
Обратите внимание: если сервер перезагрузится, порты снова придется открывать.
[/step]
Получение доступа для установщика Джумлы
[step num="20"]
Когда все необходимые для работы папки с файлами Joomla будут находиться на виртуальном сервере, можно начать непосредственную установку системы управления содержимым через браузер.
[/step]
[step num="21"]
Сначала нужно в адресную строчку ввести IP либо доменное имя:
```
ip-адрес/joomla
```
[/step]
К примеру, следующим образом:
[step num="22"]
Появится предложение выбора языка.
[/step]
[step num="23"]
В поля конфигурации система попросит написать имя сайта, контактную почту, пароль и прочую информацию. Желательно устанавливать наиболее сложный пароль, иначе сайт может подвергнуться атакам хакеров. Ниже есть опция включения и выключения видимости сайта для других пользователей.
[/step]
[step num="24"]
В конфигурации базы данных нужно указать пользователя БД, имя БД и пароль. Графу с типом можно оставить стандартной. В качестве префикса можно написать любое слово.
[/step]
[step num="24"]
Если возникнет такая необходимость, можно загрузить демо-данные. После введения всей информации начинается непосредственная загрузка Джумлы.
[/step]
[step num="25"]
Желательно удалять установочные папки, чтобы ими не могли воспользоваться злоумышленники.
[/step]
[step num="26"]
Когда все закончится, в браузере откроется панель администрирования.
[/step]
[step num="27"]
Для входа в админку сайта следует воспользоваться паролем и логином, внесенными в самом начале. Прямой вход в админку осуществляется по адресу:
```
/joomla/administrator/
```
https://serverspace.uz/support/help/kak-ustanovit-drupal-8-na-docker.mdИнструкция по установке и настройке системы управления содержимым Друпал в контейнере Docker на виртуальный VPS сервер с ОС CentOS v7. Рассмотрим процесс подробнее.
Ниже мы в несколько этапов разберем, как устанавливать и настраивать систему управления содержимым Друпал на виртуальный сервер с ОС CentOS v7.
**Вы можете воспользоваться [инструкцией](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) или [создать сервер](https://serverspace.ru/services/cloud-marketplace/) в Serverspace с уже установленным приложением Docker.**
## Пара слов о Друпале
Drupal представляет собой одну из наиболее известных в мире систем управления содержимым (CMS), у которой открыт исходный код, простой инсталл и полный набор возможностей для создания веб-сайтов. Восьмая версия наделена двумя сотнями новых функций, среди которых:
- Большой выбор языков для интерфейса;
- Улучшение в кэшировании и интеграции с CDN;
- Возможность создавать динамический контент;
- Возможность управлять отображением, не задействуя программный код;
- Использование в частных и бизнес-целях;
- Подстраивается под пользователей с ограниченными возможностями.
Если развернуть Друпал в контейнере, можно существенно упростить его настройку: больше не понадобится дополнительный инсталл Апача либо Nginx, подготовка пустых баз данных, загрузка веб-языка php.
## Как настроить Docker
[step num="1"]
Docker является системой контейнеризации. Для его взаимодействия с Друпалом, он должен быть заранее предустановлен на сервер.
[/step]
[step num="2"]
Далее потребуется загрузка образа системы управления базами данных mariadb. Если на устройстве отсутствует последняя версия, ее можно загрузить через такую строку:
```bash
docker pull mariadb
```
[/step]
[step num="3"]
Дополнительно нужно скачать CMS Друпал:
```bash
docker pull drupal
```
[/step]
В образе будет содержаться все необходимое: скриптовый веб-язык и Апач.
[step num="4"]
Dockerfile последней версии [находится по ссылке](https://github.com/docker-library/drupal/).
[/step]
[step num="5"]
Обратите внимание: если требуется загрузить конкретную модель CMS, в строчке через двоеточие пишется модель. К примеру, drupal:7.5.5.
[/step]
[step num="6"]
При загрузке базы данных нужно указать основные параметры:
```bash
docker run -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE= -e MYSQL_USER= -e MYSQL_PASSWORD= -v mariadb:/var/lib/mysql -d --name mariadb
```
[/step]
[step num="7"]
Более подробный пример:
```bash
docker run -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=drupal -e MYSQL_USER=duser -eMYSQL_PASSWORD=drupalpass -v mariadb:/var/lib/mysql -d --name mariadb mariadb
```
[/step]
[step num="8"]
По окончанию пользователь получит контейнер, внутри которого будет развернутая база с данными. Параметр -v отвечает за создание примонтированного раздела сервера, в который установится база данных.
[/step]
[step num="9"]
Запуск Друпала и его коннект с СУБД с указанием имени хоста базы делается следующим образом:
```bash
docker run --name --link mariadb: -p : -d drupal
```
[/step]
[step num="10"]
Для примера:
```bash
docker run --name drupal8 --link mariadb:mariadb -p 80:80 -d drupal
```
[/step]
[step num="11"]
Чтобы получить возможность работать через удаленный доступ, необходимо открыть порт:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
[/step]
## Как настроить Drupal
[step num="12"]
Нужно открыть браузер и перейти по ссылке, не забыв указать IP:
```
```
[/step]
[step num="13"]
Таким образом:
```
111.121.11.10
```
[/step]
[step num="14"]
Первым шагом идет выбор языка (в данном случае это русский).
[/step]
[step num="15"]
Второй – указание установочного профиля (выбирается стандартный).
[/step]
[step num="16"]
Третий – выбор конфигурации БД с указанием ее имени, пользователя и пароля. Можно воспользоваться дополнительными настройками и записать хост.
[/step]
[step num="17"]
Как только изменения сохранятся, запустится инсталл Друпала.
[/step]
[step num="18"]
В процессе система попросит ввести личные данные: доменное имя веб-сайта, e-mail, главного пользователя и пароль. Можно воспользоваться разными уровнями сложности для написания надежного пароля.
[/step]
[step num="19"]
Далее конфигурация самостоятельно обновится.
[/step]
На этом заканчивается установка, после нее откроется окно с панелью управления.
Чтобы войти в панель Друпада, потребуется еще раз ввести имя пользователя и пароль от учетки, который был сформирован ранее.
Весь процесс установки завершен.
https://serverspace.uz/support/help/nastroika-exim-4-na-ubuntu.mdНастройка Exim (Experimental Internet Mailer) под Ubuntu. Агент пересылки сообщений Exim4, распространяемый под лицензией GPL, используется, когда нет необходимости держать целый почтовый сервер, а достаточно лишь пересылать письма.
Отличительная особенность почтовых служб в гибкости их настройки. Существуют конфигурации, когда нет необходимости держать целый почтовый сервер, а достаточно лишь пересылать письма. Рассмотрим как это сделать в Ubuntu.
На помощь приходит Exim4. Exim - Experimental Internet Mailer - агент пересылки сообщений, распространяется под лицензией GPL.
Приступаем.
[step num="1"]
Обновляем данные о состоянии репозиториев, затем устанавливаем exim4:
```bash
sudo apt-get update
sudo apt-get install exim4
```
[/step]
[step num="2"]
Важно! Если необходимо использование ACL (Access Control List) и прочие дополнительные функции, то следует установить exim4-daemon-heavy.
[/step]
[step num="3"]
Теперь настроим exim4. Для этого выполним команду:
```
sudo dpkg-reconfigure exim4-config
```
[/step]
Программа предлагает сделать выбор. Рассмотрим их назначения.
**internet site; mail is sent and received directly using SMTP** (интернет-сайт; приём и отправка почты напрямую, используя SMTP) - данный вариант подходит для Интернет сайтов, при этом полном доступе к сети Интернет. Служба принимает входящую почту на локальные домены и доставляет пользователям. Отправка почты происходит непосредственно на домены получателя.
**mail sent by smarthost; received via SMTP or fetchmail** (отправка почты через smarthost; приём по SMTP или через fetchmail) - выбранный нами вариант, применяется для ограниченного доступа к сети Интернет. Входящая почта будет доставлена пользователям, а исходящая сначала доставляется на Smart host и только потом до целевого ящика.
**mail sent by smarthost; no local mail** (отправка почты через smarthost; локальная почта отсутствует ) - Локальные домены не используются. Все исходящие письма отправляются сразу на Smart host.
**local delivery only; not on a network** (доставка только локальной почты; доступа к сети нет) - этот вариант следует выбирать, когда у сервера нет подключения к глобальной сети. Доставка почты происходит только между локальными доменами.
[step num="4"]
Курсорными клавишами выбираем **"Отправка почты через smarthost; прием по SMTP или через fetchmail"**, в английской локали это будет как "**mail sent by smarthost; received via SMTP or fetchmail**". Выбор подтверждаем нажатием по клавише **Enter.**
[/step]
[step num="5"]
Следующим шагом следует указать ваше доменное имя или имя узла.
[/step]
[step num="6"]
По окончании нажимаем Enter.
[/step]
[step num="7"]
Теперь укажем IP-адреса на которых Exim должен слушать соединения. IP-адреса следует разделять символом ";" - точка с запятой.
[/step]
[step num="8"]
Нажимаем **Enter**.
[/step]
[step num="9"]
В обновленном окне указываем локальные домены и почтовые ящики. Поле следует оставить пустым, если у вас нет этого.
[/step]
[step num="10"]
Нажимаем Enter.
[/step]
[step num="11"]
Следующим шагом указываем список доменов для которых Exim будет пересылать почту выполняя роль Smarthost'а. Если сервер не должен быть Smarthost, то поле нужно оставить пустым.
[/step]
[step num="12"]
Нажимаем Enter.
[/step]
[step num="13"]
Теперь указываем адреса smtp-сервера и через двойное двоеточие ("::") smtp-порт.
[/step]
Пример популярных сервисов:
```
smtp.yandex.ru::587
```
```
smtp.gmail.com::587
```
```
mail.example.com::587
```
[step num="14"]
Заполнив поле, нажимаем Enter.
[/step]
[step num="15"]
Следующим шагом будет вопрос о необходимости скрывать локальные имена сервера. Если нужно - выбираем "Да" ("Yes").
[/step]
[step num="16"]
Настраиваем запросы к DNS. Exim выполняет обращения к DNS при запуске службы, при получении и отправке сообщений. Если соединение к сети ничем не ограничено, то в этом пункте следует выбрать "No" ("Нет"). В противном случае, если используется "Вызов по требованию" ("Deal-on-demand"), то следует выбрать ответ "Да".
[/step]
[step num="17"]
Нажимаем Enter.
[/step]
[step num="18"]
Выбираем место хранения почты. Либо это /var/mail, либо в домашнем каталоге пользователя.
[/step]
[step num="19"]
Нажимаем Enter.
[/step]
[step num="20"]
Для удобства конфигурирования, можно разделить большой файл конфигурации на несколько мелких.
[/step]
[step num="21"]
Делаем выбор, нажав Enter.
[/step]
На этом приложение завершит свою работу.
[step num="22"]
Настроим данные о почтовом ящике с которого будут уходить письма. Для этого откроем файл /etc/exim4/passwd.client в любом текстовом редакторе:
[/step]
```
sudo nano /etc/exim4/passwd.client
```
[step num="23"]
В этот файл надо вписать строку с указанием сервера, логина и пароля, разделенные двоеточием.[/step] Например:
Для GMail:
```
smtp.google.com:[username@gmail.com](mailto:username@gmail.com):user_password
```
Yandex:
```
smtp.yandex.ru:username@yandex.ru:user_password
```
Для собственного SMTP-сервера:
```
mail.example.com:username@example.com:user_password
```
Результат будет примерно таким.
Сохраняем.
[step num="24"]
Так как в самом начале мы не выбирали разделение большого файла на мелкие - отредактируем файл exim4.conf.template:
[/step]
```
sudo nano /etc/exim4/exim4.conf.template
```
Находим в файле строку:
```
.ifdef DCconfig_smarthost DCconfig_satellite
```
После нее вставляем параметры:
```
send_via_gmail:
```
```
driver = manualroute
```
```
domains = ! +local_domains
```
```
transport = gmail_smtp
```
```
route_list = * smtp.gmail.com
```
Далее ищем строку:
```
transport/30_exim4-config_remote_smtp_smarthost
```
После нее вставляем строки:
```
gmail_smtp:
```
```
driver = smtp
```
```
port = 587
```
```
hosts_require_auth = $host_address
```
```
hosts_require_tls = $host_address
```
Затем ищем строку:
```
begin authenticators
```
И указываем эти параметры:
```
gmail_login:
```
```
driver = plaintext
```
```
public_name = login
```
```
client_send = : user@gmail.com : password
```
Замените параметры поля "client_send" на свои.
Удаляем из файла следующие строки (находится почти в конце файла):
login:
```
driver = plaintext
```
```
public_name = LOGIN
```
```
.ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS
```
```
# Return empty string if not non-TLS AND looking up $host in passwd-file
```
```
# yields a non-empty string; fail otherwise.
```
```
client_send = "
https://serverspace.uz/support/help/how-to-configure-xrdp-server-on-ubuntu-18-04.mdЧто такое xRDP? Подробная инструкция по настройке xRDP для подключения к Ubuntu 18.04 с графическим интерфейсом Xforce через протокол RDP из ОС Windows
Эта инструкция поможет вам настроить сервер, работающий под управлением Ubuntu 18.04, так, чтобы комфортно и без дополнительных телодвижений подключаться к нему с любой Windows-машины. Такой подход удобен, когда есть надобность подключиться с компьютера Windows к машине под Linux, но при этом не хочется использовать SSH, а нужен привычный графический интерфейс с окошками и иконками.
## О реализации XRDP
XRDP - разработка, позволяющая на ОС, отличных от разработанных Microsoft, реализовать функциональность подключения из Windows к компьютерам под управлением ОС на базе *nix.
## Настройка службы на "целевом" сервере
Первым делом актуализируем кеш установщика пакетов, выполним инсталляцию и активируем сервис xRDP:
```bash
apt-get update; apt-get install xrdp; systemctl enable xrdp; service xdrp restart
```
Добавить в систему оконный менеджер xfce поможет такая команда:
```bash
apt -y install xfce4 xfce4-terminal
```
Разрешите трафик до порта RDP в настройках файрволла:
```
ufw allow 3389/tcp
```
Далее, как финальный шаг настройки, запустите сервис xRDP:
```bash
systemctl restart xrdp
```
## Собственно подключение
На вашей Windows-машине запустите утилиту **mstsc.exe** ("комплектный" RDP-клиент для соединения с рабочим столом). Напечатайте или вставьте из буфера имя или IP-адрес "целевого" сервера, кликните по кнопке **Подключить**:
В появившемся окне в выпадающем списке session выберите **Xorg**, укажите имя учетной записи и ее пароль пользователя, кликните по кнопке **OK**:
Если все верно, отобразится графическое окружение "удаленной" ноды.
**Замечание**: Возможна ситуация, когда вместо иконок xrdp вы увидите черноту, в этом случае потребуется в папке _/etc/xrdp_ изменить файл _startwm.sh_, вставив перед строкой _test –x /etc/X11/Xsession && exec /etc/X11/Xsession_ такой текст:
```
unset DBUS_SESSION_BUS_ADDRESS
```
```
unset XDG_RUNTIME_DIR
```
По завершению редактирования нужен будет перезапуск демона XRDp.
```bash
systemctl restart xrdp
```
Когда выполните рестарт, можете повторно запускать на вашем компьютере утилиту mstsc.exe и подключаться к сеансу на Linux-сервере.
https://serverspace.uz/support/help/managing-users-on-ubuntu-and-debian.mdВ инструкции описано добавление, удаление и изменение пароля для пользователей операционной системы Ubuntu или Debian. Как добавить и удалить пользователя?
В инструкции описано создание, удаление и изменение пользователей операционной системы Ubuntu или Debian.
## Первоначальные требования для системы Debian
Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется следующая ошибка:
```
bash: sudo: command not found
```
[/step]
Вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в группу sudo:
```bash
su -
apt-get install sudo -y
usermod -aG sudo yourusername
```
[/step]
## Как добавить нового пользователя?
В Ubuntu и Debian есть два инструмента командной строки, которые вы можете использовать для создания новой учетной записи пользователя: useradd и adduser.
useradd - это низкоуровневая утилита для добавления новых пользователей, а adduser - дружественный интерактивный интерфейс для useradd, написанный на Perl.
Для создания новой учетной записи пользователя операционной системы с именем username с помощью команды adduser, выполните следующую команду:
```
sudo adduser username
```
[/step]
В результате появится диалог, в котором необходимо ввести пароль и дополнительную информацию:
```
Adding user `username' ...
```
Adding new group `username' (1000) ...
Adding new user `username' (1000) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for username
Enter the new value, or press ENTER for the default
Full Name []: Name
Room Number []: 100
Work Phone []: 123-45-45
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
Команда создает домашний каталог для нового пользователя и скопирует туда файлы из каталога /etc/skel.
По умолчанию членам группы sudo предоставляется доступ sudo.
Если необходимо, чтобы у вновь созданного пользователя были права администратора, добавьте его в группу sudo:
```
sudo usermod -aG sudo username
```
[/step]
## Как удалить пользователя?
Существует два инструмента командной строки, которые можно использовать для удаления учетной записи пользователя: userdel и deluser. Рекомендуем использовать команду deluser, так как она более дружественная, чем низкоуровневая userdel.
Чтобы удалить пользователя, не удаляя пользовательские файлы и каталоги, выполните:
```
sudo deluser username
```
[/step]
Если необходимо удалить домашний каталог пользователя и его содержимое, используйте флаг --remove-home:
```
sudo deluser --remove-home username
```
[/step]
В результате появится следующее сообщение:
```
Looking for files to backup/remove ...
```
Removing files ...
Removing user `username' ...
Warning: group `username' has no more members.
Done.
## Как изменить пароль пользователя?
Для изменения собственного пароля используйте команду passwd без дополнительных аргументов:
```
passwd
```
[/step]
В системном диалоге необходимо будет ввести старый пароль и указать новый:
Changing password for username.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Для изменения пароля для другого пользователя необходимы права администратора и имя пользователя:
```
sudo password username
```
https://serverspace.uz/support/help/zapusk-comand-v-fonovom-rezhime.mdВ нашей инструкции мы расскажем о 2 способах запуска команд в фоновом режиме на Linux в скриншотах и примерах. Для начала следует разобрать синтаксис командной строки.
При работе в ОС семейства Linux бывают случаи, когда необходимо запустить некий долгий процесс, например поиск файла, и при этом вернуться к работе в консоли. Вполне разумным решением будет открыть несколько терминалов и выполнить каждую задачу индивидуально, но что если мы не ищем легких путей? В этом случае разумным было бы запустить процесс в фоновом режиме. Рассмотрим как это сделать двумя способами.
[step num="1"]
Для начала следует разобрать синтаксис командной строки. Запуск одной программы/скрипта и т.д. выполняем явным указанием, например:
```
ping 10.10.0.1
```
или
```
./script.sh
```
или
```
/home/admin/scripts/script.sh
```
[/step]
[step num="2"]
Для запуска одной программы по завершении другой используется логический оператор && (двойной амперсанд), например:
```
mysqldump mybase -u user1 > db.sql && tar zcvf db.tar db.sql
```
[/step]
[step num="3"]
Не очень удачный пример, так как можно было использовать перенаправление "|", приблизительно это выглядело бы так:
```
mysqldump mybase -u user1 | tar -cvf db.tar -
```
[/step]
[step num="4"]
Все эти примеры замечательны для использования в скриптах, однако запуск "долгих" процессов сделает терминал недоступным, как это было отмечено выше. В этом случае поможет следующий пример:
```
find / -iname "*.txt" > abc.list &
```
[/step]
Именно одинарный & в конце строки, указанный через пробел.
[step num="5"]
Как видно, первая строка запускает процесс, но так как в системе мало txt-файлов, процесс завершается. Последующее нажатие Enter в терминале сообщает, что процесс успешно выполнен.
[/step]
[step num="6"]
Рассмотрим другой вариант. Воспользуемся утилитой ping, результаты будем писать в файл.
[/step]
[step num="7"]
Ввиду отсутствия ограничительных параметров у данной команды, ее выполнение прервется когда закончится место на жестком диске.
Завершение процесса через killall покажет что процесс не завершился самостоятельно, а был "убит".
Контролировать фоновые процессы, в данном случае, можно командой:
```
jobs
```
[/step]
```
```
[step num="8"]
Сама команда jobs покажет сколько процессов выполняется и что именно выполняется, но различные ключи помогают отобразить больше информации. Ключ -l покажет еще и системный идентификатор процесса (PID). Ключ -p выведет только PID'ы, без описания.
Для перехода в приоритетный режим можно использовать команду fg 1 или %1.
[/step]
[step num="9"]
Альтернативный способ.
Воспользоваться утилитой-мультиплексором screen. В некоторых дистрибутивах требуется установка.
CentOS:
```bash
yum install screen
```
[/step]
[step num="10"]
Ubuntu:
```bash
apt-get install screen
```
[/step]
[step num="11"]
Запуск команды прост:
```
screen
```
[/step]
[step num="12"]
После выполнения появится окно, с ознакомительным текстом.
Нажимаем Enter.
[/step]
[step num="13"]
Содержимое терминала обновится. Можем выполнить команду, например, все тот же ping. Чтобы вернуться в основной терминал нажимаем последовательно ctrl+a, а затем клавишу d.
[/step]
[step num="14"]
В терминале появится сообщение, что процесс отделен.
Посмотреть запущенные screen'ы можно командой:
```
screen -list
```
[/step]
```
```
[step num="15"]
Возврат к процессу можно сделать командой:
```
screen -r
```
[/step]
[step num="16"]
или
```
screen -r
```
[/step]
[step num="17"]
В нашем случае:
```
screen -r 2636.pts-0.ubuntu
```
[/step]
```
```
[step num="18"]
Как видно, процесс выполнялся в фоновом режиме.
Иногда требуется скрипт, который запускал бы процесс в фоновом режиме при загрузке системы В таком случае следует воспользоваться следующим примером:
```
screen -d -m -S SCREEN_NAME program_1
```
[/step]
-d -m - запускает процесс screen в отделённом режиме. Будет создана новая сессия, но она не будет показана.
-S - установит имя для процесса. Удобно, когда запущено несколько процессов screen.
[step num="19"]
Открыть окно с процессом можно командой:
```
screen -r my_ping
```
https://serverspace.uz/support/help/ustanovka-vnc-i-dostyp-k-nemy.mdРабота с системой удаленного доступа VNC (Virtual Network Computing). Инструкция, как установить, настроить и подключиться к серверу под Ubuntu
Иногда возникает необходимость работы на удаленном сервере не через консоль, а через удаленный рабочий стол. На помощь приходит система удаленного доступа VNC (Virtual Network Computing). Рассмотрим как установить, настроить и подключиться к серверу.
## Установка
[step num="1"]
Обновляем информацию о репозиториях:
[/step]
```bash
sudo apt-get update
```
[step num="2"]
Обновляем компоненты системы и перезагружаем сервер:
[/step]
```bash
sudo apt-get upgrade
```
Добавим репозиторий в список:
```
nano /etc/apt/sources.list
```
Для этого добавим в конец файла строку:
```
deb http://cn.archive.ubuntu.com/ubuntu/ bionic universe
```
При повторном обновлении пакетов, может возникнуть ошибка:
Чтобы ее исправить, нужно добавим ключ:
```bash
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
```
Вновь обновим пакеты:
```bash
apt update
```
[step num="3"]
Приступаем к установке.
[/step]
```bash
sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server
```
[step num="4"]
Этот процесс не очень быстрый, так как будет скачано более 200 мегабайт.
[/step]
[step num="5"]
Чтобы завершить начальное конфигурирование VNC-сервера, следует выполнить команду:
[/step]
```
vncserver
```
Программа запросит пароль и его подтверждение для подключения через VNC, а также создаст скрипты.
## Настройка
Под настройкой следует понимать, что будут указаны команды и скрипты, которые следует выполнять при запуске сервера. Для этого необходимо отредактировать файл ~/.vnc/xstartup. VNC-сервер, по умолчанию, инициализируется на tcp-порту 5901, который называют "Display port", в документации VNC он упоминается как ":1". Сам же VNC позволяет запускать несколько экземпляров :2 - 5902, :3 - 5903 и так далее.
[step num="8"]
Останавливаем службу на порту 5901:
```
vncserver -kill :1
```
[/step]
[step num="9"]
Редактируем файл настроек, для этого откроем его в любом текстовом редакторе, например nano:
```
nano ~/.vnc/xstartup
```
[/step]
[step num="10"]
В конец файла добавляем 4 строки:
```
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
```
[/step]
[step num="11"]
Общий вид файла должен стать таким:
[/step]
[step num="12"]
Запускаем командой:
```
vncserver
```
[/step]
[step num="13"]
Видно, что сервер запустился на tcp-порту 5901.
[/step]
[step num="14"]
Подключаемся к серверу с помощью любого VNC-клиента, например Remmina.
[/step]
[step num="15"]
Выбираем протокол - VNC. Указываем адрес сервера и через двоеточие порт, в конкретном случае 10.10.2.7:5901. И кликаем по кнопке "Подключиться".
[/step]
[step num="16"]
Программа запросит ввод пароля.
[/step]
Вот и результат.
[step num="17"]
Важно! Если используется защита межсетевым экраном, тогда следует добавить разрешающее правило для подключения:
```
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
```
```
iptables-save
```
[/step]
[step num="18"]
Также важно помнить, что разрешающее правило должно быть для каждого запущенного экземпляра сервера по виду:
```
iptables -A INPUT -p tcp --dport 59XX -j ACCEPT
```
```
iptables-save
```
XX - номер порта :2 - 02, :3 - 03, :10 - 10.
https://serverspace.uz/support/help/nastroika-vsftpd-v-ubuntu.mdРассмотрим настройку vsftpd (Very Secure FTP Daemon) приложения с поддержкой SSL и IPv6 под ОС Ubuntu и CentOS. Процесс установки разделим на два этапа - установку и настройку.
Несмотря на популярность облачных систем хранения, достаточно часто появляется задача развертывания FTP-сервера.
Рассмотрим как настроить vsftpd приложение с поддержкой SSL и IPv6 под ОС Ubuntu и CentOS.
Vsftpd является акронимом и его следует понимать как Very Secure FTP Daemon - очень защищенный FTP-сервер.
Процесс разделим на два этапа - установку и настройку.
[step num="1"]
Установка в Ubuntu:
[/step]
В начале следует обновить информацию о репозиториях, обновить компоненты системы, перезагрузиться если требуется:
```bash
sudo apt-get update
```
```bash
sudo apt-get upgrade
```
```
sudo reboot
```
[step num="2"]
Теперь устанавливаем vsftpd:
[/step]
```bash
sudo apt-get install vsftpd
```
[step num="3"]
Установка в CentOS:
[/step]
Обновляем компоненты системы и перезагружаемся:
```bash
yum update
```
```
reboot
```
[step num="4"]
Устанавливаем vsftpd:
[/step]
```bash
yum install vsftpd
```
[step num="5"]
Запускаем службу:
[/step]
```bash
service vsftpd start
```
После установки и запуска службы, сервер готов принимать соединения. Однако стоит помнить, что используются базовые настройки, которые допускают подключение анонимными пользователями.
[step num="6"]
Настроим vsftpd:
[/step]
Отредактируем конфигурационные файлы. Важно помнить, что конфиги, в разных ОС, находятся в разных директориях.
Ubuntu:
```
nano /etc/vsftpd.conf
```
CentOS:
```
nano /etc/vsftpd/vsftpd.conf
```
[step num="7"]
Если анонимном доступе нет необходимости, то первым делом исправляем это в конфигурационном файле. Для этого находим строчку:
[/step]
```
anonymous_enable=YES
```
Заменяем YES на NO. В последних версиях Ubuntu это не требуется, но проверка не будет лишней.
[step num="8"]
Следует обратить внимание, что некоторые строки закомментированы, т.е. перед ними стоит знак # (решетка/шарп). Для того чтобы пользователи могли записывать файлы в директорию, следует раскомментировать строки (т.е. удалить в самом начале строки символ #):
[/step]
```
local_enable=YES
```
```
write_enable=YES
```
[step num="9"]
Соответственно, если по умолчанию указан параметр NO, то заменяем на YES.
[/step]
[step num="10"]
Чтобы пользователи не получили доступ в другие каталоги сервера, раскомментируем строку:
[/step]
```
chroot_local_user=YES
```
[step num="11"]
Также, если по умолчанию указан параметр NO, то заменяем на YES.
[/step]
[step num="12"]
Сохраняем конфигурационный файл и перезапускаем сервер командой:
[/step]
```bash
service vsftpd restart
```
[step num="13"]
Проверяем запустилась ли служба:
[/step]
```bash
service vsftpd status
```
Если все успешно, то система выведет соответствующее сообщение.
[step num="14"]
Иногда, при запуске, появляется сообщение "refusing to run with writable root inside chroot". Данная ошибка появляется в последних версиях vsftpd, когда служба запускается не от пользователя root. Исправляем.
[/step]
[step num="15"]
Создаем пользователя:
[/step]
```
adduser
```
[step num="16"]
Добавляем пользователя в sudo:
[/step]
```
adduser sudo
```
[step num="17"]
Создаем директорию внутри пользовательской:
[/step]
```
mkdir /home//userfiles
```
[step num="18"]
Меняем владельца каталога на root:
[/step]
```bash
chown root:root /home/
```
[step num="19"]
Перезапускаем службу:
[/step]
```bash
sudo service vsftpd restart
```
[step num="20"]
Если подключение не удается - настраиваем файрволл.
[/step]
В Ubuntu это делается с помощью ufw:
```
sudo ufw allow 20/tcp
```
```
sudo ufw allow 21/tcp
```
[step num="21"]
В CentOS, как и во всех остальных случаях, можно использовать iptables:
[/step]
```
sudo iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
```
```
sudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
```
```
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
```
```
sudo iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
```
[step num="22"]
Проверка соединения выполняется подключением к серверу, например, из окна браузера по ссылке вида: ftp://IP-address
Система запросит ввод логина и пароля. Следует указать системные пользовательские данные.
Также, можно использовать любой ftp-клиент, например Filezilla.
https://serverspace.uz/support/help/ustanovka-lamp-na-centos.mdLAMP - комплекс программного обеспечения для создания Web-сервера. Базируется на Linux, в качестве web-сервера используется Apache, база данных - MySQL, интерпретатор кода – PHP. Приступаем к установке.
LAMP - акроним, обозначающий комплекс программного обеспечения для создания Web-сервера. Базируется на Linux, в качестве web-сервера используется Apache, база данных - MySQL, интерпретатор кода - PHP.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением LAMP**.
[step num="1"]
Все действия делаются от пользователя root.
[/step]
[step num="2"]
В самом начале обновляем компоненты системы и приложения:
```bash
sudo yum update
```
[/step]
[step num="3"]
На вопрос "Is this ok" отвечаем "y", дожидаемся окончания процесса и перезагружаем сервер командой:
```
reboot
```
[/step]
Приступаем к установке.
[step num="4"]
Устанавливаем web-сервер Apache, правда в репозитории он называется httpd:
```bash
yum install httpd
```
[/step]
[step num="5"]
Далее устанавливаем сервер баз данных. Начиная с CentOS7, вместо СУБД MySQL активно используется MariaDB:
```bash
yum install mariadb-server mariadb
```
[/step]
[step num="6"]
Если интересует свежая стабильная версия дистрибутива, то следует выполнять установку из репозитория разработчика. Как это сделать рассмотрено в [этой статье](https://serverspace.uz/support/help/installing-mariadb/).
[/step]
[step num="7"]
Устанавливаем PHP сразу с модулем для работы с базой данных:
```bash
sudo yum install php php-mysql
```
[/step]
Установка окончена.
[step num="8"]
Настроим сервисы, чтобы они автоматически запускались после перезагрузки системы, поочередно выполнив команды:
```bash
systemctl enable httpd.service
```
```bash
systemctl start httpd.service
```
```bash
systemctl enable mariadb.service
```
```bash
systemctl start mariadb.service
```
[/step]
[step num="9"]
Чтобы разрешить подключение к web-серверу, добавляем разрешающее правило и сохраняем его:
```
iptables -A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
```
```
iptables-save
```
[/step]
[step num="10"]
Теперь выполним базовую настройку безопасности MariaDB:
```
mysql_secure_installation
```
[/step]
[step num="11"]
В самом начале использования программа запросит пароль пользователя root, так как он не задавался при установке, то просто отвечаем нажатием клавиши Enter. Следом программа предложит изменить пароль пользователя root. Если пароль не был задан, то избежать этой процедуры невозможно. Вводим пароль и его подтверждение. На дальнейшие вопросы можно отвечать клавишей "Y".
[/step]
Скриншот №1. Установка LAMP CentOS
| Set root password? [Y/n] | Изменить пароль пользователя root? |
| --- | --- |
| Remove anonymous users? [Y/n] | Удалить анонимных пользователей? |
| Disallow root login remotely? [Y/n] | Запретить удаленное подключение от имени root? |
| Remove test database and access to it? [Y/n] | Удалить базу данных test и доступ к ней? |
| Reload privilege tables now? [Y/n] | Перезагрузить таблицу привилегий сейчас? |
[step num="12"]
Для проверки установки создадим php-файл info.php в корне сайта:
```
touch /var/www/html/info.php
```
[/step]
[step num="13"]
Откроем файл любым текстовым редактором, в нашем случае nano:
```
nano /var/www/html/info.php
```
[/step]
[step num="14"]
Если получаете сообщение с ошибкой, то установите этот редактор:
```bash
yum install nano
```
[/step]
[step num="15"]
Добавим php-код в файл:
```php
```
[/step]
[step num="16"]
Сохраняем изменения. В любом браузере переходим по ссылке в формате http:///info.php
[/step]
В примере будет так, у вас свой IP-адрес:
http://10.10.7.7/info.php
Результат будет таким:
Скриншот №2. Результат установки LAMP стека
## Модули PHP
[step num="17"]
Установленного модуля поддержки СУБД будет недостаточно, если вы планируете использовать, любую CMS или самописный сайт. Чтобы удовлетворить потребность в функционале следует установить расширения языка php. Для начала посмотрим что предлагает репозиторий командой:
```bash
yum search php-
```
[/step]
[step num="18"]
Установка расширений происходит точно также как и установка любого другого пакета, например:
```bash
yum install php-gd
```
[/step]
[step num="19"]
После установки расширений рекомендуется перезапустить службу web-сервера:
```bash
systemctl restart httpd.service
```
https://serverspace.uz/support/help/nastroika-iptables.mdСамым распространенным межсетевым экраном в ОС семейства Linux является iptables. В инструкции подробно рассмотрены базовые настройки в Ubuntu, CentOS/Red Hat/OpenSuse.
Самым распространенным межсетевым экраном в ОС семейства Linux является iptables. Рассмотрим базовые настройки.
[step num="1"]
Так получилось, что не все дистрибутивы Linux устанавливают по умолчанию iptables. Если одноименная команда не выполняется в терминале, то следует выполнить установку:
```bash
sudo apt-get install iptables
```
[/step]
[step num="2"]
Конечно, можно выполнять настройку и через графический интерфейс - Firestarter, а также использовать оболочку - shorewall, но гораздо лучше будет разобраться в iptables и из консоли.
[/step]
## Типы правил
В iptables существует 3 типа правил - input, forward, output.
**Input **— Данная цепочка правил используются для контроля входящих соединений. Например, если пользователь пытается подключиться к серверу, то iptables сравнит его IP-адрес со своим списком, затем разрешит или ограничит доступ.
**Forward **— Цепочка правил этого типа используются для обработки входящих tcp/udp пакетов, адрес назначения которых находится "за" сервером. В качестве примера можно рассмотреть случай, когда сервер используется в качестве маршрутизатора. Частный случай - NAT и Port-Forwarding.
**Output **— Эта цепочка правил полный аналог Input за исключением того, что они используются для контроля исходящих соединений.
Специалисты условно делят режим работы любого межсетевого экрана на 2 типа - белый и черный.
Белый - запрещается весь трафик, кроме разрешенного.
Черный - разрешается весь трафик, кроме запрещенного.
Данная политика относится не только к IP-адресам устройств, но и к портам служб, а также обращениям некоторых IP-адресов к некоторым портам.
Чтобы было понятнее, не очень хорошо, когда порт SSH-службы доступен из сети Интернет. Это повлечет постоянные попытки подбора логина и пароля. Однако, вы можете запретить любой трафик на порт этой службы (по умолчанию, tcp - 22) тем самым отрезав себя от административного входа на сервер. Компромиссное решение - добавить блок IP-адресов с которых можно обращаться к серверу по SSH-протоколу.
[step num="3"]
По умолчанию, дистрибутив Ubuntu с предустановленным iptables, разрешает всё. Проверить это можно командой:
```
iptables -L | grep policy
```
[/step]
Скриншот №1. Команда iptables -L | grep policy
[step num="4"]
После проверки поведения цепочек соединений и общего поведения межсетевого экрана можно приступить и ограничительным мерам. Для начала рассмотрим три основных действия с пакетами:
**Accept **- разрешает соединение;
**Drop **- Запрещает соединение, отбрасывает пакеты. При этом создается впечатление, что данный порт и не был открыт вовсе.
**Reject **- также запрещает соединение, но явно дает понимание, что порт защищен межсетевым экраном.
[/step]
[step num="5"]
Важно понимать, что правила вносятся в соответствующую цепочку с соответствующей политикой для пакетов. Рассмотрим пример:
```
sudo iptables -A INPUT -s 10.10.0.1 -j DROP
```
Данное правило запрещает все входящие соединения с адреса 10.10.0.1.
[/step]
[step num="6"]
Блокировка диапазонов адресов происходит по маске:
```
sudo iptables -A INPUT -s 10.10.0.0/255.255.255.0 -j DROP
```
[/step]
[step num="7"]
Также блокировка диапазон адресов можно заблокировать по префиксу сети:
```
sudo iptables -A INPUT -s 10.10.0.0/24 -j DROP
```
Сетевой префикс /24 равен 255.255.255.0
[/step]
[step num="8"]
Допустим, что нет необходимости ограничивать все обращения с адреса 10.10.0.1, а нужно запретить только обращение к TCP-порту 22 (SSH). Правило будет выглядеть следующим образом:
```
iptables -A INPUT -p tcp --dport ssh -s 10.10.0.1 -j DROP
```
[/step]
[step num="9"]
Тоже самое и для подсети:
```
iptables -A INPUT -p tcp --dport ssh -s 10.10.0.0/24 -j DROP
```
[/step]
Стоит отметить, что параметр -p указывает тип протокола пакетов tcp или udp, следует указывать соответствующий.
Параметр --dport позволяет указывать не только имя службы слушающей порт, но и номер порта. Записи --dport ssh и --dport 22 будут эквивалентны, но только в том случае, если порт ssh-службы не был изменен в конфигурационном файле, в противном случае может быть заблокировано или не заблокировано "что-то".
[step num="10"]
Следующее правило заблокирует доступ для подсети 10.10.0.0/24 к 80 порту сервера (сайт):
```
sudo iptables -A INPUT -p tcp --dport 80 -s 10.10.0.0/24 -j DROP
```
[/step]
[step num="11"]
Важно помнить, что некоторые протоколы, тот же TCP, требуют двустороннего согласования, после чего соединение на порту изменяет свой статус ESTABLISHED, FIN_WAIT и т.п. Iptables позволяет выполнить настройку правил таким образом, что если соединение будет установлено, то и исходящий трафик будет разрешен:
```
sudo iptables -A INPUT -p tcp --dport 80 -s 10.10.0.1 -m state --state NEW,ESTABLISHED -j ACCEPT
```
```
sudo iptables -A OUTPUT -p tcp --sport 80 -d 10.10.0.1 -m state --state ESTABLISHED -j ACCEPT
```
[/step]
Важно понимать, что все правила обрабатываются ядром системы, что влечет за собой нагрузку на процессорную часть сервера. Избыток правил для может негативно сказаться на качестве. Зачастую разрешают весь исходящий от сервера трафик, а открытые порты управляются политикой безопасности, исключением является блокировка трафика для почтовых портов, да и то, если в этом есть необходимость.
## Сохранение правил
[step num="12"]
Вносимые правила действуют до перезагрузки самих правил либо до перезагрузки сервера. Чтобы сохранить изменения используется специальная команда.
В Ubuntu:
```
sudo /sbin/iptables-save
```
[/step]
[step num="13"]
В CentOS/Red Hat/OpenSuse:
```
/sbin/service iptables save
```
[/step]
[step num="14"]
либо
```
/etc/init.d/iptables save
```
[/step]
[step num="15"]
Для очистки существующих правил можно использовать iptables с ключом -F:
```
iptables -F
```
[/step]
[step num="16"]
Существуют и другие ключи, полный список которых можно посмотреть в электронном руководстве:
```
man iptables
```
https://serverspace.uz/support/help/installing-icinga-2-on-debian-9.mdВ этом руководстве показано, как установить и настроить инструмент веб-мониторинга Icinga 2 в Debian 9 для мониторинга сетевой инфраструктуры. Разверните VPS на базе ОС Debian.
В этом руководстве показано как установить и настроить инструмент для мониторинга сетевой инфраструктуры Icinga 2 в Debian 9.
## Что такое Icinga 2?
Icinga представляет собой приложение для мониторинга с открытым исходным кодом, которое можно использовать для наблюдения за критически важными службами и системами на вашем виртуальном сервере. Icinga 2 может отслеживать хосты в сети или проверять внешние сетевые протоколы, такие как состояние HTTP-сервера, почтового сервера, службы обмена файлами и другие.
Icinga 2 можно настроить для мониторинга состояния внутренних систем, для проверки загрузки, памяти, свободного места на диске или других внутренних параметров хостов. Icinga также можно настроить для отправки уведомлений и оповещений по электронной почте или в SMS- системным администраторам, указанным в контактах.
## **Первоначальные требования**
Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется ошибка bash: sudo: command not found, вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в группу sudo:
```bash
su -
apt-get install sudo -y
usermod -aG sudo yourusername
```
На виртуальном сервере должен быть установлен[LAMP-стек](https://serverspace.uz/support/help/ustanovka-lamp/).
Обновите локальные репозитории и пакеты:
```bash
sudo apt-get update && sudo apt-get upgrade
```
## **Использование OPCache для увеличения скорости загрузки**
Чтобы увеличить скорость загрузки вашего приложения с помощью плагина OPCache, доступного в PHP 7, добавьте следующие параметры OPCache в конец файла конфигурации PHP:
```
vi /etc/php/7.0/apache2/php.ini
```
Вставьте следующие строки:
```
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
```
Перезапустите Apache, чтобы изменения вступили в силу:
```bash
systemctl restart apache2
```
## **Настройка баз данных**
Установите СУБД, необходимую веб-приложению Icinga 2 для мониторинга, и интерфейсу Icinga Web 2 для хранения пользователей, контактов и других собранных данных. Выполните следующую команду, чтобы установить базу данных MariaDB и модуль PHP, необходимые для доступа к базе данных MySQL в Debian 9:
```bash
apt install php7.0-mysql mariadb-server mariadb-client
```
Войдите в консоль MySQL и защитите учетную запись суперпользователя MariaDB:
```bash
mysql -h localhost
```
```
use mysql;
```
```sql
update user set plugin='' where user='root';
```
```
flush privileges;
```
```
exit
```
Далее выполните сценарий безопасности MySQL:
```
sudo mysql_secure_installation
```
Войдите в консоль базы данных и создайте базу данных для Icinga 2:
```bash
mysql -p
```
Создайте пользователя с надежным паролем для управления базой данных приложения Icinga 2, введя команды ниже. В этом примере необходимо заменить icingadb, icinga-user и strongpassword своим собственным именем базы данных и учетными данными:
```sql
create database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'strongpassword';
flush privileges;
```
Создайте вторую базу данных MySQL, используемую Icinga 2 Web для хранения пользователей и групп. Как и в предыдущем шаге замените имя базы данных и учетные данные. Вы можете использовать одну и ту же учетную запись пользователя MySQL для одновременного управления обеими базами данных (icinga_user'@'localhost):
```sql
create database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'strongpassword';
exit
```
## **Установка Icinga 2**
[step num="1"]
Установите Icinga 2 и модуль Icinga 2 MySQL для доступа к базе данных MariaDB:
```bash
apt install icinga2 icinga2-ido-mysql
```
[/step]
[step num="2"]
Во время установки возникнет вопрос использования модуля MySQL. Выберите Yes в командной строке:
[/step]
[step num="3"]
После установки Icinga 2 запустите службу Icinga 2 и проверьте состояние демона:
```bash
systemctl start icinga2.service
```
```bash
systemctl status icinga2.service
```
[/step]
## **Установка веб-интерфеqса Icinga 2**
[step num="4"]
Для управления Icinga 2 через веб-интерфейс установите пакеты веб-интерфейса Icinga 2 и интерфейса командной строки (CLI):
```bash
apt install icingaweb2 icingacli
```
[/step]
[step num="5"]
Перезапустите демон Icinga 2 и проверьте его статус:
```bash
systemctl restart icinga2.service
```
```bash
systemctl status icinga2.service
```
[/step]
[step num="6"]
Для установки схемы MySQL требуется база данных Icinga 2:
```bash
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql
```
[/step]
[step num="7"]
Откройте файл конфигурации Icinga 2 MySQL IDO:
```
vi /etc/icinga2/features-enabled/ido-mysql.conf
```
[/step]
[step num="8"]
Добавьте учетные данные базы данных Icinga 2 как показано на примере ниже. Используйте учетные данные первой базы данных, созданной на предыдущем этапе создания базы данных:
```
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "strongpassword",
host = "localhost",
database = "icingadb"
}
```
[/step]
[step num="9"]
Сохраните файл и перезапустите демон Icinga 2:
```bash
systemctl restart icinga2.service
```
[/step]
[step num="10"]
Создайте каталог журналов Icinga Web 2 и добавьте соответствующие разрешения файловой системы, чтобы предоставить разрешения записи групп:
```
mkdir -p /var/log/icingaweb2/
```
```
chgrp -R icingaweb2 /var/log/icingaweb2/
```
```bash
chmod -R 775 /var/log/icingaweb2/
```
[/step]
## **Настройте Icinga 2 через веб-интерфейс**
[step num="11"]
Сгенерируйте токен установки. Сохраните его в легкодоступном месте. Вам нужно будет использовать его для доступа к настройке Icinga 2:
```
icingacli setup token create
```
[/step]
[step num="12"]
Вывод этой команды должен быть примерно таким:
```
The newly generated setup token is: c0f22932e763ac41
```
[/step]
[step num="13"]
Примечание: показать сгенерированный токен, если вы его забыли, можно с помощью команды:
```
icingacli setup token show
```
[/step]
[step num="14"]
Откройте порт HTTP для подключения к веб-интерфейсу:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
[/step]
[step num="15"]
Откройте браузер и перейдите по адресу http://exampleIP/icingaweb2/setup. Замените exampleIP на IP-адрес вашего виртуального сервера. На первом этапе установки добавьте токен, созданный ранее:
[/step]
[step num="16"]
На следующем экране отметьте галочкой модули Doc и Monitoring и нажмите Next для продолжения:
[/step]
[step num="17"]
Icinga 2 проверит ваши системные требования и модули PHP, чтобы убедиться, что все требования выполнены, прежде чем продолжить процесс установки и настройки. Если не хватает некоторых модулей, то их необходимо доустановить.
[/step]
[step num="18"]
Прокрутите вниз до конца страницы и нажмите Далее, чтобы продолжить:
[/step]
[step num="19"]
В качестве типа аутентификации выберите** Database**:
[/step]
[step num="20"]
Используйте информацию из второй базы данных, созданной ранее, чтобы добавить учетные данные, необходимые для доступа к базе данных Icinga 2 для хранения пользователей и групп.
[/step]
[step num="21"]
В качестве имени для этого ресурса используйте icingaweb_db.
[/step]
[step num="22"]
Параметры Host и Port должны иметь значения localhost и 3306 соответственно. Не включайте постоянные и SSL-опции. Нажмите кнопку Validate configuration, чтобы подтвердить базу данных. После успешной проверки базы данных нажмите Next, чтобы перейти к следующему этапу процесса настройки Icinga 2:
[/step]
[step num="23"]
Определите имя для базы данных аутентификации и нажмите Next:
[/step]
[step num="24"]
Добавьте имя пользователя с надежным паролем для входа в веб-интерфейс Icinga 2 и нажмите Next:
[/step]
[step num="25"]
Далее настройте приложение и выполните настройку регистрации ошибок, используя следующие параметры:
- Отметьте Show Stacktraces;
- Storage Type = Database;
- Logging Type = File;
- Logging Level = Error;
- File path = /var/log/icingaweb2/icingaweb2.log.
[/step]
[step num="26"]
Просмотрите информационный отчет и, если ошибок нет, нажмите Next для продолжения:
[/step]
[step num="27"]
В следующем окне нажмите Next для продолжения:
[/step]
[step num="28"]
Добавьте имя для Icinga 2 Backend, выберите IDO в качестве Backend Type и нажмите Next:
[/step]
[step num="29"]
Добавьте учетные данные базы данных для настройки среды ресурса IDO. После добавления нажмите кнопку Validate Configuration, чтобы проверить ресурс IDO мониторинга Icinga.
[/step]
[step num="30"]
После появления сообщения Successfully validated нажмите Next:
[/step]
[step num="31"]
Выполните настройку транспортного модуля, используя следующие параметры:
```
Transport Name = icinga2
Transport Type = Local Command File
Command File = /var/run/icinga2/cmd/icinga2.cmd
```
[/step]
[step num="32"]
Настройте переменные среды безопасности мониторинга (можно оставить значения по умолчанию):
[/step]
[step num="33"]
На следующем экране показан подробный отчет о текущей конфигурации. Проверьте конфигурацию и нажмите Готово, чтобы завершить процесс установки:
[/step]
[step num="34"]
После завершения процесса установки и настройки появится сообщение о том, что Icinga Web 2 успешно настроена:
[/step]
[step num="35"]
Выполните вход в панель Icinga 2 по адресу http://exampleIP/icingaweb2/authentication/login:
[/step]
[step num="36"]
Вы будете перенаправлены в панель управления Icinga Web 2, где вы увидите службы и ресурсы виртуального сервера, которые в настоящее время отслеживаются механизмом Icinga 2:
[/step]
[step num="37"]
Вы успешно установили, а также настроили приложение мониторинга Icinga 2 и интерфейс Icinga Web 2 в Debian 9.
https://serverspace.uz/support/help/kak-ustanovit-node-js-i-nginx-na-debian.mdКак установить node.js и веб-сервер NGINX на виртуальный сервер с операционной системой Debian. Что такое Node.js и NGINX? Заказать VPS сервер в Serverspace.
Описание установки node.js и веб-сервера NGINX на виртуальный сервер с операционной системой Debian.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением Nginx**.
## **Что такое Node.js и NGINX?**
Node.js — это платформа JavaScript, которая может обслуживать динамический и адаптивный контент. JavaScript обычно является встроенным языком браузера, таким как HTML или CSS. А Node.js является серверной платформой JavaScript, сравнимой с PHP. Node.js часто работает с другими популярными серверными приложениями, такими как NGINX или Apache. В этом руководстве будет рассмотрена настройка NGINX для обработки внешних запросов, а Node.js — для обработки внутренних запросов.
## **Первоначальные требования**
[step num="1"]
Многие из команд в этом руководстве требуют привилегий суперпользователя. Если при использовании команды sudo появляется ошибка bash: sudo: command not found, вам необходимо активировать режим суперпользователя, установить команду sudo и добавить своего пользователя в группу sudo:
```bash
su -
apt-get install sudo -y
usermod -aG sudo yourusername
```
[/step]
[step num="2"]
Обновите локальные репозитории и пакеты:
```bash
sudo apt-get update && sudo apt-get upgrade
```
[/step]
## **Установка и настройка NGINX**
[step num="3"]
Установите NGINX, а также модуль screen, который будет использоваться позже:
```bash
apt-get install nginx screen
```
[/step]
[step num="4"]
Запустите NGINX:
```bash
service nginx start
```
[/step]
[step num="5"]
С помощью команды cd перейдите в следующий каталог:
```
cd /etc/nginx/sites-available/
```
[/step]
[step num="6"]
Создайте новый файл, заменив example.com вашим доменным именем или IP-адресом:
```
touch example.com
```
[/step]
[step num="7"]
Вставьте следующие строки в созданный файл, заменив example.com вашим доменным именем или IP-адресом:
```
#Names a server and declares the listening port
server {
listen 80;
server_name example.com www.example.com;
```
```
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/example.com;
index index.html index.htm;
```
```css
#These lines create a bypass for certain pathnames
#www.example.com/test.js is now routed to port 3000
#instead of port 80
location /test.js {
proxy_pass http://example.com:3000;
proxy_set_header Host $host;
}
}
```
[/step]
[step num="8"]
Сохраните изменения и перейдите в каталог:
```
cd /etc/nginx/sites-enabled/
```
[/step]
[step num="9"]
Создайте символьную ссылку на созданный файл:
```
ln -s /etc/nginx/sites-available/example.com
```
[/step]
[step num="10"]
Удалите символьную ссылку по умолчанию:
```
rm default
```
[/step]
[step num="11"]
Перезапустите NGINX, чтобы применить новую конфигурацию:
```bash
service nginx reload
```
[/step]
## **Создание каталогов и HTML-файлов**
[step num="12"]
Создайте следующую иерархию каталогов, заменив example.com:
```
mkdir -p /var/www/example.com
```
[/step]
[step num="13"]
Перейдите в созданный каталог:
```
cd /var/www/example.com
```
[/step]
[step num="14"]
Создайте индексный файл:
```
touch index.html
```
[/step]
[step num="15"]
Вставьте следующие строки:
```html
```
```
```
```xml
**
If you have not finished the guide, the button below will not work.
**
```
```xml
The button links to test.js. The test.js request is passed through NGINX and then handled by the Node.js server.
```
```xml
[Go to test.js](test.js)
```
```html
```
[/step]
## **Установка Node.js**
На этом этапе NGINX прослушивает порт 80 и обслуживает контент. Он также настроен на передачу запросов приложения /test.js на порт 3000.
[step num="16"]
Установите Node Version Manager:
```bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
```
[/step]
[step num="17"]
Закройте и снова откройте свой терминал.
[/step]
[step num="18"]
Установите Node.js с помощью следующей команды:
```
nvm install 0.10
```
[/step]
[step num="19"]
Создайте следующий файл:
```
touch /var/www/example.com/server.js
```
[/step]
[step num="20"]
Вставьте в него следующее содержимое:
```
//nodejs.org/api for API docs
//Node.js web server
var http = require("http"), //Import Node.js modules
url = require("url"),
path = require("path"),
fs = require("fs");
```
```javascript
http.createServer(function(request, response) { //Create server
var name = url.parse(request.url).pathname; //Parse URL
var filename = path.join(process.cwd(), name); //Create filename
fs.readFile(filename, "binary", function(err, file) { //Read file
if(err) { //Tracking Errors
response.writeHead(500, {"Content-Type": "text/plain"});
response.write(err + "n");
response.end();
return;
}
response.writeHead(200); //Header request response
response.write(file, "binary"); //Sends body response
response.end(); //Signals to server that
}); //header and body sent
}).listen(3000); //Listening port
console.log("Server is listening on port 3000.") //Terminal output
```
[/step]
[step num="21"]
Запустите новую сессию screen:
```
screen
```
[/step]
[step num="21"]
Далее нажмите Enter и запустите сервер Node.js:
```bash
node server.js
```
[/step]
[step num="22"]
Нажмите комбинацию клавиш **Ctrl+A,** затем **D**.
[/step]
## **Создание тестового приложения**
Создайте файл с тестовыми данными:
```
touch /var/www/example.com/test.js
```
И вставьте в него следующие данные:
```html
```
```xml
##
Your Node.JS server is working.
```
```xml
The below button is technically dynamic. You are now using Javascript on both the client-side and the server-side.
```
```xml
Display the date and time.
```
```html
```
Откройте порт 80 для подключения по http:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
Перейдите в браузере по вашему домену или ip-адресу. Отобразится следующая страница. Нажмите кнопку **Go to the test.js**:
Если все настроено корректно, с помощью кнопки **Display the date and time** на новой странице можно вывести текущее время и дату:
Node.js и NGINX теперь работают в связке.
https://serverspace.uz/support/help/ustanovka-lamp.mdРассмотрим установку LAMP-сервера (Linux, Apache, MySQL, PHP) на VDS под управлением ОС Ubuntu. Устанавливаем компоненты сервера - Apache2, MariaDB, PHP7.0.
LAMP - акроним, обозначающий комплекс серверного программного обеспечения Web-сервера. Расшифровывается как Linux, Apache, MySQL, PHP. В последнее время вместо MySQL, в качестве сервера баз данных, используется MariaDB.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением LAMP**.
[step num="1"]
Рассмотрим установку LAMP-сервера на VDS под управлением ОС Ubuntu. Обычно, при установке ОС с носителя данных, программа инсталляции предлагает включить пакет программ в общую установку. Даже если этот момент был пропущен, всегда есть возможность исправить.
[/step]
[step num="2"]
Последовательно выполняем команды обновления данных о репозиториях и индексах пакетов, обновляем пакеты и компоненты системы до актуальных и перезагружаем сервер, если потребуется:
```bash
sudo apt-get update
```
```bash
sudo apt-get upgrade
```
```
sudo reboot
```
[/step]
[step num="3"]
Устанавливаем компоненты сервера - Apache2, MariaDB, PHP7.0,:
```bash
sudo apt-get install apache2
```
```bash
sudo apt-get install mariadb-server mariadb-client
```
```bash
sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0 php7.0-xml
```
[/step]
[step num="4"]
Как установить последнюю стабильную версию MariaDB рассмотрено в [отдельной статье.](https://serverspace.uz/support/help/installing-mariadb/)
[/step]
[step num="5"]
В ходе установки MariaDB, программа запросит ввод пароля для пользователя root и его подтверждение. После установки, следует выполнить команду настройки параметров безопасности СУБД:
```
sudo mysql_secure_installation
```
[/step]
[step num="6"]
Перед использованием программа потребует ввод пароля для пользователя root.
[/step]
## Модули PHP
[step num="7"]
Устанавливаемые в примере модули php7.0 могут быть недостаточными и различный CMS требуют установку расширений. Полный список расширений можно получить командой:
```bash
apt-cache search php7.0-
```
[/step]
```
```
[step num="8"]
Их установка выполняется по шаблону:
```bash
sudo apt-get install
```
[/step]
[step num="9"]
В стандартных настройках, корень сайта располагается по пути /var/www/html. Любым текстовым редактором, например nano создадим php-файл:
```
cd /var/www/html
```
```
sudo touch info.php
```
```
nano info.php
```
[/step]
[step num="10"]
Напишем в файл одну строку:
```
```
[/step]
[step num="11"]
Сохраним изменения и проверим работу, открыв сайт в браузере по ip-адресу:
```
http:///info.php
```
[/step]
Результат должен получиться таким.
Скриншот №1. Результат установки LAMP-стека
[step num="12"]
Важно! Если сайт не доступен, проверьте включен ли iptables и существует ли разрешающее правило для 80 TCP-порта. Если правило не существует, то добавьте его:
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
```
iptables-save
```
https://serverspace.uz/support/help/generaciya-ssh-kluchey.mdВ инструкции описано, как сгенерировать SSH-ключи в Linux и Windows для подключения к серверу под управлением ОС Linux. Рассмотрим создание ключа через утилиту putty.
Рассмотрим создание SSH-ключей в Linux и Windows для подключения к серверу под управлением ОС Linux.
Использование SSH-ключей не только позволяет подключаться к серверу без пароля, но и повышает уровень безопасности сервера. Причина проста - пароль можно подобрать, а вот на подбор ключа могут уйти десятилетия. Ключ состоит из двух частей - открытой и закрытой. Именно открытый ключ передается на сервер, а закрытый ключ остается на ПК клиента. Если вы опасаетесь за безопасность ключа, его можно защитить парольной фразой при генерации.
[step num="1"]
Создание ключей выполняется командой
```bash
ssh-keygen -t rsa
```
[/step]
На что стоит обратить внимание.
[step num="2"]
OpenSSH поддерживает генерацию нескольких типов ключей:
[/step]
- dsa
- ecdsa
- ed25519
- rsa
- rsa1
[step num="3"]
Последнее время, надежность DSA-ключей ставится под сомнение и рекомендуют использовать RSA-ключи.
[/step]
[step num="4"]
Если отсутствует каталог ".ssh" в каталоге вашей учетной записи (это скрытый каталог), то он будет создан. Так было не всегда и возможно его придется создать вручную. passphrase - парольная фраза для защиты ключа. Если не желаете её задавать, тогда просто нажимаете Enter. Далее вводится подтверждение этой фразы, либо также Enter. В результате выполнения команды, будет показан слепок ключа и его псевдографическое изображение. Открытый ключ располагается по пути /home/administrator/.ssh/id_rsa.pub. Закрытый - /home/administrator/.ssh/id_rsa.
[/step]
[step num="5"]
Рассмотрим создание ключа через утилиту PuTTY-Gen.
[/step]
[step num="6"]
Скачаем ее с [официального сайта](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), выбрав соответствующую разрядность своей операционной системы (не серверной).
[/step]
Скриншот №1. Выбор разрядности операционной системы
[step num="7"]
Запускаем программу.
[/step]
Скриншот №2. Запуск программы
[step num="8"]
В открывшемся окне проверяем значение переключателя "Type of key to generate", должно быть RSA, кликаем по кнопке Generate.
[/step]
[step num="9"]
В обновленном окне программа нас просит выполнять случайные движения мышью в пустом поле программы. Таким образом программа получит случайные данные и создаст ключи.
[/step]
Скриншот №3. Создание ключей
Должен получиться примерно такой результат:
Скриншот №4. Сгенерированный ключ
[step num="10"]
Копируем текст открытого ключа из поля "Public key for pasting into OpenSSH authorized_keys file:" временно в любой текстовый файл. Сохраняем закрытый ключ нажав соответствующую кнопку. При необходимости указываем парольную фразу.
[/step]
[step num="11"]
Открытый ключ должен начинаться с ssh-rsa.
[/step]
## Добавление ключа.
[step num="12"]
Для успешного подключения к серверу следует прописать полученный открытый ключ в файл authorized_keys расположенном на сервере по пути:
```
/home//.ssh
```
[/step]
[step num="13"]
В данном случае, имя пользователя administrator.
[/step]
[step num="14"]
В *nix-подобный операционных системах экспорт открытого ключа на сервер выполняется командой:
```
cat ~/.ssh/id_dsa.pub | ssh -l remonet_user_name 10.10.0.1 "cat >> .ssh/authorized_keys"
```
[/step]
remote_user_name - имя пользователя на удаленном сервере, под которым и будет происходить дальнейшее подключение.
10.10.0.1 - адрес сервера, в нашем случае, взят для примера. После выполнения команды, потребуется ввести пароль и более этого делать не придется., при попытках подключения с этого ПК.
https://serverspace.uz/support/help/kak_podkljuchitsja_k_windows_serveru.mdПошаговая инструкция по подключению к удаленному серверу под управлением Windows по RDP (Remote Desktop Protocol)
В панели управления Serverspace вы можете арендовать себе сервер с Windows. В данной статье мы расскажем как к нему подключиться.
Если вы подключаетесь к серверу, арендованному на [Serverspace](https://serverspace.ru/services/vps-server/) Перейдите во внутреннюю панель управления на форму заказанного Вами [сервера Windows](https://serverspace.uz/services/vps-server/windows.md). Нажмите на ссылку "**Скачать RDP файл**" и запустите скачанный файл:
В открывшемся окне установите галочку "**Больше не выводить запрос о подключениях к этому компьютеру**":
В открывшемся окне необходимо ввести пароль:
Панель можно скопировать из меню сервера, в меню **Подключение**:
Произойдет соединение с сервером:
https://serverspace.uz/support/help/sposoby-poluchit-zakryvayushhie-dokumenty.mdВыбрать способ отправки (почта и электронный документооборот) можно в панели управления в настройках юридического лица
Для юридических лиц доступно несколько способов получить свои закрывающие документы:
- почта;
- электронный документооборот.
Выбрать способ отправки и периодичность можно в панели управления в настройках юридического лица. Также здесь можно указать e-mail бухгалтера, на который необходимо отправлять финансовые документы.
Акты формируются в начале каждого месяца за предыдущий. Электронные акты доступны в панели управления в разделе [Биллинг](https://my.serverspace.ru/billing#billing_tab_act.).
https://serverspace.uz/support/help/kak-vystavit-schet.mdВ инструкции описано как самостоятельно выставить счет и настроить автоматическую генерацию счетов за услуги облачных сервисов Serverspace
Наши клиенты могут самостоятельно выставить счет и скачать его в панели управления в разделе [Пополнить баланс - Для юридических лиц](https://my.serverspace.ru/Billing/AddMoney#pay-legal).
Также возможно выбрать одно из [правил автоматической генерации счетов](https://my.serverspace.ru/Account/Manage#company-settings), чтобы не пропустить следующую оплату. Это можно сделать в панели управления в настройках профиля юридического лица. Здесь вы можете указать сумму счета и выбрать за какое количество дней необходимо высылать счета на оплату.
https://serverspace.uz/support/help/kak-zaklyuchit-dogovor.mdВ инструкции описан процесс заключения двустороннего договора для юридических лиц. Заключение такого договора не является обязательным
Заключение двустороннего договора не является обязательным этапом для работы с нашим сервисом.
Юридические лица могут заключить двусторонний договор, по тексту он аналогичен договору оферты, с которым можно ознакомиться [здесь](https://serverspace.uz/conditions/oferta/).
Для заключения заполните корректно данные юридического лица в [панели управления](https://my.serverspace.ru/Account/Manage). Затем [создайте обращение в службу технической поддержки](https://my.serverspace.ru/support/create-request), в теме письма указав "Заключение договора".
Подписанный договор будет выслан на e-mail указанный при регистрации или, при необходимости, в бумажном виде на почтовый адрес.
https://serverspace.uz/support/help/obeshhannyj-platezh.mdВ инструкции описаны правила использования опции «Обещанный платеж» в панели облачного провайдера Serverspace
Опция **Обещанный платеж** может быть полезна, если по некоторым причинам вы не можете пополнить счет в текущий момент.
Опция **Обещанный платеж** доступна для пользователей, которые хотя бы один раз пополняли свой баланс и потребление средств которых за последнюю неделю не нулевое.
Сумма обещанного платежа рассчитывается на основании суммы потребления пользователем за последние 7 дней.
_Примечание: для физических лиц услуга доступна через 2 месяца после регистрации, для юридических сразу._
Вкладка "Обещанный платеж" отображается в панели управления только, если на вашем лицевом счету средств хватает менее, чем на 7 дней работы всех заказанных серверов.
https://serverspace.uz/support/help/sposoby-oplaty.mdКак оплатить сервисы Serverspace? Мы работаем как с физическими (VISA, MasterCard, Белкарт и ЕРИП), так и с юридическими лицами (банковский перевод)
Мы работаем как с физическими, так и с юридическими лицами.
**Для физических лиц** доступны следующие платежные системы: VISA, MasterCard, Мир, СБП, Everscale
**Для юридических лиц** доступен банковский перевод. Счет можно получить прямо из панели управления, о том как это сделать, [читайте в нашей инструкции](https://serverspace.uz/support/help/kak-vystavit-schet/).
## Способы оплаты
### Банковской картой
После нажатия кнопки "Пополнить" вы перейдете на специальную защищенную платежную страницу процессинговой системы вашего банка.
Обращаем ваше внимание, что после проведения платежа на указанный вами электронный адрес придет подтверждение оплаты. Просим вас сохранять данные оплат.
Платежи по банковским картам осуществляются через систему электронных платежей [CloudPayments](https://cloudpayments.ru/). Платежная страница системы [CloudPayments](https://cloudpayments.ru/) отвечает всем требованиям безопасности передачи данных (PCI DSS Level 1). Все конфиденциальные данные хранятся в зашифрованном виде и максимально устойчивы к взлому.
### СБП
Интеграция с СБП реализована через платежный шлюз [IT PAY](https://itpay.ru/), который позволяет принимать платежи с помощью графического кода.
Как пополнить баланс с помощью QR-кода для пользователей Serverspace:
- Перейдите на страницу [пополнения баланса](https://my.serverspace.ru/billing/addmoney) в панели управления;
- Выберите способ оплаты "СБП" и введите сумму платежа;
- Нажмите кнопку "Получить QR-код";
- Отсканируйте QR-код смартфоном, выберите нужное банковское приложение и следуйте внутренней инструкции банка.
Важно: необходимо, чтобы у вас было установлено приложение банка, с помощью которого вы хотите произвести оплату. СБП работает со всеми российскими банками.
Пользователи могут оплачивать услуги с помощью смартфонов на iOS и Android системах. Возможность пополнения счета через СБП доступна в десктопной и мобильной версиях панели управления Serverspace.
### Криптовалюта Everscale
[Everscale](https://everscale.network/) — блокчейн-платформа и криптовалюта, построенная на базе протокола TON.
Чтобы пополнить баланс с помощью [Everscale](https://everscale.network/) скачайте приложение EVERSPACE ([iOS](https://apps.apple.com/ru/app/everspace/id1585434994), [Android](https://play.google.com/store/apps/details?id=com.oberton.app&hl=en_US&gl=US)), введите сумму платежа, отсканируйте QR-код или нажмите на кнопку "Перейти в Ever Surf" и оплатите услуги.
* Обязательно проверьте значение id-проекта в комментарии к оплате.
Вы также можете оплатить услуги вручную:
- Переведите необходимую сумму на указанный в панели адрес;
- В комментарии к переводу укажите ваш идентификатор.
Конвертация Everscale в ₽ осуществляется по курсу, действующему на момент зачисления.
### Оплата счета как юридическое лицо
Для оплаты счета как юридическое лицо вам необходимо заполнить данные юридического лица в панели управления. После этого вы сможете выставить счет на любую необходимую вам сумму и оплатить его. Закрывающие документы вы сможете скачать в панели управления.
### Обещанный платёж
Опция доступна пользователям, которые хотя бы раз пополняли свой баланс и не израсходовали средства за последнюю неделю до нуля.
Сумма обещанного платежа рассчитывается на основании суммы потребления ресурсов пользователем за последние 7 дней.
Для физических лиц услуга доступна через 2 месяца после регистрации, для юридических — сразу.
Чтобы подключить Автоплатёж необходимо перейти во вкладку "[Пополнить баланс](https://my.serverspace.ru/billing/addmoney?pid=247899)" и нажать кнопку "Подключить" напротив функции Автоплатёж.
https://serverspace.uz/support/help/pravila-tarifikatsii-servisov.mdВ инструкции описаны правила списания средств со счета в Serverspace только за фактически использованные ресурсы
Мы реализовали систему тарификации, которая позволяет точно контролировать расход ресурсов и оплачивать только то, что Вы реально используете.
- При использовании наших услуг каждые 10 минут производится тарификация, основанная на потреблении ресурсов. Это означает, что вы платите только за фактически использованные ресурсы. Стоимость аренды ресурсов взимается с баланса аккаунта в панели управления.
- Чтобы списать средства, Ваш баланс должен быть положительным. Мы предоставляем удобные способы пополнения баланса. Оплата за услуги производится в российских рублях. Минимальная сумма для пополнения составляет 100 российских рублей. Мы стараемся сделать процесс оплаты максимально простым и удобным для Вас.
- В случае недостатка средств на вашем балансе, арендованные ресурсы блокируются. Это означает, что Вы не сможете использовать их до пополнения баланса. Если баланс не будет пополнен в течение 2 недель (для клиентов, оплативших услугу хотя бы один раз) или в течение 1 дня (для клиентов, которые ни разу не пополняли баланс), арендованные ресурсы будут удалены. Это делается для оптимизации использования ресурсов и предотвращения их неоплаченного использования.
- Ежемесячная стоимость аренды виртуальных серверов отображается в разделе [цены](https://serverspace.ru/conditions/price/). Мы всегда стараемся
предоставить Вам наиболее выгодные условия и конкурентные цены. Даже для выключенных виртуальных серверов тарификация продолжается в полном объеме, поэтому рекомендуем Вам отключать серверы, которые вам не нужны, чтобы снизить расходы.
- Плата за выпуск SSL-сертификатов списывается с баланса аккаунта однократно.
Если у Вас возникли дополнительные вопросы или вам нужна помощь, не стесняйтесь обращаться к нашей службе поддержки. Наша команда всегда готова помочь Вам и решить любые проблемы, связанные с нашими услугами. Мы стремимся предоставить вам надежные и качественные услуги, ориентируясь на Ваши потребности и требования. Наша цель - быть Вашим надежным партнером в сфере IT-услуг и обеспечить Вас всем необходимым для успешного развития Вашего бизнеса.
https://serverspace.uz/support/help/migratsiya-virtualnoj-mashiny-vmware.mdВ инструкции описаны процедуры конвертирования виртуальных машин VMware для миграции в облачную инфраструктуру.
[step num="1"]
Для миграции вам необходимо сконвертировать ваш виртуальный сервер в файл формата ovf или ova.
[/step]
OVF (Open Virtualization Format) — стандарт для хранения и распространения виртуальных машин. OVA является TAR архивом каталога с пакетом OVF.
Требования к ova/ovf файлам:
- Тип дисков scsi.
- Hardware version не выше 13.
Если вы используете один из продуктов компании VMware для виртуализации ваших серверов и/или настольных компьютеров, например VMware Workstation, VMware Fusion, VMware Server, VMware Player, процесс конвертации не будет трудоемким.
Все продукты поддерживают стандартный экспорт машин в необходимый формат.
## VMware Workstation
[step num="2"]
Необходимые условия:
- Убедитесь в том, что виртуальная машина не зашифрована. Вы не можете экспортировать зашифрованную виртуальную машину в формат OVF.
- Убедитесь в том, что виртуальная машина выключена.
[/step]
[step num="3"]
Процедура:
- Выберете виртуальную машину и далее File > Export to OVF.
- Введите имя для ovf-файла и выберите директорию для сохранения файла.
- Нажмите Save для начала процесса экспорта в OVF.
Процесс может занять несколько минут. Строка состояния показывает ход процесса экспорта.
[/step]
## VMware Fusion
[step num="4"]
Необходимые условия:
- Убедитесь в том, что виртуальная машина не зашифрована. Вы не можете экспортировать зашифрованную виртуальную машину в формат OVF.
- Убедитесь в том, что виртуальная машина выключена.
[/step]
[step num="5"]
Процедура:
- Выберете виртуальную машину и далее File > Export to OVF.
- Введите имя для ovf-файла и выберите директорию для сохранения файла.
- Нажмите Save для начала процесса экспорта в OVF.
Процесс может занять несколько минут. Строка состояния показывает ход процесса экспорта.
[/step]
## vSphere Client
[step num="6"]
- Выберете виртуальную машину и далее File > Export > Export OVF Template.
- В диалоговом окне "Export OVF Template" введите имя шаблона.
Примечание: при экспорте шаблона OVF с именем, которое содержит звездочки (*), эти символы превращаются в символы подчеркивания (_).
- Выберите директорию для сохранения файла шаблона, или кликните "..." для выбора местоположения.
- В поле Format выберите тип OVF или OVA.
OVF - выберете данный формат, чтобы сохранить шаблон в виде набора файлов (.ovf, .vmdk и .mf) Этот формат является оптимальным, если вы планируете опубликовать файлы на веб-сервере или в хранилище дисков. Пакет можно импортировать, например, в клиенте vSphere путем публикации URL в .ovf файл.
OVA - выберете данный формат для более удобного распространения пакета OVF в виде отдельного файла, если его нужно явно загрузить с веб-сайта или перемещены с помощью USB. Фактически является архивом формата OVF.
- В поле Description введите описание виртуальной машины.
По умолчанию текст из панели Notes со вкладки Обзор виртуальной машины появится в этом текстовом поле.
- Установите флажок, если вы хотите включить графические файлы, прикрепленные к floppy и CD / DVD-устройств в пакет OVF.
Примечание: этот флажок виден только если к виртуальной машине подключен файл ISO или к дисководу подключен образ.
- Нажмите OK.
Строка состояния показывает ход процесса экспорта.
[/step]
## VMware OVF Tool
VMware OVF Tool представляет собой решение для импорта и экспорта OVF пакетов из продуктов VMware. Мы будем использовать данную утилиту для конвертации файла vmx в файл формата ovf, т.к. она позволяет создавать виртуальные модули из виртуальных машин.
[step num="7"]
Загрузите установщик [VMware OVF Tool](https://www.vmware.com/support/developer/ovf/) на сайте компании Vmware.
[/step]
[step num="8"]
Выберете необходимую версию.
[/step]
Скриншот №1. Выбор версии VMware OVF Tool
[step num="9"]
Перейдите в папку "Downloads" и запустите на исполнение скачанный файл.
[/step]
[step num="10"]
После установки откройте Windows PowerShell. Для конвертации необходим файл ovftool.exe, который находится по указанному при установки пути. Например:
```
C:Program FilesVMwareVMware OVF Toolovftool.exe
```
[/step]
[step num="11"]
Перейдите в каталог "VMware OVF Tool" с помощью команды cd:
```
cd 'C:Program FilesVMwareVMware OVF Tool'
```
[/step]
[step num="12"]
В командной строке введите команду со следующим синтаксисом:
```
.ovftool.exe
```
[/step]
Например:
```
.ovftool.exe "C:VMVM-exampleVM-example.vmx" "C:VMVM-exampleVM-example.ovf"
```
Скриншот №2. Ввод команды
[step num="13"]
После завершения конвертации у вас появится ovf файл с вашей виртуальной машиной.
[/step]
Скриншот №3. Файл с виртуальной машиной
Также можете ознакомиться с услугой облачной инфраструктуры в аренду IaaS на [VMware.](https://serverspace.ru/services/iaas/)
https://serverspace.uz/support/help/podklyuchenie-iso-obraza.mdКак с помощью ISO-образа мигрировать диск в виртуальную инфраструктуру Serverspace? Создайте ISO-образ диска и отправьте заявку в поддержку
Если у вас есть настроенный физический или виртуальный диск с данными, то вы можете выполнить миграцию его ISO-образа в нашу виртуальную инфраструктуру.
Для начала создайте ISO-образ диска, для этого существует большое количество программ и утилит, например одна из них - UltraISO.
После того как ваш образ готов, создайте [обращение в службу технической поддержки](https://my.serverspace.ru/support/create-request) для миграции в нашу инфраструктуру, прикрепив во вложение файл образа диска и указав к какому именно серверу его необходимо подключить.
https://serverspace.uz/support/help/zagruzka-ova-ili-ovf.mdКак с помощью OVA/OVF файлов мигрировать в Serverspace? Для этого сконвертируйте образ VPS сервера в формат OVA/OVF по инструкции
Если у вас есть настроенный физический или виртуальный сервер, то вы без труда можете мигрировать его образ в нашу инфраструктуру с помощью OVF или OVA файлов.
Для миграции сервера сконвертируйте его в формат OVA/OVF, при этом должны быть соблюдены следующие требования:
- в конфигурации отсутствуют какие-либо сетевые устройства или адаптеры;
- тип дисков scsi;
- HW Version не выше 13 версии.
После того как ваш образ готов, создайте [обращение в службу технической поддержки](https://my.serverspace.ru/support/create-request) для миграции в нашу инфраструктуру, прикрепив во вложение файл образа.
https://serverspace.uz/support/help/podklyuchenie-cherez-swift-api.mdВ инструкции описан подробный процесс подключения к облачному объектному хранилищу по протоколу SWIFT API при помощи программы Cyberduck
[step num="1"]
Для подключения к объектному хранилищу с помощью Swift API используйте программу Cyberduck.
[/step]
[step num="2"]
Загрузить актуальную версию Cyberduck можно на [официальном сайте](https://cyberduck.io/).
[/step]
[step num="3"]
После установки запустите программу и в горизонтальном меню выберите **Новое подключение**:
[/step]
Скриншот №1. Новое подключение
[step num="4"]
В открывшемся окне в выпадающем списке выберите пункт **OpenStack Swift (Keystone 3)**. Если у вас отсутствует данный профиль подключения, необходимо [загрузить его отдельно](https://cyberduck.io/openstack/). Загруженный профиль можно открыть с помощью двойного клика.
[/step]
[step num="5"]
В качестве сервера укажите адрес Endpoint из панели управления и порт HTTPS **443**. В поле Project:Domain:Username введите Project, Domain и Username в следующем формате: **Project:Domain:Username**. В поле Пароль введите ваш пароль из панели управления, но не сохраняйте его:
[/step]
Скриншот №2. Введение данных
[step num="6"]
Далее нажмите клавишу **Подключиться**:
[/step]
Скриншот №3. Подключение
[step num="7"]
В результате произойдет подключение к объектному хранилищу.
https://serverspace.uz/support/help/kratkoe-rukovodstvo-po-usluge.mdУслуга DNS-хостинга предназначена для управления ресурсными записями доменов, делегированных на наши DNS серверы
Услуга ["DNS-хостинг"](https://serverspace.uz/services/dns-hosting.md) позволяет управлять ресурсными записями доменов, делегированных на наши DNS серверы. Это бесплатный инструмент, упрощающий администрирование ваших проектов за счет работы с общим интерфейсом для управления хостами и ссылающимися на них доменами. Используйте панель или наш API вместо одновременной работы с несколькими панелями (напр., панелью управления DNS вашего доменного регистратора).
Если вы новичок в DNS, в нашем разделе [помощи по DNS](https://serverspace.uz/support/help/category/dns/) можно ознакомиться с общей информацией и основами работы данной службы.
Для начала управления ресурсными записями домена через панель, необходимо делегировать соответствующий домен нашим NS-серверам в панели управления DNS регистратора домена.
https://serverspace.uz/support/help/osnovy-raboty-s-dns.mdВ статье описаны основные принципы работы сервера DNS. Структура DNS, составляющие, рекурсии и итерации. Все про работу DNS понятными словами
**DNS (Domain Name System)** — система, преобразующая доменные имена в IP-адреса, позволяет компьютерам и сетям взаимодействовать и обмениваться данными в интернете. Основы работы DNS тесно связаны с его структурой, функционированием и ролями различных компонентов. Без DNS, использование интернета было бы гораздо сложнее, так как пользователю пришлось бы запоминать и использовать числовые IP адреса вместо удобных и запоминающихся доменных имен. DNS обеспечивает эффективность и простоту использования интернета, позволяя пользователям доступ к веб-ресурсам всего лишь с помощью нескольких щелчков мыши или нажатий на клавиатуре.
## Назначение
Главная функция DNS состоит **в преобразовании доменных имен в IP-адреса**. Когда пользователь вводит веб-адрес в браузере, его компьютер отправляет запрос DNS-серверу для определения соответствующего IP-адреса данного домена. DNS-сервер, в свою очередь, обрабатывает запрос, осуществляет поиск необходимого IP-адреса и отправляет его обратно на компьютер пользователя. Затем компьютер устанавливает соединение с веб-сервером, используя полученный IP-адрес.
## Структура
**Структура DNS** состоит из **иерархической** системы доменов. **Вершина** этой иерархии называется **корневым сервером**, который отвечает на запросы о ресурсах на самом высоком уровне. Ниже корневого сервера находятся доменные серверы **верхнего уровня (TLD)**, которые отвечают за обработку запросов, связанных с конкретными доменными зонами (например, .com, .net, .org). Затем следуют доменные серверы **второго и третьего уровней**, отвечающие за конкретные домены.
## Ключевые составляющие
Одна из ключевых составляющих DNS - это **записи ресурсов (Resource Records)**, которые содержат информацию о различных типах ресурсов в домене. Каждый ресурс имеет тип, имя, значение и время жизни** (TTL)**. Например, **запись типа "A"** содержит имя домена и соответствующий IP-адрес, **запись типа "MX"** указывает на почтовый сервер для данного домена, а **запись типа "CNAME"** указывает на альтернативное доменное имя.
DNS также поддерживает **кэширование**, чтобы уменьшить нагрузку на серверы и ускорить процессы. Клиентские DNS-серверы и операционные системы могут кэшировать полученные результаты, чтобы не выполнять повторные запросы при обращении к одному и тому же доменному имени. Кэширование также может быть на разных уровнях в иерархии DNS, например, локальные сетевые устройства могут кэшировать информацию о доменах, которые были посещены ранее.
## Рекурсии и итерации
**Рекурсия в DNS** представляет собой процесс, при котором DNS-серверы запрашивают другие DNS-серверы для получения необходимой информации. Когда пользователь отправляет запрос на преобразование доменного имени в IP-адрес, DNS-сервер начинает поиск информации с корневых DNS-серверов. Затем DNS-сервер делает рекурсивные запросы следующим уровням DNS-серверов, пока не будет получена нужная информация. Например, если нужный IP-адрес находится на DNS-сервере, отличном от корневого, DNS-сервер выполняет рекурсивный запрос.
Этот процесс рекурсии обычно выполняется автоматически DNS-сервером, который обрабатывает запросы, и пользователь не замечает этого. Это позволяет быстро и эффективно находить необходимую информацию, обходя множество DNS-серверов.
С другой стороны, **итерация** в DNS является альтернативным подходом для получения информации о доменных именах и IP-адресах. В этом случае DNS-сервер не выполняет рекурсивные запросы, а делает итеративные запросы другим DNS-серверам. Если DNS-сервер не имеет информации о доменном имени, он возвращает пользователю список других DNS-серверов, к которым можно обратиться. Пользовательский компьютер затем делает запрос к этим серверам, пока не будет найдена нужная информация.
## Заключение
**DNS** - это основа функционирования интернета, предоставляющая механизм преобразования доменных имен в IP-адреса. Его иерархическая структура и записи ресурсов играют важную роль в обеспечении связности и эффективности работы миллиардов устройств и ресурсов в сети. Благодаря DNS мы можем легко и удобно перемещаться по интернету и наслаждаться всеми его возможностями.
https://serverspace.uz/support/help/kak-delegirovat-domen.mdИнструкция по бесплатной услуге делегирования доменов второго уровня на DNS сервера Serverspace и управлению ресурсными записями доменов
С помощью Serverspace вы можете бесплатно подключить услугу DNS. Она является абсолютно бесплатной для любого пользователя.
_Внимание: вы сможете делегировать домен, только если он является доменом второго уровня._
Чтобы ваш домен делегировался на наши сервера, вы должны: В панели управления, в вертикальном меню перейдите на вкладку **DNS** и нажмите **Добавить домен**.
Далее введите ваш домен второго уровня. Далее выберете способ миграции, вы можете:
- указать IP-адрес сервера или выбрать один из ваших виртуальных серверов - в данном способе миграции вам потребуется самостоятельно указывать DNS-записи;
- поставить галочку в поле **Провести миграцию DNS-записей** для автоматической миграции DNS-записей.
В конце нажмите **Добавить домен.**
****
Далее ваш домена будет успешно добавлен.
В интерфейсе управления DNS-записями, вы сможете заметить значения записей NS (Name Server) делегируемого домена на адреса наших NS-серверов.
_Внимание: после сохранения параметров дождитесь завершения процедуры делегирования. Как правило, процесс учета таких изменений занимает от 6 до 24 часов, в редких случаях до 72 часов._
Подробную информацию по процедуре делегирования вы можете уточнить у вашего доменного регистратора.
После успешного делегирования домена, вы сможете управлять ресурсными записями вашего домена. Чтобы сделать это из нашей панели, нажмите кнопку **Создание записи**.
https://serverspace.uz/support/help/kak-sozdat-chastnuyu-podset.mdКак создать частную сеть в панели управления Serverspace и подключить к ней серверы? Создание частной сети — инструкция со скриншотами
Создание частной сети является бесплатной услугой для наших клиентов. Вы можете объединить только сервера расположенные в одном ЦОДе. Для этого в вертикальном меню перейдите во вкладку **Сети** и нажмите **Добавить сеть**.
Выберете ЦОД в котором будет создана сеть, тип сети **Частная сеть** и удобное название. При необходимости вы можете использовать DHCP. Нажмите **Создать сеть**.
Вашей сети будет выдан шлюз и маска, емкость сети 256 адресов. Для подключения сервера к сети переведите тумблер **Подключить** в активное состояние и нажмите **Сохранить**.
При подключении к сети на ваш виртуальный сервер будет добавлен еще один сетевой адаптер, который необходимо настроить на уровне операционной системы. Если ваша сеть без DHCP, то локальные адреса будут доступны в панели управления.
https://serverspace.uz/support/help/kak-aktivirovat-khranilishhe.mdИнструкция по активации объектного хранилища Serverspace. Активация облачного хранилища занимает всего несколько секунд.
Для активации объектного облачного хранилища перейдите в панель управления и в вертикальном меню выберете услугу "Хранилище". В новом окне появится кнопка **Активировать** - нажмите на нее.
Скриншот №1. Активация объектного облачного хранилища
Активация обычно занимает несколько секунд, после чего перед вами появится интерфейс для работы с хранилищем прямо из панели управления.
Скриншот №2. Интерфейс для работы с хранилищем
Работать с облачным хранилищем можно по протоколам S3, Swift API, FTP и сторонние приложения.
https://serverspace.uz/support/help/kak-podklyuchitsya-k-virtualnomu-serveru.mdОписание подключения к виртуальным облачным серверам на разных ОС по разным протоколам: для UNIX по протоколу SSH, для Windows по RDP
В нашем сервисе представлены два семейства операционных систем: UNIX (Ubuntu, Debian, FreeBSD, CentOS) и Windows. Подключение к разным семействам происходит по разным протоколам - для UNIX по протоколу SSH, для Windows по RDP.
## Подключение к серверам Linux и BSD
Для подключения к [виртуальному серверу семейства Linux](https://serverspace.uz/services/vps-server/linux.md) или BSD установите на ваш компьютер программу [PuTTY](https://www.putty.org/) и запустите.
Скриншот №1. Подключение к виртуальному серверу
Далее перед вами откроется консоль, в которую необходимо ввести **Логин администратора**:
login as: root
Далее введите **Пароль администратора**, ввод которого будет скрыт:
root@111.111.111.111's password:
Если все данные введены корректно, то вы будете подключены к виртуальному серверу.
## Подключение к серверам Windows
Для подключения к [серверу семейства Windows](https://serverspace.uz/services/vps-server/windows.md) вам необходимо скачать RDP-файл и двойным щелчком левой кнопкой мыши запустите его.
Скриншот №2. Подключение к серверу семейства Windows
После запуска появится окно о том, что не удается определить издателя этого удаленного подключения, несмотря на это подключаемся и по желанию больше не выводим запрос о подключениях к нашему серверу.
Скриншот №3. Подключение к удаленному рабочему столу
В результате перед вами откроется окно, в которое необходимо ввести **Пароль администратора** из панели управления.
Скриншот №4. Ввод пароля
Если все данные введены корректно, то вы будете подключены к рабочему столу виртуального сервера по протоколу RDP.
https://serverspace.uz/support/help/konfiguratsiy-virtualnogo-servera.mdПодробная инструкция по изменению конфигурации виртуального сервера в панели управления Serverspace. Параметры сервера можно гибко настраивать
Вы сможете в любой момент изменять конфигурацию своих серверов, тем самым подстраивая их под текущие потребности и нагрузку.
Для изменения конфигурации сервера откройте меню **Настройки** в панели управления и нажмите на **Изменить конфигурацию**:
Откроется гибкий калькулятор конфгурации, где вы можете выбрать необходимое количество ядер CPU и RAM:
Также вы можете настроить количество томов и подключенные сети:
https://serverspace.uz/support/help/kak-protestirovat-virtualnyj-server.mdВ инструкции описан процесс активации тестового периода на VPS сервер. Это позволит ознакомиться с работой в панели управления и качеством услуг.
Новые пользователи сервиса Serverspace могут бесплатно [протестировать работу наших виртуальных серверов](https://serverspace.uz/services/vps-server/free-trial/). Во-первых, это позволит ознакомиться с работой в панели управления, с процессом создания сервера и его настройкой, с качеством предоставляемых услуг. Во-вторых, за время тестового периода пользователи могут проверить, что наше оборудование полностью подходит для работы с требуемым стеком программных компонентов.
[/services/vps-server/free-trial/](https://serverspace.uz/services/vps-server/free-trial/)
Тестовый период для юридических лиц составляет до 5 дней, для физических лиц - до 3 дней (в зависимости от выбранной конфигурации сервера).
Для получения тестового периода, выполните, пожалуйста, следующие шаги:
- [Зарегистрируйтесь](https://auth.serverspace.ru) и [создайте виртуальный сервер](https://serverspace.uz/support/help/kak-sozdat-virtualnyj-server/) с нужными параметрами (но, не превышающей 8 CPU, 16 Gb RAM и 200 Gb дискового пространства) В последствии вы без проблем сможете изменить конфигурацию сервера.
- Заполните корректные данные юридического лица в панели управления, если вы его представляете: раздел **Настройки**, вкладка **Данные юрлица**.
- Создайте [обращение в службу поддержки](https://my.serverspace.ru/support/create-request) в панели управления на предоставление тестового периода, в обращении указав цели тестирования виртуального сервера. Финальное решение о сроке тестового периода или об отказе в предоставлении теста принимают сотрудники службы технической поддержки.
Подборки VPS/VDS: [аренда VPS в Европе](https://serverspace.uz/services/vps-server/europe/), [аренда VPS на Linux](https://serverspace.uz/services/vps-server/linux.md) и [Windows](https://serverspace.uz/services/vps-server/windows.md).
https://serverspace.uz/support/help/zapusk-fonovih-komand-linux.mdВ инструкции рассказываем, как прописать команды через фоновый режим и использовать командную строку. Полезные команды и правила синтаксиса
В инструкции будет рассказано, как прописать те или иные команды через фоновый режим и напрямую использовать интерфейс командной строки.
Фоновый процесс – это любые команды, работа которых была запланирована юзером в принудительном порядке. Такие действия не будут отображаться на мониторе и не заметны рядовому пользователю. Яркий пример процесса – сервер Apache, обслуживающий веб-страницу, а также скрипты оболочек ПО и команды.
## Правила синтаксиса
[step num="1"]
Работу многих команд, задач и скриптов возможно перестроить под фоновый процесс одним добавлением символа "&". Амперсанд следует поставить в командную строку в самый конец функции. После чего он быстро перенесет скрипты и освободит немного свободного места.
[/step]
[step num="2"]
Те скрипты, которые будут работать через фоновый режим, называются заданиями. Синтаксис для их выполнения будет иметь такой вид:
```
command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &
```
[/step]
## Как это выглядит
[step num="3"]
Рассмотрим простой пример перевода некоторой команды ls:
```
$ ls *.py > output.txt &
```
[/step]
[step num="4"]
Для перевода последующего поискового скрипта нужно будет добавить амперсанд после всего выражения:
```
find . -iname "*.mp3" > myplaylist.txt &
```
[/step]
## Обнаружение заданий, работающих через фоновые процессы
[step num="5"]
Чтобы найти команды и скрипты, которые были переведены в фоновый режим, понадобится команда:
```
jobs
```
[/step]
К примеру:
```
[1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
```
```
[2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
```
В этом выражении [1] и [2] являются идентификаторами задания. Для их дальнейшего отображения через идентификатор процесса нужно будет ввести -l:
```
jobs –l
```
К примеру:
```
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
```
```
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
```
[step num="6"]
Если нужно показать только идентификатор процесса, следует написать:
```
jobs -p
```
[/step]
К примеру:
```
7307
```
```
7324
```
## Удаление скриптов, функционирующих через фоновый режим
[step num="7"]
Если юзеру понадобилось постепенно или принудительно завершить фоновый процесс одной из задач, следует воспользоваться командой "kill":
```
kill PID
```
```
kill -15 PID
```
```
kill -9 PID
```
```
killall process-Name-Her
```
```
killall -15 process-Name-Here
```
```
killall -9 process-Name-Here
```
[/step]
## Перемещение фонового процесса на место приоритетного
[step num="8"]
Для выполнения перемещений используется:
```
%JOB-ID
```
Либо
```
fg JOB-ID
```
[/step]
[step num="9"]
Поначалу выводятся все текущие фоновые процессы при помощи синтаксиса:
```
jobs -l
```
[/step]
К примеру:
```
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
```
```
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
```
[step num="10"]
Перевод задания со вторым идентификатором осуществится благодаря команде:
```
%2 ЛИБО fg 2
```
[/step]
[step num="11"]
Как можно вывести данные:
```
grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt
```
[/step]
[step num="12"]
Если потребуется приоритетные задания сделать снова фоновыми, достаточно будет удерживать "CTRL" и одновременно нажать "Z". Все работающие приоритетные задачи будут остановлены на некоторое время.
[/step]
[step num="13"]
Возвращение к фоновому режиму будет проводиться так:
```
%2 & ЛИБО bg
```
[/step]
Таким образом "grep" вернется к фоновому режиму.
## Наиболее полезные команды
| Описание | Команда |
| --- | --- |
| Покажет все выполняемые задания, а также их идентификаторы | jobs jobs -l ps aux |
| Переведет команду или скрипт для работы в приоритетном режиме | command & /path/to/command & /path/to/script arg1 & |
| Переведет фоновое задание для работы в приоритетном режиме | fg n %n |
| Переведет команду обратно к фоновому режиму, не запрашивая его отмену | bg n %n & |
Под "n" подразумевается идентификационный номер заданий, он выводится при выполнении команды "jobs".
https://serverspace.uz/support/help/nastroika-vpn-v-paneli-upravleniya.mdВ инструкции описана процедура создания VPN-тоннеля между сетями в панели управления Serverspace и настройка зашифрованного соединения между удаленными частными сетями
В инструкции описана процедура создания VPN-тоннеля между сетями в панели управления Serverspace.
## Что такое технология VPN?
VPN (Virtual Private Network) - виртуальная частная сеть, которая обеспечивает сетевое соединение на потенциально большом физическом расстоянии. В этом отношении VPN является формой глобальной сети. VPN поддерживают обмен файлами, видеоконференции и другими аналогичными сетевыми сервисами.
VPN может работать как в общедоступных сетях, таких как Интернет, так и в частных сетях. Используя метод, называемый тоннелированием, VPN работает через ту же аппаратную инфраструктуру, что и существующие каналы Интернет. Технологии VPN также включают различные механизмы безопасности для защиты виртуальных соединений.
VPN поддерживает как минимум три различных режима использования:
- клиентские подключения удаленного доступа к интернету;
- межсетевое взаимодействие LAN-to-LAN;
- контролируемый доступ в интрасети.
В панели управления можно настроить зашифрованное соединение между удаленными частными сетями по сетью, расположенной в инфраструктуре Serverspace.
## Как создать VPN-тоннель
Для создания VPN-тоннеля перейдите на вкладку VPN в настройках выбранной сети. Нажмите кнопку Добавить, чтобы создать тоннель.
В открывшемся окне требуется заполнить следующие поля:
Name - удобное и ясное название VPN-соединения.
Local Network - адрес выбранной сети в панели управления Serverspace, значение устанавливается автоматически.
Peer Networks - адрес удаленной локальной сети, с которой устанавливается VPN-соединение.
Local End Point - локальная точка тоннелирования, значение выбирается автоматически.
Peer Ip - это внешний IP-адрес устройства (Firewall или VPN-коннектор удаленной сети), с которым необходимо установить связь по VPN-тоннелю.
Peer Id - это как правило внешний IP-адрес устройства (Firewall или VPN-коннектор удаленной сети), с которым необходимо установить связь по VPN-тоннелю.
Peer Id и Peer IP совпадают, если на удаленной сети не используется NAT-устройство. При использовании NAT это может быть частный IP-адрес.
Encryption protocol - выберете тип протокола шифрования, доступны AES256, AES, 3DES.
Shared key - ключ шифрования. Введенная строка должна содержать от 32 до 128 символов, иметь одну заглавную букву, одну букву в нижнем регистре и хотя бы одну цифру. Мы рекомендуем пользоваться публичными генераторами ключей.
MTU - размер полезного блока данных одного пакета, возможный диапазон - от 60 до 9000 байт.
С помощью галочки VPN включен можно управлять состоянием тоннеля. Установите галочку и сохраните изменения.
Ключ шифрования, скорее всего, будет нужен на другом конце тоннеля. Если на обеих сторонах все настроено правильно, то в панели отобразится статус OK.
Примечание: существует два статуса соединения по VPN-тоннелю - ОК (зеленая галочка) и Critical (красный крестик). Обновление статуса происходит при перезагрузке страницы в браузере и при открытой странице - каждые 15 секунд.
Если тоннель больше не нужен, то его можно удалить с помощью серого крестика в столбце Действия, а затем выполнить подтверждение.
https://serverspace.uz/support/help/ustanovka-lamp-steka-na-ubutu-18-04.mdВ инструкции описан процесс установки LAMP-стека (Linux, Apache, MySQL и PHP) на виртуальные VPS серверы с операционной системой Ubuntu 18.04. LAMP - популярный набор ПО многих веб-приложений или сайтов.
Описание установки LAMP-стека на виртуальные серверы с операционной системой Ubuntu 18.04.
**В Serverspace вы можете [создать сервер](https://serverspace.ru/services/cloud-marketplace/) с уже установленным приложением LAMP**.
## Что такое LAMP-стек?
LAMP - это акроним, который традиционно означает "Linux, Apache, MySQL и PHP", что является популярным набором программного обеспечения многих веб-приложений или веб-сайтов. Стек LAMP является достаточно мощным, и при этом он сравнительно прост и удобен в использовании.
В последние годы набирают популярность разные вариации LAMP-стека, например, вместо языка программирования PHP используют Python или Perl, а вместо СУБД MySQL используют PostgreSQL.
На виртуальных серверах ServerSpace операционная система семейства Linux, а именно Ubuntu 18.04, уже установлена, поэтому в инструкции будет описана установка остальных компонентов.
## Установка Apache
Самым сердцем LAMP-стека является серверное программное обеспечение под названием Apache. Работа веб-сервера заключается в обработке HTTP-запросов, которые используются для отправки информации через Интернет.
Apache это самое популярное в мире программное обеспечение для веб-серверов, оно чрезвычайно стабильно и имеет полностью открытый исходный код.
[step num="1"]
Чтобы установить Apache, используйте следующую команду:
[/step]
```bash
sudo apt-get install apache2
```
[step num="2"]
Перед проверкой не забудьте открыть порт HTTP, например с помощью утилиты iptables:
[/step]
```
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
```
[step num="3"]
Перейдите в браузере по следующему адресу:
[/step]
```
http://IP-адрес-сервера/
```
В итоге откроется следующая страница-заглушка.
Скриншот №1. Страница-заглушка
## Установка MySQL
Далее необходимо установить систему управления базами данных. MySQL является наиболее распространенной СУБД, ее относительно легко установить и начать работать. Это вполне быстрая система из-за того, что в ней не реализован полный стандарт SQL и столько типов данных, сколько в других СУБД (в частности, PostgreSQL). Это делает MySQL отличным инструментом для использования при написании простых приложений, которые быстро работают и просты в настройке, но не требуют слишком сложного функционирования.
[step num="4"]
Для установки MySQL выполните следующую команду:
[/step]
```bash
sudo apt-get install mysql-server
```
[step num="5"]
После установки рекомендуется запускать скрипт безопасности:
[/step]
```
sudo mysql_secure_installation
```
[step num="6"]
Для проверки установки необходимо подключиться к MySQL, при подключении требуется ввести пароль:
[/step]
```bash
mysql -u root -p
```
## Установка PHP
PHP - это компонент конфигурации, который предназначен для отображения динамического контента. Он запускает сценарии и скрипты, подключается к базам данных MySQL для получения информации и направляет обработанный контент на веб-сервер для просмотра.
[step num="7"]
Для установки PHP выполните следующую команду:
[/step]
```bash
sudo apt install php
```
При этом будет установлена последняя доступная в репозиториях Ubuntu версия PHP (на данный момент PHP 7.2) и некоторые дополнительные компоненты, например: libapache2-mod-php7.2 libsodium23 php-common php7.2 php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline
[step num="8"]
Часто требуется установить дополнительные компоненты PHP, для их поиска используйте следующую команду:
[/step]
```bash
apt-cache search php7
```
[step num="9"]
В результате отобразится список доступных компонентов и их краткое описание. Для установки можно использовать команду следующего вида:
[/step]
```bash
apt install module-name
```
## Проверка установки LAMP-стека
[step num="10"]
С помощью текстового редактора создайте проверочный файл php:
[/step]
```
vi /var/www/html/info.php
```
[step num="11"]
Добавьте в него следующее содержимое и сохраните изменения:
[/step]
```
```
[step num="12"]
Выполните перезагрузку сервера Apache:
[/step]
```bash
service apache2 restart
```
[step num="13"]
Перейдите в браузере по следующему адресу:
[/step]
http://IP-адрес-сервера/info.php
Если все установлено верно, то вы увидите информационную страницу.
Скриншот №2. Информационная страница
https://serverspace.uz/support/help/nastroika-nat-v-paneli-upravleniya.mdОписание процедуры настройки NAT в маршрутизируемых (routed) сетях в панели управления Serverspace. NAT — это процедура замены IP-адресов и портов в заголовке IP-пакетов.
Описание процедуры настройки NAT в маршрутизируемых (routed) сетях в панели управления Serverspace.
Что такое NAT?
Трансляция сетевых адресов (NAT) - это процедура замены IP-адресов и портов в заголовке IP-пакетов. Чаще всего NAT используется, чтобы заменить IP-адрес внутренней сети во внешний IP-адрес, например маршрутизатора. Когда другие компьютеры в Интернете пытаются получить доступ к компьютерам в локальной сети, они видят только адрес маршрутизатора. Это добавляет дополнительный уровень безопасности, поскольку маршрутизатор можно настроить как брандмауэр, позволяя только авторизованным системам получать доступ к компьютерам в локальной сети.
Основная цель создания NAT - преодоление нехватки адресов IPv4. В нашей инфраструктуре используется тип NAT Один ко многим, т.е. множество локальных адресов отображаются на один внешний IP-адрес маршрутизатора. Именно с его помощью можно подключать к сети Интернет большие сети используя лишь один внешний IP-адрес.
Создание правила
Для начала необходимо создать маршрутизируемую (routed) сеть в панели управления и подключить к ней виртуальные сервера. В одну сеть можно объединить только сервера из одного центра обработки данных.
После того как сеть настроена, нужно открыть вкладку NAT. Кликните кнопку Добавить.
Пользователь может создавать два типа правил - SNAT или DNAT.
SNAT
SNAT (Source) изменяет исходный IP-адрес сетевого пакета с данными на другой IP-адрес.
Сценарий использования: маскировка и сокрытие локальных (частных) IP-адресов устройств для повышения конфиденциальности и безопасности.
При создании правила типа в выпадающем списке NAT Type необходимо выбрать SNAT и заполнить следующие поля:
Description - удобное для пользователя название;
OriginalIp - локальный (частный) адрес сервера, будет преобразован;
TranslatedIp - внешний адрес маршрутизатора в сети, это значение вводится автоматически и не может быть изменено.
С помощью флага Enable можно включать или отключать правило.
## DNAT
DNAT (Destination) используется для преобразования целевого IP-адреса сетевого пакета в другой IP-адрес.
[/step]
Сценарий использования: маскировка внутренних IP-адресов и их дальнейшая замена другими IP-адресами.
При создании правила типа в выпадающем списке NAT Type необходимо выбрать DNAT и заполнить следующие поля:
Description - удобное для пользователя название;
OriginalIp - внешний адрес маршрутизатора в сети, это значение вводится автоматически и не может быть изменено;
TranslatedIp - локальный (частный) адрес сервера, для которого нужно выполнить преобразование;
Protocol - из доступного списка протоколов выберете необходимый;
OriginalPort - порт маршрутизатора, на который поступают пакеты данных;
TranslatedPort - порт локального сервера, к которому нужно выполнить изменение.
С помощью флага Enable можно включать или отключать правило.
Добавленные правила появятся в разделе NAT для выбранной сети.
## Редактирование NAT правил
Пользователь может отредактировать ранее созданные NAT-правила. Для редактирования правила и кликните левой кнопкой мыши на его поле NAT type.
После того, как пользователь внес изменения их необходимо сохранить.
Примечание: с помощью флага Enable можно включать или отключать правило.
## Удаление NAT правил
Если правило стало неактуальным, то его можно удалить. Выполнить удаление можно с помощью Крестика.
Действие по удалению правила необходимо подтвердить во всплывающем окне.
https://serverspace.uz/support/help/nastroika-openvpn-na-windows-server-2012.mdOpenVPN – это представление открытой частной виртуальной сети. Рассмотрим серверные настройки на Win Server 2008 и 2012 и подключение юзеров к созданной сети.
Ниже мы детально разберем все, что касается серверных настроек на Win Server2008 и Server2012, а также покажем, как сделать подключения юзеров к созданной сети.
OpenVPN – это представление открытой (от англ. "open" - "открыть") частной виртуальной сети (от англ. "Virtual Private Network"). Данная технология помогает создавать виртуальные подключения групп клиентов к расположенных на расстоянии машинам посредством передачи данных по открытому каналу, то есть интернету.
При помощи OpenVPN возможно безопасно удалить или отключить заданные сетевые подключения к серверу, незадействуя прямые доступы через интернет. А благодаря шифрованию OpenSSL соединению будет обеспечен повышенный уровень безопасности.
## Принципы работы
Произведенная настройка позволит серверу взаимодействовать с внешним защищенным шифрованием SSL и создавать безопасное подключение к виртуальной сетевой машине (tun/tap). При этом не нужно будет волноваться об обработке трафика, поступающего от внешнего адаптера и аналогичных интерфейсов. Для серверных машин можно будет создать общий доступ к одному из указанных серверных адаптеров.
Дополнительно будет рассказываться о туннелировании входящих/исходящих от юзеров данных. Подобная переадресация позволит хосту, который обрабатывает подключения к виртуальной сети, осуществить передачу данных от своего лица и одновременно выступить в качестве прокси, чтобы привести к единому виду всю интернет-активность пользователя.
## Способы установки виртуальной сети
[step num="1"]
Для начала нужно зайти на официальный сайт и скачать последнюю версию OpenVPN, которая подойдет под требования ОС. Двумя кликами запустить инсталлятор.
[/step]
[step num="2"]
Когда откроется окно установок, на третьем этапе необходимо отметить галочками все предлагаемые компоненты.
[/step]
[step num="3"]
Когда всплывает вопрос о сетевом адаптере TAP, следует разрешить его установку.
[/step]
[step num="4"]
Стандартно OpenVPN загружается в папку с программными файлами, расположенную на диске C. Поэтому в ходе инструкции мы будем ссылаться к папке "**C:Program FilesOpenVPN**". Вы хотите изменить месторасположение файлов? Тогда учитывайте этот нюанс в дальнейшем.
[/step]
## Как сгенерировать ключи и выполнить их шифрование, алгоритм Diffie-Hellman
[step num="5"]
Для каждой пары ключей существуют свои собственные сертификаты, обеспечивающие безопасность передачи информации. Управлять ими можно специальным приложением Easy-rsa, которое запускается и работает в командной строке, аналогично консоли Linux. Консоль открывается через нажатие клавиш Win + R и ввода в появившемся окне слова cmd.
[/step]
## Как работать с конфигурационным файлом
[step num="6"]
Загрузив соответствующий конфигурационный файл, нужно внести его вместо одноименного файла/скрипта, найти который можно в папке OpenVPNeasy-rsa. Директория располагается на диске C в Program Files. Или укажите тот путь, куда вы запланировали установку виртуальной частной сети.
[/step]
[step num="7"]
В папке необходимо найти конфигурационный файл openssl-1.0.0.conf, его значения должны соответствовать вашим данным:
```
countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
emailAddress_default
```
**Важный нюанс:** в значении данных могут содержаться пробелы, такие переменные стоит обособить кавычками.
[/step]
[step num="8"]
## Как генерировать ключи в Центре Сертификации
1. Для начала следует переименовать два файла при помощи командной строки:
```
cd "C:Program FilesOpenVPNeasy-rsa" ren index.txt.start index.txt ren serial.start serial
```
2. Затем, чтобы создать новый ключ/сертификат, понадобится запуск скрипта:
```
.build-ca.bat
```
В окне будут возникать различные предложения, большинство из них можно подтверждать кнопкой Enter.
А для поля **KEY_CN (Common Name)** следует ввести оригинальное название и его же продублировать для поля name.
3. Так же генерируются сертификаты серверу. В этой строке вместе server нужно ввести оригинальное имя:
```
.build-key-server.bat server
```
4. Система начнет спрашивать, следует ли подписывать сертификаты для создаваемых ключей от имени Центра сертификации? Введите "да" - y (yes).
[/step]
## Как генерировать клиентский ключ и сертификат
[step num="8"]
Всем юзерам виртуальной сети понадобится генерировать свои индивидуальные SSL-сертификаты.
Можно воспользоваться специальной опцией, которая позволяет присваивать 1 сертификат сразу нескольким пользователям. Она называется "dublicate-cn" и размещается в файле server.ovpn. Однако такой ход небезопасен.
[/step]
[step num="9"]
Рассмотрим, как сгенерировать сертификат клиенту client2:
```
cd "C:Program FilesOpenVPNeasy-rsa" .build-key.bat client2
```
**Внимание**: под переменной client2 подразумевается вносимое название файла. Далее следует ввести client2 в запрос строчки Common Name.
[/step]
[step num="10"]
Работа с алгоритмом Диффи-Хеллмана
В завершение всех действий понадобится запуск шифрования, чтобы сгенерировать группу параметров по Диффи-Хеллману:
```
.build-dh.bat
```
[/step]
Перенос сгенерированных ключей/сертификатов
[step num="11"]
Все созданные данные располагаются в подпапке easy-rsakeys. Следующие наименования файлов следует перенести в другую подпапку - config, которая располагается в том же месте:
• dh2048.pem/dh1048.pem
• server.key
• ca.crt
• server.crt
[/step]
## Настройка конфигурации на сервере
[step num="12"]
Запустите редактор реестра и отыщите в нем:
```
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters.
```
[/step]
[step num="13"]
Справа вы увидите IPEnableRouter. Кликните по переменной два раза – откроется новое окошко для изменения параметров. В поле "Значение" поставьте единицу:
[/step]
[step num="14"]
Настраивать сервер мы будем через конфигурационный файл server.ovpn. Перед работой его следует переместить в папку config.
Открыв его, необходимо проверить правильность построение маршрутов к перенесенным сертификатам:
```
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ca "C:Program FilesOpenVPNconfigca.crt"
cert "C:Program FilesOpenVPNconfigserver.crt"
key "C:Program FilesOpenVPNconfigserver.key"
dh "C:Program FilesOpenVPNconfigdh2048.pem"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
```
Если нужно, то меняем пути на правильные и пересохраняем.
[/step]
[step num="15"]
Чтобы успешно пересылать трафик от одного адаптера к другому, нужно зайти в раздел сети и интернета, который находится в панели управления ПК. В нем найти центр сетевого управления и кликнуть по предложению изменить параметры интернет адаптера.
Из нескольких предложенных вариантов надо взять тот, что отвечает за внешние подключения, то есть не TAP-тип, так как он работает с VPN-соединениями.
[/step]
В свойствах зайдите на вкладку доступа и поставьте галочки на обоих пунктах:
[step num="16"]
Следующим шагом включается айпи-переадресация.
Зайдите в стандартный поиск ОС си введите следующее имя приложения:
[/step]
## Настройка автозапуска
[step num="17"]
Чтобы служба стартовала при включении компьютера, нужно зайти в базовую папку "Службы", в открывшемся окне среди прочих программ найти OpenVPN, кликнуть по нему правой кнопкой, а в свойствах в значениях запуска выставить режим "Автоматически".
[/step]
[step num="18"]
Стандартные настройки окончены. Чтобы запустить сервер и его новые настройки, надо еще раз войти в файл server.ovpn и написать в него следующую строчку:
Start OpenVPN on this config
[/step]
## Настройки клиентской конфигурации
[step num="19"]
Виртуальная частная сеть имеет свое клиентское приложение, которое одинаково хорошо загружается для любой существующей операционной системы за исключением Mac – к нему разработан Tunnelblick. Версии приложений функционируют одинаково, затрагивают определенные конфигурационные файлы. В зависимости от версий, могут различаться отдельные опции. Более подробная информация расписана в документации OpenVPN.
Далее мы расскажем, как подключить клиентов на ОС Виндовс, применяя те же дистрибутивы, которые до этого инсталлировались на сервере. В случае с другими операционными системами методы и шаги будут примерно такими же.
1. Для начала на ПК клиента ставится актуальная версия (желательно последняя) OpenVPN.
2. Конфигурационные файлы клиента client.ovpn вместе с сертификатами *.crt и ключами *.key, которые перед этим мы сгеренировали, необходимо поместить в подпапку config, хранящуюся в разделе OpenVPN. При этом желательно файл клиента удалить с директории сервера, чтобы не запутаться при будущих настройках.
3. При открытии client.ovpn необходимо отыскать строчку remote my-server-1 1194. Задайте ей айпи и домен работающего сервера:
```
remote 1194
```
Например:
```
remote 111.222.88.99 1194
```
4. Ниже в файле обозначен путь к каждому сертификату, меняем их на путь к скопированным версиям:
```
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca "C:Program FilesOpenVPNconfigca.crt"
cert "C:Program FilesOpenVPNconfigclient2.crt"
key "C:Program FilesOpenVPNconfigclient2.key"
# This file should be kept secret
```
5. После сохранения базовые настройки будут окончены.
[/step]
## Как проверить правила брандмауэра
[step num="20"]
Чтобы функционирование виртуальной частной сети проходило корректно, на стороне сервера необходимо открыть соответствующий порт. Стандартно его имя UDP 1194.
Зайдите в установленный системный Firewall и посмотрите, разрешен ли доступ к порту антивирусным программным обеспечением и брендмауэром.
[/step]
## Как проверить OpenVPN-подключение
[step num="21"]
После запуска сервера потребуется зайти в папку config. В ней нужно отыскать конфигурационный server.ovpn файл. Кликнуть по нему правой кнопкой, вызвать контекстное меню и внести новую строчку:
Start OpenVPN on this config file
Те же действия необходимо проделать для клиента. Только в этот раз открывается client.ovpn. Остальные действия аналогичны.
Следом должно показаться окно, где отобразится статус соединения. Окно самостоятельно свернется в трею, там же загорится ярлык компьютера с зеленым индикатором (это будет свидетельствовать об успешно проведенной настройке).
Чтобы проверить, доступен ли сервер с компьютера клиента, проведем следующие действия:
1. Запустим командную строку комбинацией клавиш Win + R и введением команды cmd.
2. Осуществим пинг к выбранному серверу (10.8.0.1). Для этого введем:
ping 10.8.0.1
3. Если настройка прошла отлично, в окне строки покажется передача пакетов ПК клиента к серверу:
4. Специальная утилита Tracert покажет маршрут, по которому происходит передача клиентских пакетов. Для этого в консоль вводится команда:
tracert ya.ru
Как показывает результат, клиентский пакет отправляется к виртуальному серверу, после чего перенаправляется к внешней сети:
После таких действий вы получаете VPN, которая полностью настроена и готова работать. С ее помощью владельцу сервера доступно быстро создание безопасного сетевого подключения типа клиент-сервер, использование открытых и территориально удаленных точек подключения к сети интернет.
https://serverspace.uz/support/help/nastroika-ftp-na-windows.mdНиже мы детально рассмотрим рекомендации про серверную настройку, работу брандмауэра, способы подключения и протокол Secure (SFTP) на ОС Win Server2012
Ниже мы детально рассмотрим рекомендации про серверную настройку, работу брендмауэра, способы подключения и протокол Secure (SFTP) на ОС Win Server2012.
FTP выступает в качестве общепринятого протокола, он передает файл с компьютера на сервер или обратно на ПК. С его помощью пользователь может работать с другими машинами в интернете, обмениваться данными с локальными устройствами и удаленным сервером, пользоваться облачными архивами ПО.
Мы расскажем об инсталляции FTP на любой из серверов IIS. Также для работы допускается использование других программ, в том числе: FileZilla, Home, Titan или Ocean FTP Server.
## Процесс установки
Для начала нужно зайти в "Пуск" и войти в "Диспетчер серверов", в нем необходимо выбрать добавление роли (пункт два).
Затем зайти на вкладку "Тип установки" и кликнуть на первую категорию.
В рамке с пулами появится список серверов, надо кликнуть по нужному и щелкнуть "Далее".
В подменю серверных ролей нужно поставить галочку для сервера IIS. После этого графа развернется и представит новые настройки: здесь потребуется кликнуть на FTP. Внимание: иные версии перенесли строку "FTP-сервер" на другие вкладки.
Затем потребуется нажать и одобрить установку.
Раскройте диспетчер IIS и слева в подменю есть папка "Сайты". Если кликнуть по ней правой кнопкой мышки, всплывет подсказка. В ней следует щелкнуть на "Добавить FTP".
Следующий шаг: потребуется ввести имя нужного сайта и его полный путь к каталогу хранения.
В окне появится запрос на выбор айпи-адреса. Нужно проверить, чтобы введенный айпишник был одинаковым с тем, что значится в панели управления. Желательно выбрать еще функцию автоматического запуска, расположенной ниже, и в ней "Без SSL".
Проверять подлинность будем обычным способом, доступы разрешаются каждому юзеру. Также рекомендуем выбрать все предложенные разрешения.
## О настройках брендмауэра
Чтобы внешние подключения происходили быстро и гладко, потребуется настроить файервол – это проводится через приложение брендмауэра. Его следует запускать с режимом повышенной безопасности. После открытия в левом подменю нужно найти графу с правилами для входящих подключений, а в правой части кликнуть по созданию новых правил.
В "Мастер создания" выбирается предопределенный тип правил, ему указывается правило FTP из выпадающего подменю.
В подменю предопределенных правил рекомендуем поставить галочки во всех строках.
В подменю "Действие" необходимо разрешить подключения (первая строка). Настройка закончилась, она войдет в работу как только перезагрузится сервер.
## О подключениях к FTP
Провести подключение возможно посредством базовой виндовской программы ("Проводника") либо при помощи специальных программ, например, FileZilla.
Подключаясь по методу "Проводник", в адресную строчку вводится:
ftp://ip-адрес
К примеру, ftp://177.118.25.63
Всплывет окно, в него вводится информация: выбирается существующий юзер и указывается пароль.
Внимание: при помощи сервера IIS возможно проводить гибкие подключения к серверам. В том числе разделить видимое пространство различным клиентам, редактировать их права, давать анонимный доступ.
В случае удачно проведенных действий откроется окно с папками, расположенными на сервере.
Внимание: встроенные сервера имеют богатые возможности. В том числе позволяют вести журнал, изолировать юзеров, поддерживать SSL, ограничивать число попыток входа.
## Как настроить Secure (SFTP)
подразделяются на два типа: заверенные официальной комиссией и самоподписанные. Первый тип считается безопасным, так как за надежность заверяется центром, отвечающим за сертификацию.
Если брать самозаверенные сертификаты, тогда юзеры при желании зайти на сервер будут получать предупреждения.
Начать работу с самозаверенным сертификатом просто:
1. Нужно зайти в окно диспетчера IIS и выбрать параметр "Сертификаты".
2. В правой подменю необходимо выбрать создание самоподписанного типа.
3. Ввести его название.
Чтобы настроить SFTP потребуется вернуться к начальной странице (кликнуть по FTP в левом подменю) и открыть параметры, как на скриншоте.
Открывшееся окно предложить сделать выбор политики – укажите второй вариант с требованиями SSL-соединений.
Чтобы произвести подключения по защищенному каналу, понадобится программа WinSCP:
• Протоколом должен выступить FTP;
• В качестве шифрования из выпадающего меню выбирается "Явное";
• Именем хосту будет служить айпи или доен;
• Если не было настроек других портов, нужно выбирать 21-й;
• Последними указываются логин и пароль.
После входа появится все, что содержит FTP-каталог.
https://serverspace.uz/support/help/how-to-forward-the-printer-through-rdp.mdОсвоение техники проброса принтера через RDP – подробное руководство. Узнайте, как настроить удаленный доступ к локальным принтерам.
Есть несколько причин, по которым использование локальных ресурсов из RDP выгодно для пользователя и/или администратора. Начнем с того, что использование локально доступных принтеров может повысить удобство работы пользователей, сократив время удаленной печати документов. Это достигается благодаря тому, что файлы не нужно передавать по сети, прежде чем их можно будет распечатать, что в противном случае увеличило бы время задержки обработки. Во-вторых, копирование текста и других типов файлов между удаленной и локальной системами способствует более плавному рабочему процессу, экономя драгоценное время при работе с несколькими машинами или приложениями.
Однако, несмотря на то что локальные ресурсы дают множество преимуществ как администраторам, так и конечным пользователям, при неправильном управлении ими могут возникнуть некоторые риски безопасности, поэтому стоит убедиться, что при необходимости будут установлены соответствующие сетевые ограничения, чтобы максимально снизить эти угрозы.
Как можно подключиться по RDP?
Нужно запустить приложение удаленного рабочего стола на клиентской машине, найдя его в строке поиска. И щелкните по нему правой кнопкой мыши:
Скриншот №1 — Поиск
На стороне сервера необходимо разрешить удаленное подключение, для чего нажмите Ctrl + E, найдите в левом меню Этот ПК или аналогичное имя и откройте Properties. Найдите пункт Удаленный рабочий стол и разрешите подключение с другого ПК. Итак, подготовка на стороне сервера завершена! Теперь вернитесь на клиентскую машину и посмотрите на недавно открытое окно:
Скриншот №2 — Локальные ресурсы
Перейдите на вкладку Local Resources и добавьте Printers, вернитесь в General и введите имя хоста, имя пользователя, как показано на рисунке ниже:
Скриншот №3 — Подключение
Вы можете нажать на пункт **Allow** и т.д., по желанию. Далее нам нужно подключиться, нажав кнопку ниже, подождите, пока процесс не завершится. После входа в систему найдите в строке **Manage Server** и в правом углу нажмите **Manage**, а затем следуйте пункту **Add Roles**:
Скриншот №4 — Управление ролями
Пропустите начальный шаг и выполните поиск в ролях Print and Document Services, нажмите Add Features:
Скриншот №5 — Добавить роль
Дождитесь окончания процесса проверки соответствия и укажите пункт с функцией Restart, нажмите кнопку Install:
Скриншот №6 — Установка роли
В главном меню мы видим поднятые службы печати, теперь нам нужно убедиться, что наш принтер разрешен в системе:
Скриншот №7 — Поднятый сервис
Найдите устройства в строке поиска, набрав Device Manager, и в открывшемся окне найдите нужный принтер!
Скриншот №8 — Принтеры
Как мы видим на рисунке, было подключено перенаправление устройств с нашей первой машины!
Стратегическое использование локальных ресурсов в RDP повышает эффективность и удовлетворенность пользователей. Баланс этих преимуществ с проактивным подходом к мерам безопасности обеспечивает надежную и безопасную среду удаленного рабочего стола как для конечных пользователей, так и для администраторов.
https://serverspace.uz/support/help/firewall-configuring-the-server-firewall.mdПодробная инструкция, как настроить конфигурации межсетевого экрана и создать правила Firewall (брандмауэра) в панели управления для виртуальных VPS серверов.
Инструкция по настройке правил Firewall для виртуальных серверов в панели управления Serverspace.
### Что это такое?
С помощью межсетевого экрана прямо из панели управления можно управлять доступом к серверу, сетевыми пакетами данных. Данная опция отдельно не тарифицируется и входит в стоимость сервера.
На данный момент существует ограничение в 50 правил, если вам будет недостаточно этого лимита, то увеличить его можно по [запросу в техническую поддержку](https://my.serverspace.ru/support/create-request).
### Сетевая архитектура
[step num="1"]
Для избежания конфликта правил межсетевого экрана и его правильной настройки необходимо понимать порядок действия существующих брандмауэров. Во-первых, вы можете настроить брандмауэр для частной сети. Во-вторых, для сервера через панель управления. В-третьих, вы можете настроить внутренний брандмауэр, например, для Linux через iptables, для Windows - встроенный.
[/step]
[step num="2"]
Для входящих пакетов первым будет применяться брандмауэр на уровне сети (при наличии). Если пакет прошел, дальше будет применяться фаерволл на уровне сервера, в последнюю очередь будет использоваться внутренний программный механизм. Для исходящих пакетов будет применена обратная последовательность действий.
[/step]
_Мы не рекомендуем одновременно использовать межсетевой экран на уровне сервера и внутренний программный:_
### Создание правила
[step num="3"]
Конфигурация брандмауэра доступна для всех VPS и находится в настройках сервера в разделе Firewall.
[/step]
_Важно:
- порядок правил имеет значение, чем меньше порядковый номер правила (чем выше он в списке), тем выше его приоритет. Изменять последовательность правил можно с помощью Drag and Drop, перетащив правило левой кнопкой мыши на нужную позицию;
- по умолчанию - все пакеты данных, как входящие, так и исходящие разрешены. _
[step num="4"]
Для создания правила нажмите кнопку **Добавить**:
[/step]
[step num="5"]
Перед вами откроется окно добавления правила. Необходимо заполнить следующие поля:
- **Name** - понятное для пользователя название (не более 50 символов), как правило кратко описывает назначение правила;
- **Direction** - направление пакетов, для которых необходимо применить правило, принимает одно из двух значений: Incoming или Outgoing. Incoming - правило распространяется на входящие пакеты данных, Outgoing - на исходящие;
- **Source/Destination** - в зависимости от направления содержит IP-адрес сервера или одно из значений: IP-адрес, CIDR, диапазон IP-адресов и any;
- **SourcePort/DestinationPort** - при выборе протокола TCP, UDP или TCP and UDP возможно указать порт, диапазон портов, либо Any;
- **Action** - действие, которое необходимо применить, принимает одно из двух значений: Allow или Deny. Allow - разрешение пересылки пакетов данных, Deny - запрет пересылки;
- **Protocol** - тип протокола, доступно ANY, TCP, UDP, TCP and UDP и ICMP.
Для создания правила нажмите **Сохранить**.
[/step]
[step num="6"]
В нашем примере правило блокирует все входящие на сервер пакеты:
[/step]
[step num="7"]
Чтобы созданное правило вступило в силу необходимо сохранить изменения с помощью кнопки **Сохранить**. Вы можете создать несколько правил и затем сохранить все разом:
[/step]
После этого страница будет выглядеть следующим образом:
### Приоритет правил
[step num="8"]
Чем меньше порядковый номер правила (чем выше оно в списке), тем выше его приоритет. Например, после того как было создано запрещающее правило для всего входящего трафика, создадим правило разрешающее получать входящие пакеты по 80 порту протокола Tcp. После сохранения изменений при такой конфигурации данный порт все также будет недоступен, в связи с тем, что запрещающее правило имеет более высокий приоритет:
[/step]
[step num="9"]
Для изменения приоритета правил перетащите с помощью левой кнопки мыши разрешающее правило на первое место и сохраните изменения:
[/step]
[step num="10"]
После сохранение порядковые номера правил изменятся, а также изменится их приоритет:
[/step]
[step num="11"]
Теперь конфигурация брандмауэра позволяет получать пакеты по протоколу Tcp по 80 порту, остальные пакеты проходить не будут.
https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-ubuntu-18.mdИнструкция по расширению дискового пространства на виртуальном сервере Ubuntu 18.04 через панель управления Serverspace и средствами ОС. Не хватает свободного дискового пространства.
При работе с облаком иногда возникают ситуации, когда не хватает свободного дискового пространства. Чтобы увеличить объем заходим в панель администратора и вручную прописываем новый размер диска. Теперь переходим к настройкам сервера для добавления объема в конфигурацию. Ниже приведена инструкция со скриншотами на примере сервера Ubuntu 18.04.
### Как увеличить размер дискового пространства
1. Подключаемся к Ubuntu Server под именем суперпользователя (root) и проверяем текущий размер дискового пространства.
```
echo 1 > /sys/block/sda/device/rescan
```
Утилита запросит конфигурацию сервера и определит изменения. В нашем случае она транслирует Ubuntu информацию о новом размере дискового пространства.
2. Воспользуемся встроенной программой parted – введем её в терминал. Отобразим список разделов, используя ключ p:
```
(parted) p
```
На мониторе появится следующее:
Скриншот №1. Пример.
Красным выделены пункты, которые запоминаем или записываем. Первая строка отображает количество гигабайт, которые доступны на текущем разделе.
Вторая – текущий размер диска, объем которого будет увеличен. Его легко определить по метке LVM.
3. Информация собрана, запускаем процедуру слияния, используя следующий синтаксис:
```
(parted) resizepart 2
```
Где "2" означает номер тома, на котором происходит изменение дискового пространства:
Скриншот №2. Изменяем размер.
Утилита уточнит какое значение добавить. В квадратных скобках указан текущий размер раздела. Вводим новое значение – просто добавляем к числу требуемый объем.
В нашем примере выглядит так: 64.4 + 20 = 84.4 Gb
Выходим из приложения parted командой quit.
```
(parted) quit
```
4. После закрытия на экране появится сообщение о необходимости обновить информацию:
Скриншот №3. Информационный текст.
Вручную транслируем операционной системе информацию об изменениях. Вводим:
```
pvresize /dev/sda2
```
, где /dev/sda2 – номер устройства и раздела, на котором произошли изменения.
5. Меняем значение тома командой:
```
lvextend -r -l +100%FREE /dev/mapper/vgroup1-root
```
Добавление дискового пространства прошло успешно, но, дабы убедиться, проверим результат.
В терминале набираем
```
df –h
```
На мониторе отобразится информация о внесенных изменениях.
https://serverspace.uz/support/help/podkuchenie-vyos-k-chastnoi-seti.mdКак подключить сервер с операционной системой VyOs к частной сети. Руководство по настройке сетевого интерфейса VyOS командой Set.
В этом руководстве будет рассмотрен процесс настройки сервера с операционной системой VyOS в частной сети.
VDS с данной системой зачастую используются в качестве роутеров и маршрутизаторов, имеют возможности настройки сетей VPN разных типов и конфигураций.
### Настройка
После подключения VPS к локальной сети через панель управления, подключитесь к серверу по ssh и перейдите в режим конфигурации VyOS:
```
config
```
_Примечание: в обычном режиме недоступны некоторые утилиты, а приглашение командной строки заканчивается символом $ (доллар), а в конфигурационном - символом # (решетка)._
Выведите на экран все доступные интерфейсы:
```
show interfaces
```
Output:
```
ethernet eth0 {
address /24
duplex auto
hw-id
smp_affinity auto
speed auto
}
ethernet eth1 {
duplex auto
hw-id
smp_affinity auto
speed auto
}
loopback lo {
}
```
С помощью команды set настройте значение локального ip-адреса, если в сети **отключена опция DHCP**, то в качестве значения укажите адрес из панели управления в настройках вашего VPS (см. изображение ниже):
```
set interfaces ethernet eth1 address /24
```
Например:
```
set interfaces ethernet eth1 address 10.0.0.4/24
```
Когда опция DHCP включена, выполните следующее действие:
```
set interfaces ethernet eth1 address dhcp
```
_Примечание: если выполнение завершается с ошибкой, попробуйте внести текущего пользователя в группу суперпользователя, например usermod -a -G root ._
Проверьте изменения:
```
show interfaces
```
```
ethernet eth1 {
+ address /
duplex auto
hw-id 00:50:56:01:1b:9f
smp_affinity auto
speed auto
}
loopback lo {
}
```
Измененные строки отмечены знаком +.
Если все правильно, сделайте коммит и сохраните изменения:
```
commit
save
```
Выйдите из режима конфигурации:
```
exit
```
Проверьте настроенный локальный ip-адрес интерфейса VyOS:
```
show interfaces
```
```
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 /24 u/u
eth1 /24 u/u
lo 127.0.0.1/8 u/u
::1/128
```
Теперь вы можете использовать настроенную машину как роутер или другой узел частной сети.
https://serverspace.uz/support/help/uvelichenie_diskovogo_prostranstva_debian_9.mdПошаговая инструкция о том, как увеличить дисковое пространство на виртуальном сервере VPS под управлением Debian 9. Заходим в панель управления сервера.
Когда не хватает дискового пространства на виртуальном сервере, администратор вручную увеличивает свободное место. О том, как это сделать на сервере под управлением Debian 9 – расскажем ниже.
### Предварительная подготовка
Заходим в панель управления сервера и передвигаем ползунок. Значение выбирается самостоятельно в зависимости от потребностей администратора:
Скриншот №1. Увеличение дискового пространства.
Сохраняем изменения.
**Важно!** Все нижеперечисленные операции выполняются с правами доступа суперпользователь.
### Настройка
Запустим сканирование ОС для нахождения свободного пространства.
```
echo 1 > /sys/block/sda/device/rescan
```
Утилита находит добавленное дисковое пространство и транслирует информацию Debian.
1. Воспользуемся встроенной утилитой parted, чтобы добавить новый объем к текущему. Запустим с ключом p.
```
Parted
(parted) p
```
В результате откроется окно со следующей информацией:
Скриншот №2. Информация о дисковом пространстве.
Запоминаем цифру, которая указана под номером 1. В нашем случае это 236 Gb.
2. Обозначим утилите, какой раздел требует изменения. На скриншоте №2 он выделен цифрой 2.
```
(parted) resizepart 2
```
Указываем после знака вопроса новый размер, который доступен после увеличения объема. В нашем случае это 236Gb. Нажимаем Enter. Выходим из утилиты командой quit.
3. Обновим текущую конфигурацию ОС. Для начала откроем встроенный менеджер fdisk, указав текущий раздел диска (sda). Запустим утилиту с ключом n.
```
fdisk /dev/sda
Command (m for help): n
```
На экране появится запрос о назначении типа диска.
В нашем примере это будет логический диск. Нажимаем клавишу l.
Далее потребуется задать значения начального и конечного сектора. Оставляем как есть, т.е. нажимаем "Ввод" два раза.
Утилита создаст новый раздел. Запоминаем его номер – в нашем случае это 7.
4. Используя ключ **t**, меняем тип раздела.
Указываем номер раздела, который будем менять (для нашей ситуации - 7). Далее вводим новый тип – 8e. Если необходимо узнать список доступных типов, то используем ключ L.
5. Вводим операнд w. Утилита сообщит о невозможности перезагрузки – произведем её вручную.
6. Оповестим ОС Debian об изменениях в разделе sda.
```
partx -v -a /dev/sda
```
7. Активируем новый раздел, используя внутреннюю команду.
```
pvcreate /dev/sda7
```
8. Теперь необходимо добавить к текущей группе томов новый физический раздел.
```
vgextend debian94-vg /dev/sda7
```
9. Предпоследний этап – увеличиваем дисковое пространство логического тома.
```
lvextend -l +100%FREE /dev/debian94-vg/root
```
И заключительный шаг – расширяем файловую систему жесткого диска.
```
resize2fs /dev/debian94-vg/root
```
https://serverspace.uz/support/help/rasshirenie-razdela-pfsense22.mdПошаговое руководство по увеличению дискового пространства сервера PfSense 2.3. После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
Для того чтобы проверить корректность выполненных действий, можно воспользоваться командой
```
gpart show -p
```
- Откройте терминал (см. [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
- Выбираем пункт меню "Shell"
```
Enter an option: 8
```
- Отключаем Swap
```
swapoff /dev/label/swap0
```
- Удаляем раздел со Swap
```
gpart delete -i 2 da0s1
```
- Расширяем первый слайс диска
```
gpart resize -i 1 da0
```
- Применяем изменения
```
gpart commit da0s1
```
- Расширяем первый раздел диска
```
gpart resize -i 1 -s XG da0s1
```
- Добавляем раздел со Swap
```
gpart add -t freebsd-swap da0s1
```
- Ставим метку на раздел со Swap
```
glabel label swap0 /dev/da0s1b
```
```
sed -i "" 's/dev/ufsid/[a-z0-9]*/dev/da0s1a/g' /etc/fstab
```
- Перезагружаем сервер
```
reboot
```
- Расширяем файловую систему раздела
```
growfs -y /dev/da0s1a
```
Готово!
https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-v-centos-7.mdИнструкция по расширению диска в CentOS 7 после расширения дискового пространства в панели управления. Откройте терминал под пользователем root и введите следующие команды.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
Откройте терминал (см. [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
```
[root@CentOSx64 ~]# echo 1 > /sys/block/sda/device/rescan[.code]
Запустите fdisk:
[code][root@CentOSx64 ~]# fdisk /dev/sda
```
Далее выполните команды в интерфейсе утилиты fdisk.
Удаляем раздел /dev/sda2:
```
Command (m for help): d
```
```
Partition number (1,2, default 2): 2
```
Создаем раздел:
```
Command (m for help): n
```
Выбираем тип раздела - основной (p):
```sql
Select (default p): p
```
```
Partition number (2-4, default 2): 2
```
Принимаем значения по умолчанию - нажимаем два раза Enter:
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Меняем тип раздела:
```
Command (m for help): t
Partition number (1-**2**): **2**
Hex code (type L to list all codes): 8e
...
Command (m for help): w
```
Сообщаем ядру об изменениях:
```
[root@CentOSx64 ~]# partx -u /dev/sda2
```
Изменяем физический том:
```
[root@CentOSx64 ~]# pvresize /dev/sda2
```
Узнаем название логического тома:
```
lvdisplay
```
Нас интересует том называющийся /dev/XXXXXXX/root (в примере ниже это /dev/vgroup01/root) запоминаем данное название.
```
--- Logical volume ---
LV Path /dev/vgroup01/swap
....
--- Logical volume ---
LV Path /dev/vgroup01/var
...
--- Logical volume ---
LV Path /dev/vgroup01/root
...
```
Расширяем логический том:
(XXXXXXX - заменяем на название тома, которое мы запомнили)
```
[root@CentOSx64 ~]# lvextend -l +100%FREE /dev/XXXXXXX/root
```
```
Size of logical volume XXXXXXX/root changed from 8.71 GiB (2229 extents) to 98.71 GiB (25269 extents).
Logical volume root successfully resized
```
Расширяем файловую систему:
XXXXXXX - заменяем на название тома, которое мы запомнили)
```
[root@CentOSx64 ~]# xfs_growfs /dev/XXXXXXX/root
```
Готово.
https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-debian-11.mdИнструкция по расширению диска в ОС Debian 8 (Jessie) после расширения дискового пространства в панели управления Serverspace.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы.
Debian 11, также известная как "Bullseye", является одной из наиболее популярных операционных систем Linux. Увеличение дискового пространства в Debian 11 может оказаться необходимым в случае, если у вас закончилось доступное место на жестком диске или разделе. Один из способов увеличения дискового пространства в Debian 11 — использование утилиты parted. Parted — мощная командная строковая утилита для создания, изменения и удаления разделов на жестком диске. Она также может использоваться для увеличения размера существующего раздела. Перед выполнением любых действий по изменению размера раздела настоятельно рекомендуется выполнить резервное копирование всех важных данных на другой носитель, чтобы избежать их потери. Чтобы начать увеличение дискового пространства в Debian 11 с помощью parted, следуйте следующим шагам.
## Подготовка
Перед увеличением дискового пространства в Debian 11 с помощью parted, убедитесь, что у вас есть свободное пространство на жестком диске или дополнительном диске, который вы хотите использовать для расширения раздела. Вы также должны знать идентификатор раздела, который вы хотите изменить. Также необходимо установить данную утилиту, если её ещё нет в системе:
```bash
sudo apt update
```
```bash
sudo apt install parted
```
## Запуск утилиты parted
Откройте терминал и выполните следующую команду, чтобы запустить утилиту parted:
```
sudo parted /dev/sdx
```
Здесь "/dev/sdx" — путь к вашему жесткому диску или дополнительному диску, на котором находится изменяемый раздел. Обязательно замените "sdx" на фактический идентификатор вашего диска.
## Выбор раздела
После запуска утилиты parted выполните команду "print" для отображения списка доступных разделов на выбранном диске:
```
print
```
Вывод команды показывает информацию о разделах на диске. Обратите внимание на идентификатор раздела и его текущий размер.
## Изменение размера раздела
Чтобы увеличить размер существующего раздела, используйте команду "resizepart":
"resizepart partition_number new_size"
Здесь "partition_number" — номер раздела, который вы хотите изменить, а "new_size" — новый размер раздела. Вы можете указать новый размер в мегабайтах (M), гигабайтах (G) или терабайтах (T).
Например, если вы хотите увеличить раздел "/dev/sda1" до размера 50 ГБ (гигабайт), выполните следующую команду:
```
resizepart 1 50G
```
## Подтверждение и применение изменений
После указания нового размера раздела в команде "resizepart" утилита parted попросит вас подтвердить изменения. Убедитесь, что все данные были сохранены на безопасном носителе, и введите "Yes" для применения изменений.
## Пересоздание файловой системы
После успешного изменения размера раздела требуется пересоздать файловую систему на разделе. Наиболее распространенными типами файловых систем в Debian 11 являются EXT4 и XFS.
Чтобы пересоздать файловую систему на разделе, выполните соответствующую команду для выбранного типа файловой системы:
```
sudo mkfs.ext4 /dev/sdxy
```
или
```
sudo mkfs.xfs /dev/sdxy
```
Здесь "/dev/sdxy" — путь к разделу, который вы изменили и хотите пересоздать файловую систему. Обязательно замените "sdxy" на фактический путь к вашему разделу.
## Проверка изменений
После пересоздания файловой системы выполните команду "print" для проверки изменений размера раздела:
```
print
```
Убедитесь, что новый размер раздела отображается правильно.
## Завершение
После успешного изменения размера раздела с помощью утилиты parted вы можете перезагрузить систему или применить изменения, необходимые для распознавания нового размера раздела конкретными программами или службами.
В заключение, утилита parted является мощным инструментом для изменения размера разделов в Debian 11. Однако не забывайте, что изменение размера раздела может быть критической операцией, и выполнение резервного копирования данных перед началом процесса является обязательным. Также рекомендуется ознакомиться с документацией Debian и документацией по использованию parted для получения дополнительной информации и инструкций.
https://serverspace.uz/support/help/opisanie-uslugi-monitoring.mdЧто такое услуга мониторинг доступности и работоспособности оборудования и в каких случаях стоит ее использовать
[Услуга "Мониторинг"](https://my.serverspace.ru/monitoring) позволяет контролировать доступность серверов и сайтов из разных точек земного шара. К системе можно подключить любые физические или виртуальные серверы, арендуемые у разных провайдеров, и доменные имена.
Суть мониторинга очень проста ‒ получить своевременную информацию о проблемах доступности и работоспособности вашего оборудования. В базовых решениях мониторинга это часто делается путем отправки "пинга" на устройство и ожидания ответа. Если ответ получен, то системный администратор может быть уверен, что сервер или сайт доступны пользователям.
Более продвинутые решения для мониторинга позволяют детально просматривать рабочие статусы различных сервисов, например, web-сервера или почтовой службы, это у нас называется метриками.
https://serverspace.uz/support/help/podklyuchenie-metrik-k-monitoringu.mdДобавление отслеживания различных метрик для хоста или домена, описание статусов метрик услуги Мониторинга в ПУ облачного провайдера Serverspace
В рамках услуги "**Мониторинг"** вы можете добавить отслеживание различных метрик для хоста. Для этого подключите хост или домен и на вкладке **Метрики** используйте кнопку **Создать метрику**.
В открывшемся окне введите имя метрики, выберете нужный протокол и при необходимости заполните дополнительные поля. Поле **Ожидаемый ответ** можно оставить пустым, в этом случае любой полученный ответ будет считаться ожидаемым, также здесь можно ввести требуемый специфический код. Все метрики наследуют точки проверок хоста. При необходимости имеется возможность также включить уведомления на почту об изменении статуса метрики, поставив галочку в соответствующем поле. Нажмите **Создать метрику**.
Созданная метрика, ее статус, тип и отметка времени последней проверки отобразятся в списке метрик. Для удаления метрики нажмите справа на крестик.
_Важно: при удалении метрики будет удалена вся ее история._
__
Статусы метрик
В нашем сервисе приняты следующие обозначения статусов метрик.
| | Метрика |
| --- | --- |
| | Метрика отвечает |
| | Метрика не отвечает |
### Просмотр истории
Для просмотра истории метрик и доступности хоста откройте вкладку История. На ней в хронологическом порядке отображаются статус запроса, тип, временная отметка и точка проверки. При необходимости можно отфильтровать этот список по нужным критериям.
_Примечание: тип проверки, который помечен как Хост ‒ проверка условия доступности хоста._
https://serverspace.uz/support/help/kak-podklyuchit-khost-domen.mdИнструкция по подключению хоста или домена к услуге «Мониторинг» в панели управления Serverspace
Для подключения хоста или домена к услуге мониторинга необходимо в панели управления в вертикальном меню выбрать **Мониторинг**. В открывшемся окне с помощью кнопки **Добавить хост** добавьте сервер или домен для мониторинга.
- Введите **ip-адрес машины или доменное имя**, которое необходимо отслеживать. Хост может любой, не обязательно арендуемый в нашем сервисе.
- Выберете **Правило проверки** в выпадающем списке, например, PING.
- Укажите **Время ожидания отклика** - время, в течении которого ожидается отклик. Если за это время отклик не получен, то считаем, что хост/домен недоступен.
- Укажите **Периодичность запросов** - время, через которое необходимо опять выполнить проверку доступности.
- Выберете **Точки проверки** - географические объекты, из ЦОДов которых будут отправляться запросы. Точка может быть как одна, так и несколько, по умолчанию выбраны все доступные.
Далее заполните условие для проверки доступности:
При необходимости вы можете включить уведомления на почту об изменении статуса хоста, поставив галочку в соответствующем поле.
После заполнения условия нажмите кнопку **Добавить**.
В списке появится созданный хост мониторинга, его статус и отметка времени последней проверки. Актуализировать статус можно с помощью круговой стрелки. Также можно отключить мониторинг хоста с помощью тумблера, например, во время плановых работ.
Для изменения условия проверки перейдите в настройки хоста щелчком левой кнопкой мыши по ip-адресу или доменному имени. При внесении изменений не забудьте их сохранить.
### Статусы хоста
В нашем сервисе приняты следующие обозначения статусов хоста. Значение статуса хоста зависит от статуса условия проверки и метрик.
| | Хост |
| --- | --- |
| | Хост доступен, условие проверки выполняется, и все метрики отвечают |
| | Хост недоступен, условие проверки не выполняется, метрики могут как отвечать, так и не отвечать |
| | Хост доступен, условие проверки выполняется, но некоторые метрики не отвечают |
### Удаление хоста
Для удаления хоста на вкладке **Удалить** подтвердите свое действие и нажмите кнопку **Удалить**.
https://serverspace.uz/support/help/kak-sgenerirovat-csr-zapros.mdОписание методов создания CSR-запроса с помощью OpenSSL или IIS, а также инструкция по генерации CSR-запроса с помощью сторонних сервисов
## Что такое CSR-запрос
**CSR (Certificate Signing Request)** — это запрос на выпуск SSL-сертификата, необходимый шаг в процедуре его выпуска. Сам запрос - это простой текстовый файл, в котором зашифрованы информация об администраторе домена и открытый ключ выпускаемого сертификата. Впоследствии файл запроса необходимо будет передать в удостоверяющий центр для завершения процесса выпуска SSL-сертификата.
## Как сформировать CSR-запрос
Все существующие на сегодняшний день способы генерации CSR-запроса можно условно разделить на выполняемые самостоятельно и те, что делаются с помощью того или иного "стороннего" сервиса. Далее мы разберем каждый из них:
## Самостоятельная генерация с помощью OpenSSL
Как правило, данный способ применяется на серверах под управлением Linux. Далее мы покажем как создать запрос на примере ОС Ubuntu 20.04.
Установим пакет OpenSSL:
```bash
apt-get update && apt install -y openssl
```
Сгенерируем файл-запрос:
```
openssl req -new -newkey rsa:4096 -nodes -keyout serverspace.ru.key -out serverspace.ru.csr
```
В процессе формирования запроса вам нужно будет заполнить ряд полей (страна, город, организация, отдел, доменное имя сервера, адрес email).
После того, как запрос сформирован, содержимое файла можно скопировать прямо с экрана или скопировать, например, через SCP:
## Самостоятельная генерация с помощью IIS
Если вы используете сервер с ОС Windows, то можно сформировать CSR-запрос, используя ее службы. Для этого откройте консоль IIS, перейдите в раздел **Server Certificates**, нажмите **Create Certificate Request **и заполните необходимые поля:
Выберите длину ключа:
Наконец, выберите место сохранения файла-запроса:
## Формирование CSR-запроса с помощью сторонних сервисов
Сегодня в сети существует множество сайтов, предлагающих сформировать CSR-запрос. Этот метод предельно прост, как правило достаточно вбить в форму все те же самые поля (страна, город, организация, отдел, доменное имя сервера, email-адрес) и файл будет сформирован, однако следует отдавать себе отчет в том, что если вы что-то не контролируете, значит тем самым создаете потенциальную брешь в безопасности своего проекта. По этой причине разбирать работу какого-либо из таких сервисов или рекомендовать их мы не можем. Лучше использовать самостоятельную генерацию как указано выше.
Подборки SSL-сертификатов: [DV сертификат для домена](https://serverspace.uz/services/ssl/dv/), [EV сертификат "зеленая строка"](https://serverspace.uz/services/ssl/ev/), [WC сертификат для поддоменов](https://serverspace.uz/services/ssl/wc/), [SAN мультидоменный сертификат](https://serverspace.uz/services/ssl/san/).
https://serverspace.uz/support/help/tipy-proverki-pri-poluchenii-ssl.mdОписание способов валидации SSL сертификатов: проверка домена (Domain Validation — DV), расширенная проверка (Extended Validation — EV), проверка организации (Organization Validation — OV)
**SSL (Secure Sockets Layer)**, или защищенный протокол передачи данных, является важным механизмом обеспечения безопасности в интернете. Он защищает данные, передаваемые между сервером и клиентом, шифруя их и обеспечивая целостность передачи. Однако, прежде чем получить SSL-сертификат, необходимо пройти процесс проверки. В этой статье мы рассмотрим различные типы проверки, используемые при получении SSL-сертификата.
## Проверка домена (Domain Validation, DV)
Проверка домена является самым простым типом проверки SSL. Она выполняется для установки подлинности домена, для которого запрашивается сертификат. При проверке домена проверяется, что заявитель является владельцем или имеет уполномоченный доступ к указанному доменному имени. Обычно проверка осуществляется путем отправки электронной почты на адрес, зарегистрированный в DNS-записи домена, или посредством добавления специальной записи DNS на сервере.
## Проверка организации (Organization Validation, OV)
Проверка организации идет дальше, чем проверка домена. Она включает в себя проверку подтверждения организации, от которой запрашивается сертификат. В этом случае необходимо предоставить дополнительные документы и информацию о компании, подтверждающие ее легитимность и владение доменом. Это включает в себя проверку выписки из реестра компаний, юридические документы и подтверждение идентификации заявителей.
## Проверка расширенной проверки (Extended Validation, EV)
Расширенная проверка является самым строгим типом проверки при получении SSL-сертификата. Она включает в себя самые высокие стандарты проверки и обеспечивает наиболее высокий уровень доверия. При проверке расширенной проверки требуется выполнение определенных критериев, определенных кабинетом авторитета сертификации. Эта проверка включает тщательную проверку документов и информации о компании, а также личную встречу с заявителем для подтверждения их личности и полномочий. В результате проведения расширенной проверки, сертификаты с расширенной проверкой (EV SSL) отображают дополнительные сведения о компании в адресной строке браузера, такие как название организации и страну, что повышает доверие пользователей и улучшает видимость организации. Выбор типа проверки SSL-сертификата зависит от потребностей и бюджета компании. Для небольших интернет-проектов, требующих только базовой проверки, может быть достаточно доменной проверки (DV SSL). Для более крупных предприятий, особенно тех, которые работают с конфиденциальной информацией клиентов, рекомендуется использовать более высокие уровни проверки (OV SSL или EV SSL).
## Резюме
Для обеспечения безопасной передачи данных в интернете, важно получить SSL-сертификат. При этом следует выбрать подходящий тип проверки в зависимости от требований вашей организации. Это поможет убедить пользователей в безопасности обмена данными и укрепит доверие к вашему веб-сайту или веб-приложению.
https://serverspace.uz/support/help/kak-sozdat-virtualnyj-server.mdПошаговая инструкция по созданию виртуального сервера VPS в инфраструктуре Serverspace – всего несколько минут на развертывание сервера
В Serverspace представлен большой выбор услуг по созданию и управлению серверами в облаке. [Создать высокопроизводительный VPS сервер](https://serverspace.uz/services/vps-server.md) можно буквально в несколько простых шагов.
**VPS** — виртуальный выделенный сервер с доступом через облачные технологии, ресурсы которого можно масштабировать. Одним из основных преимуществ VPS является возможность получить выделенные ресурсы, такие как процессор, оперативную память, дисковое пространство и ширину канала, что позволяет обеспечить более стабильную работу веб—сайтов и приложений. Кроме того, VPS серверы дают большую свободу в выборе операционной системы и программного обеспечения, установку которых можно производить в соответствии с требованиями проекта.
Ниже представлены основные действия для создания и управления VPS сервером, которые помогут вам быстро начать работу.
## Регистрация
Перед созданием сервера и выбором его конфигурации необходимо пройти [быструю регистрацию](https://serverspace.ru/support/help/registracziya-v-paneli-upravleniya-serverspace/). Пройдя этот этап, введите данные в поля "Email" и "Пароль":
## Создание машины
После авторизации откроется главная панель сайта, в которой можно выбрать подходящее облачное решение.
VMware Cloud и Vstack Cloud — это облачные решения, предоставляемые компанией Serverspace. Они основаны на технологиях виртуализации VMware и vStack соответственно:
- **VMware Cloud** — это облачное решение, которое позволяет запускать виртуальные машины на инфраструктуре VMware vSphere. Обеспечивает высокую производительность, надежность и безопасность для вашего приложения. Вы также можете легко масштабировать свои ресурсы и управлять ими через веб — интерфейс.
- **vStack Cloud** — это облачное решение, построенное на базе гиперконвергентной платформы виртуализации vStack для создания и управления облачной инфраструктурой. Это обеспечивает большую гибкость и масштабируемость.
В меню слева перейдите во вкладку **Серверы** и нажмите **Создать сервер**.
В зависимости от выбранного облачного решения вам будут доступны разные возможности в панели для создания сервера.
## VMware cloud
Перед вами откроется панель создания и конфигурации VPS. Перед началом нужно выбрать шаблон для сервера.
**Шаблон** — это набор настроек и конфигураций, с которыми будет создан и запущен ваш сервер. В панели Serverspace доступны самые популярные серверные операционные системы семейства Linux, Windows и FreeBSD.
**Конфигурация сервера** — настройка мощностей вашего VPS. В данном облачном решении возможна гибкая конфигурация основных ресурсов. В зависимости от необходимых потребностей автоматически меняется итоговая стоимость:
- количество ядер процессора (CPU, шт);
- объем оперативной памяти (RAM, Gb);
- тип и объем дискового подпространства (Storage, GB, SSD/SAS);
- ширину канала связи (гарантированное значение, ниже которого показатель не может опускаться, Mbit/s);
**Центр обработки данных (ЦОД)** — географическое местоположение заказываемого сервера. ЦОДы располагаются в специально построенных зданиях, которые соответствуют всем необходимым требованиям по безопасности, питанию, охлаждению, пожарной системе и другим параметрам. При выборе облачного решения "VMware cloud" становятся доступны ЦОДы представленные на скриншоте ниже:
Спустившись чуть ниже по странице вам нужно будет заполнить еще несколько полей:
****
- **Резервное копирование** — [функция представляет собой](https://serverspace.ru/support/help/rezervnoe-kopirovanie/) процесс полного дублирования сервера с определенной периодичностью.
- **Способ аутентификации** — проверка подлинности доступна в двух вариантах: [по SSH](https://serverspace.ru/support/help/kak-sozdat-ssh-klyuch/), что более безопасно. И по стандартному логину/паролю.
****
- **Имя сервера** — обозначьте, как будет называться ваш VPS.
****
- **Количество серверов** — укажите необходимое количество серверов, которые будут созданы по указанному вами шаблону параметров выше.
В итоге всех манипуляций и законченной конфигурации, калькулятор на сайте подсчитает необходимую сумму к оплате за месяц/день/час использования и обслуживания сервера/сетевого оборудования. Списание будет происходить по модели Pay—as—you—go, с периодом в десять минут.
## vStack cloud
Порядок действий, при создании сервера максимально идентичный, однако, в данном облачном решении есть ряд явных отличий.
Больший выбор местоположения ЦОДов: Казахстан, Нидерланды, Россия, США, Канада, Турция, Бразилия и скоро появятся Объединенные Арабские Эмираты:
Помимо гибкого калькулятора, здесь вы можете выбрать **конфигурацию сервера**, которая будет соответствовать вашим запросам.
По умолчанию серверу выдается адрес IPv4 — бесплатно. Однако есть возможность подключить до 4 дополнительных IPv4 адресов на коммерческой основе.
Еще одним отличием является наличие таких вкладок как:
- **Группы Affinity** — предоставляют возможность разместить сервера на разных или одном пуле локаций в зависимости от ваших потребностей.
- **Приложения** — функция, позволяющая при создании сервера установить готовое к работе ПО. Приложения автоматически развернуться на виртуальной машине после нажатия кнопки "Создать":
На сайте доступен выбор основного ПО, которое решает большой круг задач: начиная от WordPress, заканчивая фреймворками.
## Итог
После выбора настроек создание и запуск сервера занимает пару минут, после чего он готов к работе. Для подключения используйте данные или ПО, в зависимости от выбранного способа аутентификации. Serverspace предоставляет удобный интерфейс для управления сервером. Кроме того, на сайте есть множество инструкций и руководств по его настройке и управлению в [базе знаний](https://serverspace.uz/support/help.md).
https://serverspace.uz/support/help/ustanovka-prilozhenija-authy.mdУстановка и настройка приложения Authy на различные мобильные операционные системы (Android, iOS) и на рабочий стол Windows и для macOS
В инструкции описан процесс установки приложения Google Authenticator на различные мобильные операционные системы (Android, iOS), на рабочий стол Windows (также доступно на macOS), а также его использование при подключении к панели управления.
## Authy — что это такое?
Приложение Authy обеспечивает двухфакторную аутентификацию (2FA). 2FA - дополнительный уровень безопасности, используемый для подтверждения пользователей, пытающихся получить доступ к онлайн-учетной записи. Сначала, пользователь вводит свои логин и пароль. Затем, вместо того, чтобы немедленно получить доступ, он должен будет предоставить другую информацию, например:
- дополнительные сведения (персональный идентификационный номер (ПИН), пароль, ответы на "секретные вопросы" или конкретная последовательность нажатия клавиш);
- подтверждение владения (как правило, пользователь имеет что-то в своем распоряжении, например, кредитную карту, смартфон или небольшой аппаратный токен);
- биометрические данные (эта категория немного более продвинута и может включать биометрический рисунок отпечатка пальца, сканирование диафрагмы или голосовую печать).
Таким образом, даже если у вас украден пароль или потерян телефон, вероятность того, что кто-то другой получит доступ к вашей информации маловероятен.
У приложения Authy есть широкий набор дополнительных функций: создание резервной копии базы, шифрование данных и резервных копий в облаке без сохранения паролей, использование приложения на нескольких устройствах.
## Установка Authy на Android
[step num="1"]
Для установки приложения на операционную систему Android достаточно просто скачать его в магазине [GooglePlay](https://play.google.com/store/apps/details?id=com.authy.authy):
[/step]
Скриншот №1. Приложение в GooglePlay
[step num="2"]
После установки приложения, необходимо указать код страны, ваш мобильный номер и почтовый адрес:
[/step]
Скриншот №2. Ввод данных
[step num="3"]
Далее необходимо подтвердить введенный телефон, выберете наиболее удобный способ: звонок оператора или СМС:
[/step]
Скриншот №3. Подтверждение телефона
[step num="4"]
После можно переходить к добавлению аккаунта. В ОС Android сделать скриншот окна с аккаунтами не представляется возможным из-за политики безопасности, но оно является аналогичным iOS. Нажмите на **+** в центре окна. Вам будет предложено хранить зашифрованные копии в облаке Authy. Рекомендуем включить резервирование, т.к. при утере устройства, вы сможете без проблем восстановить данные. Введите и подтвердите пароль, затем нажмите **Enable Backups**:
[/step]
Скриншот №4. Подключение резервирования
[step num="5"]
Доступно два способа добавления аккаунта: сканировать штрихкод и ввести ключ. Наиболее удобным является сканирование (**Scan QR code**) - перед вами откроется камера, где в выделенный квадрат необходимо поместить QR-код, который будет распознан автоматически, а аккаунт сразу добавлен:
[/step]
Скриншот №5. Добавление аккаунта
## Установка Authy на iOS
[step num="6"]
Для установки приложения на операционную систему iOS достаточно скачать его в [AppStore](https://itunes.apple.com/us/app/authy/id494168017):
[/step]
Скриншот №6. Приложение в AppStore
[step num="7"]
После установки приложения, необходимо указать код страны, ваш мобильный номер и почтовый адрес. После ввода нажмите OK:
[/step]
Скриншот №7. Ввод данных
[step num="8"]
Далее необходимо подтвердить введенный телефон, выберете наиболее удобный способ: звонок оператора или СМС:
[/step]
Скриншот №8. Подтверждение телефона
[step num="9"]
После можно переходить к добавлению аккаунта. Нажмите на **+** в центре окна:
[/step]
Скриншот №9. Настройки аккаунта
[step num="10"]
Вам будет предложено хранить зашифрованные копии в облаке Authy. Рекомендуем включить резервирование, т.к. при утере устройства, вы сможете без проблем восстановить данные. Введите пароль и нажмите **Enable Backups**:
[/step]
Скриншот №10. Подключение резервирования
[step num="11"]
Затем подтвердите пароль:
[/step]
Скриншот №11. Подтверждение пароля
[step num="12"]
Доступно два способа добавления аккаунта: сканировать штрихкод и ввести ключ. Наиболее удобным является сканирование (**Scan QR code**) - перед вами откроется камера, где в выделенный квадрат необходимо поместить QR-код, который будет распознан автоматически, а аккаунт сразу добавлен:
[/step]
Скриншот №12. Добавление аккаунта
## Установка Authy на рабочий стол Windows
Примечание: в данной версии продукта не доступно сканирование QR-кода, но возможно использование добавленных с мобильных приложений аккаунтов.
[step num="13"]
Для того, чтобы установить приложение, загрузите нужную версию с [сайта разработчика](https://authy.com/download/) и запустите файл установки:
[/step]
Скриншот №13. Загрузка приложения с сайта разработчика
[step num="14"]
При возникновении следующего предупреждения выберете **Выполнить в любом случае**:
[/step]
Скриншот №14. Предупреждение безопасности Windows
[step num="15"]
После установки необходимо ввести код страны, ваш номер и нажать **Next**:
[/step]
Скриншот №15. Ввод данных
[step num="16"]
Выполните подтверждение любым доступным способом:
[/step]
Скриншот №16. Подтверждение данных
[step num="17"]
Далее отобразится окно с доступными аккаунтами:
[/step]
Скриншот №17. Доступные аккаунты
## Использование приложения Authy для подключения к панели управления
[step num="18"]
После установки приложения на вашу систему откройте в панели управления раздел **Настройка профиля** -> **Безопасность**. На открывшейся странице выберете Двухфакторную аутентификацию через приложение:
[/step]
Скриншот №18. Настройки безопасности
[step num="19"]
Перед вами откроется штрихкод. Далее в приложении Authy выберете сканирование QR-кода (**Scan QR code**). После того как откроется камера, поместите штриход в выделенный квадрат на экране приложения, который будет распознан автоматически.
Приложение сгенерирует шестизначный код, который необходимо ввести в поле:
[/step]
Скриншот №19. Сканирование штрихкода
[step num="20"]
После ввода кода вы увидите, что двухфакторная аутентификация подключена через приложение:
[/step]
Скриншот №20. Подключение Двухфакторной аутентификации
[step num="21"]
Теперь для входа в панель управления необходимо указать код из приложения:
[/step]
Скриншот №21. Вход в панель управления
## Отключение двухуровневой аутентификации для входа в панель управления
[step num="22"]
Для отключения опции Двухфакторная аутентификация в панели управления перейдите в раздел **Настройка профиля** -> **Безопасность**.Чтобы ее отключить нажмите **Отключить**:
[/step]
Скриншот №22. Отключение двухфакторной аутентификации
[step num="23"]
Подтвердите свои действия:
[/step]
Скриншот №23. Подтверждение действия
Теперь 2FA отключена.
https://serverspace.uz/support/help/ustanovka-google-authenticator.mdИнструкция по установке и настройке приложения Google Authenticator на различные мобильные операционные системы (Android, iOS)
Google Authenticator - бесплатное приложение для мобильных устройств, которое создаёт одноразовые коды для двухфакторной аутентификации на различных онлайн-сервисах. В этой инструкции мы расскажем, как настроить и использовать Google Authenticator на вашем мобильном устройстве, а так же приведем примеры аналогов для ПК.
Authenticator использует текущее время для генерации кодов с помощью алгоритма временных кодов (TOTOP). Коды обновляются каждые несколько секунд, поэтому, если вы введете код после истечения времени действия, он не будет работать. В добавок, каждый код используется только один раз. Это значит что никто не сможет использовать коды, использованные вами ранее чтобы получить доступ к вашей учётной записи.
Приложение можно использовать для безопасной аутентификации на различных онлайн-сервисах, таких, как Google, Facebook, Dropbox, Github, и многих других.
## Установка приложения
Откройте App Store или Google Play на своем мобильном устройстве.
В поисковой строке найдите приложение Google Authenticator.
Нажмите кнопку "Установить" и дождитесь завершения загрузки.
## Добавление аккаунта
Открыв приложение нажмите на кнопку "Добавить аккаунт", это можно сделать двумя способами. Если вы выбрали "Сканирование QR-кода", то наведите камеру на QR-код, полученный от сервиса, для которого вы хотите использовать Googlem Authenticator.
Если вы выбрали способ "Ввод ключа вручную", то введите ключ, который вы получили от сервиса.
Некоторые сервисы могут попросить код подтверждения который покажет приложение.
Введите название аккаунта (например,"Google" или "Facebook") и сохраните настройки.
Готово.
## Использование приложения
Откройте приложение Google Authenticator.
Выберите нужный аккаунт.
Теперь, когда мы подключили двухфакторную аутентификацию, после ввода обычных логина/пароля сервис в который мы захотим войти потребует от нас ввод одноразового кода сгенерированного приложением.
Теперь вы знаете как установить и использовать Google Authenticator.
## Альтернативные решения для ПК
В качестве аутентификатора на ПК можно использовать приложения вроде [WinAuth](https://winauth.github.io/winauth/download.html) или [TWilio Authy](https://authy.com/guides/twilio/) (так же работает на Linux) и расширения для браузера, например [Authenticator](https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai).
Давайте рассмотрим последний.
Для установки выбираем свой браузер из выпадающего списка и устанавливаем расширение из соответствующего магазина, далее пользуемся им аналогично мобильному приложению.
Для добавления аккаунтов выбираем в правом верхнем углу "редактировать" → "добавить".
Выбираем способ добавления, если нужно сканировать QR-код выделяем его на экране выбрав соответствующую опцию.
## Пример использования аутентификатора с профилем сервиса Serverspace
Откройте свою учетную запись на сайте Serverspace и нажмите на иконку профиля. Выберите "настройки" в открывшемся меню, идем во вкладку "безопасность" и под пунктом двухфакторной аутентификация выберите "подключить".
Сканируйте QR-код, который вам покажут с помощью приложения. Введите одноразовый код, сгенерированный приложением в поле под QR-кодом. Нажмите кнопку "подтвердить".
Теперь ваш профиль Serverspace будет защищен с помощью двух факторной аутентификиции.
## Чтобы отключить Google Authenticator, в Serverspace
Откройте свою учетную запись на сайте Serverspace и нажмите на иконку профиля. Выберите "Настройки" в открывшемся меню идем во вкладку безопасность и под пунктом двухфакторная аутентификация выберите "отключить".
Подтвердите свой выбор, после этого можно удалить сервис в приложении.
Для этого откройте приложение. Выберите аккаунт, который хотите удалить. Нажмите значок "..." в правом верхнем углу экрана. Нажмите на "Удалить". Подтвердите удаление аккаунты.
## Заключение
Сегодня мы рассмотрели использование приложения Google Authenticator, а так же разобрали как воспользоваться им для защиты доступа в аккаунт Serverspace.
https://serverspace.uz/support/help/uvelichenie_diskovogo_prostranstva_debian_7.mdИнструкция по расширению диска в ОС Debian после расширения дискового пространства в панели управления Serverspace. Откройте терминал под пользователем root.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
Откройте терминал (см. [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
```
root@Debian7x64:~# echo 1 > /sys/block/sda/device/rescan
```
Запустите утилиту parted:
```
root@Debian7x64:~# parted
```
Далее выполните команды в интерфейсе утилиты parted:
```
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: ZZ.ZGB
...
```
Запоминаем размер диска ZZ.ZGB
```
(parted) resize
Partition number? 2
```
Значение "Start" оставляем по умолчанию - нажимаем Enter
```
Start? [XXXMB]?
```
Значение "End" - вводим новый размер диска в гигабайтах - значение из вывода (parted) p, которое запомнили ранее
```
End? [YY.YGB]? ZZ.ZGB
```
Выходим из parted:
```
(parted) quit
```
Отобразится следующая информация:
```
Information: You may need to update /etc/fstab.
```
Запустите fdisk:
```
root@Debian7x64:~# fdisk /dev/sda
```
Далее выполните команды в интерфейсе утилиты fdisk:
Создаем раздел:
```
Command (m for help): n
```
Выбираем тип раздела - логический (L)
```sql
Select (default p): l
```
```
Adding logical partition X
```
Запомните номер раздела, созданный в ходе выполнения команды (в примере обозначено как X)
Принимаем значения по умолчанию - нажимаем два раза Enter:
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Меняем тип раздела, при этом указываем номер раздела, который мы запомнили ранее(в примере обозначено как X)
```
Command (m for help): t
Partition number (1-X): X
Hex code (type L to list codes): 8e
...
Command (m for help): w
```
Сообщаем ядру об изменениях:
```
root@Debian7x64:~# partx -v -a /dev/sda
```
В отобразившемся ответе видим строку
```
...
/dev/sda: partition #X added
...
```
Инициализируем раздел, вместо Х опять используем номер раздела, который мы запомнили ранее
```
root@Debian7x64:~# pvcreate /dev/sdaX
```
```
Physical volume "/dev/sdaX" successfully created
```
Добавляем физический раздел к существующей группе томов:
```
root@Debian7x64:~# vgextend debian /dev/sdaX
```
```
Volume group "debian" successfully extended
```
Расширяем логический том
```
root@Debian7x64:~# lvextend -l +100%FREE /dev/debian/root
```
```
Extending logical volume root to YY.ZZ GiB
Logical volume root successfully resized
```
Расширяем файловую систему
```
root@Debian7x64:~# resize2fs /dev/debian/root
```
Готово.
https://serverspace.uz/support/help/natrojka_setevogo_adaptera_ubuntu.mdПодробная инструкция по настройке сетевого адаптера в Ubuntu и Debian для корректной работы виртуального сетевого адаптера в частной сети
После подключения сервера к частной сети в панели управления на него будет добавлен дополнительный виртуальной сетевой адаптер. Для того, чтобы подключенный интерфейс начал корректно работать, его необходимо настроить.
Подключитесь к виртуальному серверу с правами суперпользователя и выполните команду:
```
ifconfig -a
```
В результате отобразится список подключенных интерфейсов:
```yaml
ens160 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.xxx Mask:255.255.255.0
inet6 addr: yyyy::yyy:yyy:yyyy:yyy/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7011 errors:0 dropped:0 overruns:0 frame:0
TX packets:2862 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6661547 (6.6 MB) TX bytes:234861 (234.8 KB)
ens192 Link encap:Ethernet HWaddr 00:50:56:01:2e:ca
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:160 errors:0 dropped:0 overruns:0 frame:0
TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB)
```
В настройках сети найдите поле **MAC** со значением параметра **HWaddr** из вывода списка сетевых интерфейсов. Запоминаем название интерфейса, в данном случае это **ens192**.
_Важно: до настройки адаптера в операционной системе обратите внимание на то, активирована ли в панели управления опция DHCP для вашей сети. Это можно посмотреть в параметрах сети._
Для изменения настроек сетевого интерфейса откройте файл /etc/network/interfaces:
```
nano /etc/network/interfaces
```
### DHCP активирована
Если при создании частной сети вы активировали опцию DHCP, то в настройках сетевого адаптера Ubuntu/Debian укажите параметр автоматического получения сетевых настроек:
```
auto ens192
iface ens192 inet dhcp
```
### DHCP отключена
Если функция DHCP отключена, то укажите параметры интерфейса вручную, как показано в примере ниже, локальный адрес маску подсети можно найти в настройках сети в панели управления:
```
auto ens192
iface ens192 inet static
address 10.0.1.2
netmask 255.255.255.0
```
После сохранения изменений и выхода из текстового редактора, необходимо перезапустить сетевую службу, где ens192 - это имя адаптера, которое вы запомнили:
```
ifdown ens192 && ifup ens192
```
Для проверки корректности настроек сетевого адаптера выполните команду ping на адрес шлюза, указанный в панели управления, например:
```
ping 10.0.1.1
```
https://serverspace.uz/support/help/nastrojka-setevogo-adaptera-windows.mdКак настроить сетевой интерфейс в Windows: конфигурация сетевого адаптера после подключения сервера к частной или публичной сети.
Руководство по настройке сетевого подключения в Windows Server.
## Шаг 1
Заходим непосредственно на сервер при помощи RDP, далее находим Центр сетей и общего доступа. Сделать это можно, нажав
правой кнопкой на значок "сетевые подключения" в правом нижнем углу экрана, как на скриншоте:
В появившемся окне отмечаем требуемый адаптер. Затем появится окно статуса адаптера.
Чтобы убедиться в правильности отмеченного адаптера откроем подробности на вкладе "Details".
Сравним поля "Physical address" и "MAC" непосредственно в этой вкладке :
## Шаг 2
В случае, когда создание сети было выполнено с включенным параметром "DHCP", то непосредственно IP-адрес назначается автоматически. Проверяется там же в свойствах сети :
## Шаг 3
В случае, когда параметр не был активирован, то настройка IP адреса выполняется непосредственно вручную. Посмотрим свойства ("Properties") сетевой карты.
Выберем пункт "IPv4" и кликнем "Properties":
Затем необходимо ввести полученный IP-адрес в поле "IP address", а маску подсети в соответствующее поле "Subnet mask". Для просмотра всех указанных данных необходимо перейти в раздел "Сеть" на панели настроек или непосредственно в меню "Сеть":
После внесения изменений следует сохранить их.
## Шаг 4
Для проверки настроек сетевой карты следует использовать утилиту "ping", указав адрес шлюза по умолчанию в качестве цели. Это можно сделать, перейдя в командную строку и введя соответствующую команду. К примеру:
```
ping 10.0.1.1
```
Если "пинг" проходит успешно, значит настройка сетевой карты выполнена корректно. Если же возникают ошибки, необходимо сверить настройки адаптера и внести соответствующие изменения.
Замечание: Чтобы проверить правильность настроек, можно выполнить "ping" на другой локальный сервер в Windows Server 2016:
https://serverspace.uz/support/help/natrojka_setevogo_adaptera_centos.mdПодробная инструкция по настройке сетевого адаптера в CentOS. Настройка сетевого интерфейса на VPS с ОС CentOS после подключения к публичной или частной сети.
После подключения VPS с операционной системой Centos к частной или публичной сети необходимо выполнить настройку сетевого интерфейса.
### Шаг 1
[step num="1"]
Подключитесь к виртуальному серверу с правами суперпользователя и выполните команду:
```
ifconfig -a
```
[/step]
Перед вами отобразится список доступных адаптеров следующего вида:
```yaml
eth0: flags=4163 mtu 1500
inet 5.200.47.73 netmask 255.255.255.0 broadcast 5.200.47.255
inet6 fe80::250:56ff:fe01:29a9 prefixlen 64 scopeid 0x20
ether 00:50:56:01:29:a9 txqueuelen 1000 (Ethernet)
RX packets 760 bytes 57362 (56.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 101 bytes 12839 (12.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163 mtu 1500
inet6 fe80::8f6:6de2:ec53:e800 prefixlen 64 scopeid 0x20
ether 00:50:56:01:03:59 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 3580 (3.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 64 bytes 5184 (5.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 64 bytes 5184 (5.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
```
[step num="1"]В настройках сети найдите поле **MAC** со значением параметра **ether** из вывода списка сетевых интерфейсов. Запомните название нового интерфейса, в нашем случае это eth1. Настроенный адаптер, который имеет выход в Интернет - eth0.
### Шаг 2
[step num="2"]
Перейдите в каталог, где находятся конфигурационные файлы сетевых интерфейсов:
```
cd /etc/sysconfig/network-scripts/
```
[/step]
[step num="3"]
Скопируйте конфигурационный файл существующего интерфейса, указав имя нового интерфейса:
```
cp ifcfg- ifcfg-
```
Например:
```
cp ifcfg-eth0 ifcfg-eth1
```
[/step]
### Шаг 3
[step num="4"]
Необходимо проверить, активирована ли опция DHCP. Это можно сделать в настройках сети в панели управления.
[/step]
### Шаг 4 - Если DHCP включен
[step num="5"]
Откройте скопированный файл на редактирование с помощью текстового редактора, например vi:
```
vi ifcfg-
```
Например:
```
vi ifcfg-eth1
```
[/step]
[step num="6"]
Внесите исправления, указав собственные значения, которые можно найти в панели управления:
```
HWADDR=
NAME=
DEVICE=
ONBOOT=yes
USERCTL=no
BOOTPROTO=dhcp
```
check_link_down() {
return 1;
}
[/step]
[step num="7"]Сохраните изменения.
В итоге содержимое будет выглядеть следующим образом:
```
HWADDR=00:50:56:01:10:cf
NAME=eth1
DEVICE=eth1
ONBOOT=yes
USERCTL=no
BOOTPROTO=dhcp
check_link_down() {
return 1;
}
```
### Шаг 4 - Если DHCP выключен
Откройте скопированный файл на редактирование с помощью текстового редактора, например vi:
```
vi ifcfg-
```
Например:
```
vi ifcfg-eth1
```
Внесите исправления, указав собственные значения:
```
HWADDR=
NAME=
GATEWAY=
DNS1=
DEVICE=
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=
IPADDR=
PEERDNS=no
```
check_link_down() {
return 1;
}
Сохраните изменения и закройте файл.
В итоге содержимое будет выглядеть следующим образом:
```
HWADDR=00:50:56:01:03:59
NAME=eth1
GATEWAY=10.0.1.1
DNS1=10.0.1.1
DEVICE=eth1
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=10.0.1.2
PEERDNS=no
check_link_down() {
return 1;
}
```
### Шаг 5
[step num="8"]
Перезапустите сетевые службы сервера, чтобы изменения вступили в силу:
```bash
service network restart
```
[/step]
[step num="9"]
Для проверки корректности работы выполните команду ping до другого сервера в частной или публичной сети:
```
ping 10.0.1.3
```
https://serverspace.uz/support/help/uvelichenie_diskovogo_prostranstva_ubuntu_12.mdРуководство по увеличению дискового пространства виртуального сервера под управлением Ubuntu 12: список необходимых команд для расширения диска на уровне ОС.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
Откройте терминал (см. [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
```
root@Ubuntu12045x64:~# echo 1 > /sys/block/sda/device/rescan
```
Запустите утилиту parted:
```
root@Ubuntu12045x64:~# parted
```
Далее выполните команды в интерфейсе утилиты parted:
```
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: ZZ.ZGB
...
```
Запоминаем размер диска ZZ.ZGB
```
(parted) resize
Partition number? 2
```
Значение "Start" оставляем по умолчанию - нажимаем Enter
```
Start? [XXXMB]?
```
Значение "End" - вводим новый размер диска в гигабайтах - значение из вывода (parted) p, которое запомнили ранее
```
End? [YY.YGB]? ZZ.ZGBInformation: You may need to update /etc/fstab.
Запустите fdisk:
[code]root@Ubuntu12045x64:~# fdisk /dev/sda
```
Далее выполните команды в интерфейсе утилиты fdisk:
Создаем раздел:
```
Command (m for help): n
```
Выбираем тип раздела - логический (L)
```sql
Select (default p): l
```
```
Adding logical partition X
```
Запомните номер раздела, созданный в ходе выполнения команды (в примере обозначено как X)
Принимаем значения по умолчанию - нажимаем два раза Enter:
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Меняем тип раздела, при этом указываем номер раздела, который мы запомнили ранее(в примере обозначено как X)
```
Command (m for help): t
Partition number (1-X): X
Hex code (type L to list codes): 8e
...
Command (m for help): w
```
Сообщаем ядру об изменениях:
```
root@Ubuntu12045x64:~# partx -v -a /dev/sda
```
В отобразившемся ответе видим строку
```
...
/dev/sda: partition #X added
...
```
Инициализируем раздел, вместо Х опять используем номер раздела, который мы запомнили ранее
```
root@Ubuntu12045x64:~# pvcreate /dev/sdaX
```
```
Physical volume "/dev/sdaX" successfully created
```
Добавляем физический раздел к существующей группе томов:
```
root@Ubuntu12045x64:~# vgextend Ubuntu12045x64-vg /dev/sdaX
```
```
Volume group "Ubuntu12045x64-vg" successfully extended
```
Расширяем логический том
```
root@Ubuntu12045x64:~# lvextend -l +100%FREE /dev/Ubuntu12045x64-vg/root
```
```
Extending logical volume root to YY.ZZ GiB
Logical volume root successfully resized
```
Расширяем файловую систему
```
root@Ubuntu12045x64:~# resize2fs /dev/Ubuntu12045x64-vg/root
```
Готово.
https://serverspace.uz/support/help/uvelichenie_diskovogo_prostranstva_ubuntu_14.mdПодробная пошаговая инструкция о том, как расширить дисковое пространство сервера на Ubuntu 14 с помощью утилиты parted
Часто бывает недостаточно имеющегося количества дискового пространства на сервере, вы можете увеличить размер дисков без потери данных. В панели управления выберете сервер, затем Настройки -> Конфигурация. С помощью ползунка выберете нужный объем:
## Шаг 1
После того, как диск в панели управления был увеличен, необходимо сделать его доступным для Ubuntu 14.
[Откройте терминал](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/) с правами суперпользователя (логин и пароль указаны в состоянии сервера) и выполните проверку.
```
echo 1 > /sys/block/sda/device/rescan
```
Эта команда сканирует текущую аппаратную конфигурацию VPS и передает ОС новый объем винчестера.
## Шаг 2
Запустите утилиту parted:
```
parted
```
Сразу после запуска утилиты вы увидите версию и служебную информацию.
```
GNU Parted 2.3
Using /dev/sda
```
**Важно**: по умолчанию на наших VPS Ubuntu Server 14 установлена версия 2.3 этого программного обеспечения. Данная инструкция разработана для GNU Parted ниже 3.0. Для версий 3.0 и старше используйте следующий [алгоритм](https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-v-ubuntu-16-04/).
Выполните команды в интерфейсе утилиты parted по разметке:
```
(parted) p
```
```
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 10.7GB 10.5GB extended
5 257MB 3220MB 2963MB logical lvm
6 3221MB 10.7GB 7516MB logical lvm
```
Вы получите краткую информацию о текущих настройках дисков и их разделов. Нужно обязательно запомнить размер в формате ZZ.ZGB, в нашем примере это 21.5GB и номер раздела, в нашем примере это 2 (см. изображение выше).
Запускаем команду для изменения раздела:
```
(parted) resize
Partition number? 2
```
Значение "**Start**" оставляем по умолчанию - нажимаем Enter.
```
Start? [XXXMB]?
```
Значение "**End**" - вводим новый размер в гигабайтах - значение, которое запомнили ранее. Таким образом системой будет использовано все возможное пространство.
```
End? [YY.YGB]? ZZ.ZGB
```
Выходим из командной строки утилиты:
```
(parted) quit
```
Отобразится следующая информация:
```
Information: You may need to update /etc/fstab.
```
## Шаг 3
Запустите fdisk, указав в качестве аргумента имя диска, объем которого мы фиксировали в памяти:
```
fdisk /dev/sda
```
Далее присвоим тип и занимаемые сектора с помощью опции n:
```
Command (m for help): n
```
Выбираем тип раздела l - логический, запоминаем номер раздела X, созданный в ходе выполнения команды. Далее принимаем значение по умолчанию - нажимаем 2 раза Enter.
```sql
Select (default p): l
Adding logical partition X
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Меняем тип, при этом указываем число, которое мы фиксировали - X:
```
Command (m for help): t
Partition number (1-X): X
Hex code (type L to list codes): 8e
```
_Примечание: 8e - шестнадцатеричный код._
Сохраняем изменения:
```
Command (m for help): w
```
## Шаг 4
Сообщаем ядру операционной системы Linux об изменениях:
```
partx -v -a /dev/sda
```
```
...
/dev/sda: partition #X added
...
```
Ключ v выведет подробную информацию о результатах выполнения, ключ a укажет утилите с каким файлом работать.
## Шаг 5
Инициализируем раздел, вместо Х опять используем номер раздела, который мы запомнили ранее:
```
pvcreate /dev/sdaX
```
Добавляем физический раздел к существующей группе томов:
```
vgextend ubuntu-vg /dev/sdaX
```
Расширяем логический том:
```
lvextend -l +100%FREE /dev/ubuntu-vg/root
```
Расширяем файловую систему, чтобы на винчестере можно было работать с файлами:
```
resize2fs /dev/ubuntu-vg/root
```
На этом этапе диск расширен и готов к использованию.
https://serverspace.uz/support/help/uvelichenie_diskovogo_prostranstva_centos_65.mdИнструкция по расширению дискового пространства выделенного VPS/VDS сервера CentOS 6.5: список терминальных команд для настройки диска на уровне ОС.
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
Откройте терминал (см. [инструкцию по подключению](https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
```
[root@CentOSx64 ~]# echo 1 > /sys/block/sda/device/rescan
```
Установите и запустите утилиту parted:
```
[root@CentOSx64 ~]# yum -y install parted
[root@CentOSx64 ~]# parted
```
Далее выполните команды в интерфейсе утилиты parted:
```
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: ZZ.ZGB
...
```
Запоминаем размер диска ZZ.ZGB
```
(parted) resize
Partition number? 3
```
Значение "Start" оставляем по умолчанию - нажимаем Enter
```
Start? [XXXMB]?
```
Значение "End" - вводим новый размер диска в гигабайтах - значение из вывода (parted) p, которое запомнили ранее
```
End? [YY.YGB]? ZZ.ZGB
```
Выходим из parted:
```
(parted) quit
```
Отобразится следующая информация:
```
Information: You may need to update /etc/fstab.
```
Запустите fdisk:
```
[root@CentOSx64 ~]# fdisk /dev/sda
```
Далее выполните команды в интерфейсе утилиты fdisk:
Создаем раздел:
```
Command (m for help): n
```
Выбираем тип раздела - логический (L)
```sql
Select (default p): l
```
Принимаем значения по умолчанию - нажимаем два раза Enter:
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Меняем тип раздела, при этом указываем номер последнего раздела (в примере обозначено как **X** и выделено **жирным**) и запоминаем его
```
Command (m for help): t
Partition number (1-**X**): **X**
Hex code (type L to list codes): 8e
...
Command (m for help): w
```
Сообщаем ядру об изменениях:
```
[root@CentOSx64 ~]# partx -v -a /dev/sda
```
В отобразившемся ответе видим строку
```
...
/dev/sda: added partition #X
...
```
Инициализируем раздел, вместо Х опять используем номер раздела, который мы запомнили ранее
```
[root@CentOSx64 ~]# pvcreate /dev/sdaX
```
```
Physical volume "/dev/sdaX" successfully created
```
Добавляем физический раздел к существующей группе томов:
```
[root@CentOSx64 ~]# vgextend vg_centos65x64 /dev/sdaX
```
```
Volume group "vg_centos65x64" successfully extended
```
Расширяем логический том
```
[root@CentOSx64 ~]# lvextend -l +100%FREE /dev/vg_centos65x64/lv_root
```
```
Extending logical volume lv_root to YY.ZZ GiB
Logical volume lv_root successfully resized
```
Расширяем файловую систему
```
[root@CentOSx64 ~]# resize2fs /dev/vg_centos65x64/lv_root
```
Готово.
https://serverspace.uz/support/help/dobavlenie-diskovogo-prostranstva-windows-server.mdРуководство по добавлению дискового пространства VPS/VDS-сервера (расширение тома) под управлением ОС Windows Server 2012/2016 R2
При добавлении дискового пространства в операционной системе сервера необходимо проделать определенные действия для того, чтобы ОС "увидела" новый объём.
Производится это в меню "Диспетчер дисков". Далее рассмотрим непосредственно сам процесс.
[step num="1"]
Запустим оснастку "Computer Management" следующим образом
Запустим "Server Manager", далее "Tools" и затем выберем оснастку "Computer Management":
[/step]
Скриншот №1. Computer Manager
[step num="2"]
Затем в разделе "Storage" выбираем утилиту "Disk Management".
В правой части панели отображается область, помеченная как "Unallocated". В нашем примере её размер 40 Gb:
[/step]
Скриншот №2. Disk Management
[step num="3"]
Нажмём кнопку "Extend Volume".
Выбираем требуемый том непосредственно для увеличения, кликнув по нему правой кнопкой мышки. В появившемся раскрывающемся списке выберем строку "Extend Volume":
[/step]
Скриншот №3. Выбор диска
[step num="4"]
Запустится "Extend Volume Wizard":
[/step]
Скриншот №4. Extend Volume Wizard
[step num="5"]
Укажем размер неразмеченного пространства, на который необходимо разметить. И далее нажмём "Next":
[/step]
Скриншот №5. Выбор области
[step num="6"]
Подтверждаем изменение, нажав кнопку "Finish":
[/step]
Скриншот №6. Подтверждение изменений
[step num="7"]
Убеждаемся, что в оснастке "Computer Management" в разделе "Disk Management" не осталось свободного пространства. Теперь увеличенный том готов к использованию.
[/step]
Скриншот №7. Удостоверьтесь в готовности
https://serverspace.uz/support/help/kak-uvelichit-diskovoe-prostranstvo-windows-server-2022.mdИнструкция по увеличению дискового пространства виртуального сервера на уровне операционной системы Windows Server 2022
## Введение
Для увеличения дискового пространства на Windows Server 2022 нужно выполнить несколько простых шагов. В этой пошаговой инструкции, подробно рассказано какие действия нужно выполнить чтобы система распознала, что размер диска был увеличен или был добавлен новый диск.
Рассмотрим на примере двух виртуальных серверов с ОС Windows Server 2022 от serverspace: 1) vStack cloud 2) VMware cloud.
## vStack cloud
Вы можете увеличить дисковое пространство двумя способами:
### Добавление абсолютно нового диска
Скриншот 1. Добавление нового диска в консоли serverspace
Скриншот 2. Конфигурирование нового диска
- После чего, нужно открыть Windows Administrative Tools - Computer Management - Disk Management
Скриншот 3. Windows Administrative Tools
Скриншот 4. Computer Management
Скриншот 5. Disk Management
- Чтобы система начала работать с новым диском, необходимо:
Вызвать контекстное меню, нажав правой кнопкой мыши по новому диску;
- Выбрать "Online";
Скриншот 6. Контекстное меню
- Затем "Initialize Disk";
Скриншот 7. Initialize Disk
- Выбрать интересующую разметку дискового пространства;
Скриншот 8. Разметка дискового пространства
- Вызвать контекстное меню на новом диске, выбрать "New Simple Volume";
Скриншот 9. New Simple Volume
- В установщике следует выбрать файловую систему нового диска, его имя и буквенное обозначение диска;
Скриншот 10. Выбор имени диска и файловой системы
- Новый диск успешно добавлен и отображается в системе
Скриншот 11. Новый диск отображается в системе
### Увеличение памяти для существующего диска
Скриншот 12. Расширение дискового пространства
Скриншот 13. Выбор необходимого размера добавочной памяти.
После чего место на диске увеличится автоматически.
Скриншот 14. Дисковое пространство увеличилось автоматически
## VMware cloud
Для того чтобы увеличить размер диска или добавить новый перейдите на вкладку "Change configuration"
Скриншот 15. Change configuration
Затем выберите каким образом будет расширено дисковое пространство: созданием нового диска или увеличением существующего.
### Добавить новый диск
Скриншот 16. Добавить новый диск
Выбираем необходимое количество памяти, тип диска и имя.
Скриншот 17. Конфигурация нового диска
- После чего, нужно открыть Windows Administrative Tools - Computer Management - Disk Management
Скриншот 18. Windows Administrative Tools
Скриншот 19. Computer Management
Скриншот 20. Disk Management
- Чтобы система начала работать с новым диском, необходимо:
Вызвать контекстное меню, нажав правой кнопкой мыши по новому диску;
- Выбрать "Online";
Скриншот 21. Контекстное меню
- Затем "Initialize Disk";
Скриншот 22. Initialize Disk
- Выбрать интересующую разметку дискового пространства;
Скриншот 23. Разметка дискового пространства
- Вызвать контекстное меню на новом диске, выбрать "New Simple Volume";
Скриншот 24. New Simple Volume
- В установщике следует выбрать файловую систему нового диска, его имя и буквенное обозначение диска;
Скриншот 25. Буквенное обозначение нового диска
Скриншот 26. Имя и файловая система нового диска
- Новый диск успешно добавлен и отображается в системе
Скриншот 27. Новый диск отображается в системе
### Увеличение существующего диска
В меню _Server Configuration_ выберите опцию _Change Configuration_. После чего добавьте необходимое количество памяти к диску.
Скриншот 28. Конфигурация существующего диска
На сервере перейдите во вкладку Windows Administrative Tools - Computer Management - Disk Management.
- Откройте контекстное меню на вкладке с диском и выберите "Extend Volume";
Скриншот 29. Extend Volume
- В установщике выберите количество памяти которое будет добавлено (рекомендуется выбрать всю возможную);
Скриншот 30. Выбор количества памяти
- После завершения, размер диска увеличится.
Скриншот 31. Окно успешного расширения дискового пространства
Скриншот 32. Размер диска увеличился
Скриншот 33. Размер диска в системе увеличился
https://serverspace.uz/support/help/kak_podkljuchitsja_k_linux_serveru.mdПодробная инструкция как настроить подключение к удаленному серверу на базе Linux/Unix операционных систем с помощью программы Putty
Для работы с серверной платформой используется удаленное подключение. Это связано с тем, что оборудование располагается в другом городе или стране. Расскажем подробнее, как настроить подключение к удаленному [серверу на базе Linux](https://serverspace.uz/services/vps-server/linux.md)/Unix операционных систем при использовании наших сервисов.
## Как установить соединение
Скачиваем утилиту для удаленного доступа – Putty.
Ссылка: [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)
Putty доступен в двух релизах: для Windows и Linux-систем. Мы рассмотри пример использования Windows-дистрибутива.
Запускаем программу. В поле Host name указываем IP-адрес сервера, к которому подключаемся:
Его значение находится во вкладке "**Статус**" **->** "**Подключение**" на нашей странице виртуального сервера:
Остальные параметры оставляем без изменения. Нажимаем **Open**.
Откроется рабочее окно, в котором появится надпись о добавлении секретного ключа. Соглашаемся.
Вводим в открывшемся окне логин и пароль. Значения расположены в той же вкладке, где и IP-адрес:
Если операции выполнены правильно, то на экране появится рабочий терминал:
https://serverspace.uz/support/help/problemy-pri-podkljuchenii-po-rdp.mdЧто делать, если не работает RDP? Пошаговая инструкция по устранению проблем при подключении к рабочему столу удаленного сервера Windows.
## Что такое RDP
**RDP** - специальный протокол, разработанный для удаленного подключения к серверам и рабочим станциям под управлением операционных систем Windows от их разработчика, корпорации Microsoft. Сам по себе процесс подключения достаточно прост и подробно описан нами в соответствующей [инструкции](https://serverspace.uz/support/help/kak_podkljuchitsja_k_windows_serveru/).
## Возможные проблемы при подключении по RDP
В большинстве случаев RDP-соединение открывается без каких-либо проблем, а если вы все же столкнулись с неполадкой, рекомендуем шаг за шагом провести диагностику как показано далее:
Первым делом войдите в личный кабинет Serverspace и убедитесь, что ваш сервер включен "по питанию" и активен (например, не отключен за недостатком средств на счете);
Проверьте, что машина, к которой вы подключаетесь, включена и доступна по сети. Для этого достаточно послать к серверу ICMP-запрос:
```
ping
```
Проверьте, чтобы при вставке в RDP-клиент имя или IP сервера были написаны правильно, в особенности чтобы не было замен на визуально похожие символы (например, русская буква "о" выглядит похожей на английскую "o", однако это разные символы и, в случае ввода кириллической буквы при подключении возникнет ошибка;
Проверьте, что вы верно ввели имя пользователя и пароль, например, что в пароль не закрался пробел или иные "посторонние" символы, иначе подключение также закончится неудачей;
Далее стоит убедиться, что на всем пути прохождения сигнала от вас до сервера не заблокирован порт 3389 (например, его может блокировать ваш или любой из "промежуточных" провайдеров). Для этого достаточно воспользоваться telnet-клиентом. Картина, показанная ниже, свидетельствует об успешности;
```
telnet 3389
```
Еще одним препятствием могут выступать собственно настройки сервера, а именно запрет на подключение RDP-клиентов более "старых" версий, чем . Чтобы исправить этот момент, придется задействовать VNC-консоль, предоставляемую личным кабинетом Serverspace. Вернитесь в личный кабинет, на странице свойств сервера откройте web-консоль и авторизуйтесь на сервере используя предложенные реквизиты доступа;
Вы должны попасть на рабочий стол сервера. Далее запустите Проводник, правой кнопкой мыши кликните по вашему компьютеру, вызовите **Свойства сервера (Properties) >** **Настройки удаленного рабочего стола (Remote Desrtop) > Дополнительные настройки (Advanced settings)**. Убедитесь что "галочка", требующая от клиентов аутентификацию сетевого уровня (Require Computers to use Network Level Authentification) снята.
На этом список типовых проблем с RDP-подключением исчерпывается.
## Заключение
В данном материале мы рассмотрели основные проблемы, могущие возникнуть при подключении к серверу под управлением ОС Windows и указали на пути их решения.
https://serverspace.uz/support/help/podklyuchenie-po-protokolu-s3.mdИнструкция по подключению к объектному облачному хранилищу по протоколу S3 с помощью программы S3Browser
## Simple Storage Service — подключение
Для того чтобы использовать API Amazon S3, необходимо выполнить следующую последовательность действий:
Скриншот №1 — Главное окно
Для [загрузки и установки приложения](https://s3browser.com/help.aspx?v=6-5-9&fam=x64) программу S3 browser, нажмем на зеленую кнопку **Download S3 Browser**:
Скриншот №2 — Скачивание
Выполните установку загруженного файла:
Скриншот №3 — Установка
Создайте аккаунт и выберите опцию "Хранилище, совместимое с S3" (S3 Compatible Storage):
Скриншот №4 — Профиль
Заполните необходимые поля данными из таблицы в вашем личном кабинете, а также введите ваш секретный ключ в поле "Secret Access Key". Для этого перейдите в левое меню, выберите вкладку **Хранилище** и откройте всплывающее окно пункта **Доступы**.
Скриншот №5 — Данные для входа
Отметьте опцию "Использовать безопасный передачу данных (SSL/TLS)" и после этого необходимо внести еще одну важную настройку!
Скриншот №5 — Настройки
Закроем окно и сохраним внесенные изменения, после чего произойдет обращение к хранилищу по HTTPs API и мы увидим ответные данные.
Скриншот №6 — Подключение к хранилищу
https://serverspace.uz/support/help/kak-rasshirit-kanal-internet.mdПодробная инструкция как увеличить скорость соединения с сетью Интернет сервера VPS от 100 Мбит/с до 1 Гбит/с
Если вам недостаточно текущей скорости соединения с сетью Интернет, то ее можно увеличить в настройках сервера в панели управления во вкладке Сети. Самостоятельно возможно расширить канал до 100 Мбит/с, а по [запросу в службу поддержки](https://my.serverspace.ru/support/create-request) - до 300 Мбит/с. Не забудьте сохранить внесенные изменения.
Если вам необходима ширина канала до 1 Гбит/с, следует заказать выделенную публичную подсеть. О том как это сделать читайте в нашей статье.
https://serverspace.uz/support/help/kak-sozdat-publichnuyu-podset.mdКак создать публичную подсеть в панели управления Serverspace и подключить к ней серверы? Это легко. Рассмотрим подробно в нашей инструкции.
Создание публичной сети является платной услугой для наших клиентов, за использование публичной сети происходит списание средств согласно правил тарификации.
[step num="1"]Вы можете объединить только сервера расположенные в одном ЦОДе. Для этого в вертикальном меню перейдите во вкладку **Сети** и нажмите **Добавить сеть**.[/step]
[step num="2"]Выберете ЦОД в котором будет создана сеть, тип сети **Публичная сеть**, емкость сети и ширину канала. Нажмите **Создать сеть**.[/step]
[step num="3"]Вашей сети будет выдан публичный шлюз и маска, и указана емкость сети. Для подключения сервера к сети переведите тумблер **Подключить** в активное состояние и нажмите **Сохранить**.[/step]
[step num="4"]При подключении к сети на ваш виртуальный сервер будет добавлен еще один сетевой адаптер, который необходимо настроить на уровне операционной системы. Публичные адреса будут доступны в панели управления.[/step]
https://serverspace.uz/support/help/kakoj-ssl-sertifikat-vybrat.mdВыбор SSL-сертификата для защиты сайта или интернет-магазина зависит от: 1⃣Количества доменов 2⃣Наличия поддоменов 3⃣Наличия оплаты на сайте
Для выбора подходящего SSL сертификата необходимо понимать:
- сколько доменов вы хотите защитить;
- необходима ли защита поддоменов;
- будет ли на сайте происходить оплата;
- необходимо ли наличие зеленой строки.
Если вам необходимо защитить лишь один домен, то самый простой и лёгкий в получении сертификат это [Sectigo PositiveSSL](https://serverspace.uz/services/ssl/sectigo-positivessl/). Он поддерживает домены с www и без а также кириллические домены.
Если у вас есть оплата на сайте, то лучше использовать сертификат с проверкой организации, например, [Sectigo InstantSSL](https://serverspace.uz/services/ssl/sectigo-instantssl/). Проверка организации как правило происходит около 5 дней, и довольно не простая. Все необходимые документы и этапы проверки описаны в нашей статье.
Для защиты домена с большим числом поддоменов обычно используют [wildcard-сертификат](https://serverspace.uz/services/ssl/wc/), например, [Sectigo PositiveSSL Wildcard](https://serverspace.uz/services/ssl/sectigo-positivessl-wildcard/). Данный сертификат защищает основной указанный домен и следующие по уровню. Например, при заказе сертификата для домена example.com будут защищаться только домены вида: _example.com_, _test1.example.com_, _test3.example.com_. Домены вида mail.test.example.com в данном случае защищаться не будут.
Для одновременной защиты нескольких доменов удобно использовать [мультидоменный сертификат](https://serverspace.uz/services/ssl/san/), например, [Sectigo PositiveSSL Multi-Domain](https://serverspace.uz/services/ssl/sectigo-positivessl-multi-domain/). С помощью всего-лишь одного сертификата вы защитите разные доменные имена, например, _example.com_, _test.org_ и _mail.example.edu_.
Если необходимо защитить неограниченное количество доменов и поддоменов, используйте сертификат [Sectigo PositiveSSL Multi-Domain Wildcard](https://serverspace.uz/services/ssl/sectigo-positivessl-multi-domain-wildcard/) (2 SAN). Например, у вас будут защищены _mail.example.com_, _news.example.com_, _mail.test.com_, _images.yest.com_. Это уникальный сертификат, который поддерживает и SAN и Wildcard.
Если вам необходима самая высокая степень доверия со стороны конечных потребителей, используйте сертификат с зеленой строкой, например [Sectigo Extended Validation SSL](https://serverspace.uz/services/ssl/sectigo-ev-ssl/). Сертификаты с зеленой строкой имеют расширенную проверку, которая длится около 2 недель и включает в себя проверку организации и обратный звонок от сертифицирующего центра.
https://serverspace.uz/support/help/shpargalka-po-yum-centos.mdРассмотрим установку на сервере CentOS и самые популярные команды программы Yum для управления пакетами и репозиториями
Установка дополнительных программных пакетов в ОС семейства Linux может быть достаточно нетривиальной задачей, так как зачастую в одном пакете нет всех модулей и библиотек, необходимых для работы. Отслеживать зависимости между пакетами и их версиями задача пакетного менеджера. В операционных системах CentOS/RedHat эту роль исполняет yum. **Yum** предоставляет широчайшие возможности управления пакетами и репозиториями – установка, обновление, удаление, инвентаризация и т.д.
Как и все команды ОС Linux, пакетный менеджер обладает подробной встроенной справкой — запустив в консоли команду yum без параметров можно увидеть подсказку по синтаксису, список поддерживаемых функций с кратким описанием, а также перечень дополнительных опций:
Скриншот №1. Запуск справки с помощью команды yum
[step num="1"]
Одна из самых полезных функций в списке команд – help. Можно запустить yum help с указанием какой-либо другой команды из обширного арсенала пакетного менеджера и получить в ответ дополнительную информацию о допустимых параметрах:
[/step]
Скриншот №2. Дополнительная информация о доступных параметрах
[step num="2"]
В данном примере можем увидеть, что команда list выводит список пакетов или их групп. В качестве допустимых параметров можно указать конкретное имя пакета, либо ключевые слова. Например:
- вывести список всех пакетов:
```bash
yum list all
```
- вывести список доступных для установки пакетов:
```bash
yum list available
```
- вывести список установленных пакетов:
```bash
yum list installed
```
- вывести список пакетов, добавленных в репозитории за последние 7 дней:
```bash
yum list recent
```
- вывести список пакетов, для которых есть обновления:
```bash
yum list updates
```
[/step]
Если нужна более подробная информация о каком-либо пакете, можно воспользоваться функцией info — она поддерживает те же ключевые слова, что и list.
[step num="3"]
Так по выводу команды yum info samba мы увидим, что пакет находится в категории Available Packages (значит он не установлен в системе, но доступен для установки), узнаем версию, архитектуру, репозиторий и назначение пакета (в полях Summary и Description):
[/step]
Скриншот №3. Вывод команды yum info samba
[step num="4"]
Если точное название нужного пакета неизвестно, может помочь функция search — она выведет список пакетов, в названии или описании которых присутствуют заданные ключевые слова. Поищем инструменты для работы с сетью — yum search network tools:
[/step]
Скриншот №4. Функция search
[step num="5"]
Получив информацию об установленных и доступных пакетах, можно переходить к командам действия:
- скачать и установить пакет из репозитория:
```bash
yum install [имя_пакета]
```
- переустановка пакета:
```bash
yum reinstall [имя_пакета]
```
- обновление указанного пакета:
```bash
yum update [имя_пакета]
```
- обновление всех установленных пакетов:
```bash
yum update
```
- откат обновления указанного пакета:
```bash
yum downgrade [имя_пакета]
```
- удаление установленного пакета из операционной системы:
```bash
yum erase [имя_пакета]
```
[/step]
[step num="6"]
Все пакеты, с которыми может взаимодействовать yum, располагаются в так называемых репозиториях — это специальным образом организованнын хранилища пакетов с метаданными, содержащими информацию о доступных версиях и взаимосвязях. Информация и данные для подключения к репозиториям хранятся в операционной системе в каталоге **/etc/yum.repos.d**.
[/step]
[step num="7"]
Для работы с репозиториями используются следующие команды:
- список подключенных репозиториев:
```bash
yum repolist
```
- информация о репозитории:
```bash
yum repoinfo [имя_репозитория]
```
- обновить информацию о пакетах в репозитории (скачать метаданные из репозитория в локальное хранилище):
```bash
yum check-updates
```
[/step]
[step num="8"]
Кроме основных команд пакетный менеджер поддерживает дополнительные опции, расширяющие функциональность, например:
- -v #вывод дополнительной информации о результатах выполнения команды;
- -q # тихий режим без вывода информации;
- -y #ответить "yes", если требуется подтверждение действия;
- --assumeno # ответить "no", если требуется подтверждение действия;
- --disablerepo=[имя_репозитория] #отключить репозиторий;
- --enablerepo=[имя_репозитория] #включить репозиторий.
[/step]
[step num="9"]
И в завершение еще несколько полезных команд из арсенала пакетного менеджера yum:
- список зависимостей указанного пакета:
```bash
yum deplist [имя_пакета]
```
- в каком пакете содержится указанный файл:
```bash
yum provides [имя_файла]
```
- установка пакета из локального rpm-файла (зависимые пакеты, при необходимости будут загружены из подключенных репозиториев):
```bash
yum localinstall [путь_к_rpm]
```
- история операций, совершенных пакетным менеджером:
```bash
yum history list
```
- детальная информация об операции:
```bash
yum history info [номер_операции]
```
- отменить действия, совершенные в рамках определенной операции:
```bash
yum history undo [номер_ операции]
```
- повторить действия, совершенные операцией:
```bash
yum history redo [номер_ операции]
```
https://serverspace.uz/support/help/windows-server-versions-editions-licensing.mdРассказываем, какую версию системы Windows Server выбрать для своего бизнеса, сравниваем доступные редакции и нюансы их лицензирования
Задаваясь вопросом, какую версию Windows Server выбрать для своего бизнеса, пользователи, как правило, сталкиваются с большим разнообразием, и далеко не всегда понятно как выбрать наиболее подходящий вариант. У операционной системы Windows Server существуют не только разные версии, но и разные редакции. Давайте разберемcя в чем же отличия между ними.
## Что такое версия Windows Server?
В 90-е годы, во времена Windows NT, каждая версия Windows Server имела уникальный номер. Например, у Windows NT были номера 3.1, 3.51 и 4.0. Но начиная с 2000 года Microsoft вместо номера начала добавлять после названия год запуска операционной системы: Microsoft Windows 2000, Windows Server 2003, 2008 (которая также имела версию R2), 2012 (также с R2), 2016 и 2019, и т.д.
Каждая новая версия Microsoft Windows Server представляет новые функциональные возможности. Например, виртуализация Hyper-V, Server Core и BitLocker были представлены в Windows Server 2008, контейнеры Windows и Nano Server были представлены в [Windows Server 2016](https://serverspace.uz/services/vps-server/windows.md), а [Windows Server 2019](https://serverspace.uz/services/vps-server/windows.md) принес с собой Windows Admin Center — новый способ удаленного администрирования серверной инфраструктуры, улучшения гиперконвергентной инфраструктуры и глубокую поддержку подсистемы Linux.
## Что такое завершение поддержки?
Как говорится, ничто не вечно. И в определенный момент Microsoft прекращает выпуск патчей для устаревшего программного обеспечения. Дата, до которой Microsoft выпускает обновления для продукта, называется датой окончания поддержки. И после того, как эта дата пройдет, устаревшая версия ОС станет легкой мишенью для вредоносных программ, поскольку она больше не будет получать обновления безопасности и, следовательно, будет уязвима для новых эксплоитов.
Операционные системы Microsoft обычно поддерживаются не менее 10 лет. Например, популярный Windows Server 2003, выпущенный в апреле 2003 года, имел расширенную поддержку, которая закончились в 2015 году. Расширенная поддержка Windows Server 2008 R2 должна закончиться в январе 2020 года, а Windows Server 2012 R2 продолжит получать обновления по крайней мере до октября 2023 года. Версии Server 2016 и 2019 будут получать обновления по 2027 и 2029 год соответственно. Поэтому в целях безопасности организациям на самом деле следует использовать только свежие версии Windows Server.
## Что такое редакция Windows Server?
Когда вы покупаете автомобиль, вам доступно, как минимум, несколько комплектаций одной и той же модели. Например, базовый экономичный вариант, роскошный вариант с кожаными сиденьями и люком на крыше, а также спортивный вариант с большими колесами и более мощным двигателем. Другими словами, каждая версия автомобиля имеет свою цену и набор функций для групп клиентов с разными бюджетами и потребностями.
То же самое касается выпусков Windows Server. Каждый вариант включает в себя функциональность, которая подходит для разных компаний, в зависимости от их размера и бюджета. Например, разные редакции могут поддерживать разное количество пользователей.
## Различия между редакциями Windows Server 2012 R2
Чтобы помочь понять некоторые различия между редакциями ОС, давайте разберем их на примере Windows Server 2012 R2:
- **Foundation** — серверная ОС общего назначения, лучше всего подходящая для серверов нижнего уровня. ОС поддерживает только один процессор и 32 ГБ RAM. Редакция Foundation (недоступная в Windows Server 2016) ограничена 15 пользователями, что делает ее пригодной только для небольших офисов. Foundation доступен только через OEM-производителей, что обычно означает, что он предустановлен на компьютерах, которые вы покупаете у таких компаний, как Dell и HPE.
- **Essentials** (ранее SBS или Small Business Server) — это простое в настройке серверное решение, которое поддерживает до 25 пользователей и 50 устройств, что делает его подходящим для небольших офисов. Essentials поддерживает более мощное оборудование с объемом оперативной памяти до 64 ГБ и двумя процессорами. В отличие от других выпусков Windows Server, в Essentials предварительно настроены роли, такие как Active Directory, DNS, файловые службы, IIS и [удаленный рабочий стол](https://serverspace.ru/services/remote-desktop/), что делает его идеальным для организаций с менее развитым ИТ-направлением или менее опытным ИТ-персоналом.
- **Standard** не ограничивает пользователей, но в отличие от Foundation и Essentials вам придется отдельно приобретать клиентские лицензии (CAL) в зависимости от того, сколько людей вам нужно поддерживать. Standard поддерживает максимум 4 ТБ RAM, а каждая приобретаемая лицензия распространяется на два процессора. Если вы заинтересованы в виртуализации, этот выпуск позволит вам использовать гипервизор Hyper-V для запуска до двух виртуальных экземпляров операционной системы (дополнительные виртуальные экземпляры Windows Server потребуют дополнительных затрат) на одном физическом оборудовании, что делает редакцию Standard подходящей для легкой виртуализированной среды.
- **Datacenter** — это самая лучшая и самая дорогая редакция Windows Server. Windows Server 2012 R2 Datacenter практически идентичен стандартной версии с одним большим исключением. С лицензией Datacenter вы можете запускать неограниченное количество виртуальных экземпляров с Windows Server в качестве гостевой ОС на одном двухпроцессорном компьютере. Эта небольшая разница имеет большое влияние, так как компании могут сэкономить, запустив десятки экземпляров ОС на одном сервере.
## Различия между редакциями Windows Server 2016 и 2019
- **Hyper-V** — это бесплатная редакция Windows Server, предназначенная только для запуска роли гипервизора Hyper-V. Его цель — быть гипервизором для вашей виртуальной среды. У него нет графического интерфейса. По сути, это урезанная версия Server Core. Вы будете использовать sconfig.cmd, чтобы включить гипервизор, а затем управлять средой с помощью диспетчера Hyper-V (как часть RSAT) с рабочей станции Windows 10 в вашей сети. Рекомендуется использовать именно эту редакцию для вашего гипервизора, чтобы сохранить чистоту и простоту лицензирования.
- **Essentials** — идеально подходит как для малого и среднего бизнеса, так и для людей с потребностями в базовых функциях сервера. Графический интерфейс в значительной степени такой же, как и в Standard, за исключением мастера настройки Essentials.
**Права на виртуализацию**
Вам разрешено запускать один физический экземпляр Essentials в качестве хоста Hyper-V, на котором размещен один виртуальный экземпляр Essentials. Вам нужно удалить все роли, кроме роли Hyper-V, из физического экземпляра Essentials для обеспечения соответствия. Essentials также подходит для одного виртуального экземпляра на любом другом гипервизоре.
**Модель лицензирования**
На базе процессора. Клиентские лицензии не требуются, но вы ограничены 25 пользователями и 50 устройствами, подключающимися к серверу.
**Аппаратные ограничения**
Essentials ограничен до 64 ГБ RAM и 2 CPU на компьютере, на котором он установлен.
- **Standard** — идеально подходит для любой компании или для лиц, которым требуются расширенные функции, но при этом они не будут интенсивно виртуализироваться.
**Права на виртуализацию**
Разрешено запускать до двух виртуальных машин или контейнеров Hyper-V или один физический экземпляр со стандартной лицензией. Если вы используете роль Hyper-V только на физическом экземпляре, то можете использовать ее в качестве хоста Hyper-V, а затем разместить на этом хосте две виртуальные машины Hyper-V. Если вы хотите использовать несколько ролей на физическом экземпляре, вы не можете запускать виртуальную машину поверх с одной и той же лицензией.
**Модель лицензирования**
Основанная на ядре. Клиентские лицензии необходимы для каждого пользователя или устройства, которые подключаются косвенно или напрямую к серверу. Например, если вы используете сервер в качестве файлового сервера, вам потребуется лицензия CAL для каждой учетной записи пользователя или компьютера, которые обращаются к этому файловому серверу в сети.
**Аппаратные ограничения**
Стандарт ограничен максимум 24 ТБ оперативной памяти и 512 ядрами.
- **Datacenter** — идеально подходит для любой компании с высокой степенью виртуализации. Вы приобретаете лицензию в зависимости от того, сколько ядер есть у ваших хостов, на которых может жить любая виртуальная машина с версией Datacenter (запускаться или потенциально запускаться после Vmotion). Это лицензирование, на первый взгляд, кажется дорогим, но оно позволяет создавать неограниченное количество виртуальных машин, работающих под управлением Datacenter на хостах, которые вы учитывали. Если у вас небольшое количество хостов (а впоследствии и ядер) и большое количество потенциальных виртуальных машин, тогда эта лицензия не представляет никакой сложности.
**Права на виртуализацию**
Неограниченное количество виртуальных машин или контейнеров Hyper-V. Как было озвучено выше, вы будете покупать лицензии в зависимости от того, сколько ядер у вас на хостах. На этом этапе вы можете запустить на хостах столько угодно виртуальных машин, используя любые роли.
**Модель лицензирования**
Основанная на ядрах. Убедитесь, что вы случайно не выбрали этот выпуск при установке на физический сервер, на котором не размещаются виртуальные машины. Клиентские лицензии необходимы для каждого пользователя или устройства, которые подключаются косвенно или напрямую к серверам в вашей среде.
## Различия в лицензировании Windows Server 2016 и новее
Хотя цены на Windows Server 2012 R2, 2016, 2019 одинаковы, если вы используете стандартную лицензию или лицензию Datacenter на Windows Server 2016 или новее, есть некоторые ключевые изменения, о которых вам необходимо знать. Прежде всего, в то время как лицензии Windows Server исторически продавались для каждого процессора / сокета, в Windows Server 2016 модель лицензирования переключалась на каждое ядро.
Таким образом, если у вас есть сервер, содержащий 2 процессора с 24 ядрами , в Windows Server 2012 вам нужно будет купить только одну лицензию Standard или Datacenter. В Windows Server 2016 вам придется покупать лицензии на все 24 ядра. Это становится довольно сложно, так как есть много правил, но главное — если у вас есть 16-ядерный сервер, затраты будут примерно такими же. Однако лицензирование ОС может быть более дорогим на серверах с более высокой плотностью ядра.
Несмотря на изменение лицензии на ядро, правила виртуализации остаются такими же в Windows Server 2016 и новее. После того, как вы лицензировали все свои ядра на сервере, со стандартной версией вы получаете 2 лицензии гостевой ОС Windows Server по сравнению с неограниченным количеством в версии Datacenter.
Кроме того, набор функций в Windows Server 2012 Standard и Datacenter был одинаковым. Но некоторые функции Windows Server 2016, например, такие, как Storage Spaces Direct или экранированные виртуальные машины, доступны только в выпуске Datacenter.
## Сравнение параметров установки Windows Server 2016 и 2019
В редакциях Standard и Datacenter можно выбрать различные варианты установки. Эти варианты влияют на то, какие функции будут доступны после установки, такие как наличие графического интерфейса пользователя и набор сервисов. Присутствуют следующие варианты установки:
- Desktop Experience (с графическим интерфейсом);
- Core;
- Nano.
**Desktop Experience** — это вариант установки, с которым знакомо большинство людей. Этот параметр устанавливает большинство функций и ролей из коробки, включая интерфейс графического интерфейса рабочего стола. Вы получите Диспетчер серверов, который позволяет добавлять и удалять роли и компоненты. Преимущество в том, что система может быть проще в управлении для людей, привыкших использовать графический интерфейс. Недостаток в том, что у вас появляется больше обновлений, перезагрузок и открытых портов с которыми предстоит иметь дело.
Узнайте больше от Microsoft [здесь](https://docs.microsoft.com/en-us/windows-server/get-started/getting-started-with-server-with-desktop-experience).
В **Server Core** отсутствует графический интерфейс и несколько ролей, которые устанавливаются по умолчанию под опцией Desktop Experience. Серверное ядро имеет меньший объем занимаемого дискового пространства и, следовательно, меньшую область атаки из-за меньшей кодовой базы. Здесь также меньше обновлений, перезагрузок и открытых портов для работы. Это отличный вариант для серверов инфраструктуры, таких как контроллеры домена Active Directory и DNS-серверы.
В этой редакции отсутствуют инструменты специальных возможностей, встроенные инструменты настройки сервера и поддержка звука. Эта версия без излишеств. Не лишним будет убедиться, что вы знакомы с администрированием на основе командной строки.
Подробнее об этом можно прочитать [на сайте](https://docs.microsoft.com/en-us/windows-server/administration/server-core/what-is-server-core/) Microsoft.
**Nano**
Начиная с Windows Server 2019, Nano доступен только как контейнеризированный образ операционной системы. Он предназначен для запуска в качестве контейнера внутри хоста контейнеров, такого как Server Core, упомянутого выше. Если вы опираетесь на контейнерные приложения, предназначенные для серверных ОС, то эту версию вы будете использовать для компиляции этих приложений.
Nano можно развернуть с помощью версий Standard или Datacenter, но у вас должна быть прикреплена Software Assurance к лицензированию хост-сервера. Узнать об этом подробнее можно [на сайте](https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-annual-channel/) Microsoft.
https://serverspace.uz/support/help/ustanovka-zabbix-agent-na-windows.mdКак установить Zabbix-агент на Windows — несложная инструкция со скринами: скачать Zabbix-агент и выполнить необходимые настройки для установки
**Zabbix-агент** — это программа для осуществления контроля за локальными ресурсами и приложениями на сетевых системах. Данный агент может быть установлен на платформах Windows и *nix, что позволяет объединить в одном сервисе различные платформы.
## Требования
1. Zabbix-сервер.
2. Узел с OS Windows.
## Установка
Скачиваем пакет Zabbix-agent по ссылке: [https://www.zabbix.com/ru/download_agents](https://www.zabbix.com/ru/download_agents)
Запускаем скачанный установочный пакет:
Нажимаем Next и переходим к соглашению. Ставим галочку и нажимаем Next:
Переходим к настройкам агента. Указываем IP-адрес, либо хост Zabbix-сервера, порт (если меняли), а также другие настройки. Если необходимо, чтобы узел управлялся мастер-сервером, поставьте галочку напротив Remote command и нажмите Next:
Следующий этап установки позволяет выбрать путь установки, а также устанавливаемые компоненты. Нажимаем Next:
Мы на завершающем этапе. Нажимаем Install:
В результате Zabbix-agent будет установлен.
https://serverspace.uz/support/help/kak-sozdat-sobstvennyj-shablon.mdВ инструкции описано создание собственного шаблона VPS. Шаблон используется для оперативного разворачивания сервера с нужной конфигурацией
Наши пользователи могут создавать собственные шаблоны [виртуальных серверов](https://serverspace.uz/services/vps-server.md), чтобы в дальнейшем создавать сервера с конфигурацией, удовлетворяющей определенные нужды и потребности.
Хранение шаблона — платная услуга, ее цена равна стоимости дискового пространства оригинального сервера.
Для создания шаблона перейдите во вкладку **Шаблоны ** в вертикальном меню слева и нажмите **Создать шаблон**.
Далее введите удобное для вас название шаблона и сокращенное техническое название. Выберете сервер из выпадающего списка на основе которого необходимо создать шаблон.
_Важно: для успешного создания шаблона должны быть выполнены следующие условия: _
- _сервер находится в выключенном состоянии;_
- _сервер не подключен к частным сетям;_
- _сервер не имеет активных снапшотов;_
- _сервер не имеет подключенных дополнительных дисков._
В результате у вас отобразится созданный шаблон.
При создании сервера созданный шаблон можно выбрать в списке **Ваши шаблоны**.
https://serverspace.uz/support/help/install-and-configure-ms-sql-server-express.mdВ инструкции описан процесс установки MS SQL Server 2017 Express - бесплатной и технологичной базы данных на Windows Server 2012 R2/2016/2019
В этой инструкции описан процесс установки MS SQL Server 2017 Express на Windows Server 2012 R2/2016/2019. Следуя ей вы получите готовый инструмент для знакомства с языком программирования SQL, для проверок собственных наработок или запуска небольшого ресурса, не требующего больших объемов хранения баз данных.
## Ограничения выпуска SQL Server 2017 Express
Данный выпуск является бесплатным и подходит для коммерческого использования, но имеет ряд ограничений:
- Максимальное количество ядер процессора: 4;
- Максимальный размер базы данных: 10 ГБ;
- Максимальный размер пула буфера на экземпляр базы данных: 1410 МБ.
Если у вас есть необходимость выйти за пределы этих ограничений, советуем приобрести лицензию Microsoft SQL Server Standard.
## Требования к операционной системе
SQL Server 2017 Express доступен для установки на следующих операционных системах:
- Windows 8/8.1/10 и новее;
- Windows Server 2012, 2012 R2, 2016, 2019 и новее.
## Процедура установки
[step num="1"]
Чтобы установить SQL Server 2017 Express, перейдите по [ссылке](https://www.microsoft.com/en-us/download/details.aspx?id=55994), выберите язык установки и нажмите **Download**:
[/step]
[step num="2"]
После запуска скачанного файла установщик откроет специальное окно, в котором предложит несколько вариантов установки на выбор. Для контроля за параметрами установки выберите **Custom**:
[/step]
[step num="3"]
Далее выберите место, куда будут скачаны установочные файлы, при необходимости поменяйте его на нужное и нажмите **Install:**
[/step]
[step num="4"]
Дождитесь завершения процесса скачивания установочных файлов:
[/step]
[step num="5"]
Далее выберите первый пункт установки **New SQL Server stand-alone installation**:
[/step]
[step num="6"]
Ознакомьтесь с условиями лицензионного соглашения и нажмите **Next**:
[/step]
[step num="7"]
При необходимости получать обновления из Windows Update поставьте галочку и нажмите **Next**:
[/step]
[step num="8"]
Ознакомьтесь с предупреждением о возможных проблемах, а при их отсутствии нажмите **Next:**
[/step]
[step num="9"]
Перейдите на экран выбора функционала, где можно, при необходимости, выбрать или убрать дополнительные возможности для сервера баз данных, оставьте без изменений и нажмите **Next**:
[/step]
[step num="10"]
Выберите имя и идентификатор сервера. Идентификатор сервера будет включен в путь установки. Оставьте по умолчанию и нажмите **Next**:
[/step]
[step num="11"]
На следующем экране можно указать сервисные аккаунты, отличные от стандартных, и предоставить право на выполнение задач обслуживания тома службе ядра СУБД SQL Server, что повысит скорость инициализации файлов, но СУБД может получить доступ к удаленному контенту. На вкладке **Collation **можно изменить параметры сортировки движка базы данных. На указанном примере мы предоставим привилегии, оставим по умолчанию параметры сортировки и нажмем **Next**:
[/step]
[step num="12"]
На следующем этапе установки необходимо настроить конфигурацию ядра базы данных. Для этого предусмотрены следующие вкладки:
- **Server Configuration** — указывается способ авторизации в базу данных: средствами Windows или смешанный режим, включающий в себя авторизацию Windows и собственную авторизацию SQL Server. При выборе второго варианта следует указать пароль администратора SQL Server;
- **Data Directories** — указывается расположение исполняемых файлов SQL Server и данных;
- **TempDB** — параметры TempDB, используемой внутренними ресурсами SQL Server, временными объектами пользователей и хранилищем версий;
- **User instances** — позволяет дать права пользователям, не имеющим прав администратора, запускать отдельные экземпляры баз данных;
- **FILESTREAM** — включается при необходимости использовать оптимизированные для памяти (Memory Optimized) таблицы.
[/step]
[step num="13"]
Так как при установке по умолчанию был выбран пункт Microsoft R (Machine Learning Services) и Python, следует согласиться с условиями его использования на этом и следующем этапе, последовательно нажав **Accept** и **Next**:
[/step]
[step num="14"]
Запустится процесс установки, после чfего появится окно о завершении работ установщика SQL Server 2017. Нажмите **Close**:
[/step]
[step num="15"]
На этом установка SQL Server 2017 Express завершена.
https://serverspace.uz/support/help/install-sql-server-management-studio.mdДанная статья поможет установить SQL Server Management Studio и выполнить простой запрос в базу данных для проверки корректности установки
**SQL Server Management Studio** — это программа с графическим интерфейсом, которая позволяет быстро и легко управлять базами данных, создавать пользователей, устанавливать разрешения для баз данных, создавать резервные копии и многое другое. Данная статья поможет установить программу и выполнить простой запрос в базу данных для проверки корректности установки.
[step num="1"]
SQL Server Management Studio доступен отдельно от Microsoft SQL Server. Для его установки посетите [страницу загрузки Microsoft](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15) и скачайте последний бинарный файл мастера установки. Инструкция о том, как установить Microsoft SQL Server Express, находится [здесь](https://serverspace.uz/support/help/install-and-configure-ms-sql-server-express/). На момент написания статьи последней версией SQL Server Management Studio является версия 18.3.1:
[/step]
[step num="2"]
Следующим шагом выбираем место установки студии управления и нажимаем **Install:**
[/step]
[step num="3"]
После нажатия на кнопку Install процедура установки начнется автоматически:
[/step]
[step num="4"]
По завершении установки появится экран, предлагающий выполнить перезагрузку. Перезагружаемся, нажав на **Restart**:
[/step]
[step num="5"]
Программа SQL Server Management Studio готова к запуску. Чтобы подключиться к SQL Server с помощью Microsoft SQL Server Management Studio, выполните следующие действия:
[/step]
[step num="6"]
1. Запустите Microsoft SQL Server Management Studio из меню "Пуск":
[/step]
[step num="7"]
2. Откроется окно аутентификации. Вы можете выбрать опцию, на основе которой настроили аутентификацию при установке MS SQL сервера. Далее нажмите **Connect**:
[/step]
[step num="8"]
3. Если соединение установлено успешно, вы увидите панель Object Explorer — обозревателя объектов:
[/step]
[step num="9"]
4. Чтобы выполнить запрос в базу данных, кликните правой кнопкой мыши по узлу сервера (в нашем примере это **WIN2019STDSQLEXPRESS**), и выберите пункт меню **New Query**:
[/step]
[step num="10"]
5. Введите в редакторе следующий запрос:
```sql
select @@version;
```
[/step]
[step num="11"]
Этот запрос возвращает версию SQL Server. После чего нажмите **Execute** (Выполнить):
[/step]
[step num="12"]
6. В окне "**Results**" отобразится версия SQL Server, как показано на снимке экрана ниже. Быстрый способ выполнить запрос — нажать клавишу **F5**:
[/step]
[step num="13"]
Поздравляем! Теперь вы знаете как подключаться к SQL серверу и выполнять запросы из студии управления сервером базы данных.
https://serverspace.uz/support/help/nastrojka-dns-servera-na-windows-server-2008.mdКак установить и настроить DNS сервера для Windows Server 2008. Настройка сетевого адаптера и методы проверки работоспособности DNS сервера.
**DNS (Domain Name System, Система Доменных имен)** – система, позволяющая преобразовать доменное имя в IP-адрес сервера и наоборот.
**DNS-сервер** – это сетевая служба, которая обеспечивает и поддерживает работу DNS. Служба DNS-сервера не требовательна к ресурсам машины. Если не подразумевается настройка иных ролей и служб на целевой машине, то минимальной конфигурации будет вполне достаточно.
## Настройка сетевого адаптера для DNS-сервера
[step num="1"]
Установка DNS-сервера предполагает наличие доменной зоны, поэтому необходимо создать частную сеть в личном кабинете и подключить к ней виртуальные машины.
[/step]
[step num="2"]
После того, как машина будет присоединена к двум сетям, важно не перепутать, какое из подключений требует настройки. Первичный сетевой адаптер настроен автоматически с самого начала, через него открыт доступ к интернету, в то время как на дополнительно подключенных сетевых адаптерах доступа в интернет нет, пока не будет произведена ручная настройка:
[/step]
[step num="3"]
Наведя курсор на значок сети в системном трее, можно вызвать всплывающую подсказку с краткими сведениями о сетях. Из примера выше видно, что присоединённая сеть это Network 3.
[/step]
[step num="4"]
Далее предстоит проделать цепочку действий:
- Необходимо нажать правой клавишей мыши по значку сети в системном трее, в выпадающем меню выбрать Центр управления сетями и общим доступом, в левой части появившегося окна открыть ссылку Изменение параметров адаптера:
- Правой кнопкой мыши нажать на необходимый сетевой адаптер, в меню выбрать Свойства;
- В окне свойств выбрать IPv4 и нажать на кнопку Свойства;
- Заполнить соответствующие поля необходимыми данными:
Здесь в качестве предпочитаемого DNS-сервера машина назначена сама себе, альтернативным назначен dns.google [8.8.8.8].
[/step]
## Установка роли DNS-сервера
[step num="5"]
Для установки дополнительных ролей на сервер используется Мастер Добавления Ролей и Компонентов, который можно найти в Диспетчере Сервера.
- В левой части окна Диспетчера сервера откройте раздел Роли, после чего в правой части окна отобразится команда Добавить Роли:
- Откроется окно Мастера, в котором рекомендуют убедиться что:
1. Учётная запись администратора защищена надёжным паролем.
2. Настроены сетевые параметры, такие как статические IP-адреса.
3. Установлены новейшие обновления безопасности из центра обновления Windows.
- Убедившись, что все условия выполнены, нажмите Далее;
- Отметьте чек-боксом роль DNS-сервер и перейдите Далее:
- Прочитайте информацию и нажмите Далее:
- Убедитесь, что выбор сделан правильно, и подтвердите нажатием кнопки Установить:
- Дождитесь завершения установки и закройте Мастер установки:
[/step]
## Создание зон прямого и обратного просмотра
**Доменная зона** — совокупность доменных имён в пределах конкретного домена.
**Зоны прямого просмотра** предназначены для сопоставления доменного имени с IP-адресом.
**Зоны обратного просмотра** работают в противоположную сторону и сопоставляют IP-адрес с доменным именем.
[step num="6"]
Создание зон и управление ими осуществляется при помощи Диспетчера DNS.
Данный инструмент открывается из навигационного дерева Диспетчера Сервера:
[/step]
**Создание зоны прямого просмотра**
- Выделите каталог Зоны Прямого Просмотра, запустите Мастер Создания Новой Зоны с помощью кнопки Новая зона на панели инструментов сверху:
- Откроется окно Мастера с приветствием, нажмите Далее:
- Из предложенных вариантов выберите "Основная зона" и перейдите Далее:
- Укажите имя зоны и нажмите Далее:
- При необходимости поменяйте название будущего файла зоны и нажмите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
**Создание зоны обратного просмотра**
- Выделите в Диспетчере DNS каталог Зоны Обратного Просмотра и нажатием кнопки Новая зона на панели инструментов сверху запустите Мастер создания новой зоны:
- Выберите тип "Основная Зона", перейдите Далее:
- Выберите назначение для адресов IPv4, нажмите Далее:
- Укажите идентификатор сети (первые три октета сетевого адреса) и следуйте Далее:
- При необходимости поменяйте название будущего файла зоны и перейдите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
## Создание A-записи
[step num="7"]
Данный раздел инструкции в большей степени предназначен для проверки ранее проделанных шагов.
[/step]
**Ресурсная запись** — единица хранения и передачи информации в DNS, заключает в себе сведения о соответствии какого-либо имени с определёнными служебными данными.
**Запись A** — запись позволяющая по доменному имени узнать IP-адрес.
**Запись PTR** — запись обратная A записи.
- В Диспетчере DNS выберите каталог созданной ранее зоны внутри каталога Зон Прямого Просмотра. В правой части Диспетчера, где отображается содержимое каталогов, правой кнопки мыши вызовите выпадающее меню и запустите команду "Создать узел (A или AAAA)...":
- Откроется окно создания Нового узла, где понадобится вписать в соответствующие поля имя узла (без доменной части, в качестве доменной части используется название настраиваемой зоны) и IP-адрес. Здесь же имеется чек-бокс "Создать соответствующую PTR-запись" — чтобы проверить работу обеих зон (прямой и обратной), чекбокс должен быть активирован:
Если поле имени остается пустым, указанный адрес будет связан с именем доменной зоны.
- Также можно добавить записи для других серверов:
- Добавив все необходимые узлы, нажмите Готово.
## Проверка DNS сервера
- Проверьте изменения в каталогах обеих зон (на примере ниже в обеих зонах появилось по 2 новых записи):
- Откройте командную строку (cmd) или PowerShell и запустите команду nslookup:
Из вывода команды видно, что по умолчанию используется DNS-сервер example-2012.com с адресом 10.0.1.6.
Чтобы окончательно убедиться, что прямая и обратная зоны работают как положено, можно отправить два запроса:
- Запрос по домену;
- Запрос по IP-адресу:
В примере получены подходящие ответы по обоим запросам.
- Можно попробовать отправить запрос на какой-нибудь внешний ресурс:
В дополнение к имени домена и адресам появилась строчка "Non-authoritative answer:", это значит, что наш DNS-сервер не обладает необходимой полнотой информации по запрашиваемой зоне, а информация выведенная ниже, хоть и получена от авторитетного сервера, но сама в таком случае не является авторитетной.
Для сравнения все те же запросы выполнены на сервере, где не были настроены прямая и обратная зоны:
[step num="8"]
Здесь машина сама себе назначена предпочитаемым DNS-сервером. Доменное имя DNS-сервера отображается как неопознанное, поскольку нигде нет ресурсных записей для IP-адреса (10.0.1.7). По этой же причине запрос 2 возвращает ошибку (Non-existent domain).
https://serverspace.uz/support/help/net-framework-v-os-windows.mdОбщая информация о .NET Framework и способы установки в ОС Windows. Пошаговое руководство по установке с использованием Windows Update
Программная платформа** .NET Framework** была разработана компанией Microsoft для того, чтобы дать возможность разработчикам абстрагироваться от системного окружения конкретного компьютера, на котором будет исполняться их программа. В этом случае не будет иметь значения какая операционная система установлена, какой процессор и другое аппаратное обеспечение используется — главное, чтобы на компьютере была установлена среда .NET Framework, которая обеспечивает исполнение кода и взаимодействие с необходимыми компонентами окружения. Для работы с этой платформой были разработаны или адаптированы специальные языки программирования C#.NET, VB.NET, C++.NET, J#.NET, F#.NET и т.д.
Достаточно большое количество программ написано под эту платформу, поэтому нужно знать, как установить ее на сервер.
.NET Framework актуальной версии (4.x) уже включен на серверах Windows, развернутых из наших шаблонов.
Если требуется включить предыдущую версию (3.5) или же сервер развернут из собственного шаблона/установлен из дистрибутива, можно воспользоваться нижеследующей инструкцией.
## Установка компонента .NET Framework
[step num="1"]
Включение компонента .NET Framework в OC Windows Server возможно с использованием Windows Update или с использованием локального хранилища компонентов (потребуются файлы с дистрибутива ОС). Рассмотрим оба варианта.
[/step]
## Вариант 1 — через Windows Update
[step num="2"]
Самый простой и быстрый способ, при наличии подключения к сети Интернет, это установка компонента .NET Framework 3.5 с сервера Microsoft Windows Update (актуально для Windows Server 2008R2/2012R2/2016/2019).
[/step]
[step num="3"]
Запускаем PowerShell с правами администратора: Пуск — правый клик по ярлыку Windows Powershell — Запуск от имени Администратора (Run as Administrator):
[/step]
[step num="4"]
В открывшемся окне PowerShell набираем команду:
```
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
```
[/step]
[step num="5"]
Eсли установка производится на Windows Server 2008R2:
```
DISM /Online /Enable-Feature /FeatureName:NetFx3
```
[/step]
[step num="6"]
Нажимаем Enter и ожидаем завершения установки:
[/step]
## Вариант 2 — с использованием локального хранилища компонентов
[step num="7"]
Для установки с использованием локального хранилища (или дистрибутива ОС Windows) через графический интерфейс (Windows Server 2012R2/2016/2019 ):
[/step]
[step num="8"]
Запускаем Диспетчер серверов (Server Manager), нажимаем Управление (Manage) – Добавить роли и компоненты (Add Roles and Features):
[/step]
[step num="9"]
В появившемся окне нажимаем Далее (Next):
[/step]
[step num="10"]
В окне Выбор типа установки (Select installation type) убеждаемся, что выбран пункт установка ролей и компонентов (Role-based or feature-based installation), нажимаем Далее (Next):
[/step]
[step num="11"]
Выбор целевого сервера (Select destination server) – проверяем, что в списке выбран требуемый сервер, нажимаем Далее (Next):
[/step]
[step num="12"]
Пропускаем Выбор ролей сервера (Select server roles), нажимаем Далее (Next):
[/step]
[step num="13"]
В окне Выбор компонентов (Select features) находим в списке требуемую версию .NET Framework и отмечаем галкой, нажимаем Далее (Next):
[/step]
[step num="14"]
В случае установки актуальной версии .NET Framework (4.x) в данном окне можно нажимать кнопку Установить (Install), после чего начнется процесс инсталляции из локального хранилища. Если же мы устанавливаем предыдущую версию (3.5), то появится предупреждение, что необходимые для установки файлы отсутствуют и нужно указать путь к данным файлам. Понадобится либо дистрибутив установленной версии дистрибутива ОС Windows, либо копия папки SourcesSxS с этого дистрибутива. Нажимаем на ссылку Указать альтернативный исходный путь (Specify an alternate source path):
[/step]
[step num="15"]
В открывшейся форме указываем путь к папке SourcesSxS дистрибутива текущей версии (или копии этой папки – в нашем примере папка скопирована на локальный диск в c:tempsxs), нажимаем ОК:
[/step]
[step num="16"]
Вернувшись на форму Подтверждение компонентов установки (Confirm installation selections) нажимаем Установить (Install) и ожидаем окончания установки. Закрываем форму:
[/step]
[step num="17"]
Установка на Windows server 2008R2 также производится через Диспетчер серверов:
[/step]
[step num="18"]
Запускаем Диспетчер серверов, переходим в раздел Компоненты, нажимаем Добавить компоненты:
[/step]
[step num="19"]
В списке компонентов находим и ставим галку на .NET Framework, нажимаем Далее:
[/step]
[step num="20"]
В следующем окне нажимаем кнопку Установить:
[/step]
[step num="21"]
Дожидаемся успешного окончания установки и закрываем окно:
[/step]
[step num="22"]
Установка актуальной версии .NET Framework (4.x) в ОС Windows Server 2008R2 через добавление компонентов не работает. Для инсталляции потребуется скачать автономный установщик с сайта Microsoft (например, по ссылке [https://www.microsoft.com/ru-RU/download/details.aspx?id=55167](https://www.microsoft.com/ru-RU/download/details.aspx?id=55167)) и установить как обычную программу.
https://serverspace.uz/support/help/how-to-configure-a-dhcp-server-in-windows-server-2016.mdВ статье рассматривается пошаговая установка и настройка DHCP-сервера на ОС Windows Server 2016 для одной подсети
**DHCP** — это протокол динамической настройки узла, который позволяет автоматизировать настройку сетевых параметров клиента, таких как IP-адрес, шлюз, DNS, маска подсети. DHCP-сервер контролирует выдачу IP—адресов, предотвращает их дублирование и освобождает неиспользуемые адреса.
Ниже рассмотрим как установить и настроить DHCP-сервер на ОС Windows Server 2016 для одной подсети.
## Процесс установки DHCP
- Запустим Диспетчер серверов и выберем "Add roles and features". Выберем первый пункт "Role — based or feature — based installation":
- Укажем сервер, на который будем устанавливать роль DHCP:
- Далее необходимо найти и выбрать роль DHCP в списке. Соглашаемся добавить компоненты, требуемые для правильной работы службы DHCP. Так как компоненты добавлены на шаге "Server Roles", то шаг "Features" пропускаем:
- Мастер напомнит вам о то, что нужно заранее спланировать подсети, области и исключения:
- Проверяем устанавливаемые компоненты и нажимаем "Install":
- После завершения установки можно начать первичную настройку DHCP. Переходим по ссылке "Complete DHCP configuration":
Процесс первичной настройки проходит в два этапа:
1. Создание "Группы безопасности" для управления этим DHCP—сервером. Всего их две:
- DHCP Administrators — у членов группы имеются полные права на управление DHCP—сервером;
- DHCP Users — у членов группы есть возможность просмотра настроек сервера и списка подключенных устройств.
2. Авторизация DHCP-сервера в Active Directory (если он присоединен к домену). Данная настройка нужна, чтобы избежать появления в сети посторонних DHCP-серверов. Сервер должен пройти авторизацию чтобы служба DHCP запустилась:
- Вписываем учетные данные администратора и жмем кнопку "Commit". Если сервер не присоединен к домену, то выбираем последний пункт:
- Если всё сделано верно, мастер оповещает об успешном выполнении настройки:
## Процесс настройки DHCP
[step num="1"]
Запускаем "Диспетчер серверов". Находим пункт DHCP в открывающемся списке "Tools":
[/step]
[step num="2"]
В нашем варианте мы рассматриваем выдачу IPv4 адресов, поэтому нужно создать новую область (Scope) — пул IP-адресов, выдаваемых клиентам. Нажимаем правой кнопкой мыши на IPv4 и выбираем "New Scope...":
[/step]
[step num="3"]
Открывается Мастер создания области, где мы вводим имя пула. Если необходимо, то можно ввести описание:
[/step]
[step num="4"]
Определяем границы нашего пула, задав начальный и конечный IP-адрес. Также вводим маску подсети:
[/step]
[step num="5"]
В случае необходимости можно добавить в исключения один или несколько IP-адресов из создаваемого пула. В этом диапазоне могут находиться сетевые устройства которым уже назначен статический IP. Тут же есть параметр задержки ответа сервера перед отправкой данных на запрос от хоста:
[/step]
[step num="6"]
Далее можно указать время аренды IP-адреса. По умолчанию выставлено 8 дней:
[/step]
[step num="7"]
Теперь Мастер предложит указать сетевые параметры (Gateway, DNS, WINS), выдаваемые клиентам в сети:
[/step]
[step num="8"]
Укажем адрес сетевого шлюза:
[/step]
[step num="9"]
Далее введем имя домена и DNS-сервер. DNS можно найти либо по имени сервера, либо указать IP-адрес:
[/step]
[step num="10"]
Следующий этап позволяет добавить WINS-сервер:
[/step]
[step num="11"]
Выбираем "Активировать" заданную нами область сейчас:
[/step]
[step num="12"]
После настройки пула можно проверить работает ли сервер. Посмотреть подключенных клиентов можно перейдя в раздел "Address Leases". В нашем случае видим, что подключено одно устройство:
[/step]
[step num="13"]
Если мы зайдем на клиентскую машину, то можем проверить правильность полученных настроек:
[/step]
[step num="14"]
Хоть мы и рассматривали настройку на Windows Server 2016, данная инструкция так же подойдет и для Windows Server 2008—2012, так как процесс не сильно отличается.
https://serverspace.uz/support/help/nastrojka-openssh-servera-na-windows-server-2019.mdИнструкция как подключиться к серверу Windows по SSH: настройка и запуск SSH-сервера, подключение к серверу и операции копирования файлов
Прежде всего, вы можете спросить, зачем нам вообще нужен **SSH-сервер на Windows-сервере**? В среде Windows SSH может показаться не очень полезным. В конце концов, у нас есть RDP и PowerShell Remoting с WinRM, которые уже обеспечивают мощные возможности удаленного управления. Тем не менее, SSH в Windows определенно имеет свои преимущества. Среди них можно выделить такие вещи, как:
- Простое подключение и управление Windows-серверами из Linux или MacOS с помощью встроенных инструментов.
- Подключение из систем Windows к серверам Linux — это простое решение с интегрированным SSH-клиентом. Есть много администраторов Linux, которые должны управлять серверами на работе с помощью ОС Windows, и всегда должны устанавливать некоторые дополнительные инструменты, такие как PuTTY или WinSCP. Теперь они могут использовать знакомые команды SSH прямо из командной строки Windows.
- Используются те же инструменты удаленного управления для серверов Linux и Windows (SSH, SCP, аутентификация с открытым ключом и т. д.).
- Кроссплатформенный PowerShell Remoting. PowerShell Core использует SSH для включения удаленного сеанса PowerShell в Windows, MacOS и Linux. В отличие от WinRM PowerShell Remoting — Windows PowerShell работает только на Windows.
- Вместе с подсистемой Windows для Linux вы можете получить Linux-подобные сеансы SSH с Bash и обычные инструменты Linux также на сервере Windows, который позволяет администраторам Linux использовать свои знания для управления системами Windows.
- И наоборот: администраторы Windows могут использовать PowerShell для управления сервером Linux, если на нем будет присутствовать соответствующий shell от Microsoft.
- Просто другой вариант для удаленного управления, который дает еще большую гибкость.
## Установка OpenSSH в Windows Server 2019
- Используя GUI
[step num="1"]
Открываем **Settings** — **Apps & features** — **Manage optional features**:
[/step]
[step num="2"]
Нажимаем **Add a feature**, ищем **OpenSSH Server** — **Install**:
[/step]
[step num="3"]
На предыдущем экране дожидаемся окончания процесса инсталляции. OpenSSH сервер можем считать установленным.
[/step]
[step num="4"]
Обращаем внимание, что установка этим методом автоматически создаст правило Windows Firewall, с названием "OpenSSH-Server-In-TCP", открывающее 22 порт для входящих подключений.
[/step]
[step num="5"]
## Используя PowerShell:
Проверим, присутствует ли на нашей системе встроенный OpenSSH:
```
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
```
[/step]
[step num="6"]
В ответ должны получить:
```yaml
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent #или Install, если клиент уже установлен
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
```
[/step]
[step num="7"]
Устанавливаем клиент, если он не установлен:
```
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```
[/step]
[step num="8"]
Для установки сервера вводим:
```
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
```
[/step]
[step num="9"]
В обоих случаях вывод должен быть следующим:
```yaml
Path :
Online : True
RestartNeeded : False
```
[/step]
## Первичная конфигурация SSH-сервера
[step num="10"]
По умолчанию при подключении к OpenSSH-серверу используется командная строка Windows. Вы можете использовать практически любую оболочку на вашем компьютере с Windows через SSH-соединение. Даже возможно использовать Bash, когда подсистема Windows для Linux (WSL) также установлена на целевой машине. Также возможно изменение оболочки по умолчанию на SSH-сервере на нечто иное, чем командная оболочка. Для этого ключ реестра "DefaultShell" необходимо изменить.
Сделать это можно как через редактор реестра regedit.exe, открыв в нем следующий путь: HKEY_LOCAL_MACHINESOFTWAREOpenSSH и изменив в нем параметр DefaultShell, указав в нем полный путь до исполняемого файла необходимой командной строки, например:
```
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
```
[/step]
[step num="11"]
Тоже самое можно сделать используя PowerShell:
```
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force
```
[/step]
[step num="12"]
Проверим настройки Windows Firewall, используя для этого PowerShell:
```
Get-NetFirewallRule -Name *ssh*
```
[/step]
[step num="13"]
Введя данную команду мы получим параметры правила, разрешающего SSH-подключение к серверу. Если правила не оказалось, введем следующую команду, создав его:
```
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
```
[/step]
## Запуск службы OpenSSH
[step num="14"]
После установки функции SSH-сервера нам остается только его запустить:
```
Start-Service sshd
```
[/step]
[step num="15"]
Опционально можно установить для службы sshd автоматический запуск:
```
Set-Service -Name sshd -StartupType 'Automatic'
```
[/step]
## Подключение к серверу
[step num="16"]
Теперь мы готовы к работе и можем подключиться через установленное приложение к нашему хосту. Это можно осуществить либо с Windows 10, компьютера с Linux, с putty.exe на более старой машине с Windows, либо с Bash в настольной операционной системе от Microsoft. Все, что вам нужно, это найти какой-либо SSH-клиент, ввести в него имя пользователя, имя вашего сервера или IP-адрес и подключиться.
[/step]
[step num="17"]
Для SSH-клиента в PowerShell синтаксис будет таким:
```bash
Ssh username@servername
```
[/step]
При первом подключении с неизвестного хоста будет показано следующее сообщение:
Ответив на него yes, хост подключения будет добавлен в список известных хостов сервера. После чего необходимо ввести пароль пользователя (по соображениям безопасности вводимые символы отображаться не будут). После успешного подключения отобразится интерфейс используемой командной строки:
###
## Копирование файлов
Также, как с сервером OpenSSH в любой системе * nix, вы можете использовать SCP для копирования файлов на сервер или с сервера.
Например, администратор Linux может быстро получить файл журнала с сервера Windows с помощью той же команды, что и для сервера Linux.
```bash
scp username@servername:C:/inetpub/logs/LogFiles/W3SVC1/u_ex191017.log u_ex191017.log
```
Когда вы подключаетесь из Bash/*nix к машине с Windows, нужно помнить, что пути Windows также должны указываться с обычными косыми чертами Unix вместо обратных косых черт. Например, C:/Windows вместо C:Windows.
### **sshd_config**
Аналогично операционным системам семейства Linux, OpenSSH Server в Windows имеет в своем составе особый файл, где хранятся все параметры для выполнения более подробных настроек. Например, для ограничения входа.
По умолчанию файл конфигурации находится в "%programdata%sshsshd_config".
Самые различные настройки, применимые к этому файлу можно найти на сайте [https://man.openbsd.org/sshd_config](https://man.openbsd.org/sshd_config).
Кроме того, у Microsoft есть документация для [специфичных настроек Windows](https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration).
## Больше информации
Дополнительную информацию об OpenSSH в Windows можно найти на сайте [docs.microsoft.com](https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview) или в [проекте GitHub](https://github.com/PowerShell/openssh-portable) разветвления OpenSSH от Microsoft.
https://serverspace.uz/support/help/configuring-a-dns-server-on-windows-server-2012-or-later.mdВ инструкции описан процесс установки и настройки DNS сервера для Windows Server 2012 и выше, описаны методы проверки работоспособности DNS сервера
**DNS (Domain Name System, Система Доменных имен)** – система, позволяющая преобразовать доменное имя в IP-адрес сервера и наоборот.
**DNS-сервер** – это сетевая служба, которая обеспечивает и поддерживает работу DNS. Служба DNS-сервера не требовательна к ресурсам машины. Если не подразумевается настройка иных ролей и служб на целевой машине, то минимальной конфигурации будет вполне достаточно.
Настроим DNS-сервер пошагово.
## Настройка сетевого адаптера для DNS-сервера
[step num="1"]
Установка DNS-сервера предполагает наличие доменной зоны, поэтому необходимо создать частную сеть в личном кабинете и подключить к ней виртуальные машины.
[/step]
[step num="2"]
После того, как машина будет присоединена к двум сетям, важно не перепутать, какое из подключений требует настройки. Первичный сетевой адаптер настроен автоматически с самого начала, через него открыт доступ к интернету, в то время как на дополнительно подключенных сетевых адаптерах доступа в интернет нет, пока не будет произведена ручная настройка:
[/step]
[step num="3"]
Наведя курсор на значок сети в системном трее, можно вызвать всплывающую подсказку с краткими сведениями о сетях. Из примера выше видно, что присоединённая сеть это Network 3.
[/step]
[step num="4"]
Далее предстоит проделать цепочку действий:
- Нажать правой клавишей мыши Пуск, в выпадающем меню выбрать пункт Сетевые подключения;
- Правой кнопкой мыши нажать на необходимый сетевой адаптер, в меню выбрать Свойства;
- В окне свойств выбрать IPv4 и нажать на кнопку Свойства;
- Заполнить соответствующие поля необходимыми данными:
[/step]
[step num="5"]
Здесь в качестве предпочитаемого DNS-сервера машина назначена сама себе, альтернативным назначен dns.google [8.8.8.8].
[/step]
## Установка роли DNS-сервера
[step num="6"]
Для установки дополнительных ролей на сервер используется Мастер Добавления Ролей и Компонентов, который можно найти в Диспетчере Сервера.
[/step]
[step num="7"]
На верхней навигационной панели Диспетчера сервера справа откройте меню Управление, выберите опцию Добавить Роли и Компоненты:
[/step]
[step num="8"]
Откроется окно Мастера, в котором рекомендуют убедиться что:
1. Учётная запись администратора защищена надёжным паролем.
2. Настроены сетевые параметры, такие как статические IP-адреса.
3. Установлены новейшие обновления безопасности из центра обновления Windows.
[/step]
[step num="9"]
Убедившись, что все условия выполнены, нажимайте Далее;
[/step]
[step num="10"]
Выберите Установку ролей и компонентов и нажмите Далее:
[/step]
[step num="11"]
Выберите необходимы сервер из пула серверов и нажмите Далее:
[/step]
[step num="12"]
Отметьте чек-боксом роль DNS-сервер и перейдите Далее:
[/step]
[step num="13"]
Проверьте список компонентов для установки, подтвердите нажатием кнопки Добавить компоненты:
[/step]
[step num="14"]
Оставьте список компонентов без изменений, нажмите Далее:
[/step]
[step num="15"]
Прочитайте информацию и нажмите Далее:
[/step]
[step num="16"]
В последний раз проверьте конфигурацию установки и подтвердите решение нажатием кнопки Установить:
[/step]
[step num="16"]
Финальное окно Мастера сообщит, что установка прошла успешно, Мастер установки можно закрыть:
[/step]
## Создание зон прямого и обратного просмотра
**Доменная зона** — совокупность доменных имён в пределах конкретного домена.
**Зоны прямого просмотра** предназначены для сопоставления доменного имени с IP-адресом.
**Зоны обратного просмотра** работают в противоположную сторону и сопоставляют IP-адрес с доменным именем.
Создание зон и управление ими осуществляется при помощи Диспетчера DNS.
Перейти к нему можно в правой части верхней навигационной панели, выбрав меню Средства и в выпадающем списке пункт DNS:
Создание зоны прямого просмотра
- Выделите каталог Зоны Прямого Просмотра, запустите Мастер Создания Новой Зоны с помощью кнопки Новая зона на панели инструментов сверху:
- Откроется окно Мастера с приветствием, нажмите Далее:
- Из предложенных вариантов выберите Основная зона и перейдите Далее:
- Укажите имя зоны и нажмите Далее:
- При необходимости поменяйте название будущего файла зоны и перейдите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
Создание зоны обратного просмотра
- Выделите в Диспетчере DNS каталог Зоны Обратного Просмотра и нажатием кнопки Новая зона на панели инструментов сверху запустите Мастер Создания Новой Зоны:
- Выберите тип Основная Зона, перейдите Далее:
- Выберите назначение для адресов IPv4, нажмите Далее:
- Укажите идентификатор сети (первые три октета сетевого адреса) и следуйте Далее:
- При необходимости поменяйте название будущего файла зоны и перейдите Далее:
- Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
- Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
## Создание A-записи
Данный раздел инструкции в большей степени предназначен для проверки ранее проделанных шагов.
**Ресурсная запись** — единица хранения и передачи информации в DNS, заключает в себе сведения о соответствии какого-либо имени с определёнными служебными данными.
**Запись A** — запись, позволяющая по доменному имени узнать IP-адрес.
**Запись PTR** — запись, обратная A записи.
- В Диспетчере DNS выберите каталог созданной ранее зоны внутри каталога Зон Прямого Просмотра. В правой части Диспетчера, где отображается содержимое каталогов, правой кнопки мыши вызовите выпадающее меню и запустите команду "Создать узел (A или AAAA)...":
- Откроется окно создания Нового Узла, где понадобится вписать в соответствующие поля имя узла (без доменной части, в качестве доменной части используется название настраиваемой зоны) и IP-адрес. Здесь же имеется чек-бокс Создать соответствующую PTR-запись — чтобы проверить работу обеих зон (прямой и обратной), чек-бокс должен быть активирован:
Если поле имени остается пустым, указанный адрес будет связан с именем доменной зоны.
- Также можно добавить записи для других серверов:
- Добавив все необходимые узлы, нажмите Готово.
## Проверка
- Проверьте изменения в каталогах обеих зон (на примере ниже в обеих зонах появилось по 2 новых записи):
- Откройте командную строку (cmd) или PowerShell и запустите команду nslookup:
Из вывода команды видно, что по умолчанию используется DNS-сервер example-2012.com с адресом 10.0.1.6.
Чтобы окончательно убедиться, что прямая и обратная зоны работают как положено, можно отправить два запроса:
- Запрос по домену;
- Запрос по IP-адресу:
В примере получены подходящие ответы по обоим запросам.
- Можно попробовать отправить запрос на какой-нибудь внешний ресурс:
В дополнение к имени домена и адресам появилась строчка "Non-authoritative answer", это значит, что наш DNS-сервер не обладает необходимой полнотой информации по запрашиваемой зоне, а информация выведенная ниже, хоть и получена от авторитетного сервера, но сама в таком случае не является авторитетной.
Для сравнения все те же запросы выполнены на сервере, где не были настроены прямая и обратная зоны:
Здесь машина сама себе назначена предпочитаемым DNS-сервером. Доменное имя DNS-сервера отображается как неопознанное, поскольку нигде нет ресурсных записей для IP-адреса (10.0.1.7). По этой же причине запрос 2 возвращает ошибку (Non-existent domain).
## Новые и измененные функции DNS в Windows Server 2016
В Windows Server 2016 DNS-сервер предлагает обновления в следующих областях:
### Политики DNS-серверов
Теперь вы сможете использовать:
- DNS-политики для управления трафиком на основе геолокации
- Интеллектуальные ответы DNS в зависимости от времени суток, для управления одним DNS-сервером, настроенным для развертывания с разделением
- Применять фильтры к DNS-запросам и многое другое.
Конкретное описание данных возможностей:
**Балансировка нагрузки приложений.**
Когда вы развернули несколько экземпляров приложения в разных местах, вы можете использовать политику DNS для балансировки нагрузки трафика между разными экземплярами приложения, динамически распределяя нагрузку трафика для приложения.
**Управление трафиком на основе геолокации**.
Вы можете использовать DNS-политику, чтобы разрешить первичным и вторичным DNS-серверам отвечать на запросы DNS-клиентов на основе географического положения как клиента, так и ресурса, к которому клиент пытается подключиться, предоставляя клиенту IP-адрес ближайшего ресурса. .
**Разделенный Brain-DNS.
** При разделенном DNS записи DNS распределяются по разным областям зоны на одном и том же DNS-сервере, а DNS-клиенты получают ответ в зависимости от того, являются ли клиенты внутренними или внешними. Вы можете настроить разделенный DNS для зон, интегрированных с Active Directory, или для зон на автономных DNS-серверах.
**Фильтрация.**
Вы можете настроить политику DNS для создания фильтров запросов на основе предоставленных вами критериев. Фильтры запросов в DNS-политике позволяют настроить DNS-сервер для ответа настраиваемым образом на основе DNS-запроса и DNS-клиента, отправляющего DNS-запрос.
**Forensics.**
Вы можете использовать политику DNS для перенаправления вредоносных DNS-клиентов на несуществующий IP-адрес вместо того, чтобы направлять их на компьютер, к которому они пытаются подключиться.
**Перенаправление по времени суток.
** Политику DNS можно использовать для распределения трафика приложения между различными географически распределенными экземплярами приложения с помощью политик DNS, основанных на времени суток.
**Вы также можете использовать политики DNS для зон DNS, интегрированных с Active Directory.**
### Ограничение скорости отклика (RRL)
**Теперь вы cможете настроить параметры RRL, чтобы контролировать, как отвечать на запросы к DNS-клиенту, когда ваш сервер получает несколько запросов, направленных на одного и того же клиента.** Сделав это, вы можете предотвратить отправку атаки типа "Отказ в обслуживании" (Dos) с использованием ваших DNS-серверов.
Например, бот-сеть может отправлять запросы на ваш DNS-сервер, используя в качестве отправителя IP-адрес третьего компьютера. Без RRL ваши DNS-серверы могут отвечать на все запросы, переполняя третий компьютер. При использовании RRL вы можете настроить следующие параметры:
**Количество ответов в секунду.** Это максимальное количество раз, когда один и тот же ответ дается клиенту в течение одной секунды.
**Количество ошибок в секунду.** Это максимальное количество раз, когда ответ об ошибке отправляется одному и тому же клиенту в течение одной секунды.
**Окно между запросами.** Это количество секунд, на которое приостанавливаются ответы клиенту, если сделано слишком много запросов.
**Скорость утечки.** Это то, как часто DNS-сервер отвечает на запрос во время приостановки ответов. Например, если сервер приостанавливает ответы клиенту на 10 секунд, а уровень утечки равен 5, сервер по-прежнему отвечает на один запрос на каждые 5 отправленных запросов. Это позволяет обычным клиентам получать ответы, даже если DNS-сервер применяет ограничение скорости ответов в их подсети или полном доменном имени.
**TC rate.** Эта функция используется, чтобы сообщить клиенту о попытке соединения с TCP, когда ответы клиенту приостановлены. Например, если скорость TC равна 3, и сервер приостанавливает ответы данному клиенту, сервер выдает запрос на TCP-соединение для каждых 3 полученных запросов. Убедитесь, что значение скорости TC ниже, чем скорость утечки, чтобы дать клиенту возможность подключиться через TCP перед утечкой ответов.
**Максимум откликов.** Это максимальное количество ответов, которые сервер выдает клиенту, пока ответы приостановлены.
**Белые домены.** Это список доменов, которые нужно исключить из настроек RRL.
**Белые подсети.** Это список подсетей, которые необходимо исключить из настроек RRL.
**Интерфейсы серверов белого списка.** Это список интерфейсов DNS-серверов, которые необходимо исключить из настроек RRL.
### Аутентификация именованных объектов на основе DNS (DANE)
Теперь вы сможете использовать поддержку DANE (RFC 6394 и 6698), чтобы указать своим DNS-клиентам, от какого CA они должны ожидать выдачи сертификатов для доменных имен, размещенных на вашем DNS-сервере.
Это предотвращает форму атаки "main in the middle", когда кто-то может повредить кэш DNS и указать DNS-имя на свой собственный IP-адрес.
### Поддержка неизвестных записей
"Неизвестная запись" — это RR, формат RDATA которой неизвестен DNS-серверу. Недавно добавленная поддержка неизвестных типов записей (RFC 3597) означает, что вы cvожете добавлять неподдерживаемые типы записей в зоны DNS-сервера Windows в двоичном формате по сети.
Распознаватель кэширования Windows уже имеет возможность обрабатывать неизвестные типы записей. DNS-сервер Windows не выполняет никакой конкретной обработки неизвестных записей, но отправляет их обратно в ответах, если для них получены запросы.
### Корневые подсказки IPv6
Корневые подсказки IPV6, опубликованные IANA, были добавлены на DNS-сервер Windows. Запросы имен в Интернете теперь могут использовать корневые серверы IPv6 для разрешения имен.
## Доработка поддержки Windows PowerShell
В Windows Server 2016 представлены следующие новые командлеты (cmdlets) и параметры Windows PowerShell:
**Add-DnsServerRecursionScope** - Этот командлет создает новую область рекурсии на DNS-сервере. Области рекурсии используются политиками DNS для указания списка серверов пересылки, которые будут использоваться в запросе DNS.
**Remove-DnsServerRecursionScope** - Этот командлет удаляет существующие области рекурсии.
**Set-DnsServerRecursionScope** - Этот командлет изменяет параметры существующей области рекурсии.
**Get-DnsServerRecursionScope** - Этот командлет извлекает информацию о существующих областях рекурсии.
**Add-DnsServerClientSubnet** - Этот командлет удаляет существующие подсети DNS-клиентов.
**Set-DnsServerClientSubnet** - Этот командлет изменяет параметры существующей подсети DNS-клиента.
**Get-DnsServerClientSubnet** - Этот командлет извлекает информацию о существующих подсетях DNS-клиентов.
**Add-DnsServerQueryResolutionPolicy** - Этот командлет создает новую политику разрешения запросов DNS. Политики разрешения запросов DNS используются для указания того, как и следует ли отвечать на запрос на основе различных критериев.
**Remove-DnsServerQueryResolutionPolicy** - Этот командлет удаляет существующие политики DNS.
**Set-DnsServerQueryResolutionPolicy** - Этот командлет изменяет параметры существующей политики DNS.
**Get-DnsServerQueryResolutionPolicy** - Этот командлет извлекает информацию о существующих политиках DNS.
**Enable-DnsServerPolicy** - Этот командлет включает существующие политики DNS.
**Disable-DnsServerPolicy** - Этот командлет отключает существующие политики DNS.
**Add-DnsServerZoneTransferPolicy** - Этот командлет создает новую политику передачи зоны DNS-сервера. Политики передачи зоны DNS определяют, следует ли отклонять или игнорировать передачу зоны на основе различных критериев.
**Remove-DnsServerZoneTransferPolicy** - Этот командлет удаляет существующие политики передачи зон DNS-сервера.
**Set-DnsServerZoneTransferPolicy.** - Этот командлет изменяет параметры существующей политики переноса зоны DNS-сервера.
**Get-DnsServerResponseRateLimiting** - Этот командлет извлекает параметры RRL.
**Set-DnsServerResponseRateLimiting** - Этот командлет изменяет настройки RRL.
**Add-DnsServerResponseRateLimitingExceptionlist** - Этот командлет создает список исключений RRL на DNS-сервере.
**Get-DnsServerResponseRateLimitingExceptionlist** - Этот командлет извлекает списки исключений RRL.
**Remove-DnsServerResponseRateLimitingExceptionlist** - Этот командлет удаляет существующий список исключений RRL.
**Set-DnsServerResponseRateLimitingExceptionlist** - Этот командлет изменяет списки исключений RRL.
**Add-DnsServerResourceRecord** - Этот командлет был обновлен для поддержки неизвестного типа записи.
**Get-DnsServerResourceRecord** - Этот командлет был обновлен для поддержки неизвестного типа записи.
**Remove-DnsServerResourceRecord** - Этот командлет был обновлен для поддержки неизвестного типа записи.
**Set-DnsServerResourceRecord** - Этот командлет был обновлен для поддержки неизвестного типа записи.
С дополнительными сведениями вы можете ознакомится в следующих разделах справочника по командам Windows PowerShell для Windows Server 2016 от Microsoft:
[Powershell DNS Server](https://docs.microsoft.com/en-us/powershell/module/dnsserver/?view=windowsserver2022-ps)
[Powershell DNS Client](https://docs.microsoft.com/en-us/powershell/module/dnsclient/?view=windowsserver2022-ps)
https://serverspace.uz/support/help/copy-files-and-run-commands-through-ssh.mdКак скопировать файлы и запустить команды через SSH на удаленном сервере с локальной ОС семейства Linux или Windows. Подробная инструкция.
Подключение к серверу посредством **SSH** – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды **scp **в Linux-системах, либо с помощью **pscp.****exe**, входящей в состав SSH-клиента Putty для операционной системы Windows.
[step num="1"]
## Работаем на ОС семейства Linux
[/step]
[step num="2"]
Используем следующий формат команд:
```bash
scp [модификатор] [источник] [место_назначения]
```
[/step]
[step num="3"]
Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:
```
[пользователь]@[сервер]:[путь_к_файлу]
```
[/step]
[step num="4"]
После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.
[/step]
[step num="5"]
Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:
```bash
scp /home/user/file.tgz root@123.123.123.123:/root
```
[/step]
[step num="6"]
Чтобы скачать этот же файл с удаленного сервера:
```bash
scp root@123.123.123.123:/root/file.tgz /home/user
```
[/step]
[step num="7"]
За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:
```bash
scp file1.tgz file2.tgz root@123.123.123.123:/root
```
[/step]
[step num="8"]
Для копирования каталога потребуется задействовать модификатор команды **–****r**. Копируем локальный каталог /home/user/dir на удаленный сервер:
```bash
scp –r /home/user/dir root@123.123.123.123:/root
```
[/step]
[step num="9"]
В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция **–****P**. Если нужно подключиться через порт 10022:
```bash
scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root
```
[/step]
[step num="10"]
Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить **scp** без параметров и прочитать краткую справку.
[/step]
[step num="11"]
## Работаем на ОС семейства Windows
[/step]
[step num="11"]
При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:
```
pscp.exe C:Tempfile.tgz root@123.123.123.123:/root
```
[/step]
[step num="12"]
В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — "Путь к файлу":
```
"C:Program FilesPuttypscp.exe" C:Tempfile.tgz root@123.123.123.123:/root
```
[/step]
[step num="13"]
Как и в случае с scp, запустив **pscp.****exe** без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.
[/step]
## Запуск команд на удаленном сервере через SSH-подключение
[step num="14"]
Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.
[/step]
[step num="15"]
## Работаем на ОС семейства Linux
[/step]
[step num="16"]
Синтаксис команды:
```bash
ssh [пользователь]@[сервер] '[команда]'
```
[/step]
[step num="17"]
При запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.
Например, получим информацию об установленной на удаленном сервере операционной системе:
```bash
ssh root@123.123.123.123 'uname -a'
```
[/step]
[step num="18"]
Чтобы запустить несколько команд за одно подключение, можно использовать символ ";" в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:
```bash
ssh root@123.123.123.123 'ifconfig; netstat -anp tcp'
```
[/step]
[step num="19"]
В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:
```bash
ssh root@123.123.123.123 'bash -s' < /home/user/myscript.sh
```
[/step]
[step num="20"]
В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.
[/step]
Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.
[step num="21"]
## Работаем на ОС семейства Windows
[/step]
[step num="22"]
Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.
[/step]
[step num="23"]
Для запуска команды на удаленном сервере используется следующий синтаксис:
```
plink.exe [сервер] -ssh -l [пользователь] "[команда]"
```
[/step]
[step num="24"]
Проверим конфигурацию сетевых интерфейсов:
```
plink.exe 123.123.123.123 -ssh -l root "ifconfig"
```
[/step]
[step num="25"]
Как и при работе с командой SSH в Linux, plink.exe позволяет использовать ";" в качестве разделителя для запуска нескольких команд:
```
plink.exe 123.123.123.123 -ssh -l root "ifconfig; netstat -anp tcp"
```
[/step]
[step num="26"]
А запуск команд из локального файла можно реализовать с помощью дополнительного ключа **-****m**:
```
plink.exe 123.123.123.123 -ssh -l root -m "C:Tempmyscript.sh"
```
[/step]
[step num="27"]
Запустив команду plink.exe без параметров, можно ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов команды.
[/step][/about/news/generacziya-ssh-klyucha-v-paneli-upravleniya/](https://serverspace.uz/about/news/generacziya-ssh-klyucha-v-paneli-upravleniya/)
https://serverspace.uz/support/help/zhurnaly-windows.mdКак просматривать и работать с журналами в ОС Windows. Описание интерфейса программы. Работа с приложением. Просмотр событий (Event Viewer).
Операционная система Windows, системные службы и приложения записывают события и ошибки в **системные журналы**, чтобы в дальнейшем у системного администратора была возможность проверки операционной системы и диагностики проблем.
[step num="1"]
Получить доступ к этим записям можно через встроенное приложение **Просмотр событий (Event Viewer)**. Есть несколько вариантов запуска данного приложения:
- через меню **Пуск – Средства администрирования Windows – >Просмотр событий (Start – Windows Administrative Tools – Event Viewer)**;
- в командной строке или в окне **Выполнить** набрать **eventvwr.msc**:
[/step]
Скриншот №1. Запуск Просмотра событий (Event Viewer) через командную строку
[step num="2"]
В **Диспетчере серверов** в разделе **Средства** выбрать **Просмотр событий (Server Manager – Tools – Event Viewer)**:
[/step]
Скриншот №2. Запуск Просмотра событий (Event Viewer) через Диспетчер серверов
## Описание интерфейса программы
Окно программы состоит из следующих компонентов:
Скриншот №3. Интерфейс программы
- Панель навигации позволяет выбрать конкретный журнал, записи которого необходимо просмотреть;
- Список событий, содержащийся в выбранном журнале. В колонках выведена базовая информация о событии. Их можно отсортировать по датам, типам, категориям событий и т.д.;
- Детальная информация о выбранном во второй панели событии. Также детальную информацию можно открыть в отдельном окне, если кликнуть по нужному событию два раза;
- Панель быстрых действий, которые можно совершить с данным журналом или событием. Действия также доступны в контекстном меню (клик правой кнопкой мыши по журналу или событию).
Для удобства просмотра и управления системные журналы разбиты по категориям:
- **Приложения (Application)** – как и гласит название, содержит события и ошибки приложений;
- **Безопасность (Security)** – если в операционной системе включена и настроена функция аудита, журнал будет содержать записи, связанные с отслеживанием соответствующих событий (например, авторизация пользователя или попытки неудачного входа в операционную систему);
- **Система (System)** – здесь регистрируются события операционной системы и системных сервисов;
- **Установка (Setup)** – события, связанные с инсталляцией обновлений Windows, дополнительных приложений.
В разделе **Журналы приложений и служб (Applications and Services Logs)** можно найти более детальную информацию о событиях отдельных служб и приложений, зарегистрированных в операционной системе, что бывает полезно при диагностике проблем в работе отдельных сервисов.
Сами события также разделяются на типы:
- **Сведения (Information)** — информируют о штатной работе приложений.
- **Предупреждение (Warning)** — событие, свидетельствующее о возможных проблемах в будущем (например, заканчивается свободное место на диске – приложения могут продолжать работу в штатном режиме, но когда место закончится совсем, работа будет невозможна).
- **Ошибка (Error)** — проблема, ведущая к деградации приложения или службы, потерям данных.
- **Критическое (Critical)** — значительная проблема, ведущая к неработоспособности приложения или службы.
- **Аудит успеха (Success audit)** — событие журнала **Безопасность (Security)**, обозначающее успешно осуществленное действие, для которого включено отслеживание (например, успешный вход в систему).
- **Аудит отказа (Failure audit)** — событие журнала **Безопасность (Security)** обозначающее безуспешную попытку осуществить действие, для которого включено отслеживание (например, ошибка входа в систему).
## Работа с журналами
[step num="3"]
Службы и приложения могут генерировать огромное количество самых разнообразных событий. Для простоты доступа к нужным записям журнала можно использовать функцию фильтрации журнала:
[/step]
Скриншот №4. Фильтрация журнала
[step num="4"]
Правый клик по журналу – **Фильтр текущего журнала (>Filter Current Log)**, либо выбрать данную функцию в панели быстрых действий. Открывшееся окно позволяет настроить фильтр и отобразить только те события, которые необходимы в данный момент:
[/step]
Скриншот №5. Настройки фильтра
[step num="5"]
Можно задать временной период, уровни события, выбрать журналы и конкретные источники событий. Если известны коды событий, которые нужно включить или исключить из фильтра, их также можно указать.
[/step]
[step num="6"]
Когда необходимость в фильтрации событий отпадет, ее можно отключить действием **Очистить фильтр (Clear Filter)**:
[/step]
Скриншот №6. Очистка фильтра
[step num="7"]
Приложение **Просмотр событий (Event Viewer)** позволяет также настроить дополнительные свойства журналов. Доступ к настройкам можно получить через панель быстрых действий, либо через контекстное меню журнала – правый клик по журналу – **Свойства (Properties)**:
[/step]
Скриншот №7. Свойства журналов
[step num="8"]
В открывшемся окне настроек можно увидеть путь, по которому сохраняется файл журнала, текущий размер, а также можно задать максимальный размер файла:
[/step]
Скриншот №8. Характеристики файла журнала
[step num="9"]
В нижней части окна можно выбрать вариант действия при достижении журналом максимального значения:
- **Переписывать события при необходимости (Overwrite events as needed)** – новое событие будет записываться поверх самого старого события в журнале, таким образом будут доступны события только за определенный диапазон времени.
- **Архивировать журнал при заполнении (Overwrite the log when full)** – заполненный журнал будет сохранен, последующие события будут записываться в новый файл журнала. При необходимости доступа к старым событиям, архивный файл можно будет открыть в приложении **Просмотр событий (Event Viewer)**.
- **Не переписывать события (Do not overwrite events)** – при заполнении журнала выдается системное сообщение о необходимости очистить журнал, старые события не перезаписываются.
https://serverspace.uz/support/help/ustanovka-riak-kv-na-ubuntu-i-debian.mdНа данный момент база Riak KV протестирована и работает на следующих версиях: Ubuntu 16.04 и Debian 8.11. Рассмотрим установку Установка Riak KV на эти версии.
Riak KV — это распределенная база данных NoSQL, разработанная для обеспечения максимальной доступности данных путем их распределения между несколькими серверами. База Riak KV также может быть установлена на CentOS.
На данный момент база протестирована и работает на следующих версиях Ubuntu и Debian:
- Ubuntu 16.04;
- Debian 8.11.
На других версиях работоспособность не гарантируется.
## **Установка**
Первым делом необходимо добавить репозиторий в систему. Для этого есть специальный скрипт, который конфигурирует файл и сохраняет его в /etc/apt/sources.list.d под именем basho.list. От вас требуется только указать дистрибутив и версию, после чего запустить скрипт.
Создаем файл script.sh:
```
nano script.sh
```
Вносим в него следующие строки, где OS — это операционная система (Ubuntu или Debian), и DIST — версия вашей операционной системы (для Ubuntu — Xenial, для Debian — 8):
```bash
#!/bin/bash
HOSTNAME=hostname -f
```
```bash
FILENAME=/etc/apt/sources.list.d/basho.list
OS=ubuntu
DIST=xenial
PACKAGE_CLOUD_RIAK_DIR=https://packagecloud.io/install/repositories/basho/riak
curl "${PACKAGE_CLOUD_RIAK_DIR}/config_file.list?os=${OS}&dist=${DIST}&name=${HOSTNAME}" > $FILENAME
```
После того, как вы сохранили файл script.sh, его необходимо запустить. Для этого необходимо ввести следующую команду в месте, где расположен файл:
```
sh script.sh
```
После этого скрипт автоматически добавит два репозитория Riak. Обновляем список пакетов (может выдать ошибку, что не найден GPG ключ — пропускаем):
```bash
apt-get update
```
Устанавливаем Riak:
```bash
apt-get install riak
```
Далее необходимо запустить Riak. Для этого выполняем следующую команду:
```
riak start
```
Если в результате выполнения команды у вас возникает ошибка, просто добавьте два значения в файл /etc/security/limits.conf. Открываем файл:
```
nano /etc/security/limits.conf
```
Перемещаемся в конец файла и вставляем 2 строки:
```
* soft nofile 65536
```
```
* hard nofile 65536
```
Сохраняем файл и перезапускаем Riak:
```
riak restart
```
В результате команда должна вернуть ok в консоль. Это будет означать, что Riak перезагрузился и можно проверить его работоспособность, например, получив свойства Riak:
```bash
curl -v http://127.0.0.1:8098/types/default/props
```
В результате вы получите подобный вывод:
На этом установка Riak KV на Ubuntu 16.04 и Debian 8 завершена.
https://serverspace.uz/support/help/ustanovka-riak-kv-na-centos-6-7.mdRiak KV - это распределенная база данных NoSQL, разработанная для обеспечения максимальной доступности данных путем распределения данных между несколькими серверами.
Riak KV — это распределенная база данных NoSQL, разработанная для обеспечения максимальной доступности данных путем их распределения между несколькими серверами. База Riak KV также может быть установлена на системы, основанные на Debian и Ubuntu, с помощью сборки из исходников или с помощью бинарного файла.
[step num="1"]
На данный момент база протестирована и работает на следующих версиях CentOS:
[/step]
- CentOS 7.4;
- CentOS 6.10.
[step num="2"]
На других версиях работоспособность не гарантируется. Если у вас не включен SELinux, его необходимо отключить. Проверим статус SELinux, выполнив команду:
[/step]
```
sestatus
```
[step num="3"]
Вывод скорее всего будет следующий:
[/step]
Скриншот №1. SELinux включен и использует политику enforcing
На данном изображении видно, что SELinux включен и использует политику enforcing. Для отключения SELinux необходимо выполнить несколько действий:
[step num="4"]
Открываем файл /etc/selinux/config с помощью любого редактора, например nano:
[/step]
```
nano /etc/selinux/config
```
[step num="5"]
Находим параметр SELinux и меняем его значение на disabled:
[/step]
```
SELinux=enforcing
```
Скриншот №2. Отключение SELinux
[step num="6"]
Чтобы изменения вступили в силу, необходимо перезагрузить SELinux:
[/step]
```
sudo setenforce 0
```
## Установка
[step num="7"]
Первым делом необходимо добавить репозиторий в систему. Для этого есть специальный скрипт, который конфигурирует файл и сохраняет его в /etc/yum.repos.d/ под именем basho.repo. От вас требуется только указать версию CentOS и запустить скрипт.
[/step]
[step num="8"]
Создаем файл script.sh:
[/step]
```
nano script.sh
```
[step num="9"]
Вносим в него следующие строки, где DIST — это версия вашей операционной системы:
[/step]
```bash
#!/bin/bash
HOSTNAME=hostname -f
FILENAME=/etc/yum.repos.d/basho.repo
OS=el
DIST=7
PACKAGE_CLOUD_RIAK_DIR=https://packagecloud.io/install/repositories/basho/riak
curl "${PACKAGE_CLOUD_RIAK_DIR}/config_file.repo?os=${OS}&dist=${DIST}&name=${HOSTNAME}" > $FILENAME
```
[step num="10"]
После того как, вы сохранили файл script.sh, его необходимо запустить. Для этого необходимо ввести следующую команду в месте, где расположен файл:
[/step]
```
sh script.sh
```
[step num="11"]
После этого скрипт автоматически добавит два репозитория Riak. Обновляем список пакетов:
[/step]
```bash
yum update
```
[step num="12"]
Устанавливаем Riak:
[/step]
```bash
yum install riak
```
[step num="13"]
Далее необходимо запустить Riak. Для этого выполняем следующую команду:
[/step]
```
riak start
```
[step num="14"]
Если в результате выполнения команды у вас возникает ошибка, просто добавьте два значения в файл /etc/security/limits.conf. Открываем файл:
[/step]
```
nano /etc/security/limits.conf
```
[step num="15"]
Перемещаемся в конец файла и вставляем 2 строки:
[/step]
```
* soft nofile 65536
```
```
* hard nofile 65536
```
[step num="16"]
Сохраняем файл и перезапускаем Riak:
[/step]
```
riak restart
```
[step num="17"]
В результате команда должна вернуть ok в консоль. Это будет означать, что Riak перезагрузился и можно проверить его работоспособность, например, получив свойства Riak:
[/step]
```bash
curl -v http://127.0.0.1:8098/types/default/props
```
[step num="18"]
В результате вы получите подобный вывод:
[/step]
Скриншот №3. Установка Riak KV на CentOS 6/7 завершена
[step num="19"]
На этом установка Riak KV на CentOS 6/7 завершена.
https://serverspace.uz/support/help/ustanovka-maildrop-na-ubuntu.mdMaildrop - высокопроизводительный Open Source SMTP-сервер. Как установить Maildrop на Ubuntu 18.04 всего за 2 шага. Процесс установки.
Maildrop — это высокопроизводительный Open Source SMTP-сервер.
## Процесс установки
1. Обновляем список пакетов apt:
```bash
sudo apt update
```
2. Устанавливаем Maildrop:
```bash
sudo apt install maildrop
```
На этом этап установки Maildrop на Ubuntu 18.04 завершен.
https://serverspace.uz/support/help/ustanovka-maildrop-na-centos-7.mdВ данной инструкции продемонстрировано, как собрать и установить Courier-IMAP, Courier-Authlib, и Maildrop в CentOS 7 (а также Fedora, RedHat)
В данной инструкции продемонстрировано, как собрать и установить Courier-IMAP, Courier-Authlib, и Maildrop в CentOS 7 (данная инструкция также подойдет для систем, построенных на дистрибутивах RedHat — Fedora, RedHat и CentOS).
## Процесс установки
[step num="1"]
Устанавливаем зависимости:
[/step]
```bash
yum groupinstall 'Development Tools'
```
```bash
yum groupinstall 'Development Libraries'
```
```bash
yum install rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel
```
[step num="2"]
Создаём нового пользователя (RPM-пакет Courier-IMAP нельзя собирать из под root-пользователя. Во время компиляции будет выдана ошибка, поэтому необходимо авторизоваться либо создать новый аккаунт):
[/step]
```
useradd -m -s /bin/bash usr1
```
```
passwd usr1
```
[step num="3"]
Далее необходимо добавить новому пользователю права на использование sudo. Запустите команду:
[/step]
```
visudo
```
[step num="4"]
В открывшемся файле найдите строку:
[/step]
```
root ALL=(ALL) ALL
```
[step num="5"]
и добавьте после неё следующую строку:
[/step]
```
usr1 ALL=(ALL) ALL
```
[step num="6"]
Собираем пакеты Maildrop, Courier-Authlib и Courier-IMAP:
[/step]
```
su usr1
```
[step num="7"]
Создаём окружение для сборки:
[/step]
```
mkdir $HOME/rpm
```
```
mkdir $HOME/rpm/SOURCES
```
```
mkdir $HOME/rpm/SPECS
```
```
mkdir $HOME/rpm/BUILD
```
```
mkdir $HOME/rpm/SRPMS
```
```
mkdir $HOME/rpm/RPMS
```
```
mkdir $HOME/rpm/RPMS/i386
```
```
echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
```
[step num="8"]
Создаем директории для скачивания Courier и загружаем последние версии:
[/step]
```
mkdir $HOME/downloads
```
```
cd $HOME/downloads
```
```bash
wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.60.2.tar.bz2
```
```bash
wget http://prdownloads.sourceforge.net/courier/courier-imap-4.2.1.tar.bz2
```
```bash
wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2
```
[step num="9"]
Собираем пакет Courier-Authlib. Находясь в директории $HOME/downloads выполните команду:
[/step]
```
sudo rpmbuild -ta courier-authlib-0.60.2.tar.bz2
```
[step num="10"]
После успешной сборки готовый пакет будет размещен в директории:
[/step]
```
$HOME/rpm/RPMS/i386
```
[step num="11"]
Для просмотра доступных RPM-пакетов перейдите в директорию:
[/step]
```
cd $HOME/rpm/RPMS/i386
```
[step num="12"]
и выполните следующую команду:
[/step]
```
ls -l
```
После выполнения данной команды вы увидите список доступных к установке пакетов:
-rw-r--r-- 1 root root 137335 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 323827 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34201 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18039 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14258 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
[step num="13"]
Собираем пакет Courier-IMAP. Переходим в директорию со скачанными исходниками:
[/step]
```
cd $HOME/downloads
```
[step num="14"]
Выполняем команду rpmbuild без sudo:
[/step]
```
rpmbuild -ta courier-imap-4.2.1.tar.bz2
```
[step num="15"]
После успешного создания пакета он будет находиться в следующей директории $HOME/rpm/RPMS/i386. Переходим в неё:
[/step]
```
cd $HOME/rpm/RPMS/i386
```
[step num="16"]
Смотрим доступные для установки пакеты командой:
[/step]
```
ls -l
```
-rw-r--r-- 1 root root 137335 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 323827 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34201 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18039 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14258 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 13602 2007-11-13 18:02 courier-authlib-pgsql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 8336 2007-11-13 18:02 courier-authlib-pipe-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 36859 2007-11-13 18:02 courier-authlib-userdb-0.60.2-1.fc8.i386.rpm
-rw-rw-r-- 1 falko falko 383455 2007-11-13 18:21
courier-imap-4.2.1-1.8.i386.rpm
-rw-rw-r-- 1 falko falko 917771 2007-11-13 18:21 courier-imap-debuginfo-4.2.1-1.8.i386.rpm
[step num="17"]
Собираем пакет Maildrop. Переходим в директорию со скачанными исходниками:
[/step]
```
cd $HOME/downloads
```
[step num="18"]
Выполняем следующую команду с использованием sudo:
[/step]
```
sudo rpmbuild -ta maildrop-2.0.4.tar.bz2
```
[step num="19"]
После успешной сборки Maildrop перемещаемся в папку с собранными пакетами:
[/step]
```
cd $HOME/rpm/RPMS/i386
```
[step num="20"]
Смотрим доступные для установки пакеты:
[/step]
```
ls -l
```
-rw-r--r-- 1 root root 324618 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 137343 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34208 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18042 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 13599 2007-11-13 18:02 courier-authlib-pgsql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14254 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 8339 2007-11-13 18:02 courier-authlib-pipe-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 36855 2007-11-13 18:02 courier-authlib-userdb-0.60.2-1.fc8.i386.rpm
-rw-rw-r-- 1 falko falko 383455 2007-11-13 18:21 courier-imap-4.2.1-1.8.i386.rpm
-rw-rw-r-- 1 falko falko 917771 2007-11-13 18:21 courier-imap-debuginfo-4.2.1-1.8.i386.rpm
-rw-r--r-- 1 root root 752872 2007-11-13 18:35 maildrop-debuginfo-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 299030 2007-11-13 18:35 maildrop-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 136235 2007-11-13 18:35 maildrop-devel-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 58439 2007-11-13 18:35 maildrop-man-2.0.4-1.8.i386.rpm
[step num="21"]
Устанавливаем пакеты:
[/step]
```
sudo rpm -ivh courier-authlib-0.60.2-1.fc8.i386.rpm
```
```
sudo rpm -ivh courier-authlib-devel-0.60.2-1.fc8.i386.rpm
```
```
sudo rpm -ivh courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
```
```
sudo rpm -ivh courier-imap-4.2.1-1.8.i386.rpm
```
```
sudo rpm -ivh maildrop-2.0.4-1.8.i386.rpm
```
[step num="22"]
После установки всех пакетов необходимо выйти из под пользователя usr1 следующей командой:
[/step]
```
exit
```
[step num="23"]
На этом этап сборки и установки Courier и Maildrop завершен.
https://serverspace.uz/support/help/ustanovka-leveldb-na-ubuntu-18-04-i-ubuntu-16-04.mdLevelDB - это высокопроизводительная NoSQL база данных, разработанная компанией Google. Рассмотрим ее установку на Ubuntu 18.04 и Ubuntu 16.04
**LevelDB** — это высокопроизводительная NoSQL база данных для хранения данных в формате ключ/значение, разработанная корпорацией Google.
## Требования
- Ubuntu-based и Debian-based системы;
- Python 2.7 и выше;
- libsnappy-dev.
## Установка
Устанавливаем утилиту-архиватор:
```bash
sudo apt-get install libsnappy-dev libleveldb-dev
```
Этой командой мы установили LevelDB, теперь нужно протестировать работоспособность. Для этого нам понадобится Python-pip.
Устанавливаем Python-pip:
```bash
sudo apt-get install python-pip
```
Устанавливаем интерфейс взаимодействия с LevelDB:
```bash
pip install leveldb-cli
```
Теперь проверим. Создадим новую базу данных:
```
leveldb create -d newdb.db
```
Вставим в неё ключ hello со значением world:
```
leveldb put hello world -d newdb.db
```
Далее обратимся к ключу hello, что приведет к получению результата world:
```
leveldb get hello -d newdb.db
```
Удалим ключ hello:
```
leveldb delete hello -d newdb.db
```
Попытаемся получить ключ hello:
```
leveldb get hello -d newdb.db
```
```
Error: key hello does not exist
```
В общем виде это выглядит следующим образом:
https://serverspace.uz/support/help/ustanovka-leveldb-na-centos.mdПошаговый процесс установки NoSQL БД LevelDB несложен. Рассмотрим его в подробной инструкции. Понадобится сервер с CentOS и ~7 минут времени
**LevelDB** — это высокопроизводительная NoSQL база данных для хранения данных в формате ключ/значение, разработанная корпорацией Google.
## Требования
- CentOS 5/6/7;
- Python 2.7 и выше;
- gcc-c++;
- Snappy.
## Установка LevelDB
[step num="1"]
Устанавливаем утилиту-архиватор:
```bash
yum install leveldb snappy
```
[/step]
Этой командой мы установили LevelDB, теперь нужно протестировать ее работоспособность. Для этого нам понадобится Python-pip.
[step num="2"]
Устанавливаем Python-pip:
```bash
yum --enablerepo=extras install epel-release
```
```bash
yum install python-devel python-pip gcc-c++
```
[/step]
[step num="3"]
Устанавливаем интерфейс взаимодействия с LevelDB:
```bash
pip install leveldb-cli
```
[/step]
[step num="4"]
Теперь проверим. Создадим новую базу данных:
```
leveldb create -d newdb.db
```
[/step]
[step num="5"]
Вставим в неё ключ hello со значением world:
```
leveldb put hello centos -d newdb.db
```
[/step]
[step num="6"]
Получим значение hello:
```
leveldb get hello -d newdb.db
```
Получим:
_centos_
[/step]
[step num="7"]
Удалим ключ hello:
```
leveldb delete hello -d newdb.db
```
[/step]
[step num="8"]
Попытаемся получить ключ hello:
```
leveldb get hello -d newdb.db
```
Получим:
_Error: key hello does not exist_
[/step]
[step num="9"]
В общем виде это выглядит следующим образом:
[/step]
Скриншот №1. Интерфейс взаимодействия с LevelDB
https://serverspace.uz/support/help/ispolzovanie-firewalld-na-centos.mdПолезный материал по работе с FirewallD на CentOS. От установки и настройки утилиты до нюансов работы: открытие портов, добавление служб и т.д.
## Что такое FirewallD
Программа представляет собой графическую оболочку для брандмауэра iptables и кроме интерфейса также отличается схемой взаимодействия:
- распределяет трафик не по зонам, а согласно правилам;
- содержит правила "белого" и "черного" списка, в соответствии с которыми работает на данной сетевой точке;
- может как ограничивать, так и блокировать трафик.
## Опции
Firewalld имеет набор встроенных правил:
- Drop: запрещает входящие подключения, но разрешает исходящие.
- Block: исходя из наименования, полностью блокирует трафик.
- Public: открывает подключения через SSH и DHClient.
- External: активирует функцию NAT на выбранном сетевом интерфейсе.
- Internal или Home: открывает порты для служб SSH, Samba, mDNS и DHCP.
- Dmz: включает опцию "Демилитаризованная зона", которая разделяет частные сервисы от общедоступных.
- Work: открывает доступ службам SSH и DHCP.
- Trusted: переводится как "доверенный". Разрешает все соединения.
Кроме стандартного набора утилита поддерживает два режима загрузки. Первый называется Runtime. Он означает активность выбранных параметров до перезагрузки приложения или сервера. Если во время данного режима указываются дополнительные опции сохранения, то они остаются активными всегда.
Второй вариант — Permanent. Любые изменения, которые внесены в данном режиме, сохраняются навсегда.
## Инсталляция
[step num="1"]
По умолчанию Firewalld не входит в состав CentOS. Установим его:
```bash
sudo yum install firewalld
```
[/step]
[step num="2"]
Для помещения его в автозагрузочную область прописываем:
```bash
sudo systemctl enable firewalld
```
Перезагружаем серверную платформу для активации изменений.
[/step]
## Конфигурирование Firewalld
[step num="3"]
Определим текущую настройку утилиты:
```
firewall-cmd --get-default-zone
```
[/step]
Скриншот №1. Текущая зона
Сейчас установлен шаблон public, т.е. все разрешено. Если необходимо получить подробный отчет, то используем --list-all в качестве ключа. Результат приведен ниже.
**Важно!** Команда запускается только с правами sudo.
Скриншот №2. Подробный отчет
## Смена политики и интерфейса
[step num="4"]
Для смены шаблона, используем ключ --zone совместно с опцией смены сетевого интерфейса --change-interface. Например, заменить политику public на work с ее активацией на eth0:
```
sudo firewall-cmd --zone=work --change-interface=eth0
```
[/step]
[step num="5"]
В случае успешной операции на мониторе появится соответствующее сообщение. Наберем следующую команду, чтобы убедиться в правильности выполненных действий:
```
sudo firewall-cmd --get-active-zones
```
[/step]
Скриншот №3. Смены шаблона
[step num="6"]
Как видно на изображении выше, сетевой интерфейс использует политику work, а другие по-прежнему работают с public.
Если требуется сменить политику, которая наследуется по умолчанию для всех интерфейсов, используем другой синтаксис:
```
sudo firewall-cmd --set-default-zone=home
```
[/step]
[step num="7"]
После выполнения команды всем сетевым интерфейсам пропишется шаблон home. Для показа текущего уровня вводим уже известный ключ --get-default-zone.
[/step]
## Открываем порт (сервис)
[step num="8"]
Firewalld также предоставляет сервисам доступ к портам используя ключ --add-service=. Для начала проверим список сервисов на сервере, запустив утилиту с опцией --get-services.
[/step]
Скриншот №4. Список служб
[step num="9"]
Получить подробную информацию о любом сервисе, обратившись через команду cat к внутреннему списку firewalld. Например, просмотрим описание службы audit:
```
cat /usr/lib/firewalld/services/audit.xml
```
[/step]
Скриншот №5. Описание audit
[step num="10"]
Для активации порта любого сервиса из перечня прописываем в терминале:
```
sudo firewall-cmd --zone=work --add-service=audit
```
[/step]
[step num="11"]
Данная конфигурация будет активна только до перезагрузки серверной платформы. Чтобы сделать ее постоянной, прописываем ключ --permanent:
```
sudo firewall-cmd --permanent --zone=work --add-service=audit
```
[/step]
[step num="12"]
Если сервис audit больше не нужен, удалим его, используя опцию –remove-service=:
```
sudo firewall-cmd --zone=work --remove-service=audit --permanent
```
[/step]
[step num="13"]
Альтернативный вариант открытия порта – указываем номер и имя протокола с указанием флага --add-port:
```
sudo firewall-cmd --zone=work --add-port=443/tcp
```
[/step]
**Важно!** Любое изменение в списке сервисов можно отследить используя опцию --list-ports.
Удаление порта происходит при замене ключа --add-port на --remove-port с сохранением дальнейшего синтаксиса.
## Как добавить новую службу
[step num="14"]
Как говорилось выше, полное описание служб внутри серверной ОС расположено по следующему пути: /usr/lib/firewalld/services/, далее идет xml-файл с именем службы.
[/step]
[step num="15"]
Чтобы создать новый сервис, просто скопируем один из готовых вариантов в папку services, которая расположена внутри директории firewalld. В качестве примера взяли описание сервиса SSH и скопировали его с именем test:
```
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/test.xml
```
[/step]
**Важно!** Операция копирования выполняется только с правами администратора.
[step num="16"]
Откроем его при помощи текстового редактора nano:
```
sudo nano /etc/firewalld/services/test.xml
```
[/step]
На экране появится подробное описание сервиса SSH:
Скриншот №6. Отредактируем описание
[step num="17"]
В первом пункте меняем название службы на произвольное. По полю short она активируется через команды в дальнейшем. Второй пункт дает полное описание сервиса: прописываем детально.
[/step]
[step num="18"]
Третий шаг – указываем порты и протокол по которым она будет работать. В дальнейшем firewalld будет активировать значения после указания соответствующего ключа.
Отредактировав файл, сохраняем изменения и перезапускаем службу.
https://serverspace.uz/support/help/installing-and-configuring-an-rdp-server-on-centos-7.mdВ руководстве мы расскажем, как установить xRDP на удаленный компьютер CentOS 7 и как подключиться к нему через Remote Desktop Connection
В этом руководстве мы расскажем, как установить xRDP на удаленный компьютер CentOS 7 и как подключиться к нему через Remote Desktop Connection. Мы также покажем вам, как установить и подключиться к различным окружениям рабочего стола на удаленном компьютере CentOS 7.
xRDP — это бесплатный сервер протоколов удаленных рабочих столов с открытым исходным кодом, который позволяет другим операционным системам, отличным от Windows, предоставлять полнофункциональные возможности удаленного рабочего стола.
xRDP полностью совместим с rdesktop, FreeRDP и даже с клиентом удаленного рабочего стола Microsoft (mstsc.exe).
Требования:
- Хотя это и не является обязательным требованием, мы рекомендуем действовать от имени пользователя без полномочий root при выполнении каких-либо серьезных изменений в вашей системе.
- Машина под управлением CentOS 7 с минимум 2 ГБ оперативной памяти.
## Установите xRDP на CentOS 7
[step num="1"]
Обновите установленные в системе пакеты:
```
$ sudo yum -y update
```
[/step]
[step num="2"]
Затем установите необходимые пакеты:
```
$ sudo yum install -y epel-release
$ sudo yum install -y xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl start xrdp
```
[/step]
[step num="3"]
Если вы используете FirewallD, откройте порт 3389/TCP для RDP:
```
$ sudo firewall-cmd --add-port=3389/tcp --permanent
$ sudo firewall-cmd --reload
```
[/step]
## Установите предпочитаемую среду рабочего стола
[step num="4"]
Теперь мы можем установить среду рабочего стола, которую будем использовать. В этом руководстве мы опробуем Xfce, MATE и GNOME.
[/step]
**Примечание:** если вы не можете подключиться через Remote Desktop Connection после установки среды рабочего стола, откройте порт 3389/TCP с помощью команды firewall-cmd, упомянутой выше.
### Установите рабочую среду XFCE
Xfce — одна из самых легких настольных сред. Она быстрая, потребляет мало системных ресурсов, но все же остается визуально привлекательной. Кроме того, у неё очень активное сообщество, поэтому доступно множество вариантов настройки.
[step num="5"]
Чтобы установить Xfce, выполните следующие команды:
```
$ sudo yum install -y epel-release
$ sudo yum groupinstall -y "Xfce"
$ sudo reboot
```
[/step]
[step num="6"]
Затем создайте файл _.Xclients_ в каталоге пользователя, с помощью которого будет осуществлено подключение:
```
$ echo "xfce4-session" > ~/.Xclients
$ chmod a+x ~/.Xclients
```
[/step]
[step num="7"]
Теперь вы можете подключиться к серверу, используя Remote Desktop Connection. Вот как выглядит Xfce:
[/step]
Скриншот №1. Xfce
Удаление Xfce
[step num="8"]
Чтобы удалить Xfce с вашего CentOS 7, выполните следующие команды:
```
$ sudo yum groupremove -y "Xfce"
$ sudo yum remove -y libxfce4*
```
[/step]
### Установите MATE Desktop Environment
[step num="9"]
Чтобы установить MATE, выполните следующие команды:
```
$ sudo yum install -y epel-release
$ sudo yum groupinstall -y "MATE Desktop"
$ sudo reboot
```
[/step]
[step num="10"]
Затем создайте файл _.Xclients_ в каталоге пользователя, с которым вы соединяетесь:
```
$ echo "mate-session" > ~/.Xclients
$ chmod a+x ~/.Xclients
```
[/step]
[step num="11"]
Теперь вы можете подключиться к серверу, используя Remote Desktop Connection. Вот как выглядит MATE:
[/step]
Скриншот №2. MATE
Удаление MATE
[step num="12"]
Чтобы удалить MATE с CentOS 7, выполните следующие команды:
```
$ sudo yum groupremove -y "MATE Desktop"
$ sudo yum autoremove -y
```
[/step]
### Установите GNOME Desktop Environment
[step num="13"]
Теперь попробуем установить GNOME 3. Для этого нам необходимо установить группу пакетов GNOME Desktop, которая установит все пакеты, необходимые для установки с графическим интерфейсом:
```
$ sudo yum groupinstall "GNOME DESKTOP" -y
```
[/step]
Это может занять некоторое время. На минимальной конфигурации дистрибутива CentOS 7 будет установлено около 1000 пакетов.
Запустите графический интерфейс
[step num="14"]
Хотя мы установили группу пакетов GNOME Desktop, графический интерфейс не будет загружаться по умолчанию при перезагрузке. Мы можем проверить это, запустив:
```
$ systemctl get-default
```
[/step]
[step num="15"]
Вывод:
```
multi-user.target
```
[/step]
[step num="16"]
Если значением по умолчанию является _multi-user.target_, это означает, что графический интерфейс не будет загружен. Поменяем значение по умолчанию на _graphical.target_. Для этого выполните следующие команды:
```
$ sudo systemctl set-default graphical.target
```
[/step]
[step num="17"]
Вывод:
```
Removed symlink /etc/systemd/system/default.target.
```
Created symlink from /etc/systemd/system/default.target to usr/lib/systemd/system/graphical.target.
[/step]
[step num="18"]
После этого выполните следующую команду, для незамедлительного перехода к графическому интерфейсу:
```
$ sudo systemctl isolate graphical.target
```
[/step]
[step num="19"]
Теперь вы можете подключиться через xRDP к вашему CentOS 7 с помощью GNOME.
Вот как выглядит GNOME 3 при первом подключении после установки. Просто следуйте начальным шагам настройки, чтобы завершить настройку:
[/step]
Скриншот №3. GNOME 3
**Примечание:** Если до момента установки графической оболочки GNOME Desktop для подключения к CentOS 7 использовались Xfce или MATE Desktop, выполните следующую команду:
```
$ sudo rm -f ~/.Xclients
```
Удаление GNOME
[step num="20"]
Чтобы удалить GNOME с вашего CentOS 7, выполните следующие команды:
```
$ sudo yum groupremove -y "GNOME Desktop"
$ sudo yum autoremove -y
```
[/step]
## Подключитесь к компьютеру с помощью подключения к удаленному рабочему столу
[step num="21"]
После установки xRDP и среды рабочего стола вы можете подключаться с локального компьютера к удаленному.
[/step]
Подключение из Windows
[step num="22"]
Чтобы подключиться к серверу из Microsoft Windows, просто найдите и запустите приложение Remote Desktop Connection (mstsc.exe) и введите свое имя хоста или IP:
[/step]
Скриншот №4. Remote Desktop Connection
[step num="23"]
Если вы подключаетесь впервые, вы получите несколько предупреждений безопасности. Предполагая, что это ваш сервер и он безопасен, просто согласитесь с этими предупреждениями:
[/step]
Скриншот №5. Предупреждения безопасности
https://serverspace.uz/support/help/diagnostika-setevogo-podklyucheniya-ping-arp-traceroute-dig-nslookup.mdКак провести диагностику сетевого подключения в Linux, разрешение имен, ping, arp, traceroute, dig, nslookup, ip addr, ip route. Диагностика сетевой связности
Одна из важнейших подсистем, отвечающая за связь любого сервера с внешним миром — сетевая. Через сетевые интерфейсы поступают запросы от удаленных систем и через эти же интерфейсы направляются ответы, что позволяет налаживать коммуникацию и предоставлять/получать сервисы. В связи с этим особенно важно уметь производить диагностику и мониторинг сети хотя бы на базовом уровне, чтобы выявлять проблемы и вносить корректировки в конфигурацию в случае необходимости.
Для операционных систем семейства Linux написано множество утилит, помогающих в диагностике и мониторинге. Познакомимся с наиболее часто используемыми из них.
## Диагностика сетевой связности (ping, arp, traceroute)
[step num="1"]
В данной статье мы будем опираться на использование протокола IP версии 4. Согласно стандартам, определяющим работу этого протокола, каждое устройство, подключенное к сети, должно иметь как минимум IP-адрес и маску подсети — параметры, которые позволяют уникально идентифицировать устройство в пределах определенной сети. В такой конфигурации устройство может обмениваться сетевыми пакетами с другими устройствами в пределах той же самой логической сети. Если к этому набору параметров добавить адрес шлюза по умолчанию — наш сервер сможет связываться с хостами, находящимися за пределами локального адресного пространства.
[/step]
[step num="2"]
В случае каких-либо сетевых проблем в первую очередь проверяем, не сбились ли настройки сетевого интерфейса. Например, команды **ip** **addr** или **ifconfig** выведут IP-адрес и маску сети:
[/step]
Скриншот №1. Проверки настроек сетевого интерфейса
[step num="3"]
В выводе команды виден перечень сетевых интерфейсов, распознанных операционной системой. Интерфейс **lo** — это псевдоинтерфейс (loopback). Он не используется в реальных взаимодействиях с удаленными хостами, а вот интерфейс с именем **ens192** — то, что нам нужно (именование сетевых интерфейсов различается в разных ветках и версиях ОС Linux). IP-адрес и маска сети, назначенные этому интерфейсу, указаны в поле **inet** — /24 после адреса обозначают 24-битную маску 255.255.255.0.
[/step]
[step num="4"]
Теперь проверим, указан ли шлюз по умолчанию. Команды **ip** **route** или **route** покажут имеющиеся маршруты:
[/step]
Скриншот №2. Проверка маршрута
[step num="5"]
В таблице маршрутизации мы видим, что имеется маршрут по умолчанию (обозначается либо ключевым словом **default**, либо адресом **0.0.0.0**). Все пакеты, предназначенные для внешних сетей, должны направляться на указанный в маршруте адрес через обозначенный сетевой интерфейс.
[/step]
[step num="6"]
Если в настройках интерфейса есть ошибки, их необходимо исправить — помогут в этом другие статьи, для ОС [Ubuntu 18.04](https://serverspace.uz/support/help/configuring-the-network-interface-in-ubuntu-18-04/) или [CentOS](https://serverspace.uz/support/help/natrojka_setevogo_adaptera_centos/). Если же все верно — приступаем к диагностике с помощью утилиты ping. Данная команда отправляет специальные сетевые пакеты на удаленный IP-адрес (ICMP Request) и ожидает ответные пакеты (ICMP Reply). Таким образом можно проверить сетевую связность — маршрутизируются ли сетевые пакеты между IP-адресами отправителя и получателя.
[/step]
Синтаксис команды **ping IP/имя опции**:
Скриншот №3. Синтаксис команды
[step num="7"]
В данном случае видим, что на оба сетевых пакета, отправленных на адрес нашего шлюза по умолчанию, получены ответы, потерь нет. Это значит, что на уровне локальной сети со связностью все в порядке. Помимо количества полученных/потерянных сетевых пакетов мы можем увидеть время, которое было затрачено на прохождение запроса и ответа – параметр RTT (Round Trip Time). Этот параметр может быть очень важен при диагностике проблем, связанных с нестабильностью связи и скоростью соединения.
[/step]
Часто используемые параметры:
- **ping –c количество** — указать количество пакетов, которое будет отправлено адресату (по умолчанию пакеты отправляются до тех пор, пока пользователь не прервет выполнение команды. Этот режим можно использовать, чтобы проверить стабильность сетевого соединения. Если параметр RTT будет сильно изменяться в ходе проверки, значит где-то на протяжении маршрута есть проблема);
- **ping –s количество** — указать размер пакета в байтах. По умолчанию проверка производится малыми пакетами. Чтобы проверить работу сетевых устройств с пакетами большего размера, можно использовать этот параметр;
- **ping –I интерфейс** — указать сетевой интерфейс, с которого будет отправлен запрос (актуально при наличии нескольких сетевых интерфейсов и необходимости проверить прохождение пакетов по конкретному сетевому маршруту).
[step num="8"]
В случае, если при использовании команды ping пакеты от шлюза (или другого хоста, находящегося в одной локальной сети с сервером-отправителем) в ответ не приходят, стоит проверить сетевую связность на уровне Ethernet. Здесь для коммуникации между устройствами используются так называемые MAC-адреса сетевых интерфейсов. За разрешение Ethernet-адресов отвечает протокол ARP (Address Resolution Protocol) и с помощью одноименной утилиты мы можем проверить корректность работы на этом уровне. Запустим команду **arp –n** и проверим результат:
[/step]
Скриншот №4. Команда arp –n
[step num="9"]
Команда выведет список IP-адресов (так как был использован аргумент **–n**), и соответствующие им MAC-адреса хостов, находящиеся в одной сети с нашим сервером. Если в этом списке есть IP, который мы пытаемся пинговать, и соответствующий ему MAC, значит сеть работает и, возможно, ICMP-пакеты, которые использует команда ping, просто блокируются файрволлом (либо со стороны отправителя, либо со стороны получателя). Подробнее об управлении правилами файрволла рассказано [здесь](https://serverspace.uz/support/help/nastroika-firewall-iptables-na-linux/) и [здесь](https://serverspace.uz/support/help/ispolzovanie-firewalld-na-centos/).
[/step]
[step num="10"]
Часто используемые параметры:
- **arp –n** — вывод содержимого локального arp-кэша в числовом формате. Без этой опции будет предпринята попытка определить символические имена хостов;
- **arp –d адрес** — удаление указанного адреса из кэша. Это может быть полезно для проверки корректности разрешения адреса. Чтобы убедиться, что в настоящий момент времени адрес разрешается корректно, можно удалить его из кэша и снова запустить ping. Если все работает правильно, адрес снова появится в кэше.
[/step]
[step num="11"]
Если все предыдущие шаги завершены корректно, проверяем работу маршрутизатора — запускаем ping до сервера за пределами нашей сети, например, 8.8.8.8 (DNS-сервис от Google). Если все работает корректно, получаем результат:
[/step]
Скриншот №5. Проверка работы маршрутизатора
[step num="12"]
В случае проблем на этом шаге, нам может помочь утилита traceroute, которая используя ту же логику запросов и ответов помогает увидеть маршрут, по которому движутся сетевые пакеты. Запускаем traceroute 8.8.8.8 –n и изучаем вывод программы:
[/step]
Скриншот №6. Утилита traceroute
[step num="13"]
Первым маршрутизатором на пути пакета должен быть наш локальный шлюз по умолчанию. Если дальше него пакет не уходит, возможно проблема в конфигурации маршрутизатора и нужно разбираться с ним. Если пакеты теряются на дальнейших шагах, возможно, есть проблема в промежуточной сети. А, возможно, промежуточные маршрутизаторы не отсылают ответные пакеты. В этом случае можно переключиться на использование другого протокола в traceroute.
[/step]
Часто используемые опции:
- **traceroute –n** — вывод результата в числовом формате вместо символических имен промежуточных узлов;
- **traceroute –I** — использование ICMP-протокола при отслеживании маршрута. По умолчанию используются UDP-датаграммы;
- **traceroute –s адрес**— указать адрес источника для исходящего сетевого пакета;
- **traceroute –i интерфейс**— указать сетевой интерфейс, с которого будут отправляться пакеты.
## Диагностика разрешения имен (nslookup, dig)
[step num="14"]
Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.
[/step]
[step num="15"]
Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.
[/step]
[step num="16"]
Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды **nmcli**:
[/step]
Скриншот №7. Команда nmcli
[step num="17"]
В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду **systemd-resolve --status**:
[/step]
Скриншот №8. Команда systemd-resolve --status
[step num="18"]
Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов **/etc/resolve.conf** и **/etc/network/interfaces**. Если сервер не указан, воспользуйтесь статьей для ОС [Ubuntu 18.04](https://serverspace.uz/support/help/configuring-the-network-interface-in-ubuntu-18-04/) или [CentOS](https://serverspace.uz/support/help/natrojka_setevogo_adaptera_centos/), чтобы скорректировать настройки.
[/step]
[step num="19"]
Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:
```bash
yum install bind-utils
```
для Debian/Ubuntu:
```bash
sudo apt install dnsutils
```
[/step]
[step num="20"]
После успешной установки сделаем тестовые запросы:
```
dig ya.ru
```
[/step]
Скриншот №9. Тестовые запросы
[step num="21"]
В разделе **Answer Section** видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:
```
nslookup ya.ru
```
[/step]
Скриншот №10. Подтверждение корректной работы
[step num="22"]
Аналогичный запрос утилитой **nslookup** выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.
[/step]
[step num="23"]
Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:
[/step]
```
dig @8.8.8.8 ya.ru
```
Скриншот №11. Отправка тестового запроса 1
```
nslookup ya.ru 8.8.8.8
```
Скриншот №12. Отправка тестового запроса 2
[step num="24"]
Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрволла отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).
[/step]
Часто используемые параметры:
- **nslookup имя сервер** — разрешить доменное имя, используя альтернативный сервер;
- **nslookup –type=тип имя** — получить запись указанного типа для доменного имени (например, **nslookup -type=mx ya.ru** – получить MX-записи для домена ya.ru);
- **dig @сервер имя —** разрешить доменное имя, используя альтернативный сервер;
- **dig имя тип** — получить запись указанного типа для доменного имени (например, **dig ya.ru mx** — получить MX-записи для домена ya.ru).
[step num="25"]
Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду **man**.
https://serverspace.uz/support/help/installing-the-gnome-gui-on-centos-7.mdКак установить GNOME на базовую версию операционной системы CentOS 7, используя набор команд для терминала. Настройка GNOME после установки
**GNOME** является частью проекта GNU и представляет собой графический интерфейс (GUI) рабочего стола. Он использует принцип KISS (Keep it simple, stupid) и является стандартным GUI для многих дистрибутивов, таких как Debian, Fedora, Red Hat Enterprise Linux, Kali Linux и т.д.
В этой статье мы объясним как установить GUI GNOME на базовую версию операционной системы CentOS 7. Поскольку данная система работает в режиме командной строки (CLI), в качестве примера мы будем использовать набор команд для терминала.
## С чего начать установку GNOME
[step num="1"]
Предполагаем, что вы уже установили CentOS (если еще нет, можете [арендовать VPS с CentOS](https://serverspace.uz/services/vps-server/centos/)), и вы имеете права root-пользователя или суперпользователя. В данном случае мы будем писать команды от имени пользователя root. Если вы не являетесь пользователем root, просто ставьте sudo перед всеми командами.
[/step]
## Обновите вашу систему
[step num="2"]
Сначала мы обновляем систему. Это требуется не всегда, но делать так — это хорошая практика:
```bash
yum update
```
[/step]
[step num="3"]
Ожидаем завершения установки обновлений и переходим к следующему шагу.
[/step]
## Установите пакеты GNOME
[step num="4"]
Теперь мы устанавливаем пакеты GNOME. Для их установки мы будем использовать команду, которая устанавливает все пакеты, связанные с GNOME GUI:
```bash
sudo yum -y groups install "GNOME Desktop"
```
[/step]
## Настройте систему X Window System
[step num="5"]
Программа, которая запускает графическую среду в большинстве систем Linux, называется X Window System. Итак, во-первых, вы должны указать X Window System, что GNOME — это графический интерфейс, используемый по умолчанию. Поэтому введите эту команду:
```
echo "exec gnome-session" >> ~/.xinitrc
```
[/step]
[step num="6"]
Теперь мы закончили установку GNOME и настройку системы X Window. Давайте проверим это, введя команду:
```
startx
```
[/step]
[step num="7"]
После запуска этой команды вы увидите графический интерфейс GNOME, похожий на изображение ниже, что означает, что он работает:
[/step]
Скриншот №1. Графический интерфейс GNOME
[step num="8"]
Теперь GNOME GUI установлен и протестирован. Однако для его запуска необходимо вводить команду startx при каждом запуске операционной системы, что не очень удобно. Давайте сделаем так, чтобы он запускался автоматически. Для этого используйте следующую команду:
```bash
systemctl set-default graphical.target
```
https://serverspace.uz/support/help/ustanovka-haraka-na-centos.mdПри помощи нашей инструкции вы сможете за 6 шагов пройти процедуру установки Haraka на CentOS. Haraka — это почтовый сервер на Node.js
Для работы нам понадобится VPS сервер с установленной на нем ОС CentOS.
## **Процесс установки**
**Шаг 1.** [step num="1"]Устанавливаем NodeJS:
```bash
yum install nodejs12
```
[/step]
**Шаг 2.** [step num="2"]Устанавливаем Haraka:
```bash
npm install -g Haraka
```
[/step]
**Шаг 3.** [step num="3"]Генерируем экземпляр Haraka:
```
haraka -i /path/to/haraka_test
```
[/step]
Эта команда создаст каталог haraka_test с каталогами config и plugin. Она также устанавливает имя хоста, используемое Haraka, на выход имени хоста. Если имя хоста неверно, отредактируйте /path/to/haraka_test/config/host_list.
Например, чтобы получать почту на адрес user@domain.com, добавьте domain.com в файл /path/to/haraka_test/config/host_list.
**Шаг 4.** [step num="4"]Запускаем Haraka с правами root:
```
haraka -c /path/to/haraka_test
```
[/step]
**Шаг 5.** [step num="5"]Настройка Haraka
Для включения/отключения плагинов, измените config/plugins. Плагины контролируют поведение Haraka. По умолчанию будут приняты и отправлены только сообщения на домены, которые перечислены в config/host_list.[/step]
**Шаг 6.** [step num="6"]Мануалы по плагинам:
```
haraka -h plugins/$name
```
[/step]
На этом установка Haraka завершена.
https://serverspace.uz/support/help/ustanovka-gitlab-na-centos-6-7.mdРассмотрим процесс установки GitLab — системы управления Git-репозиториями. Установка пакета, установка из репозитория и сборка и установка из исходников
GitLab — это система управления Git-репозиториями, позволяющая производить анализ кода, отслеживать и вести учет ошибок, ставить задачи тестирования, деплоя, а также для ведения документации и т.д.
**В Serverspace вы можете [создать сервер с уже установленным приложением GitLab](https://serverspace.uz/services/cloud-marketplace/gitlab.md)**.
## Подготовка к установке
В контексте данной инструкции полагается, что установка будет проходить на "чистом" сервере. Для корректной работы GitLab потребуются:
- CentOS 6/7;
- Postfix;
- Open SSH;
- Ruby;
- Go;
- Nodejs;
- База данных (PostgreSQL или MySQL);
- Redis;
- Nginx.
## Установка
Существует 3 способа установки GitLab:
- Установка пакета;
- Установка из репозитория;
- Сборка и установка из исходников.
Рекомендуемым разработчиками вариантом является установка GitLab из репозитория. Для того чтобы установить GitLab из репозитория необходимо выполнить следующие действия:
[step num="1"]
Установим необходимые зависимости:
```bash
sudo yum install -y curl policycoreutils-python openssh-server
```
[/step]
[step num="2"]
Данная команда установит следующие пакеты:
```bash
cURL, OpenSSH-Server и PolicyCoreUtils-Python
```
[/step]
[step num="3"]
После установки данных пакетов необходимо запустить и включить в автозагрузку OpenSSH-Server. Для этого поочередно вводим следующие команды:
Включаем OpenSSH-Server в автозагрузку:
```bash
sudo systemctl enable sshd
```
Запускаем OpenSSH-Server:
```bash
sudo systemctl start sshd
```
[/step]
[step num="4"]
Добавляем новые правила в Firewall и перезагружаем его:
```
sudo firewall-cmd --permanent --add-service=http
```
```
sudo firewall-cmd --permanent --add-service=https
```
```bash
sudo systemctl reload firewalld
```
[/step]
[step num="5"]
Далее установим Postfix для отправки уведомлений на электронную почту. Для этого необходимо выполнить следующие команды:
Устанавливаем Postfix:
```bash
sudo yum install postfix
```
Добавляем Postfix в автозагрузку:
```bash
sudo systemctl enable postfix
```
Запускаем Postfix:
```bash
sudo systemctl start postfix
```
[/step]
[step num="6"]
В процессе установки Postfix может открыть экран конфигурации. Вам необходимо выбрать "Internet-site" и нажать Enter. Для "mail name" необходимо указать внешний DNS вашего сервера, после чего нажать Enter. Если в процессе установки будут появляться дополнительные экраны, просто продолжайте нажимать Enter, чтобы установить значения по умолчанию.
[/step]
[step num="7"]
Добавим репозиторий в систему:
```bash
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
```
[/step]
[step num="8"]
Далее необходимо указать внешний адрес системы и произвести установку GitLab. На этом этапе скрипт-установщик скачает около 700 МБ, поэтому нужно немного подождать. Также адрес "https://gitlab.example.com" необходимо заменить на свой:
```
sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee
```
[/step]
[step num="9"]
Откройте установленный вами ранее адрес в браузере. При первом посещении вас перенаправит на смену пароля администратора. После смены пароля вы попадете на страницу авторизации. Используйте логин root и новый пароль для авторизации в системе.
https://serverspace.uz/support/help/ustanovka-cockpit-na-ubuntu-18-04.mdCockpit — функциональная и мощная панель управления сервером GNU/Linux. В статье рассмотрим пошаговый процесс установки ПУ Cockpit под Ubuntu.
**Cockpit** — достаточно функциональная и мощная панель управления сервером GNU/Linux. Обладает удобным и красивым веб-интерфейсом.
## Процесс установки
**Шаг 1**. Обновляем список пакетов:
```bash
sudo apt update
```
**Шаг 2**. Устанавливаем Cockpit:
```bash
sudo apt -y install cockpit
```
**Шаг 3**. Запускаем Cockpit:
```bash
sudo systemctl start cockpit
```
**Шаг 4**. Проверяем статус:
```bash
sudo systemctl status cockpit
```
**Шаг 5**. Переходим в браузере по ссылке:
```
http://:9090 или http://:9090.
```
Логин и пароль указываем такие же, как у root-пользователя:
https://serverspace.uz/support/help/ustanovka-firestarter-na-linux.mdУстановка и настройка легкого в использовании firewall для Linux: Firestarter для межсетевого экрана, установленного на Ubuntu 18.04
Многие утилиты для ОС семейства Linux поставляются без интерфейса, только командная строка. Расскажем о графической среде Firestarter для межсетевого экрана, установленного на Ubuntu 18.04.3.
## Подготовка
Firestarter является графическим интерфейсом для утилиты iptables. Он упрощает конфигурирование брандмауэра, позволяя системным администраторам тратить на это минимум времени.
Решение не интегрировано в дистрибутив Linux и недоступно в репозиториях. Скачаем пакет deb по ссылке ниже:
```bash
wget https://launchpad.net/ubuntu/+archive/primary/+files/firestarter_1.0.3-10_amd64.deb
```
Перейдем в папку с загруженным дистрибутивом и установим пакет вручную:
```
sudo dpkg –I firestarter_1.0.3-10_amd64.deb
```
Установка завершена, перейдем к настройкам.
## Первый запуск
1. В терминале прописываем:
```
sudo firestarter
```
Выбираем интерфейс, который будем настраивать, нажимаем Вперед:
2. На втором шаге предлагается активировать подключение к интернету, используя выбранный интерфейс. Если в этом нет необходимости, переходим далее:
3. Третий этап – заключительный. Подтверждаем активацию межсетевого экрана:
Нажимаем Сохранить. Откроется рабочая область программы.
## Конфигурирование
Перейдем во вкладку "Политики" (Policy). Создадим шаблон действий для входящего трафика (inbound traffic policy).
Нажимаем правой кнопкой мыши по рабочей области программы, как показано на скриншоте ниже:
В первом поле прописываем произвольное имя. Для примера взяли сервис HTTP. Во втором указывается номер порта, за которым наблюдает межсетевой экран. Третий задает правило обработки запросов. В нашем примере выбрана опция Allow, т.е. разрешить все. Последнее поле предназначено для дополнительной информации. Если в этом нет необходимости, пропускаем его:
Для завершения операции нажимаем Добавить и шаблон появится в рабочей области. Чтобы его сохранить, нажимаем на галочку:
Дальнейшие шаблоны задаются таким же способом. После создания конфигурации обязательно перезагружаем сервис, чтобы изменения вступили в силу.
https://serverspace.uz/support/help/ispolzovanie-utility-ufw-na-linux.mdПодробное руководство по настройке Uncomplicated Firewall (UFW). Операции с портами, IP, сетевым интерфейсом и записями.
В Linux используется межсетевой экран под названием iptables. Для удобства конфигурирования используют различные графические оболочки. Рассмотрим одну из них — Uncomplicated Firewall (UFW).
## Краткое описание
С английского языка название дословно переводится как несложный (упрощенный) брандмауэр. Особенность продукта — минимализм с графической оболочкой на основе командной строки. Если кратко, то UFW используют для базовых настроек межсетевого экрана. Он содержит необходимый минимум функций для стандартной защиты корпоративных ресурсов. Создание более сложных правил и тонкая настройка доступны в iptables.
Изначально решение разрабатывалось для операционных систем семейства Debian и Ubuntu. Дальнейшие действия выполняются под управлением Ubuntu.
## Предварительная подготовка
[step num="1"]
Если UFW не установлен на серверной платформе, используем стандартную утилиту:
```bash
sudo apt-get install ufw
```
[/step]
[step num="2"]
Второй вариант – утилита установлена, но неактивна, тогда прописываем:
```
sudo ufw enable
```
[/step]
**Важно!** Любые действия, связанные с конфигурированием продукта, выполняются с правами суперпользователя.
[step num="3"]
После инсталляции проверим состояние программы:
```
sudo ufw status verbose
```
[/step]
Скриншот №1. Проверка состояния программы
[step num="4"]
Стандартная конфигурация программы блокирует входящий трафик, но разрешает исходящий. Чтобы изменить параметры, открываем системный файл:
```
sudo nano /etc/default/ufw
```
```
sudo ufw default deny incoming
sudo ufw default allow outgoing
```
Первая строка отвечает за блокировку, а вторая за исходящие подключения.
[/step]
## Настройка
[step num="5"]
UFW распределяет правила согласно профилям программ. Они хранятся по следующему пути:
```
/etc/ufw/applications.d
```
[/step]
[step num="6"]
Создание нового или редактирование текущего профиля проводится администратором в ручном режиме. Для начала ознакомимся с текущими профилями:
```
sudo ufw app list
```
[/step]
[step num="7"]
Просмотр подробной информации по любой записи осуществляется при помощи следующей команды:
```
sudo ufw app info 'name'
```
[/step]
Где name — наименование профиля, которое заключается в одинарные кавычки.
Например, просмотрим сервис OpenSSH:
Скриншот №2. Сервис OpenSSH
Первая строка — имя новой записи в UFW. Вторая описывает заголовок, по которому профиль будет идентифицироваться. Третья содержит краткое описание сервиса (рекомендуется использовать 1-2 предложения). Последняя строка указывает порты, которые необходимо открыть для работы приложения.
[step num="8"]
Сохраняем файл и перезагружаем межсетевой экран:
```
ufw reload
```
[/step]
[step num="9"]
Следующий шаг — прописываем политику для новой записи. Доступно два режима: разрешить (Allow) и запретить (Deny). Синтаксис выглядит следующим образом:
```
ufw
```
[/step]
Где action – одно из двух значений Allow или Deny, а name_profile — наименование профиля.
## Операции с портами
[step num="10"]
Для открытия/закрытия портов также используется команды Allow/Deny, в зависимости от требований администратора. Синтаксис выглядит следующим образом:
```
sudo ufw /
```
[/step]
Расшифровка:
1. action — одно из двух действий: разрешить (Allow) или запретить (Deny);
2. port — цифровое имя порта, для которого применяется правило;
3. name_protocol — наименование протокола.
[step num="11"]
Если требуется указать перечень портов, используем двоеточие между начальной и конечной точкой. Альтернативный вариант — использовать имя службы, для которой создается запись. Например, откроем порт для сервиса HTTP:
```
sudo ufw allow http
```
[/step]
**Важно!** UFW разрешает стандартный порт, который закреплен за службой. Если значение отличается от общепринятых, то создавать правило по имени сервиса нельзя — оно не активируется.
## Операции с IP-адресами
[step num="12"]
Аналогично портам правила создаются правила и для IP-адресов. Синтаксис идентичен предыдущему пункту:
```
sudo ufw from
```
[/step]
Action – принимает значение Allow или Deny, IP-адрес – адрес оборудования, которому предоставляется/запрещается доступ к серверу.
[step num="13"]
Например, команду разрешить устройству с IP-адресом 10.68.23.15 доступ к всем портам сервера можно записать так:
```
sudo ufw allow from 10.68.23.15
```
[/step]
[step num="14"]
Также доступна опция идентификации порта, например:
```
sudo ufw allow from 10.68.23.15 to any port 22
```
[/step]
[step num="15"]
Добавление словосочетания to any port (name) задает конкретное значение порта, для которого доступ будет открыт. Вместо name указываем номер порта.
Если требуется создать правило для нескольких IP-адресов, используем видоизмененный синтаксис:
```
sudo ufw allow from 10.68.23.0/24
```
[/step]
## Операции с сетевым интерфейсом
[step num="16"]
При создании профилей также применяют имена сетевых интерфейсов. Синтаксис представлен ниже:
```
sudo ufw in on to any port
```
```
sudo ufw in on
```
[/step]
Поле action, как и в предыдущих разделах, принимает состояние Allow и Deny, а опция name_interface отвечает за наименование сетевого интерфейса, для которого создается правило.
[step num="17"]
Для просмотра списка активных интерфейсов вводим в терминале команду:
```
ifconfig -a
```
[/step]
Также доступна дополнительная опция to any port — для однозначной идентификации порта.
## Удаление записей
[step num="18"]
Чтобы удалить созданное ранее правило, используем ключ delete. В общем виде команда выглядит так:
```
sudo ufw delete
```
Где number — порядковый номер записи в таблице конфигурации UFW. Чтобы проставить цифровые значения для каждой строки, укажем в терминале:
```
sudo ufw status numbered
```
[/step]
[step num="18"]
После этого просто указываем номер записи в таблице. Допустим:
```
sudo ufw delete 7
```
Перезагрузка не требуется.
https://serverspace.uz/support/help/upravlenie-brandmauerom-centos.mdПодробно рассмотрим процесс конфигурирования межсетевого экрана в CentOS с помощью утилиты system-config-firewall в нашей инструкции
## Предварительная подготовка
Для конфигурирования межсетевого экрана в CentOS используют утилиту system-config-firewall, которая заменят текущий FirewallD.
[step num="1"]
Для этого уберем FirewallD из автозагрузочного сектора ОС:
```bash
sudo systemctl stop firewalld.service
```
```bash
sudo systemctl disable firewalld.service
```
[/step]
[step num="2"]
Теперь установим утилиту для дальнейшей настройки:
```bash
sudo yum install system-config-firewall-tui
```
[/step]
## Конфигурирование брандмауэра
[step num="3"]
После инсталляции запустим первичную настройку:
```
sudo system-config-firewall-tui
```
[/step]
На экране появится меню для выбора дальнейших действий:
Скриншот №1. Меню для выбора дальнейших действий
[step num="4"]
Сначала включаем режим брандмауэра, а потом выбираем пункт "Настройка".
[/step]
[step num="5"]
На втором шаге выбираем из перечня службы, которым открывается доступ во внешнюю сеть:
[/step]
Скриншот №2. Открываем доступ во внешнюю сеть
[step num="6"]
В нашем примере активируем DNS и FTP. Нажимаем "Вперед".
[/step]
[step num="7"]
Следующий пункт предлагает добавить дополнительные порты, которые не относятся к стандартным:
[/step]
Скриншот №3. Выбор дополнительных портов
Первый пункт добавляет порт "с нуля", т.е. пользователь самостоятельно прописывает параметры. Второй предназначен для правки существующих, а третий удаляет порт из перечня.
[step num="8"]
Например, создадим порт 8080 для протокола TCP следующим образом:
[/step]
Скриншот №4. Порт 8080 для протокола TCP
[step num="9"]
На третьем шаге представлен список сетевых интерфейсов на серверной платформе. Отмечаем только те пункты, для которых необходимо предоставить полный доступ во внешнюю сеть:
[/step]
Скриншот №5. Список сетевых интерфейсов
[step num="10"]
Следующее меню отвечает за предоставление функции NAT для сетевых интерфейсов. В терминологии CentOS она называется "Маскарад". Отмечаем пункт, для которого необходим данный режим:
[/step]
Скриншот №6. Функция NAT для сетевых интерфейсов
[step num="11"]
Теперь настроим проброс портов. Конфигурирование аналогично пункту с добавлением новых портов.
[/step]
[step num="12"]
Далее — фильтрация ICMP. Стандартная настройка не блокирует трафик. Если требуется запретить, выбираем пункт:
[/step]
Скриншот №7. Фильтрация ICMP
[step num="13"]
Последний шаг – создание правил. Добавляем собственные шаблоны, по которым файрволл будет обрабатывать трафик:
[/step]
Скриншот №8. Добавление шаблонов
[step num="14"]
Для создания нового выбираем пункт один, в котором прописываем необходимые условия. Второй пункт это редактирование текущего шаблона, а третий — удаление выбранного правила. Нажимаем Закрыть для возврата в первоначальное меню.
[/step]
[step num="15"]
Теперь выбираем "ОК" для активации внесенных изменений. Утилита покажет предупреждающее сообщение. Если все верно, то соглашаемся:
[/step]
Скриншот №9. Активация внесенных изменений
[step num="16"]
Установка завершена, межсетевой экран активирован.
https://serverspace.uz/support/help/debian-superuser-rights-sudo-visudo.mdУстановка и настройка утилиты командной строки Sudo для запуска команд с повышенными привилегиями. Полезные команды sudo в CLI
В операционных системах семейства Linux реализован принцип разграничения пользовательских привилегий, то есть у разных учетных записей разный объем прав доступа к каталогам, файлам и программам. Максимальными правами наделена встроенная учетная запись root. Вновь создаваемые пользовательские аккаунты обычно существенно ограничены в доступе к системным конфигурационным файлам, управлении сервисами, установке и удалении программных пакетов. При этом работа в операционной системе под учетной записью root настоятельно не рекомендуется, прежде всего в целях безопасности. В этом случае на помощь приходит утилита командной строки** sudo**.
Команда sudo позволяет запускать отдельные команды с повышением привилегий (по умолчанию с правами root) пользуясь непривилегированной учетной записью. Давайте разберемся, что же требуется для работы этой утилиты.
## Установка и настройка
[step num="1"]
В ОС Ubuntu sudo включена по умолчанию, а в Debian, если в процессе установки не был выбран соответствующий пакет, скорее всего будет следующая картина:
```
root@debian10:~# sudo
-bash: sudo: command not found
```
[/step]
[step num="2"]
Значит, требуется установить недостающий пакет. Обновляем информацию о репозиториях и устанавливаем sudo:
```bash
apt-get update
apt-get install sudo
```
[/step]
[step num="3"]
Дожидаемся окончания процесса:
[/step]
Скриншот №1. Процесс установки sudo
[step num="4"]
После успешной установки потребуется сконфигурировать sudo, определив, какие пользователи или группы смогут использовать повышение привилегий и в каком объеме. Все эти настройки хранятся в конфигурационном файле **/etc/sudoers**, однако вносить в него изменения напрямую настоятельно не рекомендуется. Для этих целей используется специальная команда:
```
visudo
```
которая запускает текстовый редактор с конфигурационным файлом:
[/step]
Скриншот №2. Текстовый редактор
[step num="5"]
За предоставление прав здесь отвечают две строки:
```
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
```
[/step]
Первая строка назначает права для учетной записи root, вторая устанавливает права для членов группы sudo, которая была создана при установке пакета (знак **%** перед названием означает, что имя относится к группе пользователей). Соответственно, у нас есть два основных способа предоставить пользовательской учетной записи право использовать **sudo**:
[step num="6"]
Добавить учетную запись пользователя (например, user) в группу sudo на сервере:
```
usermod –a –G sudo user
```
[/step]
После изменения членства в группе, потребуется заново авторизоваться в этой учетной записи для применения новой конфигурации. Данный метод рекомендуется в тех случаях, когда пользователю необходимо предоставить полные права.
[step num="7"]
Создать в файле новую запись, например, для учетной записи user. Мы добавляем строку по аналогии с root:
```
user ALL=(ALL:ALL) ALL
```
[/step]
Добавлять новую запись рекомендуется в тех случаях, когда список привилегий будет корректироваться (об этом чуть позднее). Если мы внесли изменения в файл, нужно их сохранить нажатием сочетания клавиш Ctrl-O и выйти из редактора — Ctrl-X.
[step num="8"]
Теперь можно проверить корректность работы:
```
user@debian10:~$ sudo cat /etc/sudoers
[sudo] password for user:
```
[/step]
Команда sudo запрашивает пароль текущего пользователя (в данном случае это user) — вводим его, и, если все сделано правильно, мы увидим содержание системного конфигурационного файла.
## Тонкая настройка
[step num="9"]
Таким образом, обычный пользователь может запускать команды с правами учетной записи root не зная ее пароль. Это очень удобно, но может быть небезопасно — есть ли возможность ограничить круг команд, которые можно исполнять посредством sudo? Да, и поможет нам в этом тот же самый конфигурационный файл. Снова запускаем visudo и разбираемся дальше. Нас интересуют параметры, указанные после имени пользователя:
[/step]
Скриншот №3. Настройки ограничения команд
[step num="10"]
Разберем их подробнее:
- **ALL**=(ALL:ALL) ALL — первый параметр определяет к какому хосту применяется конфигурация. При использовании выделенного сервера параметр можно оставить без изменений;
- ALL=**(ALL:ALL)** ALL — параметры в скобках определяют с полномочиями какого пользователя (первый параметр) и/или группы (второй параметр) будет выполняться команда. По умолчанию sudo выполняет команду от имени root, однако при запуске с ключом –u можно указать другую учетную запись, а с ключом –g другую группу, чьи полномочия будут использованы при запуске;
- ALL=(ALL:ALL) **ALL** — третий параметр определяет к каким файлам и командам относятся данные настройки.
[/step]
[step num="11"]
Исходя из вышесказанного, при необходимости определить перечень разрешенных команд заменяем последний параметр **ALL** тем, что нам требуется, перечисляя команды через запятую. Например, строка:
```
user ALL=(ALL:ALL) /sbin/shutdown –r, /bin/cat
```
дает право пользователю user с помощью sudo осуществлять перезагрузку сервера командой sudo /sbin/shutdown –r и просматривать файлы с помощью sudo /bin/cat. Другие команды через sudo выполняться не будут. Например, при попытке выключить сервер командой sudo /sbin/shutdown –h, получим ответ:
```
Sorry, user user is not allowed to execute '/sbin/shutdown -h' as root on debian10.
```
[/step]
## Полезные команды
[step num="12"]
Увидеть список привилегий можно, запустив sudo –l (будет отображен список для текущего пользователя), либо sudo –l –U user (будет отображен список привилегий пользователя user):
[/step]
Скриншот №4. Список привилегий пользователя
[step num="13"]
В состав sudo входит команда sudoedit, которая запускает текстовый редактор с указанным файлом сразу с повышенными привилегиями, то есть вместо команды:
```
sudo nano /etc/network/interfaces
```
можно запустить:
```
sudoedit /etc/network/interfaces
```
[/step]
[step num="14"]
Если требуется длительная работа в режиме повышенных привилегий и вводить sudo для каждой команды неудобно, можно запустить через sudo экземпляр командного интерпретатора:
```
sudo bash
```
и продолжить работу в нем — все команды будут запускаться с повышенными правами. По завершении работы выходим из интерпретатора командой exit.
https://serverspace.uz/support/help/informacziya-o-zheleze-v-linux.mdКоманды CLI, используемые для получения информации о параметрах системы Linux: сведения об оборудовании, программном и аппаратном обеспечении
В этом руководстве мы познакомимся с командами, используемыми для получения информации о параметрах системы, включая информацию о программном и аппаратном обеспечении. Справиться с этой задачей нам поможет инструмент командной строки uname.
Получение сведений об оборудовании и программном обеспечении вашей Linux-системы является одним из важных этапов администрирования. В этой статье мы углубимся в команды, используемые для поиска параметров системы, применяя инструмент командной строки uname. Кроме того, мы будем использовать команду lshw для получения более подробной информации об оборудовании.
Поскольку команды являются нативными для Linux, они должны работать на любом терминале дистрибутива, использующего ядро Linux. Обратите внимание, что все перечисленные ниже команды должны вводиться в терминале Linux.
## Поиск сведений о программном и аппаратном обеспечении
[step num="1"]
Для начала выясним детали используемого программного обеспечения, такие как ядро Linux, дистрибутив и другие. Команда, используемая для поиска системной информации — **uname**. Синтаксис выглядит следующим образом:
```
uname [option]
```
[/step]
[step num="2"]
Мы разберем все параметры команды **uname** с примерами вывода с нашего тестового [VPS на базе CentOS 7](https://serverspace.uz/services/vps-server/linux.md). Команда uname --help в терминале предоставляет все подробности того, как эту команду можно использовать:
[/step]
Скриншот №1. Команда uname
## Операционная система, имя хоста и ядро Linux
[step num="3"]
Опция -o или --operating-system отображает используемую операционную систему:
```
uname -o
```
[/step]
Скриншот №2. Опция operating-system
[step num="4"]
Опция -n или --nodename отображает имя хоста:
```
uname -n
```
[/step]
Скриншот №3. Опция nodename
[step num="5"]
Чтобы найти релиз ядра Linux, используйте параметр -r или --kernel-release:
```
uname -r
```
[/step]
Скриншот №4. Параметр kernel-release
[step num="6"]
Опция -v или --kernel-version выводит версию ядра:
```
uname -v
```
[/step]
Скриншот №5. Опция kernel-version
[step num="7"]
Если вам нужна вся вышеуказанная информация в одной команде, используйте параметр -a или --all следующим образом:
```
uname -a
```
[/step]
Скриншот №6. Параметр all
[step num="8"]
Наконец, чтобы узнать версию утилиты uname, используйте команду --version:
```
uname --version
```
[/step]
Скриншот №7. Команда version
## Команда lshw
Команда List Hardware (lshw) — еще одна популярная команда, используемая системными администраторами для получения очень подробной информации об аппаратных характеристиках машины. Это делается путем чтения различных файлов в каталоге _/proc_ на компьютере с Linux.
Для получения информации утилите lshw необходим root-доступ. Она может сообщить о конфигурации RAM, версии прошивки, конфигурации материнской платы, информацию о процессоре, конфигурации кэша, скорости шины и т.д. Эта команда присутствует по умолчанию в большинстве дистрибутивов Linux. Если приведенные ниже команды не работают, значит утилиты в вашем дистрибутиве нет. Для ее установки перейдите на официальную [страницу GitHub](https://github.com/lyonel/lshw).
Синтаксис команды:
```
lshw [-format] [-options]
```
Формат вывода может быть любым из следующих:
- **html — **вывод аппаратной конфигурации в формате HTML;
- **xml — **вывод аппаратной конфигурации в формате XML;
- **json — **вывод аппаратной конфигурации как объект JSON;
- **short — **отображает только основную информацию;
- **businfo — **выводит информацию о шине.
Параметры могут быть любыми из следующих:
- -class CLASS — показывает только определенный класс оборудования;
- -C CLASS — такой же, как '-class CLASS';
- -c CLASS — такой же, как '-class CLASS';
- -disable TEST — отключить тест (например, pci, isapnp, cpuid и т.д.);
- -enable TEST — включить тест (например, pci, isapnp, cpuid и т.д.);
- -quiet — не отображать статус;
- -sanitize — удалить конфиденциальную информацию, такую как серийные номера и т.д.;
- -numeric — числовые идентификаторы (для PCI, USB и т.д.);
- -notime — исключить изменяемые атрибуты (временные метки) из вывода.
Поскольку команда должна выполняться с правами root, используйте sudo перед командой:
```
sudo lshw -short
```
Скриншот №7. Команда sudo
https://serverspace.uz/support/help/installing-and-configuring-a-vnc-server-on-centos-7.mdКак установить и настроить VNC-сервер на ОС CentOS 7.x., чтобы подключаться с VNC-клиентов: TightVNC, RealVNC и т.п. — пошаговый мануал
В этом руководстве мы рассмотрим, как установить и настроить VNC-сервер на операционной системе CentOS 7.x, чтобы разрешить удаленные подключения с любых VNC-клиентов, таких как TightVNC, RealVNC и других. В частности, мы сделаем это с помощью программного обеспечения TigerVNC Server — бесплатного инструмента, который позволяет пользоваться автономным виртуальным рабочим столом.
## Введение
**VNC (Virtual Network Computing)** представляет собой клиент-серверный протокол, который позволяет клиентскому компьютеру (под управлением клиента VNC) подключаться и управлять удаленным компьютером (работающим на сервере VNC). Программное обеспечение было разработано исследовательской лабораторией Olivetti & Oracle в Кембридже, Великобритания, и его исходный код по-прежнему актуален и доступен под лицензией General Public License (GNU).
В зависимости от программного обеспечения сервера, VNC клиент будет подключаться к активному рабочему столу (например, как программы TeamViewer или AnyDesk) или к автономному виртуальному рабочему столу (как протокол удаленного рабочего стола Windows RDP). Последний, возможно, более мощный и безопасный, особенно если вам необходимо управлять серверным компьютером, потому что каждый сеанс будет уникальной средой, настроенной с разрешениями и правами подключаемого пользователя. Вот почему мы выбираем TigerVNC, который выполняет запуск параллельных сеансов среды рабочего стола компьютера (GNOME, KDE или другой GUI): это значит, что виртуальный рабочий стол будет создан для каждого отдельного подключения — это именно то, чего мы хотим.
## Установка TigerVNC
Теперь давайте разберемся, как мы можем установить и настроить TigerVNC в CentOS. Первое, что нужно сделать, это установить программу TigerVNC Server, открыв сеанс терминала и введя следующую команду с правами root:
```
$ sudo yum install tigervnc-server
```
Сразу после этого вам необходимо создать отдельного пользователя VNC, с которого и будет осуществляться подключение (с выделенным паролем). Для этого введите следующее:
```
$ sudo adduser vncuser
$ sudo passwd vncuser
```
**Важно:** никогда не делайте этого от имени root-пользователя — это создаст серьезную угрозу безопасности вашей системы. Лучшим решением будет оставить пользователя root без доступа к VNC и настроить выделенную учетную запись с ограниченными правами.
После того как вы создали vncuser и задали пароль для входа в систему, вам также необходимо установить уникальный пароль VNC для этого пользователя. Это можно сделать с помощью следующей команды:
```
$ su - vncuser
$ vncpasswd
```
(первая строка может быть опущена, если мы уже вошли под пользователем vncuser заранее).
Следующее, что нужно сделать, это создать файл конфигурации VNC для vncuser. Самый быстрый способ сделать это — скопировать файл общего шаблона VNC, расположенный в папке **/lib/systemd/system/**, — и затем изменить его:
```
$ cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
```
Цифра "1", которую мы добавили в новое имя файла, — это номер дисплея, который будет использоваться для этого конкретного экземпляра службы. Это важно знать, потому что он также определит порт TCP, который будет использоваться нашим VNC-сервером, равным 5900 + номер дисплея. Первый будет 5901, затем 5902 и так далее.
Сразу после копирования вам нужно отредактировать новый файл с помощью Vi, Nano или другого текстового редактора, и заменить [USER] на имя пользователя, созданного недавно (в нашем случае vncuser). Вот как файл должен выглядеть после обновления (за исключением длинной закомментированной части в начале):
```
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720"
PIDFile=/home/vncuser/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
WantedBy=multi-user.target
```
Как только вы это сделаете, можете перезагрузить демон VNC и запустить vncserver@1 с помощью следующих команд:
```
$ systemctl daemon-reload
$ systemctl start vncserver@:1
```
Прежде чем продолжить, проверьте, запущена ли служба, введя команду **systemctl status**:
```
$ systemctl status vncserver@:1
```
и создайте символическую ссылку, чтобы она всегда выполнялась при запуске системы, с помощью следующей команды:
```
$ systemctl enable vncserver@:1
```
Еще одна проверка, которую вы можете выполнить, прежде чем пытаться подключиться к серверу, — это посмотреть на активные сетевые сокеты с помощью команды **ss**: если все работает правильно, вы должны увидеть, что VNC-сервер работает и использует порт TCP 5901. Выполните команду:
```
$ ss -tulpn| grep vnc
```
Результат должен быть следующим:
```
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5))
```
Если вы видите это, значит все настроено правильно.
## Настройка файрволла
Поскольку наша служба VNC прослушивает порт TCP 5901, вы должны быть уверены, что такой порт открыт и доступен внешним клиентам. Поэтому если у вас установлен брандмауэр, вы должны создать соответствующее правило, позволяющее подключаться клиентам VNC.
Сколько открыть портов, будет зависеть от того, сколько экземпляров VNC-серверов вам понадобится. В нашем сценарии мы сделали только 1, поэтому вам нужно открыть только первый выделенный порт VNC: TCP 5901, как мы уже и говорили. Команда, чтобы открыть этот порт на Firewalld:
```
# firewall-cmd --add-port = 5901 / tcp
# firewall-cmd --add-port = 5901 / tcp --permanent
```
Не будет лишним упомянуть, что вы также можете ограничить этот порт для определенных групп, IP-адресов, сетевых карт или других простых или сложных правил брандмауэра.
## Установка графического интерфейса (GUI)
Если у вас уже есть GNOME, KDE или другие установленные среды рабочего стола, вы можете пропустить этот шаг. В противном случае вам необходимо установить один из них: сервер TigerVNC будет запускать параллельный экземпляр данной среды рабочего стола для каждого сеанса входа в систему, что означает, что у нас должен быть хотя бы один GUI.
### GNOME
Если вы хотите действительно отличный, но тяжеловесный интерфейс GNOME, введите следующее:
```
$ sudo yum groupinstall "GNOME Desktop"
```
### Xfce
Если вам нужна легкая альтернатива, мы можем предложить Xfce — бесплатную среду с открытым исходным кодом для Unix-подобных платформ, которая прекрасно работает с TigerVNC. GNOME также отлично работает, но он довольно ресурсоемкий: если вы хотите сэкономить ресурсы на своей серверной машине, Xfce, возможно, будет лучшим выбором. Чтобы установить его, введите следующее:
```
$ yum install epel-release
$ yum groupinstall xfce
```
### Дополнительные настройки для Xfce
Если вы решили использовать **Xfce**, вам также потребуется изменить файл, который выполнялся при запуске сеанса VNC. Для этого отредактируйте файл:
```
/home//.vnc/xstartup
```
и измените запись exec (обычно строка 4) с **etc/X11/xinit/xinitrc** на **startxfce4**, как показано ниже:
```bash
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY
```
## Соединение с клиентом VNC
Теперь, когда все настроено, мы можем попытаться подключиться к нашей службе VNC с помощью клиента VNC, такого как TightVNC, UltraVNC или RealVNC, и посмотреть, что произойдет. Не забудьте указать порт TCP 5901 (если вы следовали нашему руководству).
## Возможные проблемы
Если ваш клиент не может установить работающее соединение VNC, вам необходимо проверить следующее:
1. **Проблемы с соединением — Конфигурация брандмауэра**: если вы видите всплывающие ошибки о том, что клиент не может подключиться к удаленному хосту, вам необходимо проверить конфигурацию вашей сети и брандмауэра, чтобы убедиться, что нет проблем с блокировкой, которые могут помешать клиенту подключиться к порту сервера TCP 5901.
2. **Черный экран с мышью — обновление YUM или переустановка графического интерфейса**: если вы видите черный экран с работающим указателем мыши, это, вероятно, означает, что ваше VNC-соединение работает нормально, но есть что-то, что мешает правильному запуску графического интерфейса рабочего стола. Для исправления:
- Выполните yum update, чтобы установить новейшие версии TigerVNC и самого графического интерфейса. Обязательно следите за любыми возникающими проблемами на этапе установки.
- Удалите и переустановите графический интерфейс, используя команду** yum remove / yum group remove** и **yum groupinstall** снова. Если по-прежнему ничего не работает, вы можете попробовать установить другой графический интерфейс.
https://serverspace.uz/support/help/installing-ubuntu-debian-programs-using-the-batch-manager.mdРазные методы установки программ в Linux Ubuntu/Debian через пакетный менеджер APT (advanced packaging tool), Dpkg (debian package), install.sh
Одна из самых сложных задач, возникающих в процессе установки Unix-программ — отслеживание зависимостей.
Любая более-менее сложная программа в своей работе использует возможности, предоставляемые другими модулями, системными библиотеками и т.д. Таким образом, появляется зависимость — если мы хотим установить программу "А", которая при работе использует библиотеки программы "Б", сначала необходимо установить программу "Б" (у которой, в свою очередь, могут быть свои зависимости). Таким образом, чем больше программ и зависимостей появляется на сервере, тем сложнее их отслеживать и управлять ими. Хорошая новость в том, что это можно делать с помощью пакетного менеджера **APT** (Advanced Packaging Tool).
## Установка с помощью пакетного менеджера
Эволюция методов установки и управления программными пакетами со временем дошла до использования пакетных менеджеров, плотно интегрированных с репозиториями. В репозиториях содержатся упакованные файлы программ с данными об их зависимостях. После установки к операционной системе уже подключены системные репозитории: с их помощью можно обновлять ОС и устанавливать программные пакеты, которые были адаптированы и оптимизированы для работы с этой версией операционной системы.
[step num="1"]
Перед началом установки пакетов рекомендуется обновить данные о версиях и зависимостях в репозитории следующей командой:
```bash
sudo apt-get update
```
[/step]
Скриншот №1. Обновление данных о версиях и зависимостях в репозитории
[step num="2"]
Если необходимо уточнить название пакета, который требуется установить — ищем в локальном кэше менеджер по ключевым словам, например, **web server**:
```bash
sudo apt-cache search web server
```
[/step]
[step num="3"]
В результате получим большой перечень пакетов, где данное ключевое слово присутствует в описании:
[/step]
Скриншот №2. Поиск по ключевым словам
[step num="4"]
Выбираем нужный нам пакет — в данном случае это **apache2**, и устанавливаем его:
```bash
sudo apt-get install apache2
```
[/step]
[step num="5"]
Пакетный менеджер проверяет зависимости, версии, сравнивает их с уже установленными через **apt-get** пакетами, после чего выдает список необходимых для установки компонентов и запрашивает разрешение на продолжение операции:
[/step]
Скриншот №3. Установка пакета
[step num="6"]
Нажимаем** y** и дожидаемся окончания установки.
[/step]
Часто используемые команды пакетного менеджера:
- **apt-get update** — обновление информации о пакетах и зависимостях в подключенных репозиториях;
- **apt-get upgrade** — обновление всех установленных пакетов до актуальной версии, имеющейся в репозитории;
- **apt-get install имя_пакета** — установка пакета;
- **apt-get remove имя_пакета** — удаление пакета;
- **apt-get download имя_пакета** — скачать deb-пакет в локальную папку;
- **apt-cache search ключевые слова** — поиск пакета по ключевым словам;
- **apt-cache show имя_пакета** — показать информацию о пакете;
- **apt-cache depends имя_пакета** — показать от каких компонентов зависит данный пакет;
- **apt-cache rdepends имя_пакета** — показать какие компоненты зависят от пакета;
- **apt-mark hold имя_пакета** — зафиксировать текущую версию пакета, прекратить обновление пакета;
- **apt-mark unhold имя_пакета** — разрешить обновление пакета.
## Установка через Debian package
[step num="7"]
Программные пакеты могут распространяться и не через репозитории. Например, они могут быть доступны на сайтах разработчиков. В таком случае, пакет можно скачать и воспользоваться утилитой **dpkg** (debian package) для установки. При использовании **dpkg** не происходит автоматическое отслеживание зависимостей и скачивание дополнительных пакетов. В случае нехватки каких-либо программ или библиотек установка завершится ошибкой с указанием списка отсутствующих пакетов. Их придется установить отдельно, например, через **apt-get**, если они присутствуют в подключенных репозиториях, либо скачивать с сайтов разработчиков и устанавливать в нужном порядке через **dpkg**.
[/step]
[step num="8"]
Для примера скачаем из системного репозитория установочный пакет веб-сервера **Nginx** командой:
```bash
sudo apt-get download nginx
```
[/step]
[step num="9"]
и попробуем установить через **dpkg –i имя_файла.deb**:
```
sudo dpkg –i ./nginx_1.14.0-0ubuntu1.6_all.deb
```
[/step]
[step num="10"]
В результате система выдает ошибку с перечнем отсутствующих пакетов:
[/step]
Скриншот №4. Ошибка с перечнем отсутствующих пакетов
Основные опции **dpkg**:
- **dpkg –i имя_файла.deb** — установка пакета; в качестве параметра указывается полное имя файла;
- **dpkg –r имя_пакета** — удаление ранее установленного пакета;
- **dpkg –l** — выведение списка установленных в системе пакетов.
## Установка через файлы сценариев
[step num="11"]
Установка программы представляет собой распаковку архива, копирование файлов программы в системные директории и, при необходимости, внесение изменений в системные конфигурационные файлы. Все эти действия могут быть внесены в исполняемый файл сценария и выполнены при его запуске. Сейчас достаточно редко встречается подобный метод установки программы, но, тем не менее, некоторые разработчики его используют. Если возникла необходимость в установке такого пакета, необходимо скачать архив (обычно это файл с расширением .tgz или .tar.gz), распаковать его в отдельную директорию на сервере, изучить распакованные файлы, а также прочитать файл readme, если он имеется. Установка программы запускается, обычно, сценарием** install.sh**, поэтому нужно включить атрибут исполняемого файла командой:
```bash
sudo chmod +x ./install.sh
```
[/step]
[step num="12"]
после чего запустить непосредственно сценарий:
```
sudo ./install.sh
```
https://serverspace.uz/support/help/shpargalka-po-vim.mdШпаргалка по текстовому редактору Vim/Vi: часто используемые функции, редактирование конфигурационных файлов Linux, полезные команды
Итак, вам срочно понадобилось отредактировать какой-либо конфигурационный файл и под рукой нет знакомых консольных текстовых редакторов, только Vi (Vim)? Предлагаем следующий алгоритм действий, который выручит вас в данной ситуации:
## Быстрый старт
[step num="1"]
Открываем файл в текстовом редакторе командой vi /путь/имя_файла, например:
[/step]
```
sudo vi /etc/netplan/99-netcfg-vmware.yaml
```
Команда sudo используется в том случае, если для открытия файла нужны повышенные привилегии (например, редактирование системных конфигурационных файлов). Указанный файл откроется в текстовом редакторе:
Скриншот №1. Команда sudo
[step num="2"]
Перемещаем курсор по тексту с помощью стрелок или клавиш **h** (влево), **l** (вправо), **j** (вниз), **k** (вверх) до нужного места в тексте.
[/step]
[step num="3"]
Переводим открытый файл в режим редактирования текста нажатием клавиши **i** (раскладка клавиатуры должна быть англоязычной). В результате в нижней части экрана появится индикация режима работы — INSERT:
[/step]
Скриншот №2. Режим редактирования текста
[step num="4"]
Вносим в текст необходимые корректировки.
[/step]
[step num="5"]
Выходим из режима редактирования нажатием клавиши **Esc** — индикатор INSERT в нижней части экрана должен исчезнуть.
[/step]
[step num="6"]
Теперь необходимо закрыть файл, сохранив внесенные изменения. Для этого набираем:
[/step]
```
:wq
```
Данный набор символов также должен отобразиться в нижней части окна. Буква **w** помогает сохранить файл на диск (**w**rite), **q** — завершить работу редактора (**q**uit):
Скриншот №3. Сохранение изменений в файле
Если же что-то пошло не так и вам необходимо закрыть редактор не сохраняя изменения в файле, просто введите команду:
```
:q!
```
## Дальше — больше
Приведенной выше информации вполне достаточно, чтобы открывать, редактировать и сохранять файлы в текстовом редакторе Vim, однако у него есть возможности, которые могут существенно упростить и ускорить работу. Стоит начать с пояснения: Vi был одним из первых визуальных текстовых редакторов, однако начиная с определенной версии программный продукт стал доступен только под коммерческой лицензией. Энтузиасты начали разрабатывать свои аналоги этого текстового редактора, одним из которых является **Vim** (сокращение от **V**i **Im**proved — Vi усовершенствованный). Vim получил широкое распространение в *nix-дистрибутивах и при запуске команды **vi** в консоли вероятнее всего откроется именно он.
Прежде всего нужно понять, что Vim может работать в нескольких режимах, каждый из которых обладает своими особенностями и набором поддерживаемых функций. Сразу после запуска редактора вы окажетесь в обычном режиме (normal). Здесь можно не только перемещать курсор по тексту, но и выделять/удалять/копировать/вставлять как отдельные символы, так и целые блоки текста. Эти задачи выполняются нажатием соответствующих букв и цифр (причем регистр букв имеет значение), точка отсчета — текущее положение курсора. Рассмотрим навигацию по файлу:
- h — смещение курсора на один символ влево;
- j — смещение курсора на один символ вниз;
- k – смещение курсора на один символ вверх;
- l – смещение курсора на один символ вправо;
- w – смещение курсора в начало следующего слова в данной строке;
- b – смещение курсора в начало предыдущего слова в данной строке;
- G – переместить курсор в конец файла;
- gg – вернуться в начало файла.
Действия навигации также можно совмещать с цифрами, например, комбинация **3w** сместит курсор вперед на три слова, а **5k** на пять строк вверх.
Часто используемые операции c текстом:
- x — удалить символ под курсором;
- d — удалить символы/строки;
- dd — удалить строку целиком;
- D — удалить символы от текущего положения курсора до конца строки;
- v — включить режим выделения текста;
- y — скопировать символы/строки;
- yy — скопировать строку целиком;
- p — вставить символы/строки;
- u — отменить последнее действие.
Функции удаления и копирования требуют дополнительного пояснения, ведь при нажатии **d** или **y** вроде бы ничего не происходит. Дело в том, что редактор ожидает дальнейших указаний — сколько строк символов нужно удалить/скопировать и в каком направлении от текущего положения курсора вести отсчет. Чтобы удалить пять символов вправо от курсора, нужно последовательно нажать **d5l**, чтобы скопировать три строки, следующие после курсора — **y5j**. Если имеется выделенный текст, для его копирования достаточно нажать **y**.
Имеется в Vim и функция поиска:
- /шаблон — все вхождения набора символов, указанного после **/** (слэша) будут подсвечены в тексте;
- n — сместить курсор к следующему вхождению;
- N — сместить курсор к предыдущему вхождению.
Другой режим работы Vim — режим редактирования. Переключиться в него можно несколькими способами:
- i — режим вставки (INSERT), ввод начинается с позиции курсора;
- a — режим вставки (INSERT), ввод начинается с позиции, следующей за курсором;
- A — режим вставки (INSERT), курсор перемещается в конец текущей строки;
- R — режим замены (REPLACE), все вводимые символы будут последовательно заменять находящиеся под курсором.
Если нужно заменить всего один символ, находящийся под курсором, достаточно нажать **r** и нужный символ — замена будет произведена без перехода в режим редактирования. Внизу экрана появляется соответствующий индикатор режима — INSERT или REPLACE. Вернутся в общий режим можно нажатием кнопки **Esc** (индикатор должен пропасть).
Еще один режим работы Vim — командный. Переход в него осуществляется из общего режима нажатием **:** (двоеточия). Соответствующий индикатор появляется в нижнем левом углу окна, после чего можно вводить команды и их сочетания.
- :q — выйти из редактора;
- :q! — выйти из редактора без сохранения изменений в файле;
- :w — сохранить изменения в файл;
- :wq — сохранить изменения и закрыть редактор;
- :r имя_файла — добавить содержимое указанного файла в редактируемый;
- :r! команда_консоли — выполнить команду и добавить ее вывод в файл.
## И еще кое-что
В данной статье рассмотрены часто употребляемые функции Vim, которых на самом деле гораздо больше. Чтобы закрепить навыки работы с редактором, освежить в памяти его возможности или узнать что-то новое, набираем в консоли команду **vimtutor** и проходим курс обучения (**vimtutor ru** — если предпочтителен русский язык):
Скриншот №4. Курс обучения
https://serverspace.uz/support/help/ustanovka-lemp-steka-na-centos-7.mdПодробная инструкция по установке LEMP-стека на сервере с CentOS 7. Настройка firewall, установка Nginx, MariaDB, установка и настройка PHP
**LEMP** — это акроним, обозначающий набор программного обеспечения, широко используемого на веб-серверах Linux.
**В Serverspace вы можете создать сервер с уже установленным приложением LEMP**.
Рассмотрим его установку на CentOS 7, однако перед этим произведем обновление системы и выполним перезагрузку:
```bash
sudo yum update -y
reboot
```
## Настройка Firewall
Так как по умолчанию порты 80 и 443 закрыты настройками файрволла, следует выполнить несколько команд для получения доступа к веб-серверу из интернета.
[step num="1"]
Открываем порт 80:
```
sudo firewall-cmd --permanent --zone=public --add-service=http
```
[/step]
[step num="2"]
Открываем порт 443:
```
sudo firewall-cmd --permanent --zone=public --add-service=https
```
[/step]
[step num="3"]
Перезагружаем службу:
```bash
sudo systemctl restart firewalld
```
[/step]
[step num="4"]
Проверяем внесенные изменения:
```
sudo firewall-cmd --zone=public --list-services
```
[/step]
[step num="5"]
В итоге должно отобразиться следующее:
```
dhcpv6-client http https ssh
```
[/step]
## Установка Nginx
[step num="6"]
Включаем репозиторий EPEL, если это не было сделано ранее. EPEL содержит некоторые пакеты, которые не вошли в стандартный набор RHEL (CentOS), в том числе Nginx. Вводим следующую команду для подключения репозитория:
```bash
sudo yum install epel-release -y
```
[/step]
[step num="7"]
Установим непосредственно сам Nginx:
```bash
sudo yum install nginx -y
```
[/step]
[step num="8"]
Запускаем сервис и добавляем его в автозапуск:
```bash
sudo systemctl start nginx
sudo systemctl enable nginx
```
[/step]
## Установка MariaDB
[step num="9"]
Теперь перейдем к установке и первоначальной настройке СУБД:
```bash
sudo yum install mariadb-server mariadb -y
```
[/step]
[step num="10"]
Запускаем службу аналогично Nginx:
```bash
sudo systemctl start mariadb
sudo systemctl enable mariadb
```
[/step]
[step num="11"]
Следующей командой запустим базовую настройку безопасности:
```
sudo mysql_secure_installation
```
[/step]
[step num="12"]
Процесс заключается в установке пароля root-доступа к базам, отключении анонимного и удаленного доступа и удалении тестовых баз. Если не требуется иное, читаем запрос и соглашаемся нажатием клавиши "Y".
[/step]
## Установка PHP 7.3
[step num="13"]
Поддерживаемые версии PHP можно посмотреть на официальном [сайте](https://www.php.net/supported-versions.php). В нашем случае устанавливаем PHP версии 7.3 и подключаем репозиторий Remi следующей командой:
```
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
```
[/step]
[step num="14"]
Далее устанавливаем пакет yum-utils для работы с репозиторием Remi:
```bash
sudo yum install yum-utils
```
[/step]
[step num="15"]
Теперь нужно активировать репозиторий и запустить установку пакетов PHP 7.3:
```bash
sudo yum-config-manager --enable remi-php73
sudo yum install php73 -y
```
[/step]
[step num="16"]
Завершим процесс установки подключением часто используемых модулей и запуском php-fpm:
```bash
sudo yum install php-fpm php-mysql php-cli php-mbstring php-opcache php-curl php-gd -y
systemctl start php-fpm
systemctl enable php-fpm
```
[/step]
## Настройка PHP
[step num="17"]
Открываем файл настроек php.ini:
```
nano /etc/php.ini
```
[/step]
[step num="18"]
Меняем значение cgi.fix_pathinfo. Данное изменение внесет запрет на исполнение произвольного кода на сервере с правами PHP-процесса при загрузке файла:
```
..
cgi.fix_pathinfo=0 #Убираем комментарий ";" в начале строки и меняем 1 на 0
..
```
[/step]
[step num="19"]
Далее меняем группу и пользователя с Apache на Nginx в конфигурационном файле php-fpm:
```
sudo nano /etc/php-fpm.d/www.conf
```
[/step]
[step num="20"]
Получаем:
```
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
```
[/step]
[step num="21"]
Перезапускаем php-fpm:
```bash
sudo systemctl restart php-fpm
```
[/step]
## Настройка Nginx
[step num="22"]
Откроем файл конфигураций Nginx:
```
sudo nano /etc/nginx/nginx.conf
```
[/step]
[step num="23"]
Вносим следующие изменения в файл:
```css
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 46.243.182.96; #_Пишем имя сервера или IP адрес_
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm; #_Добавляем index.php_
}
error_page 404 /404.html;
location = /40x.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ { #_Добавляем возможность обрабатывать запросы PHP_
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
[/step]
[step num="24"]
Настало время проверить наш веб-сервер. Создадим страницу по следующему пути:
```
nano /var/www/html/info.php
```
[/step]
[step num="25"]
Вставим следующую строку и сохраним файл:
```php
```
[/step]
[step num="26"]
Перезапустим Nginx командой:
```bash
sudo systemctl restart nginx
```
[/step]
Теперь, если вы зайдете через браузер на ваш веб-сервер по адресу http://server_name/info.php (http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx — адрес), то увидите информационную страницу:
https://serverspace.uz/support/help/regulyarnye-vyrazheniya.mdРассмотрим использование регулярных выражений RegEx или RegExp в Linux Bash для поиска текста с помощью grep. Основные операторы регулярок
**Регулярные выражения (RegEx или RegExp)** — это набор символов, которые определяют шаблон поиска. Их можно использовать для выполнения операций "Поиск" или "Поиск и замена", а также для проверки условий, таких как политика паролей, ввод номера телефона и т.д.
Приведем пример регулярного выражения:
```
/t[aeiou]l/
```
Это регулярное выражение будет искать слово, начинающееся с буквы 't', содержащее любую из букв 'a e i o u' в середине и оканчивающееся буквой 'l'. Это может быть 'tel', 'tal' или 'til'. Совпадение может быть отдельным словом или частью другого слова, например 'tilt', 'brutal' или 'telephone'.
А теперь приступим к рассмотрению основных регулярных выражений на примере командной оболочки Bash.
## Основы регулярных выражений
В общем виде синтаксис команды 'grep' выглядит следующим образом:
```
$ grep поисковый_запрос_regex расположение_файла
```
Изучим некоторые специальные символы, известные как метасимволы. Они помогают создавать более сложные поисковые выражения:
| . | будет соответствовать любому символу; |
| --- | --- |
| [ ] | будет соответствовать диапазону символов; |
| [^ ] | будет соответствовать всем символам, кроме указанных в фигурных скобках; |
| * | будет соответствовать любому количеству символов, предшествующих звездочке, в том числе нулю; |
| + | будет соответствовать одному или нескольким из стоящих перед ним выражений; |
| ? | будет соответствовать нулю или одному из стоящих перед ним выражений; |
| {n} | будет соответствовать 'n' повторениям предшествующих выражений; |
| {n,} | будет соответствовать не менее 'n' повторениям предшествующих выражений; |
| {n m} | будет соответствовать не менее 'n' и не более 'm' повторениям предшествующих выражений; |
| {,m} | будет соответствовать не более или равному 'm' повторениям предшествующих выражений; |
| | является escape-символом (символом экранирования), используемым, когда нужно включить один из метасимволов. |
## Приведем примеры
### . (точка)
Используется для соответствия любому символу, который встречается в поисковом запросе. Например, можем использовать точку как:
```
$ grep "d.g" file1
```
Это регулярное выражение означает, что мы ищем слово, которое начинается с 'd', оканчивается на 'g' и может содержать один любой символ в середине файла с именем 'file1'. Точно так же мы можем использовать символ точки любое количество раз для нашего шаблона поиска, например:
```
T......h
```
Этот поисковый термин будет искать слово, которое начинается с 'T', оканчивается на 'h' и может содержать любые шесть символов в середине.
### [ ]
Квадратные скобки используются для определения диапазона символов. Например, когда нужно искать один из перечисленных символов, а не любой символ, как в случае с точкой:
```
$ grep "N[oen]n" file2
```
Здесь мы ищем слово, которое начинается с 'N', оканчивается на 'n' и может иметь только 'o', 'e' или 'n' в середине. В квадратных скобках можно использовать любое количество символов. Мы также можем определить диапазоны, такие как 'a-e' или '1-18', как список совпадающих символов в квадратных скобках.
### [^ ]
Это похоже на оператор отрицания для регулярных выражений. Использование [^ ] означает, что поиск будет включать в себя все символы, кроме тех, которые указаны в квадратных скобках. Например:
```
$ grep "St[^1-9]d" file3
```
Это означает, что у нас могут быть все слова, которые начинаются с 'St', оканчиваются буквой 'd' и не содержат цифр от 1 до 9.
До сих пор мы использовали примеры регулярных выражений, которые ищут только один символ. Но что делать в иных случаях? Допустим, если требуется найти все слова, которые начинаются или оканчиваются символом или могут содержать любое количество символов в середине. С этой задачей справляются так называемые метасимволы-квантификаторы, определяющие сколько раз может встречаться предшествующее выражение: + * & ?
{n}, {n m}, {n, } или { ,m} также являются примерами других квантификаторов, которые мы можем использовать в терминах регулярных выражений.
### * (звездочка)
На следующем примере показано любое количество вхождений буквы 'k', включая их отсутствие:
```
$ grep "lak*" file4
```
Это означает, что у нас может быть совпадение с 'lake' или 'la' или 'lakkkkk'.
### +
Следующий шаблон требует, чтобы хотя бы одно вхождение буквы 'k' в строке совпадало:
```
$ grep "lak+" file5
```
Здесь буква 'k' должна появляться хотя бы один раз, поэтому наши результаты могут быть 'lake' или 'lakkkkk', но не 'la'.
### ?
В следующем шаблоне результатом будет строка bb или bab:
```
$ grep "ba?b" file6
```
С заданным квантификатором '?' мы можем иметь одно вхождение символа или ни одного.
**Важное примечание! **Предположим, у нас есть регулярное выражение:
```
$ grep "S.*l" file7
```
И мы получаем результаты 'Small', 'Silly', и ещё 'Susan is a little to play ball'. Но почему мы получили 'Susan is a little to play ball', ведь мы искали только слова, а не полное предложение?
Все дело в том, что это предложение удовлетворяет нашим критериям поиска: оно начинается с буквы 'S', имеет любое количество символов в середине и заканчивается буквой 'l'. Итак, что мы можем сделать, чтобы исправить наше регулярное выражение, чтобы в качестве выходных данных мы получали только слова вместо целых предложений.
Для этого в регулярное выражение нужно добавить квантификатор '?':
```
$ grep "S.*?l" file7
```
### ** или символ экранирования**
Символ '' используется, когда необходимо включить символ, который является метасимволом или имеет специальное значение для регулярного выражения. Например, требуется найти все слова, заканчивающиеся точкой. Для этого можем использовать выражение:
```
$ grep "S.*?." file8
```
Оно будет искать и сопоставлять все слова, которые заканчиваются точкой.
Итак, вы получили общее представление о том, как работают регулярные выражения. Практикуйтесь как можно больше, создавайте регулярные выражения и старайтесь включать их в свою работу как можно чаще. Проверять правильность использования своих регулярных выражений на конкретном примере можно на специальном [сайте](https://regexr.com/).
https://serverspace.uz/support/help/struktura-fajlovoj-sistemy-linux.mdТипы файловых систем в Linux. Структура директорий Linux. Назначение стандартных директорий. Принципы наименования файлов и директорий
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
## Структура каталогов
В ОС Windows жесткие диски называются латинскими буквами (С:, D:, ...), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.
## Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
## Понятие файла
Понятие "файл" в Linux имеет несколько другое значение, нежели в Windows. "Файлом" можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является "файлом", содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
## Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в "C:Program FilesProgramName", то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
## Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует "Стандарт иерархии файловой системы" FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Стандарт иерархии файловой системы
- / — root каталог. Содержит в себе всю иерархию системы;
- /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
- /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
- /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
- /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
- /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
- /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
- /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
- /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
- /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
- /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
- /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
- /root — директория, которая содержит файлы и личные настройки суперпользователя;
- /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
- /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
- /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
- /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
- /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
- /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
- /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
https://serverspace.uz/support/help/ustanovka-oblachnogo-hranilishha-seafile-na-windows.mdРассмотрим на примере программы для размещения файлов Seafile, как развернуть облачное хранилище на сервере Windows и настроить синхронизацию
[Облачные хранилища](https://serverspace.uz/services/storage.md) пользуются все большей популярностью не только в корпоративном секторе, но и среди обычных пользователей. Расскажем на примере программы для размещения файлов Seafile, как провести синхронизацию данных с хранилищем. В качестве примера используется ОС Windows.
## Подготовка
Программа Seafile разработана на языке Python, поэтому для начала переходим на [сайт Python](https://www.python.org/downloads/) и скачиваем последнюю версию для Windows:
Скриншот №1. Загрузка дистрибутива.
Важно! Для установки Python необходимы права администратора.
Нажимаем "ОК" и ждем завершения процесса. Следующий шаг — установка параметров системного окружения. Для этого открываем "Панель управления" и выбираем раздел, отмеченный красной стрелкой на скриншоте:
Скриншот №2. Дополнительные опции.
Далее переходим к пункту "Переменные среды":
Скриншот №3. Выбор среды.
В открывшемся окне отмечаем системную среду Path и нажимаем кнопку "Изменить":
Скриншот №4. Отредактировать системную переменную.
Добавляем путь, по которому установился Python. По умолчанию это либо системный диск С, либо домашняя папка пользователя. Нажимаем "ОК", чтобы сохранить изменения.
## Seafile
Скачиваем программу с [официального сайта Seafile](https://www.seafile.com/en/download/):
Скриншот №5. Выбор версии.
На сайте доступна только версия для Linux. Скачиваем актуальный релиз. Далее создаем на локальном диске папку Seafile и разархивируем файл в эту директорию. Теперь переходим в каталог Seafile и активируем файл run.bat. Он откроет рабочую область, в которой укажем путь для установки серверной части Seafile.
Установка займет меньше минуты. В системной трее появится значок активного хранилища. Вызовем контекстное меню правой кнопкой мыши и выберем пункт, отмеченный красным на скриншоте:
Скриншот №7. Контекстное меню.
Откроется рабочее поле, в котором укажем электронный ящик и пароль. Эти учетные данные будут использоваться для подключения к серверу Seafile.
Теперь изменим параметры рабочей среды. Перейдем в каталог с установленным сервером, откроем текстовым редактором файл ccnet.conf., найдем строку Service_url и внесем следующие изменения:
```
SERVICE_URL = http://192.168.1.10:8000
```
В качестве IP-адреса используется адрес сервера, на котором установлен Seafile. Перезапустим серверную часть программы через контекстное меню, чтобы изменения вступили в силу:
Скриншот №8. Рестарт сервера.
## Подключение
Открываем браузер и в адресной строке прописываем адрес, которой указывали в файле ccnet.conf. Если данные указаны верно, на мониторе появится приветственное окно Seafile. Вводим учетные данные и настраиваем работу с хранилищем.
https://serverspace.uz/support/help/upravlenie-lokalnymi-gruppovymi-politikami.mdРабота с групповыми политиками в Windows Server. Примеры настройки групповых политик: ограничение возможности установки или запуска программ
Понятие _групповая политика_ используется в операционных системах семейства Windows.
Они содержат шаблоны параметров, которые применяются для одной или нескольких групп пользователей. Редактор политик находится на серверной платформе и построен на основе консоли MMC — это гибкий инструмент для создания защищенной корпоративной информационной системы.
Рассмотрим настройку групповых политик в зависимости от требований администратора.
## Как внести изменения
Откроем рабочее окно "Выполнить", введем команду gpedit.msc. На мониторе появится рабочая область:
Скриншот №1. Редактор групповых политик
Левая часть окна содержит перечень доступных шаблонов, а правая отображает подробную информацию по каждому пункту. К примеру, запретим пользователям устанавливать программы без прав локального администратора. Перейдем в левой части окна по следующему пути:
```
Computer Configuration —> Administrative Templates —> Windows Components —> Windows Installer.
```
В правой части откроется список доступных дополнительных опций:
Скриншот №2. Выбор раздела
Откроем дополнительные функции пункта, указанного на изображении. По умолчанию он принимает значение Disabled. Активируем его:
Скриншот №3. Включение политики
Нажимаем "ОК", сохраняем изменения.
Второй пример — запретим пользователям запускать сторонние приложения Windows. В редакторе переходим по пути:
```
User Configuration —> Administrative Templates —> System.
```
С правой стороны выбираем пункт, отмеченный красным на скриншоте ниже:
Скриншот №4. Выбор пункта
Откроется окно дополнительных настроек:
Скриншот №5. Выбор опций
Переключаем политику в статус Enabled и далее указываем приложения, к которым она применяется.
https://serverspace.uz/support/help/ustanovka-yazyka-r-na-windows-server.mdВ статье расскажем об установке языка программирования R в рабочую среду под управлением Windows. Пошаговая инструкция со скриншотами
Продукт **R** разработан для математических расчетов и научных вычислений, и в основном его используют специализированные организации. Чтобы облегчить работу пользователей с этим языком, была разработана специальная программа RStudio.
В статье расскажем об установке языка программирования R и программы RStudio в рабочую среду под управлением Windows.
## Подготовка
Переходим на официальный сайт по ссылке ниже, чтобы [скачать](https://cran.r-project.org/bin/windows/base/) дистрибутив. Решение является кроссплатформенным, но в статье расскажем про установку в среде Windows:
Скриншот №1. Скачать дистрибутив.
Загружаем дистрибутив по ссылке, отмеченной красной стрелкой на изображении. Далее выбираем конфигурацию base и запускаем загрузку.
## Установка
После скачивания открываем папку с дистрибутивом и устанавливаем продукт. На третьем шаге появится окно с выбором компонентов. Рекомендуется выбрать все пункты:
Скриншот №2. Выбор опций.
Следующее окно — изменение стандартных настроек программы. Выбираем "Нет", нажимаем "Далее":
Скриншот №3. Выбор настроек.
Отвечаем на тривиальные вопросы мастера-установщика и ожидаем окончания.
## Установка RStudio
Теперь установим программу RStudio, [скачав](https://rstudio.com/products/rstudio/download) ее с официального сайта.
На выбор представлено четыре версии. Загрузим бесплатную для рабочих станций. Она обладает минимальным набором функций, но подойдет для тестирования и обычной работы:
Скриншот №4. Выбор ПО.
Далее появится перечень дистрибутивов под разные операционные системы. Загружаем Windows-совместимый продукт:
Скриншот №5. Выбор дистрибутива под Windows.
Запускаем скачанный файл и следуем подсказкам мастера. Никаких дополнительных опций нет, оставляем все по умолчанию.
## Первый запуск
Открываем программу RStudio. Проведем небольшой тест — установим компонент Rcmdr. Нажимаем Packages и вводим в поисковой строке наименование пакета:
Скриншот №6. Установка компонента.
Нажимаем Install. Процесс займет 2-3 минуты. Альтернативный вариант — использовать встроенный терминал. Для этого в левой стороне рабочей области вводим команду:
```
install.packages('txtplot')
```
Каким способом устанавливать компоненты — зависит от пользователя. Оба способа рабочие.
https://serverspace.uz/support/help/ustanovka-postgresql-na-windows-server.mdПошаговый процесс установки СУБД PostgreSQL на Windows Server и дополнительных компонентов при помощи Stack Builder
PostgreSQL представляет собой систему управления базами данных, которая поставляется бесплатно. Исходный код системы доступен для любого пользователя на безвозмездной основе.
В Serverspace вы можете создать сервер с уже установленным приложением PostgreSQL.
В статье расскажем о самостоятельной установке PostgreSQL и об установке дополнительных компонентов, используя Stack Builder. В качестве примера используется Windows Server 2018.
## Подготовка
[Скачаем](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads) дистрибутив с официального сайта. На ресурсе представлены релизы в зависимости от разрядности и семейства ОС. Выбираем Windows x64, версию 12.0:
Скриншот №1. Скачать дистрибутив.
Запускаем установщик и следуем его подсказкам. На одном из этапов потребуется придумать пароль:
Скриншот №2. Задать пароль.
Вводим его, следуя следующим правилам: не менее 7 символов, заглавные и прописные буквы латинского алфавита, специальные знаки и цифры.
Следующий шаг — указываем порт и локализацию. Номер порта оставляем без изменений, а локализацию выбираем "Русская":
Скриншот №3. Выбираем локализацию.
Процесс установки займет не более 5 минут.
## Конфигурирование PostgreSQL
По окончании на экране появится следующая надпись:
Скриншот №4. Выбор сервера.
Система попросит указать адрес сервера, с которого утилита Stack Builder будет скачивать дополнительные библиотеки и инструменты для СУБД. Выбираем как показано на скриншоте и нажимаем "Следующий". Установщик покажет список доступных вариантов для загрузки. Необходимо установить компонент Apache. Он интегрирован в пакет PEM-HTTPD:
Скриншот №5. Установка компонента Apache.
Далее выбираем директорию для установки — рекомендуется оставить путь по умолчанию, и ожидаем окончания установки.
Следующий этап — подключение к СУБД. Открываем командную строку Windows, переходим в раздел с установленной PostgreSQL:
```
cd "C:Program FilesPostgreSQL9.6bin"
```
Подключаемся к консольному режиму:
```
.psql.exe -U postgres
```
Теперь пользователь может управлять СУБД через терминал.
https://serverspace.uz/support/help/ustanovka-ruby-on-rails-na-windows-server.mdИнсталляция и конфигурация фреймворка Ruby on Rails на сервере под управлением ОС Windows Server за 10 минут.
Фреймворк **Ruby on Rails (RoR)** обладает отличным потенциалом и возможностями, и обычно его устанавливают для серверной платформы с операционными системами семейства Linux/Unix.
В этой же статье расскажем о том, как установить фреймворк Ruby on Rails на Windows сервер.
## Подготовка сервера
Изначально фреймворк был разработан для платформ Linux, поэтому чтобы установить его на Windows, воспользуемся сторонней программой [RailsInstaller](http://railsinstaller.org/ru-RU). На странице Rail представлено два релиза:
Скриншот №1. Скачиваем дистрибутив.
Выбираем нужную версию и загружаем.
Далее запускаем мастер установки и следуем подсказкам. Процесс установки займет 3-5 минут. По окончании процесса на мониторе появится следующая надпись:
Скриншот №2. Первичная настройка.
Отмечаем пункт галочкой, нажимаем Finish. Откроется командная строка, в которой вводим имя пользователя и адрес электронной почты. На этом установка завершена — переходим к настройке.
## Конфигурирование
Открываем меню "Пуск" и выбираем раздел, выделенный красным на скриншоте:
Скриншот №3. Запуск терминала.
Откроется терминал для настройки фреймворка. Установим компонент, используя интегрированный менеджер Gem для установки программных пакетов:
```
gem install rails/[code]
Процесс займет 3 минуты. После этого переходим в директорию todo:
[code]cd todo
```
Теперь установим зависимости, которые прописаны в gemfile:
```
bundle install
```
Перенесем БД по новому пути:
```
bundle exec rake db:migrate RAILS_ENV=development
```
Конфигурирование закончено. Запустим фреймворк для проверки.
Открываем браузер и вводим в адресной строке:
```
http://localhost:3000/
```
Если вышеуказанные действия выполнены корректно, на мониторе отобразится приветственная страница.
https://serverspace.uz/support/help/sozdanie-zashifrovannogo-luks-razdela.mdШифрование жестких дисков с утилитой LUKS на Linux (Ubuntu). Подготовка, генерация ключа, шифрование LUKS-раздела, монтирование тома
Операционные системы семейства Linux предоставляют функцию шифрования жестких дисков через специальные утилиты. Рассмотрим одну из них под названием LUKS. В качестве примера используется Ubuntu Server 18.04.
## **Предварительная подготовка**
[step num="1"]
Утилиту LUKS используют в качестве стандарта для защиты дисков в Linux-системах. Ее преимущества:
[/step]
- Она бесплатна.
- Совместима с 99% операционных систем Linux/Unix.
- Позволяет сбросить пароль или кодовую фразу в случае утери либо компрометации.
[step num="2"]
Прежде чем шифровать диск, необходимо определиться с выбором. Запустим в терминале следующую утилиту:
```
sudo fdisk –l
```
[/step]
[step num="3"]
Она отобразит информацию о свободных томах, а также о разделах, которые доступны для защиты:
[/step]
Скриншот №1. Перечень свободных логических дисков.
[step num="4"]
Выберем один из списка и перейдем к редактированию. В качестве примера будем использовать раздел /dev/sdb.
[/step]
[step num="5"]
Запустим программу parted, указав выбранный том:
```
sudo parted /dev/sdb
```
[/step]
[step num="6"]
Администратору будет доступен функционал утилиты через терминал.
Важно! Чтобы получить подробную информацию об утилите parted, введите ключ help.
[/step]
[step num="7"]
Получив доступ к parted, разметим выбранный раздел соответствующим образом. Отредактируем под GPT:
```
mklabel gpt
```
[/step]
[step num="8"]
Программа отобразит предупреждение о том, что вся информация будет удалена во время выполнения операции. Вводим "Yes":
[/step]
Скриншот №2. Удаление данных с тома.
[step num="9"]
После окончания операции создадим новый том как основной:
```
mkpart primary 1 -1
```
[/step]
[step num="10"]
Его метка будет отображаться как "1". По окончании выходим из программы через команду quit.
[/step]
## **Генерация ключа**
[step num="11"]
Создадим ключ шифрования, используя команду DD:
```
sudo dd if=/dev/urandom of=/root/secret.key bs=1024 count=2
```
, где /root/secret.key — имя генерируемого ключа. Пользователь указывает его самостоятельно.
[/step]
[step num="12"]
Теперь отредактируем права доступа к файлу:
```bash
sudo chmod 0400 /root/secret.key
```
Присвоим ему функцию на чтение "без редактирования".
[/step]
## **Шифрование раздела**
[step num="13"]
Следующий этап — шифрование данных. По умолчанию LUKS интегрирована в большинство дистрибутивов. Если утилита недоступна, установим её, используя стандартные средства установки. Для примера с Ubuntu Server:
```bash
sudo apt-get install cryptsetup
```
[/step]
[step num="14"]
После установки создадим шифрованный том с использованием сгенерированного ключа:
```
cryptsetup luksFormat /dev/sdb1 /root/secret.key
```
[/step]
[step num="15"]
Программа выдаст предупреждающее сообщение о том, что информация будет удалена после форматирования. Вводим "Yes":
[/step]
Скриншот №3. Стирание диска.
[step num="16"]
Теперь свяжем сгенерированный ключ с томом /dev/sdb1. Это позволит в дальнейшем пропускать процедуру авторизации при каждом обращении к разделу, а также скроет подсказки к паролю от других пользователей:
```
cryptsetup luksAddKey /dev/sdb1 /root/secret.key --key-file=/root/secret.key
```
[/step]
[step num="17"]
После выполнения операции перейдем к конфигурированию. Сначала создадим промежуточный вариант подключения к шифрованному объекту. Для этого воспользуемся функцией LuksOpen:
```
cryptsetup luksOpen /dev/sdb1 secret --key-file=/root/secret.key
```
[/step]
[step num="18"]
По окончании устройство будет доступно по пути /dev/mapper/secret.
[/step]
[step num="19"]
Следующим шагом указываем размер тома, который требуется зашифровать:
```
cryptsetup resize secret
```
[/step]
[step num="20"]
В нашем примере имя тома — secret. Если для опции resize не указываются дополнительные флаги, она занимает весь раздел. Смонтируем точку доступа для файловой структуры ext4 с именем тома secret:
```
mkfs.ext4 /dev/mapper/secret
```
[/step]
[step num="21"]
Для проверки правильности выполненных действий вводим:
```
cryptsetup -v status secret
```
[/step]
## **Монтирование тома**
[step num="22"]
Раздел зашифрован — смонтируем его для операционной системы. Указываем точку входа для тома secret, а потом задаем права на доступ:
```bash
sudo mkdir -p /secret
sudo chmod 755 /secret
```
[/step]
[step num="23"]
Через команду mount подключим раздел к ОС:
```
mount /dev/mapper/secret /secret
```
[/step]
[step num="24"]
После этого проверим выполнение операции:
```
df –h
```
[/step]
[step num="25"]
Чтобы постоянно не подключить LUKS-раздел к операционной системе, активируем автомонтирование тома.
[/step]
Важно! Использование автоматического режима монтирования также автоматически расшифровывает том в момент его подключения к ОС.
[step num="26"]
Определим идентификатор защищенного диска:
```
ls -l /dev/disk/by-uuid
```
[/step]
[step num="27"]
Он обозначается термином UUID. Поскольку наименование сложное для запоминания, выгрузим его имя в отдельный файл:
```
export UUID="dc8dbc18-adb0-4258-bac8-73860ec12d50"
```
[/step]
Важно! После знака "=" идет идентификатор, который используется в примере.
[step num="28"]
Создадим ссылку на сгенерированный ранее ключ secret.key:
```
sudo echo "secret UUID=${UUID} /root/secret.key luks" >> /etc/crypttab
```
[/step]
[step num="29"]
Последний шаг — добавляем соответствующие строки в файл монтирования разделов fstab:
```
sudo echo "/dev/mapper/secret /secret auto" >> /etc/fstab
```
[/step]
[step num="30"]
Указав в терминале команду sudo mount –a, зашифрованный раздел автоматически будет подключаться при старте операционной системы.
https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-v-ubuntu-16-04.mdИнструкция по расширению дискового пространства на системе Ubuntu 16.04. Просмотр свободного места на диске и увеличение его объема
После того как мы увеличили размер диска из панели управления, нам также нужно расширить этот диск на уровне ОС.
Для этого, в терминале с административными правами root выполнив команду:
```
root@Serverspace:~# echo 1 /sys/block/sda/device/rescan
```
Проверим информацию о дисках
С помощью утилиты для работы с разделами и дисками parted, получим информацию о разделах:
```
root@Serverspace:~# parted
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: %size%GB
```
Запомним размер %size%GB.
Далее, изменим размер раздела воспользовавшись командой resizepart утилиты parted, указав номер раздела %partnum%
```
(parted) resizepart %partnum%
```
В качестве значения "End" используем значение %size% полученное ранее из (Parted) p
```
End? [XX.X GB]? %Size%GB
```
Завершим работу утилиты parted командой quit:
```
(parted) quit
```
После чего получим информацию о необходимости внести изменения в fstab:
```
Information: You may need to update /etc/fstab.
```
Теперь воспользуемся утилитой для работы с разделами - fdisk:
Получив список разделов параметром -l, выберем нужный нам раздел(в нашем примере /dev/sda)
```
root@Serverspace:~# fdisk -l
root@Serverspace:~# fdisk /dev/sda
```
Создадим раздел - тип раздела (L) - логический
```sql
Command (m for help): n
Select (default p): l
Adding logical partition %lpart%
```
Запоминаем номер раздела, созданный в ходе выполнения fdisk (в примере обозначено как %lpart%).
Нажимаем два раза Enter, соглашаясь со значениями по умолчанию :
```
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
```
Изменяем тип раздела, при этом указываем номер раздела, который мы запомнили как %lpart%.
```
Command (m for help): t
Partition number (1-X): %lpart%
Hex code (type L to list codes): 8e Command (m for help): w
```
Сообщим ядру системы о наших изменениях:
```
root@Serverspace:~# partx -v -a /dev/sda
```
В ответ увидим строку. /dev/sda: partition %lpart% added
Инициализируем раздел, где %lpart% - номер раздела, который мы запомнили ранее.
```
root@Serverspace:~# pvcreate /dev/sda%lpart%
Physical volume "/dev/sda%lpart" successfully created
```
Добавим физический раздел к уже существующей группе томов:
```
root@Serverspace:~# vgextend ubuntu-vg /dev/sda%lpart%
Volume group "ubuntu-vg" successfully extended
```
Теперь расширим логический том c помощью lvextend.
```
root@Serverspace:~# lvextend -l +100%FREE //dev/ubuntu-vg/root
Extending logical volume root to YY.ZZ GiB
Logical volume root successfully resized
```
И также расширим файловую систему утилитой resize2fs.
```
root@Serverspace:~# resize2fs /dev/ubuntu-vg/root
```
https://serverspace.uz/support/help/configuring-the-remote-desktop-gateway-on-windows.mdНастройка удаленного подключения к рабочему столу с помощью сервиса Remote Desktop Gateway (RDG) на платформе под управлением Windows Server
Расскажем подробно, как настроить сервис Remote Desktop Gateway (RDG) на домене на платформах под управлением Windows Server.
## Что такое RDG
Компания Microsoft предлагает использовать удаленный доступ к рабочим столам по протоколу [RDP](https://serverspace.uz/services/remote-desktop.md) (Remote Desktop Protocol). Для создания защищенного соединения используется сервис RDG (Remote Desktop Gateway). Его особенность в том, что он использует подключение по протоколу HTTPS. При этом создается надежный канал связи, который гарантирует пользователю должный уровень защиты. Соответственно, нет нужды использовать сторонние сервисы по созданию VPN-туннеля.
Используя функции разграничения доступа к сетевым ресурсам, администраторы создают соединения в зависимости от роли пользователя в компании. RDG разрешает подключение не только к одной подсети, но и к другим, которые расположены за NAT или межсетевым экраном. Шлюз имеет простой и удобный интерфейс с гибкими настройками. Начинающий администратор с легкостью разберется в настройках, а также создаст необходимые шаблоны подключений в зависимости от внутренней иерархии компании.
## Настройка роли
[step num="1"]
Запускаем "Диспетчер серверов", переходим на правой стороне во вкладку "Добавить роль":
[/step]
Скриншот №1. Выбор опции
[step num="2"]
Для примера используем первый пункт:
[/step]
Скриншот №2. Выбор инсталляции
[step num="3"]
Далее утилита попросит указать сервер, для которого производится выдача роли. Выбираем из списка, нажимаем "Next". На следующем этапе появится перечень доступных ролей для сервера. Для примера проставляем "Службу удаленных рабочих столов":
[/step]
Скриншот №3. Активируем роль
[step num="4"]
После нажатия кнопки "Next" на экране отобразится информация о выбранной роли. Соглашаемся и переходим к следующему шагу. Теперь в разделе Role Server появилась добавленная функция. Заходим в нее и отмечаем опции, которые необходимы администратору. Для примера, активируем RDG:
[/step]
Скриншот №4. Выбор дополнительных функций
[step num="5"]
Мастер настройки проверяет выбранную роль и совместимость с серверной ОС. Если необходима установка дополнительных компонентов, то автоматически откроется рабочая область с отмеченными компонентами. Чтобы RDG работал, в операционной системы должны быть установлены сервисы web-администрирования с полным набором программных инструментов:
[/step]
Скриншот №5. Выбор дополнительных компонентов
[step num="6"]
Рекомендуется оставить по умолчанию выбранные сервисы. Нажимаем "Next", подтверждаем установку.
[/step]
## Доступ к ресурсам
[step num="7"]
После установки выбранной роли переходим в главное окно "Диспетчера серверов". Выбираем раздел "Инструменты" и переходим к настройке RDG. Откроется новое рабочее окно (RD Gateway Manager). В нем переходим во вкладку с именем сервера, далее выбираем "Политики" и сконфигурируем авторизированные подключения. Нажимаем кнопку "Wizard", чтобы открыть мастер настройки:
[/step]
Скриншот №6. Создание политики
[step num="8"]
Установщик предложит на выбор 3 пункта. Оставляем активным первую опцию:
[/step]
Скриншот №7. Выбор конфигурации
[step num="9"]
Задаем имя новому шаблону, нажимаем "Next". Следующий этап — выбор метода аутентификации и списка пользователей, которые получат доступ к политике. Авторизация разрешена при помощи пароля либо смарт-карты, либо оба варианта. Оставляем только по паролю. Далее нажимаем кнопку "Добавить группу" и добавляем данные в поле:
[/step]
Скриншот №8. Выбор авторизации и пользователей
[step num="10"]
Далее разграничиваем доступ к сетевым ресурсам, к которым пользователи будут подключаться через Remote Desktop Gateway:
[/step]
Скриншот №9. Выбор ресурсов
[step num="11"]
Оставим для примера первый пункт. Нажимаем "Next". Теперь необходимо установить значения таймаутов для сетевых ресурсов. Проставляем в зависимости от требований. На экране появится окно с настроенным шаблоном. Если информация верная, переходим к следующему шагу.
[/step]
[step num="12"]
Мастер настройки попросит указать политику авторизации для сетевых ресурсов. Для начала придумываем имя конфигурации. Потом добавляем группы пользователей, которые будут подключаться:
[/step]
Скриншот №10. Выбор группы
[step num="13"]
Теперь выбираем группу ресурсов:
[/step]
Скриншот №11. Выбор группы ресурсов
[step num="14"]
Мастер настройки попросит указать номер порта для подключения. Если специальных требований нет, оставляем по умолчанию — 3389. После нажатия "Next" на экране появится информация о созданной политики авторизации. Если все верно, завершаем конфигурирование.
[/step]
## Установка сертификата SSL
[step num="15"]
Чтобы доступ через RDG был активен, также необходимо создать сертификат. В рабочем окне RDG Manager переходим к разделу "Имя сервера". Через контекстное меню открываем пункт "Просмотреть или изменить свойства сертификата". В открывшемся окне переключаемся на вкладку SSL. Доступно 3 варианта создания. Выбираем пункт, отмеченный красным на скриншоте:
[/step]
Скриншот №12. Выбор метода
[step num="16"]
Теперь прописываем имя сертификата и путь, по которому он будет храниться:
[/step]
Скриншот №13. Импорт
[step num="17"]
Нажимаем "ОК" для генерации. В итоге рабочая область менеджера выглядит следующим образом:
[/step]
Скриншот №14. Общая информация
[step num="18"]
Для повышения уровня безопасности рекомендуется сменить порт по умолчанию для подключения через Remote Desktop Protocol. Открываем в RDG Manager раздел "Действия", пункт "Свойства". Переходим во вкладку "Свойства транспортировки". В поле, отмеченным красным, меняем значение:
[/step]
Скриншот №15. Смена порта
[step num="19"]
Подтверждаем изменения, закрываем окно.
[/step]
## Как подключиться
[step num="20"]
Теперь необходимо настроить подключение через RDP. Нажимаем сочетание клавиш Win+R, вводим команду mstsc.exe. В открывшемся окне нажимаем "Параметры":
[/step]
Скриншот №16. Настройка RDP
[step num="21"]
В поле, отмеченном красным, прописываем адрес сервера, а через двоеточие в конце отмечаем номер порта. Нажимаем "ОК".
[/step]
[step num="22"]
Теперь переходим во вкладку "Общие". Прописываем имя домена и пользователя:
[/step]
Скриншот №17. Домен и пользователь
[step num="23"]
Мастер настройки попросит указать пароль для учетного имени. Вводим его. Конфигурирование завершено.
https://serverspace.uz/support/help/ustanovka-joomla-na-linux.mdПодробно про установку CMS Joomla на виртуальный VPS Linux-сервер с использованием LAMP или LEMP стека. Установка Joomla со скриншотами
**Joomla — **это система управления содержимым сайта или, иначе говоря, CMS (англ. Content Management System), в которой используется скриптовый язык PHP и база данных MySQL или PostgreSQL. Joomla проста в установке, предлагает множество функций и настроек, которые делают ее очень гибкой и удобной в использовании для начинающего пользователя.
При заказе [VPS/VDS-сервера](https://serverspace.uz/services/vps-server.md) у начинающих пользователей возникают вопросы, как создать и разместить на нем свой сайт. Рассмотрим установку CMS Joomla на Linux-сервер.
## Системные требования
[step num="1"]
Необходимым условием установки Joomla на ваш сервер является наличие так называемого [LAMP](https://serverspace.uz/support/help/ustanovka-lamp/) (связка Linux Apache MariaDB/MySQL PHP), либо [LEMP-стека](https://serverspace.uz/support/help/ustanovka-lemp-steka-na-ubuntu-16-04/) (Linux Nginx MariaDB/MySQL PHP).
[/step]
[step num="2"]
Также необходимо изменить некоторые настройки PHP, которые находятся в файле php.ini. Рекомендованные значения параметров php.ini:
[/step]
- **memory_limit**: минимум: **64M**. Рекомендовано: **128M** или больше;
- **upload_max_filesize**: минимум: **20M**;
- **post_max_size**: минимум: **20M**;
- **max_execution_time**: минимум **120**. Рекомендовано: **300**.
## **Настройки и установка**
[step num="3"]
Все действия, описанные в данной статье, выполняются от имени суперпользователя **root**. Скачиваем установочный пакет нашей CMS:
```
root@webserver:~# wget https://downloads.joomla.org/ru/cms/joomla3/3-9-13/Joomla_3-9-13-Stable-Full_Package.zip
```
[/step]
[step num="4"]
На момент написания статьи последняя стабильная версия — 3.9.13. Скачать последний стабильный установочный пакет вы можете на [официальном сайте Joomla](https://downloads.joomla.org/ru/latest). С официального сайта есть возможность скачать установочный пакет, упакованный как .tar.bz2, .tar.gz и zip-архив. Необходимо создать новый каталог для сайта на Joomla в корневой директории веб-сервера и распаковать туда архив:
[/step]
[step num="5"]
Создадим каталог:
```
root@webserver:~# mkdir /var/www/html/mysite.com
```
[/step]
[step num="6"]
Распаковываем архив:
```
root@webserver:~# unzip Joomla_3-9-13-Stable-Full_Package.zip -d /var/www/html/mysite.com
```
[/step]
[step num="7"]
Для других форматов:
```
root@webserver:~# tar -xvf file.tar.bz2 -C /var/www/html/mysite.com
root@webserver:~# tar -xvf file.tar.gz -C /var/www/html/mysite.com
```
[/step]
[step num="8"]
После чего изменим владельца каталога и назначим необходимые права на файлы и папки.
[/step]
[step num="9"]
Если используется **LAMP**:
```
root@webserver:~# chown -R www-data:www-data /var/www/html/mysite.com
```
[/step]
[step num="10"]
Если используется **LEMP**:
```
root@webserver:~# chown -R nginx:nginx /var/www/html/mysite.com
```
[/step]
[step num="11"]
Разрешения на каталоги:
```
root@webserver:~# find /var/www/html/mysite.com -type d -exec chmod 755 {} ;
```
[/step]
[step num="12"]
Разрешения на файлы:
```
root@webserver:~# find /var/www/html/mysite.com -type f -exec chmod 644 {} ;
```
[/step]
[step num="13"]
Проведем настройки виртуального хоста в конфигурационном файле веб-сервера.
[/step]
Для **Apache2**:
Ubuntu/Debian:
```
root@webserver:~# nano /etc/apache2/sites-enabled/000-mysite.com.conf
```
CentOS:
```
root@webserver:~# nano /etc/httpd/conf.d/joomla.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
DirectoryIndex index.php index.html
DirectorySlash off
RewriteEngine on
RewriteBase /
AllowOverride all
```
Перезапустим Apache2:
Ubuntu/Debian:
```
root@webserver:~# service apache2 restart
```
CentOS:
```
root@webserver:~# service httpd restart
```
Для **Nginx**:
```
root@webserver:~# nano /etc/nginx/sites-enabled/test.com
```
```css
server {
listen 80;
listen [::]:80;
root /var/www/html/mysite.com;
index index.php index.html index.htm;
server_name mysite.com www.mysite.com;
location / {
try_files $uri $uri/ =404;
}
}
```
Перезапустим Nginx:
```
root@webserver:~# service nginx restart
```
Переименуем файл htaccess.txt:
```
root@webserver:~# mv /var/www/html/mysite.com/htaccess.txt /var/www/html/mysite.com/.htaccess
```
[step num="14"]
Теперь вы можете перейти на ваш сайт http://mysite.com, где будет запущен графический установщик CMS Joomla. Согласно инструкциям завершаем установку Joomla.
https://serverspace.uz/support/help/ustanovka-windows-admin-center.mdУстановка Windows Admin Center (инструмент управления серверами через веб-консоль). Загрузка и подключения к Windows Admin Center
## Общая информация
Одним из новых инструментов администрирования [серверов на базе операционной системы Windows](https://serverspace.uz/services/vps-server/windows.md) является Windows Admin Center. Он реализует современный подход к управлению, когда с любого устройства через веб-браузер можно подключиться к панели управления инфраструктурой и получить информацию о состоянии сервера или произвести изменение его конфигурации.
При подключении пользователя к центру администрирования используются протоколы HTTP/HTTPS. Сам же центр администрирования использует WinRM/PowerShell для подключения к контролируемым серверам, получения от них информации и внесения изменений в конфигурацию. Соответственно, внедряя Windows Admin Center, нужно принимать во внимание каким образом будут производиться подключения компонентов друг к другу, и использовать защищенные версии протоколов (HTTPS и WinRM через HTTPS) когда соединения происходят через публичные сети (интернет).
Windows Admin Center устанавливается отдельно. Он не входит в состав операционной системы, поэтому дистрибутив необходимо [скачать](https://docs.microsoft.com/ru-ru/windows-server/manage/windows-admin-center/understand/windows-admin-center) с сайта Майкрософт. Там же можно найти дополнительную информацию об этом продукте.
## Загрузка и установка Windows Admin Center
Пройдем по всем шагам, необходимым для успешной установки консоли управления:
[step num="1"]
Открыв [сайт Майкрософт](https://docs.microsoft.com/ru-ru/windows-server/manage/windows-admin-center/understand/windows-admin-center) в браузере, находим и нажимаем на ссылку для скачивания Windows Admin Center:
[/step]
Скриншот №1. Windows Admin Center
[step num="2"]
На открывшейся странице жмем **Continue**:
[/step]
Скриншот №2. Continue
[step num="3"]
Заполняем форму, чтобы получить свою копию дистрибутива и нажимаем **Continue**, после чего начнется загрузка:
[/step]
Скриншот №3. Заполнение формы
[step num="4"]
Дождавшись окончания загрузки запускаем установочный файл, принимаем лицензионное соглашение и жмем **Next**:
[/step]
Скриншот №4. Запуск установочного файла
[step num="5"]
Выбираем использовать или нет службу обновлений Майкрософт (рекомендуется использовать), нажимаем **Next**:
[/step]
Скриншот №5. Обновления
[step num="6"]
На следующей странице содержится общая информация о способах использования устанавливаемого компонента, а также ссылка на статью с возможными сценариями установки. Нажимаем **Next**:
[/step]
Скриншот №6. Общая информация об установке
[step num="7"]
На странице конфигурирования шлюза содержатся два параметра — **Allow Windows Admin Center to modify this machine`s trusted hosts settings** — ставим галку, если серверы, которые будут подключаться к центру администрирования, не входят в домен Active Directory; **Use WinRM over HTTPS only** — ставим галку в том случае, если подключения от центра администрирования к другим серверам будут проходить через публичные сети (интернет). Если мы планируем управлять только локальным сервером, на котором установлен Windows Admin Center, можно оставить настройки по умолчанию и нажать **Next**:
[/step]
Скриншот №7. Страница конфигурирования шлюза
[step num="8"]
Выбираем порт, по которому будут приниматься подключения к веб-консоли (для указанного порта будет создано разрешающее правило в брандмауэре операционной системы), а также указываем сгенерировать ли самоподписанный сертификат или же использовать другой сертификат, установленный на сервере. Чтобы не получать сообщений о недоверенных соединениях, можно использовать приобретенный и установленный заранее цифровой сертификат. Не забываем ставить галку **Redirect HTTP port 80 traffic to HTTPS**, чтобы использовались только зашифрованные соединения:
[/step]
Скриншот №8. Выбор порта
[step num="9"]
После нажатия кнопки **Install** ожидаем завершения процесса установки:
[/step]
Скриншот №9. Завершение процесса установки
[step num="10"]
Процесс завершен, нажимаем **Finish**:
[/step]
Скриншот №10. Finish
## Подключение к Windows Admin Center
Для подключения к Windows Admin Center требуется использовать поддерживаемый браузер. Internet Explorer для этих целей не подходит. Можно использовать Microsoft Edge, но по умолчанию он может быть не установлен в серверной операционной системе. Самый оптимальный вариант — использовать Google Chrome. При подключении с локального сервера вводим в адресной строке браузера адрес https://localhost (если при установке был указан нестандартный порт для подключения, добавляем номер порта через двоеточие, например https://localhost:10443). Если подключаемся с удаленного компьютера, нужно указать либо внешний IP-адрес сервера, либо доменное имя, сопоставленное с внешним IP-адресом. При использовании нашего сервиса внешний IP-адрес сервера можно увидеть в панели управления сервером.
[step num="11"]
Если при конфигурировании мы выбрали использование недоверенного сертификата и получаем соответствующее предупреждение, чтобы продолжить подключение нажимаем кнопку **Дополнительные**:
[/step]
Скриншот №11. Подключения к Windows Admin Center
[step num="12"]
В новой форме кликаем по ссылке **Перейти на сайт **:
[/step]
Скриншот №12. Переход на сайт
[step num="13"]
Вводим учетные данные для подключения и попадаем на главную страницу административной веб-консоли. Если понадобится сменить язык отображения консоли, кликаем по шестеренке в правом верхнем углу страницы:
[/step]
Скриншот №13. Главная страница административной веб-консоли
[step num="14"]
В настройках переходим в раздел **Язык/Регион** и в выпадающих списках выбираем нужные значения. После чего жмем кнопку **Сохранить и перезагрузить** в самом низу страницы:
[/step]
Скриншот №14. Выбор языка и региона
[step num="15"]
Для возврата на главную страницу нужно кликнуть левой кнопкой по надписи **Windows Admin Center** в левом верхнем углу. С главной страницы можно подключиться к имеющемуся серверу (клик по серверу в списке), либо добавить дополнительные серверы (клик по кнопке **Добавить**):
[/step]
Скриншот №15. Подключение к серверу
[step num="16"]
При добавлении сервера потребуется указать его имя или IP-адрес. Если сервер будет доступен, система запросит реквизиты для подключения. В случае успеха сервер появится в списке подключенных:
[/step]
Скриншот №16. Ввод имени и IP-адреса сервера
[step num="17"]
Кликнув по серверу в списке мы попадем в раздел администрирования. На главной странице будет отображена общая информация о сервере и статистика использования ресурсов (процессорные мощности, оперативная память, пропускная способность сети) в реальном времени в виде графиков:
[/step]
Скриншот №17. Раздел администрирования
С левой стороны расположена навигационная панель, с помощью которой можно переключаться между разными разделами административной консоли и получать доступ к управлению:
[step num="18"]
1. Настройками и правилами брандмауэра:
[/step]
Скриншот №18. Настройки и правила брандмауэра
[step num="19"]
2. Процессами операционной системы:
[/step]
Скриншот №19. Процессы ОС
[step num="20"]
3. Локальными каталогами и файлами:
[/step]
Скриншот №20. Каталоги и файлы
[step num="21"]
4. Учетными записями пользователей и группами пользователей:
[/step]
Скриншот №21. Учетные записи пользователей
[step num="22"]
5. Интерактивной консолью PowerShell:
[/step]
Скриншот №22. Консоль PowerShell
и многим, многим другим.
https://serverspace.uz/support/help/nastrojka-shifrovaniya-diska-s-dannymi.mdПошаговое руководство для настройки шифрования диска с данными на ОС Windows с помощью программы VeraCrypt
Программа VeraCrypt используется для шифрования информации. Однако процесс шифрования, несмотря на помощь мастера конфигурирования, нетривиален. Расскажем подробнее.
## Откуда скачать
[step num="1"]
Дистрибутив VeraCrypt можно скачать на [официальном сайте](https://www.veracrypt.fr/en/Downloads.html). У нас в статье в качестве примера рассматривается операционная система семейства Windows, поэтому выберем соответствующий пункт для загрузки (полный функционал программы доступен по первой ссылке):
[/step]
Скриншот №1. Страница загрузки.
## Шифрование диска
[step num="2"]
Выбираем пункт, отмеченный красным:
[/step]
Скриншот №2. Создать диск.
[step num="3"]
Далее выбираем второй пункт — шифрование не системного раздела, т.е. логического диска, на который не установлена операционная система:
[/step]
Скриншот №3. Выбор режима.
[step num="4"]
Переходим к выбору типа защиты: обычная или скрытая:
[/step]
Скриншот №4. Выбор метода.
[step num="5"]
В первом случае происходит обычное шифрование данных. Чтобы получить доступ к системе, пользователь указывает пароль и данные дешифруются. Второй вариант скрывает зашифрованную область, не позволяя злоумышленникам ее обнаружить. Данный метод рекомендуется использовать только в случае повышенной опасности.
[/step]
[step num="6"]
Следующий шаг — указываем раздел, который шифруется. Нажимаем на кнопку, которая отмечена красной стрелкой. Выбираем раздел из перечня, нажимаем "ОК", а потом "Next":
[/step]
Скриншот №5. Выбор области.
[step num="7"]
Теперь переходим к выбору способа шифрования тома. Первый пункт активирует полную очистку логического диска без возможности восстановить информацию в дальнейшем. После выполнения операции происходит шифрование. Второй способ пропускает форматирование раздела и активирует шифрование. Используем первый способ:
[/step]
Скриншот №6. Шифрование.
[step num="8"]
Теперь выберем протокол и хэширование. Оставляем по умолчанию, если не требуется специальных методов. Нажимаем "Next":
[/step]
Скриншот №7. Выбор дополнительных параметров.
Конфигурирование почти закончено и на мониторе пользователя появится информация о выбранном разделе. Если все верно, переходим к следующем пункту.
[/step]
Здесь программа попросит задать пароль для доступа к зашифрованному разделу. Длина пароля должна составлять как минимум 20 символов. Также пароль должен содержать заглавные и прописные буквы латинского алфавита, числа и специальные символы. В качестве дополнительной защиты используем опции, отмеченные красными стрелками на изображении. Зеленым показан пункт, который отображает пароль на мониторе. Опция необходима, чтобы удостовериться в правильности набора секретного ключа. Когда информация будет введена, переходим дальше:
[/step]
Скриншот №8. Создание секретного ключа.
[step num="11"]
Следующий шаг — указываем тип файловой структуры на разделе и размер кластера. Если настройки, указанные программой, подходят, то водим мышкой по полю, которое на скриншоте выделено красной рамкой, чтобы программа сгенерировала рандомные значения для создания ключей шифрования:
[/step]
Скриншот №9. Создание ключей.
[step num="12"]
Когда полоска внизу программы достигнет конечной точки, пользователю придет сообщение об удачном завершении процесса. Подтверждаем операцию шифрования и переходим к монтированию раздела.
[/step]
## **Монтирование**
[step num="13"]
Если открыть Проводник Windows, то в списке логических дисков появится новый том. Когда пользователь попробует открыть его, система выдаст ошибку:
[/step]
Скриншот №10. Ошибка.
[step num="14"]
Чтобы получить к нему доступ, откроем VeraCrypt и выберем свободную букву (пункт 1). Теперь переходим к выбору устройства для монтирования (пункт 2). Среди перечня томов выбираем зашифрованный логический диск и нажимаем "ОК":
[/step]
Скриншот №11. Выбор зашифрованного раздела.
[step num="15"]
После того, как том будет отображен в строке Volume, нажимаем кнопку "Mount":
[/step]
Скриншот №12. Подключить логический диск.
[step num="16"]
Программа потребует указать пароль, который задавался при шифровании тома. Вводим его и нажимаем "ОК":
[/step]
Скриншот №13. Ввод пароля.
[step num="17"]
Если данные указаны корректно, том подключится к операционной системе и будет доступен пользователю. После работы с зашифрованной информацией можно исключить том из списка доступных. Для этого в меню VeraCrypt выбираем пункт "Unmount".
[/step]
## **Дешифрация раздела**
[step num="18"]
Если зашифрованный том более не нужен, расшифруем его. Выбираем в списке необходимый раздел, вызываем контекстное меню и активируем пункт, отмеченный красной стрелкой на изображении ниже.
[/step]
Скриншот №14. Дешифрация.
[step num="19"]
Программа запросит подтверждение — соглашаемся. Далее потребуется указать пароль, который придумывался на этапе шифрования логического диска. Процедура дешифрации займет несколько часов, после чего раздел будет доступен в обычном режиме.
https://serverspace.uz/support/help/shifrovanie-diskov-windows-s-pomoshhyu-veracrypt.mdРассмотрим установку программы для шифрования VeraCrypt на ОС Windows. Конфигурирование, тестирование. Дешифрация при помощи VeraCrypt
**VeraCrypt** — это программа, которая используется для шифрования информации. К примеру, на [виртуальных серверах](https://serverspace.uz/services/vps-server/windows.md) с установленной операционной системой Windows.
Важно понимать, что в этом случае программа шифрует не только виртуальные носители, но и программу OVM Tools, необходимую для полноценной работы виртуального сервера. В результате пользователям становятся недоступны некоторые функции, например:
- Виртуальный сервер выключается только через опцию "Выключить питание";
- Редактирование текущей конфигурации недоступно через стандартную панель управления;
- Удаленный доступ через гипервизор запрещен.
Поэтому подобное шифрование рекомендуется использовать только при необходимости.
## Первоначальное конфигурирование
[step num="1"]
Открываем программу VeraCrypt, выбираем пункт Create Volume:
[/step]
Скриншот №1. Создание тома
[step num="2"]
На следующем шаге программа предложит выбрать вариант шифрования. Доступно три опции:
- Программа создаст виртуальное пространство внутри одного файла. Вариант рекомендован для новичков и неопытных пользователей.
- Шифрование логического диска, который не является системным, т.е. на нем не установлена операционная система. Операция также применима и для внешних носителей информации (флэшка, внешний жесткий диск, карта памяти и т.д.).
- Зашифровать системный диск. VeraCrypt скрывает информацию на системном разделе жесткого диска от посторонних лиц. Для загрузки Windows администратору необходимо вводить пароль.
Выберем последний пункт.
[/step]
[step num="3"]
Далее мастер конфигурирования предложит создать обычное, либо скрытое шифрование. В первом случае информация раскрывается при помощи пароля, а во втором — раздел с ОС становится скрытым. Другими словами, системный логический диск становится недоступен при обычном запуске компьютера. Данная опция редко используется, поэтому выбираем первый вариант:
[/step]
Скриншот №2. Выбираем режим Normal
[step num="4"]
Следующий шаг — выбор области защиты. Программа скроет весь диск, либо только системный раздел. Поскольку в начале настройки будет активна только первая опция:
[/step]
Скриншот №3. Скрыть системный раздел
[step num="5"]
Далее VeraCrypt предложит защитить скрытую область на жестком диске. При использовании облака данный пункт не имеет смысла, так как получить доступ к области невозможно. Поэтому оставляем "Нет".
[/step]
[step num="6"]
Следующий этап — выбор варианта загрузки ОС. Если установлена единственная операционная система, активируем опцию Single-boot. В противном случае — Multi-boot:
[/step]
Скриншот №4. Выбор загрузки ОС
[step num="7"]
Переходим к выбору типа шифрования и хэширования: программа предлагает более 20 методов. Выберем стандартный вариант AES, а для хэша используем SHA-256:
[/step]
Скриншот №5. Метод шифрации
[step num="8"]
Теперь зададим пароль для снятия защиты с диска:
[/step]
Скриншот №6. Установка ключа
[step num="9"]
Пароль рекомендуется составлять по следующим правилам: минимум 20 символов, наличие заглавных и прописных букв латинского алфавита, а также спецсимволов и цифр.
[/step]
Важно! Строка, выделенная зеленым цветом на изображении, показывает придуманный пароль. Если желаете проверить введенные символы — активируйте опцию. После подтверждения на мониторе пользователя появится анимационное изображение из хаотично передвигающихся элементов:
Скриншот №7. Повышение криптостойкости ключа
[step num="10"]
Перемещаем мышь случайным образом внутри области, отмеченной красным прямоугольником на скриншоте. При этом будут созданы случайные элементы, которые повысят надежность шифрования данных. Проводим данные действия, пока полоска внизу меню не заполнится. На скриншоте она подчеркнута зеленой линией.
[/step]
Важно! Рекомендуется полностью заполнить полоску, чтобы получить криптостойкий ключ.
[step num="11"]
После генерации ключа на экране появится часть сгенерированных элементов защиты:
[/step]
Скриншот №8. Cгенерированные элементы защиты
[step num="12"]
Если администратор желает просмотреть сгенерированную часть, выбираем пункт, отмеченный красной стрелкой на изображении.
Поскольку носитель или загрузчик программы может быть повреждён, на следующем шаге VeraCrypt предложит создать диск для восстановления.
[/step]
Скриншот №9. Диск для восстановления
[step num="13"]
Выбираем путь для сохранения образа носителя. Указываем метод записи на внешний носитель: флэшка или DVD-диск.
[/step]
На этом настройка завершена. Следующий этап — тестирования заданных параметров.
## **Тестирование**
[step num="14"]
VeraCrypt необходимо протестировать созданную конфигурацию. Нажимаем кнопку "Test". Появится окно с сообщением о перезагрузке ОС. Соглашаемся:
[/step]
Скриншот №10. Перезапуск ОС
[step num="15"]
Переходим в панель управления облачным сервером, подключаемся через web-интерфейс. Система попросит ввести пароль, придуманный на этапе конфигурирования шифрования, а также запросит PIM-код. Мы его не создавали, поэтому просто нажмем "Enter":
[/step]
Скриншот №11. Подключение к серверу
Далее гипервизор продолжит конфигурирование операционной системы. Процесс займет максимум 10 минут. По его окончании сервер будет перезагружен. Переподключимся к серверу и увидим сообщение VeraCrypt об успешном окончании тестирования.
Следуя подсказкам мастера, подтверждаем операцию шифрования выбранного системного диска. Процедура длительная и может занимать несколько часов. Администратор в любой момент может выключить сервер, а после включения шифрование продолжится с момента остановки — программа сохраняет процесс в режиме реального времени.
Важно! Выключать оборудование следует только через пункт "По питанию". В противном случае прогресс не сохранится.
## **Дешифрация**
[step num="16"]
Если требуется расшифровать диск, запускаем VeraCrypt и открываем контекстное меню через правую кнопку мыши в панели управления:
[/step]
Скриншот №12. Дешифрация
Активируем пункт, отмеченный красной стрелкой на изображении. Расшифровка также займет довольно много времени. По окончании операции перезагружаем облачный сервер "По питанию".
https://serverspace.uz/support/help/ustanovka-i-nastrojka-tripwire.mdПошаговая установка и настройка программы Tripwire, которая используется для наблюдения за состоянием файловой системы и обнаружения вторжений
Программа **Tripwire** используется для наблюдения за состоянием файловой системы и обнаружения вторжений в нее. После установки она сканирует файловую систему и сохраняет информацию о каждом найденном объекте в собственную базу данных. При этом каждый старт операционной системы начинается с мониторинга и текущие значения сравниваются с уже сохраненными. Если программа находит отличия, то оповещает об этом администратора. В качестве контроля используются хэш-суммы, поэтому значения объекта не сохраняются в программе в полном виде.
Расскажем подробнее про установку Tripwire. В качестве тестовой ОС используется Ubuntu Server 18.04.
## Установка
[step num="1"]
Для установки программы воспользуемся штатным менеджером:
```bash
sudo apt-get install tripwire
```
[/step]
[step num="2"]
Во время установки появится диалоговое окно с первичной настройкой ключей:
[/step]
Скриншот №1. Конфигурация ключей.
[step num="3"]
Tripwire генерирует буквенно-числовой код для защиты хэша файлов. Такой подход гарантирует, что злоумышленник не получит доступ к информации, хранящейся внутри программы. Выбираем пункт Yes дважды.
[/step]
[step num="4"]
Мастер создаст два ключа: site-key и local-key.
- Первый ключ гарантирует сохранность и надежность конфигурационных файлов программы. Данный тип защиты используется на разных серверных платформах.
- Второй предназначен для защиты бинарных файлов, которые расположены на каждом хосте под наблюдением Tripwire.
[/step]
## **Первый запуск**
[step num="5"]
Конфигурирование на первом этапе окончено — инициализируем модуль:
```
sudo tripwire --init
```
[/step]
[step num="6"]
Процесс занимает 5-7 минут. По окончании продукт сгенерирует хэш-суммы файловых объектов операционной системы, которые в дальнейшем будут использоваться для сравнения.
[/step]
[step num="7"]
Конфигурация программного обеспечения хранится по следующему адресу: /etc/tripwire/twpol.txt. Чтобы внести изменения открываем файл при помощи текстового редактора и вносим правки. После этого сохраняем новый шаблон и обновляем политику в программе. Далее вводим в терминале:
```
tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt
```
[/step]
[step num="8"]
Важно! Редактирование доступно только с правами суперпользователя. Прежде чем вносить изменения в текущую конфигурацию, рекомендуется выполнить резервное копирование файла, а также ознакомиться с правилами.
[/step]
[step num="9"]
Для проверки внесенных правок, используем следующий синтаксис:
```
tripwire --check –interactive
```
[/step]
## **Автоматизация процессов**
[step num="10"]
Рассмотрим дополнительные возможности программы, в частности, автоматизацию сбора отчетов.
[/step]
[step num="11"]
Любой процесс в Tripwire автоматизируется с помощью внешнего демона Cron, входящего в состав Linux по умолчанию. Создадим для примера шаблон активации проверки Tripwire два раза в день: ночью и днем. Откроем панель управления с расписанием:
```
crontab –e
```
[/step]
[step num="12"]
Операционная система выдаст перечень доступных редакторов для открытия файла, указываем любой. В открывшемся окне прописываем следующую строку:
```
30 */12 * * * tripwire --check --interactive > system-$(date +"%H:%M:%S_%d-%m-%Y")
```
[/step]
Теперь отчеты собираются автоматически.
https://serverspace.uz/support/help/nastrojka-i-audit-sistemy-linux.mdВ инструкции подробно описано, как установить, настроить и использовать Auditd для проведения аудита на серверах под управлением Linux
Для проведения аудита на серверах под управлением Linux-систем используют демон auditd. Он предназначен для комплексной проверки операционной системы Linux, например, для регистрации различных событий, анализа действий программ и предоставления информации администратору по заданным шаблонам. Также auditd проверяет операционную систему на ошибки: при необходимости активируется служба оповещения, которая высылает администратору предупреждения и сообщения.
Расскажем о том, как использовать auditd. В качестве примера используется сервер с ОС Ubuntu Server 18.04.
## Установка
[step num="1"]
По умолчанию auditd не интегрирован в операционную систему. Установим его штатными средствами:
[/step]
```bash
sudo apt-get install auditd audispd-plugins
```
Важно! Если серверная платформа находится под управлением CentOS, устанавливать ничего не нужно — демон интегрирован в ОС.
## **Конфигурирование**
Системные параметры хранятся в двух файлах. Первый называется auditd.conf и содержит настройки сервиса аудита, второй называется audit.rules. Audit.conf отвечает за сервис auditd по направлению какие события он записывает и в каком моменте времени. Второй файл содержит в себе правила и фильтры, используемые auditd при выполнении операций. В него администраторы вносят изменения, добавляют новые правила, а также правят текущие шаблоны или удаляют устаревшие.
[step num="2"]
Для просмотра установленных шаблонов используем следующий флаг:
[/step]
```
auditctl –l
```
Если настройки не выполнялись, то таблица будет пустой.
Важно! Удаление правил производится через ключ D.
[step num="3"]
Для активации мониторинга за конкретным файлом прописываем следующий синтаксис в терминале:
[/step]
```
auditctl -a command,action -F path=name_file -F perm=permission
```
- name_file — имя файла, за которым ведется наблюдение со стороны сервиса auditd;
- permission — права на доступ.
Поле принимает четыре значения:
- R — права на чтение;
- W — разрешается изменять;
- X — используется для исполняемых файлов, сервис запускает его от своего имени;
- A — изменить атрибуты объекта.
[step num="4"]
Дополнительные ключи, которые идут совместно с командой, расшифровываются следующим образом:
[/step]
–a: обозначает для демона auditctl список (task, exit, user или exclude) и действие (never или always). Пара перечисляется через запятую.
–F: задает путь к файлу и предоставляет права на поиск.
[step num="5"]
Если требуется найти определенное событие или объект, используем команду ausearch с ключом –f. Допустим, необходимо просмотреть информацию о том, кто и когда использовал объект /etc/passwd. Прописываем:
[/step]
```
uname –m
```
[step num="6"]
В ответ администратор получит число, которое в дальнейшем можно использовать для получения подробной информации о системном вызове. Прописываем в терминале:
[/step]
```
ausyscall arch number
```
- arch — архитектура операционной системы;
- number — числовое значение, полученное через команду uname.
Теперь вернемся к началу раздела. Зная, что такое системный вызов, администраторы использует команду auditctl для получения подробной информации о запускаемых приложениях и активных действиях по учетному имени.
## Просмотр логов
[step num="7"]
Условия заданы, аудит проведен, а как же просмотреть результат? Для этого доступна команда aureport. Собранная информация хранится в директории /var/log/audit/, а файлы имеют расширение .log. Общий вид:
[/step]
```
aureport option -if filename
```
- option задает ключи, по которым происходит выборка информации;
- –if указывает на файл, по которому работает фильтр.
[step num="8"]
Наиболее часто встречается фильтр по датам. За это отвечают опции --start и --end, после которых следует указание даты и точного времени. К примеру:
[/step]
```
aureport --start 07/15/2008 00:00:00 --end 07/19/2018 00:00:00
```
Другой пример — просмотр всех отчетов, которые хранятся в каталоге:
```
aureport –x
```
Если нужна сводка событий, произошедших в ОС, добавляем в конце флаг --summary.
[step num="9"]
Последний востребованный вариант — просмотр "неудачных" операций. К таким относятся неудачный вход в ОС, блокировки и т.д. Посмотреть их можно следующим образом:
[/step]
```
aureport -u --failed --summary –i
```
https://serverspace.uz/support/help/audit-processov-linux-s-pomoshchyu-utility-autrace.mdУтилита Autrace является решением для проведения аудита процессов операционной системы. Расскажем о проведении аудита на сервере Ubuntu
Утилита Autrace представляет собой решение для проведения аудита процессов операционной системы с помощью командной строки, сохраняющее системные события в специальный журнал. Ее используют для отслеживания критических событий: внезапное завершение работы ОС, изменение сетевой конфигурации, редактирование прав доступа к системным файлам и т.д. Утилита является часть продукта auditd, который по умолчанию не установлен в рабочей среде Linux, за исключением ОС CentOS.
Расскажем, как провести аудит на сервере под управлением Ubuntu Server 18.04.
## Предварительная подготовка
[step num="1"]
Устанавливаем утилиту:
[/step]
```bash
sudo apt-get install auditd audispd-plugins
```
Процесс займет не более четырех минут.
Конфигурация продукта хранится в файле etc/audit/auditd.conf. Для редактирования используем текстовый редактор, например, Nano или Vi.
## Как запустить аудит
[step num="2"]
В общем виде команда выглядит следующим образом:
[/step]
```
autrace –r name_program [keys]
```
name_program — наименование продукта, который подвергается проверке;
keys — дополнительные опции, доступные утилите.
Ключ r ограничивает данные, которые собираются утилитой. При его активации autrace соберет только те логи, которые необходимы для анализа по указанным параметрам.
Приведем пример: программа DF наблюдает за ресурсами файловой структуры.
[step num="3"]
Запустим аудит для сервиса:
[/step]
```
sudo autrace -r /bin/df –h
```
[step num="4"]
Утилита начнет отслеживать операции DF:
[/step]
Скриншот №1. Пример аудита
Для просмотра подробной информации используем встроенный журнал. Он открывается через команду ausearch. В зависимости от программы, для которой проводится аудит, синтаксис команды меняется. В нашем примере на изображении выше он выделен красным.
[step num="5"]
Набираем в терминале без кавычек:
[/step]
```
ausearch –I –p 7946
```
[step num="6"]
В результате на мониторе появится подробная информация по журналу. Синтаксис для команды ausearch выглядит следующим образом:
```
ausearch –i –p
```
[/step]
Ключ id — это цифровое значение процесса, которое доступно после активации команды autrace.
Ключ –p указывает утилите на идентификатор, по которому ищется журнал, а опция –i проводит интерпретацию цифровых значений.
[step num="7"]
Если нужна подробная трассировка, используем другой синтаксис:
[/step]
```
ausearch -p 7946 --raw | aureport -i –f
```
Где ключ –f информирует о файлах и сокетах, а комбинация raw задает формат выводимого отчета.
[step num="8"]
Для вывода информации в зависимости от дня прописываем:
[/step]
```
ausearch -p 7946 --raw | aureport -i -f
```
Как легко заметить, значение 7946 — это идентификатор процесса, который используется в примере статьи.
https://serverspace.uz/support/help/podklyuchenie-epel-rpmforge-i-drugih-repozitoriev-v-centos.mdДобавление репозиториев EPEL, RPMForge, Remi и других в CentOS. Пошаговая инструкция по работе с репозиториями | 8⃣ шагов
## Общая информация
Ранее мы уже рассматривали [использование пакетного менеджера Yum](https://serverspace.uz/support/help/shpargalka-po-yum-centos/) в операционной системе CentOS. Сейчас же разберемся с репозиториями, которые являются неотъемлемой частью инфраструктуры управления пакетами.
**Репозитории** представляет собой централизованное хранилище скомпилированных и готовых к установке программ с метаданными об их совместимости и взаимозависимостях.
Репозитории бывают:
- **официальные** — поддерживаемые разработчиками дистрибутива ОС. Содержат пакеты, являющиеся частью операционной системы, а также дополнительные программы, тесно в нее интегрированные;
- **коммерческие** — поддерживаемые разработчиками стороннего платного программного обеспечения. Доступ к таким репозиториям обычно требует наличия подписки;
- **открытые** — поддерживаемые энтузиастами, сообществом или разработчиками свободно-распространяемого ПО. Открыты для всех желающих.
Так как перечень программного обеспечения, включенного в состав операционной системы ограничен, и разработчики не всегда успевают вовремя тестировать и включать в свои репозитории свежие версии сторонних проектов (веб-серверы, почтовые серверы, СУБД и т.д.), зачастую приходится подключать дополнительные репозитории.
[step num="1"]
Есть два основных способа подключения. Наиболее предпочтительный — установка RPM-пакета репозитория. В ходе этой операции скачиваются и создаются все необходимые файлы, после чего новый репозиторий появится в списке подключенных (команда **yum repolist**). Другой способ — создать файл настроек репозитория самостоятельно в каталоге **/etc/yum.repos.d/**. Файл должен иметь расширение **repo** и содержать следующие параметры:
```
name=repo_name
baseurl=repo_url
```
[/step]
Описание параметров:
**[repo]** — краткое имя репозитория;
**name** — полное имя репозитория;
**baseurl** — ссылка на репозиторий (может быть заменена параметром mirrorlist или metalink — ссылка на список региональных зеркал репозитория);
**gpgcheck** — проводить ли проверку цифровой подписи пакетов (если значение параметра 1 — проводить, если 0 — не проводить);
**gpgkey** — местоположение открытого ключа репозитория, с помощью которого производится проверка подписи;
**enabled** — используется ли репозиторий при поиске и установке пакетов (1 — используется, 0 — репозиторий отключен).
Все необходимые значения для указанных параметров обычно можно найти на веб-сайте соответствующего репозитория.
## Подключаем сторонний репозиторий
[step num="2"]
Если говорить о дистрибутивах, основанных на Red Hat Linux, самым популярным репозиторием, рекомендуемым для подключения, является Extra Packages for Enterprise Linux (EPEL). На CentOS VPS серверах, развернутых из [наших шаблонов](https://serverspace.uz/services/vps-server/centos), этот репозиторий уже подключен. В случае, если операционная система установлена с нуля, подключить EPEL достаточно просто:
```bash
yum install epel-release
```
[/step]
[step num="3"]
RPM-пакет с настройками EPEL уже содержится в составе официального репозитория CentOS, поэтому все необходимые файлы и GPG-ключи загрузятся автоматически. Если просмотреть содержимое файла **/etc/yum.repos.d/epel.repo**, то мы увидим уже знакомые параметры:
[/step]
Скриншот №1. Параметры файла
[step num="4"]
Другой распространенный репозитарий — Remi`s RPM repository, содержащий актуальные версии пакетов PHP-стека. Репозиторий EPEL должен быть подключен в ОС, так как пакеты Remi зависят от пакетов репозитория EPEL. Детальную информацию можно найти на сайте https://rpms.remirepo.net/. Для подключения достаточно скачать RPM-пакет и запустить его установку:
```bash
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
```
[/step]
[step num="5"]
Запустим **yum repolist** и убедимся, что репозитории зарегистрированы в операционной системе:
[/step]
Скриншот №2. Yum repolist
[step num="6"]
По умолчанию включен только репозиторий remi-safe — он содержит пакеты, не замещающие пакеты дистрибутива операционной системы, чем минимизируются возможные конфликты и проблемы в работе. Если посмотреть список REPO-файлов, которые появились, увидим достаточно большой перечень:
[/step]
Скриншот №3. Список REPO-файлов
[step num="7"]
Эти репозитории отключены и должны включаться администратором сервера в тех случаях, когда это требуется. Чтобы включить репозиторий на постоянной основе, устанавливаем параметр **enabled=1** в соответствующем REPO-файле. Для разовых операций используем параметр **--enablerepo=repo_name** в соответствующей команде yum, например:
```bash
yum --enablerepo=remi install php
```
[/step]
[step num="8"]
Одним из широко распространенных ранее сторонних репозиториев был RepoForge (RPMForge), но, к сожалению, на данный момент он уже не поддерживается. Хотя физически репозиторий доступен, пакеты в нем уже давно не обновляются, в связи с чем использовать его не рекомендуется. Если все же по каким-то причинам требуется им воспользоваться, подключить его тоже достаточно просто — на странице http://repoforge.org/use/ находим ссылку на требуемую версию, скачиваем пакет и устанавливаем. Например, для CentOS 7:
```bash
wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum localinstall rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
```
[/step]
Скриншот №4. Версия для CentOS 7
https://serverspace.uz/support/help/otvalilis-nastrojki-seti-v-windows-server-2008.mdРассмотрим, как исправить ошибку при установке апдейта KB4088875KB4088878 для Windows Server: сброс параметров сетевых подключений
Компания Microsoft регулярно выпускает обновления для своих решений. После установки некоторых из них возникают побочные проблемы. Рассмотрим в публикации, как исправить ситуацию при установке апдейта KB4088875/KB4088878 для Windows Server.
## **Как исправить**
После установки обновления в операционной системе сбрасываются параметры сетевых подключений. Серверная платформа становится недоступной для подключения по протоколу RDP.
Рассмотрим способ решения для виртуального сервера. Подключаемся к нему через Web-интерфейс:
Скриншот №1. Подключиться через Web-интерфейс.
Система попросит нажать сочетание трех клавиш. Нажимаем кнопку, как показано на изображении:
Скриншот №2. Нажать клавиши.
Авторизуемся в системе. Заходим в свойства сети. Открываем "Панель управления", переходим к разделу "Центр управления сетями". Открываем свойства подключения, далее переходим к параметрам протокола TCP/IPv4:
Скриншот №3. Свойства протокола.
В открывшемся окне выставляем ручной режим, вводим в пустые поля информацию, которая доступна на сайте Serverspace во вкладке Настройки:
Скриншот №4. Параметры подключения.
После внесения изменений нажимаем ОК. Подтверждаем редактирование.
Пробуем подключиться через RDP к серверу.
https://serverspace.uz/support/help/dobavlenie-servera-v-sushhestvuyushhij-domen-active-directory.mdВ инструкции расскажем как добавить существующий VPS сервер в домен Active Directory. Конфигурирование сетевых параметров. Добавление домена
В инструкции расскажем о том, как добавить сервер в домен Active Directory.
## **Подготовка**
При создании виртуального сервера необходимо выбрать пункт "Добавить в домен". Время подготовки сервера увеличится на 20 минут, но решение будет подключено в Active Directory:
Скриншот №1. Миграция в домен.
После подключаемся к серверу через RDP:
Скриншот №2. Инструкция.
Скачиваем файл по ссылке, открываем его. Вводим имя пользователя и пароль. Они доступны в панели управления виртуальным сервером:
Скриншот №3. Учетные данные.
Теперь перейдем к настройке.
## **Конфигурирование сетевых параметров**
Для начала настроим сеть. Открываем свойства сетевого подключения через панель управления сервером. Вручную припишем IP-адрес и другие параметры. Точные значения указаны на сайте Serverspace, во вкладке свойства сервера:
Скриншот №4. Сетевые параметры.
**Важно!** В поле "Альтернативный DNS-сервер" прописываем IP-адрес контроллера домена.
## **Добавить в домен**
Дальнейшие шаги предполагают, что у администратора сконфигурирован контроллер домена и добавлены пользователи. Открываем панель управления, чтобы сменить рабочую группу на домен:
Скриншот №5. Свойства.
В открывшемся окне переключаемся на строку "Домен" и вводим его наименование:
Скриншот №6. Имя домена.
После нажатия кнопки ОК система запросит учетные данные. В поле "Имя пользователя" вводим значение, которое прописано на контроллере домена.
После подтверждения операционная система потребует перезагрузить сервер, чтобы изменения вступили в силу. Соглашаемся.
Чтобы подключиться к серверу на домене через RDP, прописываем соответствующие данные:
##
Скриншот №7. Подключение через RDP.
В первой строке вводим имя пользователя, во второй – пароль. Нажимаем ОК для подключения. После успешного входа перейдем в "Панель управления", раздел "Сетевые параметры". Проверим, что межсетевой экран активен.
https://serverspace.uz/support/help/sertifikaty-ssl-ustanavlivaem-na-nginx.mdРазбираемся в процессе генерации и загрузки SSL сертификата на сервер. Правильная конфигурация Nginx и проверка работы SSL сертификата
[step num="1"]
Первым делом необходимо сгенерировать SCR-запрос через панель управления Serverspace. После этого запроса, а также после выбора необходимого сертификата, следующим логическим шагом будет установка сертификатов .CRT и .CA. Давайте подробнее остановимся на том, как устанавливать эти сертификаты на серверы Nginx и Unix-системы Ubuntu, CentOS или Debian.
[/step]
[step num="2"]
Итак, после выполнения вышеперечисленных действий в разделе SSL, расположенном в панели управления Serverspace, находятся два файла **.CA **и **.CRT**.
[/step]
## **Загрузка SSL на сервер**
[step num="3"]
Файлы **.CA** и **.CRT** необходимо отправить на сервер. Часто Linux-серверы администрируют через терминал и GUI может отсутствовать. В этом случае можно отправить файлы на машину с другой ОС, а затем их перенести. Ниже мы расскажем, как это можно осуществить.
[/step]
[step num="4"]
**Важно:** пара (закрытый и открытый ключи) должна быть сгенерирована там, куда устанавливаются сами сертификаты. Однако если они были созданы на другом компьютере, на ваш сервер следует отправить закрытый ключ (файл .key), в соответствии с описанными ниже действиями по копированию.
[/step]
## **Перенос из Unix-систем**
[step num="5"]
В данном случае самым простым вариантом будет воспользоваться встроенной опцией терминала – SCP:
1. Файлы **.CA** и **.CRT **скачиваются из панели Serverspace на ваш компьютер.
2. Открываем терминал и переходим в место скачивания сертификатов, например:
```
cd ~/MyDownloadedFiles
```
[/step]
[step num="6"]
Загружаем все выданные сертификаты на веб-сервер:
```bash
scp yourtest.com_crt.crt yourtest.com_ca.crt login@121.122.222.111:/etc/sslДетальнее:
**scp** — копирует файлы;
**yourtest.com_crt.crt** — пример названия скачанного из панели Serverspace сертификата вашего ресурса;
**yourtest.com_ca.crt** — пример названия скачанного из панели Serverspace сертификата ЦА;
**login** — пользователь, который подключается через SSH (иногда им становится root);
**121.122.222.111** – IP-адрес;
**/etc/ssl** – папка, в которую вы хотите отправить сохраняемые файлы.
## **Загрузка через операционную систему Windows**
Первый шаг – устанавливаем клиент **WinSCP**. Скачать его можно по [ссылке](https://winscp.net/download/WinSCP-5.9.1-Setup.exe).
Запускаем. Откроется окно, куда необходимо ввести параметры подключения по протоколу SSH.
Слева вы увидите папки и файлы локальной машины, справа — файлы рабочего сервера, к которому подключились. Следует выбрать (либо создать, если такового нет) место, куда отправятся сертификаты. Используя функцию drag-n-drop, зажав левую клавишу мышки, переносите файлы **.CA** и **.CRT**.
**Важно**: удобнее будет сохранить **.key **в том же месте, где уже лежат файлы сертификатов. Это необязательно, но тогда вам придется запоминать расположение этого файла и указывать этот путь при конфигурации Apache, а не путь с нашего примера.
Чтобы сделать копию .key и отправить в иную директорию, в случае генерации закрытого ключа на сервере, можно воспользоваться командой:
[code]cp /home/root/private.key /etc/ssl/private.key
```
[/step]
**При этом:**
**cp** — отвечает за копирование;
**/home/root/ **— путь к файлу, если вы зашли "под рутом";
**private.key** — имя файла самого ключа;
**/etc/ssl/private.key **— путь, куда мы хотим скопировать ключ.
[step num="11"]
Можно воспользоваться командой и удалить ключ в старой директории:
```
rm /home/root/private.key
```
[/step]
## **Конфигурация Nginx для SSL**
[step num="12"]
Когда вы сделали копии всех необходимых сертификатов, нужно сконфигурировать Nginx. Чтобы это сделать, заходим через SSH под root-ом и делаем следующее:
1. **.CA** (файл центра сертификации), а также **.CRT** (файл сайта) преобразовываем в один:
```
cat /etc/ssl/testdomain.com_crt.crt /etc/ssl/testdomain.com_ca.crt >> testdomain.crt
```
2. Открываем файл с настройками ресурса, для которого необходим сертификат SSL. Ниже пример, когда параметры находятся по адресу **/etc/nginx/sites-enabled/files**:
```
nano /etc/nginx/sites-enabled/files
```
[/step]
**Обратите внимание: **на **Ubuntu/Debian**-дистрибутивах параметры веб-ресурсов Nginx обычно размещаются в директории **/etc/nginx/sites-enabled/.** В дистрибутиве **CentOS **стандартной директорией считается **/etc/nginx/conf.d/**. В системах Unix-семейства хорошо работает поиск через команду **ls /папка/настройки (например, ls /etc/nginx/sites-enabled)**, которая откроет полный перечень файлов в каталоге.
[step num="13"]
Далее, используя утилиту **nano, **открываем выбранный файл (например, **nano /etc/nginx/websites-enabled/file**). Узнать, тот ли файл мы нашли, можно внутри **server_name**. Значение этой строки необходимо заменить на домен, куда устанавливается сертификат (например,** website.com**).
[/step]
**Важно для дистрибутива CentOS: **в случае отсутствия редактора **nano**, можно установить его следующим образом:
```bash
yum install nano
```
[step num="14"]
Добавьте параметры из примера к вашей конфигурации:
```
listen 443 ssl;
```
```
ssl_certificate /etc/ssl/testdomain.crt;
```
```
ssl_certificate_key /etc/ssl/test.key;
```
[/step]
**Не забудьте поменять на ваши:**
**/etc/ssl/test.crt **— прописать расположение ваших сертификатов;
**/etc/ssl/test.key **— прописать расположение закрытого ключа.
[step num="15"]
Сделаем рестарт:
**Рестарт на Debian и Ubuntu:**
```
/etc/init.d/nginx restart
```
**Рестарт на CentOS:**
```bash
service nginx restart
```
[/step]
[step num="16"]
Допустим, у вас есть настроенный **iptables **firewall. В этом случае следует открыть **443 порт**. Просто обратитесь к документации той системы, которую используете. Различные дистрибутивы Linux могут работать с iptables по-своему. Вот пара примеров:
**Для CentOS пишем:**
```
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
```
**Ubuntu 16.04 более лаконичен:**
```
ufw allow 443/tcp
```
**В Debian пишем следующее:**
```
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
```
[/step]
## **Проверяем настройки**
[step num="17"]
После всех проведенных манипуляций на вашем Apache имеются готовые сертификаты SSL. Дабы удостовериться в правильности всех конфигураций, откройте ваш ресурс через любой браузер, добавив к адресу сайта (например, http://yourwebsite.com) букву s, чтобы получилось так: http**s**://yourwebsite.com. Если вы сделали всё правильно, возле URL-адреса сайта будет отображен "замок". Если вы нажмете на замок, то получите информацию об SSL-сертификате.
https://serverspace.uz/support/help/ustanovka-docker-compose-na-ubuntu-18-04.mdПошаговое руководство по установке и настройке Docker на Ubuntu. Создание контейнера для испытаний и использование Docker Compose Commands
Docker — это открытая платформа для разработчиков и системных администраторов, предназначенная для развертывания распределенных приложений. Она преобразует все распределенные приложения, состоящие из множества небольших приложений, в отдельные контейнеры, которые связаны между собой.
Таким образом, вместо того, чтобы создавать, запускать и управлять каждым отдельным контейнером по отдельности, Docker Compose позволяет вам определить ваше мультиконтейнерное приложение со всеми его зависимостями в одном файле, а затем произвести запуск этого приложения с помощью всего-лишь одной команды. Структура и конфигурация вашего приложения хранятся в одном месте, что делает воссоздание приложений простой и повторяемой операцией повсюду.
## Базовые требования
Чтобы установить и использовать Docker Compose в Ubuntu 18.04, вам нужны учетные данные с правами пользователя root, чтобы войти на свой сервер Ubuntu, а затем создать пользователя sudo без полномочий root. Вы можете использовать следующую команду для создания нового пользователя в Ubuntu.
adduser ubuntu
Введите пароль и информацию о новом пользователе, а затем выполните следующую команду, чтобы добавить вновь созданную группу в группу "sudo".
gpasswd -a ubuntu sudo
Теперь вы можете использовать только что созданного пользователя ubuntu для запуска команд с привилегиями суперпользователя. После настройки нового пользователя вы можете переключиться на обычного пользователя, а затем убедиться, что на вашем сервере Ubuntu установлены последние обновления и исправления безопасности. Вы можете использовать приведенную ниже команду для обновления вашего сервера.
sudo apt-get update
Нажмите клавишу "Y", чтобы продолжить процесс обновления системы.
## Установка Docker
Выполнив предварительные условия, сделайте первый шаг для установки образа Docker в Ubuntu. Образ Docker похож на полный установочный пакет Linux, который содержит минимально возможную пакетную конфигурацию, необходимую для запуска образа. Таким образом, лучший и самый простой способ установить Docker - запустить следующую команду, которая загрузит и установит необходимый образ Docker.
wget -qO- https://get.docker.com/ | sh
https://serverspace.uz/support/help/peredacha-dannyh-mezhdu-kontejnerom-docker-i-hostom.mdСвязь контейнера Docker и хоста с помощью томов Docker. Создание и тестирование томов данных в приложении Docker
С помощью контейнеров Docker вы и ваша компания может предлагать приложения и услуги в таких масштабах и с такой скоростью, о которых вы и не могли думать раньше. А поскольку развертывание контейнерных приложений происходит настолько просто, вы сможете невероятно сэкономить на скорости. Одна вещь, которую вы можете вскоре обнаружить (после знакомства с первыми шагами в мире Docker), заключается в том, что после развертывания ваши контейнеры оказываются несколько ограничены в том, как они могут сохранять и использовать данные.
Ограничение лежит в пределах файловой системы контейнера. Контейнеры Docker используют Объединенную файловую систему (UFS), которая работает с серией слоев только для чтения, последний слой чтения-записи располагается на самом верхнем слое контейнера. Эта система отлично работает, когда контейнеру не нужно сохранять данные. Но когда вам нужно развернуть службу, которая требует возможности сохранять данные (например, приложение, которое работает с базой данных), что вы собираетесь делать?
**Вы можете воспользоваться [инструкцией как установить Docker](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) или создать сервер с уже установленным Docker в Serverspace.**
## Добро пожаловать в Volumes
Том Docker - это каталог (или коллекция файлов), который находится в файловой системе хоста и не является частью UFS контейнера. Именно внутри этих томов контейнеры способны сохранять свои данные. С помощью команды docker volume вы можете легко управлять томами, чтобы расширить ваши контейнеры далеко за пределы их основных возможностей.
Давайте узнаем, как развернуть новый контейнер, включающий в себя том, прикрепленный к определенному каталогу на хосте, чтобы контейнер оставался синхронизированным с данными в томе. Я буду демонстрировать на Ubuntu Server 18.04, но процесс будет таким же (независимо от дистрибутива) на любой другой платформе, поддерживающей Docker.
## Создание тома данных на хосте
[step num="1"]
Первым шагом необходимо создать новый каталог для размещения тома Docker. Для этого откройте окно терминала и введите команду:
[/step]
```
mkdir ~/container-data
```
[step num="2"]
Необходимо убедиться, что вновь созданный каталог размещен в том месте, к которому пользователь Docker может получить доступ (с правами на чтение и запись). После того, как вы создали этот каталог, будьте готовы его подключить к контейнеру. Предположим, вы собираетесь развернуть контейнер, основанный на официальном образе Ubuntu, который содержит каталог с именем /data.
Чтобы развернуть такой контейнер, который присоединяет внутренний каталог /data к тому в каталоге хоста ~/container-data, необходимо выполнить команду:
[/step]
```bash
docker run -dit -P --name ubuntu-test -v ~/container-data:/data ubuntu
```
Вышеприведенная команда обозначает следующее:
- docker run - это основная команда, которая говорит, что мы собираемся запустить команду в новом контейнере.
- - dit - это d для режима detached, и он гарантирует, что bash или sh могут быть выделены псевдо-терминалу.
- - P публикует порты контейнеров на хосте.
- - name говорит, что далее следует имя нового контейнера.
- - v говорит, что далее объявляется том.
- ubuntu - это образ, который будет использоваться для контейнера.
[step num="3"]
Как только команда завершится, вы получите идентификатор контейнера. Убедитесь, что вы запомнили первые четыре символа этого идентификатора, так как он понадобится вам для получения доступа к оболочке bash внутри контейнера.
[/step]
```
root@serverspace:~# docker run -dit -P --name ubuntu-test -v ~/container-data:/data ubuntu
cca8b77142eb3610a9b4e53d5f2b8e50f264f56343487005739ddae650ac98e3
```
[step num="4"]
Теперь вы развернули контейнер, основанный на официальном образе Ubuntu, который включает каталог /data, монтирующийся на том хоста в ~/container-data.
[/step]
## Тестирование тома
[step num="5"]
Давайте проверим этот том. Если вы забыли идентификатор контейнера, чтобы увидеть его в списке, выполните команду:
```bash
docker ps -a
```
[/step]
Скриншот №1. Проверка тома
[step num="6"]
Получите доступ к вновь развернутому контейнеру с помощью команды:
[/step]
```bash
docker attach ID
```
Где ID - это первые четыре символа развернутого контейнера. Теперь вы должны найти себя в оболочке bash контейнера.
[step num="7"]
Выполните команду ls /, и вы увидите каталог /data, добавленный в контейнер Ubuntu. Давайте создадим тестовый файл в этом каталоге с помощью команды:
[/step]
```
touch /data/test
```
[step num="8"]
После создания этого тестового файла выйдите из оболочки bash контейнера введя команду:
[/step]
```
exit
```
[step num="9"]
Попав обратно в оболочку хоста введите команду
[/step]
```
ls ~/container-data
```
[step num="10"]
Вы должны увидеть тестовый файл в этом каталоге.
[/step]
Скриншот №2. Тестовый файл в каталоге
Вы только что развернули контейнер, который включает постоянное хранилище, через том на хосте.
https://serverspace.uz/support/help/hranilishhe-docker-kontejnerov.mdВ этом руководстве мы познакомим вас с решением Docker для организации хранения данных: Docker volumes (тома Docker). Варианты использования
## Введение
Виртуализация на основе процессов Docker имеет много преимуществ, особенно в сочетании с преимуществами слоев образов. Это позволяет невероятно быстро производить генерацию контейнеров и использовать легкий вес ресурсов. Однако одним из побочных эффектов эфемерной модели процесса Docker является то, что вы должны обязательно планировать, когда и как вы хотите сохранить постоянные данные. В этом руководстве мы познакомим вас с собственным решением Docker для этой проблемы: Docker volumes (тома Docker).
**Вы можете воспользоваться [инструкцией по самостоятельной установке Docker](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) или создать сервер в Serverspace с уже установленным приложением Docker.**
## Куда отправляются данные, когда они записываются в контейнер?
Предположим, что мы заходим в оболочку внутри busybox контейнера:
```bash
docker run -it --rm busybox
```
Затем, давайте запишем некоторые данные, скажем, в /tmp:
```
echo "Data!" > /tmp/data
cat /tmp/data
```
```
Data!
```
Мы видим, что данные определенно записываются. Но куда же на самом деле идут эти данные? Как мы узнали ранее, образы Docker состоят из слоев, уложенных друг на друга, чтобы привести к окончательному образу. Каждый из этих слоев содержит данные, измененные в такой операции, как установка инструмента, добавление исходного кода и т.д. Каждый из этих слоев становится доступным только для чтения после его создания. Когда контейнер создается из образа, тонкий R/W слой добавляется поверх предыдущих слоев образа. Этот слой обрабатывает все вызовы записи из контейнера, которые, в противном случае, были бы направлены на слои ниже, доступные только для чтения. Помните, что контейнеры эфемерны по своей природе. Они предназначены для того, чтобы иметь определенную продолжительность жизни и умереть в какой-то момент, как и любой процесс. Тонкий слой чтения/записи также эфемерен — он исчезает вместе с контейнером. Таким образом, любые записи, которые мы выполняем в контейнере, ограничены временем жизни этого контейнера. Они исчезнут, когда контейнер будет уничтожен. Это очевидное ограничение, которое не способствует хранению статусной информации. Итак, как разработчики и администраторы работают с этим? Они используют Тома Docker.
## Тома Docker
Тома Docker - это способ создания постоянного хранилища для контейнеров Docker. Тома Docker не привязаны к времени жизни контейнера, поэтому сделанные в них записи не исчезнут, как это произойдет с контейнером. Они также могут быть повторно подключены к одному или к нескольким контейнерам, чтобы можно было обмениваться данными и подключать новые контейнеры к существующему хранилищу. Тома Docker работают путем создания каталога на главной машине и последующего монтирования этого каталога в контейнер (или в несколько контейнеров). Этот каталог существует вне многослойного образа, который обычно содержит контейнер Docker, поэтому он не подчиняется тем же правилам (только для чтения и т. д.).
[step num="1"]
Давайте создадим том Docker и посмотрим его в действии:
[/step]
```bash
docker volume create
```
```
1d358c3fc3750f98345713eee5c294dee52...
```
[step num="2"]
Простой вызов docker volume create позволит создать новый том. Если мы проверим этот том, мы можем увидеть, где он живет на хост-файловой системе:
[/step]
```bash
docker volume inspect 1d358c3fc3750f98345713eee5c294dee526a3f5d0bd41a0ff4d117218c4af73
```
```json
[
{
"CreatedAt": "2020-05-17T16:25:30Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/1d358c3fc3750f98345713eee5c294dee526a3f5d0bd41a0ff4d117218c4af73/_data",
"Name": "1d358c3fc3750f98345713eee5c294dee526a3f5d0bd41a0ff4d117218c4af73",
"Options": {},
"Scope": "local"
}
]
```
[step num="3"]
С вызовом inspect приходит много информации ,но все, что нас действительно беспокоит прямо сейчас, это Mountpoint. Обратите внимание, что здесь указан путь, начинающийся с /var/lib/docker.... Если вы откроете этот путь на своем компьютере, на котором работает Docker, вы можете просмотреть данные, хранящиеся внутри этого тома. Метод, который мы только что использовали для создания тома, не является единственным способом. При запуске контейнера вы можете указать -v, чтобы создать новый том на лету:
[/step]
```bash
docker run -it --rm -v testdata:/data busybox
```
[step num="4"]
Как вы можете видеть, мы добавили новый аргумент к нашей docker run команде: -v. Существует специальный синтаксис для этого аргумента, с полями, разделенными двоеточиями. Первое поле - это название тома, в данном случае, testdata. Второе поле - это путь в контейнере, куда том будет примонтирован, в нашем случае, /data. Давайте запишем данные на том из контейнера:
[/step]
```
echo "Hello!" > /data/hello
```
[step num="5"]
Эти данные видны снаружи контейнера, в пути монтирования тома на хосте:
[/step]
```
pwd
cat hello
```
```
/var/lib/docker/volumes/testdata/_data
Hello!
```
[step num="6"]
Вы должны были заметить, что в пути название тома больше не является случайной строкой - это теперь имя тома, которое мы указали при использовании -v аргумента. Тома Docker могут иметь либо рандомизированные имена, инициализированные Docker Engine, или имена, назначенные пользователем самостоятельно. Имена должны быть уникальными для каждого хоста. Созданный во время выполнения том Docker теперь становится доступным в команде docker volume ls :
[/step]
```bash
docker volume ls
```
```
DRIVER VOLUME NAME
local 1d358c3fc3750...
local c63a0af5c8282...
local testdata
```
[step num="7"]
Это означает, что мы можем использовать этот том снова с другим контейнером или даже несколькими контейнерами. Давайте проверим это прямо сейчас. Во-первых, подключите том к busybox контейнеру:
[/step]
```bash
docker run -it --rm -v testdata:/data busybox
```
[step num="8"]
Внутри контейнера давайте напечатаем информацию о системе, а затем запишем на том:
[/step]
```
uname -a
echo "Hello 2" > /data/hello
```
```
Linux 7e299450b997 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux
```
[step num="9"]
Теперь запустите второй busybox контейнер, работающий одновременно с первым:
[/step]
```bash
docker run -it --rm -v testdata:/data busybox
```
[step num="10"]
Нам доступны данные, которые были записаны в первом контейнере:
[/step]
```
uname -a
cat /data/hello
```
```
Linux c5bf9ca04d3a 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux
Hello 2
```
Это подчеркивает еще одно из преимуществ томов Docker: совместное использование данных между контейнерами.
## Варианты Использования Тома Docker
Есть много допустимых вариантов использования для контейнеров Docker, но здесь мы рассмотрим два наиболее распространенных. Для каждого из этих примеров давайте представим, что у нас есть простое приложение, которое работает и собирает данные с некоторых датчиков погоды. Мы хотим собрать кучу метеорологических показателей, сохранить их, а затем использовать их снова в будущем. Давайте назовем наше тестовое приложение WeatherMon.
### Сохранение данных за пределами срока службы контейнера
Если мы выполняем WeatherMon без использования томов Docker, все данные, которые мы собираем, будут уничтожены при исчезновении контейнера. Нам это не сильно поможет, если наша цель - собрать данные и сделать их доступными для дальнейшего использования. Тома Docker удобны тем, что мы можем сохранить наши данные в томе и оставить их за пределами срока службы контейнера. Допустим, мы создаем наш контейнер, вызывая docker run с аргументом -v weathermon:/opt/weathermon. Тогда наше приложение может хранить свои метрики погоды в каталоге /opt/weathermon непосредственно на эфемерном слое чтения/записи, предоставленном контейнером. Мы также могли бы настроить удаленную базу данных для хранения этой информации, но тома Docker предоставляют альтернативу для хранения локально используемых данных.
### Совместное Использование Данных Между Контейнерами
Предположим, что мы уже используем контейнер WeatherMon некоторое время и собрали довольно много данных. Мы хотим проанализировать эти данные, чтобы определить информацию, такую как средняя температура за день, или какая неделя в месяце имела самую высокую среднюю влажность. Используя тома Docker, мы можем смонтировать существующий том в новый контейнер, WeatherMon-Analytics. Этот новый контейнер может считывать данные, не прерывая их сбор контейнером WeatherMon. Затем он может выполнять аналитику, которую мы хотим, и хранить эту информацию в том же томе или в другом томе, если это необходимо.
## Другие Типы Монтирования
Есть два других типа томов Docker, которые мы еще не обсуждали: bind mount и tempfs mount.
### Bind Mount
Bind mount используются для монтирования существующего пути на хосте в контейнер. Используя --mount совместно с :, вы можете указать существующие каталоги, которые будут монтироваться в контейнер. Это очень удобно при использовании информации о конфигурации, такой как каталоги внутри /etc. Это также полезно, когда у вас есть информация, которую вы хотите использовать в контейнере, например, существующие наборы данных или статические файлы веб-сайта.
### Tempfs Mount
Задача tempfs монтирования состоит в том, чтобы обеспечить доступное для записи расположение, которое специально **не **сохраняет информацию после окончания срока службы контейнера. Возможно, вы думаете: "зачем это нужно?" В контейнере, который не имеет подключенного тома, все записи идут в тонкий слой R/W, вставленный во время выполнения. Любая запись, направленная на этот слой, влияет на файловую систему, поскольку эти записи выполняются на базовом хосте. Обычно это не является проблемой, если вы не пишете значительные объемы одноразовых данных (таких как журналы). В этом случае вы можете наблюдать снижение производительности, так как файловая система должна обрабатывать все эти вызовы write. tempfs монтирование было создано для предоставления контейнерам временного пути записи, который не влияет на операции файловой системы. В частности, tempfs это эфемерное монтирование, которое записывается непосредственно в память. Этот том можно создать с помощью --tempfs аргумента.
### Драйвера Томов
По умолчанию тома хранят информацию о базовой хост-системе. Docker также имеет концепцию, называемую драйверами томов, которая позволяет указать, как и где хранить тома. Например, вы можете хранить том Docker внутри корзины Amazon S3. Это может быть удобно, если вы хотите, чтобы информация сохранялась не только за пределами срока службы контейнера, но и за пределами срока службы хоста.
## Вывод
Все обсуждаемые здесь понятия разбиты на гораздо более подробные части в [документации Docker о хранилище](https://docs.docker.com/storage/). Примеры использования каждого типа монтирования и более подробное введение в концепцию драйверов томов доступны по этой ссылке.
https://serverspace.uz/support/help/ustanovka-composer-na-ubuntu-18-04.mdИнструкция по установке Composer на Ubuntu 18.04. Composer — это менеджер зависимостей PHP. Он собирает и управляет всеми PHP-пакетами проекта
Composer — это менеджер зависимостей PHP. Он собирает все PHP-пакеты, от которых зависит ваш проект, и управляет ими за вас.
## Установка Composer
Перед загрузкой и установкой Composer обновим и установим необходимые Linux-пакеты:
```bash
sudo apt update
sudo apt install wget php-cli php-zip unzip
```
Далее скачаем установщик Composer с помощью команды:
```bash
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
```
Проверим целостность данных скрипта. Используем команду wget для загрузки установщика со страницы Composer на Github и сохранения ее в переменной с именем HASH:
```
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
```
Теперь выполним следующую команду, чтобы убедиться, что установщик не поврежден:
```bash
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
```
Если установщик не поврежден, появится уведомление:
```
Installer verified
```
Следующей командой установим Composer в каталог /usr/local/bin:
```bash
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
```
Если установка прошла успешно вы увидите следующий ответ:
```bash
All settings correct for using Composer
Downloading...
Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
```
Проверим установку следующей командой:
```bash
composer
```
При успешной установке ответ будет таким:
```bash
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
Usage:
command [options] [argument]
```
https://serverspace.uz/support/help/ustanovka-magento2-na-ubuntu-18-04.mdЭта инструкция поможет вам легко установить самую свежую версию CMS Magento2 на виртуальный сервер под управлением ОС Ubuntu 18.04
Magento — одна из лучших платформ для электронной коммерции. В 2015 году команда Magento представила вторую версию своей платформы, Magento2, а 28 апреля 2020 года вышел очередной релиз Magento 2.3.5, включающий в себя более 180 функциональных исправлений и более 25 улучшений безопасности.
Эта статья поможет вам установить самую свежую версию Magento2 на виртуальный сервер под управлением ОС Ubuntu 18.04.
Для установки вам потребуется:
- виртуальный сервер с Ubuntu 18.04. Вы можете создать его в Serverspace бесплатно, воспользовавшись тестовым балансом, который выдается автоматически сразу после регистрации;
- установленная программа [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) для работы с консолью.
## Установка LAMP
Для начала откроем консоль, войдем на сервер и обновим пакеты Ubuntu 18.04:
sudo apt update
sudo apt-get update
После загрузки всех обновлений можем приступать к установке LAMP (**L**inux, **A**pache, **M**ySQL, **P**HP). Начнем с установки веб-сервера Apache:
sudo apt install apache2 wget unzip
Далее установим PHP и его модули:
sudo apt install php libapache2-mod-php php-mysql php-dom php-simplexml php-pear
sudo apt install php-curl php-intl php-xsl php-mbstring php-zip php-xml php-soap php-bcmath
Затем установим систему управления базами данных MySQL:
sudo apt install mysql-server
После завершения установки запустим MySQL:
sudo systemctl start mysql.service
и скрипт mysql_secure_installation, чтобы создать пароль для учетной записи root и защитить сервер MySQL:
sudo mysql_secure_installation
Затем чтобы обезопасить сервер, скрипт задаст нам несколько вопросов:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
Заходим в MySql:
sudo mysql -u root -p
Создаем необходимую дата-базу Magento 2:
CREATE DATABASE magento2
Затем создаем пользователя и пароль:
CREATE USER 'userr'@'localhost' IDENTIFIED BY 'PASSWORD';
Даем пользователю права к нашей дата-базе Magento 2:
GRANT ALL ON magento2.* TO 'userr'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Сохраним привилегии и выйдем из MySql:
FLUSH PRIVILEGES;
EXIT;
Установка LAMP завершена. Переходим к следующему шагу.
## Настройка виртуального хоста Apache2
Создадим новый файл magento2.conf:
sudo nano /etc/apache2/sites-available/magento2.conf
Скопируем и вставим следующее содержимое в файл выше. Помните, что вы должны изменить domain.com на ваш домен.
ServerAdmin admin@domain.com
DocumentRoot /var/www/html/magento2/
ServerName domain.com
ServerAlias www.domain.com
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Убедимся, что rewrite mod включен:
sudo a2ensite magento2.conf
sudo a2enmod rewrite
Увеличим доступные значения в файле php.ini.:
sudo nano /etc/php/7.2/apache2/php.ini
Изменим следующие значения в открывшимся файле. Чтобы проще найти нужную строку, используйте Ctrl+W.
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600
Сохраняем файл и выходим из него.
Перезапустим Apache2:
sudo systemctl restart apache2.service
## Установка PHP Composer
Чтобы установить пакетный менеджер PHP Composer, выполним следующие команды:
sudo apt install wget php-cli php-zip unzip
Теперь, когда на нашем компьютере установлен PHP cli, мы можем скачать установщик composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Далее нам нужно проверить целостность данных скрипта:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Теперь выполним следующую команду, чтобы убедиться, что сценарий установки не поврежден:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Установим Composer в каталог / usr / local / bin:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Проверим установился ли Composer:
composer
Если установка прошла успешно нам вылезет следующий текст:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
Usage:
command [options] [arguments]
На этом все. Приступаем к скачиванию Magento2.
## Скачивание архива с Magento2
Зайдем в нужную директорию:
cd /var/www/
Скачаем необходимый нам файл:
wget https://github.com/magento/magento2/archive/2.3.zip
Проверим создался ли наш файл:
dir
Если мы правильно скачали файл,то ответ должен быть таким:
2.3 zip
Распакуем наш файл:
unzip 2.3.zip
Проверим создался ли новый файл:
dir
Если файл распаковался,то ответ должен быть таким:
/var/www/maagento2
Установим Composer:
composer install
Скачиваем нужную нам версию PHP:
sudo apt-get install php7.2-gd
Затем установим разрешения для файлов для их запуска с веб-сервером Apache:
sudo chown -R www-data.www-data /var/www/magento2
sudo chmod -R 755 /var/www/magento2
sudo chmod -R 777 /var/www/magento2/{pub,var}
Теперь Composer установлен на ваш сервер.
## Создание базы данных и пользователя
Войдем в MySQL с правами администратора:
mysql -u root -p
Создадим базу данных. Вместо "magento2_db" укажите свое название базы данных:
CREATE DATABASE magento2_db;
и пользователя базы данных. Вместо "magento2_usr" укажите желаемое имя пользователя базы данных, а вместо "pa$$word" — желаемый пароль от базы данных:
CREATE USER magento2_usr@'localhost' IDENTIFIED BY 'pa$$word';
Далее предоставим пользователю необходимые привилегии. Не забудьте поставить свои значения вместо "magento2_db" и "magento2_usr":
GRANT ALL ON magento2_db.* TO magento2_usr@'localhost';
Актуализируем внесенные изменения, выполнив команду:
FLUSH PRIVILEGES;
Изменения вступили в силу. Выходим из MySQL командой:
quit
## Создание виртуального хоста Apache
Создадим конфигурационный файл Apache для нашего сайта Magento2. Вместо "domain.com" укажите свой домен:
sudo vim /etc/apache2/sites-available/domain.com.conf
В открывшийся файл добавим следующие строки (вместо "domain.com" укажите свой домен):
VirtualHost *:80>
DocumentRoot /var/www/magento2
ServerName domain.com
Allowoverride all
Сохраним и закроем файл. Затем включим виртуальный хост следующей командой (вместо "example.by" укажите свой домен):
sudo a2ensite domain.com
Также включим модуль перезаписи Apache, который рекомендует Magento:
sudo a2enmod rewrite
Для внесения выполненных изменений перезапустим сервер Apache:
sudo systemcl restart apache2.service
## Установка Magento2
Теперь приступаем к главному — установке Magento2. Введем наш домен в браузере и он перенаправит нас на страницу установки:
http://domain.com
Соглашаемся с лицензионным соглашением и нажимаем на кнопку "Agree and Setup Magento":
Скриншот №1. Соглашаемся с лицензионным соглашением.
Теперь нажимаем на кнопку "Start Readiness Test" — Magento запустит проверку на наличие необходимого программного обеспечения на сервере. После завершения нажимаем "Next". Если проверка выявила отсутствие каких-либо компонентов, попробуйте установить их еще раз и нажать "Try again":
Скриншот №2. Проверка системных требований.
Затем вводим сведения о базе данных, которую мы создавали ранее:
Скриншот №3. Ввод сведений о базе данных.
После этого установщик отобразит адрес вашего сайта и сгенерирует случайную ссылку для входа в административную панель. Вы можете изменить ее по своему усмотрению:
Скриншот №4. Адрес вашего сайта и адрес входа в панель управления.
Создадим пользователя с правами администратора для входа в панель управления Magento2:
Скриншот №5. Создание пользователя с правами администратора.
Теперь Magento2 готов к установке. Нажимаем на кнопку "Install now", чтобы начать установку и дожидаемся ее завершения:
Скриншот №6. Установка Magento.
После завершения установки появится следующий экран:
Скриншот №7. Установка Magento завершена.
Далее откроется окно авторизации в панели управления Magento2. Выполните вход, используя логин и пароль, сформированные ранее:
Скриншот №8. Авторизация в панели управления Magento2.
Процесс завершен. Поздравляем с успешной установкой Magento2 на вашем виртуальном сервере!
## Настройка Magento2
В заключение рекомендуем вам настроить автоматическое выполнение некоторых задач с помощью планировщика задач Cron, который сможет запускать повторную индексацию, обновлять курсы валют, отправлять автоматические письма, генерировать файл Sitemap и так далее. Для этого откроем файл CronTab, в котором содержатся задания для Cron:
crontab -e
И в конце файла добавим такие строки:
* * * * * www-data php /var/www/magento2/bin/magento cron:run
* * * * * www-data php /var/www/magento2/update/cron.php
* * * * * www-data php /var/www/magento2/bin/magento setup:cron:run
, где **www-data** — это пользователь, под которым работает Apache, а **/var/www/magento2/** — каталог с Magento2. Для завершения сохраняем внесенные изменения и выходим из редактирования файла.
https://serverspace.uz/support/help/uvelichenie-diskovogo-prostranstva-v-centos-6.mdУвеличение дискового пространства в Centos 6
После увеличения диска в панели управления, необходимо сделать его доступным для операционной системы:
[step num="1"]
Откройте терминал (см. [инструкцию по подключению](https://serverspace.ru/support/help/kak_podkljuchitsja_k_linux_serveru/)) под пользователем root и введите следующие команды:
[root@CentOSx64 ~]# echo 1 > /sys/block/sda/device/rescan
[/step]
[step num="2"]
Установите утилиту parted (если она еще не установлена) и запустите ее:
[root@CentOSx64 ~]# yum -y install parted
[root@CentOSx64 ~]# parted
[/step]
[step num="3"]
Далее выполните команды в интерфейсе утилиты parted:
(parted) print
Запоминаем размер диска, в данном примере 32.2GB.
Если в списке разделов диска присутствует раздел типа extended, запоминаем его номер в первой колонке (в данном примере 3) и переходим к пункту 6 данной инструкции.
[/step]
[step num="4"]
Если extended раздел в списке отсутствует, его нужно создать, для этого вводим команду:
(parted) print free
В выводе команды находим строку Free space в конце списка, в столбцах Start и End будут указаны начало и конец не размеченного пространства на диске – эти значения понадобятся в следующем шаге.
[/step]
[step num="5"]
Вводим команду:
(parted)mkpart
Тип создаваемого раздела - e
Partition type? primary/extended e
Указываем начало свободного пространства (значение берем из колонки Start, в данном примере это 10.7GB), жмем Enter.
Start? 10.7GB
Указываем окончание свободного пространства (значение берем из колонки End, в данном примере это 32.2GB), жмем Enter.
End? 32.2GB
По завершении операции может появится сообщение:
WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot.
Можно не обращать на него внимания и выйти из утилиты parted:
(parted) quit
Пропускаем следующий 6 пункт за ненадобностью и сразу переходим к пункту 7 инструкции.
[/step]
[step num="6"]
Если extended раздел в списке присутствует вводим команду:
(parted) resize
Указываем номер раздела (берем из первой колонки, в данном примере 3)
Partition number? 3
Значение "Start" оставляем по умолчанию — нажимаем Enter
Start? [XXXMB]?
Значение "End" — вводим новый размер диска в гигабайтах — значение из вывода (parted) p, которое запомнили ранее (в данном примере 32.2GB)
End? [YY.YGB]? 32.2GB
Выходим из parted:
(parted) quit
Отобразится следующая информация:
Information: You may need to update /etc/fstab.
[/step]
[step num="7"]
Запустите fdisk:
[root@CentOSx64 ~]# fdisk /dev/sda
Далее выполните команды в интерфейсе утилиты fdisk - создаем раздел:
Command (m for help): n
Выбираем тип раздела — логический (L)
Select (default p): l
Принимаем значения по умолчанию — нажимаем два раза Enter:
First sector (XXX-YYY, default ZZZ):
Last sector, +sectors or +size{K,M,G} (XXX-YYY, default ZZZ):
[/step]
[step num="8"]
Меняем тип раздела, при этом указываем номер созданного раздела (в нашем примере это последний раздел, обозначен как X****) и запоминаем его
Command (m for help): t
Partition number (1-X): X
Hex code (type L to list codes): 8e
...
Command (m for help): w
[/step]
[step num="9"]
Сообщаем ядру об изменениях:
[root@CentOSx64 ~]# partx -v -a /dev/sda
В отобразившемся ответе видим строку
...
/dev/sda: added partition #X
...
[/step]
[step num="10"]
Инициализируем раздел, вместо Х опять используем номер раздела, который мы запомнили ранее
[root@CentOSx64 ~]# pvcreate /dev/sdaX
Physical volume "/dev/sdaX" successfully created
[/step]
[step num="11"]
Выводим список существующих групп томов командой:
[root@CentOSx64 ~]# vgdisplay
В строке VG Name находим имя группы, в нашем случае это vg_centos6 (также может быть vg_centos65x64). Добавляем физический раздел к существующей группе томов:
[root@CentOSx64 ~]# vgextend vg_centos6 /dev/sdaX
Volume group "vg_centos6" successfully extended
[/step]
[step num="12"]
Получаем список логических томов командой:
[root@CentOSx64 ~]# lvdisplay
В строке LV Path корневого тома берем полный путь и расширяем логический том
[root@CentOSx64 ~]# lvextend -l +100%FREE /dev/vg_centos6/lv_root
Extending logical volume lv_root to YY.ZZ GiB
Logical volume lv_root successfully resized
[/step]
[step num="13"]
Расширяем файловую систему логического тома:
[root@CentOSx64 ~]# resize2fs /dev/vg_centos6/lv_root
[/step]
Дисковое пространство инициализировано и готово к использованию.
https://serverspace.uz/support/help/kak-nastroit-xrdp-server-na-ubuntu-18-04.mdКак настроить xRDP-сервер на Ubuntu 18.04?
## В данной инструкции описано как настроить сервера xRDP для подключения к Ubuntu 18.04 с окружением Xfce или MATE по протоколу RDP. Настройка xRPD помогает очень удобно присоединят операционные системы семейства Windows без использования дополнительных инструментов.
Что такое xRDP?
xRDP — это бесплатная реализация RDP (протокола удаленного рабочего стола) Microsoft с открытым исходным кодом, которая позволяет операционным системам, отличным от Microsoft Windows (таким как Linux и BSD), предоставлять полностью функциональный RDP-совместимый удаленный рабочий стол.
Установка и настройка
Подключаемся к виртуальному серверу по протоколу SSH и выполняем обновление системы:
sudo apt-get update
Устанавливаем и включаем наш xRDP:
sudo apt-get install xrdp
sudo systemctl enable xrdp
Устанавливаем окружение, которое вам больше нравится, xfce или mate, и разрешаем xRDP использовать это окружение:
Для того чтобы установить xfce:
sudo apt-get install xfce4 xfce4-terminal
sudo sed -i.bak '/fi/a #xrdp multiple users configuration n xfce-session n' /etc/xrdp/startwm.sh
Для того чтобы установить mate:
sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon
sudo sed -i.bak '/fi/a #xrdp multiple users configuration n mate-session n' /etc/xrdp/startwm.sh
Открываем порт RDP чтобы можно было подключиться удаленно :
sudo ufw allow 3389/tcp
Чтобы изменения вступили в силу,перезагружаем xRDP сервер :
sudo /etc/init.d/xrdp restart
Подключение к рабочему столу
Для того чтобы удаленно подключиться к рабочему столу,открываем приложение Windows Подключение к удаленному рабочему столу. Вводим IP-адрес сервера,имя пользователя и нажмимаем Подключить:
При подключении появится табличка о безопасности, это связано с тем, что происходит соединение с операционной системой семейства Linux. Нажмимаем "Да"
Если все работает правильно,то вы подключитесь к рабочему столу.
Если вы установили Xfce ,то ваш рабочий стол будет выглядеть так:
Если вы установили MATE,то рабочий стол будет выглядеть так:
https://serverspace.uz/support/help/osnovnye-komandy-linux.mdСамые популярные и часто используемые команды Linux Shell для управления файлами. Однозначно полезный материал для веб-мастера или админа
**Linux Shell** — это программа, которая также известна как [CLI (англ. Command Line Interface)](https://serverspace.uz/about/blog/cli-kak-upravlyat-infrastrukturoj-cherez-cli/). Она передает команды от пользователя операционной системы и отображает выходные данные, если таковые имеются.
Многие из дистрибутивов имеют графический интерфейс, называемый GUI (англ. graphical user interface), но в серверных и минимальных версиях Linux используется интерфейс командной строки. Попробуем рассмотреть некоторые команды, которые помогут нам освоить командный интерфейс Linux.
[step num="1"]
При первом входе в терминал мы можем видеть что-то наподобие:
```
root@server:~#
```
если вы вошли в систему с привилегированным пользователем root;
```
user@server:~$
```
если вы вошли в систему под пользователем с обычными правами.
[/step]
[step num="2"]
Когда вы только открываете терминал, вы находитесь в домашней папке пользователя. Для того, чтобы узнать, в какой папке вы находитесь в данный момент, вы можете воспользоваться командой **pwd**:
```
root@server:~# pwd
/root
```
[/step]
[step num="3"]
Чтобы сменить каталог воспользуйтесь командой **cd**:
```
root@server:~# cd /tmp
```
```
root@server:/tmp#
```
[/step]
[step num="4"]
Также вы можете переходить в каталог выше или в корневую директорию используя команды:
```
root@server:~# cd ..
```
вернет вас в предыдущий каталог;
```
root@server:~# cd /
```
перейдет в корень файловой системы.
[/step]
[step num="5"]
Чтобы увидеть содержимое каталога используйте команду **ls**:
```
root@server:~# ls
mybase.sql
Downloads
site.zip
```
[/step]
[step num="6"]
Использование команды **ls** с параметром **-a**_ п_озволит увидеть скрытые файлы:
```
root@server:~# ls -a
.htaccess
mybase.sql
Downloads
site.zip
```
[/step]
Скрытые файлы, начинаются со знака "."
[step num="7"]
Для создания пустого файла используется команда **touch**:
```
root@server:~# touch readme.txt
```
[/step]
[step num="8"]
Если же мы хотим создать файл с некоторым содержимым, воспользуемся командой **echo**:
```
root@server:~# echo Hello, my name is Linux >> readme.txt
```
[/step]
[step num="9"]
Данная строка создаст файл readme.txt, содержащий строку Hello, my name is Linux.
[/step]
[step num="10"]
Для просмотра содержимого файла используем команду **cat**:
```
root@server:~# cat readme.txt
Hello, my name is Linux
```
[/step]
Для просмотра файлов также можно использовать следующие команды:
**more** — постраничный просмотр содержимого;
**less** — то же самое, но с возможностью пролистывания вверх-вниз;
**head** — покажет первые десять строк файла;
**tail** — покажет последние десять строк.
[step num="11"]
Также может понадобится создать каталог, для чего есть команда **mkdir**:
```
root@server:~# mkdir backups
```
[/step]
[step num="12"]
Для удаления каталога существует команда **rmdir**. Она удалит каталог, если он пуст:
```
root@server:~# rmdir backups
```
[/step]
[step num="13"]
Для рекурсивного удаления каталогов и файлов в них используйте команду **rm**:
```
root@server:~# rm -rf backups
```
удалит каталог backups, все файлы и каталоги в нем;
```
root@server:~# rm readme.txt
```
удалит файл readme.txt.
[/step]
[step num="14"]
Чтобы скопировать файлы применим команду **cp**. В формате **cp** "что копировать"-"куда копировать":
```
root@server:~# cp readme.txt backups
```
[/step]
[step num="15"]
Для того, чтобы переместить файл, используем команду **mv**:
```
root@server:~# mv readme.txt backups
```
[/step]
[step num="16"]
Также с помощью этой команды можно переименовать файл:
```
root@server:~# mv readme.txt readme.old
```
[/step]
**Sudo **(англ. substitute user and do) — это утилита, позволяющая запускать команды от имени другого пользователя:
```
root@server:~$ sudo -i
```
```
root@server:~$
```
[step num="17"]
Она запустит Shell от имени суперпользователя root. **Sudo** используется при необходимости запустить команду с правами суперпользователя:
```
root@server:~$ sudo nano /etc/ssh/sshd_config
```
Данная строка откроет с правами администратора файл sshd_config в текстовом редакторе nano.
[/step]
[step num="18"]
Также могут возникать задачи, когда необходимо сменить владельца файла. В этом случае на помощь придет команда **chown**:
```
root@server:~# chown -R www-data:www-data /var/www/html/mysite.com
```
Данная строка рекурсивно сменит владельца и группу каталога /var/www/html/mysite.com на www-data.
[/step]
[step num="19"]
Если же необходимо сменить права доступа на файлы и каталоги, можем использовать утилиту **chmod**:
```
root@server:~# chmod -R 755 /var/www/html/mysite.com/*
```
Она рекурсивно назначит права 755 на все содержимое каталога /var/www/html/mysite.com.
[/step]
[step num="20"]
Используя более сложную конструкцию, можно раздельно назначить права на файлы и каталоги:
```
root@server:~#chmod 755 $(find /var/www/html/mysite.com -type d)
```
```
root@server:~#chmod 640 $(find /var/www/html/mysite.com -type f)
```
[/step]
[step num="21"]
Для каждой команды можно использовать аргумент --help для получения более подробной информации по ее использованию:
```yaml
root@server:~#cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
.....
```
[/step]
[step num="22"]
Также всегда на помощь придет команда **man**.
С более подробной инструкцией по запрашиваемой команде можно ознакомиться следующим образом:
```
root@server:~#man ls
LS(1) User Commands LS(1)
```
```
NAME
ls - list directory contents
```
```
SYNOPSIS
ls [OPTION]... [FILE]...
```
```
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
...
```
https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11.mdКак установить и настроить почтовый сервер с использованием Exim, Dovecot и Roundcube на VPS с операционной системой Debian 11
## Введение
Это руководство поможет вам настроить почтовый сервер в Debian 11. Эта настройка позволит вам добавить виртуальные домены, пользователей и псевдонимы и защитить виртуальный сервер от спама.
Использование корпоративной почты в корпоративных и личных целях даёт множество преимуществ:
- Профессионализм: корпоративный адрес электронной почты, такой как yourname@yourcompany.com, создаст имидж по сравнению с обычными бесплатными поставщиками электронной почты.
- Брендинг: Корпоративная электронная почта позволяет вам продвигать свой бренд и создавать единую идентичность по всем каналам коммуникации.
- Доверие: Наличие выделенного адреса электронной почты, привязанного к вашему бизнес-домену, повышает доверие среди клиентов, партнеров и заказчиц.
- Безопасность: Корпоративные почтовые службы часто предоставляют расширенные меры безопасности, такие как шифрование и спам-фильтры, для защиты конфиденциальной информации и предотвращения несанкционированного доступа.
- Контроль и владение: С корпоративной электронной почтой вы получаете полный контроль над своей инфраструктурой электронной почты и данными, обеспечивая конфиденциальность и соблюдение правил защиты данных.
- Совместная работа: Корпоративные платформы электронной почты часто интегрируются с другими инструментами повышения производительности, такими как календари, управление задачами и общий доступ к документам, обеспечивая бесперебойную совместную работу внутри команд.
- Масштабируемость: По мере роста вашего бизнеса корпоративная служба электронной почты может легко обслуживать растущее число пользователей и предоставлять дополнительные функции и объем хранилища.
- Настройка: Вы можете настроить параметры электронной почты, пользовательские разрешения и политику электронной почты в соответствии с вашими бизнес—требованиями.
- Поддержка: Многие поставщики корпоративной электронной почты предлагают специальную техническую поддержку для решения любых проблем или оказания помощи при необходимости.
- Разделение личной и деловой переписки: Использование отдельной корпоративной электронной почты помогает разделить личную и деловую переписку, что упрощает управление задачами и расстановку приоритетов.
В целом, использование корпоративного почтового сервиса дает множество преимуществ с точки зрения профессионализма, безопасности, контроля, совместной работы и брендинга, что делает его ценным активом как для бизнеса, так и для частных лиц.
## Требования
- Доменное имя;
- Docker CLI >= версии 20;
- Docker Compose >= версии 2.0;
- Административные права;
- Настроенное полное доменное имя;
- SSL-сертификат.
## Установка пакетов:
Прежде всего, нам нужно обновить пакеты в нашей системе:
```bash
apt update && apt dist-upgrade
```
Скриншот №1 — Обновление
Установите все необходимые требования и зависимости для конфигурации системы с помощью команды:
```bash
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
```
Скриншот №2 — Зависимости
Добавьте и загрузите ключи из официальных репозиториев Docker, если вы используете другую версию системы, то измените ссылку ниже:
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```
Скриншот №3 — Утилита для скачивания
Эта команда будет использовать утилиту, которая установит ключ шифрования в системе и позволит вам использовать репозитории.
Теперь добавьте ссылку и обновите список пакетов:
```
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && apt update
```
Скриншот №4 — Добавить репозитории
В этом случае мы загружаем Docker Compose как плагин для нашего сервера, который работает как отдельное приложение с помощью команды ниже:
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose
```
Плагин будет контейнеризировать приложение и поможет нам запустить 3 основных модуля почтового сервера вместе:
- Агент пересылки почты;
- Агент получения почты;
- Агент доставки почты.
Каждый из них выполняет свою часть необходимой работы в этом процессе. И обеспечивать работоспособность современного и безопасного почтового сервера, поэтому нам необходимо использовать протокол для передачи данных. SSL поможет в этом, и одно из преимуществ перед обычным почтовым сервером от решений IT—корпорации — безопасность!
Мы не предоставляем никаких данных внешнему лицу. Это помогает сохранить конфиденциальность, но имейте в виду, что это решение будет работать только с двумя клиентами на одном сервере или аналогичном решении на другом!
Продолжаем установку. Напишите команду для добавления пользователя в группу docker:
```
sudo usermod -aG docker yourname
```
Скриншот №5 — Изменение группы пользователя
## Добавьте доменные записи
Для наших целей в следующем шаге мы указываем DNS—запись в нашу панель, в этом случае я использую делегированную панель от Serverspace и записываю необходимые пункты, в вашем случае вы можете использовать любого провайдера:
Скриншот №6 — Предварительные записи
Запись помогает нашей почтовой службе обнаружить соответствие между нашим доменным именем и IP—адресами через DNS—сервер, в примере они обозначаются как NS—записи ns.02 и ns.01 с точкой в конце. Это необходимо для поиска информации о нашем IP—адресе в едином формате. Домен второго уровня vdushu.space и для почтового сервера test.vdushu.space указаны.
Запись CNAME представляет собой синоним. В языке — это слова одной и той же части речи с полным или частичным совпадением значения. В DNS записях смысл и логика те же. Любой запрос на autoconfig.* или autodiscover.* перенаправляет на основной домен test.vdushu.space, который нужен для конфигурации контейнера докер.
Запись MX предоставляет пользователю доменное имя запрашиваемого канонического имени. Это помогает определить почтовый сервер, на который будет доставлена информация. Например, мы получили письмо от отправителя: ussc.us и хотим ответить на него, агент делает запрос на ответ и получает сообщение типа MX:test.vdushu.space, проверяет его на соответствие требованиям безопасности, а затем отправляет почту на mxсервер.
NS сервер или сервер имен является основным компонентом для указания того, какой dns сервер обеспечивает обслуживание выделенного доменного имени. После установки всех DNS записей измените имя хоста на вашей Linux машине, что поможет в использовании DNS resolver и в /etc/resolv.conf вы можете проверить это:
```
hostnamectl set-hostname yourdomain.com && nano /etc/resolv.conf
```
Скриншот №7 — Смена имени машины
Скриншот №8 — Содержимое файла resolv.conf
Если домен не изменился, проверьте /etc/hostname:
```
nano /etc/hostname
```
И напишите каноническое имя домена, который вы используете! В нашем примере vdushu.space.
## Установка части сервера
Создайте рабочую папку для пакетов загрузки с помощью команды ниже:
```
mkdir -p /main/mail && cd /main/mail
```
Скриншот №9 — Создание директории
Установка почтового сервера начинается с загрузки на github для этого введите команду:
```bash
apt install git && git clone https://github.com/mailcow/mailcow-dockerized
```
Скриншот №10 — Git установка
Скриншот №11 — Клонирование репозитория
Затем создайте конфигурацию для установки с помощью команды ниже:
```
cd /main/mail/mailcow-dockerized && ./generate_config.sh
```
Скриншот №12 — Генерация конфига
Следуйте инструкциям во всплывающем вопросе и требованиям. Вам необходимо заполнить поле с меткой Timezone, имя домена, указать букву **Y**, если вы хотите установить антивирус или **N**, чтобы отключить его, выбрать стабильную версию для данной установки и дождаться генерации SSL сертификата:
Скриншот №13 — Конфигурация
## Вывод
Целью руководства является комплексная настройка современного и безопасного почтового сервера с использованием контейнеров Docker и включением различных компонентов для эффективной обработки и доставки почты. [В следующих частях инструкций](https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11-chast-2/) мы продолжим рассказывать о настройке и поднятии сервера. Не переключайтесь!
https://serverspace.uz/support/help/dns-server-unavailable.mdОшибка «DNS-сервер не отвечает» мешает открыть сайт? Разберём причины и дадим пошаговые инструкции, как всё исправить — быстро и просто.
Ошибка "**DNS-сервер не отвечает**" — распространённая проблема, с которой сталкиваются пользователи при попытке открыть сайт в браузере. В этой статье мы подробно разберём причины, по которым не работает DNS, и расскажем, как устранить проблему на компьютере и роутере.
## Что такое DNS и зачем он нужен?
Каждому сайту в интернете соответствует уникальный IP-адрес, например **176.108.10.5.** Однако для удобства пользователей вместо чисел используются доменные имена — такие как **yandex.ru**. Связь между доменом и IP-адресом устанавливает DNS-сервер (Domain Name System) — служба, которая преобразует доменные имена в IP-адреса и обратно.
Если вы видите сообщение "DNS-сервер не отвечает", это означает, что устройство не смогло получить нужный IP-адрес, чтобы подключиться к сайту. Причина может быть как на стороне пользователя, так и на стороне интернет-провайдера.
## Основные причины ошибки
Причины можно разделить на две группы:
-
**Со стороны интернет-провайдера:**
Недоступность DNS-серверов.
- Технические работы.
- Аварии на линии или перебои с питанием.
- **Со стороны пользователя:**
Проблемы с роутером или сетевой картой.
- Сброс настроек.
- Неправильная конфигурация DNS.
- Конфликт с антивирусом или брандмауэром.
## Как решить проблему
Перед тем как начать устранять проблему, важно сначала выяснить, на каком именно этапе возникает ошибка, связанная с недоступностью DNS-сервера. Для этого стоит проверить несколько ключевых моментов: сначала стоит убедиться, работает ли ваш интернет-соединение в целом, а затем определить, возникает ли проблема на уровне локального устройства, маршрутизатора или сети в целом. Также полезно протестировать доступность других сайтов и сервисов, чтобы понять, ограничена ли ошибка только одной страницей или же она затрагивает все ресурсы.
[step num="1"]
Подключите к Wi-Fi смартфон или ноутбук. Если сайты не открываются везде — причина в роутере или провайдере. Если проблема только на одном ПК, переходите к его диагностике..
[/step]
## Проблема с роутером
[step num="2"]
Отключите роутер от сети питания на 2–3 минуты, затем включите его снова. Это часто помогает при временных сбоях.
[/step]
[step num="3"]
Затем важно убедиться, что настройки роутера не были случайно сбиты. Для этого заходим в панель управления роутером и проверяем введенные данные, которые предоставил ваш интернет-провайдер. Убедитесь, что все параметры подключения, такие как DNS-серверы, шлюз и другие настройки, указаны верно. Если после проверки настройки выглядят корректно, но проблема не решена, стоит проверить, не устарела ли прошивка устройства. Для этого зайдите в раздел обновлений программного обеспечения в интерфейсе роутера и выполните обновление до последней версии прошивки. Это может решить проблемы с подключением и улучшить стабильность работы устройства.
[/step]
Скриншот №1. Пример автообновления на TP-Link WR942N.
[step num="4"]
Если в модели роутера не предусмотрено автоматическое обновление, переходим на официальный сайт производителя, находим модель используемого роутера, скачиваем последнюю версию ПО и устанавливаем его.
[/step]
[step num="5"]
Проверяем выполненную работу: открываем браузер и проверяем доступность сайтов.
[/step]
## Смена DNS-адреса
[step num="6"]
Ошибка DNS может возникать и из-за проблем на рабочем компьютере. Расскажем об одном из методов, который позволяет исправить ошибку.
[/step]
**Важно!** Так как ручная настройка DNS-сервера на Windows 7, 8 и 10 аналогична, расскажем об этом на примере одной из версий этих ОС.
[step num="7"]
На компьютере нажимаем сочетание клавиш Win + R и вводим команду **ncpa.cpl**
Откроется окно "**Сетевые подключения**". Выбираем текущее подключение, открываем контекстное меню, нажав правую кнопку мыши и выбираем "**Свойства**":
[/step]
Скриншот №2. Свойства подключения.
[step num="8"]
В открывшемся окне выбираем строку, отмеченную на изображении "**1**", нажимаем "**Свойства**":
[/step]
Скриншот №3. Настройка протокола.
[step num="9"]
На экране отобразится информация о текущем значении IP и DNS-адресов:
[/step]
Скриншот №4. Смена DNS-сервера.
[step num="10"]
Выбираем нужный пункт, как показано на изображении выше. В соответствующие поля вводим следующие значения: в качестве основного DNS-сервера указываем 8.8.8.8, а в резервное поле — 8.8.4.4. Эти адреса предоставлены Google, однако можно использовать и другие публичные DNS-сервера, такие как Yandex, Comodo, OpenDNS (Cisco) и другие. Для каждого из них предлагаются два адреса: основной и резервный.
[/step]
**Важно!** Обязательно указывайте альтернативный адрес. Если предпочитаемый адрес окажется недоступен, обращение пойдет к альтернативному.
[step num="11"]
Для надежности можно указать в качестве основного DNS-сервера адрес, например, компании Google, а в качестве запасного — Comodo. Такая схема гарантирует, что пользователь всегда будет иметь доступ к доступным DNS-серверам.
[/step]
## Проверка службы DNS
[step num="12"]
Если настройка DNS-сервера выполнена по инструкции, но ошибка осталась, проверяем службу Domane Name System. Одновременно нажимаем на клавиатуре Win+R, вводим services.msc и нажимаем "Enter":
[/step]
Скриншот №5. Перечень сервисов.
[step num="13"]
Откроется рабочая область, которая содержит службы Windows. Выбираем строку, выделенную синим цветом. Открываем контекстное меню и выбираем пункт "Перезапустить" — служба перезагрузится. Можно проверять доступность сайтов.
[/step]
## Обнуление кэша
[step num="14"]
Еще один вариант решения проблемы — очистка кэша DNS. Запускаем командную строку с правами локального администратора:
[/step]
Скриншот №6. Выбор утилиты.
[step num="15"]
Откроется окно терминала. По очереди прописываем следующие команды:
[/step]
```
ipconfig /flushdns
```
```
ipconfig /registerdns
```
```
ipconfig /renew
```
```
ipconfig /release
```
[step num="16"]
По окончанию перезагружаем компьютер и пробуем повторно зайти на недоступный ранее сайт.
[/step]
## Настройка антивируса
[step num="17"]
Если параметры компьютера настроены правильно, но ошибка по-прежнему проявляется, проверяем настройки антивирусного ПО. Сразу оговоримся — не существует плохого антивируса, просто многие из них блокируют подключения к некоторым сайтам, либо DNS-серверам.
[/step]
[step num="18"]
Например, антивирус Avast может ограничивать доступ к сайтам, руководствуясь своей внутренней базой угроз. В подобных ситуациях стоит временно деактивировать фаервол в настройках защиты и обновить страницу в браузере. Если доступ по-прежнему невозможен, попробуйте полностью отключить антивирусное ПО на 10–15 минут и проверить повторно — это поможет понять, блокирует ли соединение именно антивирус.
[/step]
[step num="19"]
Чтобы в дальнейшем минимизировать риск подобных ошибок, рекомендуется настроить исключения в файрволе, добавив в список доверенных только проверенные веб-ресурсы. Если же проблема сохраняется, стоит рассмотреть возможность замены антивирусного программного обеспечения — для этого сначала полностью удалите текущий антивирус, а затем установите альтернативное решение.
[/step]
## Общение с интернет-провайдером
[step num="20"]
Иногда сбой в работе DNS может быть вызван неполадками на стороне вашего интернет-провайдера. Если при попытке открыть сайт появляется сообщение "DNS-сервер не отвечает", первым делом стоит связаться с технической поддержкой оператора связи. Специалисты смогут сообщить, идут ли в данный момент технические работы, зафиксированы ли сбои в сети в вашем районе и когда ожидается восстановление доступа к интернету.
[/step]
## Вывод
Ошибка "**DNS-сервер не отвечает**" — частая, но решаемая проблема. Проверьте роутер, настройте DNS вручную, очистите кэш и, при необходимости, обратитесь к провайдеру. Надеемся, это руководство помогло вам восстановить доступ к интернету.
https://serverspace.uz/support/help/how-to-recovery-root-password.mdВ инструкции Serverspace подробно описано, как с помощью образа для восстановления Recovery Boot восстановить пароль для root-пользователя
В инструкции описано как с помощью образа для восстановления выполнить восстановление пароля для root-пользователя.
## Восстановление пароля
[step num="1"]
Для начала необходимо открыть сервер из списка, для которого требуется восстановить root-пароль.
[/step]
[step num="2"]
Откройте вкладку **Восстановление** и выберите **Загрузиться с образа для восстановления**.
[/step]
[step num="3"]
Подтвердите подключение образа для восстановления.
[/step]
Тип загрузки будет изменён.
**Важно**: после загрузки с образа для восстановления сервер будет доступен через Web-консоль!
[step num="4"]
Для загрузки с образа для восстановления необходимо выполнить перезагрузку сервера через панель управления или средствами ОС. Далее рассмотрим пример перезагрузки через панель управления.
[/step]
[step num="5"]
Перейдите во вкладку **Действия** —> **Питание** и выполните перезагрузку сервера.
[/step]
[step num="6"]
Подтвердите перезагрузку сервера.
[/step]
[step num="7"]
После перезагрузки сервера необходимо открыть **Web консоль**.
[/step]
[step num="8"]
Выберете первый пункт по умолчанию ***Boot SystemRescueCd using default option.**
[/step]
Если в консоли уже отображается командная строка, то опция загрузки была выбрана по умолчанию.
[step num="9"]
Далее необходимо узнать на каком разделе диска находится система:
fdisk -l
[/step]
В данном случае это /dev/vda2/.
[step num="10"]
Создайте временный каталог для новой системы:
mkdir /tmp/reset
[/step]
[step num="11"]
Смонтируйте к созданному каталогу системный раздел:
mount /dev/vda2 /tmp/reset
[/step]
[step num="12"]
Измените корневой каталог на новый:
chroot /tmp/reset
[/step]
[step num="13"]
Для смены root-пароля выполните следующую команду:
passwd
[/step]
[step num="14"]
Введите и подтвердите новый пароль.
[/step]
ОБРАТИТЕ ВНИМАНИЕ: При вводе пароля символы пароля не отображаются, но всё равно вводятся!
[step num="15"]
В панели управления измените образ загрузки на вкладке **Восстановление** на системный.
[/step]
[step num="16"]
Выполните перезагрузку сервера с помощью панели управления.
[/step]
[step num="17"]
После перезагрузки сервера подключитесь к серверу с новым паролем привычным способом.
https://serverspace.uz/support/help/dns-server-bind9-ubuntu-20-04.mdВ этой инструкции мы рассмотрим установку и базовую настройку DNS-сервера BIND9 в Ubuntu 20.04. Как установить и настроить DNS-сервер BIND9.
В этой инструкции мы рассмотрим установку и базовую настройку DNS-сервера BIND9 на машине под управлением ОС Ubuntu.
Как установить и настроить DNS-сервер BIND9 по шагам:
- Установите BIND9
- Настройте BIND9
- Протестируйте BIND9
Рассмотрим подробнее каждый шаг.
## Установим BIND9
[step num="1"]
Первое, что вам нужно сделать, это обновить список пакетов и установить BIND9.
[/step]
```bash
sudo apt update
sudo apt install bind9
```
[step num="2"]
После завершения процесса установки вы можете проверить работу BIND9:
[/step]
```
nslookup google.com 127.0.0.1
```
Ответ должен быть похожим на такой:
```yaml
Server: 127.0.0.1
Address: 127.0.0.1#53
```
```yaml
Non-authoritative answer:
Name: google.com
Address: 64.233.164.138
...
```
## Настроим BIND9
[step num="3"]
DNS-сервер работает сразу после установки. Теперь необходимо настроить его в соответствии с целями использования. Во-первых, разрешите BIND9 работать через брандмауэр.
[/step]
```
sudo ufw allow Bind9
```
[step num="4"]
Затем откроем главный файл настройки - **named.conf.options **
[/step]
```
sudo nano /etc/bind/named.conf.options
```
[step num="5"]
Далее перечислим некоторые из доступных опций. Добавьте необходимые в блоке "options".
[/step]
[step num="6"]
"**listen-on**" позволяет указать сети, которые будет обслуживать DNS-сервер. Для работы по всем адресам не указывайте параметр или же задайте "any;"
[/step]
```
listen-on {
10.10.10.0/24;
10.1.0.0/16;
...
};
```
[step num="7"]
"**allow-query**" указывает, кому разрешено выполнять запросы. BIND9 по умолчанию разрешает только локальные запросы, поэтому добавьте необходимые IP-адреса или пропишите "any;", чтобы разрешить все запросы.
[/step]
```
allow-query { any; };
```
[step num="8"]
Серверы пересылки содержат IP-адреса DNS-серверов, на которые перенаправляется запрос в случае, если наш сервер не содержит необходимых данных.
[/step]
```
forwarders {
8.8.8.8;
8.8.4.4;
};
```
[step num="9"]
Сохраните и закройте файл. Проверьте настройку:
[/step]
```
sudo named-checkconf
```
[step num="10"]
Если ошибок не появилось, значит все в порядке. Выполните перезапуск службы, чтобы изменения вступили в силу.
[/step]
```bash
sudo systemctl restart bind9
```
## Протестируем BIND9
[step num="11"]
Чтобы проверить корректность работы DNS-сервера, введите следующую команду на любом другом удаленном компьютере. Перед вводом замените dns-server-ip-address на IP-адрес DNS-сервера:
[/step]
```
nslookup ubuntu.com dns-server-ip-address
```
Результат:
```yaml
Server: dns-server-ip-address
Address: dns-server-ip-address#53
```
```yaml
Non-authoritative answer:
Name: ubuntu.com
Address: 91.189.88.181
...
```
[step num="12"]
Таким образом, кэширующий сервер BIND9 работает.
[/step]
**Следующие шаги:**
- [BIND9 - первичный DNS-сервер](https://serverspace.ru/support/help/bind9-primary-dns-ubuntu-20-04/)
- [BIND9 - вторичный DNS-сервер](https://serverspace.ru/support/help/bind9-secondary-dns-ubuntu-20-04/)
https://serverspace.uz/support/help/bind9-primary-dns-ubuntu-20-04.mdВ этом руководстве мы настроим BIND9 в качестве первичного DNS-сервера для доменного имени. После этого вы сможете указать IP-адреса различных доменных служб.
Вы можете использовать DNS-сервер по-разному. В этом руководстве мы настроим BIND9 в качестве первичного DNS-сервера для доменного имени. После этого вы сможете указать IP-адреса различных доменных служб, например, почтового сервера, а также доменов третьего уровня. Перед началом работы выполните [установку и базовую настройку BIND9](https://serverspace.ru/support/help/dns-server-bind9-ubuntu-20-04/).
## Создадим зону DNS
Мы будем использовать в качестве примера "**domain-name.com**". При настройке просто измените его на свое доменное имя, а свои реальные IP-адреса укажите вместо **10.1.1.xxx**.
[step num="1"]
Добавьте информацию о зоне в конфигурацию.
[/step]
```
sudo nano /etc/bind/named.conf.local
```
[step num="2"]
Затем добавьте следующие строки.
[/step]
```
zone "domain-name.com" {
type master;
file "/etc/bind/db.domain-name.com";
allow-transfer { 10.1.1.10; };
also-notify { 10.1.1.10; };
};
```
- type — master, slave, forward или hint;
- file — указывает путь к файлу новой зоны;
- allow-transfer — список DNS-серверов, которым разрешено передавать зону;
- also-notify — первичный DNS-сервер будет уведомлять эти серверы об изменениях зоны.
[step num="3"]
Выполните перезапуск службы.
[/step]
```bash
systemctl reload bind9
```
## Конфигурационный файл зоны
[step num="4"]
Создайте файл зоны из шаблона и откройте его.
[/step]
```
sudo cp /etc/bind/db.local /etc/bind/db.domain-name.com
sudo nano /etc/bind/db.domain-name.com
```
[step num="5"]
Замените localhost в записи SOA полным доменным именем вашего сервера с указанием "." в конце. В примере это "**ns.domain-name.com.**". А root.localhost замените на свой действующий адрес электронной почты администратора с указанием "." вместо "@" и "." в конце.
Serial - порядковый номер изменения. Его необходимо увеличивать вручную каждый раз, когда меняется файл зоны. Вторичный сервер отслеживает изменения в зоне с помощью этого параметра.
[/step]
```
;
;
;
$TTL 604800
@ IN SOA ns.domain-name.com. admin.domain-name.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.domain-name.com.
@ IN A 10.1.1.1
ns IN A 10.1.1.9
ns2 IN A 10.1.1.10
mx IN A 10.1.1.15
```
[step num="6"]
Внизу файла находятся записи DNS. Формат записи: hostnameclassDNS record typevalue. Где:
- hostname — чаще всего это значение является доменным именем третьего уровня, и "domain-name.com" заполняется автоматически. @ или none означает запись для имени зоны (в данном случае domain-name.com). Вы также можете указать полное доменное имя с точкой в конце (например, ns.domain-name.com.);
- class — IN (Internet) — указывает на тип сети;
- Наиболее распространенные типы DNS-записей: A, NS, MX, CNAME, TXT. "A" содержит IP-адрес доменного имени, "NS" - IP-адрес DNS-сервера зоны, "MX" - почтовый сервер, "CNAME" - псевдоним, относящийся к значению указанной записи, "TXT" - произвольная запись;
- value — IP-адрес, имя хоста, текстовая информация.
[/step]
[step num="7"]
Перезапустите rndc.
[/step]
```
sudo rndc reload
```
[step num="8"]
Затем проверьте DNS-сервер. Введите эту команду с любого удаленного компьютера.
[/step]
```
nslookup domain-name.com 10.1.1.9
```
[step num="9"]
Замените domain-name.com своим полным доменным именем, а 10.1.1.9 - адресом только что настроенного сервера имен. В качестве ответа будет использоваться A-запись DNS вашего домена. В данном примере это 10.1.1.1.
[/step]
**Следующий шаг** — [BIND9 в качестве вторичного DNS-сервера](https://serverspace.ru/support/help/bind9-secondary-dns-ubuntu-20-04/).
https://serverspace.uz/support/help/bind9-secondary-dns-ubuntu-20-04.mdПошаговая инструкция по настройке secondary DNS-сервера на BIND9 в Ubuntu 20.04. Репликация зон, резервирование DNS и проверка работы сервера.
## Настройка BIND9 как вторичного DNS-сервера (Secondary DNS)
Вторичный DNS-сервер (secondary DNS) используется для повышения отказоустойчивости инфраструктуры. Он получает копию DNS-зоны с первичного сервера и продолжает обслуживать запросы, если основной сервер становится недоступен.
Это критически важно для обеспечения стабильной работы сайта, почты и других сервисов, завязанных на DNS.
[step num="1"]
Перед началом убедитесь, что у вас уже установлен и настроен первичный DNS-сервер BIND9. Если нет — выполните базовую настройку BIND9.
[/step]
## Начальные параметры
Для примера будем использовать следующие значения:
- IP первичного DNS-сервера — 10.1.1.9
- IP вторичного DNS-сервера — 10.1.1.10
- Домен — domain-name.com
### Настройка первичного DNS (разрешение передачи зоны)
Если первичный сервер уже настроен — убедитесь, что разрешена передача зоны (zone transfer).
[step num="2"]
Откройте конфигурационный файл BIND9:
[/step]
```
sudo nano /etc/bind/named.conf.local
```
[step num="3"]
Добавьте параметры allow-transfer и also-notify, указав IP вторичного DNS-сервера:
[/step]
```
zone "domain-name.com" {
type master;
file "/etc/bind/db.domain-name.com";
allow-transfer { 10.1.1.10; };
also-notify { 10.1.1.10; };
};
```
[step num="4"]
Сохраните изменения и перезапустите сервис:
[/step]
```bash
sudo systemctl reload bind9
```
## Настройка вторичного DNS-сервера (slave)
Теперь настроим вторичный сервер, который будет получать данные зоны с primary DNS.
[step num="5"]
Откройте конфигурационный файл:
[/step]
```
sudo nano /etc/bind/named.conf.local
```
[step num="6"]
Добавьте описание зоны в режиме slave:
[/step]
```
zone "domain-name.com" {
type slave;
file "db.domain-name.com";
masters { 10.1.1.9; };
};
```
[step num="7"]
Убедитесь, что параметр masters содержит IP первичного DNS-сервера. Сохраните файл и перезапустите BIND9:
[/step]
```bash
sudo systemctl reload bind9
```
## Проверка работы secondary DNS
После настройки важно убедиться, что вторичный сервер корректно получает и обслуживает DNS-зону.
[step num="8"]
Выполните проверку с любого удалённого устройства:
[/step]
```
nslookup domain-name.com 10.1.1.10
```
[step num="9"]
Замените domain-name.com на ваш домен, а IP — на адрес secondary DNS-сервера.
[/step]
Ожидаемый результат:
```yaml
Server: 10.1.1.10
Address: 10.1.1.10#53
```
```yaml
Name: domain-name.com
Address: 10.1.1.10
```
## Почему важно использовать secondary DNS
Использование вторичного DNS-сервера даёт ряд преимуществ:
- повышение отказоустойчивости инфраструктуры
- резервирование DNS-зон
- снижение нагрузки на основной сервер
- устойчивость к сбоям и атакам
Secondary DNS — обязательный элемент для проектов, где важна стабильность и доступность сервисов.
## Вывод
Настройка secondary DNS на базе BIND9 — это простой, но важный шаг в построении надёжной инфраструктуры.
С помощью передачи зон и синхронизации между серверами вы обеспечиваете бесперебойную работу сервисов даже при сбоях основного DNS.
## FAQ
### Что такое secondary DNS и зачем он нужен?
Secondary DNS — это резервный DNS-сервер, который хранит копию зоны с основного (primary) сервера. Он обеспечивает доступность домена и сервисов даже в случае отказа основного DNS.
### В чем разница между primary и secondary DNS?
Primary DNS хранит и управляет оригинальной зоной, а secondary DNS получает её копию через механизм передачи зон (zone transfer) и только обслуживает запросы без редактирования записей.
### Как работает передача зоны (zone transfer) в BIND9?
Передача зоны происходит автоматически с primary на secondary DNS через параметры allow-transfer и masters. Secondary сервер периодически синхронизирует данные зоны с основным сервером.
### Нужно ли настраивать firewall для secondary DNS?
Да, необходимо открыть порт 53 (TCP и UDP) для DNS-запросов, а также разрешить передачу зоны между серверами по TCP.
### Можно ли использовать несколько secondary DNS-серверов?
Да, рекомендуется использовать несколько secondary DNS для повышения отказоустойчивости и распределения нагрузки.
### Почему secondary DNS не обновляет зону?
Чаще всего проблема связана с неправильной настройкой allow-transfer на primary сервере или отсутствием связи между серверами. Также стоит проверить firewall и корректность IP-адресов.
### Как проверить, что secondary DNS работает корректно?
Для проверки можно использовать команды nslookup или dig, указав IP вторичного сервера. Если он возвращает актуальные записи — настройка выполнена правильно.
### Безопасна ли передача зоны DNS?
Передача зоны должна быть ограничена только доверенными IP-адресами. В противном случае злоумышленники могут получить структуру вашей DNS-зоны.
### Можно ли использовать BIND9 для production-среды?
Да, BIND9 — это один из самых популярных и надёжных DNS-серверов, широко используемый в production-инфраструктурах по всему миру.
https://serverspace.uz/support/help/postfix-dlya-virtualnyh-pochtovyh-yashhikov-ubuntu-20-04.mdВ этом руководстве мы настроим и протестируем почтовый сервер Postfix для использования виртуальных почтовых ящиков на сервере с Ubuntu 20.04
После [установки и базовой настройки, Postfix](https://serverspace.ru/support/help/postfix-ubuntu-20-04/) может отправлять и получать письма, отправленные зарегистрированным в системе пользователям. В этом руководстве мы настроим Postfix для использования виртуальных почтовых ящиков на Ubuntu 20.04.
## Настройка системы
[step num="1"]
В первую очередь требуется подготовка системы для работы виртуальных почтовых ящиков. Для этого создадим папку **virtualmailboxes** (для вашего доменного имени) — ее имя может быть произвольным. Если вы его измените, не забудьте использовать соответствующее имя папки при дальнейшей настройке. В эту папку Postfix будет добавлять файлы, соответствующие каждому виртуальному пользователю, после получения этим пользователем первого письма.
[/step]
```
sudo mkdir -p /home/virtualmailboxes/domain-name.com
```
[step num="2"]
Теперь давайте настроим пользователя **virtualmail**, группу и права на работу с этими папками.
[/step]
```bash
sudo groupadd -g 2000 virtualmail
sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m
chown -R virtualmail:virtualmail /home/virtualmailboxes
```
## Настройка Postfix
[step num="3"]
Откроем файл настройки Postfix:
[/step]
```
sudo nano /etc/postfix/main.cf
```
[step num="4"]
При обработке почты для одного домена, Postfix может работать в одном из двух режимов:
- доставлять почту пользователям системы, как было настроено ранее;
- работать с виртуальными почтовыми ящиками и доставлять почту виртуальным пользователям - что нам и требуется.
Так как для настройки первого варианта целевой домен добавляется в переменную **mydestination**, то мы удалим его оттуда и приведем к следующему виду:
[/step]
```
mydestination = localhost.com, localhost
```
[step num="5"]
Далее добавим следующие настройки в файл конфигурации:
[/step]
```
virtual_mailbox_domains = domain-name.com
virtual_mailbox_base = /home/virtualmailboxes
virtual_mailbox_maps = hash:/etc/postfix/virtualmaps
virtual_minimum_uid = 500
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
```
[step num="6"]
Добавленные строки в файле настроек
Описание добавленных настроек:
- **virtual_mailbox_domains** указывает на то, что Postfix работает в режиме виртуального почтового ящика, а также содержит в себе домен, для которого обрабатывается почта;
- **virtual_mailbox_base** указывает путь для хранения почты;
- **virtual_mailbox_maps** указывает файл со списком виртуальных пользователей;
- **virtual_minimum_uid**, **virtual_uid_maps**, **virtual_gid_maps** - настройки системного пользователя, который будет управлять почтовой папкой.
[/step]
[step num="7"]
Теперь создадим файл со списком виртуальных почтовых ящиков, путь к которому был указан в **virtual_mailbox_maps**.
```
sudo nano /etc/postfix/virtualmaps
```
Каждая строка этого файла должна содержать адрес электронной почты в формате **user@domain** и путь к файлу для хранения почты в формате **Домен/папка** (адрес и пусть разделены пробелом). Путь к файлу указывается относительно значения опции **virtual_mailbox_base** файла настроек, в нашем случае - /home/virtualmailboxes.
```
user1@domain-name.com domain-name.com/user1
user2@domain-name.com domain-name.com/user2
support@domain-name.com domain-name.com/support
```
Добавленные строки в /etc/postfix/virtualmaps
[/step]
[step num="8"]
Сохраним файл. Для применения настроек нужно выполнить две команды:
[/step]
```
postmap /etc/postfix/virtualmaps
postfix reload
```
## Теперь протестируем
[step num="9"]
Чтобы проверить корректность настройки, отправим электронное письмо виртуальному пользователю от имени другого пользователя, созданного нами, и укажем его почту в качестве обратного адреса (параметры -u и -r):
[/step]
```
sudo echo "Postfix virtual mailboxes test" | mail -r user2@domain-name.com -u user2@domain-name.com -s "Subject" user1@domain-name.com
```
[step num="10"]
Чтобы просмотреть сообщения, полученные пользователем user1, используйте команду:
[/step]
```
sudo cat /home/virtualmailboxes/domain-name.com/user1
```
[step num="11"]
Результат:
[/step]
Результат тестирования
При возникновении ошибки письмо может быть возвращено отправителю, именно поэтому мы отправляли его от имени уже созданного виртуального пользователя.
[step num="12"]
Для того, чтобы просмотреть почтовый ящик отправителя (user2), используйте команду:
[/step]
```
sudo cat /home/virtualmailboxes/domain-name.com/user2
```
Логи работы Postfix хранятся в /var/log/mail.log, сообщения об ошибках в /var/log/mail.err.
https://serverspace.uz/support/help/diagnostika-winmtr-windows-server-2019.mdWinMTR - это приложение с графическим интерфейсом для диагностики сетевого соединения с удаленным узлом на Windows машинах в Serverspace
Существует инструмент, сочетающий в себе простоту и удобство приложения с графическим интерфейсом и большие возможности, чем у классических инструментов командной строки для диагностики сетевого соединения с удаленным узлом. Имя ему WinMTR, и в данном руководстве мы рассмотрим как им пользоваться. В качестве операционной системы будет выступать Windows Server 2019.
Для начала скачайте WinMTR. Для этого необходимо перейти по ссылке [https://sourceforge.net/projects/winmtr/](https://sourceforge.net/projects/winmtr/) и нажать кнопку "**Download**".
Распакуйте скачанный архив в удобное место, откройте папку и запустите **WinMTR.exe** из папки с соответствующей Вашей операционной системе разрядности. Для Windows Server 2019 - это **x64**. Соответственно, использовать будем файл из папки **WinMTR_x64**.
Для простой диагностики сетевого соединения с удаленным узлом достаточно вписать его IP адрес или доменное имя в поле **Host** и нажать **Start**. Все параметры можно оставить по умолчанию.
После этого Вы увидите как WinMTR отправляет запросы каждую секунду и какие узлы проходят сетевые пакеты на своём пути. Для лучше точности рекомендуем подождать 1-2 минуты пока накопится некоторая статистика. Результаты можно передать для анализа техническому специалисту или в службу поддержки. Для удобства экспорта присутствуют кнопки, позволяющие как скопировать данные, так и создать текстовый или html документ.
Скриншот №1. Диагностика сетевого соединения с помощью WinMTR на Windows Server 2019.
Расшифровка имён столбцов:
- Hostname - имя промежуточного узла. Если убрать галочку "Resolve names" в настройках, то будут отображаться только IP адреса узлов.
- Nr - номер узла в маршруте.
- Loss % - соотношение потерянных пакетов и отправленных в процентах.
- Sent - количество отправленных пакетов.
- Recv - количество полученных ответов.
- Best - наименьшее время получения ответа после отправки запроса.
- Avrg - среднее время получения ответа после отправки запроса.
- Worst - наибольшее время получения ответа после отправки запроса.
- Last - время получения ответа после отправки последнего запроса.
https://serverspace.uz/support/help/neskolko-setevyh-interfejsov-v-centos-7.mdПошаговая инструкция как настроить и управлять несколькими сетевыми интерфейсами в CentOS 7. Конфигурация сетевых файлов и полезные команды
Для настройки доступности сервера через разные сетевые интерфейсы и публичные IP адреса не достаточно просто прописать параметры для каждой сетевой карты. Т.к. шлюз по умолчанию может быть только один, то и все сетевые пакеты будут уходить с сервера через него, даже если изначально были получены на другой адрес. Это минус используемой по умолчанию политики маршрутизации на основе адреса получателя. В данном руководстве мы рассмотрим процесс настройки маршрутизации на основе адреса источника (source based routing).
## Настройка сетевых интерфейсов
[step num="1"]
Если вы используете [облачный сервер Serverspace](https://serverspace.uz/services/cloud-servers.md), то настройка параметров сетевых интерфейсов происходит автоматически при их добавлении или создании сервера. В противном же случае необходимо привести параметры к приведенному ниже виду. Приведенный пример можно скопировать, подставив свои значения для имени интерфейса (eth0), шлюза (GATEWAY), MAC-адреса (HWADDR), IP адреса (IPADDR) и в некоторых случаях маски подсети (NETMASK):
[/step]
```
nano /etc/sysconfig/network-scripts/ifcfg-eth0
```
```
BOOTPROTO=none
DEFROUTE=yes
DEVICE=eth0
GATEWAY=55.66.77.1
HWADDR=aa:bb:cc:dd:ee:ff
IPADDR=55.66.77.88
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
```
[step num="2"]
Шлюз прописывается только для одного сетевого интерфейса, т.к. он должен быть только один в системе. Настройка второго интерфейса:
[/step]
```
nano /etc/sysconfig/network-scripts/ifcfg-eth1
```
```
BOOTPROTO=none
DEVICE=eth1
HWADDR=bb:cc:dd:ee:ff:gg
IPADDR=66.77.88.99
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
```
[step num="3"]
Аналогичным образом производится настройка того количества интерфейсов, которое подключено к системе.
[/step]
## Настройка source based routing
[step num="4"]
На всякий случай стоит проверить установлен ли пакет iproute и установить его, если нет.
[/step]
```bash
yum install iproute
```
[step num="5"]
Теперь откройте следующий файл:
[/step]
```
nano /etc/iproute2/rt_tables
```
[step num="6"]
Добавьте в его конец следующие строки:
[/step]
```
100 table100
101 table101
```
[step num="7"]
Запись должна быть в формате **число** пробел **название таблицы**. Оба значения могут быть произвольными. Единственное условие - их уникальность относительно значений других записей в файле. Количество строк должно соответствовать количеству сетевых интерфейсов, для которых настраиваем доступность.
[/step]
[step num="8"]
Теперь создадим файлы с параметрами таблиц маршрутизации. Нужно создать отдельный такой файл для каждого интерфейса, заменив в названии файла **eth0** на актуальное имя сетевого соединения.
[/step]
```
nano /etc/sysconfig/network-scripts/rule-eth0
```
[step num="9"]
Ниже содержимое файла, где вместо **55.66.77.88** надо поставить IP адрес сетевого интерфейса, а вместо **table100** - добавленные выше таблицы, по 1 для каждого интерфейса:
[/step]
```
from 55.66.77.88 lookup table100
```
[step num="10"]
И соответствующие файлы с правилами маршрутизации. Создаются по тем же принципам, что и файлы параметров таблиц маршрутизации.
[/step]
```
nano /etc/sysconfig/network-scripts/route-eth0
```
[step num="11"]
Нужно подставить актуальные значения **адреса подсети**, **шлюза**, **имени интерфейса** и **значение таблицы**, соответствующее значению из предыдущего файла.
[/step]
```
55.66.77.0/24 dev eth0 table table100
default dev eth0 via 55.66.77.1 table table100
```
[step num="12"]
Такие пары файлов создаются для каждого сетевого интерфейса в системе с соответствующими ему значениями.
Перезагрузим сетевую службу, чтобы изменения применились:
[/step]
```bash
systemctl restart network
```
https://serverspace.uz/support/help/openvpn-ubuntu-20-04.mdПроцесс установки OpenVPN на Ubuntu 20.04, или же на любую другую Linux машину. Первичная настройка, подключение и удаление клиентов
В этой статье описан процесс установки OpenVPN на Ubuntu 20.04.
Для начала требуется произвести вход в систему с root-правами, при этом зная публичный IP сервера, с которым устанавливается VPN.
## Установим и настроим OpenVPN
[step num="1"]
Для установки и последующей настройки пакетов, требуемых при запуске OpenVPN, будет использован соответствующий скрипт. Вам следует предоставить ему корректный IP-адрес сервера.
Загрузим данный скрипт:
[/step]
```bash
wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
```
[step num="2"]
Далее необходимо сделать его исполняемым:
[/step]
```bash
chmod +x openvpn-install.sh
```
[step num="3"]
А затем запустить:
[/step]
```
./openvpn-install.sh
```
[step num="4"]
Некоторые из параметров по умолчанию оптимальны - просто подтвердите их. Единственное, что требует проверки и возможного редактирования - публичный IP. Остальное редактируйте только в случае знания и понимания желаемого варианта установки.
[/step]
Скриншот 1. Параметры установки OpenVPN
[step num="5"]
Последним шагом укажите имя клиента и сделайте выбор - необходим ли пароль для защиты конфигурации или нет. Из соображений безопасности рекомендуем установить его.
[/step]
[step num="6"]
После завершения процесса сделаем проверку - прослушиваются ли входящие подключения.
[/step]
```
ss -tupln | grep openvpn
```
Скриншот 2. Прослушивание OpenVPN входящих подключений
## Подключим клиент
[step num="7"]
Для отображения процесса подключения клиента отлично подойдет альтернативная машина Ubuntu. Аналогично можно настроить и другие Linux-системы или же загрузить Windows: [https://openvpn.net/community-downloads/](https://openvpn.net/community-downloads/)
[/step]
[step num="8"]
В завершении, после создания конфигурации и указания пути, загрузите ее.
[/step]
```bash
scp user@vpn-server:/path/to/configuration.ovpn /home/user
```
[step num="9"]
Установим OpenVPN клиент.
[/step]
```bash
sudo apt install openvpn
```
[step num="10"]
Запустим клиент и укажем путь к конфигурации, загруженной с сервера.
[/step]
```
openvpn --config /path/to/configuration.ovpn
```
[step num="11"]
Следующая строка покажет, что подключение успешно.
[/step]
##
##
## Добавление и удаление клиентов
[step num="12"]
Для добавления / удаления клиентов, а также удаления OpenVPN необходимо вновь запустить скрипт и выбрать подходящий вариант.
[/step]
```
./openvpn-install.sh
```
[step num="13"]
Результат:
https://serverspace.uz/support/help/repozitorii-centos-8.mdПошаговая инструкция по работе с репозиториями в CentOS. Как отключить и удалить репозиторий. Как подключать дополнительные репозитории
В предустановленных репозиториях CentOS доступно сравнительно небольшое количество пакетов. При этом их версии зачастую устаревшие. Именно поэтому требуется подключать дополнительные репозитории. Как это сделать, мы расскажем в этой статье.
[step num="1"]
Для просмотра установленных репозиториев в CentOS используйте команду:
[/step]
```bash
yum repolist
```
[step num="2"]
А для вывода списка всех пакетов с их версиями (замените BaseOS на любое имя):
[/step]
```bash
yum repo-pkgs BaseOS list
```
## Установка популярных дополнительных репозиториев на CentOS 8
[step num="3"]
EPEL (Extra Packages for Enterprise Linux) - наиболее популярный из дополнительных репозиториев для CentOS 8, содержащий огромное множество пакетов. Команда, используемая для установки:
[/step]
```bash
yum install epel-release
```
[step num="4"]
Remi - другой популярный репозиторий. Его использование требует наличия EPEL.
**Будьте внимательны**: пакеты в Remi имеют имена, совпадающие с именами из официальных репозиториев, что может приводить к нежелательным обновлениям. Команда:
[/step]
```
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
```
## Установка отдельного репозитория
[step num="5"]
Рассмотрим установку отдельного репозитория на примере Mysql. Этот метод позволяет получать последние обновления намного раньше, чем они появляются в других репозиториях пакетов (BaseOS или EPEL).
Загрузите пакет:
[/step]
```bash
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
```
[step num="6"]
И установите его:
[/step]
```
rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
```
## Отключение или удаление
[step num="7"]
Чтобы не использовать репозиторий во время текущего обновления системы, используйте команду:
[/step]
```bash
yum update --disablerepo=remi-modular
```
[step num="8"]
Для отключения без удаления репозитория в системе используйте:
[/step]
```bash
yum-config-manager --disable epel
```
[step num="9"]
После этого снова включите его:
[/step]
```bash
yum-config-manager --enable epel
```
[step num="10"]
Для удаления репозитория используйте следующую команду с указанием соответствующего имени:
[/step]
```bash
yum remove epel-release
```
https://serverspace.uz/support/help/repozitorii-ubuntu-20-04.mdКак просмотреть список репозиториев в Ubuntu. Как добавить или удалить репозиторий в Ubuntu. Как установить PPA-репозиторий. Пошаговая инструкция
Установка ПО в системах Linux выполняется из репозиториев, которые по умолчанию содержат большое количество пакетов. Однако иногда необходимого софта нет в комплекте или его версия устарела. В этом случае вы можете добавить требуемый репозиторий и произвести установку из него. В статье мы подробно рассмотрим, как настроить репозитории в Ubuntu 20.04.
Будьте осторожны при выполнении таких операций, потому что такие сборки могут содержать экспериментальные версии системного ПО или даже ядро Linux. Поэтому следует пристально изучить информацию о стороннем репозитории, а также менеджер обновлений.
Ниже мы настроим репозитории на VPS сервере с Ubuntu 20.04, но инструкция подходит для всех актуальных версий Ubuntu.
## Список репозиториев в Ubuntu
[step num="1"]
**Шаг 1**. Просмотреть все репозитории:
[/step]
```
nano /etc/apt/sources.list
```
[step num="2"]
**Шаг 2**. Они также могут находиться в одном из файлов в папке /etc/apt/sources.list.d/
[/step]
[step num="3"]
**Шаг 3**. Чтобы отключить один репозиторий, добавьте следующий комментарий в его строку:
[/step]
```
# deb http://archive.ubuntu.com/ubuntu focal multiverse
```
## Добавление репозиториев в Ubuntu
[step num="4"]
**Шаг 4**. Чтобы добавить репозиторий, необходимо узнать его адрес у разработчика ПО и использовать команду **apt-add-repository** с подобным синтаксисом:
[/step]
```bash
apt-add-repository 'deb http://repository_address version branch'
```
[step num="5"]
**Шаг 5**. Иногда требуется сначала установить ключ GPG. В качестве примера возьмем MariaDB.
[/step]
```bash
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
```
[step num="6"]
**Шаг 6**. Команда, используемая для добавления репозитория:
[/step]
```
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.5/ubuntu focal main'
```
## Удаление репозиториев
[step num="7"]
**Шаг 7**. Команда, используемая для удаления:
[/step]
```
add-apt-repository --remove 'deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.5/ubuntu focal main'
```
## PPA-репозиторий в Ubuntu
[step num="8"]
**Шаг 8**. Во время установки PPA-репозитория система автоматически распознает репозиторий и скачивает необходимые ключи.
[/step]
```bash
apt-add-repository ppa:repository/ppa
```
[step num="9"]
**Шаг 9**. Для удаления PPA-репозитория:
[/step]
```bash
apt-add-repository --remove ppa:repository/ppa
```
[step num="10"]
**Шаг 10**. После редактирования списка репозиториев не забудьте обновить список пакетов.
[/step]
```bash
apt update
```
https://serverspace.uz/support/help/linux-active-directory.mdВ этой статье описан процесс добавления Linux-машины (Ubuntu) в домен Windows Active Directory. Установка пакетов, подготовка и настройка DNS
В этой статье будет описан процесс добавления Linux-машины (Ubuntu 20.04) в домен Windows AD.
## Шаг 1. Установка пакетов и подготовка
[step num="1"]
Сначала обновите пакеты.
[/step]
```bash
sudo apt updatesudo apt upgrade
```
[step num="2"]
После этого установите требуемые пакеты.
[/step]
```bash
sudo apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
```
[step num="3"]
Далее мы настроим все инструменты. Вам требуется знать:
- Домен: office.local
- IP DNS-сервера: 192.168.0.1
- IP второго DNS-сервера: 192.168.0.2
[/step]
## Шаг **2. Настройка DNS**
[step num="4"]
Откройте конфигурационный файл **netplan:
**[/step]
****
```
sudo nano /etc/netplan/*.yaml
```
[step num="5"]
Если вы видите там "dhcp4: true", то есть ваш DHCP-сервер настроен корректно, переходите к следующему шагу. Если вы настраиваете параметры сетевого подключения вручную, ознакомьтесь с примером настройки:
[/step]
```
network:ethernets:enp0s3:addresses:- 192.168.0.15/24gateway4: 192.168.0.10nameservers:addresses: [192.168.0.1, 192.168.0.2]search:- office.localoptional: trueversion: 2
```
- addresses — это IP, назначаемый сетевой карте;
- gateway4 — IP роутера;
- nameservers — DNS-сервера;
- search — целевой домен.
[step num="6"]
Примените изменения.
[/step]
```
sudo netplan apply
```
## Шаг **3. Обнаружение домена, присоединение к нему и проверка результата.**
[step num="7"]
В первую очередь требуется обнаружить домен:
[/step]
```
realm discover office.local
```
[step num="8"]
Вы увидите что-то подобное. Это означает, что настройки сети верны и машина получила ответ от домена. Если нет, вам необходимо проверить настройки сети, домен и работоспособность DNS.
[/step]
```
office.localtype: kerberosrealm-name: OFFICE.LOCALdomain-name: office.localconfigured: no...
```
[step num="9"]
Затем присоединитесь к домену AD. Замените **admin1** на имя администратора и укажите пароль.
[/step]
```
realm join -U admin1 office.localPassword for admin1:
```
[step num="10"]
Проверьте, возможен ли прием информации о пользователе AD. Замените **user1** на имя пользователя вашего домена.
[/step]
```
id user1@office.localuid=687821651(user1@office.local) gid=687800512(user1@office.local) groups=687800512(domain users@office.local)
```
## Шаг **4. Последние настройки и авторизация.**
[step num="11"]
Необходимо произвести настройку, чтобы в будущем каждый раз не добавлять имя домена к имени пользователя.
[/step]
```
sudo nano /etc/sssd/sssd.conf
```
[step num="12"]
Измените значение **use_fully_qualified_names** на **False**. Перезагрузите и проверьте:
[/step]
```bash
sudo systemctl restart sssdid useruid=687821651(user1@office.local) gid=687800512(user1@office.local) groups=687800512(domain users@office.local)
```
[step num="13"]
Теперь нужно настроить создание домашних каталогов для пользователей AD при входе в систему.
[/step]
```
sudo nano /etc/pam.d/common-session#add this line in the end of filesession optional pam_mkhomedir.so skel=/etc/skel umask=077
```
[step num="14"]
Войдите в систему как пользователь AD.
[/step]
```
su – userPassword:Creating directory '/home/user1@office.local'.user1@ubuntu-server:~$
```
Это означает, что вы успешно вошли в систему как пользователь AD.
[step num="15"]
Также вы можете разрешить авторизацию для некоторых пользователей и групп AD или же ограничить других. В приведенном ниже примере настроен запрет для всех пользователей, кроме **user0**, **user1** и группы **Main Admins**.
[/step]
```
sudo realm deny –allsudo realm permit user0@office.local user1@office.localsudo realm permit -g 'Main Admins'
```
[step num="16"]
Настройка пользователей AD для получения root-прав такая же, как и для локальных, но выполняется в другом файле.
[/step]
```
sudo nano /etc/sudoers.d/admins
```
[step num="17"]
Добавьте к нему нужные строки. Например:
[/step]
```
user ALL=(ALL) ALL%Domain\\ Admins ALL=(ALL) ALL
```
https://serverspace.uz/support/help/postfix-ubuntu-20-04.mdРассмотрим установку и базовую настройку Postfix и сервера Ubuntu для него. Подготовка. Настройка сервера. Установка Postfix.
Postfix — это довольно распространенный почтовый сервер, популярность которого объясняется его функциональностью для большинства задач и простотой настройки. В этой статье будет рассмотрена установка и базовая настройка Postfix и сервера для него.
## Подготовка
Вам понадобится сервер с предустановленной ОС Ubuntu.
[step num="1"]
Сервер должен иметь статический общедоступный IP-адрес, а также вам требуется знать доменное имя.
В первую очередь необходимо настроить записи DNS.
Для почтового сервера обычно используется домен 3-го уровня. В качестве примера мы будем использовать **mail.domain-name.com**. Вам требуется заменить **domain-name.com** своим доменным именем. Доменное имя 3-го уровня может быть произвольным.
Записи DNS обычно можно настроить в панели управления регистратора доменных имен или на вашем DNS-сервере. Добавьте A-запись DNS для вашего домена с именем **mail** и "**target**" - IP-адрес будущего почтового сервера.
[/step]
```
mail A xxx.xxx.xxx.xxx
```
[step num="2"]
Добавьте MX-запись DNS для корневого домена со значением, равным доменному имени почтового сервера:
[/step]
```
@ MX mail.domain-name.com
```
[step num="3"]
Если в результате служба возвращает ошибку, постарайтесь ничего не использовать вместо **@**.
[/step]
## Настроим сервер
[step num="4"]
При выбранном доменном имени 3-го уровня **mail.domain-name.com** имя хоста будет **mail**.
[/step]
```
sudo hostnamectl set-hostname mail
```
[step num="5"]
Далее откройте файл **hosts**.
[/step]
```
sudo nano /etc/hosts
```
[step num="6"]
Добавьте строку для этого сервера с его IP-адресом, вашим доменом и именем хоста. Эта запись должна быть размещена непосредственно под записью для **localhost**.
[/step]
```
xxx.xxx.xxx.xxx domain-name.com mail
```
## Установим Postfix
[step num="7"]
Установите Postfix и почтовый пакет **mailutils**.
[/step]
```bash
sudo apt install postfix mailutils
```
[step num="8"]
Во время установки вам будет предложено указать параметры в интерактивном режиме. Установите в **mail server configuration** значение **Internet Site**.
[/step]
Скриншот 1. Установка типа конфигурации почтового сервера.
[step num="9"]
**System mail name **должно совпадать с доменным именем, для которого настраивается почтовый сервер. В нашем случае это **domain-name.com**.
[/step]
Скриншот 2. Зададим системную почту.
## Протестируем
[step num="10"]
Теперь почтовый сервер Postfix готов к работе. Протестируйте его и отправьте первое письмо. Поместите свою почту в следующую команду и запустите ее:
[/step]
```
echo "Postfix test" | mail -s "Subject" mail@server.com
```
[step num="11"]
Поскольку шифрование, DKIM и прочее еще не настроено, ваше письмо, скорее всего, попадет в папку "Спам". Некоторые почтовые серверы (к примеру, gmail.com) вообще не примут письмо - вернемся к исправлению этого позже. Сейчас же вы можете ответить на это письмо в своем почтовом ящике и увидеть ответ на почтовом сервере.
[/step]
```
mail
```
[step num="12"]
Результат:
[/step]
```
"/var/mail/root": 1 message 1 new
>N 1 Sender Name Wed Mar 17 04:32 66/2877 RE: Subject
?
```
[step num="13"]
Введите **1** и увидите ваш ответ.
[/step]
Следующий шаг — [настройка Postfix для использования виртуальных почтовых ящиков](https://serverspace.uz/support/help/postfix-dlya-virtualnyh-pochtovyh-yashhikov-ubuntu-20-04/).
https://serverspace.uz/support/help/install-mysql-debian-10.mdПроцесс установки сервера MySQL в Debian. Добавление репозитория MySQL. Установка сервера MySQL и проверка статуса работы сервера.
В этом руководстве описан процесс установки сервера MySQL в Debian 10.x., который также может работать с другими системами Linux (например, Ubuntu).
В Serverspace вы можете создать сервер с уже установленным приложением MySQL.
Ниже представлен пошаговый процесс для самостоятельной установки MySQL.
## **Шаг 1**. Добавление репозитория MySQL
[step num="1"]
Прежде всего обновите пакеты:
[/step]
```bash
apt update
apt install gnupg
```
Скриншот 1. Загрузка MySQL
[step num="2"]
Затем загрузите MySQL [с официального сайта](https://dev.mysql.com/downloads/repo/apt/) или используйте wget:
[/step]
```bash
wget https://dev.mysql.com/get/mysql-apt-config_x.x.x-x_all.deb
```
где **x.x.x-x** - версия MySQL:
Например:
```bash
wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
```
[step num="3"]
Установите .deb:
[/step]
```
sudo dpkg -i mysql-apt-config_x.x.x-x_all.deb
```
где **x.x.x-x** - версия MySQL.
Например:
```
sudo dpkg -i mysql-apt-config_0.8.25-1_all.deb
```
[step num="4"]
При установке пакета выберите продукт и версию MySQL, которую будете использовать; а также инструменты, коннекторы и preview packages.
После выбора вы переместитесь в предыдущее меню - нажмите **Ok**:
[/step]
Скриншот 2. Выбор версии
[step num="5"]
Обновите репозиторий:
[/step]
```bash
apt-get update
```
Пакет для установки сервера - **mysql-community-server**. Версия - та же, что выбиралась в установщике.
## **Шаг 2**. Установка сервера MySQL
[step num="6"]
Для установки MySQL используйте команду:
[/step]
```bash
sudo apt-get install mysql-community-server
```
Скриншот 3. Установка
[step num="7"]
Когда **apt** завершит загрузку, установщик запросит root-пароль:
[/step]
Скриншот 4. Ввод root-пароля
[step num="8"]
У вас есть два варианта на выбор:
- Оставить поле пустым: сервер будет использовать аутентификацию через сокеты unix. Это означает, что вы сможете получить доступ к серверу только как пользователь root или как пользователь с sudo;
- Установить пароль: метод аутентификации будет одинаковым для всех пользователей.
Если вы выберете второй вариант, установщик запросит выбор плагина аутентификации - надежно зашифрованный пароль (MySQL 8.x) или устаревший метод (MySQL 7.x и ранее). Вы должны выбрать метод, совместимый с вашим клиентом / программой. Как только вы выберете все параметры, процесс установки будет завершен, и служба запустится автоматически:
[/step]
Скриншот 5. Выбор плагина аутентификации по умолчанию
[step num="9"]
Теперь проверьте статус службы с помощью **systemctl**:
[/step]
```bash
systemctl status mysql.service
```
Скриншот 6. Проверка статуса службы
[step num="10"]
Если вы видите статус **active**, это означает, что сервер работает без ошибок. Для выхода нажмите **Q** или **Ctrl + C**.
[/step]
[step num="11"]
Затем запустите команду от имени root-пользователя для безопасной настройки службы SQL:
[/step]
```
mysql_secure_installation
```
[step num="12"]
Программа задаст вам вопросы, на которые необходимо ответить Да (кнопка Y / Y) или Нет (любая другая):
[/step]
Скриншот 7. Запуск mysql_secure_installation
[step num="13"]
Для разрешения удаленного доступа, вам потребуется отредактировать файл **mysqld.conf**:
[/step]
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
Скриншот 8. Содержимое файла конфигурации
[step num="14"]
В конце файла добавьте **bind_address** со значением локального хоста:
[/step]
```
bind-address = 127.0.0.1
```
[step num="15"]
Сохраните файл и перезапустите службу с помощью **systemctl**:
[/step]
```bash
systemctl restart mysql
```
[step num="16"]
**Важно:** не забудьте открыть порт MySQL (желательно указать стандартный порт MySQL).
[/step]
Если вы используете **ufw**:
```
ufw allow $yoursqlport
```
где вместо **yoursqlport** пропишите свой порт MySQL
Если вы используете **iptables**:
```
iptables –A INPUT –p tcp –dport $yoursqlport –j ACCEPT
```
где вместо **yoursqlport** пропишите свой порт MySQL
https://serverspace.uz/support/help/podklyuchenie-servera-pfsense-2-4-k-seti.mdПошаговое описание процесса подключения виртуального сервера PFSense 2.4 к сети с использованием командной строки и веб интерфейса
Инструкция по подключению сервера с операционной системой PFSense 2.4 к сети с использованием командной строки и веб интерфейса.
Рассмотрим подключение виртуального сервера PFSense на примере изолированной сети. Для начала требуется подключить сервер к изолированной сети в панели управления. В вертикальном меню справа кликните **Сети**, в списке сетей выберите нужную (или создайте новую) и подключите сервер. При подключении, сервер должен быть выключен.
**Подключение через командную строку**
Включите сервер и откройте терминал под пользователем root.
**DHCP Выключен:**
В пользовательском меню pfSense введите команду 1 (Assign Interfaces).
```
Enter an option: 1
```
Для подтверждения настройки сети введите y.
```
Valid interfaces are:
vmx0 00:50:56:01:d2:13 (up) VMware VMXNET3 Ethernet Adapter
vmx1 00:50:56:01:d2:16 (down) VMware VMXNET3 Ethernet Adapter
Do VLANs need to be set up first?
If VLANs will not be used, or only for optional interfaces, it is typical to say no here and use the webConfigurator to configure VLANs later, if required.
Should VLANs be set up now [y|n]? y
```
В некоторых случаях возможна опциональная настройка имени родительского интерфейса для VLAN. Если вы не знаете, какое значение указывать - нажмите Enter.
```
VLAN Capable interfaces:
vmx0 00:50:56:01:d2:13 (up)
vmx1 00:50:56:01:d2:16
Enter the parent interface name for the new VLAN (or nothing if finished):
```
Введите имя внешнего интерфейса. Данный интерфейс уже настроен.
```
If the names of the interfaces are not known, auto-detection can be used instead. To use auto-detection, please disconnect all interfaces before pressing 'a'; to begin the process.
Enter the WAN interface name or 'a' for auto-detection
(vmx0 vmx1 or a): vmx0
```
Введите имя локального интерфейса. Далее будет выполнена настройка данного интерфейса.
```
Enter the LAN interface name or 'a' for auto-detection
NOTE: this enables full Firewalling/NAT mode.
(vmx1 a or nothing if finished): vmx1
```
Для подтверждения назначения интерфейсов нажмите y.
```
The interfaces will be assigned as follows:
WAN -> vmx0
LAN -> vmx1
Do you want to proceed [y|n]? y
```
После успешного сохранения настроек, в командной строке отобразится следующая запись.
```
Writing configuration...done.
One moment while the settings are reloading... done!
VMware Virtual Machine - Netgate Device ID: XXXXXXXXXXXXXXXXXXXX
*** Welcome to pfSense 2.4.2-RELEASE-p1 (amd64) on pfsense24 ***
WAN (wan) -> vmx0 -> v4: XXX.XXX.XXX.XXX/24
LAN (lan) -> vmx1 ->
```
Для установки IP-адреса LAN интерфейсу введите команду 2 (Set interface(s) IP address).
```
Enter an option: 2
```
Введите номер интерфейса, который требуется настроить.
```
Available interfaces:
1 - WAN (vmx0 - static)
2 - LAN (vmx1)
Enter the number of the interface you wish to configure: 2
```
Введите локальный IP-адрес сети, указанный в панели управления.
```
Enter the new LAN IPv4 address. Press for none:
> 10.0.0.2
```
Укажите маску подсети.
Примечание: маска подсети определяет неизменную часть адреса и влияет на ёмкость сети (количество доступных адресов). Указывается в виде количества старших бит, не меняющихся от адреса к адресу. К примеру, 24 эквивалентно записи "255.255.255.0" и означает 256 доступных (254 рабочих) адреса.
```
Subnet masks are entered as bit counts (as in CIDR notation) in pfSense.
e.g. 255.255.255.0 = 24
255.255.0.0 = 16
255.0.0.0 = 8
Enter the new LAN IPv4 subnet bit count (1 to 31):
> 24
```
На следующих двух шагах нажмите Enter.
```
For a WAN, enter the new LAN IPv4 upstream gateway address.
For a LAN, press for none:
>
Enter the new LAN IPv6 address. Press for none:
>
```
На вопрос о включении DHCP-сервера в локальной сети нажмите n.
```
Do you want to enable the DHCP server on LAN? (y/n) n
```
Для завершения нажмите Enter.
```
The IPv4 LAN address has been set to 10.0.0.2/24
You can now access the webConfigurator by opening the following URL in your web browser:
http://10.0.0.2/
Press to continue.
```
После успешного присвоения IP-адреса отобразится следующая запись.
```
WAN (wan) -> vmx0 -> v4: XXX.XXX.XXX.XXX/24
LAN (lan) ->; vmx1 -> v4: 10.0.0.2/24
```
**DHCP Включен****:**
Для динамического получения IP-адреса, необходимо выбрать опцию 8 (Shell).
```
Enter an option: 8
```
Выполните команду dhclient с указанием имени локального интерфейса.
```
dhclient vmx1
```
Для просмотра полученного IP-адреса и настроек, воспользуйтесь утилитой ifconfig.
**Подключение через веб интерфейс**
Перейдите в панель управления интерфейса pfSense, введите логин и пароль, указанные под адресом.
Для добавления LAN-интерфейса необходимо выбрать в горизонтальном меню **Interfaces, **затем** Assignments**.
В появившемся окне выбрать требуемый интерфейс, нажать кнопку **Add**, сохранить выбранный параметр нажатием кнопки** Save**.
Для настройки интерфейсов в горизонтальном меню выбрать **Interfaces**, затем **LAN**.
В появившемся окне выбрать **Enable interface**.
**DHCP ****выключен****:**
В поле** IPv4 Configuration Type** выбрать **Static IPv4**.
В поле** IPv4 Address** указать локальный адрес сети и маску. Сохранить внесенные изменения, нажав кнопку **Save** внизу страницы.
Примечание: маска подсети определяет неизменную часть адреса и влияет на ёмкость сети (количество доступных адресов). Указывается в виде количества старших бит, не меняющихся от адреса к адресу. К примеру, 24 эквивалентно записи "255.255.255.0" и означает 256 доступных (254 рабочих) адреса.
Применить сохраненные изменения нажав **Apply Changes**.
**DHCP включен:**
В поле** IPv4 Configuration Type** выбрать **DHCP**. Сохранить внесенные изменения, нажав кнопку **Save**, затем** Apply Changes**.
Присвоенный IP-адрес можно увидеть внизу на главной странице справа от системной информации.
https://serverspace.uz/support/help/kak-ustranit-nepoladki-replikaczii-ad-s-pomoshhyu-repadmin.mdЭта инструкция поможет вам диагностировать неисправности репликации в Active Directory с помощью Repadmin и просмотреть общее состояние репликации
## Что такое Repadmin?
**Repadmin** — это cmd-приложение для диагностики проблем с репликацией AD. С помощью Repadmin можно легко просмотреть топологию репликации для каждого контроллера домена и использовать эти знания, чтобы вручную изменить ее и инициировать репликацию между контроллерами. С помощью Repadmin можно легко проверить метаданные репликации и векторы релевантности (up-to-dateness (UTDVEC)).
Repadmin.exe является встроенной функцией в среде Windows Server, начиная с версии 2008. Она поставляется с ролью AD Directory Services, а также может быть настроена в клиентских ОС, таких как Windows 10 с RSAT.
## Список команд
**Repadmin.exe** имеет множество команд, давайте остановимся на самых популярных:
- **/syncall **- используется для синхронизации определенного DC с другими;
- **/prp - **если у вас есть политика репликации паролей (PRP), эта команда помогает управлять ею;
- **/queue - **показывает текущую очередь репликации;
- **/replicate - **эта команда помогает выполнить репликацию с одного DC на другой;
- **/replsingleobj - **эта команда удобна, если вам нужно реплицировать только один определенный объект между доменными контроллерами;
- **/replsummary - **показывает отчет о текущем состоянии репликации и доступности AD;
- **/showattr - **используется, когда вам нужно просмотреть атрибуты объекта;
- **/showbackup - **этот параметр отображает время последнего резервного копирования;
- **/showrepl - **если вам нужно знать текущее состояние репликации, используйте этот параметр.
## Как просмотреть общее состояние репликации
Для того чтобы смотреть состояние репликации у вас она должна быть настроена, как минимум, между двумя доменными контроллерами. Начнем с общего состояния репликации, запустите cmd.exe (**start->run->cmd.exe**) и введите следующую команду:
```
repadmin /replsummary
```
В результате вы увидите все сбои репликации, которые существуют в вашей среде AD.
## Как принудительно выполнить репликацию
Предположим, у вас есть сбои в репликации, и вам нужно принудительно выполнить репликацию после устранения сбоя в сети. В командной строке (**cmd.exe**) с админскими правами на любом DC запустите:
```
repadmin.exe /syncall /Aped
```
В дополнение к команде **/syncall** у нас есть несколько флагов, которые позволят синхронизировать все разделы (/A), использовать push-уведомления для того, чтобы админ мог прервать выполнение команды на каждом этапе (/p), через все сайты Active Directory (/e) используя имена хостов (/d).
## Как управлять входящей и исходящей репликацией
Вы можете отключить входящую и/или исходящую репликацию с возможностью повторного включения позже. Для этого выполните следующие команды в командной строке, запущенной под администратором (**cmd.exe**):
```
repadmin.exe /options DC01 +DISABLE_INBOUND_REPL
```
Отключает входящую репликацию на контроллере домена DC01
```
repadmin.exe /options DC01 +DISABLE_OUTBOUND_REPL
```
Отключает исходящую репликацию на контроллере домена DC01
```
repadmin.exe /options DC01 -DISABLE_INBOUND_REPL
```
Включает входящую репликацию на контроллере домена DC01
```
repadmin.exe /options DC01 -DISABLE_OUTBOUND_REPL
```
Включает исходящую репликацию на контроллере домена DC01.
Например, опция отключения исходящей репликации — это хороший способ выполнить обновление схемы без необходимости перестраивать весь лес Active Directory.
https://serverspace.uz/support/help/ustanovka-docker-compose-na-centos-7.mdВ этой статье разобран процесс установки Docker Compose на существующий Docker хост и описан процесс развертывания контейнеров на ОС CentOS
**Docker Compose** — это инструмент командной строки для определения и настройки многоконтейнерных приложений Docker. Иначе говоря, Docker Compose используется для связывания нескольких контейнеров и развертывания приложения из одного файла. Инструмент Docker Compose может использоваться в среде разработки, тестирования и подготовки, и, кроме того, может быть легко использован в рабочем процессе CI (Continuous Integration).
Предположим, вам требуется развернуть сайт на WordPress внутри контейнера — для его развертывания потребуется один контейнер веб-сервера (Apache/Nginx) и один контейнер базы данных (MySQL/MariaDB). С помощью Docker Compose есть возможность легко включить несколько контейнеров в файл docker-compose, а также любую другую конфигурацию, которая требуется для полноценной работы приложения.
В этой инструкции будет разобран процесс установки Docker Compose на существующий хост, содержащий Docker, а также будет затронута тема развертывания контейнеров командой docker-compose.
Предполагается, что хост с Docker уже настроен и работает. Перейдем к этапам установки Docker Compose Tool.
**Вы можете воспользоваться [инструкцией](https://serverspace.uz/support/help/ustanovka-docker-na-ubuntu-20-04/) или создать сервер в Serverspace с уже установленным приложением Docker.**
## Этапы установки Docker Compose
Отредактируем docker файл. Для этого выполним следующие команды:
```
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
```
```
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
```
```bash
yum -y install java
```
```
/bin/bash
```
```
cd
```
Зайдите на свой хост, содержащий Docker, и по порядку запустите команды, перечисленные ниже:
```bash
yum install epel-release -y
```
```bash
yum update -y
```
```bash
yum install python3-pip
```
```bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```
## Примечание
Для стабильной работы Docker Compose рекомендуем использовать менеджер пакетов pip версии 6.0 или выше. Если версия pip ниже 6.0, выполните команду для его обновления:
```bash
pip install --upgrade pip
```
Установите Docker:
```bash
sudo yum install docker
```
Проверьте версию Docker командой:
```bash
docker-compose --version
```
Результат:
```bash
docker-compose version 1.23.2, build 1110ad01
```
## Развертывание контейнеров инструментом Docker Compose
Создайте каталог и в нем же файл compose с именем "docker-compose.yml" или "docker-compose.yaml". В файле compose мы определим сервисы для приложений и образы контейнеров.
Прежде чем приступить к созданию compose-файла, скачайте образы контейнеров WordPress и MySQL:
```bash
docker pull wordpress
```
```bash
docker pull mysql
```
```bash
docker image ls
```
Результат:
```bash
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest d44c65e8e9a3 9 days ago 540MB
mysql latest 9b51d9275906 3 weeks ago 547MB
```
Затем создайте каталог с именем "siteonwordpress":
```
mkdir siteonwordpress
```
```
cd siteonwordpress/
```
Далее создайте файл docker-compose.yml с перечисленным содержимым:
```yaml
version: '3.0'
services:
frontserver:
image: wordpress
container_name: wp_cont
ports:
- 8080:80
links:
- databaseserver:mysql
environment:
WORDPRESS_DB_PASSWORD: erf6UiwkzjTH
databaseserver:
image: mysql:latest
container_name: wordpressdb_cont
environment:
MYSQL_ROOT_PASSWORD: erf6UiwkzjTH
```
В приведенном выше файле compose были определены два сервиса с именами "frontserver" и "databaseserver". Для этих сервисов также указаны образы контейнера. Помимо этого были определены переменные среды и упомянуты пароли root mysql и db wordpress. Обращаем внимание, что отступы осуществляются пробелами, в соответствии с YAML-разметкой.
Давайте развернем наше приложение, то есть сайт на WordPress, с помощью команды:
```bash
docker-compose up
```
## Примечание
Выполнять запуск "docker-compose up" следует из каталога, в котором находится файл docker-compose.
Команда выше развернет два контейнера с именами "wp_cont" и "wordpressdb_cont". Попробуйте получить доступ к своему сайту WordPress, используя следующий URL:
```
http://{dockerserver-ip}:8080
```
Следуйте инструкциям на экране, чтобы завершить установку WordPress. Это подтверждает, что сайт WordPress был успешно развернут внутри контейнеров благодаря использованию утилиты docker-compose.
Далее рассмотрим параметры команды "docker-compose".
## Вывод контейнеров, развернутых для нашего приложения
Для вывода выполните следующую команду:
```bash
docker-compose ps
```
```
Name Command State Ports
--------------------------------------------------------------------------------
wordpressdb_cont docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
wp_cont docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
```
## Остановка и запуск контейнеров и их служб
Можно нажать Ctrl+C во время выполнения "docker-compose up" или выполнить команду:
```bash
docker-compose stop
```
```
Stopping wp_cont ... done
Stopping wordpressdb_cont ... done/code>
```
Выполните команду "docker-compose start", чтобы запустить контейнеры и их службы:
```bash
docker-compose start
```
```
Starting databaseserver ... done
Starting frontserver ... done
```
## Просмотр журналов контейнеров
Чтобы просмотреть журналы контейнеров и журналы определенного контейнера, запустите команду "docker-compose logs {service-name}":
```bash
docker-compose logs
```
```bash
docker-compose logs databaseserver
```
## Остановить и удалить контейнеры вместе с созданной сетью
С помощью команды "docker-compose down" можно останавливать и удалять контейнеры, выполняя всего одну команду:
```bash
docker-compose down
```
```
Stopping wp_cont ... done
Stopping wordpressdb_cont ... done
Removing wp_cont ... done
Removing wordpressdb_cont ... done
Removing network compose_default
```
Дополнительные параметры можно узнать в разделе помощи, выполнив команду "docker-compose –help".
https://serverspace.uz/support/help/chto-takoe-docker.mdРассказываем простыми словами о преимуществах использования контейнеров Docker для разработки, тестирования и развертывания приложений
**Docker** — это инструмент, представляющий собой систему управления контейнерами, официальный релиз которого состоялся в 2013 году. Такая система крайне полезна при масштабировании, обновлении и особенно при миграции на другой сервер.
Docker функционирует на программном языке Go. Несмотря на то, что изначально инструмент мог использоваться исключительно на оборудовании, работающем на операционной системе Linux, теперь он совместим также и с устройствами на Windows и macOS.
Говорить о нишевости проекта не приходится. За относительно краткий срок он стал популярен среди широкого круга специалистов и уже используется для целого ряда решений, а тенденция к обретению еще большей популярности ожидается и в будущем. Одна из главных причин этого — Docker Hub, репозиторий предварительно созданных образов контейнеров со свободным доступом. Заполняют его не только фрилансеры, но и энтузиасты, увлекающиеся программированием. Официальные разработчики также оставляют в открытом доступе десятки готовых приложений. К примеру, сейчас там можно найти Jenkins, Redmine, GitLab, MySQL, Apache, Elasticsearch и множество других решений.
**Вы можете воспользоваться [инструкцией](https://serverspace.uz/support/help/ustanovka-docker-na-ubuntu-20-04/) или создать сервер в Serverspace с уже установленным приложением Docker.**
## Как работать с Docker
Система проста и удобна в использовании. В качестве примера рассмотрим запуск WordPress с нуля. C помощью Docker для начала работы с этой системой управления сайтами достаточно выполнить команды:
```bash
docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=wpmsqlpsswd -d mysql:5.7
docker run --name my-wordpress --link wp-mysql:mysql -d -p 80:80 wordpress
```
После чего открыть в веб-обозревателе страницу http://localhost, где вместо localhost следует указать внешний IP-адрес вашего сервера, и приступать к настройке WordPress.
## Структура Docker
При работе с экосистемой пользователи на постоянной основе сталкиваются с тремя основополагающими терминами:
- **Image (образ)**. Под этим понимают макет, использующийся для создания новых контейнеров. Фактически это слепок файловой системы с программным кодом и окружением внутри.
- **Registry (реестр)**. Реестром в экосистеме называют Docker Hub, о котором мы рассказывали ранее.
- **Container (контейнер)**. Готовое к использованию запущенное приложение.
## Преимущества использования Docker
_Удобство_ — вот за что Docker полюбился пользователям. Установка дополнительного программного обеспечения или создание готового приложения с использованием Docker несравненно быстрее, нежели настройка вручную. Это позволяет оптимизировать работу команды и многократно снизить временные затраты.
Допустим, вам понадобилось установить Github, Jenkins, Redmine или что-либо еще. Вместо того, чтобы собственноручно заниматься настройкой среды, установкой пакетов и веб-сервера, можно запустить контейнер, где огромная часть работы уже сделана за вас.
Репозиторий [hub.docker.com](https://hub.docker.com/) содержит сотни тысяч таких программ. Все они устанавливаются вместе с требуемыми для работы библиотеками, что исключает возможность конфликта с другим ПО.
Использовать Docker можно и для переноса собственного приложения в другую среду. Для этого нужно просто загрузить ваш контейнер в репозиторий и выгрузить его на новый сервер.
https://serverspace.uz/support/help/lets-encrypt-ubuntu-20-04.mdВ этой статье мы расскажем, как получить бесплатный SSL-сертификат Let's Encrypt. Установка SSL Let's Encrypt на сервер Ubuntu по шагам
Шифрование SSL / TLS является неотъемлемой частью сетевой инфраструктуры. Все web и почтовые сервера позволяют включить шифрование данных. В этой статье мы расскажем, как получить бесплатный SSL-сертификат Let's Encrypt.
Как получить бесплатный сертификат Let's Encrypt:
- Установите пакет "Let's Encrypt";
- Используйте опцию автономного сервера для получения SSL-сертификата "Let's Encrypt";
- Используйте автоматическую установку SSL-сертификата на web-серверах nginx и Apache;
- Создайте и установите Wildcard-сертификат "Let's Encrypt".
Теперь рассмотрим подробно каждый шаг. В качестве начальных условий вам потребуется доменное имя. Его A-запись DNS должна содержать публичный адрес вашего сервера. Если брандмауэр включен, откройте доступ для трафика HTTP и HTTPS.
```
sudo ufw allow 80
sudo ufw allow 443
```
## Шаг 1. Установка пакета "Let's Encrypt"
[step num="1"]
Процесс установки пакета "Let's Encrypt" со всеми его зависимостями предельно прост - достаточно ввести команду:
[/step]
```bash
sudo apt install letsencrypt
```
[step num="2"]
Вместе с пакетом "Let's Encrypt" эта команда также устанавливает утилиту "certbot.timer" для автоматического продления сертификата. Она проверяет действительность SSL-сертификатов в системе два раза в день и продлевает те, срок действия которых истекает в следующие 30 дней. Для проверки запуска утилиты введите:
[/step]
```bash
sudo systemctl status certbot.timer
```
Существуют разные конфигурации и условия получения сертификата. Далее рассмотрим некоторые из них.
## Шаг 2. Автономный сервер для получения SSL-сертификата "Let's Encrypt"
[step num="3"]
Самый простой способ получить SSL-сертификат - использовать отдельную опцию в Certbot. Замените domain-name.com на свое доменное имя, выполните команду и следуйте инструкциям:
[/step]
```
sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com
```
[step num="4"]
Параметр **certonly** означает, что сертификат будет получен только без установки на каком-либо web-сервере, **standalone **позволяет запускать собственный web-сервер для аутентификации, **agree-tos** - принятие ACME соглашения о подписке на сервер, являющемся предварительным условием, а **preferred-challenges http** - выполнение авторизации с использованием HTTP.
[/step]
## Шаг 3. Автоматическая установка SSL-сертификата на web-серверах nginx и Apache
[step num="5"]
Certbot может автоматически устанавливать сертификат на web-серверы nginx и Apache. Для этого вам необходимо установить и выбрать подходящий дополнительный пакет для вашего сервера.
[/step]
```bash
apt install python3-certbot-nginx
apt install python3-certbot-apache
```
[step num="6"]
Команда для nginx:
[/step]
```
sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com
```
[step num="7"]
Для Apache:
[/step]
```
sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com
```
[step num="8"]
Следуйте инструкциям, и Certbot установит SSL-сертификат.
[/step]
## Шаг 4. Wildcard-сертификат "Let's Encrypt"
[step num="9"]
Единственный возможный метод создания Wildcard-сертификата - это DNS. В параметре d необходимо указать как пустой домен, так и wildcard.
[/step]
```
sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com
```
[step num="10"]
После этого поместите указанную запись TXT на свой DNS-сервер и нажмите "continue".
[/step]
[step num="11"]
Если все в порядке, вы увидите путь хранения вашего нового Wildcard-сертификата и другую информацию.
https://serverspace.uz/support/help/neskolko-setevyh-interfejsov-v-centos-8.mdНастройка доступности нескольких сетевых интерфейсов извне в CentOS 8 с помощью NetworkManager и настройка source-based routing
При наличии в системе 2 и более сетевых интерфейсов с публичными IP адресами для обеспечения их доступности из сети Интернет мало сделать правильные сетевые настройки. Минус применяемой по умолчанию маршрутизации в том, что все сетевые пакеты будут уходить с хоста через шлюз по умолчанию. И при этом не важно на какой из интерфейсов они попали изначально. В данной инструкции мы настроим доступность нескольких сетевых интерфейсов извне в CentOS 8 за счет source-based routing.
## Параметры сетевых интерфейсов
[Облачные серверы в Serverspace](https://serverspace.uz/services/cloud-servers.md) обладают функцией автоматической настройки сетевых интерфейсов в момент их добавления или создания сервера. Поэтому, в случае их использования, переходите к следующему шагу. В противном случае для начала необходимо прописать правильные параметры сетевых интерфейсов.
[step num="1"]
Откройте файл настроек сетевого интерфейса. Их имена можно посмотреть с помощью команды **ip a** или же задать новые, если они не настроены.
[/step]
```
nano /etc/sysconfig/network-scripts/ifcfg-enp0s5
```
[step num="2"]
Конфигурацию ниже можно скопировать и заменить следующие значения на свои:
- имя интерфейса (enp0s5)
- шлюз (GATEWAY)
- MAC-адрес (HWADDR)
- IP адрес (IPADDR)
- маска подсети (NETMASK)
[/step]
```
BOOTPROTO=none
DEFROUTE=yes
DEVICE=enp0s5
GATEWAY=34.56.78.1
HWADDR=99:88:77:66:55:44
IPADDR=34.56.78.90
MTU=1500
NETMASK=255.255.255.0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
```
[step num="3"]
Подобным образом настройте все сетевые интерфейсы. **GATEWAY** для второго, третьего и т.д. интерфейсов не указывается, т.к. это шлюз по умолчанию и должен быть только один.
[/step]
## Отключение NetworkManager
[step num="4"]
Настройку маршрутизации на основе политик мы будем осуществлять с помощью **network-scripts**, поэтому отключим **NetworkManager** и связанные службы:
[/step]
```bash
systemctl mask NetworkManager.service
systemctl stop NetworkManager.service
systemctl mask NetworkManager-wait-online.service
systemctl mask NetworkManager-dispatcher.service
```
[step num="5"]
Установим пакет **network-scripts**
[/step]
```bash
dnf install network-scripts
```
[step num="6"]
Запустим сетевую службу:
[/step]
```bash
systemctl enable network
systemctl start network
```
## Настройка source based routing
[step num="7"]
Проверим присутствует ли пакет **iproute**. Если нет, установите его.
[/step]
```bash
dnf install iproute
```
[step num="8"]
Создадим новые таблицы для настройки политик маршрутизации.
[/step]
```
nano /etc/iproute2/rt_tables
```
[step num="9"]
В конец файла добавим записи:
[/step]
```
300 300
301 301
```
[step num="10"]
Каждая строка - это новая таблица. Формат записи - **приоритет** пробел **название таблицы**. Данные значения должны быть уникальны относительно других записей в файле. **Приоритет** имеет числовое значение, а **название таблицы** может содержать и буквы. Добавьте столько новых таблиц, сколько интерфейсов Вы настраиваете.
В следующих файлах будут указаны настройки маршрутизации. Для каждого интерфейса нужно создать по паре файлов: **rule-eth-name**, **route-eth-name**, где **eth-name** заменить на имя интерфейса. Пример для интерфейса **enp0s5**:
[/step]
```
nano /etc/sysconfig/network-scripts/rule-enp0s5
```
[step num="11"]
Вставляем в него следующую строку с актуальным IP адресом вместо 34.56.78.90 и именем таблицы, созданной на предыдущем шаге вместо 300:
[/step]
```
from 34.56.78.90 lookup 300
```
[step num="12"]
Второй файл:
[/step]
```
nano /etc/sysconfig/network-scripts/route-enp0s5
```
[step num="13"]
Заменяем 34.56.78.0/24 на адрес своей подсети, enp0s5 - на имя интерфейса, 300 на название соответствующей таблицы, а 34.56.78.1 на шлюз для маршрутизации трафика и вставляем в открытый файл:
[/step]
```
34.56.78.0/24 dev enp0s5 table 300
default dev enp0s5 via 34.56.78.1 table 300
```
[step num="14"]
После создания таких файлов для каждого сетевого интерфейса перезагрузим сетевую службу и наша цель достигнута.
[/step]
```bash
systemctl restart network
```
https://serverspace.uz/support/help/neskolko-setevyh-interfejsov-ubuntu-20.mdВ этом руководстве мы рассмотрим настройку нескольких сетевых интерфейсов и маршрутов на основе политик в Ubuntu с использованием Netplan
В ситуациях, когда на сервере Ubuntu 20.04 присутствует 2 и более сетевых интерфейса с публичными IP адресами, необходимо произведение дополнительных настроек для обеспечения доступности сервера по этим дополнительным адресам. Виной всему применяемая по умолчанию политика маршрутизации, отправляющая все сетевые пакеты через 1 интерфейс, у которого прописан маршрут по умолчанию. При этом не важно через какой интерфейс пакет попал на сервер. Поэтому, даже при правильных настройках Netplan сервер не будет отвечать по дополнительным адресам без дополнительных настроек. Рассмотрим как же настроить несколько сетевых интерфейсов с публичным IP на сервере с Ubuntu 20.04.
## Автоматическая настройка Netplan
[Linux серверы Serverspace](https://serverspace.uz/services/vps-server/linux.md) призваны упрощать жизнь пользователей. В них присутствует функция настройки сетевых интерфейсов в автоматическом режиме при их добавлении в панели управления или во время создания сервера. Но для обеспечения работы маршрутизации на основе политик и как результат доступности сервера сразу по нескольким сетевым интерфейсам нам необходимо внести изменения в настройки Netplan. Чтобы наши настройки не перезаписались во время перезагрузки, необходимо отключить автоматическую настройку сети. После того, как Вы убедитесь, что необходимое количество интерфейсов добавлено на сервер, создайте на нём файл:
```
nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
```
И добавьте в него параметр:
```
network: {config: disabled}
```
Теперь последующие изменения в Netplan не будут перезаписываться в автоматическом режиме при перезагрузке.
## Настройка маршрутов на основе политик
[step num="1"]
В основе маршрутизации на основе политик лежат таблицы. Для каждой таблицы настраиваются свои маршруты и политики. Проверим наличие в системе пакета iproute2. Если его нет, произведите его установку.
[/step]
```bash
apt install iproute2
```
[step num="2"]
Откройте файл с таблицами маршрутизации
[/step]
```
nano /etc/iproute2/rt_tables
```
И добавьте в его конец количество таблиц, соответствующее количеству настраиваемых интерфейсов:
[/step]
```
700 700
701 701
```
[step num="4"]
Формат записи: **приоритет** (число) пробел **название таблицы** (число).
Теперь откройте файл Netplan с настройками сетевых интерфейсов. Он расположен по пути **/etc/netplan/** и имеет расширение **.yaml**. В моём случае путь такой:
[/step]
```
nano /etc/netplan/50-cloud-init.yaml
```
[step num="5"]
Каждый интерфейс имеет в данном файле блок настроек. В конец данного блока мы и будем добавлять настройки политик и правил маршрутизации для интерфейса. В данном файле важно соблюсти количество пробелов перед каждым параметром и значением, а также не использовать табуляции вместо пробелов. Ориентируйтесь на отступы в уже имеющихся записях и добавляйте по аналогии.
[/step]
[step num="6"]
Для каждого сетевого интерфейса добавляем блоки **routes** и **routing-policy**. Итоговая запись для 1 интерфейса будет выглядеть так:
[/step]
```yaml
network:
version: 2
ethernets:
enp0s5:
addresses:
- 78.89.90.12/24
gateway4: 78.89.90.1
match:
macaddress: 54:43:32:21:10:09
mtu: 1500
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
- 8.8.4.4
search: []
set-name: enp0s5
routes:
- to: 0.0.0.0/0
via: 78.89.90.1
table: 700
routing-policy:
- from: 78.89.90.12
table: 700
priority: 300
```
[step num="7"]
Для других интерфейсов запись будет аналогична, начиная с имени интерфейса (**enp0s5**), но у других должен отсутствовать параметр **gateway4**, т.к. шлюз по умолчанию должен быть один. Настройки **routes** и **routing-policy**:
- to - адрес назначения пакета. Для наших целей - любой (0.0.0.0/0)
- via - адрес шлюза для данного интерфейса
- table - имя таблицы маршрутизации. Должны быть указаны одинаковые значения в **routes** и **routing-policy** для одного интерфейса, но быть различными от интерфейса к интерфейсу. Данные таблицы мы создали в файле **rt_tables**
- from - адрес источника пакета. Для целей данного руководства - это IP адрес интерфейса
- priority - обязательное числовое значение
[/step]
[step num="8"]
После внесения настроек и сохранения файла проверим конфигурацию на ошибки:
[/step]
```
netplan generate
```
[step num="9"]
Подобный вывод укажет на ошибку при их наличии (в данном случае пропущен пробел):
[/step]
```
/etc/netplan/50-cloud-init.yaml:23:12: Invalid YAML: inconsistent indentation:
routes:
^
```
[step num="10"]
Если конфиг составлен верно, то вывод будет отсутствовать. Это значит, что пора применить изменения:
[/step]
```
netplan apply
```
[step num="11"]
После применения изменений настроенные таким образом сетевые интерфейсы станут доступны извне по своим публичным IP адресам.
https://serverspace.uz/support/help/neskolko-setevyh-interfejsov-ubuntu.mdВ руководстве мы добавим настройки в Netplan для корректной работы нескольких сетевых интерфейсов в Ubuntu 20.04.
## Зачем использовать несколько сетей?
Необходимость использования нескольких сетей может возникнуть в различных сценариях по существенным причинам:
- Распределенные вычисления: в крупномасштабных системах несколько сетей могут использоваться для распределения вычислительной нагрузки между различными машинами или узлами. Такой подход повышает производительность и отказоустойчивость за счет возможности одновременного выполнения задач.
- Специализация: различные сети могут быть спроектированы таким образом, чтобы специализироваться на выполнении определенных задач или областей. Например, в глубоком обучении существуют отдельные сети для распознавания изображений, генерации текста и синтеза речи. Каждая сеть фокусируется на определенной области, используя свои сильные стороны и оптимизируя производительность.
- Домены с неоднородными данными: в тех случаях, когда данные неоднородны или мультимодальны (например, включают изображения, текст и аудио), для работы с каждой модальностью могут использоваться отдельные сети. Эти отдельные сети могут эффективно обрабатывать конкретный тип данных, а затем объединять результаты для принятия окончательного решения.
Таким образом, множественные сети полезны в сценариях, связанных с распределенными вычислениями, специализацией, ансамблевым обучением, трансферным обучением, сложными архитектурами моделей, масштабируемостью, ограниченностью ресурсов и областями с разнородными данными. Они позволяют повысить производительность, гибкость, устойчивость и эффективность в различных приложениях машинного обучения и искусственного интеллекта.
## Несколько IP-адресов к нескольким адаптерам
Использование сетевой конфигурации "один IP — один интерфейс" в сети для организации локального и Интернет—соединения на маршрутизаторе важно по причинам:
- Разделение функций: Использование отдельных IP-адресов на каждом интерфейсе позволяет четко разграничить функции локальной сети и доступа в Интернет. Каждый интерфейс может быть подключен к определенному сегменту локальной сети и иметь собственные правила маршрутизации и фильтрации трафика.
- Управление трафиком: Использование отдельных IP-адресов для каждого интерфейса упрощает контроль и управление трафиком. Вы можете применять различные политики маршрутизации, фильтрации и приоритезации трафика для каждого интерфейса независимо друг от друга. Это позволяет эффективно использовать доступную полосу пропускания и обеспечивать качество обслуживания для различных сегментов сети.
- Изоляция проблем: Конфигурация "один IP — один интерфейс" также помогает изолировать проблемы в сети. Если что—то происходит с одним интерфейсом или IP—адресом, остальные интерфейсы и адреса остаются работоспособными. Это упрощает поиск и устранение неисправностей, не оказывая серьезного влияния на другие сегменты сети.
Не забудьте обновить системный пакет для корректной работы ОС:
```bash
apt update && upgrade -y
```
Далее необходимо проверить доступные интерфейсы на нашей машине от имени суперпользователя, для чего необходимо войти в систему под именем пользователя root или воспользоваться командой **sudo**:
```
ip link show
```
У нас есть несколько вариантов изменения конфигурационного файла: создать новые конфигурационные файлы в папке и работать с ними или использовать один конфигурационный файл по умолчанию для всех интерфейсов. Для нашего примера выберем второй способ. Откроем конфигурационный план, настроим статический адрес.
```
ls /etc/netplan
```
Вы увидите имя вашего конфигурационного файла, для следующего шага запомните его. Внимание! В вашем случае вы выбираете имя файла так, как мы его знали ранее!
```
nano /etc/netplan/50-init-cloud.conf
```
После этого появится файл с конфигурацией по умолчанию, измените настройки на приведенные ниже:
```yaml
network:
version: 2
ethernets:
enp0s5:
addresses:
- 109.207.173.205/24
mtu: 1500
nameservers:
addresses:
- 8.8.8.8
-1.1.1.1
-8.8.4.4
search: []
routes:
- to: default
via: 109.207.173.1
enp0s6:
addresses:
- 10.10.10.1/24
mtu: 1500
nameservers:
addresses:
- 8.8.8.8
-1.1.1.1
- 8.8.4.4
search: []
routes:
- to: 10.10.10.0/24
via: 10.10.10.1
```
Замените 10.10.10.1, 10.10.10.0/24, 109.207.173.205/24 на свой IP. Посмотрим на изменения с помощью приведенной ниже команды:
```
netplan generate && netplan apply && ip a
```
## Вторичные IP-адреса на один интерфейс
Зачем нам это нужно?
Вторичные IP-адреса могут использоваться в различных ситуациях и для различных целей. Вот некоторые из них:
- Разделение служб: Если на одном физическом устройстве предоставляется несколько сетевых сервисов или размещается несколько виртуальных машин, вторичные IP—адреса можно использовать для привязки каждого сервиса или виртуальной машины к отдельному IP—адресу. Например, можно иметь сервер, предоставляющий одновременно веб—сервер и почтовый сервер, и использовать два вторичных IP—адреса, чтобы связать каждую службу с отдельным адресом.
- Дополнительные возможности подключения: Вторичные IP—адреса могут использоваться для добавления дополнительных путей подключения к сети. Например, если у вас есть маршрутизатор или коммутатор с несколькими интерфейсами, каждому интерфейсу можно присвоить вторичный IP—адрес, чтобы иметь возможность связываться с различными частями сети.
- Изоляция сервисов: Вторичные IP—адреса могут использоваться для изоляции сетевых служб друг от друга. Например, если на одном физическом сервере расположены веб—сервер и база данных, можно назначить один IP—адрес веб—серверу, а другой — базе данных. Это позволяет установить более строгие правила доступа и контроля между службами.
- Тестирование и отладка: Вторичные IP—адреса можно использовать для тестирования и отладки сетевых настроек без прерывания основного соединения. Например, можно создать вторичный IP—адрес для тестирования новых сетевых конфигураций или настроек, не влияя на работу основных служб.
Вторичные IP—адреса имеют широкий спектр применения и могут быть полезны в различных ситуациях, когда требуется дополнительная гибкость или изоляция в сети.
Даже если ваш сервер имеет один сетевой адаптер, вы можете настроить на него дополнительные IP—адреса. Только одно исключение: если вы добавляете более одного IP на один и тот же интерфейс, вы не сможете использовать DHCP. Чтобы добавить псевдоним IP, просто "вставьте" вторичный адрес в конфигурацию текущего интерфейса рядом с существующим адресом:
Затем примените и проверьте изменения:
```
netplan generate && netplan apply && ip a
```
## Вывод
После прочтения этой статьи вы знаете, как настроить несколько сетевых интерфейсов в Ubuntu 20.04.
https://serverspace.uz/support/help/ustanovka-domena-active-directory-na-windows-server-2019.mdПошаговый процесс установки нового домена для среды Active Directory в Windows Server 2019. Установка роли Active Directory Domain Services
В этой статье мы рассмотрим процесс установки нового домена для среды Active Directory с помощью Windows Server 2019. Это будет реализовано путем установки соответствующей роли, а затем путем повышения роли сервера до главного контроллера домена (DC). В то же время мы установим роль DNS, чтобы использовать возможности зон, интегрированных в Active Directory.
По сути, процесс выполняется в два этапа: установка роли Active Directory Domain Services и повышение статуса сервера до главного контроллера домена.
## Установка роли Active Directory Domain Services
Прежде чем приступить к выполнению этого шага, необходимо настроить на сервере статический IP-адрес, а также изменить имя Windows Server в соответствии со стандартами именования вашей компании. После того как сделаете это, приступайте к установке ADDS.
Откройте управление сервером (Server Manager), нажмите Управление (Manage), а затем "Добавить роли и компоненты" (Add Roles and Features).
Сразу после этого откроется окно мастера. В разделе "**Before You Begin**" нажмите "**Next"**, чтобы продолжить.
В разделе "Тип установки" (**Installation ****Type**) выберите установку на основе ролей сервера или на основе функции виртуальной инфраструктуры и нажмите **Next**, чтобы продолжить. В нашем случае используем первый вариант.
В разделе "Выбор сервера" (**Server ****selection**) убедитесь, что выбран нужный сервер, обычно он выделен по умолчанию и нажмите **Next**.
В разделе "Роли сервера" (**Server Roles**) выберите Доменные службы Active Directory (Active Directory Domain Services). После этого вам будет предложено добавить некоторые дополнительные функции. Нажмите кнопку Add Features, а затем нажмите **Next**, чтобы продолжить.
В разделе "Компоненты" ("**Features**") вам не нужно ничего выбирать, просто нажмите **Next** для продолжения.
В разделе AD DS отображается некоторая информация о AD DS, просто нажмите **Next**.
Наконец, в разделе "Подтверждение" ("**Confirmation**") нажмите кнопку **Install**, чтобы перейти к установке роли.
## Повышение сервера до контроллера домена
После завершения установки роли, если вы не закроете окно, вам будет предложено повысить сервер до контроллера домена (DC). Ссылка будет выделена синим текстом.
В качестве альтернативы можно открыть то же окно через сервер менеджер, как показано на рисунке ниже.
Нажмите на "Повысить роль этого сервера до уровня контроллера домена" (Promote server to domain controller). По сути, это мастер конфигурации развертывания Active Directory, который поможет вам создать первый лес в Active Directory.
В разделе "Конфигурация развертывания" (**Deployment Configuration**), включите опцию "Добавить новый лес" "**Add a new forest**", а затем введите желаемое имя домена. В моем случае это office.local, и нажмите **Next**.
В разделе "Параметры контроллера домена" (**Domain ****Controller ****Options**) выберите функциональный уровень леса и домена. Если это ваш первый лес на **Windows Server 2016**, оставьте значения по умолчанию. В противном случае, если в вашей бизнес-инфраструктуре есть другие контроллеры домена, вам следует узнать их функциональный уровень, прежде чем приступать к необходимым действиям.
Включите опцию сервера системы доменных имен (DNS), чтобы также установить роль DNS на том же сервере, если вы не сделали этого раньше.
Также введите (дважды) пароль **Directory Services Restore Mode** (DSRM), обязательно запишите его в документации и нажмите **Next**, чтобы продолжить.
В подразделе "Параметры DNS" (**DNS ****Options**) вы увидите предупреждающее сообщение, но в данный момент оно не должно вас беспокоить. Просто нажмите "**Next**", чтобы продолжить.
В разделе "Дополнительные параметры" (Additional Options) оставьте имя NetBIOS по умолчанию и нажмите **Next**, чтобы продолжить.
В разделе "Пути" (**Paths)** выберите, где на вашем сервере будут располагаться папки NTDS, SYSVOL и LOG. В моем случае я оставлю значения по умолчанию, вы можете выбрать другой диск в зависимости от ваших предпочтений и настроек.
В разделе "Просмотреть параметры" (**Review Options**) вы увидите сводку выбранных вами параметров. Убедившись, что вы не допустили ошибок, нажмите **Next**.
В разделе "Проверка предварительных требований" "**Prerequisites ****Check**" будут проверены предварительные условия. Здесь, если возникнет хотя бы одна ошибка, вы не сможете продолжить, и вам нужно будет ее исправить. В противном случае, если отображаются только предупреждающие сообщения (которые являются наиболее распространенными), но проверка прошла успешно, как показано на рисунке, нажмите кнопку **Install**, чтобы продолжить.
На этом этапе вам нужно будет подождать несколько минут, пока завершится процесс установки. Сразу после этого сервер автоматически перезагрузится.
После перезагрузки ваш первый контроллер домена будет готов и вы можете пользоваться всеми функциональностями, таким как например ADUC и ADAC.
https://serverspace.uz/support/help/kak-upravlyat-uchetnymi-zapisyami-polzovatelej-v-active-directory-chast-1-sozdanie-i-udalenie-polzovatelej.mdКак создать учетную запись active Directory (AD) несколькими способами: с помощью Active Directory Users and Computers, командной строки, Windows PowerShell, cmd.exe.
Пользовательские учетные записи — одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а так же управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (**RSAT**) для **Active Directory Domain Services**.
Для того чтобы не было ошибок доступа, нам нужен аккаунт администратора домена или группы операторов учетных записей (**Account Operators group**), либо УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (**OU**), которую мы будем использовать для хранения аккаунтов.
## Как создать учетную запись пользователя
Давайте создадим учетную запись пользователя AD несколькими способами.
### Создание учетной записи пользователя с помощью ADUC
Запустите **Active Directory Users and Computers** (**dsa.msc**).
Перейдите в нужную вам OU (organizational unit) или контейнер. На панели задач нажмите на значок **New User**, или щелкните правой кнопкой мыши пустое место в главном окне и выберите **New -> User** из меню, или щелкните правой кнопкой по выбранному вами OU или контейнеру и выберите **New -> User**.
Появится окно **New Object - User**, укажите параметры для вашего пользователя:
- **Full Name**, введите полное имя в поле **Full Name** или введите отдельно фамилию и имя в поля **First Name** и **Last Name**.
- **User logon name** - Имя логина пользователя, данный параметр создаст атрибут userPrincipalName и атрибут sAMAccountName, которые пользователь будет вводить при входе в систему.
Нажмите **Next** и укажите Пароль, затем наберите его во втором поле и отметьте нужные настройки, обычно для нового пользователя нужно отметить "**User must change password at next logon**"(Пользователь должен сменить пароль при следующем входе).
Нажмите **Next** и **Finish**. Поздравляем, учетная запись пользователя успешно создана!
### Создание УЗ пользователя с помощью cmd.exe
Используйте следующую команду с необходимыми параметрами для создания объекта пользователя в контейнере "**Users**", имя пользователя в примере будет GSoul:
```
dsadd.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -upn GSoul@office.local -fn "Gordon" -ln "Soul" -display "Gordon Soul" -pwd "P@&&W0rd"
```
### Создание учетной записи пользователя с помощью Windows PowerShell
Запустите следующий код PowerShell с правами администратора:
```
Import-Module ActiveDirectory
New-ADUser -Name FRobinson -Path "CN=Users,DC=office,DC=local" -GivenName "Frank" -Surname "Robinson" -sAMAccountName FRobinson
```
## Как удалить учетную запись пользователя
Для того чтобы удалить пользователя из Active Directory, используйте один из следующих методов. Обратите внимание, что это не приведет к полному удалению УЗ, если у вас настроена корзина **AD Recycle Bin**.
### Удаление учетной записи пользователя с помощью Active Directory Users and Computers
Чтобы удалить пользователя из домена, откройте Active Directory Users and Computers (dsa.msc).
Нажмите на меню **View**, включите **Advanced Features**. Перейдите в OU или контейнер, где находится объект пользователя, который вы собираетесь удалить. В меню **Action** выберите **Find**.
В поле Name введите имя пользователя, которого вы хотите удалить, и нажмите кнопку "**Find now**". В списке результатов поиска выберите нужного пользователя.
Щелкните правой кнопкой мыши на пользователя и выберите из списка пункт "**Delete**", а затем "**Yes**".
### Удаление учетной записи пользователя с помощью командной строки
Следующая команда удаляет пользователя "GSoul" из контейнера "Users" из домена office.local:
```
dsrm.exe "CN=Gregory Soul,CN=Users,DC=office,DC=local"
```
### Удаление учетной записи пользователя с помощью Windows PowerShell
Используйте следующий PowerShell код для удаления пользователя из AD, синтаксис для примера использован такой же, как и в примере выше:
```
Import-Module ActiveDirectory
Remove-ADUser -Identity "CN=GSoul,CN=Users,DC=office,DC=local"
```
https://serverspace.uz/support/help/kak-vklyuchit-korzinu-recycle-bin-v-active-directory.mdСпособы включения корзины Recycle Bin в Active Directory с помощью ADAC и Power Shell на сервере с ОС Windows Server
**Active Directory Recycle Bin** позволяет администраторам восстанавливать объекты AD, которые были удалены из домена.
Как включить корзину Recycle Bin в Active Directory по шагам:
- Определите сервер с ролью Domain Naming Master;
- Включите корзину Recycle Bin в Active Directory Administrative Center (ADAC);
- Включите Recycle Bin в консоли PowerShell.
Рассмотрим каждый шаг на живом примере сервера Windows с AD.
## Определение сервера с Ролью Domain Naming Master
Рекомендуется включать функцию **Recycle Bin** на контроллере домена, который имеет роль **Domain Naming Master**. Чтобы узнать, на каком контроллере домена находится эта роль, выполните следующую команду в командной строке на любом устройстве, подключенном к домену:
```
netdom.exe query fsmo
```
В качестве альтернативы можно использовать команды PowerShell на подключенной к домену системе, на которой установлен модуль **Active Directory для Windows PowerShell**:
```
Import-Module ActiveDirectory
Get-ADForest | Format-List DomainNamingMaster
```
## Включение корзины Recycle Bin в Active Directory Administrative Center (ADAC)
Войдите на контроллер домена, используя учетную запись, которая является членом **Enterprise Admins**.
Откройте Active Directory Administrative Center (пуск->выполнить dsac.exe).
Нажмите на имя леса доменов в левой верхней части панели. Затем в панели "**Tasks**" справа нажмите на "**Enable Recycle Bin...**".
В качестве альтернативы можно щелкнуть правой кнопкой мыши на имя домена в левой панели,
и выбрать опцию "**Enable Recycle Bin...**".
Появится окно подтверждения, в котором говорится, что Recycle Bin включается один раз и отключению не подлежит. Чтобы включить ее, нажмите OK. Центр администрирования AD предупредит вас о необходимости обновить его окно:
Нажмите OK и обновите ADAC, нажав на кнопку "**Refresh**" в правом верхнем углу:
Через секунду рядом с контейнером "Computers" появится еще один - "Deleted Objects".
## Включение Recycle Bin в консоли PowerShell
Работу Recycle Bin так же можно настроить через консоль PowerShell.
Запустите **PowerShell.exe** от имени администратора и выполните следующий код:
```
Import-Module ActiveDirectory
Enable-ADOptionalFeature -Identity "CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=office,DC=local" -Scope ForestOrConfigurationSet -Target "office.local"
```
Замените office, local и office.local на имена соответствующие вашему домену. Система запросит подтверждение, введите "y", чтобы продолжить. После этого появится контейнер "**Deleted Objects**".
Теперь, когда мы удалим что-нибудь из AD, атрибут этого объекта "**isDeleted**" будет "**true"**, а параметр "**isRecycled**" не изменится. При этих параметрах данный объект переносится в "**Deleted Objects**" откуда он легко восстанавливается, щелкнув на нем правой кнопкой мыши и нажав восстановить.
По умолчанию через 60 дней атрибут "**isRecycled**" также поменяется на "**true**" и в этом случае объект будет удален из AD навсегда. Время окончательного удаления объекта можно поменять.
https://serverspace.uz/support/help/kak-delegirovat-kontrol-nad-ou-v-active-directory.mdИнструкция по делегированию прав в Active Directory. Настройка делегирования прав через Active Directory Users and Computers
В крупных организациях существует несколько команд ИТ-администраторов и специалистов службы поддержки и в этом случае необходимо делегирование полномочий. Например, специалисты службы поддержки или руководители групп могут сбрасывать пароли, системные администраторы могут изменять членство в группах, а управлять OU могут только ИТ-архитекторы.
Такое разделение обязанностей действительно полезно для оптимизации операций и безопасности.
Чтобы выполнить делегирование управления, администраторы домена должны иметь разрешения или полные привилегии управления над OU. Это можно сделать несколькими способами: через **Active Directory Users and Computers**, командную строку, группы и пр.
## Делегирование через Active Directory Users and Computers
Для того чтобы делегировать управление через Active Directory Users and Computers (**dsa.msc**). Выполните следующие действия:
Запустите **Active ****Directory ****Users ****and ****Computers**. Щелкните правой кнопкой мыши на OU, которому вы хотите делегировать управление, и выберите **Delegate ****Control...**
Появится мастер делегирования контроля, где вам нужно нажать "**Next**".
В появившемся окне нужно нажать "**Add**..." и выбрать пользователей или группы, которым вы хотите делегировать управление, и нажать "**Next**".
В окне "**Tasks ****to ****Delegate**" выберите задачи, которые вы хотите делегировать, вы также можете создать пользовательскую задачу с нуля.
Нажмите **Next** и **Finish**
Разрешения на делегирование можно просмотреть в свойствах OU на вкладке Security.
## Делегирование через командную строку
Для делегирования прав доступа компания Microsoft разработала сервис **dsacls.exe**. Он хорошо подходит для назначения делегирования посредством скриптов. Он также хорошо подходит для отображения текущих прав доступа. Вы можете использовать параметр **/a** для отображения всех прав доступа у OU, например:
```
dsacls.exe "OU=Employees,DC=office,dc=local" /a
```
Здесь мы видим права доступа **KJenkins**, которые мы делегировали в нашем предыдущем примере.
Чтобы добавить новые делегированные привилегии для учетной записи, нам нужно назначить ей разрешения в соответствии с определенным синтаксисом. Синтаксис состоит из основных и дополнительных прав доступа, вот список основных:
- - GR - чтение
- - GE - исполнение
- - GW - запись
- - GA – полный доступ
Наиболее популярные расширенные права:
- - SD - Удаление
- - DT - Удаление объекта и всех дочерних объектов
- - RC - Чтение информации о безопасности
- - WD - Изменение доступа
- - WO – Изменение владельца
- - CC - Создание дочерних объектов
- - DC - Удаление дочерних объектов
- - RP - Чтение свойств
- - WP - Запись свойств
Давайте делегируем нашему пользователю KJenkins права на удаление OU Employees:
```
dsacls.exe "OU=Employees,DC=office,DC=local" /G OFFICE\KJenkins:SD;
```
## Делегирование через встроенные группы
По умолчанию существуют встроенные группы, такие как Account Operators и Server Operators, которые выполняют административные задачи в Active Directory.
Вы можете включить любого пользователя в эти группы и получить дополнительные полномочия в домене без необходимости предоставления полного доступа к управлению. Но имейте в виду, что встроенная группа **Account Operators** предоставляет больше разрешений, чем требуется на самом деле. Они могут создавать, изменять и удалять все объекты, кроме членов группы Domain Admins, во всех OU, кроме OU Domain Controllers.
## Лучшие практики по делегированию прав в OU
- Постройте матрицу управления делегированием, чтобы документировать все права доступа к AD;
- Всегда используйте группы при делегировании прав, не используйте отдельные учетные записи пользователей. Так вам будет проще и безопаснее предоставлять делегированный доступ;
- Избегайте запрещающих разрешений, поскольку они имеют приоритет над разрешенными, и это может сделать ваши списки доступа слишком сложными для управления;
- Попробуйте протестировать настройки делегирования на предмет нежелательных эффектов.
https://serverspace.uz/support/help/kak-upravlyat-kompyuterami-v-active-directory-chast-1-sozdanie-i-udalenie-uchetnyh-zapisej-kompyuterov.mdВ этой инструкции вы узнаете как создавать учетные записи пользователей в домене Active Directory с помощью ADUC.
Учетные записи компьютеров представляют собой устройства, подключенные к AD. Они хранятся в базе данных AD после того, как их подключат к домену. Это необходимо для применения к ним различных GPO и отслеживания их обновлений, если у вас установлен WSUS. И что еще более важно, это нужно для установки безопасной аутентификации для пользователей, входящих в Windows.
Чтобы управлять компьютерами, вам нужны права администратора домена, оператора учетной записи (Account Operators) или делегированные права на OU в котором хранятся компьютеры. Управлять можно с рабочей станции с установленными инструментами RSAT или на контроллере домена.
## Как создать учетную запись компьютера в AD
Давайте создадим учетную запись компьютера, используя несколько методов. Эта учетная запись может быть использована для присоединения к ней устройства.
### Создание учетной записи компьютера с помощью ADUC
Запустите **ADUC (dsa.msc)**.
Перейдите к OU, в которой вы хотите хранить такие объекты, щелкните правой кнопкой мыши на этой **OU -> New-> Computer:**
Или вы можете сделать это, нажав на **Action -> New -> Computer**.
В окне **New Object – Computer** введите имя компьютера и имя **pre Windows 2000** в соответствии с вашей политикой именования. Выберите, какая группа может ввести эту машину в домен и нажмите OK.
Поздравляю учетная запись компьютера создана!
### Создание учетной записи компьютера с помощью ADAC
Запустите **ADAC(dsac.exe)**, щелкните правой кнопкой мыши на имени домена, выберите **New->Computer**. Появится окно **Create** **Computer**, где вам нужно ввести имя компьютера, имя NetBIOS, в соответствии с вашей политикой именования. Укажите OU, где вы хотите хранить компьютер, нажав на **Change...** Вы также можете указать, какая группа может ввести этот компьютер в домен и защитить его от удаления. В конце нажмите OK.
### Создание учетной записи компьютера с помощью Cmd.exe
Для этой задачи нам необходимо использовать **dsadd.exe**. Используйте следующую команду для создания объекта компьютера в Active Directory:
```
dsadd.exe computer "CN=WKS033,CN=Computers,DC=office,DC=local"
```
### Создание учетной записи компьютера с помощью PowerShell
Используйте следующие строки кода PowerShell для создания учетной записи компьютера с именем "WKS033" в домене office.local.
```
Import-Module ActiveDirectory
New-ADComputer -Name "WKS033" -sAMAccountName " WKS033" -Path "CN=Computers,DC=office,DC=local"
```
## Как удалить учетную запись компьютера в AD
Важно периодически удалять старые компьютеры из домена, чтобы избежать беспорядка в отчетах WSUS и применения политик GPO. Существует несколько способов добиться этого.
### Удаление учетной записи компьютера из AD с помощью ADUC
Запустите **ADUC (dsa.msc).**
Перейдите в OU, содержащую нужные компьютеры, в меню **Action** выберите Find. Введите имя компьютера в поле Name и нажмите **Find ****now...** В результате поиска, щелкните правой кнопкой мыши на компьютере, который вы хотите удалить и выберете опцию Delete.
Нажмите **Yes** в окне подтверждения. Если после этого вы получите следующую ошибку:
Снова щелкните на компьютер правой кнопкой мыши, перейдите в **Properties -> ****Object** снимите флажок ""**Protect** **object** **from** **accidental** **deletion**" и выполните операцию удаления снова.
### Удаление учетной записи компьютера из AD с помощью ADAC
Запустите **ADAC (dsac.exe)**. Переключите левую панель в **Tree ****view** и выделите нужную OU. Введите имя компьютера в панели **Filter** и нажмите **Enter**. Выберите компьютер для удаления в результатах поиска, щелкните его правой кнопкой мыши и выберите **Delete**. Нажмите **Yes** для подтверждения.
Если вы получите сообщение об ошибке:
Щелкните правой кнопкой мыши на учетную запись компьютера **->****Properties** и снимите флажок " **Protect** **from** **accidental** **deletion**".
После этого повторите процесс удаления.
### Удаление учетной записи компьютера из AD с помощью cmd.exe
Для этой задачи нам понадобится **dsrm.exe.** Используйте его со следующими параметрами для удаления учетной записи компьютера, в нашем случае это WKS033.
```
dsrm.exe "CN=WKS033,CN=Computers,DC=office,DC=local"
```
### Удаление учетной записи компьютера из AD с помощью Windows PowerShell
Эту задачу также можно легко выполнить с помощью Powershell, вот код для удаления учетной записи компьютера. В нашем примере имя компьютера WKS033
```
Import-Module ActiveDirectory
Remove-ADComputer -Identity "CN=WKS033,CN=Computers,DC=office,DC=local"
```
https://serverspace.uz/support/help/kak-upravlyat-kompyuterami-active-directory-chast-2-pereimenovanie-i-prisoedinenie-kompyuterov-k-domenu.mdКак переименовывать компьютеры с ОС Windows и вводить их в домен Microsoft AD с использованием графического интерфейса, Windows PowerShell и Cmd.exe
Учетные записи компьютеров представляют собой устройства, подключенные к AD. Они хранятся в базе данных AD после подключения к домену. Это необходимо для применения к ним различных GPO и отслеживания их обновлений, если у вас установлен **WSUS**. И что еще более важно – настроить безопасную аутентификацию для пользователей, при входе в систему Windows.
Для того чтобы присоединить рабочую станцию к домену, устройство должно находиться в одной сети с контроллерами домена. Также можно присоединить устройство через **VPN**. В этом случае устройство должно иметь возможность зарезолвить имя среды AD. **DHCP** может в этом помочь, но вы также можете сделать это, добавив информацию о домене в файл **hosts**.
## Как присоединить компьютер к домену
Присоединить компьютер к домену можно тремя различными способами, давайте рассмотрим, как это сделать на практике.
### Присоединение к домену с помощью графического интерфейса
Для того чтобы присоединить Windows server к AD, выполните следующие действия:
Нажмите кнопку **Пуск **или одновременно нажмите кнопку **Пуск** на клавиатуре и клавишу **X** и выберите пункт **System**. Прокрутите вниз до самого низа и нажмите на " **System** **Info** ". После этого нажмите на " **Change** **settings**" рядом с именем компьютера, а в появившемся окне нажмите **Change******
В окне " **Member** **of** **Domain** " введите имя домена в поле " **Member** **of** **Domain**" и нажмите **OK**. Введите учетные данные администратора домена и трижды нажмите **OK**.
Нажмите **Close**, а затем **Restart Now****.** Поздравляем, ваша рабочая станция присоединилась к домену!
### Присоединение к домену с помощью Windows PowerShell
Самый простой способ добавить устройство на базе Windows в Active Directory - это Powershell и команда **Add-Computer**:
```
Add-Computer -DomainName office.com -Credential OFFICE\Administrator
Restart-Computer
```
## Как переименовать учетную запись компьютера
Переименование компьютера - довольно простая задача, которую можно выполнить тремя различными способами.
### Переименование компьютера в настройках
В Windows Server это можно сделать аналогично введению в домен, но в этот раз мы сделаем это немного по-другому.
Нажмите правой кнопкой мыши кнопку **Пуск** или одновременно нажмите кнопку **Пуск** на клавиатуре и клавишу **X**, выберите пункт **System**. Нажмите на **Rename** **this** **PC** и введите новое имя устройства в соответствии с политикой именования.
Нажмите **Next**, введите учетные данные администратора домена, если ваш компьютер уже находится в домене, а затем перезагрузите сервер. После перезапуска у вас будет сервер с новым именем.
### Переименование компьютера с помощью Cmd.exe
Переименование компьютера в командной строке - простая задача, просто введите следующий код на целевом компьютере:
```
netdom.exe renamecomputer localhost /newname WKS033 /reboot
```
### Переименование компьютера с помощью Windows PowerShell
Windows PowerShell позволяет переименовать компьютер за считанные секунды, набрав две короткие команды на целевой машине:
```
Rename-Computer WKS001
Restart-Computer
```
https://serverspace.uz/support/help/kak-upravlyat-ou-v-active-directory.mdИнструкция по созданию, изменению и удалению подразделения (OU). Используем Active Directory Administrative Center, командную строку и Windows PowerShell
**Организационная единица **или, как обозначено в русской версии Windows server, подразделение (**Organizational Unit**) — это субконтейнер в Active Directory, в который можно помещать пользователей, группы, компьютеры и другие объекты AD. Подразделения (OU) управляются администраторами домена. Вы также можете настроить делегирование управления над подразделением с помощью мастера делегирования управления. OU могут быть вложенными, и к ним можно применять групповые политики.
## Создание подразделения (OU)
OU можно создать с помощью Active Directory Administrative Center (ADAC), Active Directory Users and Computers (ADUC), командной строки и PowerShell.
### Создание подразделения с помощью Active Directory Administrative Center
Давайте создадим подразделение с помощью ADAC:
Запустите Active Directory Administrative Center (dsac.exe).
Переключитесь в режим просмотра дерева и разверните домен или подразделение, в котором вы хотите разместить новое.
Щелкните правой кнопкой мыши на OU или домен, выберите "**New..."**, а затем выберите **Organizational Unit**.
Появится окно создания подразделения:
Введите имя OU и нажмите OK, чтобы его создать.
### Создание подразделения с помощью командной строки
Чтобы создать OU с помощью cmd, запустите **dsadd.exe** со следующими параметрами:
```
dsadd.exe ou "OU=testorg,DC=office,DC=local" -desc "TestOU"
```
Эта строчка создаст TestOU в домене с описанием "TestOU".
### Создание подразделения с помощью Windows PowerShell
Для создания нового подразделения с помощью PowerShell нам нужно использовать команду **New-ADOrganizationalUnit**. Запустите PowerShell от имени администратора и введите следующее:
```
Import-Module ActiveDirectory
New-ADOrganizationalUnit "TestOU" -Description "TestOU"
```
Эта строчка создаст TestOU в домене с описанием "TestOU".
## Удаление подразделения AD
Подразделения по умолчанию защищены от случайного удаления. Чтобы удалить его, нам нужно снять флажок **Protected from Accidental Deletion** в свойствах.
### Удаление подразделения с помощью Active Directory Administrative Center
Откройте **Active Directory Administrative Center** (dsac.exe).
Переключитесь в режим просмотра дерева, разверните свой домен и найдите OU, которое вы хотите удалить. Щелкните OU правой кнопкой мыши и выберите "**Delete**".
Появится окно подтверждение удаления:
Нажмите **Yes** для подтверждения. Если OU содержит дочерние объекты, нажмите еще раз.
### Удаление подразделения с помощью командной строки
Для удаления OU с помощью командной строки необходимо использовать инструмент **dsrm.exe** в cmd, запущенном от имени администратора, со следующим синтаксисом:
**_ _**
```
dsrm.exe "OU=TestOU,DC=office,DC=local" -subtree
```
Эта строчка полностью удалит OU с любыми объектами внутри.
### Удаление подразделения с помощью Windows PowerShell
Для удаления подразделения нам нужно использовать команду **New-ADOrganizationalUnit** в PowerShell запущенном от имени администратора:
```
Import-Module ActiveDirectory
Remove-ADObject -Identity "OU=TestOU,DC=office,DC=local" -Recursive -Confirm:$False
```
Эта строчка полностью удалит OU TestOU со всеми существующими в ней объектами.
## Изменение подразделения AD
Иногда вам нужно изменить OU. Вот как это сделать тремя различными способами.
### Изменение подразделения с помощью Active Directory Administrative Center
Откройте Active Directory Administrative Center (dsac.exe). Переключитесь в режим просмотра дерева и найдите OU, которую вам нужно изменить.
Щелкните на нем правой кнопкой мыши и выберите "**Properties:**". Измените свойства, которые вам нужны. Например, вы можете изменить описание или добавить менеджера.
Снимите флажок с параметра "**Защищен от случайного удаления**" и нажмите OK.
### Изменение подразделения с помощью командной строки
Для того чтобы изменить OU, необходимо использовать **dsmod.exe** в cmd от имени администратора. Но в этом случае вы можете изменить только описание.
```
dsmod.exe ou "OU=TestOU,DC=office,DC=local" -desc "New Description"
```
Здесь мы назначаем " **_New _****_Description_** " для TestOU.
### Изменение подразделения с помощью Windows PowerShell
Команда **Set-ADOrganizationalUnit** используется для изменения OU. Она очень мощная, в отличие от **dsmod.exe**. Вы можете легко изменить множество параметров OU, таких как DistinguishedName, LinkedGroupPolicyObjects или ManagedBy. Вот пример того, как изменить параметр ManagedBy в OU:
```
Import-Module ActiveDirectory
Set-ADOrganizationalUnit -Identity "OU=TestOU,DC=office,DC=local" -ManagedBy "CN=User,CN=Users,DC=office,DC=local"
```
https://serverspace.uz/support/help/kak-upravlyat-uchetnymi-zapisyami-polzovatelej-v-active-directory-chast-2-peremeshhenie-i-pereimenovanie-polzovatelej.mdКак перемещать и переименовывать учетные записи пользователей в домене Active Directory. Используем Active Directory Users and Computers, командную строку и Windows PowerShell
Пользовательские учетные записи — одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а также управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (**RSAT**) для **Active Directory Domain Services**.
Для того, чтобы не было ошибок доступа, нам нужен аккаунт администратора домена или группы операторов учетных записей (**Account Operators group**) или нам нужна УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (**OU**), которую мы будем использовать для хранения аккаунтов.
## Как переместить учетную запись пользователя
После создания пользователя вы можете захотеть переместить его в другую OU или контейнер, вот несколько инструкций для этого.
### Перемещение учетной записи пользователя через Active Directory Users and Computers
В Active Directory Users and Computers (dsa.msc) включите "Advanced Features" в меню "View".
Перейдите к OU или контейнеру с нужной учетной записью пользователя. В меню "**Actions**" выберите "**Find**...". В поле "**Name**" введите имя учетной записи пользователя и нажмите кнопку "**Find ****now**..." В списке результатов поиска выберите нужный объект пользователя.
Щелкните правой кнопкой мыши на учетной записи пользователя. В меню выберите **Move**...
Откроется окно Перемещения:
###
В этом окне перейдите к OU или контейнеру, в который вы хотите переместить пользователя, выберите его и нажмите **OK**.
### Перемещение учетной записи пользователя через командную строку
Чтобы переместить объект пользователя (в нашем случае GSoul) в OU "**Employees**", запустите **dsmove.exe** в cmd со следующими параметрами:
```
dsmove.exe "CN=GSoul,CN=Users,DC=office,DC=local" -newparent "OU=Employees,DC=office,DC=local"
```
### Перемещение учетной записи пользователя с помощью Windows PowerShell
Используйте следующий код Powershell для перемещения учетной записи пользователя (GSoul в нашем примере) в OU "**Employees**".
```
Import-Module ActiveDirectory
Move-ADObject -Identity:"CN=GSoul,CN=Users,DC=office,DC=local" -TargetPath:"OU=Employees,DC=office,DC=local"
```
## Как переименовать учетную запись пользователя в Active Directory
Для того чтобы переименовать учетную запись пользователя, выполните следующие инструкции.
### Переименование учетной записи пользователя в Active Directory Users and Computers
В Active Directory Users and Computers (dsa.msc) в меню View включите **Advanced Features**.
Перейдите к OU или контейнеру, в котором находится нужный объект пользователя. Щелкните его правой кнопкой мыши и выберите **Find**... В поле **Name** введите имя пользователя и нажмите "**Find ****now**". В результатах поиска щелкните правой кнопкой мыши нужную учетную запись пользователя и выберите **Rename**. Введите новое имя и нажмите **Enter**.
В появившемся окне введите новые данные для других атрибутов и нажмите **OK**.
### Переименование учетной записи пользователя через командную строку
Для переименования пользователя используйте команду **dsmove.exe** со следующими параметрами:
```
dsmove.exe "CN=GSoul,CN=Users,DC=office,DC=local" -NewName "Gordon Gates"
```
### Переименование учетной записи пользователя с помощью PowerShell
Чтобы переименовать пользователя в AD, введите этот код в Windows PowerShell:
```
Import-Module ActiveDirectory
Rename-ADObject -Identity "CN=GSoul,CN=Users,DC=office,DC=local" -NewName "Gordon Gates"
```
https://serverspace.uz/support/help/kak-upravlyat-uchetnymi-zapisyami-polzovatelej-v-active-directory-chast-3-vklyuchenie-vyklyuchenie-i-ustanovka-sroka-dejstviya-dlya-polzovatelej.mdБазовые действия с учетной записью пользователя в домене Active Directory. Используем Active Directory Users and Computers, cmd.exe, Windows PowerShell
Пользовательские учетные записи одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а также управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (RSAT) для Active Directory Domain Services.
Для того, чтобы не было ошибок доступа нам нужен аккаунт администратора домена или группы операторов учетных записей (Account Operators group) или нам нужна УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (OU), которую мы будем использовать для хранения аккаунтов.
## Как включить и отключить учетную запись пользователя в Active Directory
Когда вы хотите убрать возможность логина в AD для учетной записи пользователя, вы можете отключить ее. В том случае если объект пользователя отключен, но он вам снова нужен по какой-то причине, например, сотрудник вернулся из декретного отпуска, вы можете включить его снова. Вот руководство, как это сделать несколькими способами.
### Включение и отключение УЗ пользователя с помощью Active Directory Users and Computers
Чтобы включить или отключить пользователя с помощью ADUC, сделайте следующее:
Войдите в Active Directory Users and Computers (**dsa.msc**). Найдите OU или контейнер, где содержится нужный вам аккаунт, щелкните правой кнопкой по OU и выберите "**Find...**". В поле "Name" введите имя объекта и нажмите кнопку **Find Now**. В поле "**Search**" щелкните правой кнопкой мыши на юзера и выберите **Enable account** для включения УЗ или **Disable account** для ее отключения в зависимости от того, что вам нужно, и нажмите OK.
### Включение и отключение аккаунта пользователя с помощью cmd.exe
Это задача для dsmod.exe, для включения учетной записи используйте его со следующими параметрами:
```
dsmod.exe "CN=GSoul,CN=Users,DC=office,DC=local" -disabled no
```
А эта команда отключит учетную запись:
```
dsmod.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -disabled yes
```
### Включение и отключение учетной записи пользователя с помощью Windows PowerShell
Ниже приведен код PowerShell для включения учетной записи пользователя:
```
Import-Module ActiveDirectory
Enable-ADAccount -Identity "CN=GRobinson,CN=Users,DC=office,DC=local"
```
А эта предназначена для отключения учетной записи пользователя:
```
Import-Module ActiveDirectory
Disable-ADAccount -Identity "CN=GRobinson,CN=Users,DC=office,DC=local"
```
## Как установить срок действия учетной записи для пользователя
Учетные записи пользователей могут быть настроены с истечением срока действия после определенного периода времени.
### Установка срока действия учетной записи с помощью Active Directory Users and Computers
Чтобы установить срок действия учетной записи в ADUC, выполните следующие простые шаги:
Откройте ADUC (**dsa.msc**), перейдите к OU или контейнеру, в котором находится нужный пользователь, щелкните правой кнопкой мыши на белом пространстве и выберите **Find...**. В поле **Name** введите имя или начало имени и нажмите кнопку **Find Now**. В результатах поиска выберите юзера, которому нужно установить срок действия. Щелкните правой кнопкой мыши на пользователя и выберите **Properties**. Перейдите на вкладку **Account**, в нижней части вкладки измените параметр **Account expires** (Истечение срока действия учетной записи) на **End of:** и выберите нужную дату. Нажмите **OK**, чтобы сохранить изменения.
### Установка срока действия учетной записи с помощью командной строки
Используйте dsmod.exe для установки истечения срока действия учетной записи в Active Directory:
```
dsmod.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -acctexpires 90
```
### Установка срока действия учетной записи с помощью Windows PowerShell
Чтобы установить срок действия учетной записи для пользователя в Employees OU, выполните следующий PowerShell скрипт:
```
Import-Module ActiveDirectory
Set-ADAccountExpiration -Identity "CN=GSoul,OU=Employees,DC=office,DC=local" -DateTime "11/11/2021 12:00:00"
```
https://serverspace.uz/support/help/kak-upravlyat-uchetnymi-zapisyami-polzovatelej-v-active-directory-chast-4-nahozhdenie-zablokirovannyj-polzovatelej-i-ih-razblokirovka.mdРассказываем как находить заблокированные учетные записи в AD и разблокировать их с использованием Active Directory Administrative Center и Windows PowerShell
Пользовательские учетные записи одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а также управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (RSAT) для Active Directory Domain Services.
Для того, чтобы не было ошибок доступа, нам нужен аккаунт администратора домена или группы операторов учетных записей (Account Operators group) или нам нужна УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (OU), которую мы будем использовать для хранения аккаунтов.
## Как найти заблокированные учетные записи пользователей
Учетные записи пользователей могут быть по какой-то причине заблокированы, и вам нужно устранить причину блокировки учетной записи, но сначала вам нужно получить список заблокированных пользователей. Есть несколько способов получить такой список.
### Поиск заблокированных учетных записей пользователей с помощью Active Directory Administrative Center
Запустите Active Directory Administrative Center (**dsac.exe**). Выберите OU или контейнер, в котором вы хотите найти заблокированных пользователей. Разверните верхнюю панель, нажав на кнопку со стрелкой в правом верхнем углу.
Нажмите на кнопку **Add criteria** и выберите критерий **Users with enabled but locked accounts** (Пользователи с включенными, но заблокированными учетными записями). Нажмите **Add**, и заблокированные учетные записи будут отображены.
### Поиск заблокированных учетных записей пользователей с помощью Windows PowerShell
Чтобы найти заблокированные учетные записи в AD, используйте следующий PowerShell скрипт:
```
Import-Module ActiveDirectory
Search-ADAccount -LockedOut -UsersOnly | Format-Table Name,LockedOut -AutoSize
```
## Как разблокировать учетную запись пользователя
Блокировка учетной записи - один из самых частых случаев, с которым сталкиваются системные администраторы в организациях. Иногда трудно установить ее причину, поэтому требуется глубокое расследование. Но это не повод отключать политику блокировки учетных записей, поскольку она помогает защитить учетные записи пользователей от брутфорс атак. В этом руководстве мы рассмотрим простые методы разблокировки пользователей.
### Разблокирование учетных записей пользователей через Active Directory Administrative Center
Чтобы разблокировать объект пользователя, откройте Active Directory Administrative Center (**dsac.exe**), перейдите к OU или контейнеру, в котором содержатся пользователи. Щелкните правой кнопкой мыши на пользователя, которого вы хотите разблокировать, и выберите Properties. В появившемся окне нажмите **Unlock account** (Разблокировать учетную запись) и затем **OK**.
Чтобы разблокировать все заблокированные учетные записи в определенном OU или контейнере, выберите OU или контейнер, в котором вы хотите найти заблокированных пользователей. Разверните верхнюю панель, нажав на кнопку со стрелкой в правом верхнем углу. Нажмите на кнопку **Add criteria** и выберите критерий **Users with enabled but locked accounts** (Пользователи с включенными, но заблокированными учетными записями). Нажмите **Add**, и заблокированные учетные записи отобразятся. Выберите все отображенные учетные записи, зайдите в свойства и нажмите **Unlock account** (Разблокировать учетную запись).
### Разблокировка учетных записей пользователей с помощью Windows PowerShell
Чтобы разблокировать учетную запись пользователя, необходимо выполнить следующий код PowerShell:
```
Import-Module ActiveDirectory
Unlock-ADAccount -Identity "CN=User,CN=Users,DC=office,DC=local"
```
А для того, чтобы разблокировать все заблокированные учетные записи, используйте команду Search-ADAccount:
```
Import-Module ActiveDirectory
Search-ADAccount -LockedOut -UsersOnly | Unlock-ADAccount
```
https://serverspace.uz/support/help/kak-upravlyat-uchetnymi-zapisyami-polzovatelej-v-active-directory-chast-5-izmenenie-neskolkih-polzovatelej-odnovremenno.mdСпособ изменения нескольких учетных записей в домене Active Directory одновременно. Используем Active Directory Users and Computers, Active Directory Administrative Center и Windows PowerShell
Пользовательские учетные записи одни из самых популярных объектов в AD. Они нужны для аутентификации и авторизации на рабочих компьютерах и во многих сервисах, интегрированных с AD. Решение различных проблем связанных с УЗ пользователей, а также управление ими является одной из главных рутин для администраторов и специалистов хелпдеска. Данное руководство поможет вам сделать это несколькими способами. Чтобы управлять УЗ пользователей, необходимо войти на контроллер домена или сервер или устройство с установленными средствами удаленного администрирования сервера (RSAT) для Active Directory Domain Services.
Для того, чтобы не было ошибок доступа нам нужен аккаунт администратора домена или группы операторов учетных записей (Account Operators group) или нам нужна УЗ, которая делегирована на создание пользовательских объектов в домене или в нужной нам организационной единице (OU), которую мы будем использовать для хранения аккаунтов.
## Как изменить несколько пользователей одновременно
Иногда возникает необходимость изменить один атрибут для нескольких объектов. Изменение нескольких объектов одновременно немного отличается от редактирования одного пользователя, есть несколько способов добиться этого.
## Изменение нескольких пользователей одновременно с помощью ADUC
ADUC хорош, когда вам нужен простой фильтр для группировки пользователей. В нем есть механизм выбора, например, вы можете выбрать несколько пользователей, зажав кнопку **ctrl**, или группу, зажав кнопку **shift**. Вы также можете легко выбрать всех пользователей в OU или контейнере нажав **Ctrl + A**.
Чтобы изменить несколько пользователей с помощью ADUC, выполните следующие действия:
В Active Directory Users and Computers (dsa.msc) перейдите к OU или контейнеру, в котором находятся нужные пользователи. Выберите пользователей, выделив их, удерживая кнопку **Shift**.
Щелкните объекты правой кнопкой мыши и выберите **Properties**.
Измените атрибуты, которые вы хотите изменить, и нажмите OK.
## Изменение нескольких пользователей одновременно с Active Directory Administrative Center
Active Directory Administrative Center отличается от ADUC тем, что предоставляет дополнительные фильтры.
Запустите Active Directory Administrative Center и выберите OU в качестве базовой области для фильтра. Разверните верхнюю панель, нажав на кнопку с маленькой стрелкой в правом верхнем углу. Нажмите кнопку **Add criteria**:
Добавьте критерии, которые вы хотите использовать, например, пользователей с истекшим сроком действия паролей, или вы можете создать фильтр по одному из атрибутов. Выберите фильтр и нажмите кнопку **Add**, чтобы добавить его. Вы можете использовать такие соответствия, как "**начинается с**"(starts with), "**равно**"(equals), "**не равно**"(does not equal) и прочие.
После получения списка объектов на основе вашего фильтра нажмите **Ctrl+A**, чтобы выделить их все, и нажмите **Properties**.
Измените атрибуты, которые вы хотите, и нажмите OK.
## Изменение нескольких пользователей одновременно с помощью Windows PowerShell
Настройка фильтра в PowerShell более сложна, ее лучше всего использовать для многократного изменения нескольких пользовательских объектов.
В нашем примере мы отфильтруем все учетные записи с именем, начинающимся на "admin", и включим функцию предотвращения случайного удаления(**Prevent** **from** **accidental** **deletion**) для всех этих учетных записей:
```
Import-Module ActiveDirectory
Get-ADUser -ldapfilter "(sAMAccountName=admin*)" | Set-ADObject - ProtectedFromAccidentalDeletion $true
```
https://serverspace.uz/support/help/kak-dobavit-tom-i-sozdat-razdeli-v-linux.mdИнструкция по монтированию новых томов и созданию разделов на виртуальных серверах с ОС семейства Linux. Пример: деление тома на три раздела.
[step num="1"]
После добавления тома в панели управления, необходимо сделать его доступным для операционной системы.
[/step]
Подключитесь к серверу с правами суперпользователя и выполните просмотр всех томов, введите команду:
```
fdisk -l
```
Пример результата:
```
Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 775D7B55-7C02-4DAE-AC79-B81AAA1BECE3
```
```
Device Start End Sectors Size Type
/dev/vda1 2048 104447 102400 50M EFI System
/dev/vda2 104448 52428766 52324319 25G Linux filesystem
```
```
Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
```
В данной инструкции будет рассмотрено монтирование добавленного устройства /dev/vdb, размером 40 GB, и разбиение его на три раздела:
● 1 основной (primary), размером 10GB
● 1 расширенный (extended), размером 30 GB
● 1 логический (logical) раздел внутри расширенного, размером 20 GB
На одном физическом жестком диске можно создать только 4 основных (primary) раздела. Расширенный (extended) раздел - это особый тип раздела, который содержит "свободное пространство", в котором может быть создано более четырех основных разделов. Разделы, созданные в расширенном разделе, называются логическими (logical) разделами.
[step num="2"]
Запустите утилиту fdisk для создания разделов:
[/step]
```
fdisk /dev/vdb
```
[step num="3"]
Для добавления нового раздела, используйте команду n:
[/step]
```
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
```
[step num="4"]
Для выбора основного типа используйте опцию p:
[/step]
```sql
Select (default p): p
```
Примечание: для выбора значений, установленных по-умолчанию (default), нажмите Enter.
[step num="5"]
Укажите номер раздела:
[/step]
```
Partition number (1-4, default 1): 1
```
[step num="6"]
Введите первый сектор:
[/step]
```
First sector (2048-83886079, default 2048): 2048
```
[step num="7"]
Введите последний сектор:
[/step]
```
Last sector, +sectors or +size{K, M, G} (2048-83886079, default 83886079): +10G
```
[step num="8"]
Далее необходимо добавить расширенный (дополнительный) раздел, при выборе типа указав опцию е:
[/step]
```sql
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
```
[step num="9"]
Укажите номер раздела:
[/step]
```
Partition number (2-4, default 2): 2
```
[step num="10"]
Чтобы размер раздела 2 занял всё оставшееся дисковое пространство, при выборе секторов, можно оставить значения по-умолчанию, нажав клавишу Enter:
[/step]
```
First sector (2099200-83886079, default 2099200):
```
```
Last sector, +sectors or +size{K, M, G} (2099200-83886079, default 83886079):
```
[step num="11"]
Далее необходимо создать логический раздел внутри расширенного (логический раздел будет определен автоматически). Для этого в утилите fdisk необходимо ввести команду n, затем выбрать логический раздел при помощи опции l:
[/step]
```sql
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
```
[step num="12"]
Начало сектора, выберете по-умолчанию, нажав клавишу Enter:
[/step]
```
First sector (2101248-83886079, default 2101248):
```
[step num="13"]
Введите последний сектор, согласно требуемому размеру логического раздела:
[/step]
```
Last sector, +sectors or +size{K, M, G} (2101248-83886079, default 83886079): +20G
```
[step num="14"]
Для отображения добавленных разделов, воспользуйтесь командой p:
[/step]
```
Command (m for help): p
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 20973567 20971520 10G 83 Linux
/dev/vdb2 20973568 83886079 62912512 30G 5 Extended
/dev/vdb5 20975616 62918655 41943040 20G 83 Linux
```
Примечание: на расширенном разделе осталось 10 GB свободного пространства, на котором можно создать еще несколько логических разделов.
[step num="15"]
Используйте команду w для сохранения внесенных изменений:
[/step]
```
Command (m for help): w
```
[step num="16"]
Теперь на основном и логическом разделах необходимо создать файловую систему с помощью утилиты mkfs, указав после точки тип файловой системы:[/step]
```
mkfs.ext4 /dev/vdb1
mkfs.ext4 /dev/vdb5
```
Примечание: расширенный раздел не может быть отформатирован с файловыми системами, такими как ext3, FAT или NTFS, и не может непосредственно содержать данные.
[step num="17"]
Далее необходимо создать точку монтирования для каждого раздела:
[/step]
Примечания:
- обычно точка монтирования создается в директориях /mnt или /media;
- для расширенного раздела точку монтирования создавать не нужно.
```
mkdir /mnt/volume1
mkdir /mnt/volume2
```
[step num="18"]
Для изменения режима доступа к разделам, необходимо выполнить следующую команду:
[/step]
```bash
chmod -R 660 /mnt/volume1
chmod -R 660 /mnt/volume2
```
[step num="19"]
Для автоматического монтирования разделов после перезагрузки сервера внесите изменения в файл /etc/fstab. С помощью текстового редактора, например nano, откройте этот файл:
[/step]
```
nano /etc/fstab
```
[step num="20"]
В открывшийся файл необходимо добавить следующие строки и сохранить изменения:
[/step]
```
/dev/vdb1 /mnt/volume1 ext4 defaults 0 0
/dev/vdb5 /mnt/volume2 ext4 defaults 0 0
```
Для монтирования разделов используйте команду:
```
mount -a
```
[step num="21"]
Для вывода информации о списке подключенных устройств и занятом пространстве, воспользуйтесь командой:
[/step]
```
df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/vdb1 9.8G 37M 9.3G 1% /mnt/volume1
/dev/vdb5 20G 45M 19G 1% /mnt/volume2
```
https://serverspace.uz/support/help/dobavlenie-toma-i-sozdanie-razdelov-v-freebsd.mdИнструкция по монтированию новых томов и созданию разделов на виртуальных серверах с операционной системой семейства FreeBSD
После добавления тома в панели управления, необходимо сделать его доступным для операционной системы.
[step num="1"]
Подключитесь к серверу с правами суперпользователя и выполните просмотр всех томов, введите команду:
[/step]
```
geom disk list
```
Пример результата:
```yaml
Geom name: vtbd0
Providers:
Name: vtbd0
Mediasize: 26843545600 (25G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r1w1e3
descr: (null)
ident: BHYVE-72B8-3EC6-7459
rotationrate: unknown
fwsectors: 0
fwheads: 0
Geom name: vtbd1
Providers:
Name:vtbd1
Mediasize: 42949672960 (40G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r0w0e0
descr: (null)
ident: BHYVE-679A-4260-62AE
rotationrate: unknown
fwsectors: 0
fwheads: 0
```
В данной инструкции будет рассмотрено монтирование добавленного устройства /dev/vtbd1, размером 40 GB на примере стандартных разделов с файловой системой типа ufs (Unix Fast File System — быстрая файловая система UNIX) и с добавлением swap-раздела (раздела подкачки). (не забыть перекрёстные ссылки)
Примечание: если добавленный том не отображается в списке, следует перезагрузить сервер.
[step num="2"]
Создайте разметку тома со схемой GPT, при помощи команды:
[/step]
```
gpart create -s gpt /dev/vtbd1/code>
```
Примечание: GPT - GUID Partition Table, формат таблицы разделов, использующая систему адресации логических блоков (LBA).
Для просмотра тома выполните команду:
```
gpart show vtbd1
```
```
=> 40 83886000 vtbd1 GPT (40G)
40 83886000 - free - (40G)
```
**Пример 1**
[step num="3"]
Для добавления первого раздела размером 10 GB, используйте команду:
[/step]
```
gpart add -t freebsd-ufs -s 10G /dev/vtbd1
```
```
vtbd1p1 added
```
В данном примере будет добавлен второй раздел, размером 20 GB:
```
gpart add -t freebsd-ufs -s 20G /dev/vtbd1
```
```
vtbd1p2 added
```
Третий раздел может быть добавлен без указания начального LBA и размера, таким образом он будет создан на всем свободном пространстве:
```
gpart add -t freebsd-ufs /dev/vtbd1
```
```
vtbd1p3 added
```
[step num="4"]
Для проверки получившихся разделов:
[/step]
```
gpart show vtbd1
40 83886000 vtbd1 GPT (40G)
40 20971520 1 freebsd-ufs (10G)
20971560 41943040 2 freebsd-ufs (20G)
62914600 20971440 3 freebsd-ufs (10G)
```
[step num="5"]
Для создания файловой системы на разделах тома выполните следующие команды. Опция _-U_ указывает использование механизма Soft Update, который увеличивает скорость создания и удаления файлов путём кэширования:
[/step]
```
newfs -U /dev/vtbd1p1
newfs -U /dev/vtbd1p2
newfs -U /dev/vtbd1p3
```
[step num="6"]
Далее необходимо создать точку монтирования для каждого раздела:
[/step]
```
mkdir /mnt/volume1
mkdir /mnt/volume2
mkdir /mnt/volume3
```
[step num="7"]
Для изменения режима доступа к разделам, необходимо выполнить следующую команду:
[/step]
```bash
chmod -R 660 /mnt/volume1
chmod -R 660 /mnt/volume2
chmod -R 660 /mnt/volume3
```
[step num="8"]
Для автоматического монтирования разделов после перезагрузки сервера внесите изменения в файл /etc/fstab. С помощью текстового редактора, например vi, откройте этот файл:
[/step]
```
vi /etc/fstab
```
[step num="9"]
В открывшийся файл необходимо вставить следующие строки и сохранить изменения:
[/step]
```
/dev/vtbd1p1 /mnt/volume1 ufs rw 0 0
/dev/vtbd1p2 /mnt/volume2 ufs rw 0 0
/dev/vtbd1p3 /mnt/volume3 ufs rw 0 0
```
[step num="10"]
Для монтирования разделов используйте команду:
[/step]
```
mount -a
```
[step num="11"]
Для вывода информации о списке подключенных устройств и занятом пространстве, воспользуйтесь командой:
[/step]
```
df -h
```
```
Filesystem Size Used Avail Capacity Mounted on
...
/dev/vdbd1p1 9.7G 8.0K 8.9G 0% /mnt/volume1
/dev/vdbd1p2 19G 8.0K 18G 0% /mnt/volume2
/dev/vdbd1p3 9.7G 8.0K 8.9G 0% /mnt/volume3
```
**Пример 2 (добавление swap-раздела)**
Для начала необходимо добавить swap-раздел размером 1 GB, при помощи команды:
```
gpart add -t freebsd-swap -s 1G /dev/vtbd1
```
```
vtbd1p1 added
```
Второй раздел может быть добавлен без указания начального LBA и размера, таким образом он будет создан на всем свободном пространстве:
```
gpart add -t freebsd-ufs /dev/vtbd1
```
```
vtbd1p2 added
```
Для проверки получившихся разделов:
```
gpart show vtbd1
40 83886000 vtbd1 GPT (40G)
40 2097152 1 freebsd-swap (1.0G)
2097192 81788848 2 freebsd-ufs (39G)
```
Для создания файловой системы на разделах тома выполните следующую команду. Опция _-U_ указывает использование механизма Soft Update, который увеличивает скорость создания и удаления файлов путём кэширования:
```
newfs -U /dev/vtbd1p2
```
Примечание: раздел типа swap не требует форматирования.
Далее необходимо создать точку монтирования для каждого раздела, кроме swap:
```
mkdir /mnt/volume1
```
Для изменения режима доступа к разделам, необходимо выполнить следующую команду:
```bash
chmod -R 660 /mnt/volume1
```
Для автоматического монтирования разделов после перезагрузки сервера внесите изменения в файл /etc/fstab. С помощью текстового редактора, например vi, откройте этот файл:
```
vi /etc/fstab
```
В открывшийся файл необходимо вставить следующие строки и сохранить изменения:
```
/dev/vtbd1p1 none swap sw 0 0
/dev/vtbd1p2 /mnt/volume1 ufs rw 0 0
```
Для монтирования разделов используйте команду:
```
mount -a
```
Далее необходимо примонтировать swap-раздел:
```
swapon /dev/vtbd1p1
```
Используя команду swapinfo, можно проверить успешное монтирование раздела:
```
swapinfo
```
```
Device 1K-blocks Used Avail Capacity
/dev/vtbd1p1 1048576 0 1048576 0%
```
Для вывода информации о списке подключенных устройств и занятом пространстве, воспользуйтесь командой:
Примечание: раздел типа swap в данном списке не отображается.
```
df -h
```
```
Filesystem Size Used Avail Capacity Mounted on
...
/dev/vdbd1p2 38G 8.0K 35G 0% /mnt/volume
```
https://serverspace.uz/support/help/kak-sozdat-rezervnuyu-kopiyu-servera-linux-s-pomoshhyu-veeam-agent.mdУстановка и настройка конфигурации агента Veeam. Инструкция по созданию резервных копий Linux-сервера с помощью Veeam Agent.
В нашем примере мы будем использовать ОС Ubuntu 20.04. Поэтому вам нужно скачать программное обеспечение агента Veeam отсюда [Veeam Software for Enterprise](https://www.veeam.com/linux-backup-download.html?ad=in-text-link) и скопировать deb-файл на сервер с Ubuntu, на которой вы планируете установить агента.
## Установка агента Veeam
[step num="1"]
Перейдите в каталог, где вы сохранили пакет veeam-release, и установите пакет с помощью следующих команд для Debian / Ubuntu
[/step]
```
dpkg -i ./veeam-release* && apt-get update
```
И просто запустите установку пакета
```bash
sudo apt-get install veeam -y
```
После завершения установки просто запустите
```
veeam
```
Запустится руководство агента veeam.
## Конфигурация агента Veeam
Резервное копирование с помощью Veeam Agent для Linux это достаточно просто. В нашем случае я буду делать полную резервную копию всей системы и перемещать ее на samba шару.
Итак, давайте создадим задачу для резервного копирования нашего сервера на наше хранилище с помощью smb. Запускаем вим:
```
veeam
```
Нам сразу же предлагается указать файл лицензии. Поскольку у нас нет лицензии, мы просто жмем Enter и проваливаемся в главное окно программы.
Нажимаем C (configure) для настройки задания резервного копирования. Даем заданию имя и выбираем, что мы хотим создать резервную копию всей машины.
В качестве места назначения для резервного копирования системы мы выбираем Shared Folder.
Далее необходимо ввести параметры доступа к месту резервного копирования. В моем примере я использовал общую папку на сервере Windows, поэтому я выбрал SMB share.
В пункте Restore points указывается глубина архива. Это количество копий, которые вы хотите сохранить на сервере. Если вы делаете резервное копирование каждый день и укажете 14, то будут сохранены резервные копии системы за последние 14 дней. Если вы делаете резервное копирование каждый второй день, то 28 дней и так далее.
Можно создать несколько заданий с разной глубиной резервного копирования. Например: каждый день - 7 резервных копий, раз в неделю - 4, раз в месяц - 12. Таким образом, у вас всегда будут последние 7 резервных копий системы за эту неделю. Затем по одной резервной копии в неделю за последний месяц и 12 резервных копий в месяц за последний год. Нажмите Enter для продолжения.
Дополнительные опции отключены по умолчанию в бесплатной версии, но если у вас есть лицензия, я рекомендую включить опцию Backup encryption чтобы зашифровать резервные копии.
Нажмите Enter для продолжения и увидите расписание резервного копирования, в бесплатной версии вы также не можете его редактировать.
Нажмите Enter и finish.
[step num="2"]
Резервное копирование сразу начнется. Если вы получите ошибку:
[/step]
```
The current system does not support cifs. Please install the cifs client package.
```
Установите пакет cifs:
```bash
sudo apt-get install cifs-utils
```
[step num="3"]
Перезапустите veeam и продолжайте.
[/step]
Теперь вы запустили процесс резервного копирования и можете следить за его ходом.
Если вы получаете ошибку о том, что snapshot creation failed.
[step num="4"]
Попробуйте сделать следующее:
[/step]
Нам нужно докопаться до первопричины, поэтому мы перейдем в папку журнала резервного копирования VEEAM –
```
cd /var/log/veeam/Backup
```
Перейдите к журналу заданий и откройте его с помощью текстового редактора, например nano.
[step num="5"]
Мы обнаружили, что modeprobe не смог загрузить модуль veeamsnap.
[/step]
Для этого нам нужно сначала установить linux-headers, сначала проверьте версию вашего ядра:
```
uname -r
```
И установите нужные linux-headers:
```bash
sudo apt-get install linux-headers-5.4.0.-74-generic -y
```
А теперь нам нужно загрузить veeamsnap:
```
modprobe veeamsnap
```
[step num="6"]
Запустите veeam снова и нажмите S. Теперь все должно работать.
[/step]
[step num="7"]
После завершения резервного копирования системы вы можете проверить содержимое общего диска, обратившись к нему непосредственно из Windows.[/step]
На этом настройка полного резервного копирования сервера завершена. Резервная копия системы теперь находится в безопасном месте.
https://serverspace.uz/support/help/kak-sozdat-rezervnuyu-kopiyu-servera-windows-s-pomoshhyu-veeam-backup-agent.mdИнструкция по созданию резервной копии сервера Windows с помощью агента Veeam Backup Agent. Создание и настройка образа восстановления.
Резервное копирование важно для каждой организации, особенно сейчас, когда мы ежедневно сталкиваемся с атаками вирусов вымогателей. Вот инструкция о том, как легко создать резервную копию вашего сервера Windows с помощью агента Veeam.
## Скачивание и установка Veeam агента
Сначала нам нужно скачать Veeam backup agent с [официального сайта](https://www.veeam.com/windows-endpoint-server-backup-free.html).
После завершения загрузки нам нужно установить это программное обеспечение, для этого вам понадобятся права администратора. Распакуйте Veeam Agent Windows и запустите его.
Примите все условия и приступайте к установке. Установка проста и завершится автоматически.
Пропустите настройку резервного копирования на внешнее устройство.
И в следующем окне нажмите кнопку Finish
## Создание образа восстановления
Сначала нам нужно создать образ для восстановления, оставьте все по умолчанию и нажмите Next
Выберите место, где вы хотите сохранить этот образ, вы можете использовать для этого локальное или сетевое хранилище, в моем случае я сохраню его на локальном диске, нажмите Next и Create. Дождитесь завершения создания образа, это займет некоторое время.
Нажмите Finish и откройте Veeam Agent в трее Windows.
## Настройка Veeam Backup Agent
Сначала он попросит установить файл лицензии, нажмите No и затем "Add new job". Откроется мастер.
Здесь нам нужно указать имя задания и нажать Next. После этого нужно выбрать тип резервного копирования. В нашем примере я буду делать полную резервную копию всей системы.
Нажмите Next выберите место назначения резервной копии, в нашем примере мы сделаем резервную копию на общий диск.
Опция хранение резервных копий в течение 7 дней определяет глубину архива. Это количество дней, в течение которых вы хотите хранить резервные копии на сервере. Если вы делаете резервное копирование каждый день и указываете 8 дней, то резервные копии системы будут сохранены за последние 8 дней. Если вы делаете резервное копирование каждый второй день, то за 4 дня и так далее.
Можно создать несколько заданий с разной глубиной резервного копирования. Например: каждый день 7 дней, раз в неделю 30 и раз в месяц 365. Таким образом, у вас всегда будут последние 7 резервных копий системы за эту неделю. Затем одна резервная копия в неделю за последний месяц и 12 резервных копий в месяц за последний год.
Нажмите кнопку Дополнительно, чтобы добавить некоторые дополнительные настройки, вам нужно перейти на вкладку Storage и включить шифрование резервных копий:
Создайте, введите, а затем сохраните надежный пароль в менеджере паролей. Нажмите Ок, затем Next.
Теперь нам нужно настроить расписание, в этом примере я буду делать только одну резервную копию. Поэтому я сниму флажок с опции Daily.
Нажмите кнопку Apply, проверьте Summary и отметьте опцию " Run the job when I click Finish ". И нажмите Finish.
Резервное копирование сразу же начнется, и мы можем проверить его состояние, нажав на задание, а затем на "Processing".
https://serverspace.uz/support/help/kak-upravlyat-gruppami-v-ad-sozdanie-i-udalenie-grupp.mdВ этой инструкции вы узнаете как создавать, изменять и удалять группы в AD. Глобальные, универсальные, локальные группы домена — подробно
В типичных лесах Active Directory группы необходимы для авторизации прав пользователей. Они могут использоваться для распространения информации через почту или предоставлять доступ к файловым ресурсам, службам или даже делегации прав в AD. Группы бывают встроенными, это те группы, которые доступны сразу после установки, к примеру Domain Admins или Account Operators.
Active Directory Users and Computers (ADUC) и Active Directory Administrative Center (ADAC) - это инструменты, которые предоставляют вам графический пользовательский интерфейс для взаимодействия с группами и управления ими. ADAC отличается от ADUC тем, что в нем есть история команд PowerShell, которая дает возможность видеть PowerShell команды выполняемые за графическим интерфейсом.
Для управления группами необходимо войти на доменный контроллер, сервер в домене или устройство с установленными средствами удаленного администрирования сервера (RSAT). Говоря о необходимых правах доступа, нам нужно состоять в группе Domain Admins, Account Operators или иметь делегированную учетную запись, на создание групп в домене или в конкретной OU.
## Область применения групп
Таких существует три вида:
- Глобальные группы;
- Универсальные группы;
- Локальные группы домена.
Решая, какую группу создать, необходимо знать, какие существуют типы и чем они отличаются. Глобальные и универсальные группы могут состоять в локальных группах, а глобальные группы могут состоять в универсальных. Поэтому очень часто можно увидеть, что глобальные группы создаются для отделов, универсальные группы - для групп распространения, а локальные группы домена - для доступа к различным ресурсам.
## Типы групп
Существует два типа групп:
- Группы распределения;
- Группы безопасности.
Группы распределения не имеют секьюрити идентификатора (SID) и, следовательно, не могут быть использованы для предоставления прав доступа к ресурсам, за исключением Microsoft Exchange Server. А группы безопасности имеют SID и следовательно используются для назначения доступов. Так же возможно преобразовать группу распределения в группу безопасности, и наоборот.
## Как создать группу
Существует несколько методов создания группы.
### Создание группы в ADUC
[step num="1"]
Откройте ADUC (dsa.msc). Найдите OU или контейнер, где вы хотите создать группу. Щелкните правой кнопкой мыши на эту OU и выберите **New->Group**.
[/step]
[step num="2"]
В окне "**New Object - Group**" укажите следующие значения:
- Имя группы.
- Область действия группы или примите значение по умолчанию - Глобальная группа.
- Тип группы или примите значение по умолчанию - группа безопасности.
Нажмите OK, чтобы создать группу.
[/step]
## Создание группы с помощью ADAC
[step num="3"]
Откройте ADAC (dsac.exe). Щелкните правой кнопкой мыши на имени домена и выберите в меню пункт **New->Group**.
[/step]
[step num="4"]
В окне "Создание группы" укажите следующие значения:
- Имя группы
- Область действия группы или примите значение по умолчанию - Глобальная группа.
- Тип группы или примите значение по умолчанию - группа безопасности.
Нажмите OK, чтобы создать группу.
[/step]
### Создание группы в cmd.exe
[step num="5"]
Используйте следующий скрипт cmd.exe для создания группы в AD:
[/step]
```
dsadd.exe group "CN=IT,OU=OfficeCorp,DC=office,DC=local".
```
### Создание группы через Windows PowerShell
[step num="6"]Используйте следующий код PowerShell:
[/step]
```
Import-Module ActiveDirectory
```
```
New-ADGroup -GroupCategory Security -GroupScope Global -Name "ITGroup" -Path "OU=OfficeCorp,DC=office,DC=local" -SamAccountName "ITGroup"
```
## Как удалить группу в AD
Вот несколько методов, как это сделать.
### Удаление пользователя с помощью ADAC
[step num="7"]
Откройте ADUC (dsa.msc). Найдите OU или контейнер, где находится группа, которую вы собираетесь удалить.
[/step]
В меню **Action** выберите **Find...** В поле Name введите имя группы, которую вы собираетесь удалить, а затем нажмите **Find Now**. В списке результатов поиска выберите нужную вам группу.
[step num="8"]
Щелкните правой кнопкой мыши по группе и выберите Delete. Нажмите Yes в окне подтверждения.
[/step]
### Удаление группы с помощью ADAC
[step num="9"]
Откройте программу ADAC (dsac.exe). Найдите OU или контейнер, где находится группа, которую вы собираетесь удалить. На панели главного меню в разделе **Global Sea****rch** введите имя группы, которую вы собираетесь удалить, и нажмите Enter.
[/step]
В списке результатов глобального поиска выберите группу, щелкните по ней правой кнопкой мыши и выберите **Delete**. Нажмите **Yes** во всплывающем окне подтверждения.
### Удаление группы в cmd.exe
[step num="10"]
Используйте следующую команду в cmd для удаления группы:
[/step]
```
dsrm.exe "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local".
```
Введите "y" для подтверждения и нажмите Enter.
### Удаление группы с помощью Windows PowerShell
[step num="11"]
Используйте следующий код PowerShell:
[/step]
```
Import-Module ActiveDirectory
```
```
Remove-ADObject -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local"
```
Введите "y" для подтверждения и нажмите Enter.
https://serverspace.uz/support/help/ustanovka-linuxnginxmysqlphp-na-ubuntu-20-04.mdУстановка и настройка стека LEMP (Linux + Nginx + MySQL + PHP) на сервер под Ubuntu 20.04. Проверка работы БД MySQL и PHP совместно с Nginx
## Введение:
Стек LEMP - это группа программ, которые могут использоваться для обслуживания динамических страниц и приложений, написанных на PHP.В аббревиатуре каждая буква отвечает за отдельную программу:L-Linux,E-Engine-X,M-MySQL,P-PHP.
Эта статья поможет вам установить LEMP на Ubuntu 20.04.
**В Serverspace вы можете создать сервер с уже установленным приложением LEMP**.
## Установка Nginx сервера
Обновим пакеты сервера:
```bash
sudo apt update
```
После этого, установим Nginx:
```bash
sudo apt install nginx
```
При появлении запроса введите Y, чтобы подтвердить, что вы хотите установить Nginx. После завершения установки веб-сервер Nginx будет активен и запущен на вашем сервере Ubuntu 20.04.
Далее, проверяем включенные профили UFW:
```
sudo ufw app list
```
Вам вылезет окно с доступными приложениями:
```
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
```
Рекомендуем включить самый строгий профиль, который будет пропускать необходимый трафик:
```
sudo ufw allow 'Nginx HTTP'
```
Проверим изменения:
```
sudo ufw status
```
Вам должны вылезти следующие команды, которые покажут, что HTTP-трафик, теперь разрешен:
```
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
```
Затем, введите домен или IP адрес в браузере и вас перенаправит на целевую страницу Nginx по умолчанию:
```
http://domen_or_IP_adress
```
Если вы видите эту страницу, это означает, что вы успешно установили Nginx и включили HTTP-трафик для вашего сервера:
Скриншот №1. Встречающее окно Nginx
## Установка MySQL
Установим базу данных MySQL,чтобы иметь возможность хранить и управлять данными для нашего сайта. Сделаем это с помощью данных команд:
```xml
sudo apt install mysql-server
```
При появлении запроса подтвердите установку, введя Y, а затем введите ENTER.
Когда установка будет завершена, рекомендуем запустить сценарий безопасности, который предварительно идет вместе с MySQL. Этот скрипт удалит некоторые небезопасные настройки по умолчанию и заблокирует доступ к вашей системе баз данных:
```
sudo mysql_secure_installation
```
Отвечаем на задаваемые вопросы:
```
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: Y
```
There are three levels of password validation policy:
```
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
```
Имейте в виду, что если вы введете 2 для самого сильного уровня, вы получите ошибки при попытке установить любой пароль, который не содержит цифр, прописных и строчных букв и специальных символов.
После, вас попросят повторить пароль, который не следует путать с системным паролем. Системный пароль-пароль от административного пользователя, у которого есть полный доступ к системе баз данных. Несмотря на то, что метод аутентификации по умолчанию, для пользователя MySQL root, исключает использование пароля, даже если он установлен, вы должны определить надежный пароль здесь в качестве дополнительной меры безопасности.
Если вы включили проверку пароля, вам будет показана сила пароля, и ваш сервер спросит, хотите ли вы продолжить работу с этим паролем. Если вы довольны своим текущим паролем, введите Y для подтверждения:
```
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
```
Для остальных вопросов нажмите Y и нажмите клавишу ENTER. Это позволит удалить некоторых анонимных пользователей и тестовую базу данных, отключить удаленные корневые логины и загрузить эти новые правила, чтобы MySQL немедленно принял внесенные вами изменения.
Когда вы закончите, проверьте, можете ли вы войти в консоль MySQL, с помощью:
```bash
sudo mysql
```
Это позволит подключиться к серверу MySQL в качестве администратора базы данных. Результат должен выглядеть так:
```bash
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
```
Чтобы выйти из MySQL,используем:
```bash
mysql> exit
```
Для повышения безопасности рекомендуем иметь выделенные учетные записи пользователей с менее широкими привилегиями, настроенными для каждой базы данных, особенно если вы планируете иметь несколько баз данных, размещенных на вашем сервере.
Теперь ваш сервер MySQL установлен и защищен.
## Установка PHP
Установим PHP для обработки кода и создания динамического контента сервера.
Чтобы установить пакеты php-fpm и php-mysql, выполним следующие команды:
```bash
sudo apt install php-fpm php-mysql
```
При появлении запроса введите Y и ENTER для подтверждения установки.
Теперь у нас есть установленные компоненты PHP.
## Настройка Nginx
При использовании сервера Nginx мы можем создавать серверные блоки (аналогичные виртуальным хостам в Apache) для упаковки в единый пакет сведений о конфигурации и размещения нескольких доменов на одном сервере. В этой инструкции мы будем использовать vash_domen в качестве примера доменного имени.
В Ubuntu 20.04 Nginx имеет один серверный блок, включенный по умолчанию, и настроен для обслуживания документов из каталога в /var / www / html. Хотя это хорошо работает для одного сайта, это может стать трудным для управления, если вы размещаете несколько сайтов. Создадим структуру каталогов в /var /www для веб-сайта vash_domen, оставив/var/www / html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует каким-либо другим сайтам.
Создаем корневой каталог для vash_domen:
```
sudo mkdir /var/www/vash_domen
```
Затем, назначим владельцу каталога переменную $USER, которая будет ссылаться на текущего системного пользователя:
```bash
sudo chown -R $USER:$USER /var/www/vash_domen
```
Затем откроем новый конфигурационный файл в каталоге nginx sites-available, используя любой редактор командной строки. Здесь мы будем использовать nano:
```
sudo nano /etc/nginx/sites-available/vash_domen
```
Создастся новый пустой файл, в который нужно будет вставить следующие строки:
```css
server {
listen 80;
server_name vash_domen www.vash_domen;
root /var/www/vash_domen;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
```
После редактирование, сохраним и закроем файл. Если вы использовали nano, вы можете сделать это, введя CTRL+X, а затемY и ENTER для подтверждения.
Активируем свою конфигурацию, с помощью конфигурационного файла из каталога nginx sites-enabled:
```
sudo ln -s /etc/nginx/sites-available/vash_domen /etc/nginx/sites-enabled/
```
Это подскажет Nginx какую использовать конфигурацию в следующий раз, когда она будет перезагружена. Вы можете проверить свою конфигурацию на наличие ошибок, с помощью:
```
sudo nginx -t
```
Если вы обнаружите какие-либо ошибки, вернитесь к своему конфигурационному файлу, чтобы просмотреть его содержимое, прежде чем продолжить работу
Перезагрузим Nginx для того чтобы все изменения применились:
```bash
sudo systemctl reload nginx
```
Наш новый сайт теперь активен, но корень /var/www/vash_domen по-прежнему пуст. Создадим файл index.html в этом месте, чтобы мы могли проверить, что наш новый серверный блок работает так, как ожидалось:
```
nano /var/www/vash_domen/index.html
```
Добавляем в файл следующие строки:
Скриншот №2.Вводим следующие строки.
Теперь перейдем в браузер и получим подключимся через доменное имя или IP-адрес вашего сервера:
```
http://domen_swrvera_ili_IP_adress
```
Если вы увидите данное изображение, значит ваш серверный блок Nginx работает:
Скриншот №3. Проверка работы Nginx
Вы можете оставить этот файл на месте в качестве временной целевой страницы для вашего приложения, пока не настроите index.php file для его замены. Как только вы сделаете это, не забудьте удалить или переименовать index.html file из корня вашего документа, так как он будет иметь приоритет по умолчанию.
Теперь ваш стек LEMP полностью настроен.
## Проверяем работу PHP совместно с Nginx
Проверить работу вашего стека LEMP для того, чтобы проверить, что Nginx может правильно передавать .php files на ваш PHP-процессор.
Сделаем это, открыв новый файл под названием info.php в любом текстовом редакторе:
```
nano /var/www/vash_domen/info.php
```
Вводим следующие строки в новый файл. Это действительный PHP код, который будет возвращать информацию о вашем сервере:
Скриншот №4.Вставляем следующие строки в редактор.
После этого, сохраним и закроем файл. Если вы использовали nano, вы можете сделать это, введя CTRL+X, а затемY и ENTER для подтверждения.
Теперь, получим доступ, подключившись через браузер, используя домен или IP адрес.
http://domen_servera_ili_IP_adress/info.php
Нам покажется страницу, содержащая подробную информацию о нашем сервере:
Скриншот №5. Полная информация о PHP
После проверки соответствующей информации о вашем PHP-сервере на этой странице, лучше всего удалить созданный вами файл, так как он содержит конфиденциальную информацию. Сделаем это с помощью следующей команды:
```xml
sudo rm /var/www/vash_domen/info.php
```
Вы всегда можете восстановить этот файл, если он вам понадобится позже.
## Проверяем подключение к базе данных
Если вы хотите проверить, способен ли PHP подключаться к MySQL и выполнять запросы к базе данных, нужно создать тестовую таблицу и запросить ее содержимое из PHP-скрипта. Прежде чем мы сможем это сделать, нам нужно создать тестовую базу данных и нового пользователя MySQL, правильно настроенного для доступа к ней.
Мы создадим базу данных с именем primer_database и пользователя с именем primer_user, но вы можете изменить эти название на ваше усмотрение.
Сначала, подключимся к MySQL
```bash
sudo mysql
```
Чтобы создать новую базу данных, выполним следующую команду:
```bash
mysql> CREATE DATABASE primer_database;
```
Теперь создадим нового пользователя, с необходимыми правами, с помощью следующей команды. Мы используем "very_strong_password",как пароль для нового пользователя, но вы должны заменить это значение безопасным паролем по вашему собственному выбору:
```bash
mysql> CREATE USER 'primer_user'@'%' IDENTIFIED WITH very_strong_password BY 'password';
```
Теперь даем пользователю права на использование базы данных:
```bash
mysql> GRANT ALL ON primer_database.* TO 'primer_user'@'%';
```
Это даст пользователю полные права доступа к базе данных, а также запретит создавать или изменять другие базы данных на вашем сервере.
После этого, выходим из MySQL с помощью команды:
```bash
mysql> exit
```
Вы можете проверить, есть ли у нового пользователя соответствующие права, снова войдя в консоль MySQL, с использованием пользовательских учетных данных:
```bash
sudo mysql
```
```bash
mysql -u primer_user -p
```
После входа в консоль MySQL убедитесь, что у вас есть доступ к базе данных:
```bash
mysql> SHOW DATABASES;
```
Если все работает вам выдаст следующий текст:
```
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
```
Далее, создаём тестовую таблицу с именем zadanii_list:
```bash
mysql> CREATE TABLE primer_database.zadanii_list (
```
```bash
mysql> item_id INT AUTO_INCREMENT
```
```bash
mysql> content VARCHAR(255)
```
```bash
mysql> PRIMARY KEY(item_id)
```
```bash
mysql> );
```
Вставляем несколько строк содержимого в тестовую таблицу:
```bash
mysql> INSERT INTO primer_database.zadanii_list (content) VALUES ("Chto-to vaznoe")
```
Чтобы подтвердить, сохраненные данные в нашей таблице, запустим ее:
```
+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | Chto-to vazhnoe | |
+---------+--------------------------+
1 row in set (0.000 sec)
```
Убедившись, что в тестовой таблице у нас есть действительные данные, выходим из консоли MySQL:
```bash
mysql> exit
```
Теперь мы можем создать скрипт PHP, который будет подключаться к MySQL и запрашивать наш контент. Создаем новый PHP-файл в своем пользовательском каталоге, используя предпочитаемый вами редактор. Мы будем использовать nano для этого:
```
nano /var/www/vash_domen/zadanii_list.php
```
Вставим следующий текст в наш скрипт zadanii_list.php:
Скриншот №6. Вставляем нужный текст в редактор
После этого, сохраним и закроем файл. Если вы использовали nano, вы можете сделать это, введя CTRL+X, а затемY и ENTER для подтверждения.
Теперь мы можем получить доступ к этой странице в своем браузере, вбив имя домена или IP-адрес, настроенный для вашего сайта, а затем /zadanii_ist.php:
```
http://vash_domen_ili_IP/zadanii_list.php
```
Если все работает правильно, мы увидим следующий текст:
Скриншот №7. Наша таблица
Это означает, что наш PHP готов для подключения и взаимодействия с нашим сервером MySQL.
## Вывод:
В этом руководстве мы создали гибкую основу для обслуживания сайтов и приложений PHP для ваших посетителей, используя Nginx в качестве сервера и MySQL в качестве системы баз данных.
https://serverspace.uz/support/help/kak-nastroit-xrdp-server-na-ubuntu-18-04.mdПошаговая инструкция описывает процесс настройки xRDP для подключения к Ubuntu с графическим интерфейсом Xforce через протокол RDP из Windows
В этой инструкции описан процесс настройки сервера xRDP для подключения к Ubuntu 18.04 с легковесным окружением Xfce по протоколу RDP. Это может быть очень удобно если вам нужно из Windows зайти на Linux систему, используя графический интерфейс.
## Что такое xRDP?
**xRDP** — это бесплатная реализация RDP (протокола удаленного рабочего стола) Microsoft с открытым исходным кодом, которая позволяет операционным системам, отличным от Microsoft Windows (таким как Linux и BSD), предоставлять полностью функциональный RDP-совместимый удаленный рабочий стол.
## Установка и настройка
Подключитесь к вашему ubuntu серверу по протоколу SSH и выполните обновление системы:
```bash
sudo apt-get update
```
```bash
sudo apt-get upgrade -y
```
Установите и включите утилиту xRDP:
```bash
sudo apt-get install xrdp
sudo systemctl enable xrdp
sudo systemctl restart xrdp
```
Установите окружение xfce:
```bash
sudo apt-get install xfce4 xfce4-terminal
```
Откройте порт RDP для возможности удаленного подключения:
```
sudo ufw allow 3389/tcp
```
Перезагрузите xRDP сервер, чтобы изменения вступили в силу:
```
sudo /etc/init.d/xrdp restart
```
## Подключение к рабочему столу
Если вы не знаете IP адрес Ubuntu сервера, его можно посмотреть введя команду:
```
Ifconfig -a
```
В нашем случае это будет 10.0.0.2. Для подключения откройте приложение Windows Подключение к удаленному рабочему столу (mstsc.exe). Введите IP-адрес сервера и нажмите Подключить:
При подключении появится предупреждение безопасности. Нажмите Да:
В открывшемся окне в качестве сессии выборе Xorg, введите логин и пароль для пользователя, нажмите OK:
_**Важно**_: Если вы подключаетесь по xRDP, то вам необходимо указать пароль и root-пользователя.Если же вы подключаетесь по SSH, то вам понадобится ключ или пароль, которые настраивались во время создания сервера в облаке.
В результате произойдет подключение к рабочему столу.
Рабочий стол окружения Xfce:
Если при подключении к **xrdp** показывает черный экран необходимо зайти в папку **/etc/xrdp**, и внести изменения в файл **startwm.sh**.
```
sudo nano /etc/xrdp/startwm.sh
```
Нужно добавить:
```
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
```
Перед строкой:
```
test –x /etc/X11/Xsession && exec /etc/X11/Xsession
```
После внесения изменений необходимо перезапустить службу XRDP:
```bash
sudo systemctl restart xrdp
```
Теперь можно снова запустить **mstsc.****exe** и подключиться к нашему Ubuntu серверу.
https://serverspace.uz/support/help/kak-upravlyat-gruppami-v-ad-2.mdВ этой инструкции вы узнаете как добавлять и удалять пользователей из групп с помощью ADUC, ADAC и Windows PowerShell. Как управлять членством в группах
В типичных лесах Active Directory группы необходимы для авторизации прав пользователей. Они могут использоваться для распространения информации через почту или предоставлять доступ к файловым ресурсам, службам или даже делегации прав в AD. Группы бывают встроенными, это те группы, которые доступны сразу после установки, к примеру Domain Admins или Account Operators.
Active Directory Users and Computers (ADUC) и Active Directory Administrative Center (ADAC) - это инструменты, которые предоставляют вам графический пользовательский интерфейс для взаимодействия с группами и управления ими. ADAC отличается от ADUC тем, что в нем есть история команд PowerShell, которая дает возможность видеть PowerShell команды выполняемые за графическим интерфейсом. Для управления группами необходимо войти на доменный контроллер, сервер в домене или устройство с установленными средствами удаленного администрирования сервера (RSAT).
Говоря о необходимых правах доступа, нам нужно состоять в группе Domain Admins, Account Operators или иметь делегированную учетную запись, на создание групп в домене или в конкретной OU.
## Управление членством в группах
Управлять членством в группе можно несколькими способами:
## Управление членством в группе через ADUC
### Добавление пользователей в группу
Откройте ADUC (dsa.msc). Перейдите в OU, где находится нужный пользователь. В меню **Action** выберите **Find...**. В поле **Name **введите имя пользователя, которого вы хотите добавить в группу, а затем нажмите Enter.
Щелкните правой кнопкой мыши на нужном пользователе и выберите в меню пункт "**Add ****to ****a ****group...**".
В окне "**Select ****Group**" введите имя нужной группы, или нажмите кнопку "**Advanced**" для поиска нужной группы. Нажмите кнопку "Check Names", а затем OK, чтобы добавить пользователя в группу.
### Удаление пользователя из группы
Перейдите к нужной OU или контейнеру, в котором хранится нужная группа. В меню "**Action**" выберите "**Find...**". В поле "**Name**" введите имя нужной группы и нажмите Enter. Щелкните группу правой кнопкой мыши и выберите "**Properties**". Переключитесь на вкладку "**Members**". В окне "**Group ****Properties**" выберите пользователя и нажмите "**Remove**", для удаления.
Нажмите "Да" в окне подтверждения, а затем OK и все готово.
## Управление членством в группах с помощью ADAC
### Добавление пользователя в группу
Запустите ADAC, в левой панели навигации переключитесь на "**Tree ****view**". Перейдите к OU или контейнеру, в котором находится пользователь и в поле **Global ****Search** найдите нужного пользователя, для этого введите имя объекта пользователя в область поиска, а затем нажмите **Enter**. В списке результатов глобального поиска выберите нужного пользователя. Щелкните правой кнопкой мыши по нему и выберите **Add ****to ****a ****group**....
В окне "**Select ****Groups**" введите имя группы, в которую вы хотите добавить учетную запись. Нажмите "Check Names", a затем OK, чтобы завершить добавление пользователя.
### Удаление пользователя из группы
Чтобы удалить пользователя перейдите в OU или контейнер, в котором находится группа. В разделе "Global Search" введите название группы, а затем нажмите Enter. В списке результатов глобального поиска выберите нужную группу. Щелкните по ней правой кнопкой мыши и выберите в **Properties**. Слева выберите пункт **Members**, как показано на следующем скриншоте экрана:
В разделе Выберите нужного пользователя и нажмите **Remove**, чтобы удалить пользователя из группы. Будьте внимательны, в этом случае подтверждающего окна показано не будет.
## Использование Windows PowerShell
Используйте следующую команду для того чтобы добавить пользователя в группу:
```
Import-Module ActiveDirectory
```
```
Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul"
```
Используйте следующие строки кода PowerShell для удаления пользователя из группы в Active Directory:
```
Import-Module ActiveDirectory
```
```
Remove-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul"
```
Нажмите "y" для подтверждения действия.
https://serverspace.uz/support/help/kak-upravlyat-gruppami-v-ad-3.mdУправление группами с временным членством — просмотр членства и поиск пустых групп с помощью PowerShell в Active Directory
В типичных лесах Active Directory группы необходимы для авторизации прав пользователей. Они могут использоваться для распространения информации через почту или предоставлять доступ к файловым ресурсам, службам или даже делегации прав в AD. Группы бывают встроенными, это те группы, которые доступны сразу после установки, к примеру Domain Admins или Account Operators.
Active Directory Users and Computers (ADUC) и Active Directory Administrative Center (ADAC) - это инструменты, которые предоставляют вам графический пользовательский интерфейс для взаимодействия с группами и управления ими. ADAC отличается от ADUC тем, что в нем есть история команд PowerShell, которая дает возможность видеть PowerShell команды выполняемые за графическим интерфейсом.
Для управления группами необходимо войти на доменный контроллер, сервер в домене или устройство с установленными средствами удаленного администрирования сервера (RSAT). Говоря о необходимых правах доступа, нам нужно состоять в группе Domain Admins, Account Operators или иметь делегированную учетную запись, на создание групп в домене или в конкретной OU.
## Управление группами с временным членством
Членство в группе может быть временным. Чтобы использовать эту опцию, Active Directory FFL должен быть не ниже Windows Server 2012 R2. А так же должна быть включена функция управления привилегированным доступом. Этого можно добиться с помощью следующих строк PowerShell кода:
```
Import-Module ActiveDirectory
```
```
Enable-ADOptionalFeature "Privileged Access Management Feature" -Scope ForestOrConfigurationSet -Target office.local
```
Введите "y" для подтверждения этого действия. Обратите внимание, что эта функция необратима и не может быть отключена.
## Установка истекающих сроков членства в группах с помощью PowerShell
Обычно для добавления объекта пользователя в группу используются следующие строки PowerShell:
```
Import-Module ActiveDirectory
```
```
Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul"
```
Однако, чтобы добавить в группу пользователя временно, необходимо использовать другой PowerShell код:
```
Import-Module ActiveDirectory
```
```
Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul" -MemberTimeToLive (New-TimeSpan -Days 14)
```
Чтобы просмотреть оставшееся время у пользователя на пребывание в группе, используйте следующие строки кода PowerShell:
```
Import-Module ActiveDirectory
```
```
Get-ADGroup "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Property member -ShowMemberTimeToLive
```
Обратите внимание на параметр TTL, это и будет оставшееся время. Данный параметр отображается в секундах.
## Просмотр членства во вложенных группах
Эта инструкция покажет вам, как отобразить всех членов группы, даже членов вложенных групп.
С помощью ADUC
Для отображения списка пользователей можно зайти во вкладку Members и войти в свойства каждой вложенной группы, чтобы просмотреть всех их членов. Однако, когда вложенных групп много, выполнить такое действие становится очень сложно.
Просмотр всех членов группы, включая вложенные, с помощью PowerShell
Используйте следующие строки кода PowerShell для перечисления всех членов группы:
```
Import-Module ActiveDirectory
```
```
Get-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Recursive | Out-GridView
```
## Поиск пустых групп
Это руководство поможет вам найти группы без членов. Каждый объект в Active Directory занимает ресурсы. Когда группа не используется, вы можете рассмотреть возможность ее удалить, чтобы освободить место для других, более важных объектов.
## Поиск пустых групп с помощью PowerShell
Используйте следующие строки PowerShell, чтобы найти все группы без членов в Active Directory:
```
Import-Module ActiveDirectory
```
```
Get-ADGroup -Filter * -Properties members | Where-Object {$_.Members.count -eq 0} | Out-GridView
```
https://serverspace.uz/support/help/shpargalka-po-cmd-komandam-v-windows.mdБолее 50 часто используемых команд в командной строке Windows, которые помогут системному администратору и простому пользователю в работе с ОС
**Командная строка Windows** — это мощное средство для работы с операционной системой, предоставляющее пользователям и администраторам возможность выполнять множество задач с большей эффективностью по сравнению с использованием графического интерфейса. Одним из ключевых аспектов работы с командной строкой является знание базовых команд для управления файлами, системными процессами, настройками дисков и сетевыми ресурсами. В этой статье мы рассмотрим наиболее часто используемые команды Windows CMD, которые станут незаменимыми в вашей повседневной работе. Мы также объясним их назначение и практическое применение, чтобы вы могли быстро освоиться и повысить свою продуктивность при работе с операционной системой. В конце статьи будет представлен раздел FAQ, где мы ответим на распространенные вопросы, которые могут возникнуть у новичков
## Управление файлами и папками
- **COPY** — Копирование файлов в другое место.
Используется для создания копий файлов в другой директории.
- **DIR** — Отображение файлов и папок в текущем каталоге.
Полезно для просмотра содержимого директории.
- **DEL** или **ERASE** — Удаление файлов.
Команда для удаления ненужных файлов.
- **EDIT** — Запуск редактора файлов.
Открывает простой текстовый редактор для работы с текстовыми файлами.
- **CD** — Изменить каталог.
Служит для навигации между папками.
- **EXPAND** — Распаковать сжатые файлы.
Для работы с архивами и извлечения файлов.
- **FC** — Сравнивает файлы и показывает различия между ними.
Применяется для нахождения отличий между двумя текстовыми файлами.
- **FIND** — Найти текстовую строку в файле.
Используется для поиска конкретных строк в текстовых файлах.
- **MD** или **MAKEDIR** — Создать папку.
Создает новую директорию в текущем местоположении.
- **MOVE** — Переместить файлы из одной папки в другую.
Перемещает файлы без их копирования, что освобождает место в исходной директории.
- **PRINT** — Отобразить содержимое текстового файла.
Показывает текстовый файл на экране.
- **RD** или **RMDIR** — Удалить папку.
Удаляет пустую папку из системы.
- **REN** или **RENAME** — Переименовать файл или папку.
Применяется для изменения имен файлов или папок.
- **REPLACE** — Замена файлов в одном каталоге на файлы с тем же именем в другом каталоге.
Используется для замены устаревших файлов актуальными версиями.
- **ROBOCOPY** — Использует программу "Робокопи" для копирования файлов и каталогов.
Мощный инструмент для копирования больших объемов данных с возможностью продолжить операцию в случае сбоя.
- **TREE** — Показывает структуру каталогов диска или папки.
Полезно для визуализации иерархии директорий.
- **TYPE** — Отображает содержимое текстовых файлов.
Показывает текст файла прямо в командной строке.
- **OPENFILES** — Управление открытыми локальными или сетевыми файлами.
Помогает управлять файловыми ресурсами, которые в данный момент открыты в системе.
- **XCOPY** — Копирование файлов и деревьев каталогов.
Для создания копий файлов, включая структуру каталогов.
## Приложения и процессы
- **SCHTASKS** — Запланированный запуск приложения (планировщик задач).
Используется для планирования задач в системе.
- **SHUTDOWN** — Выключение или перезагрузка компьютера.
Команда для завершения работы операционной системы.
- **TASKLIST** — Список выполняемых задач.
Выводит список всех активных процессов.
- **TASKKILL** — Остановить или прекратить выполнение задачи.
Используется для принудительного завершения процессов.
- **REG** — Запустить редактор реестра.
Применяется для редактирования системного реестра Windows.
- **RUNAS** — Запуск задачи от имени другого пользователя.
Позволяет запускать приложения с правами другого пользователя.
## Управление дисками
- **CHKDISK** — Проверяет диск и показывает статистику.
Для диагностики ошибок на диске и их исправления.
- **DEFRAG** — Запуск дефрагментации диска.
Упорядочивает файлы на жестком диске, повышая скорость его работы.
- **CHKNTFS** — Отображает или изменяет выполнение проверки диска при загрузке.
Определяет, будет ли проводиться проверка диска при следующем запуске системы.
- **COMPACT** — Отображает и изменяет сжатие файлов в разделах NTFS.
Позволяет сжимать файлы на NTFS-диске для экономии места.
- **CONVERT** — Преобразование дискового тома FAT в NTFS.
Преобразует файловую систему тома с FAT в NTFS без потери данных.
- **DISKPART** — Отображение и настройка свойств разделов диска.
Мощный инструмент для управления разделами дисков.
- **FORMAT** — Форматирование диска.
Очищает диск и подготавливает его для хранения данных.
- **FSUTIL** — Отображение и настройка свойств файловой системы.
Позволяет изменять параметры файловой системы.
- **LABEL** — Создание, изменение или удаление метки тома диска.
Изменяет метку тома для лучшего распознавания.
- **RECOVER** — Восстановление данных с поврежденного или испорченного диска.
Используется для восстановления данных с поврежденных носителей.
- **VOL** — Отображение метки тома и серийного номера диска.
Показывает информацию о метке и серийном номере тома.
**Системная информация**
- **DATE** — Выводит или устанавливает текущую дату.
Позволяет установить или вывести дату системы.
- **TIME** — Выводит или устанавливает системное время.
Команда для установки или отображения текущего времени.
- **DRIVERQUERY** — Отображает текущее состояние и свойства драйвера устройства.
Используется для диагностики проблем с драйверами.
- **HOSTNAME** — Отображает имя компьютера.
Показывает имя текущего устройства в сети.
- **SYSTEMINFO** — Отображает информацию о конфигурации компьютера.
Для получения подробных данных о системе, таких как версия ОС, память и сетевые интерфейсы.
- **VER** — Позволяет просмотреть версию Windows.
Показывает информацию о текущей версии операционной системы.
- **GPRESULT** — Отображает текущие примененные групповые политики (RSoP).
Для диагностики политик безопасности и настроек группы.
- **GPUPDATE** — Обновление групповых политик.
Обновляет примененные групповые политики.
## Сеть
- **IPCONFIG** — Отображает информацию о сетевых интерфейсах.
Выводит информацию о сетевых интерфейсах, таких как IP-адрес и маска подсети.
- **PING** — Отправляет ICMP-запросы на целевой хост, проверяет его доступность.
Используется для диагностики доступности удаленных серверов.
- **TRACERT** — Отображение пути пакетов в сети.
Помогает отслеживать путь передачи данных через сеть.
- **NSLOOKUP** — Поиск IP-адреса по имени ресурса.
Используется для получения IP-адреса ресурса по его доменному имени.
- **ROUTE** — Отображает таблицы сетевых маршрутов.
Позволяет настроить маршруты для передачи данных в сети.
- **ARP** — Показывает таблицу с IP-адресами, преобразованными в физические адреса.
Служит для отображения информации о сетевых устройствах.
- **NETSH** — Запускает программу управления сетевыми настройками.
Для настройки сетевых интерфейсов и управления сетевыми ресурсами.
- **GETMAC** — Показывает MAC-адрес сетевого адаптера.
Используется для получения уникального идентификатора сетевого адаптера.
- **TFTP** — Запускает TFTP-клиент в консоли.
Для передачи файлов через TFTP-сервер.
## Настройка командной строки
- **CLS** — Очистить экран.
Убирает весь текст с экрана командной строки.
- **CMD** — Отображает другую командную строку.
Запускает новую сессию командной строки.
- **COLOR** — Устанавливает цвет текста и фона в консоли.
Для изменения внешнего вида консоли.
- **PROMPT** — Изменение начального текста командной строки.
Настройка отображения приглашения командной строки.
- **TITLE** — Присвоение заголовка для текущего сеанса.
Задает название текущего окна командной строки.
- **HELP** — Запуск справки CMD.
Открывает справку по командам CMD.
- **EXIT** — Выход из командной строки.
Завершает текущую сессию командной строки.
## FAQ
- **Как узнать, какие команды доступны в CMD?**
Введите команду **HELP** для получения списка доступных команд в командной строке.
- **Как использовать команды с правами администратора?**
Для выполнения команд с повышенными правами используйте команду **RUNAS**.
- **Как восстановить удаленные файлы?**
Для восстановления данных можно использовать команду **RECOVER**, если диск был поврежден.
- **Как проверить доступность сервера?**
Используйте команду **PING** для проверки доступности хоста по сети.
https://serverspace.uz/support/help/shpargalka-po-komandam-linux.mdДанная шпаргалка содержит около 100 терминальных команд для операционной системы Linux в помощь системному администратору. Можно распечатать.
Бывает, что некоторые команды терминала_ Linux_ сложно вспомнить, и сохранение их на компьютере или на бумаге в качестве шпаргалки является хорошей практикой. Этот список не является полным, но он содержит наиболее часто используемые команды. Не стесняйтесь добавить свои наиболее часто используемые команды в комментариях ниже, а так же поделиться этим списком.
## Пользователи
- **Id** - Подробная информация о пользователе (uid, gid и группа).
- **last** - Список информации о последних входах в систему, включая время, имя пользователя, ip-адрес и длительность сеанса.
- **who** - Просмотр авторизованных пользователей
- **groupadd "testgroup"** - Создает группу с именем "testgroup".
- **adduser NewUser **- Добавляет пользователя с именем "NewUser".
- **userdel NewUser **- Удаляет пользователя с именем "NewUser".
- **usermod NewUser** - изменяет информацию о пользователе "NewUser".
## Навигация по каталогам
- **cd /.** - Переход в основной каталог
- **cd -** Переход в домашний каталог (переменная $HOME)
- **cd /root** - Переход в каталог /root
- **cd ..** - Переход на один уровень ниже
- **cd /root/.ssh** - Переход в скрытую папку .ssh
## Работа с файлами
- **ls -al** – Показывает файлы и каталоги в текущей папке
- **pwd **- Отображает текущий рабочий каталог
- **mkdir NewFolder** - Создает новый каталог с именем "NewFolder".
- **rm NewFile** - Удаляет файл с именем "NewFile"
- **rm -f NewFile** - Принудительное удаление файла с именем "NewFile"
- **rm -r NewFolder** - Рекурсивно удаляет каталог с именем "NewFolder"
- **rm -rf NewFolder** - Принудительное удаление каталога с именем "NewFolder" рекурсивно
- **cp oldfile1 newfile2** - Копирует содержимое oldfile1 в newfile2
- **cp -r olddir1 newdir2** - Рекурсивно копирует каталог "olddir1" в "newdir2". Dir2 будет создан, если он не существует.
- **mv oldfile1 newfile2** - Переименовывает "oldfile1" в "newfile2".
- **ln -s /etc/log/file logfile** - Создает ярлык на файл
- **touch newfile** - Создает пустой файл с именем newfile
- **cat > newfile** - Помещает STDIN в newfile
- **more newfile** - Выводит содержимое newfile по частям
- **head newfile** - Выводит первые 10 строк файла newfile
- **tail newfile** - Вывод последних 10 строк newfile
- **gpg -c newfile** - Шифрует newfile в формат gpg с помощью пароля и сохраняет его в том же каталоге.
- **gpg newfile.gpg** – Расшифровывает gpg файл
- **wc newfile** - Выводит количество байт, слов и строк нового файла.
## Права доступа к файлам/каталогам
- **chmod 777 /root/ssh** - устанавливает права rwx(чтение, запись, выполнение) на файл ssh для всех, кто имеет доступ к серверу (владелец, группа, другие)
- **chmod 755 /root/ssh** - Настраивает разрешения rwx для владельца и r_x для группы и других.
- **chmod 766 /root/ssh** - Устанавливает права rwx для владельца и rw для группы и других.
- **chown newuser newfile** - Меняет владельца newfile на newuser
- **chown newuser:newgroup newfile** - Изменяет владельца и группу-владельца для newfile на newuser и newgroup
- **chown newuser:newgroup newfolder** - Меняет владельца и группу-владельца каталога newfolder на newuser и newgroup
- **stat -c "%U %G" newfile** - отображает владельцев пользователей и групп newfile
## Поиск
- **grep searchargument newfile** - Поиск аргумента searchargument в newfile
- **grep -r searchargument newfolder** - рекурсивно просматривает все файлы в папке newfolder на наличие поискового аргумента
- **locate newfile** - Показывает все местоположения нового файла
- **find /etc/ -name "searchargument"** - Находит файлы с именем, начинающимся с searchargument, в каталоге /etc
- **find /etc/ -size +50000k** - Найти файлы размером более 50000k в каталоге /etc.
## Архивирование
- **tar -cf archive.tar newfile** - Создать архив 'archive.tar' из файла 'newfile'
- **tar -xf archive.tar** - Распаковать файл 'archive.tar'
- **tar -zcvf archive.tar.gz /var/log/** - Создать архив из каталога /var/log
- **gzip newfile** - Сжать новый файл (он будет иметь расширение .gz).
## Установка программ из пакетов
- **rpm -i pkg_program.rpm** - Устанавливает пакет rpm (CentOS, RHEL...)
- **rpm -e pkg_name** - Удаляет пакет rpm (CentOS, RHEL...)
- **dnf install pkg_name** - Устанавливает пакет с помощью dnf из репозитория. Ранее использовался YUM, но недавно YUM был заменен на DNF. (CentOS, RHEL...)
- **dpkg -i pkg_name** - Установка из deb-пакета (Debian, Ubuntu, Mint...)
- **dpkg -r pkg_name** - Удаляет deb-пакет (Debian, Ubuntu, Mint...)
- **apt install pkg_name** - Устанавливает пакет из репозитория (Debian, Ubuntu, Mint...)
- **apt remove pkg_name** - Удаляет пакет (Debian, Ubuntu, Mint...)
- **apt upgrade && apt update** - Обновление пакетов в системе (Debian, Ubuntu, Mint...) и последующее обновление репозиториев.
## Процессы
- **ps** - Выводит текущие запущенные процессы
- **ps aux | grep 'bash'** - Найти идентификатор процесса 'bash'
- **pmap -x 11** - Сопоставить процесс с PID = 11 в памяти процесса
- **top** - Показывает все запущенные процессы
- **kill pid** - Завершить процесс по pid
- **killall process** - Завершить все процессы с именем "process"
- **pkill process-name** - Послать сигнал процессу
- **bg** - Отправить приостановленный процесс на фоновое выполнение
- **fg** - Вывести запущенный процесс из фона
- **fg process** - Вывести процесс с именем "process" из фонового режима
- **lsof** – Показать списки файлов, которые используют процессы
- **renice 19 PID** - Устанавливает самый низкий приоритет процесса
- **pgrep bash** - найти идентификатор процесса bash
- **pstree** - Показывает древовидное представление процессов
## Система
- **uname** - Показать информацию о системе
- **uname -r** - Показывает информацию о ядре Linux
- **uptime** - Продолжительность работы системы и средняя загрузка
- **hostname** - Показывает имя хоста
- **hostname -i** - Показывает IP-адрес хоста
- **last reboot** - Показывает историю перезагрузок
- **date** - Показывает дату и время
- **timedatectl** - Выводит и изменяет дату и время
- **cal** - Выводит календарь
- **w** - Отображает пользователей, работающих в системе
- **whoami** - Отображает ваше имя пользователя
- **finger root** - Показывает информацию о пользователе root (требуется установка с помощью "apt-get install finger").
## Аппаратное обеспечение
- **dmesg** - Отображает системные сообщения при загрузке системы
- **cat /proc/cpuinfo** - Показывает информацию о процессоре
- **cat /proc/meminfo** - Показывает информацию об оперативной памяти
- **lshw** - Показывает информацию об устройствах
- **lsblk** - Показать информацию о жестком диске
- **free -m** - Освобождает память: RAM и swap (переключатель -m в MB)
- **lspci -tv** - Показывает информацию об устройствах PCI в виде дерева
- **lsusb -tv** - Отображает USB-устройства в древовидном виде.
- **dmidecode** - Показывает информацию об устройствах BIOS
- **hdparm -i /dev/xda** - Показывает информацию о диске
- **hdparm -tT /dev/xda** - Показывает скорость чтения и записи xda
- **badblocks -s /dev/xda** - Показывает тест на наличие битых секторов.
## Использование диска
- **df -h** - Показывает свободное пространство на смонтированных разделах (в байтах)
- **df -i** - Показывает свободные inodes в файловой системе
- **fdisk -l** - Показывает информацию о диске, разделах и файловой системе
- **du -sh** - Отображает нераспределенное пространство на смонтированных разделах в MB, GB, TB
- **findmnt** - Отображает все точки монтирования
- **mount /dev/sdb1 /mnt** - Монтирует раздел 1 диска sdb в /mnt
## Сеть
- **ip addr show** - Показывает IP-адреса всех доступных сетевых интерфейсов
- **ip address add 192.168.0.1/24 dev eth0** - Присваивает адрес 192.168.0.1 интерфейсу eth0
- **ifconfig** - Показывает IP-адреса всех доступных сетевых интерфейсов
- **ping 192.168.0.1** - Отправляет запрос по протоколу ICMP для подключения к узлу 192.168.0.1.
- **whois domain** - Показывает информацию о доменном имени
- **dig domain** - Получает информацию DNS о домене
- **dig -x 192.168.0.1** - Инвертирует разрешение имен
- **host serverspace.ru **- Резолвит адрес хоста
- **hostname -I** - Показывает локальные адреса
- **wget имя_файла(ссылка на файл)** - Загружает файл
- **netstat -pnltu** - Показывает все порты, прослушиваемые на хосте (требуется "apt-get install net-tools")
## Удаленное подключение
- **ssh root@host** - Подключение к удаленному хосту по ssh от имени root
- **ssh -p port_number user@host** - Подключается к удаленному хосту, если используется порт ssh, отличный от 22.
- **ssh host** - Использует соединение по умолчанию в качестве текущего пользователя
- **telnet host** - Использует соединение telnet (порт 23).
https://serverspace.uz/support/help/dobavlenie-toma-i-sozdanie-razdelov-v-windows.mdИнструкция по монтированию новых томов и созданию разделов на виртуальных серверах с операционной системой семейства Windows
Инструкция по монтированию новых томов и созданию разделов на виртуальных серверах с операционной системой семейства Windows.
[step num="1"]
После добавления тома в панели управления, необходимо сделать его доступным для операционной системы.
Подключитесь к серверу с правами суперпользователя. Перейдите в консоль управления Server Manager. В верхнем меню выберите "Tools" → "Computer Management".
[/step]
Примечание: для Windows Server 2008 откройте Server Manager и в вертикальном меню слева выберите "Storage" → "Disk Management".
[step num="2"]
В левом меню в каталоге "Storage", выберите "Disk Management" (1). В правой нижней панели будет отображаться добавленный том (Disk1) с неразмеченной областью (2) (Unallocated - на примере ниже эта область в 40 Gb).
[/step]
[step num="3"]
Далее необходимо сделать добавленный том видимым для операционной системы. Если том находится в состоянии "Offline", предварительно щелкните по нему правой кнопкой мыши, в контекстном меню выберите пункт "Online".
[/step]
[step num="4"]
В модуле управления томами щелкните правой кнопкой мыши том, который требуется инициализировать, а затем выберите пункт "Initialize Disk".
[/step]
[step num="5"]
В появившемся диалоговом окне нажмите кнопку ОК, чтобы принять стиль раздела по умолчанию или измените стиль раздела (GPT или MBR).
Примечание: MBR (Master Boot Record) и GPT (GUID Partition Table) представляют собой два разных способа хранения информации о разделах на жестком диске. Данная информация включает в себя как сведения о принципе работы накопителей, так и определяет какой раздел станет загрузочным для системы.
[/step]
[step num="6"]
Для создания простого тома - щелкните правой кнопкой мыши по области неразмеченного пространства, выберите в появившемся меню пункт "New Simple Volume".
[/step]
[step num="7"]
В появившемся окне мастера установки щелкните "Next" и укажите размер тома (вы можете принять вариант по умолчанию и использовать максимальное значение), затем снова щелкните "Next".
[/step]
[step num="8"]
Назначьте для тома букву или примите вариант по умолчанию, затем еще раз щелкните "Next".
[/step]
[step num="9"]
Укажите файловую систему, которую вы хотите использовать (обычно это NTFS), затем щелкните "Next" и "Finish".
[/step]
[step num="10"]
Добавленный том отобразится в списке устройств, а в нижней панели размеченная область.
[/step]
[step num="11"]
В файловом менеджере можно также увидеть добавленное устройство, размером 40 ГБ.
https://serverspace.uz/support/help/kak-vosstanovit-linux-server-s-pomoshhyu-veeam-agent.mdИз этой инструкции вы узнаете простой способ восстановить Linux Server (данные, файлы, разделы) с помощью бесплатной версии Veeam Agent
После резервного копирования тома в Linux Server с помощью агента Veeam, вам нужно иметь возможность восстановить его, если у вас возникнут проблемы с данными, например, повреждение или потеря. Ниже приведена инструкция по восстановлению. Вы можете выполнить ее с любой Linux-машины с установленным агентом Veeam.
Необходимо, чтобы агент Veeam был установлен в системе. Введите _veeam_ в терминале, и откроется приложение Veeam agent.
Нажмите "R", и сразу же откроется окно импортированных резервных копий. Нажмите "i", чтобы загрузить резервную копию с сетевого диска.
Выберите "**Add shared folder**" и нажмите "**Enter**".
Введите путь к общему диску и учетные данные для доступа к нему.
Выберите нужную резервную копию из списка и нажмите "**Enter**".
Резервная копия будет смонтирована по пути **/mnt/backup**. Нажмите "**Enter**", чтобы закрыть окно.
Теперь вы можете просматривать этот путь с помощью команд bash или файлового менеджера, например, midnight commander, и копировать поврежденные или потерянные файлы вручную в исходные места.
Когда вы закончите работу с восстановленными файлами и папками, вы можете отсоединить резервную копию из папки **/mnt/backup**. В панели управления Veeam Agent нажмите клавишу 'u', чтобы размонтировать резервную копию. Veeam Agent остановит сеанс монтирования резервной копии и отобразит окно уведомления.
Нажмите Enter, чтобы закрыть окно и вернуться в панель управления Veeam Agent.
https://serverspace.uz/support/help/kak-vosstanovit-windows-server-s-pomoshhyu-veeam-agent.mdБыстрый способ восстановить Windows Server с помощью бесплатного приложения Veeam Agent. Понадобится резервная копия и 5 минут времени
После создания резервной копии тома на сервере Windows с помощью агента Veeam необходимо иметь возможность восстановить его, если у вас возникнут проблемы с данными, такие как повреждение данных или их потеря. Ниже приведена инструкция по восстановлению тома диска. Вы можете выполнить ее с любой машины Windows с установленным агентом Veeam. В качестве примера мы будем использовать VPS с предустановленным Windows Server.
Нажмите кнопки Windows+S и введите Veeam, в появившемся поиске выберите Volume Restore.
В появившемся окне выберите Network Storage и нажмите Next.
Выберите **Shared folder** и нажмите **Next.**
Введите путь к общему ресурсу с образом резервной копии и введите учетные данные к нему. Нажмите **Next**.
Выберите образ резервной копии для восстановления. Нажмите кнопку **Next**.
Выберите точку восстановления, к которой вы хотите откатить данные. Нажмите кнопку **Next**.
Выберите диск, на который нужно восстановить том. Обратите внимание, что восстановление на основной системный диск невозможно. Если такого диска нет в списке, его нужно сначала создать, а затем снова выполнить процесс восстановления.
Нажмите **Next**, затем нажмите **Restore**.
После завершения процесса восстановления нажмите **Finish**, чтобы закрыть мастер. Теперь вы можете перейти на восстановленный диск и просмотреть восстановленные файлы.
https://serverspace.uz/support/help/kak-ustanovit-menedzher-paketov-chocolatey-na-windows-server.mdВ этой инструкции вы узнаете как легко установить бесплатный менеджер пакетов Chocolatey на Microsoft Windows Server. Что такое Chocolatey и ChocolateyGUI
Эта инструкция поможет вам установить менеджер пакетов Chocolatey на Windows Server, что сделает установку и удаление программ в Windows такой же простой и удобной, как в операционных системах на базе Linux. Кроме того, вы сможете легко обновлять установленные приложения одним щелчком мыши или командой.
## Что такое Chocolatey
Были времена, когда ОС на базе Linux имели очень сложный механизм установки приложений, он сохранился до сих пор, и сейчас вы можете скомпилировать любое приложение из исходного кода с помощью make или magic. Из-за этого разработчики Linux представили очень удобный способ установки приложений - менеджеры пакетов. Теперь у вас есть возможность сравнить компиляцию и современный механизм управления пакетами - apt-get, yum для ОС и pip, gem для языков программирования, где приложения с зависимостями устанавливаются простой командой и так же легко обновляются или удаляются. Windows в данном случае не сделала никаких революционных улучшений, она просто сделала свой магазин, но он по-прежнему не пользуется популярностью.
В Windows по-прежнему приходится искать программы в Интернете и обновлять их вручную, что не только неудобно, но и более опасно, так как можно нарваться на программу с трояном. В данном случае Chocolatey был создан для того, чтобы сделать управление программами в Windows более удобным и похожим на то, как это делается в Linux. Он создал хранилище программ и специальный клиент для Windows, который способен загружать, устанавливать и обновлять программы из этого каталога автоматически.
## Установка Chocolatey
Клиент Chocolatey представляет собой утилиту PowerShell. Чтобы установить его, откройте Windows PowerShell с правами администратора и введите следующий код:
```
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')))
```
Дождемся завершения процесса, и программа будет готова к использованию. После этого вы можете ознакомиться с основными возможностями программы. Для этого введите команду **choco /?**, которая покажет вам, как пользоваться программой и основными командами.
Как вы уже, наверное, поняли, все операции выполняются путем ввода специальных команд в PowerShell. Например, если вам нужно установить программу, просто введите:
```
choco install имя_пакета
```
Чтобы обновить ее:
```
choco update имя_пакета
```
Чтобы просмотреть весь список доступных программ в хранилище, введите:
```
choco list
```
или воспользуйтесь поиском в онлайн-версии каталога - https://community.chocolatey.org/packages?q=.
## ChocolateyGUI
Если вам не очень нравится набирать команды вручную, вы можете получить графический интерфейс для Chocolatey. Он называется ChocolateyGUI и устанавливается путем ввода в PowerShell:
```
choco install chocolateygui
```
Процесс займет некоторое время и потребует ввести "**a**" для подтверждения установки.
Чтобы запустить ChocolateyGUI, просто введите ее название в Поиск Windows, и он выдаст установленную программу.
Программа имеет очень простой и интуитивно понятный интерфейс. Установка программ очень проста - просто щелкните правой кнопкой мыши на нужное приложение из списка и нажмите кнопку install.
Затем немного подождите, пока установка завершится.
После завершения установки вы можете найти программу с помощью Поиска Windows.
Чтобы удалить программу, просто щелкните ее правой кнопкой мыши и выберите удалить.
Чтобы автоматически обновить все программы, просто запустите в PowerShell:
```
choco upgrade all
```
https://serverspace.uz/support/help/kak-uznat-prichinu-blokirovki-uchetnyh-zapisej-v-active-directory.mdРассказываем, как выяснить причину блокировки учетной записи в журнале безопасности — настройка политики блокировки учетных записей
## Возможные причины блокировки пользователя в Active Directory
Данная ситуация существует в компаниях, где настроена политика блокировки учетной записи при вводе определенного количества не правильных паролей, это правильно с точки зрения кибербезопасности так как помогает защититься от брутфорса.
Из основных причин блокировки можно выделить:
- Постоянный маппинг дисков со старыми учетными данными;
- Мобильные устройства, использующие корпоративные сервисы;
- Учетные записи служб, использующие кэшированные пароли, которые были изменены в ходе технического обслуживания;
- Запланированные задачи с устаревшими паролями;
- Программы, использующие сохраненные пароли, которые были изменены;
- Отключенные сеансы сервера терминалов;
- Проблемы с репликацией Active Directory;
- Неправильно настроенные параметры политики домена;
- Вредоносная активность, например, атака перебора паролей.
## Где настраивается политика блокировки учетных записей
Открываем редактор групповой политики, создаем новую политику, называем ее например Account Lockout Policy и щелкаем на нее правой кнопкой мыши и выбираем "Изменить".
- Ставим время до сброса счетчика блокировки на 30 минут;
- Пороговое значение блокировки – 5 ошибок входа в систему;
- Продолжительность блокировки учетной записи – 30 минут.
Закрываем, применяем политику на домен и на целевой машине запускаем gpupdate /force
## Как выяснить причину блокировки учетной записи
Теперь, когда политика включена нам нужно определять из-за чего может все лочиться, и с какого компьютера или устройств, это происходит. Чтобы ответить на этот вопрос нужно настроить специальную политику аудита, призванную следить за соответствующими событиями, по которым вы сможете найти причину блокировок. По умолчанию данный вид аудита не настроен.
Снова открываем редактор групповой политики, создаем политику Audit Policy открываем ее и переходим по такому пути.
Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Политика аудита
Нам нужно включить аудит входа в систему, именно данная политика генерирует события 4771 и 4624. Настраиваем ее на "Успех и отказ".
Так же нужно задать политику аудита событий входа в систему на "Успех и отказ", а так же "Аудит управления учетными записями", чтобы видеть события 4740.
Принудительно обновляем политику и запускаем gpupdate /force на целевой машине
## Какие события отслеживать в журнале безопасность
При некорректном вводе данных генерируется событие 4740, на всех контроллерах домена если он не один. С кодами отказов Kerberos:
- 6 – имя пользователя не существует;
- 12 – Ограничение времени входа в систему;
- 18 – Учетная запись деактивирована, заблокирована или истек срок ее действия;
- 23 – Истек срок действия пароля пользователя;
- 24 – Предварительная аутентификация не удалась(неверный пароль);
- 32 – Истек срок действия тикета;
- 37 – Время компьютера давно не синхронизировалось с доменным.
и кодами ошибок NTLM
Код ошибки (десятичная система) — Код ошибки (16-ричная система) — Описание
- 3221225572 — С0000064 — Такого имени пользователя не существует;
- 3221225578 — С000006А — Верное имя пользователя, но неверный пароль;
- 3221226036 — С0000234 — Учетная запись пользователя заблокирована;
- 3221225586 — С0000072 — Учетная запись деактивирована;
- 3221225583 — С000006Е — Пользователь пытается войти в систему вне обозначенного периода времени;
- 3221225584 — С0000070 — Ограничение рабочей станции;
- 3221225875 — С0000193 — Истек срок действия учетной записи;
- 3221225585 — 0000071 — Истек срок действия пароля;
- 3221226020 — С0000224 — Пользователь должен поменять пароль при следующем входе в систему.
## Как расследовать причину блокировки
Открываем журнал событий и идем в журнал безопасность (Security)" именно в нем собираются EventID которые могут помочь определить причину блокировки. Там очень много событий, так что отфильтруем их с помощью "Filter Current Log (Фильтр текущего журнала)", она позволит нам выбрать только те события, которые нам нужны. В поле Logged указываем за какой срок нужны данные, в поле Event ID указываем 4740 и нажимаем "Ок"
В отфильтрованных записях с помощью поиска (Find) находим имя интересующей нас учетной записи. В итоге должны отфильтроваться события по указанному логину с кодом 4740 в котором можно найти причину блокировки, например в поле Caller Computer Name будет указано имя компьютера с которого идут феилд логоны и который этим вызывает блокировку. Затем нужно перейти на этот компьютер и смотреть евент логи там, чтобы определить почему данная машина пытается залогиниться под некорректными кредами.
В событиях 4740 можно встреть еще такие причины блокировки как имя сервера, где происходит блокирование Exchange сервер организации – это значит, что проблема в Outlook, почтовом мобильном клиенте или его календарем. Чтобы расследовать данную блокировку нужно смотреть логи IIS на Exchange сервере. Так же можно использовать команду Get-ActiveSyncDeviceStatistics в PowerShell, чтобы увидеть проблемные мобильные устройства.
## Microsoft ALTools
У компании Microsoft есть собственный инструмент для помощи в устранения проблем с блокировкой учетных записей - Microsoft Account Lockout and Management Tool (AlTools.exe). Скачать [Account Lockout Status (LockoutStatus.exe)](https://www.microsoft.com/en-us/download/details.aspx?id=15201) можно с официального сайта Microsoft.
Этот инструмент отображает информацию о заблокированной учетной записи с ее состоянием пользователя и временем блокировки на каждом контроллере домена и позволяет разблокировать ее, щелкнув правой кнопкой мыши на соответствующей записи.
Запустите LockoutStatus.exe > File > Select target > Введите имя учетной записи и домен > OK
Он покажет все статусы связанные с блокировкой по данному аккаунту.
### Инструмент EventCombMT
EventCombMT Tool собирает определенные события с нескольких различных серверов в одно центральное место.
Запустите EventCombMT.exe > Щелкните правой кнопкой мыши на поле Select to search > Выберите Get DCs in Domain > Отметьте контроллеры домена для поиска. - Нажмите меню Searches (Поиск) > Built In Searches (Встроенный поиск) > Account Lockouts (Блокировка учетных записей).
## Другие причины блокировок пользовательских учетных записей
Если проблема локаута кроется в сервисах Google Workspaces (Gmail, Gdrive) то в логах будет отображаться, что феилд логоны идут с компьютера WORKSTATION. Так же подробную информацию о блокировке можно посмотреть в событии 4771. Там можно найти Керберос коды, которые были описаны выше и IP адрес устройства с которого идут фейлд логоны.
**Если в полях ****Caller ****Computer ****Name ивента 4770 и ****Client ****Address 4771 пусто – это значит что вас скорее всего брутфорсят! **
Чтобы определить источник фейлд логонов в этом случае необходимо включить netlogon и смотреть его логи.
NETLOGON Netlogon - это процесс Windows Server, который аутентифицирует пользователей и другие службы в домене. Включите ведение журнала Netlogon: Пуск > Выполнить > введите:
```
nltest /dbflag:2080ffff > OK
```
После перезапуска службы Netlogon соответствующая активность может быть записана в %windir%/debug/netlogon.log.
Можно так же разобрать журналы Netlogon с помощью скрипта:
```
type netlogon.log |find /i "0xC000006A" > failedpw.txt type netlogon.log |find /i "0xC0000234" > lockedusr.txt
```
Внимание! Не забудьте отключить Netlogon после того, как вы зафиксировали события, так как производительность системы может быть немного снижена из-за процесса дебаггинга. Отключите ведение журнала Netlogon:
Пуск > Выполнить > введите:
```
nltest /dbflag:0 > OK
```
В логах можно найти айпишники тех компьютеров, с которых идут скрытые фейлд логоны, это могут быть терминальные сервера или RDP на которые ведется атака по перебору паролей.
Возвращаемся к журналу событий безопасности. Еще может быть полезным событие с кодом 4776, тут тоже можно найти с какой рабочей станции была попытка ввода учетных данных.
Если IP вам неизвестен можно посмотреть его mac на на DHCP сервере или же на сетевом оборудовании, далее с помощью специальных сервисов, которые легко можно найти в интернете можно определить, что за производитель у данного mac-адреса. Это полезно, когда феилд логоны идут с какого-то смартфона или планшета.
Еще полезным будет изучение события 4625, там вы можете обнаружить процесс, из-за которого происходит блокировка учетных записей. Используйте Process Hacker или Process Monitor для просмотра учетных данных активных процессов.
Проблемой блокировки может быть планировщик задач Windows - возможно, есть задача, настроенная на запуск с использованием учетной записи, пароль к которой поменялся.
На локальной машине могут быть сохраненные учетные данные, найти которые можно так:
Пуск> Выполнить > rundll32 keymgr.dll, KRShowKeyMgr > OK.
Или Netplwiz:
Пуск> Выполнить > введите: netplwiz > OK Перейдите на вкладку Дополнительно, а затем нажмите Управление паролями.
Блокировку может вызывать сессия сервера терминалов с устаревшими учетными данными. Для отключения RDP сессии выполните следующие команды в командной строке (Win+R > "cmd"), заменив "server_ip", "name" и "password" на необходимые учетные данные:
```
net use \\server_ip /USER:name password
```
Это позволит вам войти на удаленный сервер без использования RDP.
```
query session /server:name
```
Замените "name" на имя сервера. Здесь вы получите идентификатор сессии.
```
reset session id /server:server_ip
```
Это завершает активную сессию на удаленном сервере.
Блокировку учетной записи может вызывать репликация AD, когда обновление пароля не было реплицировано на все контроллеры домена. Для принудительной репликации выполните следующую команду на вашем DC:
```
repadmin /syncall /AdeP
```
https://serverspace.uz/support/help/probros-mikrofona-po-rdp.mdКак настроить, чтобы на удаленном рабочем столе Windows работал микрофон и звук. Пошаговый мануал по ручному подключению микрофона через RPD
Из-за различных серверных необходимостей, может возникнуть проблема того, что микрофон не работает через RDP, и данную функцию нужно включать вручную. В данной инструкции мы наглядно расскажем о способах исправления данной проблемы.
## Настройка служб перенаправления устройств
Запускаем **gpedit.msc** на локальной машине, с которой будем подключаться к удаленному терминалу.
Обратите внимание, что на локальном компьютере у вас должны быть права администратора.
_Внимание:_ Если у вас вылезает ошибка о том, что не удается найти редактор групповой политики, то воспользуйтесь [данной инструкцией](https://serverspace.uz/support/help/ustanovka-redaktora-gruppovoj-politiki-windows/)
Идем по пути:
Политика "Локальный компьютер" -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов-> Перенаправление устройств -> Включаем "**Разрешить перенаправление воспроизведения звука**" и "**Разрешить перенаправление записи звука**".
**Такую же политику необходимо применить и на удаленном сервере.**
Внимание: Служба должна быть включена на локальном сервере и на сервере к которому вы подключаетесь
## Включение служб Windows Audio
В службах на обеих машинах необходимо включить Windows Audio. Для этого перейдите в меню служб:
Пролистайте вниз и найдите службу Windows Audio:
Затем в меню данной службы выберите "Properties":
В открывшимся меню в пункте "Startup type" в выпадающем списке выберите "Automatic", чтобы служба автоматически включалась при запуске системы:
После чего запустите службу:
## Обновление параметров реестра.
После этого обновите параметры реестра.
Для этого нажмите Win +R и выполните команду REGEDIT:
Затем идем по пути:
```
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
```
Найдите файл fDisavleAudioCapture:
Два раза кликаем по файлу и у нас откроется меню в котором необходимо изменить пункт "Value data" на восемь нулей "00000000":
## Добавляем роль "Remote Desktop Session Host"
В меню пуск запускаем программу "Server Manage":
В правом углу нажмите на меню "Manage" и в нем выберите "Adding roles and Features":
Затем, в открывшемся меню нажмите "Next":
В меню "Installation Type" выберите "Role-based or Fearure-based installation", как показано на скриншоте:
Далее поставьте галочку в меню "Remote Deskctop Services", после чего нажмите "Next":
Следующим шагом поставьте галочку на "Remote Desktop Services":
Следующим шагом просто нажимаем "Next":
На шаге "Role Services" выберите "Remote Desktop Session Host" и в открывшимся окне выбираем "Add features":
После чего просто нажимаем "Next".
На шаге "Confirmation" ставим галочку в поле "Restart the destination server...", затем нажимаем "Install":
После чего начнется загрузка:
Сервер перезапустится, добавленная роль появится.
## Настройка Remote Audio.
Далее откройте настройки подключения к удаленному рабочему столу на вашем локальном сервере:
Нажмите на кнопку "Show options", затем перейдите в "Local resources" и выберите "Remote Audio":
Затем в настройках выберите пункты "Play on this computer" и "Record from this computer":
Кликаем "ОК".
Кликаем на иконку звука с помощью правой кнопки мыши и выбираем меню "**Sound**":
В нем переходим во вкладку "Recording". И проверяем наличие "Удаленного аудио".
Поздравляем! Нас теперь будет слышно на удаленном терминале. Для того чтобы он работал корректно, в приложениях используйте микрофон по умолчанию.
https://serverspace.uz/support/help/shpargalka-po-run-komandam-windows.mdБолее 30 Run-команд в Microsoft Windows, которые помогут системным администраторам быстрее выполнять свою работу с помощью утилиты Run
**Утилита Run** (Выполнить) в Windows — это хороший способ быстрого запуска различных окон настроек системы и приложений. Для их запуска можно использовать сочетания клавиш или команды. Ниже приведен список наиболее популярных команд для запуска самых популярных приложений и настроек в Windows.
## Запуск диалогового окна "Выполнить"
Но сначала нам нужно знать, как открыть диалоговое окно "Выполнить". В Windows есть два способа сделать это:
- Нажмите комбинацию клавиш "Windows+R" на клавиатуре.
- Щелкните правой кнопкой мыши на меню "Пуск" и выберите в меню пункт "Выполнить".
## Шпаргалка по Run командам Windows
- **msconfig** - Системные настройки.
- **msinfo32** - Информация о системе.
- **resmon** - Монитор ресурсов.
- **main.cpl** - Свойства мыши.
- **mstsc** - Подключение к удаленному рабочему столу.
- **cmd** - Командная строка.
- **explorer** - Проводник Windows.
- **taskmgr** - Диспетчер задач.
- **shutdown** - Выключение компьютера.
- **chkdsk** - Проверка диска.
- **cleanmgr** – Очистка диска.
- **dxdiag** - Параметры
- **powershell** - Консоль Windows PowerShell.
- **winver** - Версия
- **controlfolders** - Параметры папок.
- **diskmgmt.msc** – Управление дисками.
- **eventvwr.msc** – Журнал событий.
- **gpedit.msc** - Редактор локальной групповой политики.
- **regedit** - Редактор реестра.
- **sysdm.cpl** - Свойства системы.
- **powercfg.cpl** - Параметры питания.
- **magnify** – Экранная лупа.
- **charmap** - Таблица символов Windows.
- **ncpa.cpl** - Сетевые подключения.
- **mrt** - Средство удаления вредоносных программ Microsoft Windows.
- **devmgmt.msc** - Диспетчер устройств.
- **netplwiz** - Учетные записи пользователей.
- **services.msc** - Службы.
- **appwiz.cpl** - Программы и компоненты.
- **control** - Панель управления.
- **"."** - открыть папку текущего пользователя.
- **osk** - Экранная клавиатура.
- **snippingtool** - Ножницы.
- **mdsched** - Проверка оперативной памяти.
## Самые популярные run команды
- **msconfig** - Системные настройки. В настройках системы пользователь может изменить параметры загрузки Windows и возможности ее фоновых служб. Это может помочь, если на компьютере установлены две операционные системы, или если вам необходим доступ к безопасному режиму загрузки.
- **resmon** - Resource Monitor (Монитор ресурсов). Приложение, с помощью которого вы можете в реальном времени получать информацию о доступных системных ресурсах, таких как процессор, оперативная память, диск и сеть.
- **msinfo32** - Информация о системе. Содержит подробную информацию об аппаратном и программном обеспечении вашего компьютера.
- **main.cpl** - Свойства мыши. В этом меню можно изменить настройки, связанные с работой мыши.
- **mstsc** - Подключение к удаленному рабочему столу. С помощью этого окна вы можете удаленно подключиться к другому компьютеру и управлять им.
- **cmd** - Командная строка. Консоль, в которой можно вводить команды для настройки Windows или запуска приложений. Шпаргалку по ней можно посмотреть здесь.
`
- **explorer** - Проводник Windows. Открывает проводник Windows в месте быстрого доступа.
- **taskmgr** - Диспетчер задач. Открывает диспетчер задач, в котором можно остановить зависшие программы, перезапустить службы и следить за системными ресурсами.
- **shutdown** - Выключение компьютера. Выключает компьютер без предупреждения.
- **chkdsk** – Проверка диска. Запускает утилиту, которая может проверить диск на наличие ошибок и исправить их.
- **cleanmgr** – Очистка диска. Позволяет освободить место на диске путем удаления временных файлов или очистки корзины.
- **dxdiag** - Параметры DirectX. Позволяет получить полные данные об установленных компонентах и драйверах DirectX.
- **powershell** - Консоль Windows Powershell. Открывает консоль Microsoft Powershell, в которой можно запускать различные команды для получения данных или настройки Windows и приложений.
- **winver** - Версия Windows. Открывает окно с полной информацией о версии Windows.
- **contro****lfolders** - Параметры папок. Открывает окна параметров папок, в которых можно изменить такие параметры как "показывать скрытые файлы и папки" или "показывать расширения файлов".
- **diskmgmt.msc** – Управление дисками. Открывает утилиту Disk Management, в которой можно создавать тома и разделы, изменять буквы дискам и т.д..
- **eventvwr.msc** – Просмотр событий. Показывает консоль с событиями безопасности, приложений, системы и другими событиями, генерируемыми Windows и приложениями.
- **gpedit.msc** - Редактор локальной групповой политики. Открывает редактор, в котором можно управлять параметрами локальной групповой политики.
- **regedit** - Редактор реестра. Предоставляет доступ к реестру Windows для настройки параметров.
- **sysdm.cpl** - Свойства системы. Окно настроек для управления безопасностью системы, функциями удаленного подключения, переименования компьютера или ввода его в домен.
- **powercfg.cpl** - Параметры питания. В этом меню вы найдете различные опции для управления настройками питания компьютера.
- **magnify** – Экранная лупа. Эта команда открывает лупу в Windows.
- **charmap** - Таблица символов Windows. Дает вам доступ ко всем символам выбранного вами шрифта.
- **ncpa.cpl** - Сетевые подключения. В этом меню вы можете управлять текущим сетевым подключением и устранять любые проблемы, связанные с работой сетевых устройств.
- **mrt** - Средство удаления вредоносных программ Microsoft Windows. Эта команда запускает средство удаления вирусов от Microsoft. Она сканирует компьютер на наличие вредоносных программ.
- **devmgmt.msc** - Диспетчер устройств. Меню, в котором можно узнать сведения о подключенных устройствах и версии установленных драйверов.
- **netplwiz** - Учетные записи пользователей. В этом меню вы можете управлять учетными записями пользователей, например, добавить новую учетную запись или изменить тип существующей, повысив или понизив ее привилегии. Также есть возможность изменить пароль для выбранной учетной записи и настроить параметры политики безопасности.
- **services.msc** - Службы. В этом окне перечислены все службы, которые работают в фоновом режиме и являются основой функционирования системы Windows.
- **appwiz.cpl** - Программы и компоненты. Хотя в Windows есть и другие способы удаления ненужных программ, эта команда отображает список, состоящий только из сторонних приложений.
- **control** - Панель управления. Содержит все основные настройки Windows
- - "." - открывает папку текущего пользователя. Нам довольно часто приходится открывать папку пользователя в Windows. Чтобы сделать этот процесс быстрее и проще, просто введите точку в диалоговом окне "Выполнить", и вы мгновенно перейдете в нужное вам место.
- **osk** - Экранная клавиатура. Если вы хотите использовать экранную клавиатуру, эта команда пригодится вам.
- **snippingtool** - Ножницы. Snippingtool по-прежнему является основным инструментом для создания скриншотов в Windows без использования сторонних приложений.
- **mdsched** - Проверка оперативной памяти. Если вам кажется, что присутствуют проблемы с производительностью вашей оперативной памяти, этот инструмент поможет вам проверить свои подозрения и, возможно, устранить существующие проблемы.
https://serverspace.uz/support/help/razvertyvanie-servera-s-pomoshhju-api.mdАвтоматизация развертывания облачной инфраструктуры и других услуг Serverspace с использованием CLI, API и Terraform
## API
[Serverspace Public](https://serverspace.ru/services/api/) API — публичный [API](https://serverspace.uz/about/blog/api-chto-eto-takoe-prostymi-slovami/) для взаимодействия с услугами Serverspace. Действия, выполняемые в —панели управления Serverspace, также могут быть выполнены с помощью публичного API.
## Список API ключей
API ключи для доступа к вашему проекту.
### Авторизация
Для работы с публичным API создайте API-ключ для проекта и передавайте его при каждом запросе в заголовке X-API-KEY. Например, при использовании утилиты cURL, заголовок будет выглядеть следующим образом:
```
-H "X-API-KEY: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r"
```
Все запросы API необходимо выполнять через протокол HTTPS, эндпоинт публичного API находится по следующему URL:
```
https://api.serverspace.io/
```
### Примеры использования
Получим информацию о проекте, для этого отправим запрос, воспользовавшись утилитой cURL:
```bash
curl -X GET \
https://api.serverspace.io/api/v1/project \
-H 'content-type: application/json' \
-H 'x-api-key: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r'
```
В результате будет возвращена информация о проекте:
```json
{
"project": {
"balance": 400.07,
"created": "2019-04-08T10:35:53.7021047Z",
"currency": "EUR",
"id": 1,
"state": "Active"
}
}
```
Создадим сервер со следующей конфигурацией: Амстердам, название "api-example", операционная система Debian 10.7, конфигурация сервера 1 ГБ RAM, 1 CPU, загрузочный диск 25 ГБ SSD, 50 Мбит/с:
```bash
curl -X POST \
https://api.serverspace.io/api/v1/servers \
-H 'content-type: application/json' \
-H 'x-api-key: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r' \
-d '{
"location_id": "am2",
"image_id": "Debian-10.7-X64",
"cpu": 1,
"ram_mb": 1024,
"volumes": [
{
"name": "boot",
"size_mb": 25600
}
],
"networks": [
{
"bandwidth_mbps": 50
}
],
"name": "api-example"
}'
```
В результате возвращается ID задачи, по которой можно отследить процесс создания сервера:
```json
{
"task_id" : "lt1507097"
}
```
https://serverspace.uz/support/help/kak-bystro-razvernut-veb-sajt-na-wordpress-na-servere-ubuntu.mdИнструкция по установке WordPress на Ubuntu VPS сервер с базой MySQL. Создание и настройка веб-сервера Apache и БД. 10 минут и сайт готов!
**WordPress** — это одна из наиболее популярных систем управления контентом (CMS) в мире. Миллионы сайтов используют данную платформу, так как она наиболее дружелюбна к обычному пользователю, который не очень разбирается в веб программировании. Сегодня мы с нуля настроим Ubuntu сервер на котором развернем WordPress.
В Serverspace вы можете создать сервер с уже установленным приложением WordPress.
## Создание сервера
Максимально быстро создается так называемый VPS(VDS) сервер. Это виртуальный сервер на базе VMWare или как в нашем случае vStack – уникальная разработка компании ServerSpace, которая позволяет задеплоить сервер за 40 секунд.
Итак, заходим в раздел [VPS серверы](https://serverspace.uz/services/vps-server.md), регистрируемся. Заходим в личный кабинет: vStack cloud -> Серверы -> Создать Сервер. Дальше выбираем операционную систему, в нашем случае это будет Ubuntu 20.04 x64. Затем выбираем локацию сервера, если вы планируете разрабатывать сайт для клиентов из России, то выбирайте российский дата центр.
##
Далее выбираем конфигурацию сервера. Для нашего тестового сайта мы будем использовать виртуальный сервер с 2мя ЦПУ, 4Гб оперативной памяти, 60Гб жесткий диск и 50Мб/c скорость интернет-соединения. Данной конфигурации хватит примерно для 50000 пользователей в сутки, что для нового сайта практически недостижимая мечта в первые несколько месяцев. Если количество пользователей увеличивается, то вы можете с легкостью добавить ресурсов вашему серверу. Этим виртуальные сервера очень хороши на начальном этапе.
Выбираем аутентификацию по логину и паролю и заходим на наш сервер через программу putty, введя в нее получившийся IP адрес сервера.
## Настройка сервера Ubuntu
Перед тем как перейти к установке WordPress на сервер, нам нужно установить комплект серверного программного обеспечения - веб-сервер Apache и базу данных MySQL, а так же установить язык PHP. Но перед этим нужно обновить нашу систему:
```bash
sudo apt-get update
```
```bash
sudo apt-get upgrade -y
```
### Установка веб сервера Apache
Для установки последней версии веб-сервера выполните:
```bash
sudo apt install apache2 apache2-utils
```
Затем добавим Apache в автозагрузку и запустим сервис:
```bash
sudo systemctl enable apache2
```
```bash
sudo systemctl start apache2<
```
Для проверки работы Apache давайте введем IP адрес вашего сервера в браузере. Если вы устанавливаете веб-сервер на локальной машине, используйте адрес http://127.0.0.1 или http://localhost
По умолчанию все HTML документы хранятся в каталоге /var/www/html. Так же для корректной работы WordPress нам понадобится модуль Apache mod_rewrite. Чтобы его включить выполните следующую команду:
```
sudo a2enmod rewrite
```
Затем перезагрузите веб-сервер:
```bash
sudo systemctl restart apache2
```
### Установка базы данных MySQL
Для установки сервера баз данных mysql выполните команду:
```bash
sudo apt install mysql-client mysql-server
```
Для завершения настройки выполите команду:
```
sudo mysql_secure_installation
```
Система предложит вам установить плагин проверки пароля, который запретит использовать слабые пароли:
Затем нужно будет изменить пароль и останется закрыть доступ к аккаунту суперпользователя из сети и отключить гостевой доступ. Так что отвечаем на все "y".
### Установка PHP
И в заключении перед тем, как установить WordPress на Ubuntu 20.04 - нужно установить php и несколько модулей для работы с веб-сервером и базой MySQL. Для этого выполните команду:
```bash
sudo apt install php7.4 php7.4-mysql libapache2-mod-php7.4 php7.4-cli php7.4-cgi php7.4-gd
```
Чтобы проверить как работает php создайте файл с именем test.php в каталоге /var/www/html/:
```
sudo nano /var/www/html/test.php
```
Текст файла:
```php
```
Сохраните его и затем откройте в веб-браузере адрес http://ip-адрес/test.php. Если все правильно настроено, то вы увидите страницу с информацией о версии PHP. Естественно, в рамках безопасности его нужно удалить после успешного теста.
## Установка WordPress на Ubuntu сервер
Итак наконец скачайте последнюю версию CMS WordPress c официального сайта:
```bash
wget -c http://wordpress.org/latest.tar.gz
```
Распакуйте содержимое архива в текущую папку:
```bash
tar -xzvf latest.tar.gz
```
Скопируйте файлы WordPress из текущей папки в папку /var/www/html/:
```bash
sudo rsync -av wordpress/* /var/www/html/
```
Для того чтобы веб-сервер мог правильно работать с этими файлами нужно установить для них правильные права, а именно пользователь и группа www-data:
```bash
sudo chown -R www-data:www-data /var/www/html/
```
```bash
sudo chmod -R 755 /var/www/html/
```
И теперь установка WordPress на Ubuntu 20.04 завершена, но осталось еще настроить соединение с базой данных. Чтобы по умолчанию открывался WordPress удалим файл index.html:
```
sudo rm /var/www/html/index.html
```
### Создание базы данных нового веб сайта
Чтобы создать базу данных сначала войдите в интерфейс управления mysql, для этого выполните:
```bash
sudo mysql -u root -p
```
Введите пароль который вы ввели при установке, а затем по очереди выполняйте следующие команды для создания базы данных, пользователя и установки для них правильных привилегий:
```sql
CREATE DATABASE wp_db;
```
```sql
CREATE USER 'wpusr'@'localhost' IDENTIFIED BY 'password';
```
```
GRANT ALL PRIVILEGES ON wp_db.* TO 'wpusr'@'localhost';
```
```
FLUSH PRIVILEGES;
```
```
EXIT;
```
Замените wp_db на желаемое имя базы данных, wpusr - имя пользователя, а password на нужный пароль. Модификатор localhost означает, что к этой базе смогут подключиться только с локальной машины.
## Настройка WordPress на Ubuntu сервере
Всё готово для настройки WordPress. Открываем адрес сервера, на котором устанавливали WordPress или localhost, если программа была установлена на локальном компьютере. В первом окне программа предложит вам выбрать язык. На следующем шаге нажимайте "Вперед". Далее введите имя базы данных, имя пользователя и пароль, которые использовали при создании базы.
И наконец осталось выбрать название сайта, логин администратора, и придумать сложный пароль.
В конце останется только авторизоваться и можно пользоваться только что настроенной системой управления контентом WordPress.
Поздравляю, теперь можно с легкостью создать свой собственный сайт используя кучу шаблонов и графический интерфейс. Тут уже начинается самое интересное.
https://serverspace.uz/support/help/kak-nastroit-vpn-klient-wireguard-na-centos.mdWireGuard может обеспечить безопасную виртуальную частную сеть (VPN). Как установить клиент WireGuard на CentOS. Как создать закрытый и открытый ключ. Как запустить WireGuard на CentOS.
WireGuard - это приложение, которое может обеспечить безопасную виртуальную частную сеть (VPN), оно достаточно простое в использовании и настройке. Оно использует надежные криптографические протоколы и алгоритмы для шифрования данных. Разработанное исключительно для ядра Linux, оно может быть развернуто и на Windows, macOS, FreeBSD, iOS, а так же Android.
В нашем случае мы будем использовать CentOS 8.3 для установки WireGuard.
Как настроить VPN-клиент WireGuard:
- [Как установить клиент WireGuard на CentOS](#step1)
- [Как создать закрытый и открытый ключ](#step2)
- [Как запустить WireGuard](#step3)
## Установка клиента WireGuard на CentOS
Для начала, обновим нашу систему:
```bash
sudo yum update
```
```bash
sudo dnf update
```
Установка клиента аналогична установке сервера. После входа добавьте репозитории EPEL и Elrepo для установки модулей ядра и инструментов WireGuard.
```bash
sudo dnf install epel-release elrepo-release -y
```
```bash
sudo yum install yum-plugin-elrepo
```
Теперь установим WireGuard из репозитория epel:
```bash
sudo dnf install kmod-wireguard wireguard-tools
```
## Генерация закрытого и открытого ключей
WireGuard работает путем шифрования соединения с помощью пары криптографических ключей. Пара ключей используется путем передачи открытого ключа другой стороне, которая затем может зашифровать свое сообщение таким образом, что оно может быть расшифровано только с помощью соответствующего закрытого ключа. Для обеспечения безопасности двусторонней связи каждая сторона должна иметь собственные закрытый и открытый ключи, так как каждая пара обеспечивает только односторонний обмен сообщениями.
Сгенерируйте пару открытого и закрытого ключей клиента, для этого выполните следующую команду:
```
wg genkey | tee private.key | wg pubkey > public.key
```
После этого создайте файл конфигурации клиента, в следующем каталоге:
```
sudo nano /etc/wireguard/wg0.conf
```
Добавьте в файл следующее содержимое:
```
PrivateKey =
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PublicKey =
AllowedIPs = 10.0.0.2/32
```
Примечание: В строку publickey вставьте публичный ключ сервера, который мы сгенерировали в [предыдущей статье](https://serverspace.ru/support/help/kak-nastroit-vpn-server-wireguard-na-centos/), а в private key вставьте закрытый ключ клиента.
Установите разрешения для файла конфигурации wg0.conf, чтобы сделать его безопасным.
```bash
sudo chmod 600 /etc/wireguard/wg0.conf
```
## Запуск WireGuard
Для запуска соединения введите следующую команду:
```
sudo wg-quick up wg0
```
Теперь клиент может общаться с сервером, можно пропинговать сервер с клиента командой
```
ping 10.0.0.1
```
Чтобы узнать статус соединения, выполните следующую команду:
```
sudo wg show
```
Вы получите все детали соединения, как показано ниже
Поздравляю! Теперь ваш клиентский компьютер имеет доступ к VPN сети.
https://serverspace.uz/support/help/kak-ustanovit-wireguard-vpn-client-na-ubuntu-linux.mdПошаговая инструкция для создания VPN с помощью WireGuard на VPS c Ubuntu Linux. Генерация закрытого и открытого ключей. Запуск WireGuard.
**WireGuard** — это приложение, которое позволяет настроить безопасную виртуальную частную сеть (VPN), известное своей простотой и удобством использования. Оно использует проверенные криптографические протоколы и алгоритмы для защиты данных. Изначально разработанное для ядра Linux, оно может быть развернуто на Windows, macOS, BSD, iOS и Android, что очень удобно обеспечивает свободный доступ к любимым ресурсам.
В этой настройке клиента WireGuard VPN используется облачный сервер VPS с Ubuntu 20.04 от Serverspace.
## Установка WireGuard на Ubuntu
Установка клиентского приложение WireGuard происходит так же, как и на стороне сервера.
Войдите по SSH на Linux сервер, после входа в систему проверьте, обновлена ли машина, выполнив следующую команду:
```bash
sudo apt-get update && sudo apt-get upgrade
```
Теперь установите WireGuard, выполнив следующую команду:
```bash
sudo apt-get install wireguard
```
## Генерация закрытого и открытого ключей
WireGuard работает путем шифрования соединения с помощью пары криптографических ключей. Пара ключей используется путем передачи открытого ключа другой стороне, которая затем может зашифровать свое сообщение таким образом, что оно может быть расшифровано только с помощью соответствующего закрытого ключа. Для обеспечения безопасности двусторонней связи каждая сторона должна иметь собственные закрытый и открытый ключи, так как каждая пара обеспечивает только односторонний обмен сообщениями.
Сгенерируйте пару открытого и закрытого ключей клиента, для этого выполните следующую команду:
```
wg genkey | tee private.key | wg pubkey > public.key
```
После этого создайте файл конфигурации клиента, в следующем каталоге:
```
sudo nano /etc/wireguard/wg0.conf
```
В файле пропишите:
```
PrivateKey =
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PublicKey =
AllowedIPs = 10.0.0.2/32
```
Примечания: В строку **publickey** вставьте публичный ключ сервера, который мы сгенерировали в [предыдущей статье](https://serverspace.uz/support/help/kak-ustanovit-wireguard-vpn-na-servere-ubuntu/), а в **private key** вставьте закрытый ключ клиента. Его можно посмотреть командой:
```
cat private.key
```
## Запуск WireGuard
Для запуска соединения введите следующую команду:
```
sudo wg-quick up wg0
```
Теперь клиент может общаться с сервером, можно пропинговать сервер с клиента командой
```
ping 10.0.0.1
```
Чтобы узнать статус соединения, выполните следующую команду:
```
sudo wg show
```
Вы получите все детали соединения, как показано ниже
Поздравляем! Теперь ваш клиентский компьютер имеет доступ к VPN сети.
https://serverspace.uz/support/help/kak-ustanovit-wireguard-vpn-na-servere-ubuntu.mdУзнайте как настроить VPN сервер WireGuard на операционной системе Ubuntu Linux и установить туннель с внешними клиентами. Установка WireGuard Server на Ubuntu Linux. Настройка IP-переадресации. Настройка серверной конфигурации.
**WireGuard** — это приложение которое позволяет настроить безопасную виртуальную частную сеть (VPN), известное своей простотой и удобством использования. Оно использует проверенные криптографические протоколы и алгоритмы для защиты данных. Изначально разработанное для ядра Linux, оно может быть развернуто на Windows, macOS, BSD, iOS и Android.
В этой настройке WireGuard VPN используется Ubuntu 20.04.
## Установка WireGuard Server на Ubuntu Linux
Войдите по SSH на Linux сервер, после входа в систему проверьте, обновлена ли машина, выполнив следующую команду:
```bash
sudo apt-get update && sudo apt-get upgrade
```
Теперь установите WireGuard, выполнив следующую команду:
```bash
sudo apt-get install wireguard
```
## Настройка IP-переадресации
Для работы VPN нам нужно включить пересылку пакетов, только тогда мы сможем подключаться через сервер Wireguard, для этого нам нужно отредактировать файл **/****etc/****sysctl.****conf**:
```
sudo nano /etc/sysctl.conf
```
удалите "#" для следующей команды
```
net.ipv4.ip_forward=1
```
После этого выполните следующую команду для того, чтобы применить изменения:
```
sysctl -p
```
Отобразится следующее сообщение:
## Генерация закрытого и открытого ключей
WireGuard работает путем шифрования соединения с помощью пары криптографических ключей. Пара ключей используется путем передачи открытого ключа другой стороне, которая затем может зашифровать свое сообщение таким образом, что оно может быть расшифровано только с помощью соответствующего закрытого ключа. Для обеспечения безопасности двусторонней связи каждая сторона должна иметь собственные закрытый и открытый ключи, так как каждая пара обеспечивает только односторонний обмен сообщениями.
Перед генерацией пары ключей перейдите в каталог:
```
cd /etc/wireguard
```
Установите разрешение на эту директорию:
```
umask 077
```
Чтобы сгенерировать пару ключей, введите следующую команду:
```
wg genkey | tee private.key | wg pubkey > public.key
```
## Настройка серверной конфигурации
Чтобы начать настройку сервера WireGuard, перейдите в папку /etc/wireguard и создайте файл wg0.conf
```
sudo nano /etc/wireguard/wg0.conf
```
Добавьте в файл конфигурации следующие директивы:
```
PrivateKey =
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PublicKey =
AllowedIPs = 10.0.0.2/32
```
Скопируйте закрытый ключ, который мы сгенерировали ранее, и вставьте его в PrivateKey.
Аналогично нужно сгенерировать пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в PublicKey.
Чтобы скопировать значение ключа, выполните следующую команду:
```
sudo cat /etc/wireguard/public.key
```
```
sudo cat /etc/wireguard/private.key
```
## Запуск WireGuard и включение его при загрузке
Теперь мы готовы к запуску сервера, для запуска WireGuard мы используем wg-quick и указываем имя нового интерфейса:
```
wg-quick up wg0
```
Если конфигурация выполнена идеально, вы увидите следующий экран,
Чтобы проверить статус работы сервера WireGuard введите:
```
wg show
```
Поздравляю, мы успешно подняли сервер WireGuard!
https://serverspace.uz/support/help/ispravlenie-neaktivnyh-repozitoriev-v-centos8.mdЕсли операционная система более не поддерживается, её репозитории начинают быть недоступны и выдавать ошибки. Но это можно легко исправить!
В связи с тем, что CentOS8 более не поддерживается, её репозитории начинают быть недоступны и выдавать ошибки.
Если Вы столкнулись с этой ошибкой, то мы рекомендуем перейти на актуальную ОС - OEL8.
Если вы по каким либо причинам не можете перейти, то для исправления данной ошибки достаточно ввести 2 команды:
```
sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
```
```
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
```
Готово!
https://serverspace.uz/support/help/ustanovka-memcached-v-centos-7.mdРуководство по установке и настройке memcached для ускорения работы веб-сервера на CentOS 7 с помощью кеширования в оперативную память
## Что такое memcached, как его использовать и зачем
В процессе работы операционной системы образуется множество короткоживущих данных. По умолчанию все они сбрасываются в специальные каталоги на диске. Отрицательная сторона этого подхода – обращение к диску достаточно медленны даже на [современных серверных дисках SSD](https://serverspace.uz/about/blog/ssd-diski-dlya-servera/). Способ "ускориться" — использование для хранения временных файлов оперативной памяти, например, через механизм кеширования.
## Требования к серверу
Для установки кэширования должны удовлетворяться следующие условия:
- Сервер с Linux, например Centos 7;
- root-доступ или учетная запись с правом sudo;
- Опционально - iptables или другой брандмауэр.
## Установка программы и сопутствующих инструментов
Настройка предельно проста, фактически это "однострочная" команда:
```bash
sudo -s
yum install memcached -y
```
## Первичная настройка
Служба memcached, будучи установленной, считывает все свои настройки из файла /etc/sysconfig/memcached. Наиболее полезные флаги:
```
CACHESIZE # Разрешенный объем оперативной памяти
PORT # TCP-порт, который "слушает" сервис
-l # Используемый IP-адрес, обычно или 127.0.0.1 (для локальных подключений), или "внешний" адрес, нужный для подключений извне
MAXCONN # сколько подключений возможно одномоментно
-S # эта опция нужна для включения авторизации (будет описано далее)
```
Чтобы проходили входящие подключения, их нужно разрешить в настройках брандмауэра:
```
firewall-cmd --permanent --zone=public --add-port=/tcp
```
## Вопросы безопасности
В случае, если сервер кеширует "внешние" данные, хорошим тоном считается заботиться о безопасности, например предоставлять доступ только для авторизованных пользователей. Настраивается ограничение доступа следующим образом:
- Установка сопутствующего ПО:
```bash
yum install cyrus-sasl-devel cyrus-sasl-plain -y
```
- Создание файлов конфигурации:
```
mkdir -p /etc/sasl; nano /etc/sasl/memcached.conf
```
- Установка системных разрешений на файл и создание отдельного пользователя для авторизации:
```bash
saslpasswd2 -a memcached -c -f /etc/sasl/sasldb
chown memcached:memcached /etc/sasl/sasldb
```
- Теперь нужно "включить" авторизацию на уровне кеширующего сервиса. Нужно добавить в файл /etc/sysconfig/memcached флаг -S
- Наконец, финальный шаг - перезапуск службы:
```bash
service memcached restart
```
## Проверка результата
После завершения установки и настройки нелишним будет проверить свою работу. Просто дайте команду:
```
netstat -tulpn | grep cach
```
Если вы увидите картинку наподобие изображенной на следующем скриншоте, вас можно поздравить:
## Общие итоги
В рамках данной статьи мы рассмотрели, что такое кеширование, для чего его стоит использовать, как установить, настроить и обезопасить наиболее распространенный программный пакет, используемый в таких целях - memcached.
https://serverspace.uz/support/help/how-to-create-a-slackbot-using-python-on-ubuntu-20.04.mdИнструкция по созданию Slack Bot с использованием языка Python и сервера с Ubuntu 20.04. Интеграция через Slack API и с инструментами Python
## Вступление
**Slack** — это корпоративный мессенджер. Он предназначен для повышения продуктивности на рабочем месте. С помощью Slack можно обмениваться сообщениями, создавать открытые или же частные чаты, созваниваться с помощью голосовых или видео звонков, а также проводить интеграции с Slackbot'ами. Slackbot - это тип приложения Slack, предназначенный для взаимодействия с пользователями посредством разговора. Она имеет множество функций и опций: отправка оповещений и сообщений, запуск каких-либо задач.
В данной инструкции мы развернем Slackbot используя язык Python и Ubuntu 20.04. Slack обладает множеством инструментов, помогающих взаимодействовать с _Application Programming Interface (API) Python_ и его интеграциями.
В качестве проверки потенциала связки Python и Slack API, мы создадим _CoinBot_, он будет мониторить чат и при срабатывании подбрасывать монету. Затем же вы сможете модернизировать своего бота для более практичных целей.
_Помарка:_ В данной инструкции мы будем работать с Python 3, если же у вас версии, выпущенные ранее, то бот работать не сможет.
## Перед началом работы
Чтобы все работало как нужно, в вашем распоряжении должны присутствовать следующие элементы:
1) Установленный Slack и Workplace (рабочее пространство), в котором вы будете работать. Если у вас его нет, то вы можете создать его на официальном сайте Slack.
2)Виртуальная машина или ПК с общедоступным IP- адресом.
## Создание Slackbot
Сперва создадим наше Slack-приложение в панели управления Slack API (CPSAPI). Зайдите в меню своего рабочего места и перейдите в CPSAPI.
Затем, выберите меню "Create an App", как показано на скриншоте:
Затем вам предложат ввести название для вашего приложения. Мы будем использовать название "_CoinBot_", но вы можете задать и свое собственное. После этого выберите более удобный для вас Workspace, куда будет установлено приложение.
После этого, ваше приложение будет создано, и у вас появится возможность взаимодействовать с панелью управления.
На этой панели вы сможете настраивать свое приложением: загружать новые разрешения, подключать уведомления к каким-либо событиям, устанавливать ваше приложение в любой Workplace и многое другое.
Для того чтобы ваше приложение смогло отправлять сообщения в ваши чаты, нам необходимо выдать ему специальные права.
Чтобы у него появилось данное разрешение: выберите контекстное меню "Permissions", как показано на скриншоте:
Затем, у вас вылезет меню "OAuth & Permissions". Вам будет необходимо пролистать к разделу "Scope". В нем выберите "Bot Token Scopes". В нем же, кликните на меню "Add on OAuth Scope":
Затем введите в поисковое меню chat:write и добавьте данное разрешение:
Оно даст вашему приложению права писать в чатах, к которым у него есть доступ.
После того, как вы добавили данное право для нашего приложения, необходимо добавить его в ваш Workspace.
Пролистайте вверх страницу OAuth и выберите меню "Install to Workspace":
После этого, Slack предложит вам посмотреть доступные для этого приложения разрешения. Если вас все устраивает, нажимайте кнопку "Разрешить":
После того, как ваш бот будет установлен, Slack предоставит вам ваш токен , который будет использован приложением для доступа к вашему Workspace:
Также в этом меню, если у вас возникла какая-либо ошибка, переустановить вашего бота, нажав на контекстное меню "Reinstall to Workspace"
Последним шагом, нам нужно будет добавить бота в чат в вашем рабочем пространстве. Если у вас уже есть созданный канал, то перейдите к шагу "Добавление бота в ваш канал"
Если же у вас нет еще созданных чатов, то выполните эти пару шагов:
Найдите контекстное меню "Добавить канал", в нем выберите "Создать новый канал":
Затем назовите свой канал и по желанию можете добавить его описание
## Добавление бота в ваш канал
Чтобы добавить бота в ваш канал, вам нужно в необходимом чате навестись на его название и нажать на контекстное меню "Посмотреть сведения о канале":
Затем перейдите в меню "Интеграции" и выберите пункт "Добавить приложение":
Затем с помощью меню поиска или просто пролистав, выберите нужное приложение. В нашем случае "CoinBot":
После этого, бот будет добавлен в ваш канал:
## Настройка Python
Для начала настроим Python, чтобы вы смогли установить и управлять вашими Slack ботами.
Сперва установим python 3 и соответствующие тулы на вашу виртуальную машину с развернутым на ней Ubuntu 20.04.
Изначально на сервера Ubuntu версии 20.04 уже предустановлен Python 3, но чтобы убедиться в доступности обновлений, обновим систему с помощью данных команд:
```bash
sudo apt update
```
```bash
sudo apt -y upgrade
```
После этого, узнаем установленную у нас версию Python:
```
python3 -V
```
Ответ будет выглядеть примерно таким:
```bash
Python 3.8.2
```
Теперь установим инструмент pip, чтобы получить доступ к управлению пакетами:
```bash
sudo apt install -y python3-pip
```
Затем развернем виртуальную среду:
```
python3 -m venv ~/.venvs/slackbot
```
После этого активируем ее:
```
source ~/.venvs/slackbot/bin/activate
```
Теперь наша терминал в скобочках будет отображать виртуальную среду:
```
(slackbot) root@Ubuntu-Bot-Python:~#
```
Теперь с помощью инструмента pip установим необходимые компоненты Python:
```bash
pip install slackclient slackeventsapi Flask
```
Пояснение: slackclient и slackeventsapi - инструменты, облегчающие работу с Slack API. Flask же - это микровеб-фреймворк, который мы будем использовать для развертывания нашего бота.
После того, как мы настроили Python, можно приступать к настройке бота.
## Создание класса для сообщений Slackbot в Python
В Slack сообщения отправляются с помощью специально отформатированными JSON данными.
Вот пример такого сообщения, который Slackbot создаст и отправит:
```
{
"channel":"channel",
"blocks":[
{
"type":"section",
"text":{
type":"mrkdwn",
"text":"Ок! Подбрасываем монетку....\n\n"
}
},
{
"type":"section",
"text":{
"type":"mrkdwn",
"text":"*flips coin* Результат-Орел!."
}
}
]
}
```
Давайте создадим класс Python, который симулирует подбрасывание монеты.
Напоминание - все действия проделываем в виртуальной среде. В нашем случае виртуальная среда - root@Ubuntu-Bot-Python:~#
Сначала с помощью команды touch, создадим файл с именем coinbot.py:
```
touch coinbot.py
```
Затем откроем данный файл с помощью редактора nano, вы можете использовать любой другой редактор:
```
nano coinbot.py
```
Добавьте следующее содержимое в наш файл:
```
# import the random library to help us generate the random numbers
import random
```
# Create the CoinBot Class
class CoinBot:
# Create a constant that contains the default text for the message
COIN_BLOCK = {
"type": "section",
"text": {
"type": "mrkdwn",
"text": (
"Ок! Подбрасываем монетку....\n\n"
),
},
}
# The constructor for the class. It takes the channel name as the a
# parameter and then sets it as an instance variable
def __init__(self, channel):
self.channel = channel
# Generate a random number to simulate flipping a coin. Then return the
# crafted slack payload with the coin flip message.
def _flip_coin(self):
rand_int = random.randint(0,1)
if rand_int == 0:
results = "Орел"
else:
results = "Решка"
text = f"The result is {results}"
return {"type": "section", "text": {"type": "mrkdwn", "text": text}},
# Craft and return the entire message payload as a dictionary.
def get_message_payload(self):
return {
"channel": self.channel,
"blocks": [
self.COIN_BLOCK,
*self._flip_coin(),
],
}
Затем сохраним и закроем наш файл с помощью комбинации клавиш.
Теперь наш бот может отправлять сообщения, а вы сможете добавить его в свое рабочее пространство.
## Тестовые сообщения от нашего Slackbot
Теперь проверим, что наш класс создает правильную нагрузку.
Создайте файл с именем coinbot_test.py:
```
nano coinbot_test.py
```
Затем добавьте в созданный файл следующее содержимое
Важно: Обязательно измените название сервера на свое в coin_bot = coinbot("#YOUR_CHANNEL_HERE").
```
from slack import WebClient
from coinbot import CoinBot
import os
```
# Create a slack client
slack_web_client = WebClient(token=os.environ.get("SLACK_TOKEN"))
# Get a new CoinBot
coin_bot = CoinBot("#YOUR_CHANNEL_HERE")
# Get the onboarding message payload
message = coin_bot.get_message_payload()
# Post the onboarding message in Slack
slack_web_client.chat_postMessage(**message)
Сохраните и закройте данный файл.
Прежде чем запустить тест, вам необходимо экспортировать ваш токен, который указан на Slak API:
Теперь экспортируйте ваш токен:
```
export SLACK_TOKEN="Ваш токен"
```
Теперь мы можем протестировать нашего бота. Запустите следующий скрипт в вашем терминале:
```bash
python coinbot_test.py
```
После этого к вам в канал, на который вы установили свое приложение придет сообщение о подбрасывании монетки. Убедитесь, что ваш бот действительно выдал вам либо орла, либо решку.
## Создание приложения Flask для запуска Slackbot
Теперь, когда ваш бот может подбрасывать монетку, создавать и отправлять сообщения, мы развернем Flask, который будет обрабатывать сообщения и выдавать какую-то реакцию на них, если их содержимое соответствует некоторым критериям.
Для начала настроим параметры браундмауэра, чтобы разрешить трафик через порт 3000:
```
sudo ufw allow 3000
```
Теперь удостоверимся о статусе ufw:
```
sudo ufw status
```
Вы должны будете увидеть примерно такой вывод:
```
Output
Status: active
```
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3000 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
3000 (v6) ALLOW Anywhere (v6)
Затем мы создадим файл для нашего Flask-приложения.
Назовем данный файл app.py:
```
touch app.py
```
Затем, откроем этот файл с помощью любого из редакторов. Мы будем использовать nano:
```
nano app.py
```
Добавим в наш файл app.py следующее содержимое:
```
import os
import logging
from flask import Flask
from slack import WebClient
from slackeventsapi import SlackEventAdapter
from coinbot import CoinBot
```
# Initialize a Flask app to host the events adapter
app = Flask(__name__)
# Create an events adapter and register it to an endpoint in the slack app for event injestion.
slack_events_adapter = SlackEventAdapter(os.environ.get("SLACK_EVENTS_TOKEN"), "/slack/events", app)
# Initialize a Web API client
slack_web_client = WebClient(token=os.environ.get("SLACK_TOKEN"))
def flip_coin(channel):
"""Craft the CoinBot, flip the coin and send the message to the channel
"""
# Create a new CoinBot
coin_bot = CoinBot(channel)
# Get the onboarding message payload
message = coin_bot.get_message_payload()
# Post the onboarding message in Slack
slack_web_client.chat_postMessage(**message)
# When a 'message' event is detected by the events adapter, forward that payload
# to this function.
@slack_events_adapter.on("message")
def message(payload):
"""Parse the message event, and if the activation string is in the text,
simulate a coin flip and send the result.
"""
# Get the event data from the payload
event = payload.get("event", {})
# Get the text from the event that came through
text = event.get("text")
# Check and see if the activation phrase was in the text of the message.
# If so, execute the code to flip a coin.
if "hey sammy, flip a coin" in text.lower():
# Since the activation phrase was met, get the channel ID that the event
# was executed on
channel_id = event.get("channel")
# Execute the flip_coin function and send the results of
# flipping a coin to the channel
return flip_coin(channel_id)
if __name__ == "__main__":
# Create the logging object
logger = logging.getLogger()
# Set the log level to DEBUG. This will increase verbosity of logging messages
logger.setLevel(logging.DEBUG)
# Add the StreamHandler as a logging handler
logger.addHandler(logging.StreamHandler())
# Run our app on our externally facing IP address on port 3000 instead of
# running it on localhost, which is traditional for development.
app.run(host='0.0.0.0', port=3000)
Сохраните и закройте файл.
Пояснение: мы добавляем следующие операторы так как:
_import os_ — мы будем использовать для доступа к переменным среды
_import logging_ — мы будем использовать для регистрации событий приложения.
_from flask import Flask_ — мы будем использовать для создания приложения Flask
_from slack import WebClient_ — мы будем использовать для отправки сообщений через Slack
_from slackeventsapi import SlackEventAdapter_ — мы будем использовать для получения событий из Slack и их обработки
_from coinbot import CoinBot_ — мы будем использовать для создания экземпляра вашего CoinBot и генерации полезной нагрузки сообщения.
## Запуск вашего Flask приложения
Теперь, когда наше приложение Flask готово работать с приложением, давайте его протестируем.
Сначала, добавим наше приложение для Slackbot.
На странице Slack API перейдите в раздел "Basik information" и опуститесь до подраздела "App Credentials":
Нажмите на "Show", как показано на скриншоте и затем скопируйте Signing secret.
Теперь экспортируем наш секрет подписи с помощью данной команды:
```
export SLACK_EVENTS_TOKEN="MY_SIGNING_SECRET_TOKEN"
```
Теперь мы можем протестировать наше приложение.
Запустим приложение Flask, чтобы сделать это выполните данную команду:
```
python3 app.py
```
Вывод должен быть примерно таким:
```
(slackbot) [19:37:05] danial:CoinBot$ python app.py
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:3000/ (Press CTRL+C to quit)
```
Теперь закончим настройку нашего приложения в пользовательском интерфейсе Slack.
Для начала дадим нашему приложению право читать, обрабатывать сообщения и отвечать на них.
В меню пользовательского интерфейса выберем раздел "Event Subscriptions" и переключите тумблер "Enable Events" в положение "On", как показано на скриншоте:
Затем разверните меню "Subscribe to bot events" и выберите в нем _message.channels:_
После этого ваше приложение сможет обрабатывать сообщения.
Как только вы сохраните изменения, у вас появится контекстное меню желтого цвета в верхней части экрана, информирующий вас о том, что вам необходимо переустановить приложение, чтобы применить следующие изменения.
Нажмите на ссылку переустановить приложение в этом баннере, чтобы переустановить приложение:
Затем у вас откроется контекстное меню с новыми примененными разрешениями. Если вы согласны со всем, нажмите "Разрешить":
После этого ваше приложение будет готово к работе. Вернитесь в ваш канал, на который вы установили бота, и отправьте сообщение, содержащее фразу "Hey, Danny, flip a coin".
Ваш бот подбросит монетку и отправит вам результат. Поздравляю, мы создали Slackbot!
https://serverspace.uz/support/help/osnovnye-oshibki-v-rabote-veb-servera-linux.mdЧастые проблемы и способы их решения в работе веб-сервера под Linux. Проверка работы веб-сервисов и корректности настроек сервера
Несмотря на то, что ваш облачный веб-сервер на базе ОС Linux сейчас отлично работает, лучше быть готовым решать типичные проблемы, если они когда-либо произойдут. Ниже мы постарались описать некоторые проблемы и способы их решения. Вот что нужно проверить:
## Корректно ли прописаны DNS-записи вашего домена?
Чтобы быть доступным по всему миру, DNS-записи вашего домена должны быть корректно настроены. Чтобы проверить это, просто запустите следующую команду на локальном компьютере. Если в результате вы увидите "внешний" IP вашего сервера, то настройки корректны. В противном случае обратитесь к регистратору домена или в службу поддержки DNS-хостинга.
```
nslookup
```
## Работает ли сервер и есть ли на него доступ "извне"?
Зайдите в личный кабинет вашего хостинг-провайдера и убедитесь, что ваш сервер включен и его операционная система работает без сбоев. Обычно хостинг-провайдеры предоставляют прямой доступ к консоли сервера через IPMI или VNC. Подключитесь к консоли сервера "напрямую" и проверьте корректно ли работает операционная система сервера. Если вы видите приглашение для входа в систему как на рисунке ниже, операционная система, вероятнее всего, в порядке, и вы можете проверить доступность сервера по сети.
Для проверки доступности сервера "извне" запустите такую команду на вашем локальном компьютере. Если сервер отвечает на эхо-запросы — все в порядке, если нет — вам следует обратиться в техническую поддержку вашего хостинг-провайдера или самостоятельно устранить сетевые неполадки прежде чем переходить дальше.
```
ping
```
## Запущены ли на сервере веб-службы?
Следующий шаг — проверка работы веб-сервисов. Чтобы определить, какой именно сервис используется для обеспечения работы сайтов и запущен ли он вообще, вы должны подключиться к серверу через SSH как привилегированный пользователь и дать нижеследующую команду. В норме вы увидите наименование веб-сервиса и его статус в состоянии "выполняется". Если картина иная, то требуется анализ ситуации и исправление возможных проблем.
```bash
systemctl list-unit-files | grep -E 'http|apache|nginx'
```
Базовые команды:
```bash
systemctl list-unit-files | grep -E 'http|apache|nginx' # для выяснения, какая именно служба используется как веб-сервер
systemctl enable # для запуска службы после перезагрузки
systemctl start # для запуска сервиса вручную
systemctl status # для проверки статуса службы после запуска
```
## Прослушивается ли веб-порт?
Веб-браузер запрашивает содержимое сайта по сетевому порту 80, это общепринятый стандарт. Данный порт должен прослушиваться и не блокироваться брандмауэром. Для проверки запустите на сервере следующую команду. Вы должны увидеть этот порт 80 и службу, которая его слушает.
```
netstat -utpln | grep 80
```
## Проверка корректности настроек веб-сервера
Чтобы сайт отображался браузером, в конфигурации вашего веб-сервера должен присутствовать раздел, который "относится" к вашему сайту. Минимально необходимые директивы: доменное имя, расположение файлов веб-сайта и "стартовый", его еще называют "индексный" файл.
Также, для "автоматической" проверки корректности конфигурации веб-сервера запустите команду service httpd configtest
Наконец, если все предыдущие проверки пройдены, просто откройте ваш сайт при помощи браузера. Вы должны увидеть стартовую страницу вашего сайта, что будет свидетельствовать об отсутствии проблем.
Отличная работа!
https://serverspace.uz/support/help/standartnye-perenapravleniya-vvoda-vyvoda-v-linux.mdРазбираемся с возможностями перенаправления потоков ввода и вывода в Linux, необходимых при создании программ, обслуживании серверов и автоматизации рутинных процессов
## Введение
Философия Linux построена на парадигме "одна утилита для одной функции". Из этого вытекает тот факт, что в современных дистрибутивах Linux огромное множество различных утилит, каждая из которых обладает только необходимым минимумом функций, зато то, что она делает, делается хорошо.
Второй вывод из указанных принципов – настоятельная необходимость реализации возможности "передавать" результаты работы из одной программы в другую "внутри" операционной системы.
И такой механизм был найден. В Linux им стал механизм "потоков". Все процессы работают в рамках трех потоков – стандартный ввод (stdin), стандартный вывод (stdout) и стандартная ошибка (stderr). Под эти потоки системно зарезервирована нумерация – "0" для stdin, "1" для stdout и "2" для stderr.
Стандартный поток ввода принимает данные с клавиатуры или с потока вывода другого скрипта. Примеры рассмотрим ниже в данной статье.
По умолчанию поток **stdout** выводит данные на терминал пользователя.
Вывод **stderr** (стандартный вывод для ошибок) также показывает свои данные на экране терминала, но с одним отличием – он используется только если "что-то пошло не так", в случае штатного поведения программы ее вывод направляется на stdout.
## Перенаправление потоков
Вывод данных с любого из трех описанных потоков можно перенаправить в другой поток или в файл. Для этого зарезервированы спецсимволы перенаправления (< и >).
Двойное перенаправление дописывает данные с вывода к данным целевого объекта
Одинарный символ перенаправления заменяет содержимое целевого объекта на перенаправляемый вывод.
## Пайп-символы
Помимо перенаправления данных стандартных потоков ввода-вывод, в Linux реализована "передача" данных вывода одной программы на поток ввода другой программы. Для этого зарезервирован т.н. "пайп-символ", вертикальная черта (|). Например, в команде
```
history | grep touch
```
сначала на поток вывода передается история команд пользователя, затем эти данные передаются на вход утилите grep, которая отфильтровывает только те команды, что содержат слово "touch" и уже эти данные отображаются в терминале пользователя.
## Программы-фильтры
Это целый класс утилит, которые используются совместно с "пайп-символом" и служат для "выборки" данных. Наиболее популярные программы-фильтры:
- find – используется для поиска файлов по имени
- grep – отображает "отфильтрованный" текст, содержащий только те строки, в которых встречаются данные, поданные программе в качестве аргумента
- tee – утилита "перенаправляет" входящий поток данных одному или нескольким "целевым" объектам. Это могут быть файлы, другие программы, потоки ввода-вывода и тп
- tr – используется для поиска и замены текста
- wc – подсчитывает сколько раз заданные в качестве аргумента символы встречаются в содержимом "целевого" объекта
## Выводы
Резюмируя можно сказать, что понимание механизма потоков и работы системных перенаправлений крайне важно. Это безусловно поможет при создании программ, обслуживании серверов, или автоматизации рутинных процессов любого вида.
https://serverspace.uz/support/help/ustanovka-i-nastrojka-squid-v-ubuntu-20-04.mdИнструкция по установке сервиса Squid для проксирования трафика. Настройка прокси в браузере. Защита трафика с помощью squid
## Введение
**Squid** — известное решение управления сетевым трафиком. Существует множество ипостасей его применения, самые популярные из которых — улучшение конфиденциальности (анонимизация), повышение безопасности или скорости соединения. Например, вы можете воспользоваться squid чтобы парсить содержимое сайта не "выдавая" свой IP-адрес. Прокси может быть полезен, чтобы избежать "географических" блокировок или исследовать различия в "поведении" целевого хоста в зависимости от местоположения клиента.
## Шаг 1. Подготовка
Перед началом работ стоит убедиться, что у вас есть компьютер с Ubuntu 20.04, с полномочиями root (sudo тоже сгодится). "Внешний" доступ по доменному имени возможен и удобен, но если его нет – не страшно, достаточно только знать IP сервера.
## Шаг 2. Настройка службы
Во-первых, авторизуйтесь как root и обновите кэш системных пакетов.
```bash
sudo -s
apt-get update
```
Squid уже давно является частью большинства "мейнстримных" репозиториев Ubuntu, разработчики скомпилировали готовый пакет и есть возможность не собирая его из исходного кода самостоятельно провести установку "в один клик".
```bash
apt-get -y install squid
```
Для того, чтобы свежеустановленный squid стартовал как системный демон, при каждой перезагрузке машины, дайте в терминале команду:
```bash
systemctl enable squid
```
## Шаг 3. Кастомизация и настройка squid
Squid будет "считывать" параметры работы из файла /etc/squid/squid.conf. Стоит несколько подредактировать данный конфиг, найдите параметр http_port и вместо предустановленного значения подставьте любой неиспользуемый сетевой порт, предпочтительно номером выше 1024.
Затем перейдите к строчке http_access deny all. Дальнейшие действия зависят от того, что вы хотите в итоге увидеть. Чтобы просто предоставить доступ всем, установите для этого параметра значение "allow all". Несколько более разумным будет проксировать соединения только с некоторых "доверенных" IP-адресов. Для этого вставьте директиву acl whitelist src "/etc/squid/whitelist" перед "http_access deny all".
Не забудьте разрешить пропуск трафика squid через системный брандмауэр:
```
ufw allow squid
```
Затем добавьте свой настоящий IP в файл /etc/squid/whitelist и перезагрузите сервис.
```bash
curl ifconfig.me >> /etc/squid/whitelist
service squid restart
```
## Шаг 4. Допуск только авторизованных пользователей
Большинство прокси-сервисов с одной стороны, и многие клиентские приложения, (например, веб-браузеры), с другой стороны, поддерживают тот или иной механизм авторизации. Это могут быть токены или выделенные серверы авторизации, но в основном используется парольный доступ. Устойчивый пароль для squid можно создать с помощью внутренних механизмов операционной системы. Создайте файл с именем /etc/squid/pswds и затем "внесите" его в конфигурацию прокси-сервиса. Первый шаг - установка необходимого инструментария
```bash
apt-get install apache2-utils -y
```
Затем нужно будет создать учетные данные для последующей авторизации. Введите в терминале строку:
```
htpasswd -c /etc/squid/pswds
```
Утилита запросит создаваемый пароль. Придумайте его, затем введите дважды.
Впоследствии нужно "интегрировать" только что созданную пару с демоном squid. Снова откройте файл с настройками squid текстовым редактором, раскомментируйте (или создайте, если их не существует) директивы:
```
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/pswds
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
```
Помните, что система будет "читать" свои конфиг-файлы "сверху вниз", данные параметры необходимо поместить выше опции "http_access deny all". Следует перезапустить сервис как только закончите редактирование:
```bash
service squid restart
```
## Шаг 5. Тест сервиса
Самый быстрый способ проверить что в итоге получилось - утилита curl. Просто выполните команду:
```bash
curl -v -x http://:@: https://google.com
```
Полученный в итоге "код 200" свидетельствует об успехе:
##
Шаг 6. Настройка клиента
Если предыдущий шаг прошел успешно, вы готовы к настройке более "удобного" в использовании клиента. Например, популярный кейс — использование прокси в браузере. Покажу на примере Google Chrome. Чтобы "научить" его работать через прокси, выполните следующие действия:
Откройте настройки браузера (3 точки справа вверху окна, затем Настройки):
Перейдите на вкладку "Система" и нажмите "Открыть настройки прокси-сервера для компьютера":
Откроются общесистемные настройки. Нажмите "Настройка вручную", затем введите IP-адрес сервера, где вы устанавливали squid, а также порт прокси в соответствующие поля:
Запустите Google Chrome и посетите адрес https://whoer.net. Вместо вашего реального IP должен отобразиться IP-адрес squid.
## Итоги
Из этого материала вы узнали, как можно легко развернуть стабильный сервис для проксирования трафика практически без накладных расходов. Теперь вы знаете, как защитить его и отклонять подключения от неизвестных пользователей. Также вы умеете использовать веб-браузер в роли прокси-клиента и можете "скрыть" свой реальный IP за собственным анонимайзером.
https://serverspace.uz/support/help/ustanovka-suricata-na-ubuntu-20-04.mdИнструкция по установке и базовой настройке Suricata в Ubuntu 20.04. Описание работы системы, процесс установки на Ubuntu и базовая настройка
## Описание
Suricata — программный комплекс для сбора, мониторинга и аудита сетевой безопасности. Эта утилита "построена" вокруг группы правил, как предопределенных, так и созданных пользователем. В соответствии с этими правилами, весь поступающий трафик анализируется и (возможно) обрабатывается перед отправкой дальше на "клиентское" устройство.
В Suricata есть несколько готовых предопределенных правил, в соответствии с которыми система работает в "пассивном режиме", она просто информирует администратора без каких-либо изменений в проходящем трафике. Этот комплекс можно запустить на "шлюзовом" устройстве для "пропуска" всего офисного трафика или на каждом из клиентских компьютеров отдельно.
## **Перед** началом** работы**
Требования к оборудованию зависят от топологии локальной сети и конкретных потребностей. В общем, считается верным правило "большее количество проверяемого трафика и обрабатываемых правил требует большего количества системных ресурсов". Необходимый минимум - 2 ядра процессора и 4 или 8 гигабайт оперативной памяти.
Подытоживая, требования такие:
Ubuntu 20.04, на сервере с не менее чем 4 ГБ ОЗУ и 2 ядрами процессора, доступ в систему от имени root или полномочия sudo, установленный системный брандмауэр.
## Установка
Во-первых, необходимо подключить к операционной системе дополнительный репозиторий. Авторизуйтесь как суперпользователь и выполните команду:
```
add-apt-repository ppa:oisf/suricata-stable
```
Подтвердите операцию, если появится предупреждение системы безопасности.
Собственно, программный пакет устанавливается за пару секунд одной командой:
```bash
apt-get update
apt-get install suricata
```
Установленную программу стоит добавить в системный пул служб с автозапуском. Если в результате вы видели что-то подобное — автозапуск успешно включен:
```bash
systemctl enable suricata
```
## Стартовая **конфигурация**
Suricata "из коробки" удовлетворяет потребности большинства пользователей. Он работает в "безопасном" режиме, никакие сетевые пакеты не отбрасываются, только предупреждает о возможных угрозах. Этот подход хорош до тех пор, пока вы не погрузитесь в описываемую область достаточно глубоко. Опций немного, но даже среди имеющихся есть полезные, например, Community ID.
Его использование может быть полезно в случае интеграции Suricata и других продуктов (например, Elasticsearch). Community ID добавляется в "главную" конфигурацию Suricata. Чтобы это сделать, установите для директивы "community-id:" значение "true" в файле /etc/suricata/suricata.yaml.
```
cd /etc/suricata/suricata.yaml
```
Следующим шагом нужно определить имя подлежащего мониторингу сетевого интерфейса. Скорее всего, это будет интерфейс по умолчанию, найти его можно при помощи команды:
```
ip -j -p route show default
```
Небольшое пояснение: опция -j установит формат "вывода" как JSON, флаг -p улучшает читабельность. Собственно интерфейс стоит искать в строке "dev".
Далее, имя найденного интерфейса нужно указать для Suricata, откройте файл /etc/suricata/suricata.yaml, найдите директиву interface в строке #550. Если нужно отслеживать несколько интерфейсов, можно добавить их все.
По окончании редактирования, нужно перезапустить сервис командой:
```bash
service suricata restart
```
## Обновление** правил**
Для добавления дополнительных правил был придуман инструмент suricata-update. С его помощью можно скачивать как свободные, так и распространяемые за плату наборы правил со сторонних сайтов. Также он позволяет посмотреть, которые из наборов правил используются в данный момент.
```
suricata-update list-sources
```
Чтобы установить новый набор правил, выполните команду:
```
suricata-update enable-source
```
Для применения изменений запустите suricata-update еще раз.
## Проверка** текущих настроек**
Хорошей практикой является проверка конфигурации после каждого изменения. Делается это так:
```
suricata -T -v -c /etc/suricata/suricata.yaml # С флагом -T Suricata запускается в режиме "проверки", опция -c указывает путь к файлу конфигурации, параметр -v выводит множество дополнительной информации
```
## **Запуск** сервиса
Чтобы перезапустить демон после успешной проверки конфигурации, выполните:
```bash
service suricata restart
```
Для проверки статуса службы применяется команда
```bash
service suricata status
```
## **Проверка** действующих** правил**
Чтобы проверить, действительно ли трафик обрабатывается сообразно вашим ожиданиям, установите инструмент jq, это сделает анализ журнала более простым. Для тестирования можно использовать специальным образом созданный файл.
```bash
apt-get install jq
```
```bash
apt-get install curl
```
```bash
curl http://testmynids.org/uid/index.html
```
Для поиска идентификаторов предупреждений можно посмотреть в лог-файлы:
```
tail -f /var/log/suricata/fast.log
tail -f /var/log/suricata/eve.log
```
Далее, можно посмотреть описание угрозы более детально:
```
jq 'select(.alert .signature_id==)' /var/log/suricata/eve.json
```
## Итоги
Вы научились устанавливать и конфигурировать набор инструментов Suricata. Узнали, что можно использовать Community Flow ID для интеграции данного ПО с другими диагностическими инструментами. Также теперь вы умеете проверять настройки сервиса и анализировать с его помощью HTTP-трафик.
https://serverspace.uz/support/help/ustanovka-memcached-na-ubuntu.mdИнструкция по установке Memcached на Ubuntu. Для чего используется кеширование, как установить кеширующий сервис и как настроить Memcached
## Что такое memcached и почему его стоит использовать
По умолчанию большую часть "временных" данных операционная система хранит в файлах на диске. Это достаточно медленно, даже если этот диск — [современный SSD](https://serverspace.uz/about/blog/ssd-diski-dlya-servera/). Очевидный способ повысить производительность системы — "сбросить" временные файлы в оперативную память, ведь даже самая медленная память быстрее, чем самый быстрый диск. Наиболее часто это реализуется через использование memcached.
## Подготовительный этап
Для установки безопасного кеширующего сервиса понадобится:
- Сервер под управлением Linux, например, Ubuntu 20.04
- Привилегированный доступ (root или принадлежность к группе sudo)
- Опционально – включенный файрволл
## Установка "кешировщика" и сопутствующих инструментов
Процесс установки весьма прост. Достаточно:
- Авторизоваться как root, обновить пакетный кеш
```bash
sudo -s
apt-get update
```
- Установить собственно memcached и ряд сопутствующих утилит
```bash
apt-get install libmemcached-tools memcached -y
```
## Конфигурирование сервиса
Memcached хранит свои настройки в файле /etc/memcached.conf. Наиболее интересными из них представляются:
```
-m # количество оперативной памяти, используемое для кеширования
-p # TCP-порт, который "слушает" служба
-U # включение UDP-порта (опционально)
-l # используемый IP-адрес, обычно 127.0.0.1 для локального применения или "внешний" IP-адрес, на который могут обратиться "сторонние" службы
-c # допустимое количество одновременных подключений
-S # эта опция нужна, если используется механизм авторизации (будет описано далее)
```
Чтобы принимать подключения, требуется внести изменения в настройки файрволла
```
ufw allow
```
## Повышение безопасности
Если ваш сервер доступен для подключений извне, нелишним будет немного отредактировать конфигурацию сервиса с целью повысить безопасность. Шаги по "включению" механизма простой аутентификации по логину и паролю следующие:
- Установка одной строчкой
```bash
apt-get -y install sasl2-bin
```
- Редактирование настроек
```
mkdir /etc/sasl2; nano /etc/sasl2/memcached.conf
```
- Создание пароля и правка файловых разрешений. ВНИМАНИЕ: это не системная учетная запись, memcached использует свою собственную авторизацию
```bash
saslpasswd2 -c -f /etc/sasl2/memcached-sasldb2 -a memcached
chown memcache:memcache /etc/sasl2/memcached-sasldb2
```
- Для применения сделанных изменений перезапустите сервис
```bash
service memcached restart
```
## Проверка работы
Для проверки того, работает ли сервис кеширования, достаточно выполнить одну команду
```
memcstat --servers="" --username= --password=
```
Если все сделано правильно, в терминале будет видно примерно следующее:
## Итоги
В этой инструкции объясняется, что такое кеширование, для чего оно используется, как установить кеширующий сервис и какие сделать настройки, чтобы повысить уровень безопасности.
https://serverspace.uz/support/help/razvertyvanie-prilozheniya-react-na-nginx-pod-ubuntu.mdИнструкция по установке и настройке приложения React на своем сайте с помощью веб-сервера Nginx под управлением ОС Ubuntu
## О чем эта статья
В этой статье вы узнаете, как подготовить сервер на Ubuntu 20.04 и затем развернуть на нем приложение ReactOS совместно с веб-сервером Nginx.
В Serverspace вы можете создать [сервер с предустановленным приложением Nginx](https://serverspace.uz/services/cloud-marketplace/nginx.md).
## Что важно знать перед установкой
Чтобы вы могли установить приложение React на свой сервер, должны быть выполнены следующие требования:
- Ваш сервер должен работать под управлением современной операционной системы семейства Linux, например Ubuntu 20.04
- У вас должен быть root-доступ или ваш пользователь должен входить в группу sudo
- Также понадобится доменное имя с корректными настройками DNS. A-записи домена должны быть "направлены" на "внешний" IP-адрес вашего сервера.
## Процесс установки
- Первый этап - авторизация от имени привилегированной учетной записи и установка NodeJS:
```bash
sudo -s
apt install nodejs npm -y
```
- Следующий шаг — установка пакета npx. Выполните команду:
```bash
npm i -g npx -y
```
- Для "промежуточной" проверки того, что все установилось корректно, дайте следующие команды:
```bash
node -v
npm -v
npx -v
```
Об успехе свидетельствует картина наподобие изображенной ниже:
- Первое react-приложение создается очень просто, буквально одной строкой:
```
npx create-react-app
```
Процесс может занять некоторое время, будьте терпеливы. В итоге вы увидите что-то вроде изображения ниже и можно будет перейти к следующему разделу:
## Установка веб-сервера
- Для удобной работы с только что созданным приложением понадобится любой современный веб-сервер, проиллюстрирую на примере Nginx. Чтобы установить его, выполните команду:
```bash
apt install -y nginx
```
- Создайте минимально необходимое описание конфигурации вашего веб-сайта:
```xml
cat
https://serverspace.uz/support/help/sozdanie-i-dobavlenie-bota-dlya-discord-ispolzuya-python.mdСоздание и добавление бота для Discord, используя Python
Что такое Discord
https://serverspace.uz/support/help/bitlocker-active-directory.mdВ этой статье описан процесс интеграции ключей шифрования BitLocker в Windows AD (Active Directory). Создание и настройка политики домена
В рамках данного руководства вы узнаете, как легко интегрировать ключи восстановления BitLocker в Windows Active Directory (AD). При выполнении следующих шагов безопасность дисков, защищенных BitLocker, будет обеспечена надежно, поскольку используется механизм централизованного хранилища необходимой информации для восстановления.
## Требование к настройке
Для установки BitLocker в AD необходимо проверить все требования в соответствии с этим списком:
- Наличие модуля Trusted Platform Module (TPM) версии 1.2 или новее. Эта функция входит в стандартные библиотеки большинства современных компьютеров.
- Встроенное ПО BIOS/UEFI, поддерживающее TPM и включившее его. Убедитесь, что в настройках BIOS/UEFI компьютера включен TPM, чтобы обеспечить бесперебойную работу BitLocker.
- Включенная функция Secure Boot. Активация Secure Boot обеспечивает дополнительный уровень безопасности и дополняет функцию TPM для усиления защиты данных.
## Создадим политику домена
Чтобы обеспечить хранение необходимых ключей в домене, необходимо формирование групповой политики, которая устанавливает правила шифрования диска. Воспользуйтесь возможностями управления GPO, которые служат шлюзом для централизованной защиты ключей восстановления BitLocker. Начнем, откройте панель управления GPO.
Прежде всего создайте объект, который вы хотите использовать в политике, для этого откройте проводник Windows, нажав сочетание клавиш **Win + E**, затем в поле сверху введите **Control Panel\System and Security\Administrative Tools**, в этой папке выберите **AD User and Computers**:
В этой утилите создайте новую организационную единицу или объект, к которому вы хотите применить политику шифрования диска, для чего щелкните на имя домена и выберите пункт **New** и **Organizational Unit**:
Добавьте компьютеры на вашей машине в **OU**:
Найти систему управления групповыми политиками несложно - достаточно выполнить поиск или воспользоваться следующей командой, нажав **Win+R**:
```
gpmc.msc
```
Затем создайте новую групповую политику на организационное подразделение, которое охватывает компьютеры с требованием автоматически хранить ключи. Например, можно применить ее к OU Computer. Однако мы можем применить ее для любых объектов Active Directory: лес, домен, сайты, организационная единица.
Щелкните правой кнопкой мыши на объект и выберите соответствующий пункт, как показано на рисунке выше:
## Настроим политику
Начните с создания отдельной групповой политики. Пройдите по пути **Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> BitLocker Drive Encryption**, выберите этот параметр и измените значение на **Enabled**.
Продолжим установку, теперь необходимо перейти в папку чуть ниже списка меню слева и выбрать вторую папку Operating, в которой будет находиться файл с настройками Store, открыв его двойным щелчком мыши, перейдите на панель и выберите **Enabled**.
Установите все галочки, как показано на рисунке выше, в поле опций, затем обязательно установите последнюю галочку, так как из-за этого возможны проблемы восстановления. Если требуется сохранить ключи на съемном устройстве, необходимо выбрать соответствующий файл конфигурации и включить эту функцию.
## Обновим политики
Следующим шагом будет обновление политики или правил, которые мы настроили на шаге выше, для этого введите команду в CLI и подождите некоторое время:
```
gpupdate /force
```
## Управление ключами через AD
Для эффективного управления и настройки BitLocker на клиентских компьютерах необходимо установить необходимые компоненты на сервере. Это позволит контролировать и настраивать параметры BitLocker, обеспечивая оптимальную безопасность и шифрование на клиентских машинах:
После успешной установки компонента для завершения настройки необходимо перезагрузить сервер. После запуска сервера перейдите в панель управления для пользователей и компонентов AD. Зайдите в свойства ПК, где теперь вы найдете новую вкладку BitLocker Recovery. На этой вкладке вы получите право просматривать ключ шифрования, что позволит узнать о состоянии шифрования BitLocker и возможностях восстановления ПК.
Если у пользователя возникли проблемы с входом в систему, администратор домена имеет возможность получить ключ шифрования из домена. Воспользовавшись этим ключом, пользователь сможет без проблем войти в систему. Такой процесс восстановления обеспечивает быстрый доступ и сводит к минимуму возможные сбои, связанные с трудностями входа в систему, гарантируя бесперебойную работу пользователей.
Так же можно восстановить диск из интерфейса с поиском ключа:
Удобство поиска ключа восстановления обеспечивается использованием начальных 8 символов, как показано в примере: **6CEF9111**. Использование такого поисковика позволяет быстро и легко обнаружить полный ключ, что обеспечивает эффективное восстановление в случае возникновения критических событий или проблем:
Для обеспечения максимальной безопасности, доступ к ключу BitLocker предоставляется только администратору домена. Тем не менее, при необходимости можно настроить права доступа к ключу BitLocker для других пользователей домена. Такая гибкость обеспечивает контролируемый и управляемый подход к предоставлению прав на извлечение ключа, что позволяет соответствующему персоналу получать доступ к процессу восстановления BitLocker и управлять им по мере необходимости.
## BitLocker шифрование диска
Щелкнув диск правой кнопкой мыши на целевой машине, выберите пункт **Turn on**:
После того как ключ надежно сохранен в домене, BitLocker автоматически запускает процесс шифрования диска. Такой оптимизированный подход обеспечивает надежную защиту данных.
Кроме того, на одном ПК можно использовать несколько паролей BitLocker, каждый из которых связан с разными портативными флеш-накопителями. Эта универсальная функция позволяет удобно и индивидуально шифровать данные на различных устройствах хранения.
## Диск уже зашифрован?
Если диск был зашифрован до этого шага, то необходимо узнать его идентификатор и добавить его в системное хранилище:
```
manage-bde -protectors -get c:
```
Выполнив эту команду, вы получаете доступ к подробной информации о защитах шифрования BitLocker, связанных с указанным диском. Замените **С:** буквой, соответствующей конкретному диску. После выполнения команды в командной строке Command Prompt или PowerShell будет отображена необходимая информация, например пароли восстановления, ключи восстановления или TPM-протекторы (в зависимости от метода шифрования, используемого для данного диска).
Так же необходимо запомнить идентификатор (например, 6CEF9111-61C2-4A09-84E1-2C0F0AAD60D2).
Перейдем к вводу следующей команды:
```
manage-bde -protectors -adbackup C: -id {6CEF9111-61C2-4A09-84E1-2C0F0AAD60D2}
```
С помощью этой команды указанный ключ будет надежно резервироваться в Active Directory, обеспечивая повышенную защиту и восстановление зашифрованного диска.
## Вывод
Эта инструкция позволит вам уверенно внедрять BitLocker и управлять им, повышая безопасность данных и обеспечивая оперативное восстановление в среде AD. В результате ваша организация теперь имеет все необходимое для защиты критически важных данных, укрепления стратегий защиты данных и эффективного снижения потенциальных рисков.
https://serverspace.uz/support/help/osnovnye-komandy-ufw.mdВ статье подробно рассмотрены общие правила UFW, которые часто используются для настройки брандмауэра в Ubuntu
## Введение
Инструментом настройки брандмауэра по умолчанию для Ubuntu является ufw. Разработанный для упрощения настройки брандмауэра iptables, ufw предоставляет удобный способ создания брандмауэра на базе хоста IPv4 или IPv6. По умолчанию UFW отключен.
Если в вашей версии ufw не установлена, вы можете её установить используя команду:
```bash
sudo apt update && sudo apt install ufw
```
## Проверка статуса UFW
Проверить, включен ли брандмауэр, используйте эту команду:
```
sudo ufw status
```
Результат покажет, активен ли ваш брандмауэр или нет.
## Включение UFW
Если при выполнении команды ufw status вы получили сообщение **Status: inactive**, это означает, что брандмауэр еще не включен в системе. Вам нужно выполнить команду, чтобы включить его.
По умолчанию, когда UFW включен, он блокирует внешний доступ ко всем портам на сервере. На практике это означает, что если вы подключены к серверу по SSH и включите ufw до разрешения доступа через порт SSH, вы будете отключены.
Чтобы включить UFW в вашей системе, выполните команду:
```
sudo ufw enable
```
Вы увидите результат, подобный этом
Чтобы увидеть, что в настоящее время заблокировано или разрешено, вы можете использовать параметр **verbose** при запуске **ufw status**, как показано ниже:
```
sudo ufw status verbose
```
## Отключение UFW
Если по какой-то причине вам нужно отключить брандмауэр, вы можете сделать это с помощью следующей команды:
```
sudo ufw disable
```
Будьте внимательны, эта команда полностью отключит службу брандмауэра в вашей системе!
## Блокировка обращения IP-адреса
Чтобы заблокировать все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, который вы хотите заблокировать:
```
sudo ufw deny from 91.198.174.190
```
В этом примере **from 91.198.174.190** указывает IP-адрес источника "91.198.174.190".
```
sudo ufw status
```
Если вы запустите эту команду, вы увидите, что указанный IP-адрес находится в списке запрещенных:
Все соединения, входящие и исходящие, блокируются для указанного IP-адреса.
## Заблокировать подсеть
Если вам нужно заблокировать всю подсеть, вы можете использовать адрес подсети в качестве параметра "from" в команде ufw deny. Это заблокирует все IP-адреса в приведенной в примере подсети 91.198.174.0/24:
```
sudo ufw deny from 91.198.174.0/24
```
## Блокирование входящих подключений к сетевому интерфейсу
Чтобы заблокировать входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив IP-адрес на IP-адрес, который вы хотите заблокировать:
```
sudo ufw deny in on eth0 from 91.198.174.192
```
Параметр "in" указывает брандмауэру применять правило только для входящих соединений, а параметр "on eth0" указывает, что правило применяется только для интерфейса eth0.
Это может быть полезно, если у вас есть система с несколькими сетевыми интерфейсами (включая виртуальные), и вам нужно заблокировать внешний доступ к некоторым из этих интерфейсов, но не ко всем.
## Разрешить обращения IP-адреса
Чтобы разрешить все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, к которому вы хотите разрешить доступ:
```
sudo ufw allow from 91.198.174.192
```
Если теперь вы запустите "sudo ufw status", вы увидите вывод, похожий на этот, с надписью ALLOW рядом с IP-адресом, который вы только что добавили:
```
sudo ufw status
```
Вы также можете разрешить соединения из целой подсети, указав соответствующую маску подсети для хоста, например, 91.198.174.0/24.
## Разрешение входящих подключений к сетевому интерфейсу
Чтобы разрешить входящие подключения с определенного IP-адреса к определенному сетевому интерфейсу, выполните следующую команду, заменив IP-адрес на тот, который вы хотите разрешить:
```
sudo ufw allow in on eth0 from 91.198.174.22
```
Параметр "in" указывает брандмауэру применять правило только для входящих соединений, а параметр "on eth0" указывает, что правило применяется только для интерфейса "eth0".
```
sudo ufw status
```
Если вы выполните команду для просмотра активных правил брандмауэра, вы увидите результат, подобный этому:
## Удалить правило брандмауэра
Чтобы удалить правило, ранее установленное в UFW, используйте **ufw delete**, затем введите правило (allow / deny) и целевую спецификацию. В следующем примере удаляется правило, ранее установленное для разрешения всех подключений с IP-адреса 91.198.174.192:
```
sudo ufw delete allow from 91.198.174.192
```
Другой способ указать, какое правило вы хотите удалить, - это указать ID правила. Эту информацию можно получить с помощью следующей команды:
```
sudo ufw status numbered
```
Из вывода видно, что есть два активных правила. Первое правило, запрещает все соединения, исходящие с IP-адреса 91.198.174.190. Второе правило разрешает соединения на интерфейсе eth0, поступающие с IP-адреса 91.198.174.22.
Поскольку по умолчанию брандмауэр уже блокирует весь внешний доступ, если он не разрешен явным образом, первое правило является избыточным, поэтому его можно удалить. Чтобы удалить правило согласно его ID, выполните команду:
```
sudo ufw delete 1
```
Вам будет предложено подтвердить операцию и убедиться, что указанный вами ID относится к правильному правилу, которое вы хотите удалить.
Если вы снова просмотрите список активных правил фильтрации, то увидите что правило было удалено.
## Список доступных профилей приложений
При установке приложения, которые полагаются на сетевые коммуникации, обычно устанавливают профиль брандмауэра, который можно использовать для разрешения подключения с внешних адресов. Это часто то же самое, что запустить "ufw allow from", с тем преимуществом, что это ярлык, который абстрагирует конкретные номера портов, используемые службой, и обеспечивает удобную номенклатуру для ссылающихся служб.
```
sudo ufw app list
```
Если вы установили службу, например, веб-сервер или другое сетезависимое программное обеспечение, и профиль не был доступен в брандмауэре, сначала убедитесь, что служба включена.
Например для удаленных серверов обычно доступен OpenSSH:
## Включить профиль для определенного приложения
Чтобы включить профиль приложения брандмауэра, выполните команду "ufw allow", за которой следует имя профиля приложения, который вы хотите включить и который можно получить с помощью команды:
```
sudo ufw app list
```
В следующем примере мы включаем профиль OpenSSH, который разрешит все входящие SSH-соединения на стандартном порту SSH.
```
sudo ufw allow OpenSSH
```
## Отключить профиль для определенного приложения
Чтобы отключить профиль приложения, который вы ранее настроили в брандмауэре, вам нужно удалить соответствующее правило.
Например, рассмотрим следующий вывод:
```
sudo ufw status
```
Этот вывод указывает на то, что профиль приложения "Nginx Full" в настоящее время включен, разрешая любые соединения с веб-сервером как через HTTP, так и через HTTPS.
Если вы хотите разрешить только HTTPS-запросы к вашему веб-серверу, вам нужно сначала включить наиболее ограничивающее правило, которым в данном случае будет "Nginx HTTPS", а затем отключить активное правило "Nginx Full":
```
sudo ufw allow "Nginx HTTPS"
sudo ufw delete allow "Nginx Full"
```
Помните, что вы можете перечислить все доступные профили приложений с помощью:
```
sudo ufw app list
```
## Разрешить SSH
При работе с удаленными серверами вам необходимо убедиться, что порт SSH открыт для подключений, чтобы вы могли удаленно войти на свой сервер.
Следующая команда включит профиль приложения OpenSSH для брандмауэра и разрешит все соединения с портом SSH по умолчанию на сервере:
```
sudo ufw allow OpenSSH
```
Хотя это менее удобно для пользователя, альтернативным синтаксисом является указание точного номера порта службы SSH, который по умолчанию обычно установлен на 22:
```
sudo ufw allow 22
```
## Разрешить входящий SSH с определенного IP-адреса или подсети
Чтобы разрешить входящие соединения с определенного IP-адреса или подсети, добавьте адрес или подсеть после "from". Необходимо, чтобы вы также указали адрес назначения после параметра "to".
Чтобы заблокировать это правило только для SSH, ограничьте "proto" (протокол) значением "tcp", а затем используйте параметр "port" и установите его на 22, порт по умолчанию SSH.
Следующая команда разрешит только соединения SSH, исходящие с IP-адреса 91.198.174.33:
```
sudo ufw allow from 91.198.174.33 proto tcp to any port 22
```
Вы также можете использовать адрес подсети в качестве параметра "from", чтобы разрешить входящие соединения SSH из всей сети:
```
sudo ufw allow from 91.198.174.0/24 proto tcp to any port 22
```
## Разрешить входящий Rsync с определенного IP-адреса или подсети
Программа Rsync, которая работает на порту 873, может использоваться для передачи файлов с одного компьютера на другой.
Чтобы разрешить входящие соединения rsync с определенного IP-адреса или подсети, используйте параметр "from" для указания IP-адреса источника и параметр "port" для установки порта назначения 873. Следующая команда разрешит только соединения Rsync, поступающие с IP-адреса 91.198.174.33:
```
sudo ufw allow from 91.198.174.33 to any port 873
```
Чтобы разрешить всей подсети 91.198.174.0/24 возможность использовать "Rsync" на ваш сервер, выполните команду:
```
sudo ufw allow from 91.198.174.0/24 to any port 873
```
## Разрешить Nginx HTTP / HTTPS
При установке веб-сервер Nginx устанавливает несколько различных профилей брандмауэра внутри сервера. После установки и включения Nginx в качестве службы выполните следующую команду, чтобы определить, какие профили доступны:
```
sudo ufw app list | grep Nginx
```
Чтобы разрешить трафик HTTP и HTTPS, выберите **Nginx Full**. В противном случае выберите либо **Nginx HTTP**, чтобы разрешить только HTTP, либо **Nginx HTTPS**, чтобы разрешить только HTTPS.
Следующая команда разрешит трафик HTTP и HTTPS на сервере (порты 80 и 443):
```
sudo ufw allow "Nginx Full"
```
## Разрешить Apache HTTP / HTTPS
При установке веб-сервер Apache устанавливает несколько различных профилей UFW внутри сервера. После установки и включения Apache в качестве службы выполните следующую команду, чтобы определить, какие профили доступны:
```
sudo ufw app list | grep Apache
```
Чтобы включить трафик HTTP и HTTPS, выберите "Apache Full". В противном случае выберите либо "Apache" для HTTP, либо "Apache Secure" для HTTPS.
Следующая команда разрешит HTTP и HTTPS трафик на сервере (порты 80 и 443):
```
sudo ufw allow "Apache Full"
```
## Разрешить все входящие HTTP (порт 80)
Веб-серверы, такие как Apache и Nginx, обычно прослушивают HTTP-запросы на порту 80. Если ваша политика по умолчанию для входящего трафика настроена на отклонение или запрет, вам необходимо создать правило UFW для разрешения внешнего доступа к порту 80. В качестве параметра этой команды можно использовать либо номер порта, либо имя службы (http).
Чтобы разрешить все входящие HTTP-соединения (порт 80), выполните команду:
```
sudo ufw allow http
```
Альтернативным синтаксисом является указание номера порта службы HTTP:
```
sudo ufw allow 80
```
## Разрешить все входящие HTTPS (порт 443)
HTTPS обычно работает на порту 443. Если ваша политика по умолчанию для входящего трафика настроена на отклонение или запрет, вам нужно создать правило UFW для разрешения внешнего доступа по порту 443. В качестве параметра этой команды можно использовать либо номер порта, либо имя службы (https).
Чтобы разрешить все входящие соединения HTTPS (порт 443), выполните:
```
sudo ufw allow https
```
Альтернативным синтаксисом является указание номера порта службы HTTPS:
```
sudo ufw allow 443
```
## Разрешить все входящие HTTP и HTTPS
Если вы хотите разрешить трафик HTTP и HTTPS, вы можете создать одно правило, которое разрешает оба порта. Это использование требует, чтобы вы также определили протокол с помощью параметра "proto", который в данном случае должен быть установлен на **tcp**.
Чтобы разрешить все входящие соединения HTTP и HTTPS (порты 80 и 443), выполните команду:
```
sudo ufw allow proto tcp from any to any port 80,443
```
## Разрешить подключение к MySQL с определенного IP-адреса или подсети
MySQL прослушивает клиентские соединения на порту 3306. Если ваш сервер баз данных MySQL используется клиентом на удаленном сервере, вам необходимо создать правило UFW, чтобы разрешить такой доступ.
Чтобы разрешить входящие соединения MySQL с определенного IP-адреса или подсети, используйте параметр "from" для указания IP-адреса источника и параметр "port" для установки порта назначения 3306.
Следующая команда разрешит IP-адрес 91.198.174.33 для подключения к порту MySQL сервера:
```
sudo ufw allow from 91.198.174.33 to any port 3306
```
Чтобы разрешить всей подсети 91.198.174.0/24 возможность подключения к вашему серверу MySQL, выполните команду:
```
sudo ufw allow from 91.198.174.0/24 to any port 3306
```
## Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети
PostgreSQL прослушивает клиентские соединения на порту 5432. Если ваш сервер баз данных PostgreSQL используется клиентом на удаленном сервере, вам необходимо разрешить этот трафик.
Чтобы разрешить входящие соединения PostgreSQL с определенного IP-адреса или подсети, укажите источник с помощью параметра "from" и установите порт на 5432:
```
sudo ufw allow from 91.198.174.33 to any port 5432
```
Чтобы разрешить всей подсети 91.198.174.0/24 возможность подключения к вашему серверу PostgreSQL, выполните команду:
```
sudo ufw allow from 91.198.174.0/24 to any port 5432
```
## Разрешить подключение к PostgreSQL с определенного IP-адреса или подсети
Почтовые серверы, такие как Sendmail и Postfix, обычно используют порт 25 для SMTP-трафика. Если ваш сервер не должен отправлять исходящую почту, вы можете заблокировать этот вид трафика. Чтобы заблокировать исходящие SMTP-соединения, выполните команду:
```
sudo ufw deny out 25
```
Это настроит ваш брандмауэр на блокирование всего исходящего трафика на порту 25. Если вам нужно отклонить исходящие соединения на другом номере порта, вы можете повторить эту команду и заменить "25" на номер порта, который вы хотите заблокировать.
## Заключение
UFW — это мощный инструмент, который при правильной настройке может значительно повысить безопасность ваших серверов. В данном руководстве были рассмотрены некоторые общие правила UFW, которые часто используются для настройки брандмауэра в Ubuntu. Большинство команд в этом руководстве можно адаптировать для различных случаев и сценариев использования, изменяя такие параметры, как IP-адрес источника и/или порт назначения. Для получения более подробной информации о каждом параметре команды и доступных модификаторах вы можете воспользоваться утилитой **man**, чтобы проверить руководство UFW:
```
man ufw
```
https://serverspace.uz/support/help/mail-server-postfix-dovecot-mysql-spamassassin.mdПошаговая инструкция для установки почтового сервера в Ubuntu 18.04 для локальной отправки email. В статье описана установка Postfix и Dovecot
## Введение
Эта настройка позволит вам добавить виртуальные домены, пользователей и псевдонимы и защитить виртуальный сервер от спама. Руководство поможет вам с реализацией своего собственного почтового сервера.
На примере будет использован стенд с операционной системой Linux Ubuntu 18.04 с предустановленными программами, которые помогут нам в реализации собственного почтового сервера.
Свой почтовый сервер позволит вам делать бекапы всех писем, создавать собственные массовые рассылки, уникальность своей почты и связь почты с вашим сайтом. Для того, чтобы у вас все получилось, требуется просто следовать постепенно по главам, которые расположены ниже, желаем удачи!
## Обязательные требования
- Домен, связанный с вашим сервером;
- Установлена СУБД MySQL;
- MySql предварительно настроен;
- Полные права администратора (root);
- Настроенный Fully Qualified Domain Name;
- Необязательно: SSL защищенный конфигурационный файл.
## Установка программ
```bash
apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
```
Когда появится запрос на настройку Postfix, выберите второй пункт:
В конфигурации нашей программы будет задан вопрос о системном почтовом имени - вы можете использовать свой определённое имя домена или основной домен.
Fully Qualified Domain Name - Это полное наименование вашего домена.
##
## Создание БД и ее настройка
Вскоре после установки, создаем БД MySQL.
Требуется настроить 3 основных таблицы:
- domains
- users
-
Наименование базы данных в примере - "spacemail
Создайте собственную БД spacemail:
```
mysqladmin -p create spacemail
```
Введите пароль от администратора БД. Проверка производится путем сообщение из командной строки "mysql"
Поэтапно создается пользователь для аутентификации почты и выдать разрешение SELECT
```bash
mysql > GRANT SELECT ON spacemail.* TO 'userspace'@'127.0.0.1' IDENTIFIED BY 'mailpass';
```
Перезапустите привилегии БД, для того что бы понять, успешно ли применились права:
```bash
mysql > FLUSH PRIVILEGES;
```
Наконец, нам нужно использовать базу данных для поднятия таблиц и добавления наших специальных данных:
Создаем через MySQL
```bash
mysql> USE spacemail;
```
Мы собираемся создать таблицу для конкретных доменов, признанных одобренными доменами.
Так же требуется создать для конкретных доменов, и признанных авторизованными доменами.
Отдельно должна быть создана таблица под "new users". В этой таблице потребуется добавить почту и пароль. Должна быть связь вашего пользователя с доменом.
```sql
CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(51) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
Создайте новую таблицу для ввода новых пользователей. В этой таблице необходимо добавить электронную почту и пароль. Вы должны связать каждого пользователя с доменом.
```sql
CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`ДОМЕН` INT NOT NULL,
`ПАРОЛЬ` VARCHAR(107) NOT NULL,
`email` VARCHAR(121) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (ДОМЕН) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
Наконец, мы создадим таблицу виртуальных псевдонимов для указания всех писем, которые вы собираетесь пересылать на другую почту.
Создаем таблицу связывающаяся с виртуальными псевдонимами, для переадресации на другую почту.
```sql
CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`ДОМЕН` INT NOT NULL,
`source` varchar(101) NOT NULL,
`destination` varchar(101) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (ДОМЕН) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
Все важные таблицы для реализации почтового сервера, были созданы!
Требуется заполнить их в соответствии с нашими данными.
## Виртуальные домены
Здесь мы собираемся ввести ваши домены в таблицу virtual_domains. Вы можете добавить сколько угодно доменов, но в этом руководстве мы введем только основной домен (serverspace.ru) и ваше Fully Qualified Domain Name (hostname.serverspace.ru).
```sql
INSERT INTO `spacemail`.`virtual_domains`
(`id` ,`name`)
VALUES
('1', 'serverspace.ru'),
('2', 'hostname.serverspace.ru');
```
## Виртуальная почта
Мы собираемся ввести адреса электронной почты и пароли, связанные с каждым доменом. Проверьте правильность введенной вами информацию, что у вас отсутствуют ошибки.
```sql
INSERT INTO `spacemail`.`virtual_users`
(`id`, `ДОМЕН`, `ПАРОЛЬ` , `email`)
VALUES
('1', '1', ENCRYPT('pass', CONCAT('$6$', SUBSTRING(SHA(RAND()), -15))), 'spacemail1@serverspace.ru'),
('2', '1', ENCRYPT('pass', CONCAT('$6$', SUBSTRING(SHA(RAND()), -15))), 'spacemail2@serverspace.ru');
```
## Виртуальные псевдонимы
Добавления основной почты и ее связь для пересылки в будущем.
```sql
INSERT INTO `spacemail`.`virtual_aliases`
(`id`, `domain_id`, `source`, `destination`)
VALUES
('1', '1', 'alias@serverspace.ru', 'spacemail1@serverspace.ru');
```
Закрываем БД:
```
Exit
```
## Конфигурация Postfix
Конфигурация требуется для отработки Simple Mail Transfer Протокола, и отправления различных сообщения участников БД.
Сперва потребуется создать резерв нашего основного файла, если потребуется то вы всегда сможете откатить настройки назад.
```
cp /etc/postfix/main.cf /etc/postfix/название копии
```
Сконфигурируйте "main.cf" любым текстовым редактором, чтобы изменить его:
```
sudo vi /etc/postfix/main.cf
```
Комментируем параметры протокола защиты, и внести новые.
```
smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
```
Дополним настройку протокола безопасности, которые мы изменили в предыдущем шаге:
```
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
```
Закомментируйте стандартные настройки как показано ниже. Этот параметр позволит вашему серверу использовать virtual domain внутри таблицы БД.
Убедитесь, что в параметре myhostname установлено ваше Fully Qualified Domain Name.
```
myhostname = hostname.serverspace.ru
```
Добавьте пример ниже для работы почты в локальной вычислительной сети. Добавить требуется на все ваши виртуальные домены, хранящиеся в БД.
```
virtual_transport = lmtp:unix:private/dovecot-lmtp
```
Наконец, нам нужно добавить эти три параметра, чтобы сообщить программе о настройке виртуальных доменов, пользователей и псевдонимов.
Мы создадим последние три файла, которые мы добавим в файл main.cf, чтобы сообщить Postfix, как соединиться с БД
Сначала нам нужно создать конфиг. Необходимо изменить значения в зависимости от вашей персональной конфигурации.
```
nano /etc/postfix/mysql-virtual-mailbox-domains.cf
user = ЛОГИН ПОЧТЫ
password = ПАРОЛЬ ПОЧТЫ
hosts = localhost
dbname = spacemail
query = SELECT 1 FROM virtual_domains WHERE name='%s'
```
Требуется перезагрузить программу.
Проверка нахождения домена программой. В случае успешного выполнения команда должна вернуть значение 1:
```
postmap -q serverspace.ru mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
```
Затем нам нужно создать файл конфигурации
```
nano /etc/postfix/mysql-virtual-mailboxspace-maps.cf
user = ЛОГИН ПОЧТЫ
password = ПАРОЛЬ ПОЧТЫ
hosts = localhost
dbname = spacemail
query = SELECT 1 FROM virtual_users WHERE email='%s'
```
Перезагружаем программу снова:
Проверка нахождения почты, доменом. В случае успеха она должна вернуть 1:
```
postmap -q spacemail1@serverspace.ru mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
```
Мы создадим последний конфиг для настройки соединения между Postfix и БД
```
nano /etc/postfix/mysql-virtual-alias-maps.cf
user = ЛОГИН ПОЧТЫ
password = ПАРОЛЬ ПОЧТЫ
hosts = localhost
dbname = spacemail
query = SELECT destination FROM virtual_aliases WHERE source='%s'
```
Перезапустите Postfix
Нам нужно проверить, что Postfix может найти ваши псевдонимы. Введите следующую команду, и она должна вернуть почту, перенаправленную на псевдоним:
```
postmap -q alias@serverspace.ru mysql:/etc/postfix/mysql-virtual-alias-maps.cf
```
Для некоторых пользователей требуется включить порт отвечающий за шифрованное соединение с почтовыми клиентами, требуется изменить файл указанный ниже:
```
nano /etc/postfix/master.cf
```
Требуется раскомментировать и подкорректировать параметры строк :
```
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
```
В некоторых случаях нам необходимо перезапустить программу, чтобы убедиться, что порт открылся.
## Конфигурация Dovecot
Мы скопируем 7 файлов, которые будем изменять, чтобы в случае необходимости можно было вернуть все по умолчанию.
Редактирование файла конфигурации из Dovecot.
```
nano /etc/dovecot/dovecot.conf
```
Убедитесь, что этот параметр не закомментирован.
```
!include conf.d/*.conf
```
Требуется включить протоколы (добавьте pop3, если хотите) ниже строки !include_try /usr/share/dovecot/protocols.d/*.protocol
```
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp
```
Отредактируйте файл конфигурации почты:
```
nano /etc/dovecot/conf.d/10-mail.conf
```
Найдите строку mail_location, откомментируйте ее и поместите следующий параметр:
```
mail_location = maildir:/var/mail/vhosts/%d/%n
```
Найдите строку "mail_privileged_group", откомментируйте ее и добавьте параметр mail следующим образом:
```
mail_privileged_group = mail
```
## Проверка разрешений
Используйте данную команду и убедитесь, что разрешения выглядят следующим образом:
Мы собираемся создать папку для каждого домена, который мы регистрируем в таблице MySQL:
```
mkdir -p /var/mail/vhosts/serverspace.ru
```
Создайте пользователя и группу с определенным ID:
```
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
```
Нам нужно изменить владельца папки /var/mail на пользователя vmail.
```bash
chown -R vmail:vmail /var/mail
```
Затем нам нужно отредактировать файл /etc/dovecot/conf.d/10-auth.conf:
```
nano /etc/dovecot/conf.d/10-auth.conf
```
Отмените аутентификацию обычного текста и добавьте эту строку:
```
disable_plaintext_auth = yes
```
Измените параметр auth_mechanisms:
```
auth_mechanisms = plain login
```
Закомментируйте эту строку:
```
#!include auth-system.conf.ext
```
Раскомментировав эту строку вы возобновите авторизацию БД:
```
!include auth-sql.conf.ext
```
Требуется создать конфиг по пути /etc/dovecot/dovecot-sql.conf.ext с вашими данными для аутентификации:
Введите следующий код в конфиг:
```
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
```
Нам нужно изменить файл /etc/dovecot/dovecot-sql.conf.ext с нашей пользовательской информацией о MySQL:
```
nano /etc/dovecot/dovecot-sql.conf.ext
```
Снимите комментарий с параметра driver и установите mysql в качестве параметра:
```
driver = mysql
```
Откомментируйте строку connect и введите специфическую для MySQL информацию:
```
connect = host=localhost dbname=spacemail user=usermail password=mailpassword
```
Откомментируйте строку default_pass_scheme и измените ее на SHA-512.
```
default_pass_scheme = SHA512-CRYPT
```
Откомментируйте строку password_query и добавьте эту информацию:
```
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
```
Измените владельца и группу папки dovecot на пользователя vmail:
```bash
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
```
Откройте и измените файл /etc/dovecot/conf.d/10-master.conf (будьте внимательны, так как будут изменены различные параметры).
```bash
nano /etc/dovecot/conf.d/10-master.conf
##Uncomment inet_listener_imap and modify to port 0
service imap-login {
inet_listener imap {
port = 0
}
#Create LMTP socket and this configurations
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
```
Измените параметр unix_listener в service_auth следующим образом:
```bash
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}
user = dovecot
}
```
Измените службу auth-worker следующим образом:
Необходимо изменить файл конфигурации SSL из Dovecot (Пропустите пункт если вы будете использовать стандартную конфигурацию)
```
# nano /etc/dovecot/conf.d/10-ssl.conf
```
Измените параметр ssl на "required":
```
ssl = required
```
И измените путь для ssl_cert и ssl_key:
```
ssl_cert =
https://serverspace.uz/support/help/nagruzochnoe-testirovanie-web-servera.mdСоздание имитации нагрузки на тестовом сервере для прогнозирования поведения веб-сайта под нагрузкой. Утилиты для проведения тестирования
## Почему стоит использовать тесты
Когда разработка веб-сайта заканчивается, и он переходит из среды разработки в публичный доступ, реальные посетители могут создать значительную нагрузку на сервер, вследствие чего производительность и поведение веб-сайта могут отличаться от ожидаемых. Чтобы спрогнозировать поведение веб-сайта под нагрузкой, необходимо смоделировать нагрузку на тестовом сервере.
## Цели тестирования
К наиболее важным параметрам [облачного сервера](https://serverspace.uz/services/cloud-servers.md), влияющим на поведение вебсайта можно отнести:
- Латентность - время, которое проходит от запроса пользователя до первого ответа сервера;
- Общая производительность сервера - количество одновременных запросов, которые сервер может обработать. В случае отсутствия резерва мощностей запросы пользователей к сайту будут помещаться в очередь или даже вообще не будут обработаны;
- Стабильность работы - количество запросов, обработанных с приемлемым уровнем качества, так называемый перцентиль. Например, фраза "сайт отвечает за 20 миллисекунд с 90м перцентилем (отличное качество) означает, что 90% забросов обрабатывается за 20мс или менее.
## Перед запуском тестов
Перед запуском собственно тестов стоит убедиться, что сервер в принципе имеет достаточное количество системных ресурсов для обработки всех запросов. Наиболее часто используемыми "метриками" являются доступная оперативная память и загрузка центрального процессора. Для проверки доступной оперативной памяти вы можете использовать системную утилиту free. Просто запустите команду:
```
free -m
```
В большинстве случаев свободными должны оставаться не менее 25% оперативной памяти, файл или раздел подкачки не должны использоваться вовсе.
Ситуацию с загруженностью процессора прояснит другая встроенная утилита — top. Иллюстрация проверки:
```
top
```
Отображаемый индекс загрузки процессора не должен превышать количество ядер вашего процессора. Например. если средняя загрузка 8-ядерного процессора превышает 8,00 - у вас проблемы.
## Имитация загрузки
Для имитации наплыва реальных посетителей есть несколько инструментов:
Инструмент **ab** позволяет смоделировать множество одновременных подключений к веб-серверу. Использование достаточно простое:
```
ab -c -n
```
Утилита siege очень похожа по смыслу на предыдущую. Устанавливается с помощью пакетного менеджера:
```bash
apt install siege
```
Использовать также просто, однострочная команда:
```
siege -t -c
```
Утилита locust имеет веб-интерфейс и работает на Python. Устанавливается так:
```
pip3 install locust
```
После установки утилиты скачайте предварительно подготовленный скрипт, замените в нем имя сайта на свое и запустите:
```bash
wget https://raw.githubusercontent.com/locustio/locust/master/examples/browse_docs_test.py
```
```
sed 's|https://docs.locust.io/en/latest||g' browse_docs_test.py
```
```
locust -f browse_docs_test.py
```
После этого можно открыть интерфейс теста в браузере. Адрес - http://:8089
## Итоги
В этой статье описано зачем тестировать веб-сайт перед публичным размещением, а также приведены примеры утилит, позволяющих провести такую проверку.
https://serverspace.uz/support/help/veeam-backup-i-kopirovanie-na-hranilishhe-s3.mdИнструкция по настройке автоматического резервного копирования данных с помощью утилиты Veeam Backup в файловое хранилище S3
## Почему стоит делать резервные копии
У системных администраторов есть поговорка: "Есть две категории людей - одни уже делают бэкапы, другие - пока еще нет". Даже самый надежный сервер может сломаться, лучший диск может выйти из строя, суперквалифицированный специалист может по ошибке стереть данные. Своевременное и регулярное [резервное копирование](https://serverspace.uz/about/blog/zachem-delat-bekapy-i-gde-ih-hranit/) может в один из дней сэкономить много времени и нервов.
## Подготовка к резервному копированию
В этой статье мы расскажем, как снять резервную копию с сервера под Linux и поместить ее в [хранилище S3](https://serverspace.uz/services/storage.md) с помощью инструмента Veeam Backup. Понадобятся:
- Привилегированный доступ к Linux-серверу (тому, с которого снимается резервная копия);
- Сервер под операционной системой Windows Server с установленной утилитой Veeam Backup (используется для управления резервными копиями);
- Хранилище S3 как место "складирования" резервных копий.
## Настройка резервного копирования
Для настройки регулярного резервирования важных данных проделайте следующее:
- Подключитесь к управляющему Windows-серверу по RDP, скачайте, установите и запустите [Браузер S3](https://s3browser.com/help.aspx?v=6-5-9&fam=x64), кликните в меню на **Accounts > Add new account **и заполните данные доступа соответственно указанным в личном кабинете ServerSpace (раздел Storage):
- Кликните по кнопке **New Bucket **и создайте новое хранилище S3:
- Скачайте и установите [утилиту для монтирования S3-хранилищ](https://tntdrive.com/download/tntdrive-5-5-3.exe), после чего перезагрузите ваш сервер;
- Запустите только что установленную утилиту TNT Drive, выберите **Accounts > Add new account** и снова заполните реквизиты доступа:
- Там же, в меню, выберите **Drives > Add new drive **и смонтируйте S3-хранилище как локальный диск:
- Откройте Проводник или иной файловый менеджер, проверьте доступен ли S3-бакет:
- Запустите утилиту Veeam Backup, перейдите на вкладку Backup Infrastructure и добавьте новый репозиторий хранения. В качестве "точки хранения" указывайте диск, куда подмонтирован ваш инстанс S3:
- Удалите созданный при установке репозиторий хранения:
- Переключитесь на вкладку **Home **и добавьте задание по резервированию компьютера на Linux:
- Режим работы утилиты зависит от ваших нужд. Для резервирования данных с "удаленных" серверов лучше подходит работа на основе программы-агента, что устанавливается на сервер-источник:
- Придумайте понятное имя задачи и укажите реквизиты доступа к серверу:
- Выберите что именно копировать и укажите куда именно помещать данные:
- Сформируйте расписание, с какой периодичностью снимать копию и кликните по кнопке **Apply**:
Задача должна запуститься в указанное время.
## В качестве заключения
В этой статье вы узнали, зачем нужны резервные копии, как их сделать при помощи утилиты VeeamBackup и потом поместить их в ваше хранилище S3.
https://serverspace.uz/support/help/ustanovka-mongodb-v-klaster-kubernetes.mdСоздание кластера Kubernetes через личный кабинет ServerSpace, установка в нем сервиса MongoDB, создание БД и добавление в нее новых данных
## Введение
MongoDB — одна из самых популярных систем для управления базами данных NoSQL. В сочетании с Kubernetes оно может стать легко масштабируемым многоцелевым решением, подходящим для самых разных задач.
В Serverspace вы можете [создать сервер с уже установленным приложением MongoDB](https://serverspace.uz/services/cloud-marketplace/mongodb/).
## Требования к установке
Для работы с MongoDB в Kubernetes вам нужен "управляющий" сервер и привилегированная учетная запись на нем. Этот сервер может работать под любой операционной системой, однако предпочтителен все же Linux. Также потребуется [кластер Kubernetes](https://serverspace.uz/services/managed-kubernetes.md) (будет развернут на следующем шаге).
## Создание кластера Kubernetes
Прежде чем устанавливать MongoDB, необходимо развернуть Kubernetes. Чтобы сделать это в инфраструктуре Serverspace, просто войдите в личный кабинет, затем перейдите в раздел Kubernetes и начните установку:
Процесс может занять достаточно долгое время, пожалуйста, наберитесь терпения. По завершении вы увидите параметры кластера и кнопку, по нажатию на которую вы сможете скачать файл, позволяющий подключиться к свежесозданному окружению:
## Установка MongoDB
Для установки сервиса управления базами данных нужно выполнить несколько шагов.
[step num="1"]Подключитесь к "управляющему" серверу в качестве привилегированного пользователя и установите ПО при помощи пакетного менеджера.[/step]
```bash
sudo -s
apt-get update && apt install curl apt-transport-https -y && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list && apt-get update && apt install kubectl -y
```
[step num="2"]Внесите данные доступа к окружению Kubernetes в специальный файл, потом "подключите" данный файл как переменную к конфигурации вашего системного профиля.[/step]
```
mkdir /usr/local/etc/mongo && cd /usr/local/etc/mongo
cat testcluster.conf
EOF
echo "export KUBECONFIG=testcluster.conf" >> ~/.bashrc
```
[step num="3"]Проверьте подключение с помощью команды.[/step]
```bash
kubectl cluster-info
```
Если в результате вы увидите что-то, похожее на рисунок ниже - вы подключились успешно:
[step num="4"]MongoDB для хранения данных использует специальный контейнер. Его конфигурация описывается в специальном конфигурационном файле. Вы можете изменить его под свои конкретные задачи.[/step]
```
cat PersistVolClaim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongodatapv
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi # Емкость контейнера
EOF
```
[step num="5"]Следующим шагом предстоит создать файл, содержащий реквизиты для подключения непосредственно к MongoDB.[/step]
```
cat Creds.yaml
apiVersion: v1
data:
username:
password:
kind: Secret
metadata:
creationTimestamp: null
name: creds
EOF
```
**Совет - **при надобности вы можете шифровать и расшифровывать данные при помощи простых команд:
```
echo | base64 # для шифрования при помощи base64
echo | base64 -d # для дешифровки
```
[step num="6"]Далее создайте файл с описанием конфигурации контейнера MongoDB.[/step]
```
cat Deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mongo
name: mongo
spec:
replicas: 1
selector:
matchLabels:
app: mongo
strategy: {}
template:
metadata:
labels:
app: mongo
spec:
containers:
- image: mongo
name: mongo
args: ["--dbpath","/data/db"]
livenessProbe:
exec:
command:
- mongo
- --disableImplicitSessions
- --eval
readinessProbe:
exec:
command:
- mongo
- --disableImplicitSessions
- --eval
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: creds
key: username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: creds
key: password
volumeMounts:
- name: "datadir"
mountPath: "/data/db"
volumes:
- name: "datadir"
persistentVolumeClaim:
claimName: "mongopvc"
EOF
```
[step num="7"]Для запуска созданного инстанса выполните команду:
```bash
kubectl apply -f
```
[/step]
Свидетельствующий об успехе вывод выглядит так:
## Проверка подключения
[step num="8"]Теперь, когда все контейнеры успешно развернуты, можно проверить подключение при помощи следующих команд.[/step]
```bash
kubectl exec deployment/client -it -- /bin/bash
mongo
```
Об успешном подключении к MongoDB свидетельствует стандартное приглашение сервиса управления базами данных:
[step num="9"]Для создания новой базы данных просто "переключитесь" на нее. **Внимание **- фактически данные не будут сохранены до тех пор, пока в созданную БД не будут добавлены любые данные.[/step]
```
use ИМЯ_БАЗЫ_ДАННЫХ
db.createCollection("newdata") # пример добавляемых в базу тестовых данных
show dbs # проверка существования базы данных
```
## Заключение
После прочтения этой статьи вы узнали, как создать кластер Kubernetes через личный кабинет ServerSpace, развернуть в нем сервис MongoDB, создать новую базу данных и добавить в нее новые данные.
https://serverspace.uz/support/help/automation-cli.mdУзнайте, как автоматизировать развертывание виртуальных машин через CLI (s2ctl) в Serverspace. Пошаговая инструкция по установке на Linux и Windows, авторизации и примеры использования.
## CLI для управления облачной инфраструктурой
s2ctl — это инструмент командной строки от Serverspace, который позволяет управлять виртуальной инфраструктурой без использования веб-панели. С его помощью можно автоматизировать создание и настройку серверов, получать информацию о проектах и выполнять административные задачи напрямую из терминала.
CLI особенно полезен для DevOps-инженеров и разработчиков, которым важно быстрое развертывание и интеграция с CI/CD-процессами.
Утилита доступна в официальном репозитории на [GitHub](https://github.com/itglobalcom/s2ctl).
## Установка s2ctl
CLI-клиент доступен для Linux и Windows в виде готового бинарного файла. Установка не требует сложной настройки — достаточно скачать и распаковать архив.
Установка на Linux
- Скачайте последнюю версию утилиты:
```bash
wget https://github.com/itglobalcom/s2ctl/releases/download/vX.X.X/s2ctl-vX.X.X-linux.tar.gz
```
Где X.X.X — актуальная версия.
- Распакуйте архив:
```bash
tar -xzf s2ctl-vX.X.X-linux.tar.gz
```
- Перейдите в папку и проверьте запуск:
```
cd s2ctl-vX.X.X-linux ./s2ctl --help
```
- (Опционально) Добавьте утилиту в переменную PATH для удобного запуска:
```
export PATH=$PATH:""
```
Чтобы сохранить изменения:
```
echo 'export PATH=$PATH:""' >> .bashrc
source ~/.bashrc
```
Установка на Windows
- Скачайте архив с GitHub и распакуйте его.
- Откройте командную строку:
Win + R → введите cmd → Enter
- Перейдите в папку с утилитой:
```
cd
```
- Запустите CLI:
```
s2ctl --help
```
- (Опционально) Добавьте путь к утилите в системную переменную PATH через настройки системы.
### Авторизация и работа с API
Для использования CLI необходимо создать API-ключ в панели управления Serverspace. После этого можно либо сохранить его в контексте, либо передавать вручную при каждом запросе.
Создание контекста
Контексты позволяют не указывать API-ключ в каждой команде.
```
s2ctl context create -k -n
```
Пример:
```
s2ctl context create -k YOUR_API_KEY -n default
```
Передача API-ключа вручную
Если не используется контекст, ключ можно передавать напрямую:
```
s2ctl --apikey
```
### Примеры использования CLI
Получение информации о проекте
```
s2ctl project show
```
Результат выполнения команды:
```yaml
id: '1'
balance: '400.24'
currency: EUR
state: Active
created: '2019-04-08T10:35:53.7021047Z'
```
Автоматическое создание виртуального сервера
CLI позволяет быстро развернуть виртуальную машину с заданными параметрами:
```
s2ctl server create --name test-cli --location nj3 --image Ubuntu-20.04-X64 --cpu 2 --ram 2048M --volume boot:30720M --volume volume:10240M --public-network 50 --public-network 60
```
После выполнения команды возвращается идентификатор задачи:
```
task_id: lt1512053
```
С его помощью можно отслеживать процесс развертывания сервера.
## Преимущества автоматизации через CLI
Использование CLI для управления виртуальной инфраструктурой даёт ряд преимуществ:
- ускорение развертывания серверов и сервисов
- возможность интеграции с CI/CD и DevOps-процессами
- снижение количества ручных операций
- гибкость и масштабируемость управления инфраструктурой
CLI-инструменты, такие как s2ctl, позволяют полностью автоматизировать создание и управление облачными ресурсами, что особенно важно для современных проектов.
## FAQ
### Что такое CLI и зачем он нужен для управления сервером?
CLI (Command Line Interface) — это интерфейс командной строки, который позволяет управлять сервером и облачной инфраструктурой без графической панели. Он особенно полезен для автоматизации, массовых операций и интеграции с DevOps-инструментами.
### Можно ли развернуть виртуальную машину через CLI быстрее, чем через панель?
Да, CLI позволяет значительно ускорить процесс развертывания виртуальных машин. С помощью одной команды можно создать сервер с нужной конфигурацией, что экономит время по сравнению с ручной настройкой в панели управления.
### Какие операционные системы поддерживает s2ctl?
Утилита s2ctl доступна для Linux и Windows. Она распространяется в виде готового бинарного файла и не требует сложной установки, что делает её удобной для быстрого старта.
### Нужно ли каждый раз вводить API-ключ при работе с CLI?
Нет, API-ключ можно сохранить в виде контекста. Это позволяет выполнять команды без повторного ввода ключа, что упрощает работу и снижает вероятность ошибок.
### Можно ли использовать CLI для автоматизации DevOps-процессов?
Да, CLI идеально подходит для автоматизации. Его можно интегрировать в CI/CD пайплайны, использовать в скриптах и автоматизировать развертывание инфраструктуры.
### Подходит ли CLI для начинающих пользователей?
CLI может потребовать базовых знаний работы с терминалом, однако благодаря простым командам и документации его можно быстро освоить. Для сложных сценариев он становится даже удобнее, чем графический интерфейс.
### Какие задачи можно выполнять через s2ctl?
С помощью s2ctl можно создавать и удалять виртуальные машины, управлять ресурсами, получать информацию о проектах, а также автоматизировать инфраструктурные процессы.
### Чем CLI лучше панели управления?
CLI обеспечивает более высокую скорость работы, возможность автоматизации и гибкость управления. Панель управления удобна для ручных операций, а CLI — для масштабируемых и повторяемых задач.
https://serverspace.uz/support/help/automation-terraform.mdИнструкция поможет настроить управление облачными ресурсами, используя подход Infrastructure as Code, с помощью Terraform-провайдера Serverspace
## Terraform
[Terraform-провайдер Serverspace](https://registry.terraform.io/providers/itglobalcom/serverspace/latest) позволяет управлять облачными ресурсами, используя подход Infrastructure as Code. Управление осуществляется с помощью специальных конфигурационных файлов, в которых вы описываете желаемое состояние вашей инфраструктуры.
### Установка Terraform
Для начала установите Terraform на вашу операционную систему. Рекомендуем воспользоваться [инструкцией](https://learn.hashicorp.com/tutorials/terraform/install-cli#install-terraform) разработчика Terraform.
### Конфигурация провайдера
-
Для работы с Terraform создайте API-ключ для проекта.
- Создайте и перейдите в каталог, в котором вы будете работать с Terraform-провайдером.
- Создайте и откройте конфигурационный файл provider.tf.
- Вставьте в файл информацию о провайдере, где это ваш API ключ, и сохраните изменения:
```
terraform {
required_providers {
serverspace = {
source = "itglobalcom/serverspace"
version = "0.2.2"
}
}
}
variable "s2_token" {
type = string
default = ""
}
provider "serverspace" {
key = var.s2_token
}
```
- Откройте командную строку и перейдите в каталог, в котором вы создали файл. Выполните инициализацию для проверки корректности:
```
terraform init
```
В случае успеха вы увидите следующее сообщение:
```
Initializing the backend...Initializing provider plugins...
- Finding itglobalcom/serverspace versions matching "0.2.0"...
- Installing itglobalcom/serverspace v0.2.0...
- Installed itglobalcom/serverspace v0.2.0 (self-signed, key ID 062XXXXXXXXXXXX)Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/cli/plugins/signing.htmlTerraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future.Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work.
If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
```
## Описание вашей инфраструктуры
С помощью Terraform-провайдера Serverspace вы можете создавать инфраструктуру разной конфигурации. Подробную документацию вы можете найти в [Terraform Registry](https://registry.terraform.io/providers/itglobalcom/serverspace/latest/docs).
Рассмотрим пример создания простой инфраструктуры из двух серверов, объединенных в изолированную сеть:
- Сервер в Амстердаме под названием "server-1" с операционной системой Ubuntu 20.04, конфигурация сервера 2 ГБ RAM, 2 CPU, загрузочный диск 40 ГБ SSD, дополнительный диск 20 ГБ SSD, 50 Мбит/с. Подключение к серверу будет осуществляться через SSH-ключ. На сервер будет установлено хранилище данных Redis.
- Сервер в Амстердаме под названием "server-2" с операционной системой Ubuntu 20.04, конфигурация сервера 8 ГБ RAM, 4 CPU, загрузочный диск 40 ГБ SSD, 70 Мбит/с.
- Изолированная сеть в Амстердаме с адресацией 192.168.0.0/24
Для создания инфраструктуры выполните следующие шаги.
-
Создайте и откройте файл ssh_key.tf, в котором будет находиться публичная часть ssh-ключа для создания сервера.
- Вставьте в файл информацию о публичной части ssh-ключа и сохраните изменения, замените содержимое переменной public_key своим значением:
```
resource "serverspace_ssh" "terraform" {
name = "terraform-key"
public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local"
}variable "pvt_key" {
type = string
default = ""
}
```
- Создайте и откройте файл main.tf, в котором будет находиться описание инфраструктуры.
- Вставьте в файл описание вашей инфраструктуры.
```
resource "serverspace_server" "server1" {
image = "Ubuntu-20.04-X64"
name = "server-1"
location = "am2"
cpu = 2
ram = 2048
boot_volume_size = 40*1024
volume {
name = "bar"
size = 20*1024
}
nic {
network = ""
network_type = "PublicShared"
bandwidth = 50
}
nic {
network = resource.serverspace_isolated_network.my_net.id
network_type = "Isolated"
bandwidth = 0
}
ssh_keys = [
resource.serverspace_ssh.terraform.id,
]
connection {
host = self.public_ip_addresses[0]
user = "root"
type = "ssh"
private_key = file(var.pvt_key)
timeout = "2m"
}
provisioner "remote-exec" {
inline = [
"export PATH=$PATH:/usr/bin",
"sudo apt-get update",
"sudo apt-get install -y redis-server",
"exit 0"
]
}
}
resource "serverspace_server" "server2" {
image = "Ubuntu-20.04-X64"
name = "server-2"
location = "am2"
cpu = 4
ram = 8192
boot_volume_size = 40*1024
nic {
network = ""
network_type = "PublicShared"
bandwidth = 70
}
nic {
network = resource.serverspace_isolated_network.my_net.id
network_type = "Isolated"
bandwidth = 0
}
}
resource"serverspace_isolated_network" "my_net" {
location = "am2"
name = "my_net"
description = "Example for Terraform"
network_prefix = "192.168.0.0"
mask = 24
}
```
-
Для создания инфраструктуры, описанной выше выполните команду:
```
terraform apply
```
В результате появится диалоговое окно:
```
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
+ createTerraform will perform the following actions:# serverspace_isolated_network.my_net will be created
+ resource "serverspace_isolated_network" "my_net" {
+ description = "Example for Terraform"
+ id = (known after apply)
+ location = "am2"
+ mask = 24
+ name = "my_net"
+ network_prefix = "192.168.0.0"
}# serverspace_server.server1 will be created
+ resource "serverspace_server" "server1" {
+ boot_volume_id = (known after apply)
+ boot_volume_size = 40960
+ cpu = 2
+ id = (known after apply)
+ image = "Ubuntu-20.04-X64"
+ location = "am2"
+ name = "server-1"
+ public_ip_addresses = (known after apply)
+ ram = 2048
+ ssh_keys = (known after apply)
+ nic {
+ bandwidth = 0
+ id = (known after apply)
+ ip_address = (known after apply)
+ network = (known after apply)
+ network_type = "Isolated"
}
+ nic {
+ bandwidth = 50
+ id = (known after apply)
+ ip_address = (known after apply)
+ network_type = "PublicShared"
}
+ volume {
+ id = (known after apply)
+ name = "bar"
+ size = 20480
}
}
# serverspace_server.server2 will be created
+ resource "serverspace_server" "server2" {
+ boot_volume_id = (known after apply)
+ boot_volume_size = 40960
+ cpu = 4
+ id = (known after apply)
+ image = "Ubuntu-20.04-X64"
+ location = "am2"
+ name = "server-2"
+ public_ip_addresses = (known after apply)
+ ram = 8192
+ ssh_keys = (known after apply)
+ nic {
+ bandwidth = 0
+ id = (known after apply)
+ ip_address = (known after apply)
+ network = (known after apply)
+ network_type = "Isolated"
}
+ nic {
+ bandwidth = 70
+ id = (known after apply)
+ ip_address = (known after apply)
+ network_type = "PublicShared"
}
}
# serverspace_ssh.terraform will be created
+ resource "serverspace_ssh" "terraform" {
+ id = (known after apply)
+ name = "terraform-key"
+ public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local"
}
Plan: 4 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
```
- Для создания инфраструктуры введите _yes_.
```xml
Enter a value: yesserverspace_ssh.terraform: Creating...
serverspace_isolated_network.my_net: Creating...
serverspace_ssh.terraform: Creation complete after 1s [id=3181]
serverspace_isolated_network.my_net: Creation complete after 8s [id=l2n403]
serverspace_server.server2: Creating...
serverspace_server.server1: Creating...
serverspace_server.server1: Still creating... [10s elapsed]
serverspace_server.server2: Still creating... [10s elapsed]
...
serverspace_server.server1 (remote-exec): (Reading database ...
serverspace_server.server1 (remote-exec): (Reading database ... 5%
serverspace_server.server1 (remote-exec): (Reading database ... 10%
...
serverspace_server.server1: Creation complete after 1m3s [id=l2s190038]Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
```
- Для просмотра текущей инфраструктуры выполните команду:
```
terraform show
```
В результате будет отображена текущая конфигурация инфраструктуры:
```
# serverspace_isolated_network.my_net:
resource "serverspace_isolated_network" "my_net" {
description = "Example for Terraform"
id = "l2n403"
location = "am2"
mask = 24
name = "my_net"
network_prefix = "192.168.0.0"
}
# serverspace_server.server1:
resource "serverspace_server" "server1" {
boot_volume_id = 58909
boot_volume_size = 40960
cpu = 2
id = "l2s190038"
image = "Ubuntu-20.04-X64"
location = "am2"
name = "server-1"
public_ip_addresses = [
"45.138.24.19",
]
ram = 2048
ssh_keys = [
3181,
]
nic {
bandwidth = 0
id = 59576
ip_address = "192.168.0.1"
network = "l2n403"
network_type = "Isolated"
}
nic {
bandwidth = 50
id = 59575
ip_address = "45.138.24.19"
network_type = "PublicShared"
}
volume {
id = 58910
name = "bar"
size = 20480
}
}
# serverspace_server.server2:
resource "serverspace_server" "server2" {
boot_volume_id = 58911
boot_volume_size = 40960
cpu = 4
id = "l2s190039"
image = "Ubuntu-20.04-X64"
location = "am2"
name = "server-2"
public_ip_addresses = [
"31.44.3.68",
]
ram = 8192
ssh_keys = []
nic {
bandwidth = 0
id = 59578
ip_address = "192.168.0.2"
network = "l2n403"
network_type = "Isolated"
}
nic {
bandwidth = 70
id = 59577
ip_address = "31.44.3.68"
network_type = "PublicShared"
}
}
# serverspace_ssh.terraform:
resource "serverspace_ssh" "terraform" {
id = "3181"
name = "terraform-key"
public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local"
}
```
https://serverspace.uz/support/help/kak-sozdat-lokalnuyu-set-v-oblake-serverspace.mdПроцесс создания локальной сети в облаке Serverspace и настройка сетевых интерфейсов через консоль сервера на базе Ubuntu
## Преимущества собственной локальной сети
Если в вашем проекте объединены более чем один сервер, они могут быть связаны в одну локальную сеть. Основными преимуществами такого способа действий являются:
- Возможность изолировать некоторые серверы от Интернета, что должно повысить их безопасность;
- Выделенная локальная сеть позволяет разделить публичный трафик, идущий от вашего проекта к клиентам, и "технический" трафик между серверами. Это улучшит показатели отклика серверов, обслуживающих проект;
- Вы можете объединить хосты в вашей локальной сети, сделать их "видимыми" друг для друга, как будто они находятся в одном офисе. Это может быть полезно, если в вашем бизнесе много "удаленных" сотрудников.
## Создание изолированных серверов и локальной сети через панель управления Serverspace
Чтобы создать серверы и подключить их к изолированной сети, выполните следующие действия.
[step num="1"]Войдите в личный кабинет, перейдите на вкладку VMWare Cloud > Servers и нажмите кнопку Create Server:[/step]
[step num="2"]Выберите параметры первого сервера и нажмите кнопку Create:[/step]
[step num="3"]Таким же образом создайте остальные серверы. Убедитесь, что все они расположены в одной локации.[/step]
В результате должно получиться примерно следующее:
## Создание локальной сети
Чтобы создать собственную локальную сеть, выполните следующие действия.
[step num="4"]Нажмите кнопку VMWare Cloud Networks Add Network:[/step]
[step num="5"]Выберите тип сети, местоположение и желаемую пропускную способность.[/step] Самый простой способ — маршрутизируемая сеть без выделенного узла-шлюза. Местоположение сети должно совпадать с локацией, где расположены ваши серверы:
## Назначаем серверу частный IP-адрес
Для подключения сервера к локальной сети вы должны добавить на него второй, дополнительный сетевой интерфейс как описано ниже.
Вернитесь к списку ваших серверов, щелкните на имени нужного сервера, перейдите на вкладку настроек, затем добавьте новый интерфейс и выберите ранее созданную локальную сеть:
Запомните настройки локальной сети и MAC-адрес интерфейса:
Следующим шагом вы должны изменить файл с сетевой конфигурацией сервера, чтобы добавить туда новый интерфейс. Точный образ действий зависит от операционной системы сервера, я опишу этот шаг на примере Ubuntu. Подключитесь к серверу через публичный IP, затем выполните следующую команду, чтобы узнать имя интерфейса, подключенного к локальному сегменту и запомните это имя:
```
ip link show
```
Отредактируйте файл /etc/netplan/99-netcfg-vmware.yaml с помощью текстового редактора, добавьте второй сетевой интерфейс в соответствии с имеющейся у вас информацией:
```yaml
ens224:
dhcp4: no
dhcp6: no
addresses:
- 10.0.0.6/24
gateway4: 10.0.0.1
nameservers:
addresses:
- 8.8.8.8
```
Для применения настроек выполните команду:
```
netplan apply
```
Затем проверьте доступность шлюза в локальной сети:
```
ping
```
P.S. Если вы не хотите редактировать файлы конфигурации вручную, вы можете после создания локальной сети и подключения к ней сервера просто переустановить на нем операционную систему через панель личного кабинета.
## Создаем изолированный сервер
Если вам нужно сделать сервер недоступным со стороны Интернета, нужно сделать следующее:
- Подключите сервер к локальной сети, как описано ранее;
- Перейдите в личный кабинет на страницу настроек сервера и добавьте правило брандмауэра, блокирующее весь входящий трафик на публичном интерфейсе;
- Чтобы перезапустить брандмауэр и применить настройки, нажмите кнопку **Save** и немного подождите.
## Выводы
В этой статье мы узнали, как построить собственную локальную сеть через панель управления Serverspace, разобрали все преимущества такого подхода и научились изолировать серверы от доступа извне.
https://serverspace.uz/support/help/kak-ustanovit-cyberpanel-na-ubuntu-20-04.mdПроцесс установки программного обеспечения CyberPanel для управления web-сервером. Установка через консоль для сервера на базе Ubuntu 20.04
## **Что** **такое**** CyberPanel**
CyberPanel – это полнофункциональное решение для управления вашим веб-сервером. Данная панель использует OpenLiteSpeed в качестве службы веб-сервера. Такой выбор имеет свою цену, есть как плюсы, так и минусы:
- Главный плюс OpenLiteSpeed – это его скорость. Используемое решение – одно из самых быстрых из всех, разработанных на данный момент;
- Основной минус – возможные проблемы с совместимостью и специфичные требования к проекту. OpenLiteSpeed, в отличие от популярных Nginx или Apache, поддерживает общепринятые правила веб-редиректов в ограниченном режиме, есть вероятность что потребуется модифицировать данные правила. Кроме того, OpenLiteSpeed использует специальный веб-стек и специальным образом собранные версии PHP.
## **Требования к установке**
Чтобы установить CyberPanel, вам потребуется:
- Сервер не менее чем 1Гб оперативной памяти;
- Как минимум 10Гб доступного дискового пространства;
- Ubuntu 18.04 или 20.04;
- Привилегированная учетная запись.
## **Процесс установки**
Процесс установки CyberPanel очень прост, достаточно просто следовать нижеприведенным шагам.
[step num="1"]Авторизуйтесь как пользователь с повышенными привилегиями и обновите кэш пакетного менеджера.[/step]
```bash
apt-get update
```
[step num="2"]Установите утилиту wget и скачайте установочный скрипт.[/step]
```bash
apt install wget
cd /opt
wget -O installer.sh https://cyberpanel.net/install.sh
```
Сделаем скрипт доступным:
```bash
chmod +x installer.sh
```
Запуск скрипта:
```
sh installer.sh
```
Следующий шаг – конфигурирование панели перед установкой. Имейте в виду, для установки бесплатной версии панели следует выбрать OpenLiteSpeed, версия LightSpeed Enterprise потребует покупки лицензионного ключа. Также вам будет предложено задать запоминающийся пароль доступа или сформировать его при помощи рандомизатора. Выбирать простой предустановленный пароль не рекомендуется.
Следующим шагом вам будет предложено согласиться (или отказаться) с установкой memcached, Redis и службы watchdog.
Готовьтесь к тому, что процесс установки займет достаточно много времени. По окончании процедуры вы увидите картинку, похожую на представленную на скриншоте ниже. Для окончания установки перезагрузите сервер целиком.
Когда операционная система сервера загрузится, откройте в браузере вебстраницу **https****://:8090.**** **Вы увидите страницу CyberPanel с предложением авторизоваться:
## **Заключение**
В данной статье вы узнали о том, что из себя представляет решение CyberPanel, о преимуществах и недостатках данной панели. Научились устанавливать эту панель на сервер под управлением Ubuntu 20.04.
https://serverspace.uz/support/help/install-softaculous-cpanel-ubuntu.mdПошаговая инструкция, как установить Softaculous на сервер под управлением Ubuntu 20.04. В этой статье описана установка Cpanel+ Softaculous
Для того, чтобы установить Softaculous на ваш сервер, вам требуется установить cPanel.
Минимальные требования для установки cPanel:
- Процессор - 1.2 GHz
- Оперативная память - 2 gb
- Свободное место на диске - 25 gb
Рекомендованные требования для cPanel:
- Процессор - 2.1 GHz
- Оперативная память - 4 gb
- Свободное место на диске - 45 gb
### Создание сервера под Softaculous в Serverspace
Создадим сервер который будет соответствовать рекомендованным характеристикам.
Чтобы создать серверы, выполните следующие действия:
- Войдите в личный кабинет, перейдите на вкладку vStack cloud > Servers и нажмите кнопку Create Server:
- Выберете рекомендованные требования и нажмите кнопку Create:
- Если требуется установить какие то приложения, то вы можете сделать это на этапе развертывания:
- Не забываем настроить доступ к серверу. (Либо через приватный ssh ключ, либо используя логин + пароль)
### Автоматическая установка
Установить можно благодаря автоматической команде, либо вручную.
(Бывает такое, что установка завершится неудачно, поэтому если не получилось автоматически установить cpanel, то выполните установку вручную)
Обычно это происходит из-за того, что какой-то пакет программ уже был установлен.
```
cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest
```
Возможно будет ошибка "curl not found". Значит у вас не установлена утилита "curl".
Обновите пакеты командой:
```bash
apt-get update && apt-get upgrade
```
После обновления пакетов установите утилиту.
```bash
apt-get install curl -y
```
Требуется установить perl что бы cpanel начал установку.
И после этого попробуйте повторить установить "cpanel" автоматически:
```bash
apt-get install perl
```
Если все прошло успешно, то у вас будет такое окно:
### Установка вручную
Если же установка автоматически не получилось, то выполните используйте инструкцию ниже:
1. Обновляем пакеты:
```bash
apt-get update && apt-get upgrade
```
2. Меняем название нашего сервера на наименование вашего домена "Fully Qualified Domain Name" - (hostname)
```
Hostname 31.44.3.100 cpanel.demo.com server
```
### Опционально
Вы можете установить программу "screen" для того, чтобы обезопасить себя от прерываний или же проблем при установке.
```bash
apt-get install wget screen -y
```
После установки сразу запускаем утилиту командой:
```
screen
```
### Скачивание скрипта на установку
3. Вам требуется вернуться в каталог "home".
Используем команду:
```
cd /home
```
4. Загружаем необходимые файлы командой :
```bash
wget -N http://httpupdate.cPanel.net/latest
```
После загрузки, вы можете проверить загрузился ли скрипт на ваш сервер, используя команду:
```
ls -a
```
Когда перешли в нужный каталог, запускаем скрипт на установку:
```
sh latest
```
и на выходе вы должны получит такое сообщение:
Это означает успешное начало установки cpanel.
После установки, требуется посмотреть какой ваш hostname, или же обратиться, по-вашему, айпи + порт.
Пример: 31.44.3.100:2087
После того как вы перейдете по данной ссылке, у вас откроется cpanel:
Авторизация происходит из под аккаунта root.
Далее требуется подтвердить почту, следуйте по шагам сайта.
После того как вы авторизовались на whm, зайдите по этому пути и поставьте галочку как на скриншоте ниже:
Не забудьте сохранить изменения.
Если вы авторизованы без прав суперпользователя,
то выдайте права доступа на скрипт следующей командой:
```bash
chmod 755 install.sh
```
Для установки Softaculous на WHM требуется установить скрипт:
```bash
wget -N http://files.softaculous.com/install.sh
```
После успешной установки Softaculous выйдет такое окно:
Возвращаемся на WHM и в поиске ищем "Softaculous Instant".
Поздравляем, вы успешно установили Softaculous.
## Вывод:
Благодаря данной методичке вы можете реализовать Softaculous на своем сервере для ваших веб-приложений.
https://serverspace.uz/support/help/install-grafana-ubuntu-20-04.mdПошаговая инструкция, как установить систему мониторинга Grafana и настроить брандмауэр на сервере с операционной системой Ubuntu 20.04
## Что важно знать перед установкой
Grafana поддерживает следующие базы данных:
- SQLite
- MySQL
- PostgreSQL
Требования для стабильной работы Grafana:
- Процессор - 1 CPU
- Оперативная память - 500 mb
- Свободное место на диске - 5 gb
### Создание сервера под Softaculous в Serverspace
Создадим сервер который будет соответствовать рекомендованным характеристикам.
Чтобы создать серверы, выполните следующие действия:
- Войдите в личный кабинет, перейдите на вкладку vStack cloud > Servers и нажмите кнопку Create Server:
- Выберете рекомендованные требования и нажмите кнопку Create:
- Если требуется установить какие то приложения, то вы можете сделать это на этапе развертывания:
- Не забываем настроить доступ к серверу. (Либо через приватный ssh ключ, либо используя логин + пароль)
1. Установка grafana идет из официального репозитория разработчика.
Для этого скачаем GPG-ключ и добавим его в список доверенных ключей.
```bash
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add
```
2. Теперь, нам нужно добавить в репозиторий Grafana.
```
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
```
3. После добавления, нам предстоит обновить кэш АРТ и продолжить установку Grafana:
```bash
sudo apt update
```
```bash
sudo apt install grafana
```
```bash
sudo apt-get install grafana-enterprise
```
Если при завершении установки вам выдает ошибку эту ошибку
Вам нужно прописать команду "apt –fix-broken install" и снова попробовать установить, должно все заработать.
```bash
apt –fix-broken install
```
4. После установки, добавляем в автозагрузку grafana и запустить сам демон Grafana:
```bash
sudo systemctl enable grafana-server
```
```bash
sudo systemctl daemon-reload
```
```bash
sudo systemctl start grafana-server
```
5. На этом и завершается установка репозитория Grafana на Ubuntu и она готова к применению.
И в конце проверяем статус Grafana:
```bash
sudo systemctl status grafana-server
```
Если все настроено верно, то в результате получаем следующее сообщение:
### Демонстрация конфигурирования брандмауэра для предоставления доступа к Grafana
В стандартной настройке нам показывают что Grafana доступна только по порту 3000. Но если, мы хотим использовать утилиту iptables или брандмауэра firewalld, нам предстоит предоставить им сетевой доступ к этому порту.
Скачиваем firewalld:
```bash
apt install firewalld
```
Настройка для брандмауэра firewalld (Это прописывание нового свода правил)
```
firewall-cmd --zone=public --add-port=3000/tcp –permanent
```
Далее просто перезагружаем, чтобы применилась конфигурация.
```bash
systemctl reload firewalld
```
_Настройка для утилиты iptables:_
```
nano /etc/sysconfig/iptables
```
Дальше находим раздел "OUTPUT ACCEPT" и вписываем данную строку(выделена на скриншоте):
И перезапускаем iptables:
После всех манипуляций описанных выше, сетевой экран даст доступ по подключению к порту 3000. Можно легко проверить, открыв в новой вкладке интерфейс Grafana. Данные для входа по умолчанию admin (логин и пароль).
Дальше после того мы ввели логин/пароль, он попросит нас написать уже новый пароль. (пишем свой ультра сложный пароль)
После смены пароля, авторизуйтесь и вы попадете на web интерфейс Grafana.
Если не получается произвести вход в Grafana или вы сменили пароль, то через CLI административный пароль WEB-интерфейса можно его сбросить, для этого прописываем следующую команду:
```
grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" новый пароль
```
После завершения этих манипуляций, можно пробовать снова заходить в WEB-интерфейс Grafana введя ваш новый пароль.
## Вывод:
Благодаря данной публикации, вы с легкостью установите систему мониторинга Grafana на сервер с операционной системой Ubuntu 20.04
https://serverspace.uz/support/help/kak-ustanovit-framework-net-na-windows-server.mdВ инструкции описаны два способа установки .NET Framework 3.5 и 4.8 на сервер с Windows Server. Используйте диспетчер сервера или PowerShell
## Что такое .NET Framework
Фреймворк .NET — это набор программных библиотек, разработанный и поддерживаемый корпорацией Microsoft. Множество программ от сторонних разработчиков, созданных для платформы Windows, используют этот фреймворк. Более того, некоторые предустанавливаемые с операционной системой Windows программы используют технологии .NET, например для отрисовки окон.
## Где можно установить набор библиотек .NET
Поскольку фреймворк является разработкой компании Microsoft, установить .NET Framework можно на компьютер, работающий под управлением любой актуальной операционной системы, разработанной этой компанией. В рамках текущей статьи будет рассмотрена установка на компьютер под управлением ОС Microsoft Windows Server. Для повторения помимо самого сервера необходим доступ с правами привилегированной учетной записи.
## Процесс установки
Процесс установки Windows .NET Framework достаточно удобен и прост. Последовательность действий следующая:
- Подключитесь к серверу как пользователь с правами администратора, запустите апплет **"Диспетчер сервера"**;
- Запустите мастер добавления ролей, стартовый экран можно пропустить, также, если хотите, отметьте "галочкой" пункт для пропуска данного экрана в будущем;
- Выберите тип установки и сервер, на который производится установка (по умолчанию выбирается тот сервер, к которому вы в данный момент подключены);
- Следующий раздел, "Роли", можете пропустить и переходите к следующему — "Компоненты". Отметьте галочками .NET Framework 3.5 и 4.8, затем нажмите кнопку "Далее";
- Кликните по кнопке "Установить", чтобы подтвердить изменения. Все что останется - немного подождать.
## Альтернативный метод установки
Если установка "в графике" по какой-то причине не подходит, есть способ установить .NET Framework с использованием интерфейса командной строки. Для этого достаточно запустить PowerShell с повышенными привилегиями и выполнить следующую команду:
```
DISM /online /Enable-Feature /all /FeatureName:""
```
## Вместо заключения
В данной статье вы узнали, что такое .NET Framework, в каких областях он используется и как может быть установлен на компьютер под управлением серверной версии Microsoft Windows.
https://serverspace.uz/support/help/install-prometheus-ubuntu-20-04.mdВ инструкции описывается пошаговая установка Prometheus, добавление пользователя для него и сама настройка Prometheus для работы
## Что такое Prometheus?
Prometheus - это проект с открытым кодом, отвечающий за мониторинг и оповещение. Проект был выпущен в 2015 году.
У Прометея есть ряд особенностей:
- Поддерживает гибкие языки запросов;
- Имеет несколько режимов отображения и админ панели;
- Данные хранятся и передаются по протоколу HTTP.
## Установка Prometheus
Для установки Prometheus, вам требуется обновить все пакеты на вашей системе, что бы обновить их, используйте команды ниже.
```bash
sudo apt update
sudo apt upgrade
```
****
### Установка веб-сервера Nginx
Nginx у нас доступен в открытых ресурсах Ubuntu. Установка начинается со следующих команд:
```bash
apt install nginx
```
Если у вас выскакивает данная ошибка:
Следует прописать данные команды:
```bash
rm /etc/nginx/sites-enabled/default
service nginx restart
```
и продолжайте идти по пунктам.
После всех манипуляций, прописываем последние команды из этого пункта, чтобы у нас веб-сервер(nginx) автоматически запускался когда мы включаем сервер.
```bash
systemctl enable nginx.service
```
### Создание пользователя в Prometheus
Сначала мы начнем с создания группы. После создадим пользователя и добавим его в группу. Так же потребуется создать каталог.
Создаем группу для пользователя:
```
groupadd prometheus
```
Далее создаем самого пользователя:
```
useradd -s /sbin/nologin --system -g prometheus prometheus
```
Создаем каталог:
```
mkdir /var/lib/prometheus
```
```
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
```
### Теперь устанавливаем сам Prometheus на Ubuntu
Перед дальнейшей настройкой рекомендую проверить, установлен ли у вас CURL, если не установлен то прописываем следующую команду и идем дальше:
```bash
apt install curl
```
Загружаем последнюю версию Prometheus при помощи WGET команды:
```bash
mkdir -p /tmp/prometheus
cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*.tar.gz
```
Перейдите в получившуюся директорию.
Например:
```
cd /tmp/prometheus/prometheus-2.46.0.linux-amd64
```
После переносим файлы Prometheus и Promtool из папки Prometheus в каталог _"/usr/local/bin"_.
```
mv prometheus promtool /usr/local/bin/
```
### Настройка Prometheus
В первую очередь нужно создать файл конфигурации под именем _"Prometheus.yml"_ в этом каталоге _"/etc/prometheus"_.
```
mv prometheus.yml /etc/prometheus/prometheus.yml
mv consoles/ console_libraries/ /etc/prometheus/
nano /etc/prometheus/prometheus.yml
```
Просматриваем содержимое prometheus.yml и если там есть данные то идем дальше.
****
### Создание службы Prometheus Systemd
Для легкости создадим файлы для службы systemd:
```
nano /etc/systemd/system/prometheus.service
```
Добавьте данный текст в этот файл:
```
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP \$MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
WantedBy=multi-user.target
```
Итог после этих команд:
И в завершении, меняем владельца этих каталогов на раннее созданного пользователя и группу Prometheus:
```bash
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
chown -R prometheus:prometheus /var/lib/prometheus/
```
Как только вы все прописали и проверили, перезагружаем systemd:
```bash
systemctl daemon-reload
systemctl enable prometheus
```
### Настройка брандмауэра
Теперь нам предстоит убедиться, что брандмауэр настроен верно и разрешает трафик по портам HTTPS(443), HTTP(80) и 9090.
Веб-сервер Nginx представляет себя как сервис ufw:
```
ufw allow in "Nginx Full"
ufw allow 9090/tcp
```
### Доступ к веб-интерфейсу Prometheus
По стандарту Prometheus у нас доступен на HTTP-порту 9090. Чтобы проверить это, открываем наш браузер, и в адресной строке прописываем либо ip-адрес хоста, на который мы ставили Prometheus или домен. И если все настроили верно, то у вас откроется вкладка дашбоарда Prometheus.
http://your-domain.com:9090 (пример http://domen1:9090)
http://server-ip-addreess:9090 (пример http://38.123.34.54:9090)
## Вывод
Благодаря данной публикации вы с легкостью установите систему мониторинга Prometheus на сервер с операционной системой Ubuntu 20.04
https://serverspace.uz/support/help/ustanovka-paneli-plesk-na-ubuntu-20-04.mdВсе что нужно знать для установки Plesk на VPS сервер с Ubuntu — пошаговая инструкция, позволяющая установить Plesk даже новичкам
## Что такое панель Plesk
Plesk — это популярная панель для управления веб-cервером. Она позволяет "в несколько кликов" управлять DNS-зонами, веб-доменами, базами данных, электронной почтой и так далее.
## Что нужно знать перед установкой
Одним из преимуществ Plesk являются очень "демократичные" системные требования. Для установки этой панели необходимы:
- Сервер, работающий под управлением любой популярной ОС семейства Linux x64 или даже Windows Server;
- Привилегированная учетная запись;
- Как минимум 512 МБ доступной оперативной памяти;
- Не менее одного гигабайта SWAP;
- 10 ГБ места на диске.
## Процедура установки
Чтобы установить Plesk на сервер под Ubuntu 20.04, выполните следующие действия:
- Войдите как привилегированный пользователь;
- Обновите имеющиеся программные пакеты;
```bash
apt-get update && apt-get upgrade -y
```
- Перезагрузите сервер, чтобы заработали все "обновленные" утилиты, включая новое ядро;
- Установите программу **wget**, позволяющую загрузить установочный скрипт;
```bash
apt install -y wget
```
- Для начала установки загрузите специальный файл и запустите его;
```
cd /tmp && wget http://autoinstall.plesk.com/plesk-installer && bash plesk-installer
```
- Примите лицензионное соглашение, согласитесь или откажитесь от участия в программе улучшения качества;
- Выберите один из предопределенных наборов устанавливаемых сервисов. Для большинства пользователей подойдет первый пункт. После подтвердите сделанный выбор;
- Подождите завершения процесса. В случае успеха вы увидите картинку, наподобие показанной ниже:
- Откройте браузер и перейдите на показанный на предыдущем шаге URL-адрес. Задайте учетные данные для дальнейшего доступа;
- Когда скрипты установки закончат свою работу, панель будет готова к использованию:
## Итоги
После прочтения этой статьи вы узнали о панели Plesk, ее преимуществах, целях использования, системных требованиях и порядке установки.
https://serverspace.uz/support/help/install-moodle-ubuntu-20-04.mdПошаговая инструкция, как установить систему управления обучением Moodle на web-сервер под управлением Ubuntu 20.04
## Что такое Moodle ?
Moodle – система управления обучением. По сути, это простой способ для школ и учителей давать ученикам оценки, проверять их собственные работы и отслеживать их баллы. И все это в режиме online. Если вы когда-либо работали с чем-то вроде онлайн доски или принимали участие в различных курсах, то вы понимаете, о чем идет речь.
Почему именно moodle?
Прежде всего для наших демонстрационных целей оно идеально, в нем есть то что нам нужно и плюс ко всему, лицензия на Moodle предоставляется бесплатно до определенного количества пользователей. Ограничение стоит на подключенных пользователей к вашему Moodle более чем 5 000 человек, и если у вас меньше участников, то вам не требуется платить за лицензию.
## Подготовка системы к установке и настройке Moodle
Для работоспособности moodle, требуется установить web server apache, этот этап будет пропущен, потому что мы используем готовое решение при создании сервера. На нашем сайте есть инструкция по установке и настройки apache.
В Serverspace вы можете создать [сервер с уже установленным приложением Apache](https://serverspace.uz/services/cloud-marketplace/apache.md).
Так как apache был установлен сразу при создании сервера, можем обратиться по нашему ip адресу в web строке и мы увидим данное сообщение о работоспособности и готовности apache.
Обновляем нашу машину с помощью команд ниже:
```bash
sudo apt-get update && sudo apt-get upgrade
```
Требуется установить mysql клиентскую и серверную библиотеку, так же не забываем библиотеку php для связи с apache.
```bash
sudo apt install apache2 mysql-client mysql-server php7.4 libapache2-mod-php
```
После этого потребуется установить дополнительное ПО. Займет больше времени потому что нужно установить многоуровневые совместимости php, mysql, предварительных условий библиотек чтобы заставить их работать вместе.
```bash
sudo apt install graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring git -y
```
Не забываем перезагрузить веб сервер apache:
```bash
sudo service apache2 restart
```
Чтобы узнать статус веб сервера, пропишите команду ниже:
```bash
sudo systemctl status apache2
```
Переходим в каталог "opt" и клонируем что требуется:
```
cd opt
```
Клонирование данных на наш сервер:
```bash
sudo git clone git://git.moodle.org/moodle.git
```
После установки переходим в папку куда мы будем скачивать нужные файлы. (После завершения мы просто перенесем папку в нужный нам каталог.):
```
cd moodle
```
Выводим список доступных веток, если это требуется:
```
sudo get branch -a
```
После этого выберете определенную ветку и установите ее:
```bash
sudo git branch --track MOODLE_39_STABLE origin/MOODLE_39_STABLE
```
Проверка установленной версии Moodle на нашем сервере:
```bash
sudo git checkout MOODLE_39_STABLE
```
Копируем каталог куда мы скачивали все данные (в нашем случае это папка **/opt/moodle**, в каталог apache.
Пример команды:
```
sudo cp -R /opt/moodle /var/www/html/
```
Создадим папку, где будут храниться данные moodle:
```
sudo mkdir /var/moodledata
```
Не забываем выдать ему определенные права.
```bash
sudo chown -R www-data /var/moodledata
sudo chmod -R 777 /var/moodledata
chmod ugoa=rwx /var/moodledata
sudo chmod -R 0755 /var/www/html/moodle
```
В этой папке будут хранится документы уроков, не конфигурационные файлы!
### Подготовка Базы Данных
Далее настройка предназначена только для тех, у кого MySQL версии ниже 8.0, проверить версию MySQL можно командой:
```bash
mysql --version
```
### Настраиваем конфигурационный файл MySQL
Для этого используйте любой текстовый редактор, который вам нравится, в нашем случае это будет "nano".
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
Требуется добавить 3 строчки кода в конце конфигурационного файла, посмотрите, как это реализовано у нас:
```
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
```
Сохраняем файл конфигурации и перезапускаем БД.
### Создание Базы Данных
Командой ниже мы подключаемся к mysql:
```bash
mysql -u root -p
```
Включаем поддержку 4 байтовой системы UTF 8:
```sql
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
Создаем пользователя для нашей БД:
```sql
create user serverspace@'localhost' IDENTIFIED BY 'P@ssw0rd';
```
Выдача полных прав для нашего пользователя:
```
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO serverspace @'localhost';
```
Выходим из MySQL:
```
quit
```
Выдаем права на доступ к папке moodle:
```bash
sudo chmod -R 777 /var/www/html/moodle
```
Перезапускаем веб сервер:
```bash
systemctl restart apache2
```
### Завершение установки, настройка Moodle
После перезапуска, дальнейшую настройку можно выполнять из-под web интерфейса.
Если вы выполнили все правильно, то откройте браузер и укажите в веб строке ip адрес вашего сервера, после него добавьте следующее "x.x.x.x/moodle/install.php"
У вас должно появится такое окно:
Далее следуйте подсказкам на экране и настройте так как вам нужно!
Не забудьте поменять путь до папки с вашими данными:
На следующей странице укажите логин и пароль от вашей созданной базы данных.
Далее вам потребуется подождать завершения установки.
После правильной установки у вас откроется админ панель.
## Вывод
Благодаря данной публикации вы с легкостью установите moodle и поднимите его для своих нужд.
Не бойтесь обращаться в методичку moodle, там вы найдете много уникальной информации по доработке вашего сервиса.
https://serverspace.uz/support/help/ustanovka-veb-okruzheniya-bitriks-na-server-s-centos-7.mdУстановим и настроим CMS «1C-Битрикс: Управление Сайтом» на сервер с CentOS 7. От работы в терминале до установки БУС в браузере
## Преимущества Битрикс Управление Сайтом
Одной из самых популярных CMS на сегодняшний день является Битрикс Управление Сайтом (далее - БУС). Ее распространенность обусловлена достаточно хорошим качеством и поддержкой со стороны разработчика, простотой управления, большим количеством расширяющих базовый функционал плагинов от сторонних разработчиков.
## Требования к серверу
БУС может быть установлен на любой сервер, удовлетворяющий следующим требованиям:
- Современная 64-битная редакция Linux;
- Не менее 2Гб оперативной памяти;
- Как минимум 10Гб дискового пространства (без учета места, занятого ОС);
- Учетная запись с привилегированными правами;
- Активное доменное имя с DNS-записями, "направленными" на IP-адрес сервера;
- Приобретенная лицензия БУС (возможен пробный доступ на 30 дней).
## Установка и настройка
Установка БУС на сервер с панелью управления на примере Ubuntu 20 рассмотрена в [этой статье](https://serverspace.uz/support/help/ustanovka-bitriks-upravlenie-sajtom-na-server-s-ubuntu-i-panelyu-upravleniya/). Для установки БУС на Centos 7 специалисты компании 1С создали специальный скрипт, далее будет рассмотрен именно этот вариант:
- Авторизуйтесь на сервере с повышенными правами;
```
sudo -s
```
- Установите утилиту _wget _для дальнейшего получения установочного скрипта;
```bash
yum install -y wget
```
- Скачайте установочный скрипт и запустите его. При необходимости скрипт предложит отключить SELinux, с чем необходимо согласиться;
```bash
wget https://repo.bitrix.info/yum/bitrix-env.sh
bash bitrix-env.sh
```
- Перезагрузите сервер;
- Запустите скрипт еще раз. Запустится обновление системы, подождите завершения процесса, по итогу вы должны увидеть сообщение как на скриншоте ниже;
- Закройте терминал и зайдите как root снова. Будет предложено заменить пароль учетной записи bitrix. Сделайте это.
- Создайте пул, нажав цифру "1":
- Введите имя пула. Если у вас на сервере один сайт, целесообразно ввести его доменное имя:
- Скрипт начнет свою работу, по окончании откройте ваш сайт в браузере. Должно отобразиться окно как на рисунке ниже. Нажмите кнопку "Установить":
- Выберите требуемую редакцию БУС, в поле ниже введите ваш лицензионный ключ и кликните по кнопке "Загрузить":
- Примите лицензионное соглашение:
- При наличии лицензионного ключа - заполните предлагаемые поля, если ставите пробную версию - снимите "галочку":
- Начнется установка БУС. По ее окончании будет предложено задать логин и пароль для входа в CMS. Сделайте это:
- Выберите шаблон оформления сайта из предложенных или скачайте сторонний из маркетплейса 1С:
- Остальные шаги зависят от выбранной темы и предусмотренных для нее параметров, выглядят примерно так:
- В финале вы попадете в административную панель БУС. На этом установка завершена:
## Заключение
В данной статье мы рассказали о преимуществах CMS "1C-Битрикс: Управление Сайтом", рассмотрели процесс установки БУС на сервер под управлением Centos 7 с использованием установочного скрипта, разработанного специалистами компании 1С. Также можно ознакомиться с [хостингом для Битрикс24](https://serverspace.uz/services/vps-server/bitrix24.md) с круглосуточной технической поддержкой.
https://serverspace.uz/support/help/ustanovka-paneli-hestiacp-na-server-pod-ubuntu-20.mdПодробная инструкция как установить панель управления сервером HestiaCP на сервер под управлением Ubuntu. Процесс установки со скриншотами.
## Что такое панель HestiaCP
HestiaCP - панель управления сервером, разработка которой является "ответвлением" (форком) другой популярной панели - VestaCP. Основные преимущества Hestia это:
- Удобный интерфейс;
- Богатая "комплектация". Этой панели, как правило, достаточно для всех типичных нужд, среди ее возможностей веб-сервер, почтовый сервер, PHP с селектором версий, сервер баз данных, легко устанавливаемые SSL-сертификаты и брандмауэр;
- Встроенный функционал резервного копирования.
## Что нужно для установки панели
Системные требования описываемой панели управления следующие:
- Сервер с как минимум одним процессорным ядром, 1Гб ОЗУ и 10Гб дискового пространства;
- Актуальная операционная система семейства Ubuntu (ОС на основе RHEL, в том числе Centos, не поддерживаются);
- Учетная запись с повышенными привилегиями;
- Зарегистрированный домен с A-записями, "направленными" на IP-адрес вашего сервера (необязательно, но желательно).
## Процесс установки
Чтобы установить HestiaCP на ваш сервер, сделайте следующее:
- Откройте SSH-сессию от имени привилегированного пользователя;
- Обновите существующее системное программное обеспечение;
```bash
apt update && apt upgrade -y
```
- Дождитесь завершения обновления, затем перезагрузите компьютер, чтобы применить изменения на уровне ядра системы;
- Установите утилиту wget;
```bash
apt update; apt install -y wget
```
- Скачайте и запустите файл, инициализирующий установку;
```bash
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
chmod +rw hst-install.sh
bash hst-install.sh
```
- Если скрипт сообщит о необходимости удаления несовместимого с панелью ПО - примите предложение;
- Следующим шагом будет предложено выбрать конфигурацию сервисов панели. Как правило, большинству пользователей подходят настройки, предлагаемые по умолчанию. Кроме выбора набора сервисов будет предложено указать адрес электронной почты и "привязанное" к панели доменное имя;
- Процесс установки, как правило, занимает около 15-20 минут, по его завершению вы увидите автоматически сгенерированные данные для доступа в панель. Запомните их;
- Откройте новую вкладку в вашем любимом браузере и войдите в панель Hestia, используя реквизиты, предоставленные на предыдущем шаге;
Если после авторизации вы увидите страницу наподобие показанной на рисунке ниже, значит установка прошла успешно.
## Заключение
Из этой статьи вы узнали о том, что такое панель HestiaCP, об ее преимуществах и процессе установки на сервер под управлением ОС Ubuntu.
https://serverspace.uz/support/help/ustanovka-bitriks-upravlenie-sajtom-na-server-s-ubuntu-i-panelyu-upravleniya.mdПодробная инструкция по установке CMS 1С Битрикс Управление Сайтом на сервер с Ubuntu 20.04, ее преимущества и особенности настройки фреймворка
## Преимущества Битрикс Управление Сайтом и особенности установки
CMS Битрикс Управление Сайтом (в дальнейшем в тексте - БУС) сегодня объективно является одной из наиболее распространенных систем управления контентом. Сильные стороны БУС — качественный код и длительная поддержка со стороны разработчиков, простота управления, множество разработанных третьими лицами плагинов и тем, значительно расширяющих функционал, предоставляемый "из коробки". Ранее мы уже подготовили инструкцию, [как установить БУС на сервер под управлением Centos 7](https://serverspace.uz/support/help/ustanovka-veb-okruzheniya-bitriks-na-server-s-centos-7/). Однако в случаях, если сервер работает на любой операционной системе, отличной от указанной, или при наличии любой панели управления, установка "БУС веб-окружение" невозможна и требуется установка вручную. Далее в статье рассмотрен именно этот вариант.
## Требования к серверу
БУС может быть установлен на любой сервер, удовлетворяющий следующим требованиям:
- Актуальная версия 64-разрядной ОС Linux (например, Ubuntu);
- Как минимум 2Гб RAM;
- Не менее 10Гб места на диске (без учета пространства, выделенного под ОС);
- Учетная запись с root-правами;
- Зарегистрированный домен, А-записи которого, "указывают" на IP сервера;
- Действующий лицензионный ключ БУС (не обязательно, так как возможен пробный доступ на месяц).
## Установка и настройка
Последовательность шагов по установке БУС на сервер с Ubuntu 20 и панелью управления (для примера взята HestiaCP) следующая:
- Откройте в браузере страницу панели HestiaCP (по умолчанию - https://:8083), авторизуйтесь в панели;
- Перейдите на страницу настроек сервера, кликнув по "шестеренке" в верхнем правом углу экрана, затем кликните по строке **apache2**, чтобы попасть в раздел настроек веб-сервера. Там нажмите на кнопку **Configyre PHP **и далее на **Advanced Options**;
- Найдите в появившемся тексте и установите значения параметров: _opcache.revalidate_freq=0_, opcache.enable=1, и opcache.enable_cli=1. Сохраните изменения. Это требуется для дальнейшей успешной установки БУС;
- Кликните по кнопке **Back**, затем перезапустите веб-сервер для применения изменений;
- Перейдите в раздел **Users > Add user **и создайте "обычную", не привилегированную учетную запись. В процессе создания заполните необходимые поля, после нажмите **Save**;
- Еще раз перейдите в раздел **Users **и кликните по строке с именем только что созданного пользователя. Вы должны войти в систему от его имени, что отобразится в верхней части экрана. Кликните по кнопке **Add web domain **и добавьте сайт на сервер;
- Скачайте установочный скрипт себе на компьютер, перейдя по [этой ссылке](http://www.1c-bitrix.ru/download/scripts/bitrixsetup.php);
- Вернитесь в панель HestiaCP, в верхнем меню кликните по **Files**, затем перейдите к каталогу **/web/ваш_домен/public_html**
- Удалите файлы, имеющиеся в папке, затем используя панель загрузите на сервер установочный скрипт, который скачали на компьютер ранее;
- Вернитесь в панель управления, перейдите в раздел **DB > Add database **и создайте базу данных. Запомните реквизиты доступа к ней;
- Откройте в браузере адрес http:///bitrixsetup.php, выберите редакцию CMS, введите лицензионный ключ (если есть) и нажмите **Загрузить**;
- Подождите пока дистрибутив скачается с серверов 1С, затем примите лицензионное соглашение и, при наличии лицензионного ключа, зарегистрируйте продукт;
- Проверьте, чтобы все пункты на следующем экране были отмечены зеленым цветом;
- Введите реквизиты для подключения к ранее созданной базе данных;
- Начнется финальный этап установки БУС. Когда он закончится, нужно будет указать имя пользователя и пароль для авторизации в CMS:
- Далее выберите тематику вашего сайта из предустановленных или, если ранее указывали лицензионный ключ, можете скачать шаблон из маркетплейса 1С:
- Последовательность дальнейших действий зависит от выбранного шаблона и его параметров, в общем виде процесс можно проиллюстрировать примерно так:
- В итоге вы окажетесь в административном разделе БУС и процедура установки завершится:
## Заключение
Из этой статьи вы узнали, как установить CMS Битрикс Управление сайтом на сервер под управлением Ubuntu 20.04, имеющий работающую хостинг-панель. Также можно ознакомиться с [хостингом для Битрикс24](https://serverspace.uz/services/vps-server/bitrix24.md) с круглосуточной технической поддержкой.
https://serverspace.uz/support/help/install-ruby-on-rails-ubuntu-20-04.mdПошаговая инструкция, как установить Ruby on Rails на сервер под управлением Ubuntu 20.04. Выбор и установка БД для RoR: MySQL и PostgreSQL
### Немного о фреймворке
Ruby on Rails был написан на языке программирования "Ruby". Он был создан еще в далеком 2004 году, и получил свою популярность благодаря взаимодействию с компанией "Apple" в 2006 году. Тогда "Apple" объявила, что будет поставлять "Ruby on Rails" вместе с операционной системой Mac OS X 10.5 "Leopard"
Так же нельзя забывать о том, что данный фреймворк повлиял на разработку веб-приложений благодаря инновационным функциям, таким как создание таблиц БД, миграция и создание каркасов представлений для обеспечения быстрой разработки приложений.
### Почему именно Ruby on Rails ?
В мире программирования существует множество фреймворков для веб-разработки, но больше всего выделяются Django и Ruby on Rails.
Благодаря этому они становятся самыми популярными веб-фреймворками и эта популярность будет расти и дальше.
### Масштабируемость
Хотя веб-фреймворк Django унаследовал масштабируемость от Python, он все же немного отстает по сравнению с Rails. Он обладает лучшей масштабируемостью, что является результатом таких его качеств, как свобода и гибкость кода. Оба они являются тяжеловесными фреймворками для веб-разработки, поэтому они оба разработаны с учетом масштабируемости, но в данном случае победа достается Ruby on Rails.
### Синтаксис
Известно, что синтаксис Ruby очень гибкий. Однако это не всегда можно отнести к преимуществам Ruby on Rails. Это может вызвать проблемы и усложнить передачу проекта другим членам команды, поскольку одна и та же функция может быть реализована разными способами, создавая путаницу.
В то время как Python выступает за то, что должен быть только один очевидный способ сделать что-то, что делает код более легким для отладки и чтения.
##
```bash
apt-get update && apt-get upgrade
```
##
## Установка необходимых пакетов:
Требуется скачать данные пакеты, используйте команды ниже.
```bash
apt install curl** #** Устанавливаем программу curl.
```
```bash
apt install git # Устанавливаем программу git
```
```bash
Apt-get install -y nodejs # Устанавливаем программу nodejs
```
```bash
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - # Устанавливаем программу yarn
```
Теперь остается установить оставшиеся пакеты для работоспособности:
```bash
sudo apt-get install zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn -y
```
## Установка при помощи Rbenv
Далее установка Ruby будет проводиться благодаря менеджеру Rbenv. Он позволит ускорить процесс установки. В начале установим rbenv , после этого ruby-build.
```bash
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
```
Устанавливаем программу ruby-build:
```bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
```
```
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
```
## Установка языка программирования Ruby
```
rbenv install 3.1.2
rbenv global 3.1.2
```
### Немного о Rbenv
Это инструмент командной строки, который используется для установки Ruby on Rails, он также обеспечивает хорошую среду для разработки приложений с использованием Ruby on Rails.
```
gem install bundler # Последний шаг, установка bundler
```
```
gem install rails -v 7.0.2.4 # Устанавливаем программу Rails
```
```
rbenv rehash # Делаем доступным исполняемый файл командой ниже
```
## Базы данных для Rails
По стандарту устанавливается sqlite3, но лучше использовать другую базу данных, к примеру PostgreSQL или же MySQL. В нашем случае будем использовать PosgreSQL. (Но так же учитывается как включить MySQL).
### Немного о sqlite3
Данная БД была разработана весной 2000 года. Целью разработки SQLite – было обеспечение возможности работы с программой без установки системы управления БД или необходимости привлечения администратора БД.
SQLite – один из четырех форматов, рекомендованных для долгосрочного хранения наборов данных, одобренных для использования Библиотекой Конгресса.
### Немного о PostgreSQL
Это бесплатная система управления реляционными базами данных с открытым исходным кодом. Проект начал свою работу еще в далеком 1982 году, он начал развиваться из проекта "Ingres", который разрабатывался в Калифорнийском университете в Беркли.
PostgreSQL набрал свою популярность благодаря оптимизацией запросов. В нем сочетается много индексов под разные задачи, так же само выполнение запросов у Postgres куда проще и лучше, ведь в нем расписываются какие шаги, выполняются и за какое время.
```bash
sudo apt install postgresql-11 libpq-dev # Теперь устанавливаем PostgreSQL
```
```
rails new myapp -d postgresql # Включаем PostgreSQL в Rails
```
```bash
sudo apt-get install mysql-server mysql-client libmysqlclient-dev -y # Установка MySQL
```
## Немного о MySQL
Это свободное программное обеспечение с открытым исходным кодом на условиях GNU General Public License, а также доступно под различными патентованными лицензиями. MySQL имеет автономные клиенты, которые позволяют пользователям напрямую обращаться и взаимодействовать с БД, но чаще MySQL используется с другими программами для реализации приложений, которым требуются возможности реляционной базы данных.
```
rails new myapp -d mysql # Включаем MySQL в Rails
```
```
cd myapp # Переходим в каталог myapp.
```
```
rake db:create # Создаем в нем новую базу данных.
```
Для смены ip адреса сервера, пропишите команду ниже:
```
rails s -b y.y.y.y (y.y.y.y это наш ip address сервера)
rails s -b 45.138.24.121
```
Можем переходить на наш сервер используя ip-server:3000
## Вывод
Благодаря данной публикации вы с легкостью установите Ruby on Rails на ваш Ubuntu сервер.
https://serverspace.uz/support/help/install-ruby-on-rails-windows.mdПошаговая инструкция, как установить Ruby on Rails на сервер с операционной системой Windows 10. Подготовка системы к работе с фреймворком
## Немного о фреймворке:
Ruby on Rails был написан на языке программирования "Ruby". Он был создан еще в далеком 2004 году, и получил свою популярность благодаря взаимодействию с компанией "Apple" в 2006 году. Тогда "Apple" объявила, что будет поставлять "Ruby on Rails" вместе с операционной системой Mac OS X 10.5 "Leopard"
Так же нельзя забывать о том, что данный фреймворк повлиял на разработку веб-приложений благодаря инновационным функциям, таким как создание таблиц БД, миграция и создание каркасов представлений для обеспечения быстрой разработки приложений.
## Почему именно Ruby on rails?
В мире программирования существует множество фреймворков для веб-разработки, но больше всего выделяются Django и Ruby on Rails.
Благодаря этому они становятся самыми популярными веб-фреймворками и эта популярность будет расти и дальше.
## Масштабируемость
Хотя веб-фреймворк Django унаследовал масштабируемость от Python, он все же немного отстает по сравнению с Rails. Он обладает лучшей масштабируемостью, что является результатом таких его качеств, как свобода и гибкость кода. Оба они являются тяжеловесными фреймворками для веб-разработки, поэтому они оба разработаны с учетом масштабируемости, но в данном случае победа достается Ruby on Rails.
## Синтаксис
Известно, что синтаксис Ruby очень гибкий. Однако это не всегда можно отнести к преимуществам Ruby on Rails. Это может вызвать проблемы и усложнить передачу проекта другим членам команды, поскольку одна и та же функция может быть реализована разными способами, создавая путаницу.
В то время как Python выступает за то, что должен быть только один очевидный способ сделать что-то, что делает код более легким для отладки и чтения.
## Установка необходимых пакетов:
Для работы Ruby on Rails на операционной системе Windows 10, вам требуется установить следующие программы:
- Nodejs
- Yarn
- sqlite
**Переходим к скачиванию и установке Nodejs**
Перейдите по [ссылке](http://Nodejs.org/en) и скачайте LTS версию.
После выбора LTS версии у вас автоматически начнется скачивание пакета, вам потребуется его установить, открыв исполняемый файл после скачивания.
Требуется выбрать пункт об автоматической установке необходимых инструментов.
После установки, перезапустите ваш персональный компьютер и перейдите в командную строку для проверки установки.
Так как мы выбрали установку необходимых компонентов, то сразу после завершения откроется скрипт для установки.
Проверить установку можно используя команду :
```bash
node --version
```
**Установка Yarn**
Перейдите по [ссылке](http://Classic.yarnpkg.com/en/docs/install), откройте вкладку "Alternatives" и скачайте пакет "classic stable 1.22.19".
Запустите исполняемый файл и следуйте шагам установки.
После установки перезапустите персональный компьютер и проверьте установку программу, запустив командную строку и вписав команду ниже:
```bash
yarn --version
```
**Установка Sqlite**
Перейдите по [ссылке](http://Sqlite.org/download.html%20rel=) и скачайте два архива sqlite:
- sqlite-dll-win64-x64-3390300.zip
- sqlite-tools-win32-x86-3390300.zip
После скачивания, разархивируйте оба архива по пути "C:\windows\system32"
Проверить работоспособность и версию sqlite можно используя команду ниже:
```
sqlite3 --version
```
## Установка Ruby
Перейдите по [ссылке](https://rubyinstaller.org/downloads/) и загрузите последнюю версию Ruby с инструментами разработчика, на данный момент это "Ruby 3.1.2-1"
Установите Ruby открыв исполняемый файл. Так же после завершения установки отметьте пункт "run rdk install" для автоматической установки MSYS2.
Автоматически откроется командная строка с предложением установки MYSYS2, выберите 3 пункт.
Дальше установка происходит автоматически.
Проверить работоспособность и версию Ruby можно используя команду ниже:
```
ruby --version
```
Требуется выполнить команды ниже, предварительно открыв командную строку от имени администратора:
```
gem install tzinfo-data
gem install sqlite3
```
```
gem install rails
```
## Создание проекта и запуск Ruby on Rails
Откройте командную строку от имени администратора. Перейдите в нужный вам каталог и пропишите команду ниже:
```
rails new *название проекта*
```
После этого перейдите в папку с вашим проектом и запустите ваш проект командой:
```
rails server
```
Можем переходить на наш сервер используя локальный адрес.
## Примечания
Если у вас возникнет проблема при запуске вашего проекта, то перейдите в папку с вашим проектом и откройте конфигурационный файл "Gem" любым удобным для вас текстовым редактором. Исправьте строчку как показано ниже:
Пример ошибки:
Строка перед изменениями:
```
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
```
Строка после изменений:
```
"gem tzinfo-data"
```
Для проверки работоспособности всех установленных пакетов, воспользуйтесь командами ниже:
```bash
Ruby --version
Sqlite3 --version
Node --version
Yarn --version
Gem --version
Rails --version
```
## Вывод:
Благодаря данной публикации вы с легкостью установите Ruby on Rails на Windows 10.
https://serverspace.uz/support/help/nastrojka-servera-na-ubuntu-20-04-pod-optimalnuyu-proizvoditelnost-cms-bitriks-upravlenie-sajtom.mdОптимизация настроек серверного ПО Ubuntu 20.04 при самостоятельной установке Битрикс Управление Сайтом — настраиваем параметры PHP и MySQL
Существует два основных способа установить CMS Битрикс Управление Сайтом (в дальнейшем БУС) на свой сервер - с [использованием специального установочного скрипта](https://serverspace.ru/support/help/ustanovka-veb-okruzheniya-bitriks-na-server-s-centos-7/), разработанного в компании 1С, либо [вручную](https://serverspace.ru/support/help/ustanovka-paneli-hestiacp-na-server-pod-ubuntu-20/).
В первом случае никаких дальнейших действий, скорее всего, не потребуется, а вот при установке вручную есть достаточно большая вероятность того, что сервер будет работать не совсем оптимально и, соответственно, сайт будет работать медленнее, чем мог бы. Далее в данной статье рассмотрены типичные "направления действий" по оптимизации работы серверного ПО под БУС.
## Оптимизация PHP
Перед тем, как проводить оптимизацию, необходимо выяснить "текущую диспозицию", благо БУС предоставляет достаточно удобные инструменты для этого. Чтобы провести диагностику, нужно проделать следующее:
- Авторизоваться в CMS от имени пользователя, принадлежащего к административной группе, перейти в раздел **Настройки > Производительность > Панель производительности**;
- Нажать кнопку **Тестировать конфигурацию. **Вероятнее всего, настройки PHP будут не оптимальны, нажмите на ссылку **Рекомендации;**
- Не оптимально настроенные параметры будут отмечены красным. Чтобы понять, в каком из файлов нужно поправить настройки, нажмите на ссылку **Настройки PHP**;
- На скриншоте ниже видно, что все настройки PHP "рассредоточены" по большому количеству файлов.
- По результатам тестирования на первом шаге мы выяснили, что значение директивы _open_basedir_ не соответствует рекомендованному. Найти искомую настройку в данном случае проще через консоль. Откройте SSH-сессию от имени суперпользователя и дайте следующую команду:
```
grep -r "open_basedir" /etc
```
- Видно, что данная директива определена во множестве файлов. Выполним замену на "none" с использованием текстового редактора:
```
nano /etc/php/8.0/fpm/pool.d/test.domain.conf
```
- По аналогии найдем и произведем замену директивы opcache.max_accelerated_files:
- После внесения изменений перезапустим веб-сервер:
```bash
systemctl restart apache2
```
- После проведем тест еще раз:
## Оптимизация сервиса баз данных
На предыдущем скриншоте видно, что операции записи в базу данных (БД) осуществляются медленнее эталонных. Причиной может быть неоптимальная конфигурация сервиса. Шаги по оптимизации следующие:
- Для оценки ситуации в административном разделе CMS перейдите на страницу **Настройки > Производительность > Сервер БД**. Неоптимальные значения будут выделены красным цветом;
- Найдите конфигурационный файл сервиса БД (по умолчанию - _/etc/mysql/my.cnf_) и откройте его в текстовом редакторе. Исправьте директивы, согласно предложениям CMS. Также стоит установить директиву _innodb_buffer_pool_size_ в 30-40% от доступного объема оперативной памяти и увеличить директиву _query_cache_size _до 64 или 128М:
- Для принятия изменений перезапустите службу:
```bash
systemctl restart mysql
```
- Подождите 10-15 минут для формирования кеша, затем еще раз проведите тестирование сервиса БД и убедитесь, что ошибок более нет;
- Если ошибок на предыдущем шаге нет, снова перейдите на страницу **Настройки > Производительность > Панель производительности**. Здесь перейдите на вкладку **Битрикс**, чтобы провести оптимизацию БД:
Проведя повторное тестирование видим, что производительность выросла более чем в два раза.
## Заключение
Прочтя данную статью, вы узнали, почему требуется оптимизация настроек серверного ПО при самостоятельной установке Битрикс Управление Сайтом, как таковую оптимизацию произвести, и что получается в итоге. Также можно ознакомиться с [хостингом для Битрикс24](https://serverspace.uz/services/vps-server/bitrix24.md) и запустить интернет-магазин с CRM-системой в облаке.
https://serverspace.uz/support/help/ustanovka-1s-bitriks24-na-server-s-centos-7.mdПодробный пошаговый процесс установки CRM Битрикс24 на собственный VPS сервер, работающий под управлением ОС Centos 7
## Что такое Битрикс24
Битрикс24 (далее по тексту Б24) - это популярная в русскоязычном сегменте Интернета CRM-система, созданная российской компанией 1С. Ее "киллер-фича" и основная причина использования - прозрачная интеграция с решениями для бухгалтерского учета и интернет-торговли, разработанными специалистами этой же компании.
## Требования к серверу
Компания-разработчик заявляет, что для работы "коробочной" версии CRM Б24 требуется сервер со следующими характеристиками:
- Процессор с как минимум четырьмя ядрами, по уровню не ниже Intel Xeon E3-1230;
- Не менее 8Гб (лучше 16Гб) оперативной памяти;
- Место на диске 256Гб или больше;
- Доменное имя, А-записи которого "смотрят" на IP-адрес вашего сервера.
Наиболее быстрый и простой способ установки - при помощи файла сценария, разработанного специалистами компании 1С. Он совместим только с операционной системой Centos 7 и должен быть запущен с повышенными правами.
## Процесс установки
Чтобы установить Б24 на сервер под Centos 7 потребуется выполнить следующую последовательность шагов:
- Авторизуйтесь на сервере с повышенными правами и обновите предустановленный набор пакетов:
```bash
yum update && yum upgrade -y
```
- По окончании обновления ПО перезагрузите сервер;
- После перезагрузки сервера установите пакет _wget_, он нужен, чтобы скачать скрипт-установщик:
```bash
yum install -y wget
```
- Загрузите и запустите сценарий для начала установки. Если будет предложено отключить SELinux - примите предложение и отправьте сервер в перезагрузку:
```bash
wget https://repo.bitrix.info/yum/bitrix-env.sh
/bin/bash bitrix-env.sh
```
- По завершению перезагрузки авторизуйтесь на сервере и запустите скрипт повторно. Процесс установки займет примерно 20-30 минут;
- Откройте в браузере сайт, "направленный" на ваш сервер, кликните по кнопке **Установить**;
- Выберите нужную редакцию CRM, при наличии введите лицензионный ключ;
- Согласитесь с текстом лицензионного договора;
- При желании введите данные для регистрации в экосистеме 1С:
- Создайте данные для авторизации в системе Б24;
- Выберите оформление вашего портала;
- При необходимости включите интеграцию с социальными сетями и "сквозную" авторизацию через Active Directory. Предоставлять доступ к Б24 без авторизации крайне не рекомендуется;
- Система продолжит настройку CRM. По окончании процесса установка будет завершена, и вы сможете начать работу в системе;
## Заключение
В данной статье описаны положительные стороны и причины популярности CRM 1С-Битрикс24, рассмотрен процесс установки "коробочной" версии данной платформы на сервер, работающий под управлением Centos 7, при помощи автоматизирующего сценария. Также можно ознакомиться с [VPS хостингом для Битрикс24](https://serverspace.uz/services/vps-server/bitrix24.md) и запустить интернет-магазин с CRM-системой в облаке.
https://serverspace.uz/support/help/ustanovka-svezhej-versii-python-na-ubuntu-20-04.mdРассмотрим подробно два популярных способа установки самой новой версии Python на сервере под управлением Ubuntu
## Что такое Python
Python сегодня - это один из самых используемых языков программирования. Основными его преимуществами являются относительная простота, низкий порог вхождения, универсальность в применении, а также множество плагинов. Теперь интерпретатор часто применяют для создания скриптов, разнообразного программного обеспечения, разработки игр и даже в "обучении" нейросетей. Python имеет кросс-платформенный синтаксис и может быть установлен на любую "актуальную" операционную систему. В данной инструкции мы рассмотрим процесс установки Pyhton на сервер под управлением ОС Ubuntu.
## Установка Python при помощи менеджера ПО
Если вам нужен именно новейший Python, вы можете столкнуться с проблемой. Дело в том, что люди, занимающиеся сопровождением "мейнстримных", репозиториев Ubuntu, не всегда своевременно актуализируют содержащееся в них программное обеспечение. Чтобы воспользоваться именно самой "свежей" версией Python, выполните пошаговую инструкцию ниже:
- Авторизуйтесь от имени суперпользователя и проведите установку нескольких утилит;
```bash
apt install -y software-properties-common
```
- Обновите все имеющиеся ПО;
```bash
apt-get update -y; apt upgrade -y
```
- Перезагрузите сервер;
- Включите в список системных репозиториев еще один;
```
add-apt-repository -y ppa:deadsnakes/ppa
```
- Обновите системный кэш, затем уточните, какая из версий Python выпущена последней;
```bash
apt-get update && apt-cache search python3.1
```
Как видно, новейшей на сегодняшний день является версия 3.11. Процесс ее установки буквально "однострочный":
```bash
apt-get install python3.11 -y
```
- Следующий шаг не является обязательным. Создайте симлинк для большего удобства впоследствии, затем можете проверить, действительно ли корректно прошел процесс установки:
```bash
ln -s /usr/bin/python3.11 /usr/bin/python
python --version
```
## Самостоятельная компиляция
Если установка пакета из репозитория по тем или иным причинам невозможна, всегда остается возможность собрать "свежий" Python из так называемых "сырцов". Инструкция также достаточно проста:
- Откройте SSH-сеанс с повышенными правами и обновите имеющееся ПО как описывалось ранее;
- Далее нужно установить пакеты, которые позже будут использованы для сборки Python;
```bash
apt-get -y update; apt -y install zlib1g-dev build-essential libgdbm-dev libncurses5-dev libssl-dev libnss3-dev libffi-dev libreadline-dev wget libsqlite3-dev libbz2-dev
```
- Перейдите на [веб-страницу загрузок Python](https://www.python.org/downloads/source/) через браузер и скопируйте в буфер обмена ссылку на архив с исходными кодами нужной версии;
- Вернитесь в консоль вашего сервера, создайте папку для "сборки", перейдите в нее, скачайте архив по скопированной ранее ссылке и распакуйте его;
```bash
mkdir /root/build
cd /root/build
wget
tar -xf *.tgz
```
- Перейдите "на уровень ниже", в каталог, соответствующий скачанному архиву, и запустите процедуру подготовки к компиляции;
```
cd
./configure --enable-optimizations
```
- Следующий этап - собственно сборка пакета. Время зависит от производительности сервера, прежде всего его процессора, но вы в любом случае успеете выпить чашечку кофе:
```
make -j $(nproc)
```
- Последний шаг — "интеграция" собранного вами пакета непосредственно в ОС:
```
make altinstall
```
- В качестве проверки можете также узнать версию Python в системе. Если картина подобна показанной ниже, то работа выполнена на "отлично":
```bash
ln -s /usr/local/bin/python3.11 /usr/bin/python
python --version
```
## Итоги статьи
Теперь вы знаете о том, что такое Python, преимуществах этого интерпретатора и сферах его применения. Также вы умеете устанавливать данное ПО из репозитория или с помощью самостоятельной сборки из исходных кодов.
https://serverspace.uz/support/help/ustanovka-wikijs-na-ubuntu-20-04.mdПолный пошаговый процесс установки и конфигурирования приложения WikiJS на севере под управлением ОС Ubuntu
## Что такое WikiJS
WikiJS — известный вики-движок. Его популярность сегодня растет благодаря таким преимуществам, как открытый исходный код, поддерживаемый большим сообществом разработчиков, простота установки, небольшие системные требования и хорошо читаемая разметка документов по стандарту Markdown.
## Требования к серверу
Для установки WikiJS вам необходимы:
- Сервер с не менее чем 1Гб оперативной памяти и как минимум 10Гб дискового пространства;
- Актуальная ОС Linux (в этой статье описан пример на Ubuntu 20.04);
- Учетная запись с повышенными полномочиями;
- Доменное имя с А-записями, "указывающими" на IP сервера (опционально).
## Процесс установки
Процесс настройки WikiJS очень прост, достаточно просто выполнить пошаговую инструкцию:
- Авторизуйтесь на сервере, обновите существующее программное обеспечение и перезагрузите компьютер, чтобы изменения вступили в силу;
```bash
apt-get update; apt upgrade -y && reboot
```
- Установите несколько утилит, позволяющих скачивать другие необходимые инструменты и скрипты;
```bash
apt install wget curl -y
```
- Установите nodejs;
```bash
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && apt -y install nodejs
```
**ВАЖНО**: NodeJS v18 несовместим с WikiJS! Именно поэтому устанавливается более старая версия.
- Добавьте в систему дополнительный репозиторий и установите сервис обслуживания и управления базами данных, например, MariaDB;
```
apt install -y software-properties-common; curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | /bin/bash; apt-get update; apt install -y mariadb-server mariadb-client
```
- Активируйте, запустите MariaDB, затем проверьте статус службы;
```bash
systemctl enable mariadb; service mariadb start
systemctl status mariadb
```
- Задайте минимум необходимых настроек сервиса БД. Установите желаемый пароль, остальные настройки - на ваше усмотрение, можно и оставить значения по умолчанию;
```
mysql_secure_installation
```
- Для более удобного управления службой в будущем, "положите" учетные данные для аутентификации в специальный файл;
```
nano ~/.my.cnf
user=root
password=
```
- Войдите в консоль MariaDB, создайте базу данных и учетную запись и предоставьте этому аккаунту права для управления базой;
```sql
create database ;
create user ''@'localhost' identified by '';
grant all on .* to ''@'localhost' with grant option;
flush privileges;
exit
```
- С точки зрения безопасности лучше всего запускать движок WikiJS от имени отдельной учетной записи. Давайте создадим ее и каталог для нашего проекта:
```
adduser --home /wikijs --disabled-password wikijs
```
- Авторизуйтесь в системе как только что созданный пользователь, скачайте и распакуйте архив с данными платформы WikiJS;
```
su wikijs
cd ~; wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz; tar -xf *.tar.gz
```
- Создайте конфигурационный файл для будущей Вики. Подсказка - можно переименовать предложенный файл шаблона и отредактировать его. Нужно указать тип базы данных и ранее созданные учетные данные к ней;
```
cp config.sample.yml config.yml; nano config.yml
```
- Вернитесь обратно в консоль пользователя root, затем создайте через текстовый редактор конфиг для системного сервиса WikiJS:
```
exit
nano /etc/systemd/system/wiki.service
```
- Вставьте указанный ниже код в создаваемый файл и сохраните его;
```
Description=Wiki
After=network.target
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wikijs
Environment=NODE_ENV=production
WorkingDirectory=/wikijs
WantedBy=multi-user.target
```
- Затем создайте в каталоге WikiJS скрипт start.sh со следующим содержимым:
```
#/bin/bash
sleep 5
/usr/bin/node /wikijs/server
```
- "Перечитайте" конфигурацию системы, разрешите автозапуск и запустите созданный вами сервис. Затем проверьте статус службы;
```bash
systemctl daemon-reload; systemctl enable wiki; systemctl start wiki
service wiki status
```
## Завершение конфигурирования
Теперь, когда WikiJS работает, можно внести завершающие штрихи и завершить установку. Откройте в браузере адрес http://:3000 (или http://:3000), заполните все необходимые данные и нажмите кнопку **INSTALL**;
Система применит настройки. Когда процесс закончится, вы увидите "приветственный" экран WikiJS. Установка завершилась успешно, поздравляем!
## Заключение
После прочтения данной статьи вы знаете, что такое WikiJS, каковы системные требования этой платформы и как установить ее платформу на собственный сервер, управляемый Ubuntu 20.04.
https://serverspace.uz/support/help/ustanovka-symfony-framework-na-ubuntu-20-04-lts.mdВ этой статье описывается пошаговый процесс установки приложения для веб-разработки Symfony Framework на веб-сервер под управлением Ubuntu
## Что такое Symfony Framework
Symfony — очень популярный фреймворк, часто использующийся для разработки веб-приложений. Основными его преимуществами являются открытый исходный код, большое, активное сообщество пользователей, а также актуальная документация.
## Что нужно знать перед настройкой
Для установки Symfony вам нужен сервер, отвечающий следующим требованиям:
- Оперативная память не менее 2Гб и дисковое пространство как минимум в 20Гб;
- Актуальная операционная система (В качестве примера в статье использовалась Ubuntu 20.04);
- Доступ от имени привилегированного пользователя;
- Веб-сервер, PHP 7.0 или новее, установленная служба поддержки баз данных.
Самый быстрый способ подготовить сервер к установке обсуждаемого сегодня продукта — это установить на него любую веб-панель, например, [HestiaCP](https://serverspace.uz/support/help/ustanovka-paneli-hestiacp-na-server-pod-ubuntu-20/). Когда панель будет установлена, продолжите следующими действиями:
**Шаг 1**. Проверьте текущую версию PHP. Вы можете сделать это через панель или запустить простую команду в SSH-консоли;
```bash
php -v
```
**Шаг 2**. Откройте SSH-консоль и установите необходимое php-расширение:
```bash
apt-get install -y php-sqlite3
```
**Шаг 3**. Войдите в панель и создайте "обычную" учетную запись без прав администратора. Кликните на **Users > Add user**, заполните необходимую информацию и нажмите кнопку **"Save";**
**Шаг 4**. Авторизуйтесь в панели как только что созданный пользователь;
**Шаг 5**. Создайте веб-сайт, используя возможности панели;
**Шаг 6**. Установите в систему пакет **composer**;
```bash
cd /tmp
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/bin --filename=composer
```
**Шаг 7**. Также установите скрипт, проверяющий корректность установки;
```bash
apt install -y curl
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
apt install -y symfony-cli
```
**Шаг 8**. Проверьте, подходит ли конфигурация серверного ПО для работы фреймворка:
```
symfony check:requirements
```
Если вы видите сообщение, подобное показанному выше, с вашей конфигурацией все в порядке и самое время двигаться дальше.
## Установка фреймворка
**Шаг 9**. Процесс запуска собственно Symfony несложен, просто запустите несколько команд:
```bash
su
composer create-project symfony/website-skeleton
```
**Шаг 10**. Теперь вы можете открыть URL http:////public. Если вы видите страницу, подобную показанной ниже - настройка завершена, можете насладиться чашечкой кофе.
## Выводы
В этой статье мы рассказали, что такое Symfony Framework, чем он хорош, для чего используется и как установить его на сервер под Ubuntu 20.04.
https://serverspace.uz/support/help/kak-ustanovit-java-s-pomoshhyu-apt-na-ubuntu-18-04.mdВ нашей инструкции мы разберем, как установить различные версии Java Runtime Envieromen (JRE) и Java Developer Kit (JDK), используя apt
Java и JVM (Java Virtual Machine) необходимы для многих видов программного обеспечения, включая Tomcat, Jetty, Glassfish, Cassandra и Jenkins.
В нашей инструкции мы разберем, как установить различные версии Java Runtime Envieromen (JRE) и Java Developer Kit (JDK), используя apt.
Как установить Java с помощью apt на Ubuntu 18.04:
- [Установка Java вместе с Runtime Environment](#rt-0)
- [Установка Java Developer Kit](#rt-1)
## Java Runtime Environment
Один из самых легких способов - использование версии изначально установленной в пакет Ubuntu. По умолчанию, в Ubuntu 18.04 включен Open JDK (JRE и JDK).
OpenJDK нужно устанавливать либо 10, либо 11 версии.
Сначала, обновим список пакетов:
```bash
sudo apt update
```
После, проверяем, нет ли уже установленного Java:
```
java -version
```
Если Java не установлен, вы увидите данное сообщение:
Запустите данную команду, чтобы установить OpenJDK:
```bash
sudo apt install default-jre
```
Нажмите y (yes) и Enter чтобы продолжить установку.
Данная команда устанавливает Java Runtime Environment (JRE). Оно дает вам доступ запускать почти любое программное обеспечение Java.
Теперь проверим версию Java:
```
java -version
```
Поздравляем, мы установили JRE!
## Java Development Kit
Чтобы скомпилировать и запустить некоторые определенные Java-программы в дополнение к JRE, вам может понадобиться Java Development Kit (JDK). Чтобы установить JDK, выполните следующую команду, которая также устанавливает JRE:
```bash
sudo apt install default-jdk
```
Нажмите y (yes) и Enter чтобы продолжить установку.
Данная команда устанавливает Java Development Kit (JDK).
Проверяем текущую версию JDK, используя:
```
javac -version
```
Поздравляем, мы установили JDK!
https://serverspace.uz/support/help/ustanovka-balansirovshhika-haproxy-na-ubuntu-20-04.mdКак установить балансировщик нагрузки HAProxy на Ubuntu 20.04 — пошаговая инструкция: развертывание, настройка и проверка работы
## Что такое HAProxy
HAProxy — это легковесный балансировщик нагрузки с открытым исходным кодом. Вы можете использовать его для построения отказоустойчивой инфраструктуры или сокрытия "реального" местоположения проекта по соображениям безопасности. В этой статье я расскажу, как развернуть балансировщик нагрузки для веб-проекта, расположенного на двух независимых друг от друга серверах.
## Требования к установке
Если вы хотите использовать HAProxy, убедитесь, что ваша инфраструктура удовлетворяет следующим условиям:
- Нужно как минимум три сервера — два из них будут работать в качестве серверов, обслуживающих контент вашего проекта, третий - в качестве балансировщика HAProxy;
- Доменное имя с А-записями, "направленными" на IP балансировщика;
- Контент вашего веб-сайта должен быть идентичен на обоих веб-серверах.
## Настройка сети
Прежде чем приступить к настройке HAProxy, мы должны знать некоторые параметры сети, такие как IP-адреса и имена используемых серверов. Пошаговая инструкция по настройке сети:
- Создайте три сервера через личный кабинет. Два из них будут работать как "бэкенд", третий сервер будет балансировщиком HAProxy. Получившаяся "инфраструктурная" схема отображена ниже:
- Добавьте в файлы _/etc/hosts_ на каждом из трех серверов строки, позволяющие "связать" IP-адреса с именами серверов. Затем проверьте доступность серверов, открыв SSH-консоль на haproxy-сервере и отправив несколько ICMP-пакетов на веб-серверы;
```
cat /etc/hosts
EOF
```
```
ping
```
- Создайте правило брандмауэра, блокирующее весь входящий трафик на веб-серверы, за исключением трафика с haproxy. Опционально, чтобы сделать управление серверами более комфортным, можно добавить в белый список свой собственный IP. Самый простой способ сделать это - зайти в детальные настройки сервера в личном кабинете Serverspace, добавьте правила и нажать кнопку **SAVE**. Помните, что разрешающие правила следует располагать выше запрещающих, иначе доступ к серверу будет невозможен.
## Развертывание веб-сайта
- Если ранее вы внесли свой собственный IP-адрес в белый список, можете воспользоваться самым простым способом развертывания веб-сервера и дальнейшего управления сайтами — установить любую веб-панель, например, HestiaCP. Установите панель на первый "контентный" сервер, как описано [в инструкции по установке Hestia на Ubuntu](https://serverspace.uz/support/help/ustanovka-paneli-hestiacp-na-server-pod-ubuntu-20/), затем авторизуйтесь в панели и, кликнув на **Users > Add user**, создайте непривилегированного пользователя;
- Авторизуйтесь как этот аккаунт с "пониженными" правами;
- Создайте веб-сайт через кнопку на панели;
- Повторите развертывание веб-сайта на втором "контентном" сервере;
## Настройка HAProxy
Теперь пришло время установки балансировщика. Процедура установки описана ниже:
- Авторизуйтесь в SSH-консоли сервера HAProxy, затем обновите существующие пакеты;
```bash
apt-get update; apt upgrade -y
```
- Запустите установку балансировщика;
```bash
apt-get install haproxy -y
```
- Отредактируйте конфигурационный файл HAProxy, просто добавьте в него следующие строки;
```xml
frontend haproxy_web
bind :80
default_backend web_back
mode http
backend web_back
balance roundrobin
server :80
server :80
```
- Запустите службу HAProxy и активируйте ее запуск при загрузке;
```bash
service haproxy start; systemctl enable haproxy
```
## Проверка работы "балансера"
На этом этапе вы можете открыть свой сайт в браузере. Он откроется успешно, но вы все еще не можете быть уверены в штатной работе балансировщика. Для тестирования вы можете сделать следующее:
- Войдите на первый веб-сервер через SSH, перейдите в каталог веб-сайта и переименуйте индексный файл;
```
cd
mv
```
- Создайте новый индексный файл, содержащий IP-адрес сервера;
```
echo $(hostname) >
```
- Повторите ту же процедуру на втором веб-сервере;
- Откройте свой сайт в браузере, затем несколько раз обновите страницу. Вы увидите несколько отличную информацию. Все нормально, это означает, что балансировщик работает;
- Верните "исходные" индексные файлы обратно на обоих "контентных" серверах:
```
rm
mv
```
## Заключение
После прочтения этой статьи вы узнали, что такое HAProxy, и теперь можете установить этот балансировщик на свой сервер под управлением Ubuntu 20.04.
https://serverspace.uz/support/help/kak-ustanovit-postgresql-na-ubuntu-20-04.mdПошаговая инструкция по установке системы управления реляционными базами данных PostgreSQL на VPS/VDS Ubuntu 20.04
## Что такое PostgreSQL
PostgreSQL — система управления реляционными базами данных, основанная на языке запросов SQL. Относительно строгое соблюдение стандартов и возможность построения высокопроизводительных систем — вот причины популярности этой системы сегодня.
## Перед установкой
Для установки PostgreSQL вам понадобится:
- Сервер с минимум одним процессорным ядром, 1 ГБ оперативной памяти и 10 ГБ дискового пространства. Помните, что фактические требования могут отличаться и зависят от потребностей вашего приложения или сервиса, а также их оптимизированности;
- Не устаревшая операционная система (в данном примере рассмотрена Ubuntu 20.04 LTS);
- Доступ к привилегированной учетной записи.
## Процесс установки
Чтобы установить PostgreSQL на свой сервер, вам необходимо выполнить следующие шаги:
**Шаг 1**. Обновите кэш пакетов Ubuntu и следом — все имеющиеся системные программы:
```bash
apt-get update; apt upgrade -y
```
**Шаг 2**. Перезагрузите сервер, чтобы применить установленные обновления;
**Шаг 3**. Установите PostgreSQL из системных репозиториев:
```bash
apt install postgresql postgresql-contrib -y
```
**Шаг 4**. Включите запуск сервиса при загрузке системы и запустите службу управления базами данных:
```bash
systemctl enable postgresql.service; service postgresql start
```
**Шаг 5**. Проверьте статус сервиса:
```bash
service postgresql status
```
## Операции с данными
Для создания базы данных необходимо использовать учетную запись "встроенного" администратора:
```bash
su postgres
psql postgres
```
**Шаг 6**. Создайте учетную запись пользователя и саму базу данных:
```sql
CREATE ROLE LOGIN PASSWORD '';
CREATE DATABASE WITH OWNER = ;
```
**Шаг 7**. Войдите как только что созданный пользователь:
```bash
psql -h -d -U -p
```
**Шаг 8**. Попробуем создать таблицу в базе данных:
```sql
CREATE TABLE test_table (
item_id integer NOT NULL,
item_name character varying(80) NOT NULL,
item_desc character varying(80) DEFAULT NULL,
PRIMARY KEY (item_id)
);
```
В данном примере я создал таблицу из трех столбцов: item_id (цифра), item_name (текст) и item_desc (тоже текст, необязательное поле).
**Шаг 9**. Добавление данных в таблицу:
```sql
INSERT INTO test_table (item_id, item_name, item_desc)
VALUES('1','Машинка','Модель красного спорткара');
INSERT INTO test_table (item_id, item_name, item_desc)
VALUES('2','Солдатик','Фигурка оловянного солдатика');
INSERT INTO test_table (item_id, item_name, item_desc)
VALUES('3','Мяч','Настоящий футбольный мяч');
```
**Шаг 10**. Теперь посмотрим на содержимое нашей таблицы:
```sql
SELECT from
```
## Вывод
В этой статье приводится пошаговая инструкция по установке PostgreSQL на Ubuntu 20.04 LTS, и объясняется, как выполнять некоторые базовые операции SQL.
https://serverspace.uz/support/help/change-path-mariadb.mdПошаговая инструкция по изменению каталога и конфигурации базы данных MariaDB на сервере под управлением Centos 7 на реальном примере
## Что такое MariaDB
Ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Mariadb поставляется вместо MySQL во многих дистрибутивах Linux (Fedora; SUSE 12; RHELL 7; Arch Linux, Debian 9). Это было сделано для того, чтобы не зависеть от дистрибутива Oracle, из-за возможности их ограничения для других дистрибутивов. Так же MariaDB внедрена в таких крупных проектах как: Wikipedia, Google Cloud, SQL, и Nimbuzz.
В этой публикации я изменю каталог данных MariaDB на операционной системе Linux CentOS 7.
## Для смены каталога требуется
- Предустановлена и настроена MariaDB
- Пользователь с root доступом к базе данных
Если у вас не установлена MariaDB, или не создан специальный пользователь с полными правами, то вы можете обратиться к нашей [инструкции по установке MariaDB](https://serverspace.ru/support/help/installing-mariadb/) на операционную систему Linux CentOS.
## Процесс смены каталога
Проверим работоспособность службы базы данных.
```bash
systemctl status mariadb
```
Подключаемся к базе данных MariaDB.
```bash
mysql -u *your user* -p
```
Самое важное перед сменой каталога, определиться куда требуется переместить базу данных. Для этого проверим какие базы данных существуют.
Проверка пути базы данных в текущий момент.
```sql
select @@datadir;
```
Выйдете из базы данных, и перейдите в каталог приложения.
Просмотрите и удостоверьтесь о наличии ваших баз данных в этой папке.
Перед сменой пути требуется отключить приложение базы данных MariaDb.
Проверить работоспособность программы можно благодаря этой команде.
```bash
systemctl status mariadb
```
Определите новый каталог куда вы разместите свои базы данных.
В моем примере я буду использовать путь локальной папки.
```
mkdir new-sql
```
Копируем каталог Mysql в созданную нами папку "_new-sql"._
Отредактируйте конфиг MariaDB.
```
nano /etc/my.cnf
```
Поменяйте строки datadir и socket, так же добавьте настройку клиента.
После настройки файла конфигурации не забудьте его сохранить, измените свойства конфигураций.
```bash
chown mysql:mysql /etc/my.cnf
chown mysql:mysql /new-sql/mysql
```
Включите службу базы данных, и проверьте внесенные изменения.
## Вывод
В этой публикации я разобрал вопрос об смене каталога баз данных MariaDB на операционной системе Linux CentOs 7.
На деле изменить каталог не сложная задача, достаточно следовать шагам из инструкции:
- Создать новый каталог для базы данных;
- Выключить службу MariaDB;
- Скопировать старый каталог БД в новый;
- Изменить файл конфигурации;
- Изменить свойства файлов;
- Запустить службу и проверить локальный путь баз данных.
https://serverspace.uz/support/help/kak-ustanovit-i-nastroit-pgadmin-4-v-rezhime-servera-v-ubuntu-22.mdБыстрый способ развернуть pgAdmin 4 с web-интерфейсом на виртуальном сервере Ubuntu 22.04, используя web-сервер ngnix, СУБД PostgreSQL и библиотеки Python.
## **Введение**
pgAdmin – это проект с открытым кодом, созданный для управления базами данных PostgreSQL. PostgreSQL - одна из самых востребованных систем управления базами данных в мире.
Инструмент удобен в использовании для новичков и профессионалов, работающих с PostgreSQL. Использует объектно-реляционную БД и предоставляет web-интерфейс и версию для рабочего стола для удобного взаимодействия с объектами базы данных.
## **Подготовка к установке**
Для правильной работы между pgAdmin 4 и PostgreSQL, необходимо заранее подготовить:
- [Сервер Ubuntu 22.04](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/). Пользователь имеющий право на выполнение команды sudo. Утилита для конфигурирования межсетевого экрана ufw;
- Установленный и настроенный Nginx как [обратный прокси](https://serverspace.ru/support/help/konfigurirovanie-obratnogo-proksi-na-ubuntu-server-22-04-s-pomoshhyu-nginx/) http://unix:/tmp/pgadmin4.sock;
- Установленный PostgreSQL. Необходимо добавить нового пользователя, а также [саму БД](https://serverspace.ru/support/help/kak-ustanovit-postgresql-na-ubuntu-20-04/);
- [Виртуальная среда](https://serverspace.ru/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04) развернутая в Python ;
## Этап 1 – Развертывание pgAdmin и скачивание зависимостей
В первую очередь обновим индексы пакетов, для этого воспользуемся встроенной утилитой apt:
```bash
sudo apt update
```
Скачаем зависимости libgmp3-dev, libpq-dev:
```bash
sudo apt install libgmp3-dev libpq-dev
```
Создадим нескольких директорий с целью хранения информации о подключенных сессиях, хранилище и журнальных файлов:
```
sudo mkdir -p /var/lib/pgadmin4/sessions
sudo mkdir /var/lib/pgadmin4/storage
sudo mkdir /var/log/pgadmin4
```
Создадим пользователя _serverspace_:
```
useradd -m serverspace
```
После чего нужно задать новую парольную фразу юзера _serverspace_:
```
passwd serverspace
```
Добавляем его в группу _sudo_:
```
usermod -aG sudo serverspace
```
Далее, следует изменить владельцев директорий с root на serverspace, некоторые утилиты не дают доступ запускать службы в режиме суперпользователя:
```bash
sudo chown -R serverspace:serverspace /var/lib/pgadmin4
```
```bash
sudo chown -R serverspace:serverspace /var/log/pgadmin4
```
Затем перейдём в папку созданную под названием "test". В данной инструкции имена каталогов указываются аналогично [инструкции](https://serverspace.ru/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04/). Перейдём в ранее созданный каталог test и запустим среду test_env:
```
cd test/
```
```
source test_env/bin/activate
```
Запустив виртуальное окружение test_env, обновим пакет pip для установки нужной библиотеки. В случае не обновлённого pip, мы можем столкнуться с некоторыми трудностями при установке pgAdmin.
Обновление pip происходит следующим образом:
```
python3 -m pip install -U pip
```
С помощью web-браузера необходимо скачать последний релиз файла с расширением .whl. Который является стандартным пакетным расширением для Python дистрибутива. Скопируем ссылку утилиту, в командной строке пропишем:
```bash
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v7.2/pip/pgadmin4-7.2-py3-none-any.whl
```
Используя pip, настроим скачанный пакет:
```bash
python -m pip install wheel
```
Установим:
```bash
python -m pip install pgadmin4-7.2-py3-none-any.whl
```
Скачаем Gunicorn на Python WSGI, который будет взаимодействовать с Nginx:
```bash
python -m pip install gunicorn
```
Первый этап выполнен успешно. Изменим конфигурационный файл, после чего можно будет подключиться к базе данных.
## Этап 2 – Конфигурирование pgAdmin 4
Необходимо сделать резервную копию файла config.py, находящийся в папке установленного пакета pgAdmin. В этом примере путь до файла:_/test/test_env/lib/python3.10/site-packages/pgadmin4/_
```
cd /test/test_env/lib/python3.10/site-packages/pgadmin4/
```
Изменение основного файла - может привести к потере данных:
```
cp config.py config.py.orig
```
Файл config.py стоит редактировать только при необходимости, чтобы не повредить данные и работоспособность pgAdmin 4.
Внесем правки в файл config_local.py.
**Важно!** Файл должен располагаться по адресу: _/site-packages/pgadmin4/_
Для создания файла можно воспользоваться утилитой touch, либо сразу создать и открыть в редакторе vim или nano. Мы воспользуемся nano:
```
nano /test_env/lib/python3.10/site-packages/pgadmin4/config_local.py
```
После открытия внесем правки:
```
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
AZURE_CREDENTIAL_CACHE_DIR = '/var/lib/pgadmin4/azurecredentialcache'
SERVER_MODE = True
```
Данный код выполняет:
LOG_FILE: Путь до файла логов
SQLITE_PATH: Путь к пользовательским данным в БД SQLite Файл хранится в каталоге /var/lib/pgadmin4/, наши пользовательские данные не подлежат потере после обновления.
SESSION_DB_PATH: Путь, указывающий к каталогу, хранящему информацию о подключенных сеансах.
STORAGE_DIR: Путь к каталогу, сохраняющему информацию о хранилище.
SERVER_MODE: Режим сервера – True (Истина).
Для выхода с сохранением нажмём ESC, введём :wq! и нажмём ENTER.
Для запуска конфигураций с данного места, запуска pgAdmin следует выполнить ряд команд.
Установим открытый ключ:
```bash
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
```
Для продолжения нужно добавить файл конфигурации. Отправим в терминал следующую команду:
```
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
```
Установим pgadmin4:
```bash
sudo apt install pgadmin4
```
Запустим конфигурацию:
```
sudo /usr/pgadmin4/bin/setup-web.sh
```
Далее напишем наши данные (емеил, парольную фразу) для будущего входа web-интерфейс pgAdmin:
Теперь pgAdmin доступен в нашей сети
## Этап 3 – Развертывание Gunicorn и Nginx
За работу pgAdmin в качестве web-приложения отвечает Gunicorn. В данный момент к pgAdmin есть возможность подключения из локальных компьютеров. Для получения доступа за пределами нашей сети конфигурирует web-сервер Nginx.
Перейдем в корневую директорию, затем нужно перейти по адресу:
```
cd /etc/nginx/sites-available/
```
Внесём изменения в файл /test_domain.ru:
```css
server {
listen 80; #Прослушивание 80 порта IPv4
listen [::]:80; #В большинстве случаев при запуске nginx -t выдаёт ошибку. Ссылается на эту строку, при получении ошибки закомментируйте строку
server_name test_domain.ru www.test_domain.ru; #Название сервера
location / { #Путь
proxy_pass http://unix:/tmp/pgadmin4.sock; #обратный прокси
include proxy_params;
}
}
```
Запустим виртуальную среду Python. Подключим обратный прокси, использовав несколько команд:
```
source /test/test_env/bin/activate
```
```
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir /root/test/test_env/lib/python3.10/site-packages/pgadmin4 pgAdmin4:app
```
```
#Выход
[2022-11-04 21:55:37 +0000] [6338] [INFO] Starting gunicorn 20.1.0
[2022-11-04 21:55:37 +0000] [6338] [INFO] Listening at: unix:/tmp/pgadmin4.sock (6338)
[2022-11-04 21:55:37 +0000] [6338] [INFO] Using worker: gthread
[2022-11-04 21:55:37 +0000] [6339] [INFO] Booting worker with pid: 6339
```
Команда должна выполняться из виртуального пространства test_env и в ответ на выходе не должны быть ошибки связанные с библиотеками.
## Этап 4 - Доступ к pgAdmin 4
На машине из нашей сети запустим web-браузер и в адресной строке укажем адрес хоста, на котором развёрнут pgAdmin http://server_ip/pgadmin4.
В текущем примере используется адрес http://10.0.0.1/pgadmin4
При авторизации укажем почту, пароль – использованные при создании конфигурации (Конец "Этап 2 – Конфигурирование pgAdmin 4").
Выполним авторизацию нажав на кнопку Login (Войти) (см. рисунок 1)
Рисунок 1 – Доступ к pgAdmin
При успешной авторизации, мы увидим главную страницу web-интерфейса pgAdmin (см. рисунок 2).
Рисунок 2 – Панель управления pgAdmin
Теперь внесём правки в конфигурационный файл, используемый для соединения с БД PostgreSQL.
## Этап 5 – Конфигурация пользователя PostgreSQL
Нажатием _CTRL + C_ выполним остановку процесса, тем самым, перейдем обратно в консоль.
Выполнив Пункт "Процесс установки" из [инструкции](https://serverspace.ru/support/help/kak-ustanovit-postgresql-na-ubuntu-20-04/). Продолжим
настройку.
Войдем в учетную запись "встроенного" администратора:
```
su postgres
```
```bash
psql postgres
```
Создадим юзера и саму БД с помощью команд:
```sql
CREATE ROLE LOGIN PASSWORD '';
CREATE DATABASE WITH OWNER = ;
```
Например:
```sql
CREATE ROLE serverspace LOGIN PASSWORD 'ububntu';
CREATE DATABASE serverspacedb WITH OWNER = serverspace;
```
В терминале базы данных добавим пароль для пользователя serverspace. При развёртывании СУБД, каждому пользователю необходимо создать сложные пароли и указать привилегии пользователя:
```sql
ALTER USER serverspace PASSWORD 'p@55w0rd';
```
Выполним выход написав _\q.
Зайдем через браузер в консоль pgAdmin 4. Добавим новый сервер с помощью инструмента Add New Server (см. рисунок 3).
Рисунок 3 – Добавление нового сервера
Введём название (см. рисунок 4).
Рисунок 4 – Название сервера
Перейдём во вкладку Connection, заполним поля Hostname/address (Название хоста/адрес) – localhost, Maintenance database (Обслуживающая база данных) – serverspacedb, Username (Имя пользователя) – serverspace, Password – указанный ранее в командной строке. После заполнения полей нажмём Save (см. рисунок 5).
**Внимание!** На рисунках отображается название базы данных:serverspace_.
Рисунок 5 – Заполнение полей для подключения к базе данных
Правильность подключения проверяется во вкладке Browser (Браузер). Во вкладке Servers появятся символы (1), уведомляющие о подключении нового сервера. В развёрнутом виде получаем информацию о Database (Базы данных), Login/Group Roles (Роли/Группа входа), Tablespace (Табличные пространства). В разделе Базы данных хранится две базы данных postgres (стандартная база данных установленная стандартно в PostgreSQL) и serverspacedb созданная ранее. (см. рисунок 6).
Рисунок 6 – Добавленный сервер с таблицами PostgreSQL
Добавили сервер с помощью несколько кликов по мыши.
## Этап 6 – Создание таблицы с помощью Web-Интерфейса.
Чтобы создать таблицу в базе данных, необходимо:
- Выбираем Schemas в базе serverspacedb, затем Tables;
- Выбираем Create -> Table. (см. рисунок 7)
Рисунок 7 – Создание таблицы
Откроется окно Create table, во вкладке General. Далее внесём название таблицы в поле Name (Название). Owner (Владелец) и Schemas (Схемы) заполняются автоматически. При необходимости можно внести изменения на своё усмотрение (см. рисунок 8).
Рисунок 8 – Наименование таблицы
Перейдём во вкладку Columns, создание столбца происходит следующим образом: Нажимаем кнопку "+" указываем Name (Название), Data type (Тип данных) и значение Not NULL (Не пустое), чтобы все столбцы не были пустыми и выберем Primary key (Первичный ключ) для указания первичного ключа и нажимаем Save (Сохранить) (см. рисунок 9).
Рисунок 9 – Создание столбцов в таблице
Появилась настроенная БД и наша таблица со столбцами.
Приступим к заполнению таблицы с помощью SQL. вызываем контекстное меню правой кнопкой мыши по нашей таблице и нажимаем на Scripts -> CREATE Script (Создать скрипт) (см. рисунок 10).
Рисунок 10 – Создание скрипта
Добавим скрипт для заполнения столбцов, также можно добавить больше информации разделяя запятыми (см. рисунок 11).
```sql
/*Добавление информации в таблицу*/
INSERT INTO public."test_table"(
/*Название строк*/
test_col1,
test_col2,
test_col3)
/*Значения*/
VALUES
/*Информация о строках*/
('Test1', 10, 'True'),
('Test2', 20, 'False'),
('Test3', 30, 'True');
```
Рисунок 11 – Добавление скрипта
Запускаем скрипт с помощью кнопки (▶) и закрываем окно с редактором.
Просмотр внесённых изменений в таблице выполняется следующим образом:
- Используем ПКМ на нужную таблицу;
- Выбираем View/Edit Data (Посмотреть/Изменить данные);
- Затем выбираем All Rows (Все строки). (см. рисунок 12)
Рисунок 12 – Просмотр всех строк
В открывшемся окне с результатами выполненного запроса, заполненные данные хранятся в разделе Data Output. (см. рисунок 13)
Рисунок 13 – Записанные данные
Использованный метод считается одним из используемых для создания таблицы и заполнения.
Однако, следующий пример использует только SQL запрос:
- Вызываем контекстное меню на пункте Tables;
- Выбираем Query Tool. (см. рисунок 14)
Рисунок 14 – Открытие инструмента запросов
Создадим таблицу и столбцы. Заполним созданные поля типом данных, и информацией со значениями "15, 'test_table2', 'True'" (см. рисунок 15):
```sql
/*Создание таблицы с названием test_table2*/
Create table test_table2 (
/*Атрибуты таблицы*/
test_table1 int,
test_table2 text,
test_table3 boolean );
/*Скрипт для заполнения таблицы*/
insert into test_table2 (
/*Ввод данных в таблицы и в их атрибуты*/
test_table1,
test_table2,
test_table3 )
/*Заполняемые значения атрибутов*/
values (15, 'test_table2', 'True');
```
Рисунок 15 – Создание и заполнение таблицы
При проверке новой таблицы мы не обнаружим новую таблицу, пока не обновим базу данных serverspacedb.
Нажимаем на базу данных правой кнопкой мыши и выбираем пункт Refresh (Обновить) (см. рисунок 16).
Рисунок 16 – Обновление базы данных
Теперь посмотрим результаты запроса нашего кода. Данные заполнены в соответствии с написанным запросом (см. рисунок 17)
Рисунок 17 – Результат выполненного запроса
У нас получились две таблицы: первая - с использованием визуального интерфейса, вторая - используя SQL
## Выводы
pgAdmin уникальный инструмент для работы с базой данных в режиме web-интерфейса.
Как работать:
- Установить Ubuntu Server 22.04;
- Настройка ufw для порта 80/tcp;
- Установите Nginx, Python, PostgreSQL;
- Разверните виртуальную среду на Python;
- Установите библиотеку Gunicorn;
- Настройте обратный прокси в Nginx;
- Сконфигурируйте Gunicorn и Nginx для их совместной работы;
- Запустите скрипт для установки виртуального сервера pgAdmin;
- Запустите сервер;
- Перейдите в браузере по адресу сервера локального хоста;
- Добавьте сервер, укажите данные для PostgreSQL;
- Создайте таблицу, заполняйте данными и редактируйте.
https://serverspace.uz/support/help/organizacziya-udalennogo-dostupa-k-serveru-mysql.mdПрочитав эту статью вы узнаете, как настроить удаленный доступ к серверу MySQL на базе Ubuntu для управления базами данных
## Что такое MySQL и зачем может понадобиться удаленный доступ к нему
MySQL — широко известная система управления базами данных. Наиболее часто эта служба используется так, что и базы данных, и все прочие файлы проекта хранятся на одном и том же сервере. При таком раскладе вполне можно предоставлять только локальный доступ, более того, по соображениям безопасности именно так и следует сделать. Но в случае использования многосерверной инфраструктуры настройки потребуется изменить.
## Подготовительный этап
Чтобы разрешить доступ к своим базам данных потребуется:
- Сервер, управляемый актуальной операционной системой (например, Ubuntu 20.04);
- Доступ к системной учетной записи "root";
- Привилегированный доступ к сервису управления базами данных.
Для этого прекрасно подойдет наш облачный VPS-сервер.
## Разблокировка доступа к MySQL извне
Чтобы разрешить "внешние" подключения к серверу базы данных, выполните следующие действия:
Войдите на свой сервер как привилегированный пользователь и уточните, какой именно сетевой порт использует MySQL:
```
netstat -tlnp | grep my
```
Как видим, прослушивается TCP-порт 3306. Разрешим доступ к нему в настройках брандмауэра:
```
ufw allow 3306
```
Далее нужно найти, в каком именно из файлов, описывающих настройки MySQL, объявлен адрес, прослушиваемый службой:
```
grep -r "bind" /etc/mysql/
```
Замените значение директивы _bind-address_ на 0.0.0.0 и проверьте результат:
```
sed -i.bak -e 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind
```
Перезапустите службу:
```bash
service mysql restart
```
Следующий шаг не является обязательным. Вы можете аутентифицироваться в сервисе как существующий пользователь или же создать новый аккаунт и предоставить ему соответствующие привилегии:
```bash
mysql # вход в консоль управления сервисом
CREATE USER ; # создание учетной записи
ALTER USER IDENTIFIED WITH mysql_native_password BY ''; # установка пароля
GRANT ALL ON .* TO ; # предоставление привилегий
FLUSH PRIVILEGES; # применение сделанных изменений
```
## Проверка доступности службы
Чтобы проверить результат проделанных действий, войдите в консоль "удаленного" сервера и выполните команду:
```bash
mysql -h -u -p
```
Затем введите или вставьте скопированный ранее в буфер пароль от созданной учетной записи, чтобы попасть на сервер управления базами данных.
Теперь можно, например, посмотреть на содержимое базы:
```sql
show databases;
show tables in ;
select * from .;
```
## Краткие итоги
После прочтения этой статьи вы узнали, как получить доступ извне к вашему серверу MySQL и удаленно управлять размещенными там данными.
https://serverspace.uz/support/help/kak-ustanovit-i-nastroit-zabbix-na-centos-8.mdВ данном руководстве мы настроим систему мониторинга сервера Zabbix 5 на CentOS 8, используя базу данных Postgresql 12 и веб-сервер Nginx
В данной инструкции, мы установим систему мониторинга Zabbix 5 на CentOS 8. Системой управления базой данных будет Postgresql-12 и веб-сервер Nginx.
## Установка обязательных пакетов для Zabbix
[step num="1"]
Давайте установим репозиторий Zabbix и очистим кэш менеджера.
[/step]
```bash
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
dnf clean all
```
[step num="2"]
После добавления репозитория, мы можем начать установку обязательных пакетов.
[/step]
```bash
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent
```
## Установка Postgresql 12
[step num="3"]
Установим репозиторий Postgresql-12 и очистим кэш.
[/step]
```bash
rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf clean all
```
[step num="4"]
Отключим предустановку модуля DBMS .
[/step]
```bash
dnf -qy module disable postgresql
```
[step num="5"]
After that set up the Postgresql-12 packages.
[/step]
```bash
dnf -y install postgresql12 postgresql12-server
```
[step num="6"]
Теперь инициализируем базу данных.
[/step]
```
/usr/pgsql-12/bin/postgresql-12-setup initdb
```
[step num="7"]
Теперь мы можем активировать службу и убедиться, что она включается при загрузке системы.
[/step]
```bash
systemctl enable --now postgresql-12
```
## Конфигурация базы данных
[step num="8"]
Создадим нового пользователя Postgresql для Zabbix. Введите пароль, где оно этого потребует.
[/step]
```
sudo -u postgres createuser --pwprompt zabbix
```
[step num="9"]
После, создадим новую базу данных для работы с нашей системой мониторинга.
[/step]
```
sudo -u postgres createdb -O zabbix zabbix
```
[step num="10"]
Давайте импортируем стартовую схему и информацию в базу данных. При появлении запроса введите пароль для недавно созданного пользователя и продолжите.
[/step]
```
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
```
[step num="11"]
В файле **/etc/zabbix/zabbix_server.conf** уберите комментарий с строчки **DBPassword** и введите пароль для того чтобы получить доступ к базе данных.
[/step]
```
DBPassword=zabbix
```
[step num="12"]
Чтобы иметь возможность подключиться к базе данных, откройте файл **/var/lib/pgsql/12/data/pg_hba.conf** и найдите строчки:
[/step]
```
# IPv4 local connections:
host all all 127.0.0.1/32 ident
```
[step num="13"]
Измените метод на **ваш пароль**.
[/step]
```
host all all 127.0.0.1/32 password
```
[step num="14"]
И перезапустите DBMS.
[/step]
```bash
systemctl restart postgresql-12
```
## Настройка Nginx
[step num="15"]
Откройте файл **/etc/nginx/conf.d/zabbix.conf** и уберите комментарий с параметров **listen** и **server_name**. В последнем введите имя домена вашего сервера или **_** если вы только хотите подключиться используя IP адрес.
[/step]
```
server {
listen 80;
server_name _;
...
```
[step num="16"]
В последнем параметре, вам тоже нужно убрать комментарий со всей секции **server** в файле **/etc/nginx/nginx.conf**.
[/step]
```
# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
...
```
[step num="17"]
В файле **/etc/php-fpm.d/zabbix.conf** уберите комментарий с параметра **php_value[date.timezone]** и установите ваш часовой пояс.
[/step]
```
php_value[date.timezone] = Europe/Prague
```
[step num="18"]
Теперь перезапустите конфигурируемые приложения и сделаем так, чтобы они запускались при загрузке системы.
[/step]
```bash
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
```
## Настройка интерфейса Zabbix
Откройте IP адрес вашего сервера в браузере.
Скриншот 1. Встречающее окно Zabbix
Проверьте если все ли правильно и нажмите OK, чтобы перейти на второй шаг.
На третьем шаге, введите **127.0.0.1** в меню **Database Host ** и пароль для базы данных в соответствующем поле.
Скриншот 2. Настройка базы данных
Теперь следуйте до конца настройки и оставьте параметры по умолчанию.
Зарегистрируйтесь как **Admin** и введите пароль **Zabbix,** которые используются для входа в административную панель.
Скриншот 3. Окно входа в Zabbix
https://serverspace.uz/support/help/ustanovka-balansirovshhika-haproxy-na-pfsense.mdИнструкция по установке балансировщика нагрузки HAProxy в программный комплекс PfSense для повышения безопасности и доступности вашего проекта
## Что такое PfSense
PfSense — мощный программный комплекс, в основе которого лежит FreeBSD. Обычно его используют в качестве шлюза, брандмауэра, узла для перенаправления трафика, прокси и т.д. Несмотря на то, что "под капотом" установлена FreeBSD, почти для всех операций достаточно браузера. Эта вот простота в сочетании с мощностью и возможностями кастомизации путем "доустановки" плагинов - та самая "киллер-фича" PfSense, благодаря которой он до сих пор популярен.
## Что такое HAProxy
HAProxy — достаточно простой балансировщик нагрузки с открытым исходным кодом. Первоначально его можно было установить только на выделенный сервер под управлением Linux, но теперь HAProxy можно установить на виртуальные машины, большое количество маршрутизаторов бизнес-уровня, и т.д. В этой статье я опишу, как установить HAProxy на программный комплекс PfSense.
## Подготовка инфраструктуры
Чтобы показать, как работает HAProxy, вам нужно подготовить как минимум три сервера: два в качестве серверов, обеспечивающих работу служб вашего проекта и "раздающих" контент, третий в качестве брандмауэра PfSense и балансировщика HAProxy.
Последовательность действий будет такой:
- Войдите в личный кабинет Serverspace и создайте изолированную локальную сеть;
- Разверните три сервера, один из них под PfSense, другие под ОС, соответствующую требованиям вашего проекта. Важный момент - все три сервера должны находиться в одном датацентре. По окончании развертывания вы должны увидеть в списке серверов нечто похожее;
- Выключите все три сервера и подключите их к только что созданной "приватной" сети;
- Залогиньтесь в веб-интерфейс сервера PfSense (учетные данные можно увидеть на вкладке Status сервера в личном кабинете), затем перейдите на страницу **Interfaces > Assignments** и назначьте интерфейс LAN на свободный сетевой порт;
- Перейдите на страницу **Interfaces > LAN** и выполните настройки в соответствии с информацией о сетевом соединении** **сервера в личном кабинете;
- Поскольку порты 80 и 443 впоследствии будут использоваться для обслуживания клиентов проекта, я изменю порт веб-интерфейса PfSense. Следует перейти в настройки брандмауэра PfSense и создать правило, разрешающее пропускать трафик на выбранный неиспользуемый порт, затем назначить этот порт на странице **System > Advanced** в качестве порта веб-интерфейса;
- Откройте интерфейс PfSense уже на "новом" порту, снова перейдите к настройкам брандмауэра и создайте правило, разрешающее весь трафик во "внутренней" сети;
- На этом подготовительные работы в том, что касается PfSense, завершены, теперь нужно подключить будущие серверы контента к нашей локальной сети. Чтобы сделать это, можно добавить новый интерфейс в файлы конфигурации сети вручную, однако, поскольку на серверах еще нет контента, быстрее просто переустановить ОС сервера через личный кабинет уже после подключения к локальной сети. Результат будет тот же, "приватные" IP всех трех серверов будут доступны;
## Установка HAProxy
Чтобы установить и настроить HAProxy на сервере PfSense, нужно выполнить следующие действия:
- Откройте веб-интерфейс сервера PfSense, перейдите на страницу **System > Package Manager > Available Packages **и установите последнюю доступную версию HAProxy;
- Теперь создадим бэкенд. Перейдите на страницу **Services > HAProxy > Backend** и укажите в соответствующих полях "внутренние" IP-адреса ваших серверов контента и прослушиваемые сервисами порты;
- Создайте фронтенд балансировщика. Для этого перейдите на страницу **Services > HAProxy > Frontend**, установите WAN-адрес в качестве "целевого" IP и настройте "транзит" трафика на ранее созданный бэкенд;
- На странице **Services > HAProxy > Settings**, установите лимит на количество одновременных подключений и можете включать сервис;
## Размещение файлов проекта и проверка работы HAProxy
Не буду дублировать информацию, просто дам ссылку на [эту статью](https://serverspace.uz/support/help/ustanovka-balansirovshhika-haproxy-na-ubuntu-20-04/). Разверните веб-сайт, как описано в разделе "Развертывание веб-сайта", для проверки работы HAProxy выполните шаги, указанные в разделе "Проверка работы балансера". Ожидается похожий результат.
## Максимизация безопасности
Для повышения безопасности вы можете полностью блокировать любой трафик к вашим контент-серверам через "публичный" WAN-интерфейс, за исключением трафика, исходящего с вашего собственного IP-адреса. Вернитесь обратно в личный кабинет ServerSpace, откройте настройки каждого контент-сервера и добавьте два сетевых правила - одно должно разрешать трафик с вашего собственного IP-адреса, другое - запрещать сетевую активность с любых других адресов. Внимание, чтобы не потерять доступ к серверам, следует ставить "разрешающие" правила перед "запрещающими".
## Выводы
Прочитав этот материал, вы узнали, что такое PfSense и теперь можете установить на нем балансировщик HAProxy, а также повысить безопасность данных вашего проекта.
https://serverspace.uz/support/help/ustanovka-redaktora-gruppovoj-politiki-windows.mdВ данной инструкции мы рассмотрим установку редактора групповой политики. Как исправить ошибку редактора групповой политики gpedit.msc
При выполнении настройки групповых политик на вашем удаленном сервере, у вас может возникнуть ошибка, что редактор групповой политики gpedit.msc не найден:
В данной инструкции мы рассмотрим, как устранить данную ошибку.
## Устранение ошибки на Windows 10.
В Windows 10 данный редактор мы сможем установить без помощи каких либо дополнительных средств.
Для начала, создадим bat файл содержащий в себе данный код. Чтобы создать bat файл, откройте блокнот, после чего добавьте в него код и затем сохраните как file.bat при этом указав в типе файла "Все файлы".
Код который необходимо вставить в файл:
```
@echo off
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >find-gpedit.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>find-gpedit.txt
echo Installing gpedit.msc
for /f %%i in ('findstr /i . find-gpedit.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
echo Gpedit is installed successfully.
pause
```
Как необходимо сохранить файл блокнота:
После чего данный файл необходимо запустить от имени администратора:
После чего ваш редактор групповой политики будет установлен и будет готов к работе!
Установка редактора политики в Windows 7 и Windows 8.
Внимание: Вы также можете попробовать решить данную ошибку способом, разобранным для Windows 10
Если у вас данная происходит данная ошибка на более старой системе, то вам будет необходимо скачать gpedit.msc, как стороннее приложение, установить его и запустить.
Для начала скачайте данный [архив](https://drive.google.com/file/d/1vbBaVP4urbrg0GNO7uh4sP2qyk4oNgLx/view?usp=sharing), разархивируйте и запустите setup.exe:
После чего у вас откроется визард установки и попросит установить недостающие файлы.
После этого вы сможете пользоваться вашим редактором групповой политики!
https://serverspace.uz/support/help/install-bitwarden.mdКак установить на Debian 11 Bitwarden — удобный и бесплатный менеджер паролей, имеющий клиенты для большинства платформ (ПК и мобильные)
## Что такое Bitwarden?
Bitwarden — менеджер паролей с клиентской поддержкой большинства операционных систем (Windows, Linux, MacOS). Данное программное обеспечение распространяется с открытым исходным кодом и дает пользователям возможность выбора типа хранения паролей: как на серверах компании, так и на своем собственном сервере с развернутым Bitwarden. Одной из особенностей Bitwarden является поддержка разных форматов: есть веб версия, браузерное расширение, программа для ПК и мобильные приложения.
## Подготовка системы к установке
Для установки менеджера паролей необходимо обновить пакеты системы.
```bash
sudo apt update && apt upgrade
```
Установите пакеты Apache и Curl.
```bash
sudo apt install apache2 curl -y
```
Далее необходимо установить Docker, но перед этим установим зависимости.
```bash
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
```
Добавляем gpg ключи от Docker.
```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
```
Добавьте репозиторий docker в свою систему.
```
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable && apt update"
```
## Установка Docker
Установим Docker, с помощью команды:
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose
```
После установки Docker, необходимо добавить пользователя в группу "docker".
```
sudo usermod -aG docker *username*
```
## Установка Bitwarden
Для следующего шага потребуется запросить идентификатор хостинга и ключ для установки.
Переходим на сайт [BitWarden](https://bitwarden.com/host/), вводим электронную почту администратора и получаем нужные данные.
Примечание: Идентификатор и ключ требуется хранить в безопасном месте.
Загружаем код Bitwarden.
```bash
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh
```
Для установки BitWarden используется обычный скрипт, который можно открыть, прописав команду ниже.
```
cat bitwarden.sh
```
BitWarden использует уже готовые конфиги, тем самым после его установки вы сразу можете проверить его работоспособность и уже после установки настроить так, как вам требуется.
Скрипт необходимо сделать исполняемым.
```bash
chmod +x bitwarden.sh
```
Для проверки выданных прав используйте команду ниже.
```
ls -l
```
Устанавливаем BitWarden, используя скрипт установки.
```
sudo ./bitwarden.sh install
```
Введите необходимые данные после установки. Если вы хотите, чтобы ваш сервер был виден из интернета, вам нужно ввести ваш домен, в противном случае заполните поле реквизитом **yourdomain.com** и нажмите **Enter**. Также заполните и другие поля, как представлено ниже.
Сертификат был получен, и теперь мы можем задать имя базе данных:
Дождитесь установки, когда все контейнеры будут подтянуты:
При завершении установки требуется ввести идентификатор установки и ключ, которые мы получили ранее и подождать, когда закончится генерация теперь уже приватного ключа Диффи Хеллмана:
Установка прошла успешно.
## Запуск Bitwarden
Перед запуском требуется настроить конфиг. Настроим его, используя любой текстовый редактор.
```
nano ./bwdata/config.yml
```
Для того, чтобы избежать проблем с веб интерфейсом, поменяйте порт на ваш выбор или если у вас отдельный сервер для менеджера, и остальные ресурсы в веб части не мешают, то можно оставить значения по умолчанию.
Примечание: Если у вас есть проблемы при запуске системы, поменяйте порт в конфиге докера на такой же, который вы используете для Bitwarden.
```
nano ./bwdata/docker/docker-compose.yml
```
Чтобы настроить некоторые функции Bitwarden, которые не устанавливаются скриптом **bitwarden.sh**, вы можете отредактировать файл окружения, расположенный по адресу ~bwdata/env/global.override.env.
```
nano ~bwdata/env/global.override.env
```
Редактируя файл окружения и обновляя эти параметры, вы можете настроить дополнительные функции Bitwarden в соответствии с вашими требованиями. Все параметры для заполнения представлены на скриншоте ниже. Для заполнения этих пунктов необходимо поднять почтовый сервер. [Как настроить почтовый сервер](https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11/), вы можете узнать из инструкции в базе знаний. Не забудьте сохранить изменения после редактирования файла с помощью комбинаций клавиш **Ctrl+O ** и выйти из текстового редактора, при помощи **Ctrl+X**.
Запуск менеджера паролей производится благодаря команде.
```
sudo ./bitwarden.sh start
```
При первом запуске потребуется подождать какое-то время, пока Bitwarden создаст все необходимое для его работы.
После успешного запуска, появится сообщение о готовности web интерфейса.
Обязательно. Если вы не используете IPv6, то необходимо закомментировать соответствующие строчки в конфигурации nginx:
```
nano ~/bwdata/nginx/default.conf
```
**Закомментируйте строчки**, которые могут быть связаны с IPv6, такие отмечены на скриншоте синим цветом:
Также необходимо провести первичную настройку DNS записи. В данном случае укажите A запись у вашего регистратора, в одном поле будет ваш домен 3 уровня, а в другом IP для подключения:
Переходим на web интерфейс, используя доменный адрес вашего сервера.
При создании пользователя обратите внимание, что пароль, привязанный к аккаунту, является главным ключом к доступу всех паролей, и чтобы его не забыть, вы можете оставить подсказку.
Для того чтобы аккаунт работал без ограничений, вы можете отправить себе письмо с подтверждением. Однако ограниченного функционала также вполне хватает для работы. В главном окне есть возможность создать объекты с данными:
Окно с полями представляет из себя профиль необходимый для заполнения:
Внесенная запись выглядит следующим образом:
## Вывод
В этой инструкции мы рассмотрели, как установить менеджер паролей Bitwarden на сервере с ОС Debian.
https://serverspace.uz/support/help/povyshenie-otkazoustojchivosti-sajta-pri-pomoshhi-haproxy-i-keepalived.mdУстановка и настройка keepalived + HAProxy + webserver для построения отказоустойчивой инфраструктуры на базе Ubuntu 20.04 LTS
## О чем вообще речь
Keepalived — это сервис, предназначенный для обеспечения безаварийной работы других служб. Нужно понимать, что это не самодостаточная сущность, и для предоставления доступа к "целевому" контенту необходим также или сервис-балансировщик. Далее в этой статье я покажу, как настроить связку "keepalived + HAProxy + webserver" на Ubuntu 20.04 LTS.
## Подготовка
Перед установкой собственно keepalived необходимо провести ряд работ по подготовке инфраструктуры. Потребуются:
- Два идентичных сервера для размещения контента проекта и два сервера, также одинаковых по характеристикам, для балансировщика haproxy и демона keepalived;
- ОС Ubuntu 20.04 и привилегированные права на всех этих серверах;
- Две подсети, одна общая и одна приватная. Контент-серверы из соображений безопасности не будут доступны через общедоступную подсеть, серверы балансировки должны быть подключены к обеим сетям;
- Один дополнительный публичный IP-адрес в публичной подсети, не закрепленный явно за каким-либо из серверов;
- Доменное имя, "направленное" на этот "дополнительный" IP.
Приступим к подготовке:
- Создайте четыре сервера через личный кабинет ServerSpace. Все они должны быть размещены в одной локации:
- Создайте две подсети в соответствии с описанием ниже:
- Подключите все серверы к созданным сетям. Затем переустановите на них ОС, это самый быстрый способ применить сетевые настройки без анализа и редактирования конфигурационных файлов:
- Когда переустановка завершится, перейдите в личном кабинете в раздел **Сети** и кликните по названию каждой подсети. Вы увидите, какому серверу какой IP был назначен. Запомните эти данные, они понадобятся при дальнейшей настройке. Также держите в уме, что один неиспользуемый IP-адрес (45.14.48.134 в моем примере) будет использоваться как "плавающий" адрес для обеспечения отказоустойчивости:
- Создайте набор правил брандмауэра, блокирующих любой трафик, поступающий на "конетент-серверы" через "публичный" интерфейс, кроме трафика из вашей подсети. Также стоит внести в белый список "внешний" IP вашего компьютера, это сделает управление серверами более комфортным. Самый простой способ достичь цели - кликнуть по имени первого сервера с контентом вашего проекта в панели ServerSpace, добавить правила файрволла и нажать кнопку **Сохранить**. Помните, что "разрешающие" правила нужно ставить выше, чем правила блокировки:
- Повторите те же действия для второго сервера, обслуживающего ваш проект
- Добавьте в конец файла _/etc/hosts_ на каждом из четырех серверов следующие строки:
```
content1 content1.your.domain
content2 content2.your.domain
haproxy1 haproxy1.your.domain
haproxy2 haproxy2.your.domain
your.domain
your.domain
```
## Настройка связки "веб-сервер, балансировщик и демон keepalived"
- Разверните два идентичных экземпляра данных вашего проекта на оба контент-сервера. Так как моя статья создается в "учебных" целях, я просто установлю веб-сервер nginx с "тестовой страницей". Индексные файлы будут отличаться, просто чтобы проиллюстрировать работу программ и показать, что сервисы балансировки реально работают:
```bash
apt-get update; apt install -y nginx
echo $(hostname) > /var/www/html/index.nginx-debian.html # именно у вас путь может быть другим, тут указывается каталог сайта и индексный файл
```
- Авторизуйтесь на первом сервере балансировки и установите пакет haproxy.
```bash
apt -y install haproxy
```
Отредактируйте файл конфигурации _/etc/haproxy/haproxy.cfg_, добавив следующие строки:
```
#frontend
#---------
frontend my_haproxy
bind *:80
stats uri /haproxy?stats
default_backend my_haproxy
# backend
#---------
backend my_haproxy
balance roundrobin
mode http
server content1 :80 check
server content2 :80 check
```
- Перезапустите службы haproxy
```bash
service haproxy restart
```
- Одновременно запустите два сеанса терминала на вашем локальном компьютере и выполните следующие команды (по одной на окно):
```
while sleep 3; do curl http://; done
while sleep 3; do curl http://; done
```
Если вы видите чередующиеся "ответы" в обоих окнах терминала - обе службы haproxy работают, можете переходить к следующему шагу:
- Установите на оба сервера-балансировщика программный пакет keepalived:
```bash
apt install -y keepalived
```
- Уточните имена "публичных" сетевых интерфейсов на обоих серверах:
```
ip a | grep
```
- Вставьте в файл параметров конфигурации для демона keepalived на первом балансировщике следующий код:
```
nano /etc/keepalived/keepalived.conf
```
```
vrrp_instance MY_KEEPALIVED1 {
state MASTER
interface ens192
virtual_router_id 1
priority 11
virtual_ipaddress {
45.14.48.134/29 dev ens192 label ens192:1
}
}
```
Кратко опишу что они означают:
**vrrp_instance** - имя инстанса, любые символы без пробелов,
**state** - роль сервера, ведомый или ведущий
**interface** - имя сетевого интерфейса, вы уточнили его на предыдущем шаге,
**virtual_router_id** - идентификатор "виртуального роутера", должен быть одинаковым на всех серверах-балансировщиках,
_priority_ - приоритет балансировщиков, чем выше цифра тем больше приоритет, самый высокий следует выставлять для "ведущего" сервера,
_virtual_ipaddress_ - один IP в подсети, не назначенный ни одному из серверов. Именно на этот адрес нужно "направить" А-записи вашего домена.
- По аналогии создайте файл конфигурации для второго сервера-балансировщика:
```
vrrp_instance MY_KEEPALIVED1 {
state SLAVE
interface ens192
virtual_router_id 1
priority 10
virtual_ipaddress {
45.14.48.134/29 dev ens192 label ens192:1
}
}
```
Обратите внимание на текст, в нем параметры "priority" и "state" поменялись местами, а всё остальное идентично.
- Разрешите автозапуск и перезапустите сконфигурированные службы на обоих серверах балансировки:
```bash
systemctl enable haproxy && service haproxy restart; systemctl enable keepalived && service keepalived start
```
- Проверьте статус. Запущенные службы отображаются так:
```bash
systemctl status haproxy && service keepalived status
```
## Проверка работы балансировки и имитация аварии
- Снова откройте терминал на своем компьютере и дайте следующую команду:
```
while sleep 5; do curl http://; done
```
Как видно, оба сервера контента работают и отвечают по очереди:
- Остановите "главный" балансировщик:
```bash
systemctl stop haproxy && service keepalived stop
```
- Видно, что "резервный" балансировщик повысил статус до ведущего, а контент продолжает доставляться без перебоев с обоих "контентных" серверов:
- Теперь отключим один из серверов, содержащих контент:
```bash
service nginx stop
```
На скриншоте видно, что был буквально секундный обрыв связи, проект остался работоспособным, контент поступает со второй ноды:
- Когда "сбойный" сервер возвращается в строй, его контент также "возвращается" незаметно для пользователей проекта:
- И, наконец, если вернуть в строй "упавший" балансировщик, он снова берет на себя ведущую роль:
```bash
systemctl start haproxy && service keepalived start
```
**Выводы**
Прочитав этот материал, вы узнали, как построить отказоустойчивую инфраструктуру на базе nginx, haproxy и keepalived в Ubuntu 20 LTS.
https://serverspace.uz/support/help/kak-razvernut-sajt-na-wordpress-s-aapanel-na-ubuntu.mdПошаговый мануал по быстрой установке сайта на Wordpress на сервер под Ubuntu при помощи панели управления Aapanel
## Что такое Aapanel
Aapanel — это современная, легковесная панель управления веб-сервером. Она способна удовлетворить все имеющиеся потребности и призвана облегчить вам задачи по управлению настройками сервера. Эта панель может работать с популярными программными стеками LAMP/LEMP, службой управления базами данных, FTP, встроенным файловым менеджером ит.д. Также вы можете "расширить" функциональность панели через магазин расширений.
## Перед установкой
Перед началом установки Aapanel убедитесь, что у вас есть:
- Сервер с оперативной памятью не менее 2Гб и дисковым пространством не менее 20Гб;
- Актуальная операционная система (в данном примере рассматривается Ubuntu 20.04 LTS);
- Полномочия пользователя "root" или членство в группе "wheel";
- Домен, А-записи которого "указывают" на ваш сервер.
В Serverspace вы можете заказать сервер, подходящий под указанные требования.
## Процедура настройки
Для установки Aapanel выполните дальнейшие шаги:
- Авторизуйтесь в SSH-консоли сервера как root-пользователь и обновите текущие пакеты;
```bash
apt-get update; apt upgrade -y
```
- Перезагрузите сервер, чтобы избежать использования не обновленного программного обеспечения;
- Установите пакет _wget_, чтобы в дальнейшем можно было получить установочный скрипт;
```bash
apt install wget -y
```
- Загрузите и запустите скрипт установки:
```bash
cd /tmp && wget http://www.aapanel.com/script/install-ubuntu_6.0_en.sh
chmod +x install-ubuntu_6.0_en.sh
./install-ubuntu_6.0_en.sh aapanel
```
Процесс может занять некоторое время, наберитесь терпения. Когда установка будет завершена, вы увидите данные для доступа в Aapanel. Сохраните их в надежном месте.
- Авторизуйтесь в панели через веб-браузер, вам будет предложено выбрать один из предварительно выбранных наборов программ. Вы можете выбрать один или "наполнить" панель содержимым вручную позже;
## Размещение сайта
Теперь, когда панель установлена, можно приступить к развертыванию собственно веб-сайта. Если вам нужен "чистый" сайт на WordPress, Aapanel позволяет сделать это буквально "в один клик". Просто перейдите в раздел **Website > Add**, переключитесь на вкладку **WordPress deploy** и заполните предлагаемые поля:
Подождите немного, в результате вы должны увидеть сообщение "Развертывание успешно", а созданный сайт появится в соответствующем списке:
- Теперь вы можете авторизоваться в админке свежеустановленной CMS:
## Итоги
В этой статье я рассказал о немного экзотической панели для управления сервером под названием Aapanel и показал, как с ее помощью "в один клик" развернуть новый сайт на WordPress.
https://serverspace.uz/support/help/use-react-in-axios.mdИнструкция по использованию библиотеки Axios в связке с React JS
## Введение
Axios — небольшая, но очень популярная библиотека для создания асинхронных запросов. Он прекрасен тем, что работает и в браузере, и в Nodejs, поддерживает даже Internet Explorer.
Представьте, что у проекта есть разделение на frontend и backend, чтобы выполнить обращение от frontend к backend нам необходим http клиент. Библиотека Axios выступает в роли http клиента для отправки запроса к backend, он получает ответ, и отображает его на frontend.
Когда отсутствует разделение backend и frontend, нам не требуется использоваться axios, но когда это разделение присутствует то в любом случае чтобы обратиться к backend требуется использовать http client.
Aoxis основан на обещаниях, тем самым при каждом запросе, мы будем получать ответ от объекта запроса.
Запросы можно перехватывать и отменять, на стороне клиента так же присутствует встроенная защита от подделки межсайтовых запросов.
В данной публикации вы увидите работу запросов Axios в React, используя примеры вы можете протестировать запросы на своем собственном сервере.
_Обещание_ — это обязательное сообщение получаемое как от клиента к серверу, так и наоборот. То есть при выполнении кода, мы понимаем что получим обратно данные с сервера благодаря обещанием.
## Возможности библиотеки
- Использование XML запросов;
- Использование http запросов от node.js;
- Поддерживание API "Обещаний";
- Перехватывает запросы и ответы;
- Отменяет запросы;
- Автоматически трансформирует в JSON;
- Поддержка защиты от XSFR на стороне клиента.
## Что требуется
- На вашем сервере установлена версия Node.js выше 10.17.хх;
- Ваш заготовленный проект React;
- В вашем проекте установлена библиотека axios.
## Добавление Axios в ваш проект
Создайте или перейдите в свой проект.
```
npx create-react-app your-project
```
Наиболее популярным способ является его установка, используя менеджер пакетов npm.
```bash
npm install axios
```
Импортируйте _Aoxis_ в ваш проект, где вы его хотите использовать.
## Создание GET запроса
Требуется создать новый компонент под любым именем, в нашем случае мы будем использовать наименование _CarList_. Данный компонент требуется поместить в директории вашего проекта, в нашем случае _/mnt/c/Project/_.
```
mkdir /mnt/c/Project/
```
Переходим в наш новый созданный документ _CarList_ используя любой текстовый редактор на ваш выбор.
```
nano /mnt/c/Project/CarList
```
Попробуйте выполнить Get запрос используя пример, в результате вы получите список машин марки Mitsubishi.
```javascript
const axios = require('axios');
axios.get('https://myfakeapi.com/api/cars/name/Mitsubishi') // Возвращение обещаний используя get-запрос
.then((response) => { // Получение данных и их обработка
console.log(response.data);})
.catch((error) => { // Если запрос не будет выполнен, то ошибка выводится в терминал
console.error(error);});
```
В результате мы получаем список данных от сервера благодаря обещаниям.
Для получения обещания от сервера мы используем _axios.get(someurl)_ с ссылкой из конечной точки API.
## Создание POST запроса
В вашем проекте потребуется создать новый компонент _UserAdd.js._
Введите код для Post запроса в вашем файле _UserAdd.js _который позволит пользователю вводить данные и отправлять API.
```
nano /mnt/c/Project/UserAdd.js
```
Попробуйте выполнить POST запрос используя пример, в результате вы добавите пользователя.
```javascript
const axios = require('axios');
axios
.post('https://myfakeapi.com/api/users/', {
firstName: 'Boris',
lastName: 'Moore'
}) // Использование post-запроса, с указанием пользователя
.then((response) => { // Получение данных и их обработка
console.log(response.data);})
.catch((error) => { // Если запрос не будет выполнен, то ошибка выводится в терминал
console.error(error);});
```
Проверяем работоспособность кода, в результате получим обещание от сервера.
## Создание Delete запроса
В вашем проекте потребуется создать новый компонент _Remove.js._
```
nano /mnt/c/Project/Remove.js
```
Попробуйте выполнить DELETE запрос используя пример, в результате вы удалите пост.
```css
componentDidMount() {
axios.delete(`https://myfakeapi.com/api/users/`)
.then(() => this.setState({ status: 'Delete successful' }));
}
```
## Использование базового экземпляра в Axios
Для этого примера потребуется создать новый компонент _api.js._
```
nano /mnt/c/Project/myapi.js
```
Создав данный компонент, мы указываем стандартную ссылку нашего сервера для получения и отправки запросов.
```css
import axios from 'axios';
export default axios.create({
baseURL: `http://yourapiurl.com/`
});
```
Для тестирования будет использоваться компонент _CarList.js_
```javascript
import React from 'react';
import axios from 'axios';
import Api from '/mnt/c/Project/api';
export default class CarList extends React.Component {
\\ . . .
componentDidMount() {
Api.get(`curl --location --request GET 'api/cars/name/Mitsubishi'`)
.then(res => {
const cars = res.data;
this.setState({ cars });
})}\\
```
После создания компонента api, нам не требуется постоянно указывать ссылку на сервер для получения и отправки запросов. Вам требуется лишь изменить путь до требуемого запроса в нужном компоненте.
## Использование async и await
Для тестирования будет использоваться компонент _CarList.js_
Ключевое слово _await _разрешает общение и отправляет результат в ответ. Значение может присваиваться к переменной.
```javascript
import API from '/mnt/c/Project/api';
export default class CarList extends React.Component {
componentDidMount() {
const response = await Api.get(`curl --location --request GET 'api/cars/name/Mitsubishi'`)
console.log(response);
console.log(response.data);})}
```
В примере мы заменяем _.then(),_ вместо него полученные данные отобразятся в консоли. Обещание будет выполнено и значение будет сохранено внутри переменной полученного ответа.
## Проверка
Перед проверкой запросов, проверьте указаны ли у вас запросы в компоненте программ.
В нашем случае мы будем редактировать компонент _yourapp.js._
```
import CarList from './components/CarList.js';
import PostRemove from './components/PostRemove.js';
import UserAdd. from './components/UserAdd.js';
function App() {
return (
)}
```
## Обработка ошибок запросов
Один из важных аспектов при работе с получаемыми данными от сервера, мы можем их получить только при условии отсутствии ошибок выполняя запрос. Для отображения ошибок, вам поможет функция catch.
```
catch (error) { // обработка ошибки и вывод ее в консоль
console.log("error get", error);}
```
Если при выполнении запроса у вас будет ошибка, то благодаря этой функции ошибка будет выведена в консоль.
## Заключение
Положительными аспектами библиотеки Axios является возможность автоматической конвертации в JSON, нам не требуется проводить дополнительные манипуляции, чтобы преобразовать объект в JSON, потому что мы получим его в ответе. Передача параметров в запрос, при выполнении метода мы можем передать определенные параметры в наш запрос.
В этой публикации мы разобрали запросы из библиотеки axios, как они работают вместе с React.
https://serverspace.uz/support/help/kak-ustanovit-netcat-na-windows-i-linux.mdИнструкция по установке утилиты диагностики сети Netcat (входит в пакет Nmap) на ОС Windows Server и Lunux на примере сервера с Ubuntu 20.04
## Что такое Netcat
_Ncat_ — популярный инструмент для диагностики сети. С некоторых пор он стал частью более крупного пакета утилит под названием Nmap, доступного для всех основных операционных систем. В данной статье будет рассмотрена установка на примере Windows и Linux.
## Установка netcat в Windows
Чтобы установить nmap (и ncat как часть nmap), выполните следующие действия:
- Войдите на свой сервер с правами администратора;
- Загрузите файл-установщик и запустите его. Примите лицензионное соглашение;
- Отметьте "галочкой" инструмент Ncat. Вы также можете запланировать установку и других утилит, если они вам нужны. Затем выберите место установки, нажмите "Установить" и немного подождите;
- Запустите терминал cmd и проверьте версию ncat;
```
ncat -v
```
## Пример работы утилиты
Чтобы убедиться, что ncat действительно работает, откройте два окна терминала.
- В первом окне запустите:
```
ncat -l
```
Во втором окне одновременно запустите:
```
ncat -C localhost
```
- Теперь можно сымитировать работу чата между двумя окнами:
## Установка nmap в ОС Linux
Процесс установки в Linux (например, Ubuntu 20.04) очень прост, достаточно выполнить следующую инструкцию:
- Авторизуйтесь как привилегированный пользователь и дайте команду на установку пакета из публично доступного репозитория;
```bash
apt-get update; apt install -y netcat
```
Для проверки работы можно воспользоваться примером, описанным в варианте установки для Windows — откройте два окна терминала и выполните следующие команды:
```
nc -l # в одном окне, проверяем "режим сервера"
nc -C # в другой сессии, чтобы проверить "режим клиента"
```
## Вывод
В этой статье я объяснил, как установить утилиту netcat в Windows 2022 Server и Ubuntu 20.04 LTS.
https://serverspace.uz/support/help/install-wordpress-php-by-docker-on-ubuntu.mdВ этой публикации мы продемонстрируем, как установить Wordpress и PhpMyAdmin на Ubuntu 20.04 сервер используя Docker Compose
## Введение
Задумывались о создании своего собственного сайта на WordPress? Тогда вы по адресу, ведь в этой публикации я продемонстрирую, как установить WordPress и PhpMyAdmin на Ubuntu 20.04 сервер используя Docker Compose.
Docker Compose позволяет работать с многоконтейнерными приложениями Docker выступая в роли его инструмента.
Для его работы необходимо предварительно установить Docker, в нашем случае мы будем использовать предустановленную версию Docker.
**Чтобы установить Docker, воспользуйтесь нашей [инструкцией](https://serverspace.uz/support/help/ustanovka-docker-na-ubuntu-20-04/) или создайте сервер в Serverspace с уже установленным приложением.**
## Что требуется
- Установленный на сервере Docker;
- Сервер под операционной системой Ubuntu 20.04;
- 4 Gb оперативной памяти или больше.
## Проверка готовности системы
Первым делом проверим, работает ли Docker на вашем сервере, используя команду.
```bash
systemctl status docker
```
Параметр "active" должен быть "running".
Обновляем пакеты на сервере.
```bash
sudo apt-get update && apt-get upgrade
```
Для будущей установки, необходимо установить пакет _curl_, он понадобится для установки Docker Compose.
```bash
sudo apt-get install curl -y
```
## Установка Docker Compose
Последняя версия Docker Compose 2.12.2, используйте команду ниже для скачивания репозитория на ваш сервер. Проверить последнюю версию можно [Github проекта](https://github.com/docker/compose/releases).
```bash
sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o /home/docker-compose
```
_Примечание: Репозиторий будет находиться по пути /home/docker-compose. _
После установки, скачанный репозиторий требуется сделать исполняемым.
```bash
sudo chmod +x /home/docker-compose
```
Для проверки можно использовать команду _ls -la _чтобы проверить выдачи прав на папку.
Скопируйте репозиторий в системный путь_._
```
sudo mv /home/docker-compose /usr/local/bin/
```
Проверьте установку выполнив команду _docker-compose_, в результате вы получите список возможных команд.
```bash
docker-compose
```
_Примечание: Если при запуске возникает ошибка -bash: /usr/local/bin/docker-compose: No such file or directory, проверьте скопировали ли вы репозиторий в системную папку. Может возникнуть ошибка -bash: /usr/local/bin/docker-compose: Permission denied , она говорит о том что репозиторий является не исполняемым, выдайте ему права используя команду выше._
## Установка WordPress и MySQL
Перед установкой, требуется создать каталог и конфиг для нашего Docker Compose.
```
mkdir wordpress
```
И так же создаем конфиг.
```
nano wordpress/docker-compose.yml
```
В этом конфиге нам потребуется указать образ самого wordpress, так и образ базы данных MySql которая нужна для работы WordPress.
_Примечание: вы можете поменять порт, на тот который считаете нужным._
Запустите докер, для скачивания и проверки конфига.
```bash
sudo docker-compose up
```
После запуска, уже можно перейти на веб страницу нашего сайта wordpress, используя "_https://yourip:8080_".
## Установка PhpMyAdmin
Перед его установкой, выключите docker compose.
```bash
sudo docker-compose down
```
Для установки, потребуется вернуться в наш конфиг докера, и вписать параметры образа и сети.
```xml
_phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: db
restart: always
ports:
- '8081:80'
depends_on:
- db_
volumes:
wordpress:
db:
```
Для установки и проверки работоспособности, запустите докер.
```bash
sudo docker-compose up
```
После запуска, перейдите на веб страницу используя "_https://yourip:8081_".
Установка успешно завершена.
## Вывод
Докер, позволяет установить разные пакеты буквально за пару минут, тем самым экономит ваше время. Благодаря ему, можно установить любую версию определенного пакета для тестирования ваших плагинов и программ.
Благодаря этой публикации, вы с легкостью развернете свой собственный сайт на WordPress, а так же веб-интерфейс для администрирования СУБД MySQL — PhpMyAdmin.
https://serverspace.uz/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04.mdНастройка по добавлению пользователя, подключение по SSH-ключу, логину и паролю. Настройка ufw и добавление пользователя в группу sudo.
## Введение
После установки дистрибутива [Ubuntu Server 22.04 на VPS](https://serverspace.uz/services/vps-server/ubuntu.md), необходимо выполнить несколько шагов для настройки безопасности системы и ради упрощённого использования.
## Этап 1 – Авторизация с учётной записи Root
Мы установим чистый сервер в облачном сервере и из учётной записи будет только "root". При создании сервера на выбор подключения два варианта:
- По SSH-ключу;
- По логину и паролю.
У пользователя "root" больше привилегий по сравнению с обычными пользователями. При использовании некоторых команд от имени root, могут привести к неисправностям. Обычно изменение в файле конфигурации, перезапуск служб, открытие портов и другие. По этой причине необходимо создать нового пользователя и выполнять команды с использованием sudo. Риск определенно снизится. Привилегии и ограничения на пользователя выдаются со стороны root, при помощи команды usermod.
При подключении к серверу по SSH-ключу используйте [инструкцию по данной теме.](https://serverspace.uz/about/news/generacziya-ssh-klyucha-v-paneli-upravleniya/) Во время создания сервера с использованием логина и пароля будет сгенерирован пароль для пользователя root, этот метод подключения считается менее безопасным.
Подключение к серверу происходит следующим образом:
```bash
ssh root@ip_address
```
После этого требуется указать либо пароль, либо в каталоге .ssh должен быть соответствующий файл с ключом. Соглашаемся с подлинностью сервера. Подключение по ключу SSH, возможно потребует парольную фразу и необходимо ввести.
В следующем этапе создадим системного пользователя для использования с определёнными привилегиями и ограничениями по использованию.
## Этап 2 – Добавление нового системного пользователя
При первой авторизации как root, следует добавить в систему нового пользователя с использованием команды:
```
useradd -m test_user
```
Заменить test_user вы можете на своё усмотрение. Ключ -m создаёт в домашнем каталоге папку для пользователя test_user и делает пользователя владельцем.
Следует задать пароль для пользователя:
```
passwd test_user
```
Вводим новый пароль и подтверждаем, необходимо использовать сложный пароль и записать в заметках. Пароль потребуется при использовании команды sudo.
## Этап 3 – Предоставление привилегий администрирования
Создав пользователя необходимо добавить в группу sudo. Используем команду:
```
usermod -aG sudo test_server
```
Ключ "a" указывает на добавление, ключ "G" указывает группу, затем следует название группы и добавляемый пользователь.
При создании пользователя, никаких прав доступа и привилегий нет. В обычные моменты следует перезапустить сервер, внести изменения в конфигурационный файл определённого или нескольких служб.
## Этап 4 – Первоначальная настройка базового брандмауэра
Ufw – утилита брандмауэра, каждый установленный пакет добавляется в правило ufw. Наше подключение по SSH также проходит через соответствующее правило ufw. Проверка статуса приложений выполняется следующим образом:
```
ufw status
```
В выходе получаем данные об открытых портах и о приложениях которые добавлены в ufw.
Следующая команда позволяет вывести список приложений, которые работают в настоящее время непрерывно с ufw
```
ufw app list
```
```
#Выход
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
```
Чтобы удостовериться, при подключении не возникнут проблемы, разрешим подключение по OpenSSH, выполнив следующую команду:
```
ufw allow OpenSSH
```
Включим брандмауэр и соглашаемся:
```
ufw enable
```
Проверим статус приложения и SSH-соединения всё ещё актуален:
```
ufw status
```
```
#Выход
Status: active
To Action From
__ ________ _________
OpenSSH ALLOW Anywhere
```
Теперь ufw блокирует все внешние подключения кроме OpenSSH.
Этап 5 – Разрешение на подключение удалённо к пользователю
Открываем командную строку и вводим команду:
```bash
ssh test_server@ip_address
```
Необходимо ввести пароль при создании учётной записи. Выполним команду используя sudo (см. рисунок 1), например:
```bash
sudo apt install neovim
```
Рисунок 1 - Установка текстового редактора neovim
После создания пользователя, командный интерпретатор стандартно используется shell. При необходимости изменения на bash, можно выполнить команду:
```
sudo chsh -s /bin/bash test_server
```
Следует заново авторизоваться от имени пользователя test_user и проверить командный интерпретатор:
```
echo $0
#Выход -bash
```
## При подключении по SSH-ключу к root
В каталоге root пользователя хранится каталог .ssh, в каталоге файл authorized_keys отвечающий за ключи SSH, следует скопировать и вставить файл в каталоге пользователя /home/test_server/.ssh/.
Удобнее воспользоваться rsync с целью изменения путь каталога, владельца файла сохранив разрешения:
```bash
rsync --archive --chown=test_server:test_server ~/.ssh /home/test_server
```
Выполним подключение:
```bash
ssh test_server@ip_addres
```
Подключение будет успешным, остаётся только работать в системе для своей пользы!
## Выводы
- Ufw – помощник для безопасных подключений к серверу;
- SSH-ключ не допускает подключение к серверу без уникального ключа;
- Пользователь с правами sudo, уменьшает риск проявления ошибок в работе сервера, по сравнению команды выполняемые от имени root.
https://serverspace.uz/support/help/konfigurirovanie-obratnogo-proksi-na-ubuntu-server-22-04-s-pomoshhyu-nginx.mdВ инструкции рассмотрены установка и настройка Gunicorn и Nginx. Настройка обратного прокси. Добавление Nginx в правило ufw.
## Введение
Обратный прокси-сервер – эффективный метод для доступа сервера приложений к интернету. Node.js или Flask обеспечивает доступ к приложению в локальной сети с помощью TCP. С целью получению доступа к приложению удалённо, необходимо развернуть обратный прокси-сервер. Сперва клиент запрашивает доступ к приложению и получает контент из сервера без необходимых настроек, согласно с требованием клиента. В этом руководстве вы сможете с легкостью настроить Nginx, переадресуете нужные запросы клиента. Отсутствует сервер с целью тестирования приложений? Не проблема. Рассмотрим настройку тестового приложения на Gunicorn WSGI-сервере.
## Подготовка к установке
Необходимо настроить Ubuntu Server 22.04 в соответствии с [руководством из нашего сайта](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
Адрес сервера в этом руководстве будет называться ip_address. К примеру, http://127.0.0.1:8000 стандартный адрес для библиотеки Gunicorn. В случае отсутствия настроенного сервера приложений для тестов, можно будет развернуть Gunicorn, который предоставляет сервер.
При помощи Nginx, можно настроить доменное имя, при обращении по имени домена, web-браузер подключает по нужному адресу.
## Этап 1 – Скачивание и установка Nginx
Первым делом обновим индексы пакетов программного обеспечения и установим пакет nginx:
```bash
apt update
apt install nginx
```
Выбираем "y" и установим пакет. Во время установки могут возникнуть ошибки связанные с "E: Sub-process /usr/bin/dpkg returned an error code (1)".
Открываем файл и закомментируем строку связанную с IPv6, сохраняем внесённые изменения и выходим из файла.:
```
nano /etc/nginx/sites-available/default
```
Выполним команду, чтобы корректно сконфигурировать установочный пакет:
```
dpkg --configure -a
```
Проверим работоспособность утилиты выполнив команду:
```bash
service nginx status
```
Установим ufw:
```bash
apt install ufw
```
```
ufw enable
```
Разрешим правило подключения Nginx с помощью ufw:
```
ufw allow 'Nginx HTTP'
```
```
ufw status
```
В следующем этапе настроим конфигурацию серверной части и протестируем конфигурацию.
## Этап 2 – Конфигурирование серверной части
В каталоге /etc/nginx/sites-available создадим файл с названием нашего домена:
```
nano /etc/nginx/sites-available/test_domain.ru;
```
Затем добавим кусок кода в файл и замените test_domain.ru и ip_addres_app на свой адрес. Если нет сервера, чтобы тестировать приложения, то замените на http://127.0.0.1:8000 – этот адрес является стандартным адресом Gunicorn. Которую мы рассмотрим на третьем этапе.
```css
server {
listen 80;
listen [::]:80; #при возникновении ошибки во время проверки nginx -t, закомментировать строку
server_name test_domain.ru www.test_domain.ru;
location / {
proxy_pass ip_addres_app;
include proxy_params;
}
}
```
Конфигурация начинается со стандартного прослушивания порта 80 и будет отправлять ответ на запросы test_domain.ru. Обратный прокси конфигурируется при помощи файла proxy_params в каталоге **/etc/nginx/proxy_params**.
HTTP-запросы состоят из заголовков, содержащий информацию об IP-адресе и о файлах cookie. В файле proxy_params заранее прописаны рекомендуемы параметры:
```
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
```
**http_host** – содержит начальный хост, запрошенный клиентом, который в свою очередь является доменом веб-сайта и портом;
**remote_addr** – заголовок всегда содержит один IP-адрес, принадлежащий удалённому хосту;
**proxy_add_x_forwarded_for** – содержит IP-адрес хоста, отправивший запрос. Также есть возможность сохранять список IP-адресов. Первый считается исходный IP-адрес хоста, далее идёт список всех IP-адресов обратных прокси-серверов, через которые прошёл запрос.
**scheme** – строка хранящая протокол, который используется исходным хостом с целью подключения. Создадим символическую ссылку на файл test_domain.ru:
```
ln -s /etc/nginx/sites-available/test_domain.ru /etc/nginx/sites-enabled/
```
Протестируем nginx с ключом -t:
```
nginx -t
```
Перезапустим службу:
```bash
service nginx restart
```
На данный момент Nginx настроен с обратным прокси. Следующим этапом будет установка и настройка сервер тестирования приложений.
## Этап 3 – Тестирование обратного прокси при помощи Gunicorn
После запуска web-сервера Nginx, можно проверить на работоспособность с помощью web-браузера, в адресной строке указав название домена.
Скачаем и установим пакет Gunicorn, который является сервером Python WSGI и работает непрерывно с обратным прокси Nginx.
```bash
apt install gunicorn -y
```
Напишем функцию, которая будет возвращать "New WSGI server". Создадим файл:
```
nano wsgi.py
```
Вставим кусок кода:
```python
def wsgi(environ, start_response):
start_response("200 OK", [])
return iter([b"Welcome, to new wsgi server"])
```
Запустим Gunicorn сервер, укажем название файла без расширения и название функции:
```
gunicorn --workers=2 wsgi:wsgi
```
```
#Выход
[2022-11-10 18:47:16 +0000] [2633] [INFO] Starting gunicorn 20.1.0
[2022-11-10 18:47:16 +0000] [2633] [INFO] Listening at: http://127.0.0.1:8000 (2633)
[2022-11-10 18:47:16 +0000] [2633] [INFO] Using worker: sync
[2022-11-10 18:47:16 +0000] [2634] [INFO] Booting worker with pid: 2634
[2022-11-10 18:47:16 +0000] [2635] [INFO] Booting worker with pid: 2635
```
Откроем браузер с удаленного хоста и введём адрес/домен нашего сервера. Мы должны получить такое сообщение:
## Выводы
С помощью этого руководство вы научились:
- Как установить Nginx и Gunicorn;
- Добавить правило Nginx HTTP;
- Настраивать серверную часть для тестирования приложения;
- Создавать символической ссылки;
- Запуск сервера для тестирования приложения.
https://serverspace.uz/support/help/ustanovka-postgresql-na-centos-7.mdРассказываем, как установить самую последнюю версию СУБД PostgreSQL на Centos. От скачивания дистрибутива до работы с тестовой базой данных
## Что такое PostgreSQL
PostgreSQL - система управления реляционными базами данных, "в фундаменте" которой лежит язык запросов SQL. Соблюдение общепринятых стандартов и возможность создавать высокопроизводительные системы — причина популярности PostgreSQL сегодня.
## Перед установкой
Для установки PostgreSQL у вас должны быть:
- Сервер с минимум 1 ядром ЦП, 1 ГБ оперативной памяти и 10 ГБ дискового пространства. Реальные требования могут немного отличаться и зависят от потребностей и оптимизации вашего приложения;
- Актуальная операционная система (Centos 7 в качестве примера в этой статье);
- Возможность авторизоваться от имени административной учетной записи.
## Процесс настройки
Чтобы установить PostgreSQL на свой сервер, выполните следующие шаги:
Обновите текущее системное программное обеспечение:
```bash
yum -y update
```
Перезагрузите сервер, чтобы гарантированно использовать обновленные программные пакеты;
Добавьте исключение в секцию "base" в конфигурационный файл _/etc/yum.repos.d/CentOS-Base.repo_, иначе, наиболее вероятно, будет установлена устаревшая версия PostgreSQL:
Добавьте в систему репозиторий PostgreSQL и уточните последнюю версию:
```bash
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm; yum list -y postgre*-server*
```
Как показано на предыдущем скриншоте, последняя версия PostgreSQL — 15. Давайте установим ее:
```bash
yum -y install postgresql15-server
```
**ПРИМЕЧАНИЕ:** Если в процессе установки возникнет ошибка невозможности разрешения зависимостей, сначала установите репозиторий _epel_, а затем снова попытайтесь установить PostgreSQL. Команда установки репозитория:
```bash
yum -y install epel-release
```
Инициализируйте новый кластер баз данных:
```
/usr/pgsql-15/bin/postgresql-15-setup initdb
```
Активируйте запуск сервиса при загрузке системы и следом запустите службу:
```bash
systemctl enable postgresql-15; service postgresql-15 start
```
Проверьте ее статус:
```bash
service postgresql status
```
## Базовые операции с данными
Для создания базы данных необходимо использовать встроенную учетную запись администратора:
```xml
su postgres
psql postgres
```
Создайте роль пользователя и тестовую базу данных:
```sql
CREATE ROLE LOGIN PASSWORD '';
CREATE DATABASE WITH OWNER = ;
```
Авторизуйтесь в PostgreSQL как только что созданный пользователь:
```bash
psql -h -d -U -p
```
Теперь попробуйте создать таблицу в этой новой базе данных:
```sql
CREATE TABLE testtable (
item_num integer NOT NULL,
item_name character varying(50) NOT NULL,
item_detail character varying(50) DEFAULT NULL,
PRIMARY KEY (item_num)
);
```
Немного расшифрую - мы создали таблицу с тремя столбцами: item_num (численные значения), item_name (текстовое поле) и item_detail (текст, может быть пустым).
Добавление данных в таблицу:
```sql
INSERT INTO testtable (item_num, item_name, item_detail)
VALUES('1','Корабль','Моделька военного корабля');
INSERT INTO testtable (item_num, item_name)
VALUES('2','Кукла');
INSERT INTO testtable (item_num, item_name, item_detail)
VALUES('3','Кухня','Игрушечная кухня');
```
Проверим результат:
```sql
SELECT from
```
## Вместо заключения
В этом материале я показал, как установить PostgreSQL на Centos 7 и работать с данными "внутри" базы данных.
https://serverspace.uz/support/help/kak-sbrosit-root-parol-dlya-mysql-ili-mariadb-v-ubuntu-20-04.mdИнструкция по сбросу и изменению root пароля для пользователя БД MySQL или MariaDB на сервере под управлением ОС Ubuntu
## Что такое MySQL и MariaDB
MySQL и MariaDB — очень популярные системы управления базами данных, основанные на языке запросов SQL. Сегодня их используют для веб-сайтов, проектов по машинному обучению, в различных средах разработки и так далее.
## Зачем может понадобиться сбрасывать пароль
Причины очевидны — текущий пароль может быть автоматически изменен после обновления пакетов службы базы данных на новую версию, пароль можно случайно забыть, может быть утеряно хранилище личных паролей и т.д.
## Как сбросить пароль root для сервисов БД MySQL и MariaDB
Чтобы установить новый пароль для пользователя root сервиса управления базами данных **(ВНИМАНИЕ **- это НЕ системный пользователь root!), выполните следующие действия:
Войдите на свой VPS сервер под управлением Ubuntu как привилегированный пользователь;
Остановите службу;
```bash
service mysql stop # для MySQL
service mariadb stop # для MariaDB
```
Временно разрешите аутентификацию без пароля и запустите службу:
```bash
cat > /etc/mysql/my.cnf
skip-grant-tables
EOF
service mysql start
```
Авторизуйтесь в системе управления базами данных и установите новый root-пароль:
```bash
mysql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
exit
```
Удалите директиву _skip-grant-tables_ из "системного" конфигурационного файла и перезапустите службу:
```bash
service mysql stop; sed -i -e '$d' /etc/mysql/my.cnf && sed -i -e '$d' /etc/mysql/my.cnf; service mysql start
```
**Обратите внимание **- я не случайно запустил команду _sed -i -e '$d'_ дважды, а потому, что из конфигурационного файла нужно удалить две последние строки.
## Проверка и настройка для более удобного использования в дальнейшем
Чтобы проверить все ли у вас получилось, давайте попробуем авторизоваться в сервисе:
```bash
mysql -uroot -p
```
Как видите, авторизация прошла успешно. Чтобы сделать дальнейшее использование сервиса более комфортным, можно сохранить новый пароль в специальный файл в вашем домашнем каталоге. Это позволит вам в дальнейшем не вводить пароль для входа в сервис:
```
cat ~/.my.cnf
user = root
password =
EOF
```
## Заключение
Теперь вы знаете, как сбросить root-пароль для сервисов MySQL или MariaDB, знаете зачем может понадобиться эта операция и как сделать дальнейшее использование данного приложения более комфортным.
https://serverspace.uz/support/help/how-to-xrdp-ubuntu-20.04.mdУстановка и настройка xRDP на сервер под управлением Ubuntu для организации удаленного доступа одного или нескольких пользователей к системе
## Введение
Столкнулись с необходимостью в удаленном использовании Linux с графической оболочкой? Тогда это публикация для вас, ведь мы разберем установку xRDP на сервер VPS c операционной системой Linux Ubuntu 20.04.
Xrdp был разработан еще в 2004 году, и продолжает обновляться. Можно не волноваться о безопасности, ведь разработчики предоставляют исходный код программы.
## Начало работы
Использовать Xrdp можно на любой версии Ubuntu, будь это версия с графической оболочкой, или без нее.
Проверим какая версия операционной системы установлена.
В моем примере я буду использовать версию без графической оболочки, если вы используете версию с графикой, то можете пропустить этот пункт и следовать инструкции далее.
## Установка графической оболочки
Перед началом работы с сервером, требуется обновить систему:
```bash
sudo apt-get update && apt-get upgrade
```
Установка графической оболочки.
```bash
apt-get install xubuntu-desktop
```
Придется подождать какое то время, пока система установит все необходимое.
## Установка xrdp
Для установки xrdp на ваш сервер выполните команду.
```bash
apt-get install xrdp
```
Необходимо установить оконный менеджер рабочего стола xfce.
```bash
apt-get install xfce4
```
## Настройка xrdp
Добавляем в автозагрузку менеджер окон рабочего стола xfce, исправив конфигурационный файл "/etc/xrdp/startwm.sh" любым текстовым редактором на ваш выбор.
Перезапустите службу xrdp для принятия параметров.
## Добавление и настройка пользователя
После настройки Xfce требуется добавить пользователя для подключения по RDP протоколу.
```
adduser *nameofuser*
```
Для возможности подключения, необходимо создать файл конфигурации xfce в локальной папке пользователя, используйте любой текстовый редактор на ваш выбор.
```
nano /home/*youruser/.xsession
```
В конфиге пропишите данный параметр.
```
xfce4-session
```
Этот параметр отвечает за разрешение удаленного подключения выбранного пользователя.
## Проверка
В моем примере я использовал VPS сервер с подключением ssh ключей, поэтому мне требуется сменить пароль от пользователя root. Если вы знаете пароль от суперпользователя, то вы можете пропустить этот пункт.
```
sudo passwd root
```
Запускаем утилиту для удаленного подключения, прописав команду в окне выполнить.
```
mstsc
```
В появившимся окне вводим ip-адрес нашего сервера.
Узнать ip-адрес вашего сервера можно благодаря команде.
```
ip addr show
```
_Примечание: При подключении к серверу обратите внимание на вашу раскладку клавиатуры, потому что после подключения к серверу привяжется текущая раскладка._
Для авторизации используем ранее созданного пользователя.
_**Важно**_: Если вы подключаетесь по xRDP, то вам необходимо указать пароль и root-пользователя.Если же вы подключаетесь по SSH, то вам понадобится ключ или пароль, которые настраивались во время создания сервера в облаке.
После загрузки системы, требуется ввести пароль от суперпользователя.
## Вывод
Xrdp позволяет не только удаленное подключение одному пользователю по RDP протоколу, а сразу нескольким, предварительно их создав.
С каждым подключенным пользователем к серверу, растет и использование оперативной памяти.
В этой публикации мы установили и настроили службу xrdp на сервере Ubuntu 20.04, произвели удаленное подключение к нему используя протокол RDP.
https://serverspace.uz/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04.mdИнструкция по созданию виртуальной среды Python. Обновление пакетов программного обеспечения и установка системы управления пакетами pip3
## Введение
Python – это интерпретируемый язык программирования. Автором является Гвидо ван Россум, разработчик из Голландии. Python является многофункциональным языком и новички быстро привыкают к синтаксису языка и программируют в удобном текстовом редакторе либо используют интегрированную среду разработки. При помощи языка Python можно получить информацию об ошибках в написанном коде. С этим руководством у вас получится установить последнюю версию Python на Ubuntu Server 22.04.
## Подготовка к установке
Прежде чем устанавливать пакеты, необходимо воспользоваться [нашим руководством](https://serverspace.uz/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/) для работы в Ubuntu Server 22.04 в роли обычного пользователя.
## Скачивание Python 3
Обновим индекс пакетов и запустим команду с целью обновления пакетов на актуальные релизы:
```bash
sudo apt update && sudo apt upgrade -y
```
Ключ "-y" означает обновить принудительно.
Проверка версии Python происходит следующим образом:
```
python3 --version
```
```bash
#Результат
Python 3.10.6
```
Следующим шагом установим python3-pip, с целью управления пакетами Python. Воспользуемся встроенной командой:
```bash
sudo apt install python3-pip -y
```
Чтобы установить библиотеку matplotlib, необходимо выполнить следующую команду и результат приведён на рисунке 1:
```
pip3 install matplotlib
```
Рисунок 1 – Установка библиотеки matplotlib
Чтобы удостовериться о надёжности программной среды, необходимо установить несколько пакетов
```bash
sudo apt install build-essential libssl-dev libffi-dev python3-dev
```
Первый этап выполнен. Мы обновили индекс пакетов и обновили устаревшие пакеты, установлена актуальная версия системы управлению пакетами pip3.
# Настройка виртуальной среды
Виртуальная среда разработки на рабочем сервере считается отличным решением, по сравнению с выполнением в основной среде разработки. В виртуальной среде можно редактировать и не повреждать файлы основной среды разработки. Мы можем создавать столько виртуальных сред, сколько нам требуется. Каждая виртуальная среда развёрнута в разных директориях нашего сервера. В директориях находятся файлы для инициализации виртуальной среды.
Виртуальная среда развёртывается с помощью установленного пакета venv (virtual environment):
```bash
sudo apt install python3-venv -y
```
Затем создадим директорию с названием test:
```
mkdir test
cd test
```
Перейдём в первую директорию и используем следующую команду, чтобы создать виртуальную среду с названием test_env:
```
python3 -m venv test_env
```
Результат приведён на рисунке 2.
Рисунок 2 - Создание виртуальной среды
Созданные файлы конфигурируют виртуальную среду с целью отдельной работы от файлов нашего хоста. Активация среды происходит следующим образом и для отключения среды необходимо выполнить команду deactivate:
```
source test/test_env/bin/activate
```
Чтобы отключить виртуальную среду необходимо выполнить команду:
```
deactivate
```
Результаты приведены на рисунке 3.
Рисунок 3 – Активация и деактивация виртуальной среды
На рисунке можно заметить, что после запуска появляется надпись перед именем пользователя (test_env) обозначающее, что все команды выполняются в виртуальной среде, следующим шагом является рассмотрение запуск обычного кода написанный на языке программирования Python.
## Тестирование виртуальной среды
После активации необходимо создать файл с расширением .py:
```
vim thanks.py
```
И вставим следующий кусок кода:
```
print("Dear User,\n"
"Thank you for using tutorials from \n"
"Serverspace Team")
```
Для запуска программы выполним следующие действия:
```
python3 thanks.py
```
И получим следующий результат, как показано на рисунке 4.
Рисунок 4 – Запуск кода в виртуальной среде
На этом этап завершается и с целью завершения процесса работы в виртуальной среде выполним команду "deactivate" и вернёмся в обычную среду.
## Выводы
В этой инструкции:
- Рассмотрели варианты обновления пакетов программного обеспечения и обновление индекса пакетов;
- Установили библиотеки языка программирования Python с помощью системы управления пакетами pip3;
- Рассмотрели активацию и деактивацию виртуальной среды;
- Протестировали работу в виртуальной среде.
https://serverspace.uz/support/help/eksport-i-import-baz-dannyh-mysql.mdВ этой статье объясняется, зачем могут понадобиться операции экспорта и импорта баз данных и описываются способы, как выполнить эти операции
## Для чего может быть нужен экспорт и импорт баз данных
Вам может понадобиться экспортировать или импортировать базу данных для резервного копирования, при переносе проекта на другой сервер, операциях аварийного восстановления и т.д.
## Методы сохранения баз данных
Многие современные панели управления сервером предоставляют возможности по операциям экспорта/импорта баз данных. Например, в [aapanel](https://serverspace.uz/support/help/kak-ustanovit-na-server-pod-ubuntu-20-04-aapanel-i-bystro-razvernut-sajt-na-wordpress/) для сохранения дампа нужно кликнуть по ссылке **Databases**, чем создать дамп базы данных чтобы потом скачать ее;
Если на вашем сервере установлен PHPMyadmin, для экспорта БД можно использовать его. Войдите в PHPMyadmin как пользователь, имеющий полномочия на чтение, запись и изменения в базе данных, щелкните по имени БД, затем по вкладке **Export **и, финально, по кнопке Go;
Однако даже если на сервере не установлено вообще никаких специализированных инструментов для облегчения управления базами данных, остается возможность экспорта базу данных через SSH-консоль. Авторизуйтесь на сервере, затем дайте команду:
```
mysqldump _имя_БД_ > /путь/до/файла/dump.sql
```
## Как импортировать дамп в базу данных
Чтобы импортировать базу данных через панель управления aapanel, нужно щелкнуть по ссылке **Databases**, затем **Import**, **Upload from local**, выберите файл с дампом на своем компьютере и нажмите **Import**;
Также есть возможность импортировать дамп через PHPMyadmin. Войдите в него, щелкните по имени базы данных, затем кликните по ___, выберите файл дампа и нажмите кнопку **Go**:
И, конечно же, вы можно импортировать дамп БД через SSH. Достаточно дать команду:
```bash
mysql -u_имя_пользователя_ -p _имя_базы_ < /путь/до/dump.sql
```
Затем введите ваш пароль.
## Итоги
В этой статье я объяснил, зачем может понадобиться сохранить или восстановить копию базы данных и описал, как это сделать несколькими способами.
https://serverspace.uz/support/help/ustanovka-gnome-na-ubuntu-22-04.mdУстановка GNOME на Ubuntu 22.04 и подключение по xRDP и VNC к серверу с помощью удаленного рабочего стола и MobaXterm
## Введение
GNOME является свободно распространяемой средой рабочего стола для UNIX-подобных дистрибутивов. Рассмотрим установку на чистый сервер vStack Cloud. Выберем минимальные требования.
## Подготовка к установке
Для установки среды рабочего стола выберем Ubuntu 22.04. Первоначальная настройка системы как в [нашей инструкции](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
[MobaXterm](https://mobaxterm.mobatek.net/download.html) – утилита для различного вида подключения к серверу, также рассматривает подключение с помощью VNC.
## Обновление пакетов
Обновим индекс пакетов и пакетов программного обеспечения с помощью следующей команды:
```bash
apt update && apt upgrade -y
```
## Установка GNOME на Ubuntu
Для пакета ubuntu-gnome-desktop минимум требуется 2.5 GB свободного пространства в системе. Установка пакета происходит следующим образом:
```bash
apt install ubuntu-gnome-desktop -y
```
Начинается процесс установки, и в зависимости от скорости пакет скачивается.
После установки рабочей среды установим xRDP в соответствии с нашим руководством по [установке xRDP](https://serverspace.ru/support/help/how-to-configure-xrdp-server-on-ubuntu-18-04/).
Если вход с помощью обычного пользователя не осуществляется, рекомендуется задать пароль для root подключившись через SSH и перезапустить службу xRDP.
Настроим рабочий стол следующим образом, начнём установку как на рисунке 1.
Рисунок 1 – Начало установки рабочего стола
Если не получается подключиться по xRDP. Необходимо задать пароль root пользователю, авторизовавшись через root пользователя и использовать команду:
```
passwd
```
Выберем раскладку клавиатуры как на рисунке 2.
Рисунок 2 – Выбор раскладки клавиатуры
Отключим соглашение с передачей данных приложениям требующих геолокацию, как показано на рисунке 3.
Рисунок 3 – Отказ о передаче данных о геолокации
Результат о настройке рабочей среды, как показано на рисунке 4, результат успешный.
Рисунок 4 – Успешный результат
Для проверки информации о системе проверим с помощью команды:
```
cat /etc/os-release
```
В соответствии с рисунком 5.
Рисунок 5 – Информация о системе
Попробуем установить веб-браузер с помощью команды:
```bash
apt install firefox
```
После установки запустим браузер с помощью командной строки:
```
firefox
```
Результат приведён на рисунке 6.
Рисунок 6 – Запуск браузера
Для настройки VNC следует воспользоваться [нашим руководством](https://serverspace.ru/support/help/ustanovka-vnc-i-dostyp-k-nemy/).
При входе через VNC через MobaXterm добавим сессию с нашим IP адресом и указываем порт в зависимости присвоения после запуска vncserver. Нажимаем "ОК" и входим в систему, как показано на рисунке 7.
Рисунок 7 – Настройка сессии VNC
Результат подключения с помощью VNC показан на рисунке 8.
Рисунок 8 – Подключения через VNC
## Выводы
В данной инструкции рассмотрели:
- Установку рабочего стола GNOME на Ubuntu 22.04.
- Подключение с помощью xRDP и VNC используя встроенную утилиту Windows "Подключение к удалённому рабочему столу" и утилиту MobaXterm.
В результате подключение к xRDP является наиболее эффективным. Например, в xRDP есть возможность запустить командную строку, а с помощью подключения VNC такой возможности не имеется.
https://serverspace.uz/support/help/kak-sozdat-proekt-ispolzuya-django-s-postgres-nginx-i-gunicorn-na-ubuntu-22-04.mdКак создать проект используя Django с Postgres, Nginx и Gunicorn на Ubuntu 22.04
## Введение
## Требования к серверу
https://serverspace.uz/support/help/ustanovka-i-nastrojka-nginx.mdПошаговая инструкция, как установить и настроить Nginx на сервере. Конфигурирование web-страницы на VPS сервере с Debian/Ubuntu/CentOS
## Введение
Nginx – один из популярных web-серверов для размещения крупных сайтов с высоким трафиком пользователей в Интернете. Также, считается одним из удобных утилит, как для web-сервера или для конфигурирования обратного прокси.
В этой инструкции рассмотрим такие возможности, как:
- Установку Nginx на ранее развернутый сервер;
- Настройку брандмауэра;
- Настройку серверного блока для размещения более одного домена на одном сервере.
## Подготовка к работе
Прежде чем приступить к работе, необходимо развернуть сервер на базе Debian/Ubuntu/CentOS.
Минимально настроить систему с новым пользователем и правами на выполнение команд с правами sudo, [согласно инструкции](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
После удостоверения, что настройка успешно выполнена, приступим к установке Nginx на нашем сервере.
## Установка Nginx
Nginx является стандартным пакетом в репозиториях большинства операционных систем. Если сервер был недавно настроен, то обновим индексы пакетов программного обеспечения и установим пакет Nginx:
```bash
apt update
apt install nginx -y
```
С ключом -y соглашаемся на автоматическую на установку пакета.
## Настройка брандмауэра
После установки пакета Nginx, необходимо настроить брандмауэр для получения доступа к Nginx извне.
Посмотрим доступные утилиты, которые добавляется в список правил брандмауэра:
```
ufw app list
```
В списке нужно найти следующие строки, которых мы включим в правила дальнейшем:
```
Nginx Full – отвечает за порты 80 (HTTP – обычный и трафик не шифруется) и 443 (HTTPS – шифрует трафик с помощью протоколов TLS/SSL)
Nginx HTTP – обычный и трафик не шифруется
Nginx HTTPS – шифрование трафика с помощью TLS/SSL
OpenSSH – удаленное подключение к серверу через порт 22
```
Для начала включим доступ к порту 80:
```
ufw allow 'Nginx HTTP'
```
Проверить статус добавления приложения в брандмауэр можно проверить с помощью:
```
ufw status
```
В результате правил можем увидеть строку с Nginx HTTP – Allow – Anywhere.
## Проверка Web-сервера
После установки пакета система автоматически запускает утилиту, необходимо добавить в автозагрузку для запуска Nginx, чтобы при перезагрузке системы, наш web-сервер автоматически запускалась.
Статус утилиты можно проверить с помощью команды:
```bash
service nginx status
```
По результатам можем убедится об успешном запуске web-сервера. Затем необходимо проверить на своей основной системе доступность Nginx. Откроем браузере и в строке поиска введём адрес сервера. Чтобы узнать внешний адрес сервера выполним следующую команду:
```bash
curl 2ip.ru
```
В результате получим адрес которую вводить в адресной строке.
После перехода на страницу получим следующий результат.
Рисунок 1 – Страница приветствия Nginx
На данном этапе мы успешно установили и сконфигурировали Nginx. Также настроили доступ к Web-серверу из внешнего хоста.
## Управление процессом Nginx
Управление процессом Nginx выполняется с помощью несколько команд начинающихся с systemctl, знак # означает комментарий и не обрабатывается командным интерпретатором:
```
start nginx # запуск службы
reload nginx # при случае изменения конфигурации и выполняет перезагрузку без разрыва соединения
restart nginx # останавливает и запускает службу
stop nginx # останавливает службу
disable nginx # отключает от автозагрузки системы
enable nginx # добавляет в автозагрузку системы
```
Мы рассмотрели команды для удобной работы процессом Nginx.
## Конфигурирование серверного блока (Рекомендуется)
Для использования Nginx воспользуемся блоками серверной части web-сервера. Также можно воспользоваться инкапсуляцией деталей, чтобы сконфигурировать и разместить больше одного сайта в нашем сервере.
Рассмотрим настройку домена serverspace.tm, вам необходимо приобрести домен для рассмотрения тестовой работы Nginx.
В Nginx включен один серверный блок, который обрабатывает конфигурацию из директории /var/www/html. Данный вариант хорошо подходит для работы одного сайта, но и будет препятствовать работе web-сервера если размещать несколько сайтов в одном сервер. Лучшим выходом из этой ситуации разделить дополнительный web-сайт от основного каталога.
Создадим новую директорию с ключом "-p" в директории /var/www/:
```
mkdir -p /var/www/serverspace.tm/html
```
Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в каталоге пользователю Nginx ( www-data ):
```
sudo chown -R www-data: /var/www/serverspace.tm
```
Затем в директории /var/www/serverspace.tm/html создадим файл с названием index.html, внесём изменения с помощью любого текстового редактора и вставьте в файл следующий кусок кода.
```html
Добро пожаловать в ServerSpace.tm
# Успешно! Ваш домен ServerSpace.tm работает!
```
Сохраним файл и выполним выход.
Выполним выход с дальнейшим сохранением файла.
Чтобы данный файл обслуживался со стороны Nginx, следует создать конфигурационный файл для обработки нужной директории. Вместо того, чтобы изменить конфигурационный файл default, создадим для нашего домена новый конфигурационный файл в директории /etc/nginx/sites-available/:
```
vim /etc/nginx/sites-available/serverspace.tm
```
Добавим следующие конфигурации, чтобы контент из index.html обрабатывался:
```css
server {
listen 80;
listen [::]:80;
root /var/www/serverspace.tm/html;
index index.html index.htm index.nginx-debian.html;
server_name serverspace.tm www.serverspace.tm;
location / {
try_files $uri $uri/ =404;
}
}
```
Далее создадим символическую ссылку файла в директории /etc/nginx/sites-enabled/ для обработки Nginx при запуске web-сервера.
```
ln -s /etc/nginx/sites-available/serverspace.tm /etc/nginx/sites-enabled
```
Символическая ссылка напоминает ярлык, в основной папке sites-available можно вносить изменения в конфигурационном файле и изменения коснутся файла из директории sites-enabled.
Во избежание проблемы с хэш-памятью, которая возникает из-за дополнительных имен серверов, раскомментировать строку server_names_hash_buckets_size 64 в файле /etc/nginx/nginx.conf:
```
vim /etc/nginx/nginx.conf
```
```
http {
...
server_names_hash_buckets_size 64;
...
}
...
```
Сохраним файл и выполним выход.
Проверим правильность конфигурации с помощью:
```
nginx -t
```
В случае результата без ошибки перезагружаем процесс Nginx и вводим в браузере:
```
http://serverspace.tm
```
Получим следующий результат.
Рисунок 2 – Результат конфигурации Nginx
## Выводы
В данной инструкции мы рассмотрели:
- Установку пакета Nginx;
- Настройку брандмауэра с помощью утилиты ufw;
- Тестирование нашего домена с web-сервером Nginx.
https://serverspace.uz/support/help/how-to-drone-ubuntu-20.04.mdНе знаете как установить Drone CI на сервер с Linux Ubuntu 20.04? Тогда эта публикация для вас, в ней мы разобрали установку и запуск Drone
## Введение
CI/CD — реагирование на определенные запросы или триггеры при работе с контейнерами, или любым другом проектом, т.е. выполняет роль уведомления об изменениях в проекте.
Упрощение работы с нотификацией, хранением результатов, а так же публикацией различных проектов.
Так же у Drone CI есть бесплатный план SaaS (Software as a Service), который доступен для проектов с открытым исходным кодом.
Интегрируется с Github, Bitbucket, Gitea. Конфигурация настраивается благодаря yaml (+ starlark и jsconnet).
Он не требует много ресурсов для его работоспособности, что позволяет сэкономить на оборудовании и начать работать с Dorne даже на слабых устройствах.
Для его работы необходимо предварительно установить Docker, в нашем случае мы будем использовать предустановленную версию Docker.
**Чтобы установить Docker, воспользуйтесь нашей [инструкцией](https://serverspace.uz/support/help/ustanovka-docker-na-ubuntu-20-04/) или [создайте сервер](https://serverspace.uz/services/cloud-marketplace/docker/) в Serverspace с уже установленным приложением.**
## Необходимые зависимости для Drone
- Аккаунт на сервисе GitHub;
- Для работоспособности Drone вам нужен собственный домен или открытый ip адрес;
- Так же на сервере должно быть 11 гигабайтов свободного места и 2 гигабайта оперативной памяти для работоспособности контейнеров.
## Предварительная настройка сервера
Переходим в настройки аккаунта [GitHub](https://github.com/settings/developers) и создаем в нем доступ для делегирования нашего сервера к GitHub.
Используя этот пример, создайте своё OAuth приложение, предварительно измените домен на ваш собственный поддомен "drone.****".
Если у вас нету собственного домена, тогда вы можете использовать ip адрес вашего сервера заменив домен "http://yourip" во вкладке homepage URL, а так же заменив "Authorization callback URL" на "http://yourip/login".
Зайдите в созданное приложение, скопируйте свой client id, а так же создайте ключ авторизации, эти данные потребуются при настройке сервера.
## Настройка сервера
Создайте RPC ключ сервера.
```
openssl rand -hex 16
```
Создайте и настройте конфиг Drone.
```
nano /etc/drone
```
```
DRONE_SERVER_HOST=drone.steammmmm.space
#Host of your subdomain
DRONE_SERVER_PROTO=http
#what type of connection you will use
DRONE_GITHUB_CLIENT_ID=id_from_git_OAuth
#Client id from github
DRONE_GITHUB_CLIENT_SECRET=secret_from_github
#Secret from github
DRONE_RPC_SECRET=secret_from_server
#rpc password that we created on server
DRONE_USER_CREATE=username:barikasss,admin:true
#Username of your profile github
```
Это не весь список доступных настроек файла конфигурации, если у вас возникли вопросы то вы можете обратиться напрямую на страницу разработчика где размещена документация для файла конфигурации.
## Установка и запуск Drone
Используя команду ниже, вы получаете образ последней версии Drone.
```
docker pull drone/drone:1
```
Создайте базу данных для Drone.
```bash
docker volume create drone-base
```
Запустите Drone.
```bash
docker run --name=dronegit --detach --restart=always --env-file=/etc/drone --volume=drone-base --publish=80:80 --publish=443:443 drone/drone:1
```
##
## Проверка
Перейдите по адресу drone.yourdomain.***, вы увидите окно авторизации github.
После авторизации у вас откроется интерфейс drone.
## Вывод
На рынке CI и CD очень много продуктов которые позволяют использовать их на бесплатной основе, но у каждого есть свои ограничения для использования их в коммерческих целях.
Подводя итоги, в этой публикации мы разобрали установку Drone CI на операционную систему Linux Ubuntu 20.04
Drone CI это:
- бесплатный план SaaS, который доступен только для opensource проектов;
- цена SaaS доступна только enterprise;
- интеграция возможна с Github, Bitbucket, Gitea;
- конфигурация Yaml (+starlark, jsconnect);
- минималистичен;
- не требует много ресурсов для работы.
https://serverspace.uz/support/help/import-modulej-v-python-3.mdИмпорт модулей, изменение названий модулей в более короткие названия. Работа с функциями модулей. Выполнение в командной строке Python
## Введение
Python предоставляет различные функции. Рассмотрим несколько встроенных функций:
- print() – для вывода данных;
- abs() – для возвращения абсолютного значения числа;
- int() – для преобразования другого типа данных в целое число;
- len() – возвращает длину последовательности либо коллекции.
Модули необходимо использовать, по причине ограниченных функций. Мы подключаем внешние модули и тем самым получаем больше функций.
Модули в Python имеют расширение в конце файла в виде ".py". Можно ссылаться на функции, классы или переменные в других модулях, с помощью командной строки Python.
Когда мы импортируем модуль test, интерпретатор ищет встроенный модуль. Если не находит, то ищет файл test.py в директории, которую получает из переменной sys.path.
В этой инструкции будут рассмотрены проверка, установка, импорт и изменение длинных названий модулей с функциями. Работать будем на популярном среди клиентов сервере на базе ОС Ubuntu.
## Подготовка к импорту
Необходимо воспользоваться [нашей инструкцией](https://serverspace.uz/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04), чтобы заранее подготовиться перед началом работы. Необходимо обновить индекс пакетов и обновить пакеты программного обеспечения, которые требуются.
Важно! Выполняйте от имени пользователя с правами доступа на sudo. Если работаете на боевом сервере, чтобы не нанести вред своим данным в сервере.
## Проверка для установки модулей
После установки обновления Python, получаем доступ к ряду модулей. Модули установлены вместе с Python и стандартной библиотекой для минимизированных задач.
Чтобы протестировать Python в командной строке введите:
```
python3
```
Откроется командный интерпретатор и после ">>>" сможете выполнять разные функции.
Для проверки активируем виртуальную среду с помощью:
```
source /testing/testingv/bin/activate
python3
```
Перед именем появится префикс (testingv), как показано и войдём в командный интерпретатор Python, как показано на рисунке 1.
Рисунок 1 – Активация виртуальной среды и командный интерпретатор
Импортируем два модуля "math" и "matplotlib". Math – является встроенным модулем для математических вычислений и команда должна выполнится без ошибки. Matplotlib – библиотека для работы с 2D-графикой, результаты можем посмотреть на рисунке 2.
Рисунок 2 – Ошибка при импорте matplotlib
Выйдем из командного интерпретатора и с помощью pip3 (командный интерпретатор для установки библиотек), установим matplotlib.
```
exit() – выход из командного интерпретатору;
pip3 install matplotlib
```
Результат приведён на рисунке 3.
Рисунок 3 – Установка matplotlib
Заново попробуем заново импортировать модули и получаем успешный результат, как показано на рисунке 4.
```
import math
import matplotlib
```
Рисунок 4 – Успешный импорт модулей
Считаем первый шаг выполнен. Смогли установить модуль с использованием pip3 и успешно выполнили импорт.
## Импортирование модулей
Выполним выход из командного интерпретатора и создадим файл testing_random.py. Строка с импортированием модулей вставляем в самой верхней части кода или же под шебангом. Шебанг – это #!/usr/bin/env python3 - выполнить файл как программу на Python, используя среду для получения пути к файлу интерпретатора. Импортируем библиотеку random для генерации случайных чисел.
```
#!/usr/bin/env python3
import random
```
С импортированием модулей открывается доступ к его функциям. Перед выполнением функции для начала указывается название модуля, ставится точка и указываем название функции. Рассмотрим пример генерации случайных чисел 7 раз от 5 до 15, с использованием функции randint, как показано в следующих строках кода.
```
import random
print("Результат:")
for i in range(7):
print(random.randint(5, 15))
```
Запустим файл с помощью "python3 testing_random.py". При выходе получаем 7 столбцов с разными сгенерированными значениями. Например, в нашем случае это следующие данные:
```
Результат:
6
14
14
12
12
12
12
```
При этом обратите внимание, данные не должны быть ниже 5 и не выше 15. В случае использования других модулей, следует импортировать другие модули в начале кода.
```
import random
import math
```
Подредактируем код, при получении результата укажем 7 столбцов сгенерированных данных от 5 до 15, и добавим вывод число Пи.
```
import random
import math
print("Результат:")
for i in range(7):
print(random.randint(5,15))
print(math.pi)
```
При выполнении данного кода получим следующие данные:
```
Результат:
9
13
12
15
7
14
13
3.141592653589793
```
Также с помощью import есть возможность импортировать сразу несколько модулей.
## Использование from ... import
Оператор from полезен тем, что нам не обязательно указывать название модуля перед использованием функции. Данный процесс упрощает скорость написания кода. В начале указываем какую функцию импортируем из модуля и пишем код. Рассмотрим упрощенный вариант нашего предыдущего кода и результат показан на рисунке 5:
```
from math import pi
from random import randint
print("Результат")
for i in range(7):
print(randint(5,15))
print(pi)
```
Рисунок 5 – Одинаковый процесс выполнения кода
С уверенностью можно сказать, импортирование нескольких функций из модуля в начале кода экономит намного больше времени, чем указывать название модуля и затем указывать название функции в коде.
## Изменение названия модуля и функций
В Python вполне можно заменить название модуля на более короткое название с помощью "as" в начале кода. Данным случаем необходимо воспользоваться, если название модуля уже существует в коде. Также можно заменить модуль с длинным названием, которым мы пользуемся чаще. Пример рассмотрен в следующей строке кода:
```
import math as m
print(m.pi)
print(m.e)
```
Результат приведён на рисунке 6.
Рисунок 6 – Результат выполненного кода
Вывод чисел констант Пи и Экспонента.
Также с помощью "as" можно скоротать название matplotlib.pyplot, например на pyplt. Можно ознакомиться в [официальном руководстве](https://matplotlib.org/2.0.2/users/pyplot_tutorial.html) по использованию модуля matplotlib.
## Выводы
В инструкции рассмотрели такие возможности, как:
- Импорт модуля;
- Использование функции с использованием названия добавленного модуля;
- Импортирование функции из модуля;
- Использование функции без названия модуля;
- Изменение названия модуля.
https://serverspace.uz/support/help/kak-napisat-modul-v-python-3.mdВ инструкции рассмотрены варианты написания модуля, импортирование модуля, добавление модуля в sys.path и извлечение информации о системных путях
## Введение
Модули в Python – это файлы с расширением ".py", написанные коды на языке Python. На любой файл написанный в Python можно ссылаться как на модуль.
Несколько модулей доступны после установки языка Python. Некоторые модули приходится устанавливать вручную.
Установку модулей вручную мы рассматривали в нашем руководстве про [Импорт модулей в Python 3](https://serverspace.ru/support/help/import-modulej-v-python-3/).
С помощью этого руководство вы поймёте как:
- Написать модуль;
- Доступ к модулям из других директорий;
- Использование переменной среды;
- Модуль в переменной среде Python 3.
## Подготовка к работе
У вас должен быть настроен дистрибутив под управлением [Debian](https://serverspace.uz/services/vps-server/debian.md) / [Ubuntu](https://serverspace.uz/services/vps-server/ubuntu.md) / [CentOS](https://serverspace.uz/services/vps-server/centos/), настройка пользователя с правами sudo. Настроенная [виртуальная среда](https://serverspace.ru/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04) языка Python. Рекомендуем заранее подготовиться перед тем, как приступить к работе.
## Написание и импортирование модулей
Первым делом стоит проверить версию Python с помощью:
```
python3 --version
```
На текущий момент актуальная версия 3.10.6. Если у вас старая версия, то обновите индекс пакетов и пакетов программного обеспечения с помощью:
```bash
sudo apt update && apt upgrade -y
```
Запустим виртуальную среду и с помощью текстового редактора Vim создадим новый файл с названием testingFile.py и добавим следующие строчки кода в самом начале указав шебанг. Шебанг – с помощью #! указываем путь к интерпретатору Python, подробнее рассмотрено в нашей инструкции.
```
#!/usr/bin/env python
# Определение функции
def test():
print("This is test file")
```
Если запустим с помощью:
```
python3 testingFile.py
```
То получим пустой результат. Необходимо создать второй файл и назовём test2.py и откроем с помощью vim и импортируем testingFile.py в файл test2.py и вызовем функцию test.
```
vim test2.py
#!/usr/bin/env python3
#Импорт файла
import testingFile
#Вызов функции из файла testingFile
testingFile.test()
```
Получим следующий результат, как на рисунке 1.
Рисунок 1 – Вызов функции из импортированного модуля
Мы импортируем модуль без использования "from testingFile import test", нам необходимо вызывать функцию с помощью использованием названия модуля. Использование from import можно рассмотреть в нашей инструкции.
Рассмотрим использование переменных в нашем модуле, добавим строчку в самом низу:
```
#!/usr/bin/env python3
# Определение функции
def test():
print("This is test file")
#Присвоение значения переменной
name = "serverspace"
```
Далее в файле test2.py в конце добавим строку изменив наш код в следующий вид:
```
#!/usr/bin/env python3
#Импорт файла
import testingFile
#Вызов функции из файла testingFile
testingFile.test()
#Вызов функции печати с использованием переменной
print(testingFile.name)
```
Результат приведён на рисунке 2.
Рисунок 2 – Вызов переменной из модуля
Когда рассмотрели вызов функции печати и переменной, рассмотрим создание класса и добавим в класс несколько атрибутов использовав следующие команды.
```
#!/usr/bin/env python3
# Определение функции
def test():
print("This is test file")
#Присвоение значения переменной
name = "serverspace"
#Определение класса
class TestingClass:
def __init__ (self, name, age):
self.name = name
self.age = age
def tell_me_about_TestingClass(self):
print("this class is " + self.name + ".")
print(self.name + " is the testing's name")
```
Теперь с помощью файла test2.py вызовем функцию инициализации и информацию о классе:
```
#!/usr/bin/env python3
#Импорт модуля
import testingFile
#Вызов функции
testingFile.test()
#Вывод информации из другого модуля
print(testingFile.name)
#Вызов функций из класса
server = testingFile.TestingClass("testingserver", "30 y.o.")
server.tell_me_about_TestingClass()
```
Результат приведён на рисунке 3.
Рисунок 3 – Вызов функций из класса TestingClass
Для начала создаём переменную с названием "server", вызываем класс из модуля testingFile.py, присваиваем значения для переменной name "testingserver" и значение "30 y.o." для переменной age.
Важно иметь ввиду, что модуль является определением, но в то же время можно реализовывать код. Рассмотрим новый пример модуля в файле test3.py
```
#!/usr/bin/env python3
def TestHello():
print("Testing Hello, World!")
#Вызов функции в модуле
TestHello()
```
Импортируем модуль в файл test4.py и проверим вызов функции TestHello:
```
#!/usr/bin/env python3
import test3
```
Получим результат в соответствии с рисунком 4.
Рисунок 4 – Вызов функции из модуля
Причина простая, внутри файла test3.py, создаём функцию с названием TestHello и внутри него реализуем функцию печати текста. Затем вызываем созданную функцию и импортируем в файл test4.py. Таким образом с помощью запуска test4.py вызываем функцию печать текста из функции TestHello.
## Доступ к модулям из других директорий
Иногда некоторые модули полезны не только для одного проекта, но и для других проектов. По этой причине не обязательно хранить модуль в одной директории проекта. Можно создать для общего использования и ссылаться на эту директорию использовав несколько методов.
### Использование переменной среды
Если модуль находится вне проекта, используем модуль sys и с его помощи укажем путь к среде, где находится файл с нужным модулем. Например, находясь в домашней директории создав файл test5.py, мы не сможем импортировать файл test3.py, который находится в директории с виртуальной средой. Рассмотрим, как указывать путь к файлу test3.py:
```
import sys
sys.path.append('/root/testing/')
import test3
```
И получим успешный результат, как показано на рисунке 5.
Рисунок 5 – Полученный результат
Успешный результат можем получить при указании правильного пути к файлу test3.
### Модуль в переменной среде Python 3
Данный метод считается эффективным решением, модуль получает доступность для всей среды и системы. Проверим какой путь проверяет Python с помощью команд
```
python3
import sys
print(sys.path)
```
Получим в результате пути проверки интерпретатора Python, как показано на рисунке 6.
Рисунок 6 – Общие пути проверки интерпретатора Python
Выбираем нужный путь и скопируем файл test3.py в нужный путь.
```
cp testing/test3.py /usr/lib/python3.10
python3 test5.py
```
В файле test5.py удалим импортирование модуля sys. Запустим код:
```
cat test5.py # чтобы удостовериться, что строка с импортированием sys удалён либо закомментирован
python3 test5.py
```
Получим результат как на рисунке 7.
Рисунок 7 – Получение доступа к модулю из общего пути
Копирование модуля в общий путь проверки интерпретатора Python оказалось наиболее эффективным. Причина в том, чтобы каждый раз не импортировать модуль sys в файлах кодов и указывать путь к нужному модулю, стоит скопировать нужный модуль в общий путь. Не стоит забывать о резервной копии нужных модулей, никто не исключает удаление нестандартных модулей после обновления пакетов Python.
## Выводы
В данной инструкции мы рассмотрели такие возможности как:
- Создание модуля;
- Импортирование созданного модуля;
- Ссылаться на модуль с помощью импортирования модуля sys из находясь в другой директории;
- Добавление созданного модуля в общий путь интерпретатора Python;
- Получили информацию об общих путях при поиске модуля с помощью командного интерпретатора Python.
https://serverspace.uz/support/help/ustanovka-3proxy-na-ubuntu-20-04.mdВ статье рассматривается, почему может понадобиться собственный прокси-сервер и как его быстро настроить на Ubuntu 20.04 LTS
## Что такое 3proxy и зачем он может вам понадобиться
Как правило, прокси используют по одной из следующих причин:
- Необходимо скрыть настоящий IP и тем самым обеспечить собственную анонимность;
- Нужно "обойти" имеющиеся ограничения и получить доступ к ресурсу, использующему механизмы блокировки доступа по географическому принципу.
Один из самых простых способов достижения поставленной цели — настройка сервиса 3proxy.
## Требования
Перед началом установки убедитесь, что у вас есть:
- Сервер, который будет работать как "выходная нода". Особой мощности не требуется, достаточно 1 ядра процессора, 5-10Гб дискового пространства и 1Гб оперативной памяти. Гораздо более важным в данном случае будет наличие высокоскоростного подключения к сети и не тарифицируемый по объему данных трафик;
- Не устаревшая операционная система (например, Ubuntu 20.04);
- Доступ к серверу с повышенными правами.
## Установка и настройка
Процесс установки очень прост. Достаточно открыть SSH-терминал на сервере и выполнить однострочную команду:
```bash
wget https://github.com/z3APA3A/3proxy/releases/download/0.9.3/3proxy-0.9.3.x86_64.deb; dpkg -i 3proxy-0.9.3.x86_64.deb
```
Далее необходимо отредактировать файл настроек. Команда ниже добавит необходимые директивы для настройки SOCKS5-proxy:
```
cat
https://serverspace.uz/support/help/sozdanie-funkczij-v-python-3.mdВ инструкции рассмотрены варианты определения функции, присвоения ключевых аргументов и использования функции main()
## Введение
Функция в Python является блоком инструкций, которые принимают данные ввода, выполняет указания и возвращает данные ввода информации. Блоки кода, определенные в виде функции, можно использовать многократно.
В Python есть встроенные функции:
- print() — выводит информацию;
- int() — преобразовывает строковый или числовой тип данных в целочисленный тип данных;
- len() — возвращает длину значения.
В данной инструкции мы рассмотрим создание новых функций для использования в нашем проекте.
## Подготовка перед работой
Необходимо подготовить [систему к работе](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/), установите последнюю версию Python 3 и разверните [виртуальную среду](https://serverspace.ru/support/help/pervaya-programma-na-python/).
## Определение функции
Рассмотрим обычный код такой, как для вывода информации. Создадим файл test_hello.py и добавим функцию в нашей виртуальной среде. Функция определяется с помощью ключевого слова def():
```
def hello():
```
Если пользуетесь текстовым редактором Vim, после создания функции Vim перенаправляет на вторую строку с использованием автоматической табуляции.
Добавим следующий кусок кода для вывода информации в консоль.
```python
def hello():
print("Hello, Dear, User!")
```
В конце кода вызовем функцию hello().
```python
def hello():
print("Hello, Dear, User!")
hello()
```
Запустим код и получим результат:
```
python3 test_hello.py
```
Рисунок 1 – Результат написанной функции
Функции бывают разной сложности, самую простую рассмотрели выше.
Рассмотрим функцию ниже, в которой будут использованы условные операторы if-else для перебора гласных букв в строках.
```python
# Создание функции names()
def names():
# Переменная для ввода имени
name = str(input('Введите своё имя: '))
# Проверка на гласные буквы
if set('aeiou').intersection(name.lower()):
print('В вашем имени есть гласные буквы!')
else:
print('Ваше имя не содержит гласных букв')
# Итерация по имени
for letter in name:
print(letter)
# Вызов функции
names()
```
Так, мы создали функцию names() и использовали в ней условные операторы if-else и оператор for.
## Работа с параметрами
До этого момента мы рассматривали функции без использования параметров, далее определим функцию и её параметры.
Параметры являются объектами внутри нашей функции, указывающей на аргумент, которую может принимать функция.
Рассмотрим код с тремя параметрами i, j и k и создадим функцию для складывания их всех вместе в разных конфигурациях. Затем их суммы будут напечатаны в функции add(). Для получения результата вызовем функцию.
Напишем следующий кусок кода в новом файле TestAdd.py:
```python
def add(i, j, k):
q = i + j
w = i + k
e = j + k
print(q, w, e)
add(20, 25, 30)
```
Передали данные в параметры, т.е. 20 — для параметра i, 25 — для параметра j, 30 — для параметра k. Программа выполняет следующие математические действия:
```
q = 20 + 25
w = 20 + 30
e = 25 + 30
```
Запустим программу и получим наш результат в виде:
```
45 50 55
```
Когда мы передали 20, 25 и 30 в качестве параметров функции add(), мы получили ожидаемый результат.
## Ключевые аргументы
Параметры можно вызывать не только по порядку, но и используя ключевые аргументы в то время, когда вызываемая функция идентифицирует аргументы по имени параметра.
Создадим файл с названием TestInfo. Определим функцию info() и присвоим параметры. Добавим оператора print() для вывода информации. В конце кода вызовем функцию info с использованием параметров и их значений, определенных внутри вызова функции info().
```python
# Функция с параметрами
def info(name, age):
print("Name: " + name)
print("Age: " + str(age))
```
Далее рассмотрим присвоение значений параметрам.
```python
# Определение функции с параметрами
def info(name, age):
print("Имя: " + name)
print("Возраст: " + str(age))
#Вызов функции с параметрами выше
info("ServerSpace", 25)
#Вызов функции с использованием ключевых аргументов
info(name="Team", age=35)
```
Запустим код и получим результат:
Рисунок 2 – Результат, полученный с использованием параметров и ключевых аргументов
В следующем коде рассмотрим указывания параметра age в начале вызова функции info(). После определения функции мы вызываем оператора print() для вывода информации об имени и возрасте.
В конце кода вызовем функцию info, сначала указав возраст, затем имя. Но перед этим получим результат об имени, потом о возрасте внутри функции info(). Причина в том, что порядок вызова оператора print() не изменён:
```python
# Определение функции с параметрами
def info(name, age):
print("Name: " + name)
print("Age: " + str(age))
#Вызов функции с использованием ключевых аргументов
info(age=40, name="ServerSpaceTeam")
```
Рисунок 3 – Результат вызова параметров
## Присваивание ключевых аргументов
Скопируем файл TestInfo.py и изменим название на TestInfoValue.py
```
cp TestInfo.py TestInfoValue.py
```
По умолчанию параметру возраст присваиваем значение "1". Если вызвать функцию info, не указав значение параметра age, получим результат Age = 1. Рассмотрим варианты вызова функции info с указыванием значения параметра age и с использованием ключевого аргумента:
```python
# Определение функции с параметрами
def info(name, age=1):
print("Name: " + name)
print("Age: " + str(age))
#Вызов функции с ключевым аргументом и без ключевого аргумента
info(name="ServerSpace")
info(name="Team", age=15)
```
Рисунок 4 – Результат выполненного кода с использованием значения по умолчанию
Мы рассмотрели два вида вызова функции info(). В первом случае мы указали значение параметру name и не указали значение параметру age и при выводе информации параметру age было присвоено значение по умолчанию "1". Во втором случае указали значения обоим параметрам, но значение параметра age по умолчанию не было отображено.
## Возвращение значений
Данные из параметров можно передавать в функцию. Значение параметра можно возвращать с помощью оператора return.
При использовании return без аргумента, получим результат со значением None.
Создадим файл TestSquare.py и определим функцию testsquare с параметром i. Добавим переменную j в котором возведём параметр i в третью степень. Используем return, чтобы вернуть значение полученное в результате операции внутри переменной j. С помощью переменной result, присвоим значение 5 параметру i в функции testsquare. В конце кода используем оператор print() для вывода информации result. В результате вернется значение операции 5 ** 3. Использование "**" в Python обозначает возвышение в степень:
```python
def testsquare(i):
j = i ** 3
return j
result = testsquare(5)
print(result)
```
После запуска кода и получим результат:
Рисунок 5 – Возвращение функции с помощью return
Если закомментировать строку return j, то получим результат:
Рисунок 6 – Возвращение None значения
Рассмотрим возвращение функции с помощью return в файле TestAdd.py:
```python
def add(i, j, k):
q = i + j
w = i + k
e = j + k
return q, w, e
result = add(20,25,30)
print(result)
```
Запустим код и получим результат:
Рисунок 7 – Результат возвращения функции
Получаем значение (45, 50, 55) в виде кортежа, потому что при вызове функции return переменные указывали через запятую.
## Использование main() в виде функции
Функция main() помещает в себя компоненты программы в одну функцию, в то же время функцию main() не обязательно вызывать в программе.
Рассмотрим использование main() в обычной программе, создадим файл TestMain.py. Определим функцию TestMain и добавим оператора print() для вывода текста. Определим функцию main() и добавим оператора print(). В нижней части кода добавим TestMain() и main() для вызова функций и вывода текста. Напишем код, запустим и получим результат:
```python
def TestMain():
print("Hello, Dear, User!")
def main():
print("This is test text")
TestMain()
main()
```
Рисунок 8 – Результат вышеописанного кода
В Python можно использовать следующую конструкцию '__main__', в котором будет выполняться код верхнего уровня.
Целая конструкция выглядит следующим образом:
```
if __name__ == '__main__':
```
Рассмотрим программу с использованием конструкции '__main__'. Логика программы в том, чтобы код анализировал введённое значение в переменную name и сопоставил с гласными буквами. Если в имени есть гласные буквы, то будет возвращен результат
"В вашем имени есть гласные буквы":
```python
# Объявление глобальной переменной и для ввода имени
name = str(input('Ваше имя: '))
# Функция для проверки гласных букв
def vowel():
if set('aeiou').intersection(name.lower()):
print('В вашем имени есть гласные буквы.')
else:
print('В вашем имени нет гласных букв.')
# Итерация букв в имени
def print_letters():
for letter in name:
print(letter)
# Определение главной функции
def main():
has_vowel()
print_letters()
# Выполнение функции main
if __name__ == '__main__':
main()
```
Также в конце можно указать две функции has_vowel() и print_letters(), результат будет одинаковым:
```
if __name__ == '__main__':
has_vowel()
print_letters()
```
Рисунок 9 – Результат выполненного кода
## Выводы
В итоге можем сказать, функции — это объекты, принимающие аргументы и возвращающие значение.
Подробнее о написании модуля в Python, предлагаем посмотреть в [нашей инструкции](https://serverspace.uz/support/help/kak-napisat-modul-v-python-3/).
Здесь мы рассмотрели такие возможности, как:
- определение функций;
- работу с параметрами функций;
- ключевые аргументы;
- возвращение значений с помощью return;
- использование main() в виде функции.
https://serverspace.uz/support/help/pervaya-programma-na-python.mdВ инструкции рассмотрены самые простые программы на Python – написание первую программы «Hello, World!» и вывод результата умножение чисел
## Введение
Самой простой программой на Python является вывод строки надписи Hello, World! Разберемся, как ее написать. Для этого необходимо установить в нашей системе Python последнюю версию.
## Подготовка перед началом
Для начала, необходимо развернуть [виртуальную среду](https://serverspace.ru/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04) на Python 3. Также потребуется [первоначальная настройка системы](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
## Первая программа
Воспользуемся командной строкой Python 3:
```
python3
```
Выполним команду выводящую информацию:
```
print("Hello, World!")
```
На выходе получим результат:
```
Hello, World!
```
Оператор print() выполняет функцию вывода данных в консоль.
Создадим файл с помощью Vim:
```
vim TestFirstProgramm.py
```
И дополним однострочным кодом:
```
print("Hello, World!")
```
Для запуска самой программы выполним команду:
```
python3 TestFirstProgramm.py
```
Рассмотрим также использование переменных в коде и использование print() для вывода информации из переменных:
```
#Присвоение переменным значений
a = "Hello,"
b = " World!"
print(a+b)
```
На выходе получим результат:
```
Hello, World!
```
Переменным присваиваются не только строчные типы данных, но и целочисленные, либо числа с плавающей точкой.
В следующем примере рассмотрим умножение чисел с использованием переменных. Присвоим переменной "а" значение 5.60 и переменной "b" значение 5 и умножим их с помощью оператора print(a*b), в соответствии со следующим кодом:
```
python3
a = 5.60
b = 5
print(a*b)
```
Получим следующий результат:
```
#Результат:
28.0
```
## Выводы
В итоге можем сказать, что написать первую программу на языке программирования Python не сложно. Есть различные возможности, такие как:
- написание [модуля](https://serverspace.uz/support/help/kak-napisat-modul-v-python-3/) для проектов;
- создание классов внутри модулей;
- определение [функции](https://serverspace.uz/support/help/sozdanie-funkczij-v-python-3/) внутри класса;
- [импортирование модулей](https://serverspace.uz/support/help/import-modulej-v-python-3/) с помощью оператора import.
https://serverspace.uz/support/help/how-to-install-gnome-oracle-8-6.mdИнструкция по запуску и настройке собственного VNC сервера для удаленного подключения к рабочему столу GNOME на сервере с Oracle Linux 8.6
## Введение
Gnome — свободная среда рабочего стола Gnome, т.е. он выступает в роли рабочего стола для операционных систем Linux.
Он разрабатывается еще с 1997 года для Unix систем, и все еще продолжает обновляться и поддерживаться разработчиками.
В этой публикации я разберу установку Gnome на операционную систему Oracle Linux версии 8.6.
Настроим свой собственный VNC сервер для удаленного подключения и управления через графическую оболочку.
**Вы можете воспользоваться услугами Serverspace для создания и аренды своего сервера с операционной системой Oracle Linux.**
## Начало работы
Предварительно авторизовавшись на сервере, я вхожу в привилегированный режим, что бы каждый раз не запускать команды через "sudo"
```
su
```
Перед установкой графической оболочки на ваш сервер, обновите программы прописав команду.
```bash
yum update
```
После обновления программ, установите графическую среду рабочего стола.
```bash
yum groupinstall "Server with GUI"
```
Установка может занять до 15 минут.
После установки графической оболочки вы можете включить запуск системы в графическом интерфейсе, выполнив команду.
```bash
systemctl set-default graphical
```
Перезапустите сервер для принятия указанных настроек.
```
reboot
```
## Настройка файла конфигурации
Перезагрузив сервер, нам требуется раскомментировать параметр в файле конфигурации "custom.conf" используйте для этого текстовый редактор на свой выбор.
```
nano/etc/gdm/custom.conf
```
Таким образом мы понимаем что vnc использует x.org вместо wayland.
## Установка VNC
Устанавливаем пакет программы VNC и его зависимости.
```
yum install -y tigervnc-server tigervnc-server-module
```
После установки VNC сервера, требуется установить пароль vnc для нашего пользователя используя команду.
```
vncpasswd
```
После создания пароля для подключения пользователя, вам предложат создать пароль только для просмотра сервера, тем самым вы можете передать его для демонстрации экрана сервера.
Таким образом, у пользователя нету прав для работы на сервере, но есть права для просмотра рабочего экрана.
## Настройка конфигов VNC
Для удаленного подключения по VNC требуется предварительно указать разрешенных пользователей на подключение внеся имя пользователя в конфигурационный файл.
Измените конфиг используя текстовый редактор на ваш выбор.
```
nano /etc/tigervnc/vncserver.users
```
Я добавил пользователя "root" и выдал ему первый порт на подключение.
_Примечание: Не забудьте сохранить конфигурационный файл перед выходом!_
Чтобы изменить разрешение экрана сервера, вам требуется изменить параметр в конфиге "vncserver-config-defaults".
Измените конфиг, используя текстовый редактор на ваш выбор.
```
nano /etc/tigervnc/vncserver-config-defaults
```
Параметр "geometry" отвечает за разрешение экрана удаленного рабочего стола.
Так же в этом файле конфигурации можно изменить название сессии, я поменял его на "serverspace" для теста.
Перезагрузите файлы конфигурации системы.
```
systemctl daemon-reload
```
## Запуск и проверка
Запустите VNC сервер указав порт который мы указали для нашего пользователя.
```
systemctl enable --now vncserver@:1.service
```
Что бы проверить статус нашего VNC сервера, используйте команду.
```
systemctl status vncserver@:1.service
```
Как мы можем заметить, Xvnc слушает порт 5901 что говорит о его работоспособности.
После выполненной проверки открытого порта, можно перейти в любое приложение vnc клиента, и подключиться к удаленному серверу.
Я буду демонстрировать подключение используя программу "VNC Viewer".
Укажите айпи-адрес вашего сервера + порт который вы указали при запуске VNC сервера.
В появившемся диалоговом окне введите пароль который создали для авторизации vnc клиента. Если вы введете пароль созданный как "только для просмотра", то прав на управление сервером у вас не будет, но у вас будет возможность следить за изменениями другого пользователя.
После подключения вам потребуется ввести пароль от пользователя через которого вы подключаетесь, в моем случае пароль от пользователя root.
## Опционально про безопасность
VNC передает трафик в незашифрованном виде, тем самым уменьшает вашу безопасность, ведь если трафик не защищен - то злоумышленник может использовать это против вас, перехватив подключение и заполучить определенные данные.
Чтобы этого избежать, можно обезопасить себя создав уникальное подключение и указав вместо нашего ip адреса, наименование локальной машины, тем самым злоумышленник не будет знать ip адрес сервера на который мы подключаемся.
Весь процесс подключение будет реализован на операционной системе Windows 10.
Так как я использую ssh аутентификацию через ключи, то я предварительно создал их на своем компьютере используя команду.
```bash
ssh-keygen -t ed25519
```
Создал openssh ключ "SshKey" который будет расположен в каталоге "C:\" для удаленного подключения к серверу.
Укажите созданный публичный ключ в файле конфигурации разрешенных клиентов на подключение.
```
nano ~/.ssh/authorized_keys
```
Создайте уникальное подключение используя "powershell".
```bash
ssh -L 5901:localhost:5901 -i .\SshKey root@ip_of_your_server
```
После подключения откройте VNC клиент и вместо ip сервера укажите localhost:port.
```
localhost:5901
```
После этого пройдите авторизацию точно так же, как делали до этого, используя созданный пароль от VNC.
Подключение произошло успешно.
## Вывод
В этой публикации я разобрал как установить, запустить и настроить свой VNC сервер удаленного подключения, а так же как можно его обезопасить.
Помимо vnc сервера, существует альтернатива в виде "xrdp" которая позволяет использовать протокол Windows "rdp" для подключения к серверам на операционной системе Linux.
https://serverspace.uz/support/help/czikl-for-v-python-3.mdИспользование цикла For в Python 3. Выполнение программы с использованием виртуальной среды на Ubuntu 22.04. Использование списка в цикле
## Введение
В программировании цикл For известен, как цикл с известным количеством повторений. Но в Python этот цикл представляет собой более универсальную инструкцию. Это означает, что цикл For используется в те моменты, когда количество итераций известно до входа в цикл, в отличие от цикла While, который основан на условиях.
## Подготовка перед работой
Перед началом работы, необходимо выполнить два шага:
- Установить операционную систему под управлением [Ubuntu](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/)/Debian/CentOS и произвести первоначальную настройку системы;
- Установить и настроить [виртуальную среду](https://serverspace.ru/support/help/virtualnaya-sreda-python-3-na-ubuntu-22-04) на Python.
## Цикл **For**
Конструкция цикла For строится следующим образом:
```
for 'переменная' in 'последовательность':
'действие'
```
Рассмотрим пример выполнения цикла внутри командного интерпретатора Python.
Напишем маленький кусок кода, в котором начинается цикл for, за ним присваивается переменная n и в последовательности от 6 до 11 выводятся цифры и с помощью функции print() возвращаем значения в терминал.
```
for n in range(6,11):
print(n)
```
Рисунок 1 – Выполнение кода в командном интерпретаторе
В программировании индекс чисел начинается с 0, по этой причине в результате мы видим 5 разных значений, которые находятся в диапазоне от 6 до 11.
## Использование **range() в цикле ****for**
Одним из встроенных последовательностей является range() для управления тем, сколько раз будет повторяться наш цикл.
У range() есть три параметра:
- Start – является началом последовательности (не обязательный параметр и значение по умолчанию 0)
- Stop – является точкой остановки последовательности (обязательный параметр)
- Step – является шагом последовательности (не обязательный параметр и значение по умолчанию 1).
Рассмотрим код с циклом for, в котором присваиваем переменную n и значение 15 (параметр stop) для range(), чтобы последовательность была в этом диапазоне:
```
for n in range(15):
print(n)
```
Рисунок 2 – Выполнение кода с использованием параметра stop
Для остановки цикла указали параметр 15, поэтому в результате получили 15 значений от 0 до 14 исключая число 15.
Рассмотрим код с использованием параметров range(start/stop), определим цикл for, присвоим переменную n и укажем значения в виде параметров start и stop.
```
for n in range(10,15):
print(n)
```
Рисунок 3 – Результат выполненного кода
Когда мы определили точку start и stop, мы получили результат в диапазоне от 10 до 15, исключая число 15.
Параметр step используется для указывания шага между значениями start и stop. Рассмотрим в следующем коде использование шагов в диапазоне, объявим цикл for и в нём переменную n, присвоим значения параметрам start/step/stop:
```
for n in range(25,50,5):
print(n)
```
Рисунок 4 – Использование параметра step
В результате получаем 5 разных значений в диапазоне 25-50 с использованием значения 5 в качестве шагов.
В качестве параметра step можно указать отрицательное число, как показано в следующем примере. Объявим цикл for и переменную, в параметры range присвоим значения 1000,900,-10. Чтобы итерация выполнялось в обратном порядке:
```
for n in range(1000,900,-10):
print(n)
```
Рисунок 5 – Результат обратной итерации
Мы рассмотрели программу, где точкой начала является 1000 и с помощью обратной итерации получили значения до 910.
## Использование списка в цикле
В циклах можно использовать список в качестве параметров итерации. Вместо range() можно обозначить переменную до цикла for и использовать после in переменную.
Рассмотрим код с переменным list, который принимает несколько слов, далее объявим цикл for с переменным list и пройдёмся по данным из этого списка:
```
list = ['one', 'two', 'three', 'four']
for list in list:
print(list)
```
Рисунок 6 – Результат использования списков в виде данных
В этом примере мы рассмотрели вызова данных из списка, обозначенного заранее. Вместо переменно list, мы могли использовать другую переменную, но результат был бы одинаковым.
Поскольку списки и другие типы данных являются итерируемыми, их можно комбинировать с функцией range().
Выберем переменную из примера выше, объявим цикл for с переменной item, в параметрах range() укажем длину списка list. В следующей строке с помощью append в список переменной list добавим слово five:
```
list = ['one', 'two', 'three', 'four', 'five']
for item in range(len(list):
list.append('six')
print(list)
```
Рисунок 7 – Вывод списка с добавленным словом six
В этом примере мы добавили 5 слов six равный количеству слов из списка list.
Также цикл for мы можем использовать для создания списка с разных значений. В следующем примере обозначим переменную numbers, в котором объявим список. Добавим цикл for и параметр 25 в функции range(). В следующей строке запишем функцию для инициализации нашего пустого списка со значением n, который будет дополнять список:
```
numbers = [ ]
for n in range(25):
numbers.append(n)
print(numbers)
```
Рисунок 8 – Результат дополняющегося списка
В примере мы рассмотрели переменную без списка, дальше добавили цикл, в котором диапазон от 0 до 25 и с помощью append прибавляется +1 значение к 0 и далее.
Этим же способом мы можем перебирать строку с символами.
Объявим переменную word и ей присвоим слово quickly, с помощью цикла for переберём слово:
```
word = 'quickly'
for letter in word:
print(letter)
```
Рисунок 9 – Перебор строки
В примере выше цикл for перебрал слово quickly и разбил на строки.
В цикле for можно использовать словарь. Как известно в словаре используется ключ, первое слово до двоеточия, за ним следует слово присвоенный к ключу. Чтобы правильно вызвать значение ключа через двоеточия, рассмотрим следующий пример:
```
list_dict = {'name': 'ServerSpace', 'year': '2022'}
for key in list_dict:
print(key + ':' + list_dict[key])
```
Рисунок 10 – Вызов ключевых слов с использованием двоеточия
В приведенном выше примере переменная key использовалась для обозначения ключа, а list_dict[key] – для обозначения значений.
## Вложенные циклы **For**
Вложенный цикл является циклом внутри цикла for и конструкция вложенного цикла выглядит следующим образом:
```
for 'первая переменная для итерации' in 'исходный цикл'
'действие'
for 'вторая переменная для итерации' in 'вложенный цикл'
'действие'
```
Программа сначала выполняет первую итерацию исходного цикла, затем переходит во внешний цикл и выполняет все итерации, возвращается в исходный цикл и выполняет следующую итерацию и так до конца пока итерация исходного цикла не завершится. Рассмотрим в следующем примере, объявим переменную num с целочисленными типами данных и let с символами.
В исходном цикле объявим цикл for и переменную num, во внешнем let:
```
num = [10, 15, 25]
let = ['w', 's', 'x']
for number in num:
print(number)
for letter in let:
print(letter)
```
Рисунок 11 – Использование исходного и вложенного цикла
Усложним задачу со списком внутри списка. Попробуем извлечь информацию отдельными строками:
- Объявим переменную list_in_list и добавим внутрь переменной наш список;
- Добавим исходный цикл с переменной list и list_in_list;
- В цикле объявим item внутрь list;
- Вызовем item.
```
list_in_list = [['one', 'two', 'three'], [25,50,75], [0.25, 0.50, 0.75]]
for list in list_in_list:
for item in list:
print(item)
```
Рисунок 12 – Результат вывода информации из списка
## Выводы
В этой инструкции мы рассмотрели цикл for с использованием:
- Последовательности range();
- Списков и словарей;
- Вложенные циклы внутри исходного цикла.
https://serverspace.uz/support/help/how-to-jenkins-kubernetes.mdУстановка Jenkins на сервер Kubernetes (k8s). Мы научимся разворачивать кластер Kubernetes и устанавливать на него Jenkins CI последней версии
## Введение
Jenkins - это CI распространяемый с открытым исходным кодом написанный на Java, что позволяет следить за исправлениями разработчиков, а так же быть уверенным в безопасности. Этот сервер служит для непрерывной интеграции. В этой публикации мы установим этот CI используя кластеры kubernetes.
Kubernetes (K8S) - ПО для управления и ограничения контейнерных приложений - ускорение развертывания путем использования автоматизации, в условиях кластера так же можно координировать и масштабировать систему. Благодаря контейнеризации, можно с легкостью ограничить приложения друг от друга, а так же изменить выделенные ресурсы сервера с одного приложения на другое если такое потребуется.
**В Serverspace есть возможность [создать готовый кластер под Kubernetes](https://serverspace.uz/services/managed-kubernetes.md), ведь это удобно! **
## Требования
- Не менее 2 CPU - реализации K8S сервера
Или аренда K8S сервера
- Клиент сервер, для управлением и настройкой кластеров K8S
## Предустановка
Прежде, чем устанавливать Jenkins, необходимо развернуть Kubernetes. Чтобы сделать это в инфраструктуре Serverspace, просто авторизуйтесь в личном кабинете, затем перейдите в раздел Kubernetes и начните установку:
Настройте выделенный кластер по характеристикам которые вам требуются, не забудьте выдать ему имя.
_P.s Для создания кластера потребуется около 15 минут, наберитесь терпения._
После создания кластера, у вас будет возможность скачать файл конфигурации сервера с кубернетесом. Этот конфиг потребуется позже при установке Jenkins, для связи клиент-сервера и сервера с кластерами kubernetes.
Скачайте файл конфигурации себе на компьютер, загрузите его на сервер выбрав одно из предложенных решений:
- Вы можете создать новый файл и вписать в него конфиг кластера kubernetes.
```
nano config-kubernetes
```
Вставьте в созданный файл конфиг kubernetes, и сохраните его.
- Удаленно загрузить конфиг благодаря протоколу SFTP.
## Начало работы
Установите следующее по для нашего CI.
```bash
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
```
Укажите расположение файла конфигурации сервера k8s.
```
export KUBECONFIG=
```
_P.s. Этот файл мы скопировали/создали после запуска кубернетес сервера._
Проверьте использование конфига.
```bash
kubectl cluster-info
```
Создайте пространство для CI.
```bash
kubectl create namespace
```
Для установки и запуска CI на сервере k8s, требуется создать файл образа, с настройками нашего сервера.
```
nano our_project_jen.yaml
```
Введите в созданный файл конфигурации данные параметры.
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-vol
mountPath: /var/jenkins_vol
volumes:
- name: jenkins-vol
emptyDir: {}
```
Благодаря этой конфигурации, будет развернут CI последней версией вышедшая в релиз. Так же будут созданы и открыты порты что указаны в конфигурации, вы можете их сменить на нужные вам.
Теперь укажите созданному пространству, какой файл конфигурации использовать.
```bash
kubectl create -f jenkins.yaml --namespace
```
Дождитесь установки образа и его запуска, воспользуйтесь командой ниже для проверки работы модуля.
```bash
kubectl get pods -n jenkins
```
После запуска образа, я создам еще две службы что бы использовать web версию CI.
Создаю конфиг для службы CI проекта.
```
nano jenkins-service.yaml
```
Добавьте в созданный файл эти настройки.
Укажите кластеру использовать этот файл конфигурации с тем же созданным конфигом.
```bash
kubectl create -f jenkins-service.yaml --namespace
```
Проверка статуса.
```bash
kubectl get services --namespace jenkins
```
Для просмотра ip адреса воспользуйтесь этой командой, либо можете посмотреть его в панели управления кластером K8S.
```bash
kubectl get nodes -o wide
```
Перед переходом к веб версии, проверьте пароль суперпользователя CI.
```bash
kubectl logs jenkins-CHANGE -n jenkins
```
Где "CHANGE " - наименование вашего контейнера.
Пароль находится в логах нашего запущенного образа.
Переходите на веб версию Jenkins что бы продолжить его установку, введите в диалоговом окне пароль что мы узнали ранее.
Для полноценной установки Jenkins, следуйте инструкции, которая предоставляется в web версии.
##
## Вывод
В этой публикации я разобрал как развернуть Jenkins CI используя ресурсы выделенного kubernetes сервера от Serverspace.
https://serverspace.uz/support/help/howto-detect-cybersecurity-threats-with-nmap.mdВ этой публикации мы расскажем, как быстро и просто определить уязвимости на вашем облачном сервере при помощи утилиты Nmap
## Введение
В этой публикации я продемонстрирую, как можно определить уязвимости в вашей системе. Безопасность сервера должна быть в приоритете! Ведь каждое устройство может быть подвергнуто взлому, поэтому разработчики "ПО" закрывают открытые дыры в своих программах как можно скорее, тем самым нам требуется регулярно обновлять "ПО", иначе злоумышленник воспользуется уязвимостью и причинит вред серверу, а может и целой компании.
Facebook на протяжении 3 лет с 2019 по 2021 подвергся взлому, что повлекло за собой публикацию более чем 950 миллионов пользователей. Среди этих данных была информация о номерах телефонах, почтовых адресов пользователей, даты рождения и другая личная информация пользователей. Всего этого можно избежать, если уделять время кибербезопасности, и своевременно следить за программным обеспечением что вы используете.
## Как происходит кибер-атака ?
Kill-chain - это последовательность действий которые выполняет злоумышленник для получения доступа к серверу.
Всего существует 4 этапа цепочки кибератаки (kill-chain):
- Сбор информации об системе (какие службы работают; какая версия ПО).
- Поиск уязвимостей в системе.
- Создание или использование вредоносного кода (эксплойт).
- Доставка эксплойта жертве (путем отправки сообщения на почту; зараженного сайта или как то иначе)
Предупреждён — значит вооружён, ведь при помощи знании kill-chain, есть возможность обезопасить сервер на сколько это возможно, тем самым усложнив злоумышленнику получение доступа к серверу.
## Как проверить систему?
Для проверки системы используется утилита **nmap**, установите ее следуя инструкции.
```bash
apt install nmap
```
Проверим какие запущенные службы на нашем сервере.
```
nmap 127.0.0.1
```
Как мы видим, на моем тестовом сервере запущенна служба "ssh", работающая на 22 порту, а так же "http" служба< работающая на 80 порту.
Чтобы проверить открытые "udp" порты, используйте команду ниже.
```
sudo nmap -sU 127.0.0.1
```
На тестовом сервере отсутствуют открытые "udp" порты.
Глазами злоумышленника, он получил информацию об 2 открытых портах (22;80), а так же на сервере запущена служба "openssh" благодаря которой он может нанести кибер-атаку, если у данного ПО присутствуют уязвимости.
Чтобы узнать какой версии установлена программа, воспользуйтесь командой.
```
nmap -sV 127.0.0.1
```
Мы узнали что на сервере установлена старая версия утилиты "OpenSSH", проверим ее на уязвимости.
Для нахождения уязвимостей в утилитах обратитесь к базе данных Google;Cisco;CVE где расписаны версии разного ПО, и их уязвимости которые были найдены благодаря другим людям.
Обратившись к истории обновлений "OpenSsh", а именно версии 7.2.p.2, мы узнаем об открытой уязвимости запущенного ПО.
Всего две уязвимости, но они дают полный доступ к правам суперпользователя, злоумышленнику остается лишь поместить эксплойт на сервер жертвы путем доставки, это может быть: фишинг, зараженное письмо или сайт.
## Вывод
В этой публикации я провел анализ тестового сервера на наличие уязвимостей, благодаря ней злоумышленник может принести большой вред компании.
На примере компании Facebook, которая подвергла свыше 950 миллионов пользователей - следует как только выходит обновление, тут же его устанавливать на вашу операционную систему, а так же обновлять программное обеспечение. Повышать безопасность сети путем добавления промежуточных устройств, и добавляя разные степени защиты в вашу ЛВС.
https://serverspace.uz/support/help/ustanovka-zabbix-na-ubuntu.mdКак установить Zabbix на сервер с Ubuntu 20.04 с использованием базы данных MySQL и Nginx в качестве веб-сервера
Zabbix - свободная система для мониторинга различных IT инфраструктур, например облачных сервисов, обычной сети, а так же VPS. Она умеет отслеживать самые разные параметры, например, загрузку ЦПУ, место на жестком диске, пинг, доступность узлов, загрузку сети, а так же строить графики и рассылать оповещения.
Мониторинг Zabbix может быть развернут как с помощью программы агента, так и с помощью существующих ресурсов системы или устройства (например с помощью ICMP пинга, или SNMP, в том числе подключаясь через SSH или Telnet, выполняя любую команду и использовать вывод как возвращаемое значение)
Сегодня мы используя Mysql в качестве БД и Nginx в качестве web сервера запустим Zabbix на Ubuntu версии 20.04.
## Подготовка:
Нам понадобится сервер с ubuntu 20.04 и root доступ
Большинство команд в этой инструкции потребуют root доступ, зайдите под суперпользователем или используйте sudo.
Zabbix присутствует в стандартных репозиториях, но не в последней версии, к счастью у Zabbix есть свой репозиторий, его и подключим командой:
```bash
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb
dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb
```
Нам понадобится целый набор приложений, давайте установим его.
```bash
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts
```
## База данных
Скачаем Mysql.
```bash
apt install mysql-server
```
Не забудем его запустить.
```bash
systemctl start mysql.service
```
Зайдем в Mysql под суперпользователем
```bash
mysql -uroot -p
```
При первом запуске нас попросят ввести пароль, заводим любой удобный нам.
Добавим базу.
```sql
create database zabbix character set utf8mb4 collate utf8mb4_bin;
```
Серверу понадобится аккаунт для работы с БД, создадим его следующей командой. Можно подставить свой пароль(оставляем кавычки).
```sql
create user zabbix@localhost identified by 'password';
```
Дадим ему права, для работы с бд.
```
grant all privileges on zabbix.* to zabbix@localhost;
```
Разрешим бинарное логирование (позволит подставить шаблонную базу данных).
```
set global log_bin_trust_function_creators = 1;
quit;
```
Скачаем шаблонную конфигурацию, введём пароль, добавленный выше.
```
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
```
Выключаем логирование,
```bash
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
```
Поправим содержимое
```
nano /etc/zabbix/zabbix_server.conf
```
Уберем комментарий (нужно стереть символ "#") с "DBPassword=" и впишем свой пароль.
Для быстрого поиска можно воспользоваться Ctrl+W
Закрываем Nano. Ctrl+X, соглашаемся с изменениями.
## Настройка web-сервера
Изменим файл /etc/zabbix/nginx.conf. Снимаем комментарии с опций 'listen' и 'server_name'.
listen 8080 - это порт на котором будет открываться интерфейс Zabbix, менять его не нужно, а в строке server_name понадобиться вписать IP адрес cервера вместо "example.com".
Настройка интерфейса
Посмотрим доступные языки.
Если мы хотим пользоваться локализованными интерфейсом, то придется вначале настроить список доступных локалей.
```
locale -a
```
Для добавления нужной нам, откроем /etc/locale.gen и снимем комментарий с ru_RU.UTF8
```
sudo nano */etc/locale.gen*
```
Выходим из файла, сохраняем изменения, обновляем подключенные локали.
```
sudo locale-gen
```
Перезагрузим Zabbix, чтобы подгрузились новые локализации.
```bash
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
```
И конечно добавим автоматическую загрузку на старте системы
```bash
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
```
Проверяем - всё ок.
Двигаемся дальше, проверяем что всё работает.
Тип БД - Mysql, БД, как и пользователь - zabbix, пароль от пользователя такой же как в базе данных.
Время и имя выбираем любое удобное.
Ещё раз проверяем что всё в порядке.
Сервер готов, осталось зайти и начать пользоваться, жмем 'Finish' и вводим учётные данные.
Username: Admin
Password: zabbix
## Заключение
Сегодня мы сделали первый шаг в настройке системы мониторинга, установив сервер Zabbix на Ubuntu 20.04
https://serverspace.uz/support/help/vozmozhnosti-ispolzovania-certbot-dlia-web-servera-nginx.mdНастройка Certbot для повышения безопасности web-сервера Nginx. Настройка брандмауэра для перенаправления трафика
## Введение
Для настройки безопасности Nginx воспользуемся центром сертификации (ЦС) для установки бесплатных сертификатов TLS/SSL, тем самым предоставим шифрование для HTTPS на web-серверах.
В этой инструкции будут рассмотрены возможности использования Certbot, чтобы получить бесплатный SSL-сертификат для web-сервера Nginx на Debian 10 и рассмотрим настройку автоматического обновления сертификатов.
## Подготовка к работе
Следует выполнить несколько шагов перед тем, как приступать к основной задаче:
- Запустить сервер на Debian или Ubuntu и настроить согласно нашему [руководству по настройке](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/). Настроить права для нового пользователя и настроить брандмауэр.
- Зарегистрировать доменное имя. В данной инструкции будем рассматривать доменное имя _serverspace.tm_.
- Установить и настроить Nginx в согласно [инструкции](https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx).
## Установка Certbot
Согласно документации Certbot рекомендуется устанавливать пакет через snap. Необходимо удостовериться, что ядро snapd установлен и обновлен.
```
snap install core && snap update core
```
Установим пакет certbot используя snap:
```
snap install --classic certbot
```
После установки создадим символическую ссылку для выполнения certbot из директории /usr/bin/:
```
ln -s /snap/bin/certbot /usr/bin/certbot
```
После успешной установки certbot можно приступить к настройке конфигурации Nginx.
## Конфигурация Nginx
Certbot производит поиск строки server_name в конфигурационных файлах Nginx и настраивает автоматически SSL:
```
cp /etc/nginx/sites-avaliable/default /etc/nginx/sites-avaliable/serverspace.tm
```
```
vim /etc/nginx/sites-avaliable/serverspace.tm
```
```
...
server_name serverspace.tm www.serverspace.tm
...
```
И выполним выход сохранением с помощью:
```
:wq!
```
Проверьте состояние конфигурации после изменение файлов с помощью:
```
nginx -t
```
Если при тестировании конфигурации получите следующее сообщение об ошибке:
```
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
```
То закомментируйте строку listen [::]:80; в файле /etc/nginx/sites/avaliable/.
Убедившись в правильности написанного кода наших конфигурационных файлов, перезапустим nginx:
```bash
service nginx restart
```
## Разрешение HTTPS через ufw
Ufw брандмауэр должен быть настроен согласно с инструкцией и разрешим полный доступ для подключения к Nginx:
```
ufw allow 'Nginx Full'
```
Удалим старое разрешение к Nginx HTTP:
```
ufw delete allow 'Nginx HTTP'
```
Проверим статус брандмауэра с помощью:
```
ufw status
```
Далее запустим certbot и приступим к получению сертификата
## SSL-сертификаты
Выполним следующую команду для получения сертификата для нашего домен:
```
certbot --nginx -d serverspace.tm -d www.serverspace.tm
```
В процессе необходимо будет ввести адрес электронной почты и получим результаты путь до сертификатов и срок сертификатов.
После всех настроек, полученных сертификатов, наши web-запросы будут перенаправляться на https:// в автоматическом порядке.
## Автообновление Certbot
Протестируем процесс обновления с помощью запуска certbot:
```
certbot renew --dry-run
```
Если команда запустилась успешно, значит certbot работает без ошибок.
При сбое автоматического обновления получим сообщение в ранее указанный адрес электронной почты при настройке сертификатов.
## Выводы
В данной инструкции рассмотрели:
- Настройку конфигурации домена для Nginx;
- Установку certbot из пакетного менеджера snap;
- Установку сертификатов;
- Запуск обновления certbot.
https://serverspace.uz/support/help/nastrojka-bezopasnosti-concourse-ci-s-pomoshhyu-ssl.mdИнструкция по настройке безопасности Concourse CI с помощью SSL. Перенаправление трафика HTTP на HTTPS. Привязка домена к локальному адресу
## Введение
Concourse CI является современным и масштабируемой системой непрерывной интеграции для автоматизации конвейеров тестирования с помощью компонуемого декларативного синтаксиса.
В предыдущей [инструкции](https://serverspace.ru/support/help/ustanovka-concourse-ci/) мы рассмотрели установку и настройку Concourse CI на сервере Debian 10. Мы рассмотрели работу системы в командной строке и с помощью Web-интерфейса.
В этой инструкции будем рассматривать защиту Web-интерфейса Concourse CI, настроив обратный прокси с помощью Nginx.
## Подготовка к работе
Для начала необходимо запустить сервер на Debian 10, с оперативной памятью не менее 1 GB. Выполните указания [согласно инструкции](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/), чтобы настроить простую чётную запись без прав суперпользователя.
Установите и настройте Concourse из [официального сайта](https://concourse-ci.org/) либо из [GitHub](https://github.com/concourse/concourse/releases).
Установите Nginx и настройте зашифрованное соединение.
Необходимо получить доменное имя для обращения по домену, а не по IP-адресу.
## Конфигурирование обратного прокси
Для начала необходимо отредактировать файл серверного блока для настройки SSL и перенаправления трафика на сервер Concourse CI.
В директории /etc/nginx/sites-enabled находится файл default, который является стандартным файлом после установки nginx.
Внесём изменения в файле для настройки прокси-сервера, который будет перенаправлять трафик на сайт согласно названию домена.
Начнём с добавления строк в начале файла default из директории /etc/nginx/sites-enabled перед основной частью серверного блока. Укажем локальный адрес сервера и порт, которые прослушивает наш Concourse сервер:
```css
upstream concourse {
server 127.0.0.1:8080;
}
```
Необходимо найти блок отвечающий за обслуживание SSL, по умолчанию является строка с listen 443. Убедитесь, что после server_name написано название вашего домена.
Внутри этого блока необходимо настроить блок "location /", который передаёт запросы на сервер Concourse:
```css
location / {
include proxy_params;
proxy_http_version 1.1;
proxy_read_timeout 90;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://concourse;
}
```
После внесения изменений, сохраняем файл и выполняем выход.
Проверим файл на корректность с помощью команды:
```
nginx -t
```
В результате получаем syntax ok и test is successful.
Чтобы изменения вступили в силу, необходимо перезагрузить nginx:
```bash
service nginx restart
```
Сервер Concourse сконфигурирован под наш домен.
## Привязка домена к сетевому интерфейсу
После всех настроек конфигураций, необходимо привязать наш локальный адрес к нашему домену. Откроем файл web-environment из директории /etc/concourse и преобразуем строку CONCOURSE_EXTERNAL_URL в следующий вид и добавим локальный IP-адрес:
```
CONCOURSE_EXTERNAL_URL=https://serverspace.tm
CONCOURSE_BIND_IP=127.0.0.1
```
Выполним выход сохранив изменения.
Необходимо перезапустить службу concourse- web, чтобы изменения вступили в силу.
```bash
service concourse-web restart
```
Проверим какой адрес работает с портом 8080 с помощью команды:
```
netstat -tlnup | grep :8080
```
В результате получим следующую строку
```
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 1781/concourse
```
Web-интерфейс Concourse прослушивает только локальный IP-адрес.
Внесём изменения в брандмауэр удалив правило для порта 8080:
```
ufw delete allow 8080
```
Так как все запросы будут обрабатываться Nginx, который работает с портом 80.
## Проверка **web-интерфейса**
Откроем браузер и введём название нашего домена и попадём на страницу приветствия Concourse.
Рисунок 1 – Страница приветствия Concourse
Затем вводим логин и пароль, которую указывали при настройке Concourse.
Рисунок 2 – Поле для логина и пароля
После успешной авторизации попадаем в web-интерфейс Concourse CI.
Рисунок 3 – Страница с нашим конвейером
Теперь наш сервер Concourse доступен с использованием домена.
## Выводы
В данной инструкции мы рассмотрели:
- Изменение стандартного файла Nginx для перенаправления трафика;
- Привязку локального IP-адреса к домену для Concourse;
- Тестирование web-интерфейса Concourse с помощью домена.
https://serverspace.uz/support/help/ustanovka-concourse-ci.mdУстановка Concourse CI — инструкция. Настройка служб для запуска. Настройка обратного прокси для получения доступа извне.
## Введение
Concourse CI – современная масштабируемая система для настройки непрерывной интеграции и для автоматизации конвейеров тестирования с помощью компонуемого декларативного синтаксиса. По сравнению с остальными системами для настройки непрерывной интеграции, команда Concourse вкладывают все усилия, чтобы упростить управление конвейером непрерывной интеграции.
В этом руководстве рассмотрим установку Concourse CI на заранее установленный и настроенный сервер Ubuntu/Debian/CentOS. Настроим базу данных PostgreSQL для использования в качестве серверной части.
## Подготовка к установке
Перед установкой Concourse CI, необходимо развернуть сервер Debian/Ubuntu/CentOS и настроить [согласно инструкции](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
## Установка и конфигурирование PostgreSQL
Прежде чем скачивать и устанавливать Concourse CI, необходимо обновить индекс пакетов и установить PostgreSQL.
```bash
apt update
apt install postgresql postgresq-contrib
```
После установки PostgreSQL создадим пользователя в базе данных с именем concourse. Создание пользователя необходимо выполнить от имени postgres.
```
sudo -u postgres createuser concourse
```
Concourse по умолчанию подключается к базе данных с названием atc. Создадим базу данных с названием atc и присвоим права собственника на пользователя concourse.
```
sudo -u postgres createdb --owner=concourse atc
```
После установки и создания базы данных можем скачать и установить Concourse CI.
## Скачивание и установка Concourse CI
Скачать файлы можно из [официального сайта](https://concourse-ci.org/) Concourse либо из GitHub. В нашем случае рассматривается скачивание из [GitHub](https://github.com/concourse/concourse/releases). Необходимо скачать сервер.
```bash
curl -LO "url_for_concourse_linux.tgz"
tar -xzf concourse*.tgz
```
Далее загрузим клиент с названием fly в домашнюю директорию и распакуем.
```bash
curl -LO "ufl_for_fly"
tar -xzf fly*.tgz
```
Далее необходимо определить права для выполнения запуска файлов распакованным файлам и переместить все файлы в директорию /usr/local/bin.
```bash
chmod +x concourse* fly*
mv concourse* /usr/local/bin/
mv fly* /usr/local/bin/
```
Проверим версии fly и concourse с помощью команды:
```
concourse --version
fly --version
```
В результате получим версии 7.9.0.
## Конфигурирование служб Concourse CI
Необходимо создать директорию concourse в /etc/:
```
mkdir -p /etc/concourse
```
Следующим шагом создадим ключи шифрования для получения доступа к сервису и настроим конфигурацию для Concourse.
Перейдем в директорию /etc/concourse и сгенерируем ключи:
```bash
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/worker_key
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/session_signing_key
```
Проверим содержимое папки с помощью:
```
ls -l
```
В результате получим список созданных ключей:
```
-rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 session_signing_key
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 session_signing_key.pub
-rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 tsa_host_key
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 tsa_host_key.pub
-rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 worker_key
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 worker_key.pub
```
Сделаем копию ключа worker_key.pub, чтобы раздать сотрудникам этот ключ для авторизации.
```
cp /etc/concourse/worker_key.pub /etc/concourse/authorized_worker_keys
```
Создадим конфигурационный файл для запуска WEB UI службы Concourse.
```
vim /etc/concourse/web_environment
```
В файле укажем пути для использования ключей и путь до файла для запуска PostgreSQL. А также укажем логин, пароль, адрес сервера и порт.
```
CONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql
CONCOURSE_BASIC_AUTH_USERNAME=serverspace
CONCOURSE_BASIC_AUTH_PASSWORD=p@ssw0rd
CONCOURSE_EXTERNAL_URL=http://server_IP:8080
```
Сохраним файл и выполним выход.
Создадим конфигурационный файл для серверной части Concourse. Укажем пути до ключа, локальный адрес и порт:
```
vim /etc/concourse/worker_environment
```
```
CONCOURSE_WORK_DIR=/var/lib/concourse
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1:2222
```
Запуск служб выполняется из директории /etc/systemd/system/, по этой причине необходимо создать два файла для запуска web и worker служб.
```
vim /etc/systemd/system/concourse-worker.service
```
```
Description=Concourse CI worker process
After=concourse-web.service
User=root
Restart=on-failure
EnvironmentFile=/etc/concourse/worker_environment
ExecStart=/usr/local/bin/concourse worker
WantedBy=multi-user.target
```
В этом файле указали пользователя от кого запускается служба, путь до конфигурационного файла и путь до файла worker для запуска из директории /etc/concourse.
Теперь создадим файл для запуска службы WEB UI в директории /etc/systemd/system:
```
vim /etc/systemd/system/concourse-web.service
```
```
Description=Concourse CI web process (ATC and TSA)
After=postgresql.service
User=concourse
Restart=on-failure
EnvironmentFile=/etc/concourse/web_environment
ExecStart=/usr/local/bin/concourse web
WantedBy=multi-user.target
```
Добавим порт 8080 в правила ufw для получения доступа из другого хоста и запустим службы:
```bash
ufw allow 8080
service start concourse-web.service
service start concourse-worker.service
```
Добавим в службы concourse-web и concourse-worker автозагрузку, чтобы запускались автоматически при запуске сервера:
```bash
systemctl enable concourse-web concourse-worker
```
## Доступ к Web-интрефейсу
В командной строке выполним следующую команду:
```
fly -t tutorial login -c [http://127.0.0.1:8080](http://127.0.0.1:8080) -u serverspace -p p@ssw0rd
```
В результате получим:
```
logging in to team 'main'
target saved
```
Проверим активный компонент с помощью команды:
```
fly -t tutorial workers
```
```
#Результат
name containers platform tags team state version age
01fb36b82106 0 linux none none running 2.4 1d
```
Проверка Web-интрефейса производится через web-браузер. В адресной строке укажем адрес сервера и порт.
Рисунок 1 – Web-интерфейс Concourse CI
## Выводы
В итоге можем сказать, что были рассмотрены следующие действия:
- Скачивание исходных файлов из GitHub;
- Настройка Concourse и Fly;
- Настройка конфигурационных файлов;
- Настройка файлов для запуска служб worker и web;
- Создание worker;
- Вход в web-интерфейс.
https://serverspace.uz/support/help/ustanovka-zabbix-agenta-na-windows.mdРассмотрим установку Zabbix agent на Windows двумя способами: через MSI инсталлятор и вручную из архива.
Zabbix способен обеспечить мониторинг множества разных систем, давайте посмотрим как присматривать за нашими серверами, работающими на Windows. Для этого нам понадобится скачать программу-агент и настроить её на отправку данных на наш сервер.
Для установки нам понадобится скачать инсталлятора или архив с программой на [официальном сайте](https://www.zabbix.com/download_agents).
Выберите подходящую вашей конфигурации и вашему серверу версию и скачайте её (6.0 LTS в нашем случае).
Есть два способа которым мы можем установить агент, с помощью инсталлятора или в ручную, из архива, давайте начнем с инсталлятора.
## Установка через инсталлятор
Запускайте MSI файл, вводите имя хоста и адрес сервера Zabbix, галочка enabling PSK не позволит агенту посылать данные серверам без получения от сервера заранее подготовленного ключа безопасности, мы рассмотрим эту возможность в другой статье. Продолжаем установку пока всё не будет готово.
И наконец проверяем видит ли Zabbix этот сервер.
Всё отлично.
## Установка из архива
Ручная установка может оказаться полезной если вы хотите каким то образом автоматизировать процесс либо, вам удобнее заняться более глубокой настройкой.
После скачивания архива распакуйте его содержимое в папку в которую вы хотите установить агент.
По умолчанию конфигурационный файл находится в корне диска C:\, поэтому переместим файл zabbix_agentd.conf file из папки \bin туда, либо изменим его положение на удобное нам при установке службы.
Давайте отредактируем файл конфигурации: мы хотим вписать адрес нашего сервера в строчку Server=.
Теперь запустим командную строку от имени администратора и введем путь_к_агенту\zabbix_agentd.exe -h для того чтобы увидеть полный список комманд.
Теперь воспользуемся ключом -i для установки агента как службы, так же можно воспользоваться -с как на скриншоте для смены положения файла конфигурации на удобное вам.
Теперь воспользуемся zabbix_agentd.exe -s, чтобы запустить службу
Пуск, службы и проверяем запустилась ли служба, и поставилась ли в автозапуск.
Теперь зайдем в панель управления, брэндмауэр Windows, разрешение взаимодействия с приложением или компонентом в брандмауре защитника Windows, Разрешить другое приложение, добавляем файл заббикс агента.
В отличие от установки через инсталлятор, нам понадобится добавлять узел на сервер в ручную, но об этом в другой статье.
## Итоги
В этой статье мы рассмотрели простые способы установки Zabbix агента на сервер под управлением ОС Windows.
https://serverspace.uz/support/help/how-to-zabbix-oracle.mdВ этой публикации я продемонстрирована установка и предварительная настройка Zabbix на сервере под операционной системой Linux Oracle 8.6
## Введение
В этой публикации я продемонстрирую установку и предварительную настройку Zabbix на сервере под операционной системой Linux Oracle 8.6.
Zabbix – утилита, которая позволяет просматривать и отслеживать передаваемый трафик в сети, работоспособность оборудования добавленного в панель управления сервера. Также присутствует возможность отслеживания нагрузки определенного оборудования.
Из личного опыта использования, мониторинг помогал найти петли в сети, ведь мы добавили маршрутизатор компании Cisco и у нас появилась возможность отслеживать трафик любого порта устройства в удобном формате.
## Почему именно он ?
Zabbix - это мощная и гибкая система мониторинга ресурсов и инфраструктуры. Она имеет множество преимуществ, среди которых можно выделить следующие:
Открытый исходный код: Zabbix - это открытое ПО, что позволяет легко интегрировать его с другими системами и настраивать его под конкретные потребности.
Высокая масштабируемость: Zabbix может мониторить множество ресурсов и инфраструктурных элементов, от одной машины до большой кластерной системы.
Расширенный набор функций: Zabbix предоставляет множество инструментов для мониторинга и анализа данных, включая визуализацию данных, автоматическую генерацию тревожных сообщений и уведомлений, а также интеграцию с различными системами управления инцидентами.
Поддержка различных платформ и протоколов: Zabbix поддерживает множество платформ и протоколов, включая Linux, Windows, AIX и другие Unix-подобные операционные системы, а также протоколы SNMP, IPMI, JMX и другие. Гибкость настройки: Zabbix позволяет настраивать мониторинг под конкретные потребности организации и инфраструктуры, используя гибкий язык шаблонов и дополнительные модули.
## Аналоги Zabbix
- Nagios — бесплатная мониторинговая система, которая предоставляет глубокую интеграцию с различными продуктами для мониторинга различных аспектов вашей сети.
- Cacti — программное обеспечение для сбора данных и визуализации производительности сети. Он позволяет пользователям создавать свои собственные графики и диаграммы для наблюдения за производительностью сети.
- Observium — это программное обеспечение для мониторинга сетевых устройств, которое предоставляет великолепный интерфейс для мониторинга сети. Он позволяет пользователям создавать собственные графики и диаграммы для анализа данных производительности в различных контекстах.
- Icinga — бесплатное программное обеспечение для мониторинга сети, которое предоставляет пользователям интуитивно понятный интерфейс для настройки мониторинга сети.
## Отличия между Zabbix и другими аналогами
- Имеет более мощный движок для сбора данных, а именно полноценное ядро SNMP, которое позволяет нам более точно мониторить сеть;
- У него более удобный интерфейс для администрирования и настройки мониторинга сети;
- Предлагает более гибкие и мощные механизмы автоматизации для создания триггеров и правил, которые позволяют быстро реагировать на замечания и исключают потенциальные проблемы в будущем;
- Предоставляет более широкий спектр инструментов для мониторинга и анализа производительности сети.
## Требования
Для работоспособности требуется:
- Сервер на операционной системе Linux Oracle;
- Обновленные пакеты приложений и системы;
- Установлена база данных MySQL или PostgreSQL.
## Начало работы
Обновите систему выполнив команду.
```bash
yum update
```
Выполните перезагрузку системы после завершения обновления.
```bash
systemctl reboot
```
Установите базу данных MySQL.
```bash
sudo dnf install @mysql:8.0
```
Запустите службу базы данных, а так же включите автоматический запуск в автозагрузке.
```bash
sudo systemctl enable --now mysqld
```
Проверьте работоспособность базы данных.
## Установка мониторинга системы
Добавьте репозиторий "по" в вашу систему Oracle.
```bash
rpm -Uvh [https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm](https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm)
dnf clean all
```
"dnf clean all" — это команда, которая используется в дистрибутивах Linux, основанных на Fedora или Red Hat, для чистки кэша пакетов.
Когда вы выполняете эту команду, dnf удаляет все скачанные пакеты из кэша, а также все временные файлы, которые могут быть созданы в процессе установки или обновления пакетов. Это может быть полезно, если вы испытываете проблемы с кэшем пакетов или желаете освободить место на диске.
Однако, стоит иметь в виду, что выполнение этой команды удалит все скачанные пакеты, которые в дальнейшем могут понадобиться, так что перед использованием этой команды убедитесь, что вам не понадобятся эти пакеты в будущем.
Произведите установку необходимых компонентов.
```bash
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agentp
```
## Подготовка "БД"
Перед созданием, удостоверьтесь что служба "бд" включена и выполняется в фоновом режиме.
Откройте панель управления "бд" для создания пользователя с корневыми правами управления базы данных.
```sql
create database name_of_db character set utf8mb4 collate utf8mb4_bin;
create user zabbix@your_domain identified by 'password';
grant all privileges on zabbix.* to zabbix@your_domain;
set global log_bin_trust_function_creators = 1;
quit;
```
Инициализируйте на сервере необходимые скрипты, после их выполнения укажите пароль пользователя.
```
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p Zabbix
```
После импорта схемы для нашей "бд" требуется отключить параметр "log_bin_trust_function_creators".
```
set global log_bin_trust_functuin_creators = 0;
quit;
```
Перейдите в каталог с конфигом "бд" и внесите изменения.
```
nano /etc/zabbix/zabbix_server.conf
```
## Проверка
Запустите службы забикс сервера, а также включите их в автозагрузку системы.
```bash
systemctl restart zabbix-server zabbix-agent httpd php-fpm && systemctl enable zabbix-server zabbix-agent httpd php-fpm
```
Как запустите ПО, вы можете обратиться к адресной строке вашего браузера, и вписать айпи адрес вашего сервера забикс, "http://your_ip_of_server/zabbix"
Произведите установку опираясь на web-интерфейс.
При настройке на web-интерфейсе, не забывайте какой пароль указываете для базы данных.
Как выполните полную настройку на web-интерфейсе, вас перенесет на окно авторизации.
Используйте логин Admin и пароль password для авторизации (если вы меняли пароль, то впишите тот который указали при создании пользователя).
Пример отображения трафика передаваемый через коммутатор.
## Вывод
В этой публикации мы разобрали следующие вопросы:
- Как установить "бд" MySQL и подготовить ее для работы с мониторингом системы;
- Как установить мониторинг системы Zabbix на сервер под операционной системой Linux Oracle 8.6;
- Узнали для чего нужна переменная "log_bin_trust_function_creators".
https://serverspace.uz/support/help/how-to-deploy-laravel-app-at-ubuntu.mdИнструкция по установке Laravel-приложение на сервере под OC Ubuntu Linux 20.04. От создания БД до вывода информации в браузер.
## Введение
В этой публикации я разберу как развернуть Laravel-приложение на сервере под операционной системой Ubuntu Linux 20.04.
Laravel — это общедоступный PHP-фреймворк, который был разработан еще в 2011 году. Используется для создания многоуровневых Web-ресурсов и приложений.
Он оперативно поддерживает функциональное тестирование при создании ПО, и можно не использовать другие инструменты тестирования ПО. Легкая масштабируемость проектов на фреймворке Laravel.
Фреймворк обеспечивает простую, но быструю и доступную систему авторизации и сразу дает права доступа к вашим файлам. Что позволяет нам, сделать ограничение на доступ неавторизованных пользователей. Обеспечение защиту приложений, код фреймворка защищен от таких угроз как SQL-инъекций или межсайтовых подделок запросов.
Laravel предоставляет простой и гибкий подход к разработке веб-приложений. Он поставляется с мощными функциями и инструментами, которые позволяют разработчикам быстро и легко создавать и обслуживать веб-приложения. Также для продвинутых разработчиков есть возможность использовать шаблоны и модули для более эффективного проектирования и разработки приложений. Кроме того, Laravel поддерживает много популярных баз данных, таких как MySQL, Postgres, SQLite и MS SQL, что делает его более пригодным для разработки приложений с различными базами данных. У него есть встроенные механизмы для безопасности и аутентификации, ко всему перечисленному он имеет мощные инструменты для мониторинга приложений. Все это делает Laravel очень привлекательным для разработки веб-приложений.
Nginx поддерживает следующие уникальные фишки:
- Управление производительностью: Nginx предоставляет много инструментов для настройки производительности сервера, включая возможность масштабирования и контроля нагрузки.
- Поддержка большого количества протоколов: Nginx поддерживает широкий спектр протоколов, включая HTTP, HTTPS, FTP, SMTP и многие другие.
- Управление кешированием: Nginx позволяет настраивать кеширование, чтобы улучшить производительность и повысить скорость отклика.
- Поддержка распределенных приложений: Nginx поддерживает распределенные приложения, позволяя распределять нагрузку между несколькими серверами.
- Поддержка виртуального хостинга: Nginx позволяет делать виртуальный хостинг, что позволяет запускать несколько веб-сайтов на одном сервере.
## Требования к системе
- Сервер на операционной системе Linux Ubuntu;
- Обновленные пакеты системы и приложений;
- Установленный Web-сервер Nginx, "БД" MySQL, PHP и Composer.
## Начало работы
Обновляем пакеты.
```bash
sudo apt update
```
Устанавливаем нужные пакеты модулей PHP.
```bash
sudo apt install php-mbstring php-xml php-bcmath
```
## Создание БД
Чтобы показать основное предназначение фреймворка, создадим таблицу "city list", где я внес лист популярных городов.
Заходим в консоль MySQL из под root`a базы данных.
```bash
sudo mysql
```
Создал новую "БД".
Создал пользователя и выдал все права для созданной "БД".
Выдал все права для "БД" пользователю, затем вышел из "БД".
Это дает пользователю все права доступа к "БД" для администрирования.
Проверяем можем ли зайти в MySQL используя учетные данные нашего пользователя.
Проверяем так же доступ к созданной "БД", затем выйдите из "БД".
## Создание нового приложения
Создаю табличку в "БД".
Вносим данные в таблицу. В моем случае, вношу данные популярных городов.
Проверяем, внеслись ли записи в таблицу. Появится вот такое окно.
## Разработка приложения для фреймворка
После того, как создал приложение _citylist_. Она используется для показа основных конфигурации фреймворка и доступом подключения к "БД".
Создал новый каталог "citylist", где будет содержаться сам фреймворк.
```bash
composer create-project --prefer-dist laravel/laravel "name_of_your_project"
```
После установки, будет показана следующая информация в командной строке.
Теперь открываем каталог нашего приложения, запускаем команду artisan для того, чтобы проверить установились ли нужные компоненты правильно.
```bash
cd "name_of_your_project"
php artisan
```
Artisan – это CLI входящий в состав фреймворка. Он выдает ряд команд, которые полезны при разработке вашего приложения.
Если все сделано как по инструкции, то показано будет следующие.
## Настройка фреймворка
Настройка фреймворка расположена в каталоге "config" вашего главного каталога. Когда мы устанавливали фреймворк через утилиту "Composer" то создался _файл среды_.
_Файл среды_ — записаны настройки вашей среды, где находится приложение, и ставит свой файл по приоритету выше перед другими файлами настроек, которые находятся в каталоге "config".
Открываем файл ".env".
```
Nano .env
```
Хоть и в файле на первый взгляд много конфигураций, но я буду настраивать лишь те, которым нам понадобятся. Дальше я напишу и опишу, какие параметры я буду менять.
- APP_NAME: Имя вашего проекта, в основном пользуется для уведомления;
- APP_ENV: Актуальная среда вашего приложения;
- APP_KEY: Специальный ключ для генерации хэш-сумм, создается сразу после установки фреймворка, его не трогаем;
- APP_URL: Сюда вписываем ваш ip-адрес;
- DB_DATABASE: имя вашей "БД";
- DB_USERNAME: имя пользователя для подключения к "БД";
- DB_PASSWORD: пароль к "БД" чтобы подключаться к ней.
Изменяем следующие ключи в файле приложения.
## Настройка веб-сервера
Перемещаем папку нашего приложения в каталог "/var/www", где обычно хранят все приложения, которые функционируют на веб-севере.
```
sudo mv ~/yourproject /var/www/yourproject
```
Выдал доступ к папкам, куда фреймворк сохраняет созданные приложением файлы.
Приступим к настройке веб сервера. Создаем файл настроек виртуального хоста.
```
sudo nano /etc/nginx/sites-available/yourproject
```
Вставляем следующие настройка для веб-сервера.
```css
server {
listen 80;
server_name IP ADDRESS/DOMAIN_NAME;
root /var/www/YOURPROJECT/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;}
location ~ /\.(?!well-known).* {deny all;}
}
```
Теперь, запускаем новый файл с настройками виртуального хоста, создаем ссылку на ваш проект в "sites-enabled".
```
sudo ln -s /etc/nginx/sites-available/yourproject /etc/nginx/sites-enabled/
```
Проверяем на синтаксис ошибок в настройках.
```
sudo nginx -t
```
Перезагружаем веб-сервер
```bash
systemctl reload nginx
```
## Настройка главной страницы фреймворка
Открываем файл главного маршрута.
```
nano routes/web.php
```
Вносим следующие параметры в наш файл.
```php
https://serverspace.uz/support/help/how-to-django-postgres-gunicorn.mdDjango — мощный фреймворк для создания приложений на Python, который помогает сократить время разработки с его библиотекой инструментов и модулей.
## Введение
**Django** — это бесплатный и открытый фреймворк для разработки веб-приложений на языке Python. Он предоставляет мощные инструменты для разработки полноценных веб-сайтов и веб-приложений. Он позволяет разработчикам создавать приложения быстро и эффективно без потери качества.
Django славится своей универсальностью и мощью в веб-разработке. Это мощный фреймворк для создания приложений на Python, который помогает сократить время разработки с его библиотекой инструментов и модулей. Он также известен своими мощными функциями шаблонизации и автоматического построения URL. Этот фреймворк также обеспечивает хорошую безопасность приложений, так как он автоматически проверяет входящие данные и предотвращает атаки.
## Сравнение Django с другими фреймворками
- Flask (Python) Недостатки: приходится писать большую часть кода самому и недостаточно инструментов для больших проектов;
- Ruby on Rails Недостатки: медленный старт, высокая нагрузка на память и высокий порог для входа;
- Pyramid Недостатки: сложная настройка и недостаточно инструментов для больших проектов;
- Laravel (PHP) Недостатки: сложен в конфигурации и нет удобного средства для построения "БД".
**PostgreSQL** славится своей высокой надежностью и производительностью. Он также имеет расширенные возможности для анализа данных, включая аналитические функции и инструменты для работы с геоспатиализацией. Также существует широкий выбор плагинов, которые могут дополнить его функциональность.
Gunicorn славится своей легкостью использования и высокой производительностью. Это простой диспетчер процессов Python, который позволяет обрабатывать множество запросов на одном сервере. Gunicorn имеет множество встроенных функций, таких как поддержка протокола HTTP/1.1, автоматическое перезапускание и масштабирование воркеров. Он также может использоваться в сочетании с другими веб-фреймворками, такими как Django и Flask.
**Nginx** — это один из наиболее популярных и надежных веб-серверов. Он прост в установке и настройке, имеет высокую производительность и низкое использование ресурсов, поддерживает веб-приложения и динамические веб-сайты, а также имеет много различных функций, включая отдачу статического контента, проксирование, URL-перенаправление и маршрутизацию. В основном он может быть использован для обработки веб-трафика, а также для обеспечения отказоустойчивости и высокой производительности.
## Начало работы
Обновите пакеты ПО.
```bash
sudo apt update
```
Установите следующее ПО.
```bash
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl
```
## Настройка БД
Выполняем вход в Postgres.
```
sudo -u postgres psql
```
Команда чтобы создать базу данных для проекта.
```sql
CREATE DATABASE "yournameproject";
```
Создаем "БД", пользователя, а так же произведем оптимизацию нашей "бд" для ускорения ее работы.
```sql
CREATE DATABASE "yournameproject"
```
База данных была создана, требуется внести изменения по определенным параметрам.
```sql
CREATE USER "YourUsername" WITH PASSWORD 'password';
```
Юзер был успешно создан, и я решил оптимизировать "бд" изменив параметры проделал оптимизацию настроек для ускорения работы нашей "БД".
```sql
ALTER ROLE "Yourproject" SET timezone TO 'UTC';
ALTER ROLE "Yourproject" SET default_transaction_isolation TO 'read committed';
ALTER ROLE "Yourproject" SET client_encoding TO 'utf8';
```
Эти параметры созданы для того, чтобы дать пользователю учетную запись для подключения к базе данных с паролем.
Далее роль для пользователя будет настроена с временной зоной по умолчанию UTC, изоляцией транзакций по умолчанию "Чтение совершенно" и кодировкой клиента по умолчанию UTF-8.
Выдал права пользователю для администрирования "БД".
```
GRANT ALL PRIVILEGES ON DATABASE "Yourproject" TO "myprojectuser";
```
## Создание рабочей среды для проекта
Эта команда обновляет и устанавливает программу pip и virtualenv. Команда sudo -H позволяет запускать программу от имени пользователя с повышенными правами доступа.
```
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
```
После установки инструмента "virtualenv", я начинаю формировать область под свой проект.
```
mkdir ~/yourprojectdir
cd ~/myprojectdir
```
В каталоге создал виртуальную среду.
```
virtualenv yourprojectenv
```
_virtualenv — это команда, позволяющая создавать изолированные окружения для различных проектов и использовать разные версии библиотек и приложений. _
Это позволяет поддерживать одинаковый стек технологий для всех проектов в организации, снижая риск несовместимости и ошибок в работе.
В этом каталоге будет сразу находится локальная версия Python и система управления пакетами.
Перед тем как назначить требования для нашего проекта, нужно запустить виртуальную среду. Прописываем эту команду.
```
source yourprojectenv/bin/activate
```
Командная строка изменится, показывая, что теперь вы работаете в виртуальной среде Python.
Как запустили виртуальную среду, установите необходимые компоненты.
```bash
pip install django gunicorn psycopg2-binary
```
## Добавление проекта
Для фреймворка уже был создан каталог проекта, требуется указать по какому пути будет проходить инициализация, ведь во втором каталоге располагается подкаталог, внутри которого размещен код со скриптом управления.
```
django-admin startproject yourproject ~/yourprojectdir
```
После, нужно поменять пару параметров в созданном файле проекта. Открываем файл с настройками через любой текстовый редактор.
```
nano ~/yourprojectdir/yourproject/settings.py
```
Теперь необходимо поменять параметры.
Затем пролистав ниже, находим раздел, который предоставляет пароль, наименование "БД".
Так же ищем строку DATABASES, сконфигурируйте эту строку под свои данные.
Пролистнув ниже, добавьте параметр который укажет где хранить статичные файлы.
## Завершающая настройка
Используя скрипты управления переношу схему "БД".
```
~/yourprojectdir/manage.py makemigrations
~/yourprojectdir/manage.py migrate
```
Создал административного пользователя для проекта.
```
~/yourprojectdir/manage.py createsuperuser
```
Собрал весь статичный контент в заданном каталоге.
```
~/myprojectdir/manage.py collectstatic
```
Команду нужно подтвердить. После, все файлы переместятся в каталог "static" проекта.
Так же открываем порт, который будет использоваться для проекта.
```
sudo ufw allow 2222
```
## Проверка
Проверяем наш проект, перед этим запустив сервер фреймворка.
```
~/myprojectdir/manage.py runserver your_ip:2222
```
Переходим в веб браузер для проверки работоспособности фреймворка.
Авторизовавшись на веб-ресурсе, попадаем в панель управления.
## Вывод
В этой публикации я разобрал как подготовить систему под операционной системой Ubuntu 20.04 для запуска проекта на Django с базой данных Postgres; веб-сервером Gunicorn и настроенным прокси Ngnix.
https://serverspace.uz/support/help/ustanovka-agenta-zabbix-na-ubuntu.mdУстановка Zabbix агента на Ubuntu 20.04 и настройка для подключения к серверу мониторинга.
Агент Zabbix - приложение, используемое в онлайн-мониторинге состояния и ресурсов станций, например статистики жесткого диска, состояния памяти, загруженности процессора, доступности портов и т. д. Давайте рассмотрим установку его на Ubuntu.
Скачаем программу используя:
```bash
sudo apt-get install zabbix-agent
```
Установив программу мы захотим её настроить. Мы сможем сделать это, открыв /etc/zabbix/zabbix_agentd.conf. и изменив некоторые параметры. Те, которые нам нужны, это: Server= ServerActive= Hostname=. Почитайте описания переменных, в Server и ServerActiv подставляем адрес нашего Zabbix, Hostname - имя узла(регистрозависимое), если оставить переменную неопределенной агент подставит название локальной машины.
Перезагрузим службу.
```bash
sudo systemctl restart zabbix-agent
```
Посмотрим, запустился ли он.
```bash
sudo systemctl status zabbix-agent
```
## Заключение
Мы разобрались, как скачать агент и настроить его работу с вашим сервером Zabbix.
https://serverspace.uz/support/help/kak-najti-vse-fajly-soderzhashhie-opredelennyj-tekst-v-linux-i-windows.mdВ статье описывается, способ поиска файлов, содержащие определенный текст, на компьютерах под управлением Linux и Windows
## Как найти файлы, которые содержат определенный текст под Linux
Самый популярный интерпретатор команд в Linux — bash. Исторически в Linux была только командная строка, графический интерфейс был добавлен позже. По этой причине функционал Linux в CLI-режиме гораздо богаче, чем "в графике". Лучший способ найти файлы, содержащие необходимый текст под Linux — использовать утилиту _grep_. Она как правило уже "встроена" во все современные дистрибутивы. Но даже если у вас его не окажется — программу всегда можно установить дополнительно.
Команда для установки в ОС на основе Debian (например, Ubuntu):
```bash
apt-get update && apt install grep
```
Команда для установки в ОС с кодовой базой RedHat (например, Centos):
```bash
yum install grep
```
Чтобы найти все файлы с необходимой строкой, достаточно запустить такую команду:
```
grep -r
```
Чтобы сделать вывод более удобным и скрыть сообщения об ошибках, вы можете добавить флаг _-s_ к команде:
Еще один очень полезный флаг — _-n_. Он покажет номер строки, в которой содержится искомый текст, что может быть полезно для при работе с большими файлами:
## Как правильно искать текст в файлах на компьютере с Windows
К сожалению, в Windows нет хороших встроенных инструментов поиска, но мы можем быстро и просто устранить этот недочет Microsoft.
Первый способ — все та же утилита _grep_. Она была "портирована" на ОС Windows, для использования сделайте следующее:
Загрузите [установщик](https://sourceforge.net/projects/gnuwin32/files/latest/download), запустите его и следуйте стандартным шагам мастера установки:
Когда программа установится, стоит добавить новую переменную окружения, это сделает дальнейшую жизнь более комфортной. Откройте дополнительные параметры вашего ПК и отредактируйте переменную PATH:
Добавьте новый параметр в переменную PATH в соответствии с тем, куда была установлена утилита:
Теперь можно просто запустить интерпретатор cmd и выполнить требуемый поиск. Синтаксис программы идентичен таковому в "оригинальном" инструменте под Linux:
**ПРИМЕЧАНИЕ:** Поскольку утилита была портирована и система Windows для нее все же "не родная", корневой каталог системы отображается в стиле Linux, как "слэш" вместо диска C:.
Другой, более "органичный" для Windows метод — установка любого продвинутого текстового редактора, например Notepad++. Загрузите установщик [с сайта проекта](https://notepad-plus-plus.org/downloads/), запустите его и установите приложение как любое другое:
Теперь можно использовать Notepad++ для поиска текста, просто запустите его и выберите в меню команду **"Поиск" > "Найти в файлах"**. Затем заполните соответствующие поля условий поиска:
Результат ниже:
## Заключение
В этой статье я описал несколько способов, призванных упростить и сделать текстовый поиск по файлам в Linux и Windows более эффективным.
https://serverspace.uz/support/help/sozdanie-i-nastroyka-uzlov-seti-i-elementov-dannih.mdБыстрый разбор создания и базовых настроек узлов сети и элементов данных в Zabbix
## Вступление
Теперь когда наши сервер и агенты запущены и работают давайте посмотрим как создать наши первые узлы сети и элементы данных.
## Узлы сети
Идем в настройки → Узлы сети.
Нажимаем на кнопку создать.
- Вводим чувствительное к регистру имя узла, такое же как то которое мы настраивали на машине которую хотим опрашивать.
- Видимое имя определяет как узел будет подписан в графиках, картах, итд. в Zabbix. Можно оставить пустым если имя узла нас устраивает.
- Шаблон это заранее созданный набор триггеров, графиков, элементов данных, итд. узел подключенный к шаблону автоматически оказывается подключен ко всему что связанно с этим шаблоном.
- Выберите группу узлов сети к которой будет принадлежать этот узел, одну из готовых, или создайте свою просто напечатав её имя.
- В строчке интерфейс нажмите кнопку добавить и выберите его тип. Zabbix может работать через агент, SNMP, JMX и IPMI, нас пока интересует агент.
- Дальше вводим адрес или DNS имя узла и выбираем что Zabbix будет использовать для опроса.
- Можно добавить описание.
- Выпадающее меню позволит выбрать будет ли сервер опрашивать узел сам или с помощью прокси.
- Не забудем поставить галочку "активированно", для того чтобы узел стал активным и опрашиваемым.
## Элементы данных
Элементы данных отвечают за сбор данных с узлов сети, давайте посмотрим как они создаются.
Настройки → Узлы сети пункт "Элементы данных" в строчке узла сети, потом нажимаем "Создать элемент данных".
- Здесь выбираем Имя для элемента данных и выбираем подходящий тип данных.
- Ключ - определяет какие данные будут запрашиваться у узла, выберите тот за которым вы хотите наблюдать, параметры ключа в квадратных скобках помогут настроить вид получаемых данных.
- Тип информации уточняет тип данных: Числовой, числовой с точкой для дробных данных, символьный для коротких текстовых данных, Текст для длинных текстов,
- Журнал - для длинных текстов с журнальными свойствами вроде даты, источника, итд.
- Интерфейс узла сети - каким интерфейсом из настроенных на узле будет пользоваться элемент.
- Единица измерения - позволит выдавать полученные данные в виде нужной еденицы измерения, с соответствующей обработкой.
- Интервал обновления и пользовательские интервалы - указывают как часто нужно получать данные по этому элементу, можно выбрать интервалы в минутах (m), часах (h), днях (d), максимум один день, возможна тонкая настройка через пользовательские интервалы.
- Период хранения истории - как долго вы хотите хранить историю полученных данных.
- Хранение усредненных значений - то же самое для минимальных, средних значений, среднего количества.
- Отображение значений - преобразовывает значения элемента данных в выбранном более удобном формате, например заменяет нули и еденицы на доступно/не доступно, итд., не меняет хранимые значения.
- Можно добавить описание.
- Осталось только поставить галочку "Активированно" для включения элемента в опрос.
Перед созданием элемента можно проверить правильно ли он настроен.
Всё хоршо. Добавляем.
## Заключение.
Мы бегло рассмотрели основные настройки при создании узлов сети и элементов данных в Zabbix и как их создавать.
https://serverspace.uz/support/help/kak-ustanovit-vnc-na-server-pod-ubuntu-20-04.mdПосле прочтения данной статьи вы узнаете, как в графическом режиме организовать постоянный удаленный доступ к вашему серверу на Ubuntu 20.04
## Что такое VNC и для чего он нужен
VNC (Virtual Network Computing) — программное обеспечение, которое представляет ваши "локальные" клавиатуру и мышь так, будто они напрямую подключены к любому другому удаленному серверу. Это позволяет легко и просто управлять файлами, ПО и настройками на удаленном сервере.
## Что нужно знать перед установкой
Хотя технически ничего не мешает использовать VNC-консоль для управления сервером из командной строки, с практической точки зрения это совершенно бессмысленно, так как в таком сценарии лучше использовать SSH (кроме случаев когда нужно восстанавливать ОС после глобальной аварии). А так как наличие графического интерфейса требует больше ресурсов системы, потребуется как минимум 2 Гб оперативной памяти, 2-ядерный процессор и 20-30 Гб дискового пространства.
## Установка
Для установки VNC пожалуйста выполните следующие действия:
Обновите системный кеш и запустите установку при помощи пакетного менеджера:
```bash
apt-get update && apt install xfce4-goodies tightvncserver xfce4
```
Запустите установленную утилиту и установите пароль VNC-доступа. Вы также можете установить отдельный пароль для режима "только просмотр", если хотите:
```
vncserver
```
Остановите сервис:
```
vncserver -kill :1
```
Добавьте одну строку в файл настроек:
```
echo "startxfce4 &" >> /root/.vnc/xstartup
```
Предоставьте разрешения на выполнение предустановленному скрипту:
```bash
chmod -rwxr-xr-x /root/.vnc/xstartup
```
Запустите службу снова:
```
vncserver
```
Теперь ваш VNC-сервис готов к использованию. Помните: если вы предпочитаете использовать любой VNC-клиент, будет нужно добавить "59" перед "настоящим" номером порта. Например. если реальный порт равен "1", вы должны вместо этого использовать "5901" в VNC-клиенте:
Если все сделано верно, вы увидите результат, как показано ниже. Вы молодец!
Следующий шаг опционален — можно сделать так, чтобы службу VNC запускалась автоматически. Создайте конфигурационный файл для сервиса:
```
cat /etc/systemd/system/vnc.service
Description=VNC-server
After=syslog.target network.target
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:1.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1
WantedBy=multi-user.target
EOT
```
Добавьте наш сервис в автозагрузку и запустите его вручную чтобы не пришлось перезагружать сервер целиком:
```bash
systemctl enable vnc
systemctl start vnc
```
## Заключение
Теперь, после того как вы прочитали данную статью, вы легко сможете организовать постоянный удаленный доступ к рабочему столу вашего сервера в графическом режиме.
https://serverspace.uz/support/help/snmp-monitoring-s-pomoshhyu-zabbix.mdРассмотрим удобный способ получить необходимые OID, чтобы создать хосты и элементы SNMP для мониторинга их с помощью Zabbix
Давайте рассмотрим другие интерфейсы. Иногда вам понадобится мониторить что-то, что не работает с агентом: принтер, маршрутизатор и т.д. В этом случае вам поможет протокол SNMP.
Сначала нужно найти OID (Object Identifier) переменной – числовой код, который поможет серверу запросить конкретные данные, для мониторинга. Его можно посмотреть в руководстве к устройству или найти с помощью утилиты snmpwalk или любого MIB-браузера (MIB , который вам нравится. В этой статье мы рассмотрим использование snmpwalk.
## snmpwalk
Давайте рассмотрим, как получить OID с помощью snmpwalk.
Установите пакет SNMP. На системах на основе Debian вы можете установить его с помощью:
```bash
sudo apt-get install snmp
```
На системах на основе Red Hat можно использовать:
```bash
sudo yum install net-snmp
```
Для Windows вы можете использовать пакет Net-SNMP для Windows, который доступен на сайте Net-SNMP ([https://www.net-snmp.org/download.html](https://www.net-snmp.org/download.html)).
Узнайте IP-адрес или имя хоста устройства, которое вы хотите опросить, а также версию SNMP, поддерживаемую этим устройством (обычно SNMPv1 или SNMPv2c).
Также вам нужно будет узнать сообщество SNMP для устройства. Оно работает как пароль, который позволяет получить доступ к данным SNMP на этом устройстве. Скорее всего его можно найти в документации или конфигурации устройства, по умолчанию обычно используется "public".
Если вы узнали OID, который вам нужен, из руководства, запустите команду snmpwalk, чтобы проверить, что все работает. Базовый синтаксис для snmpwalk такой же на Windows, как и на Linux или Unix:
```
snmpwalk -v [версия SNMP] -c [строка сообщества] [IP-адрес/имя хоста устройства] [OID или имя MIB]
```
Например:
```
snmpwalk -v2c -c public 192.168.1.1 .1.3.6.1.2.1.1.5.0
```
Получение значения переменной через OID с помощью snmpwalk
Здесь OID .1.3.6.1.2.1.1.5.0 указывает на имя устройства, и команда snmpwalk вернет имя MIB вместе с текущим значением и типом переменной. Чтобы найти OID с помощью snmpwalk, вы можете запустить его без указания OID или имени MIB, чтобы искать интересующий вас вручную.
Получение полного списка OID'ов устройства
После того как вы узнали название переменной, запустите ту же команду, добавив "-On". Это даст нам нужный числовой OID.
Получение цифрового значения OID
Обратите внимание, что у некоторых переменных может быть более одного порта, последнее число в OID показывает этот порт.
## Узел сети
Затем нам понадобится добавить Узел сети с настроенным интерфейсом SNMP и ввести IP-адрес, версию SNMP и SNMP-сообщество вашего устройства. Шаблоны SNMP могут быть полезны, но совместимость с конкретными устройством не гарантируется. В остальном это обычное создание узла сети.
Добавление SNMP интерфейса в узле сети
## Элемент данных
Осталось только создать элемент SNMP: перейдите в "настройки" -> "узлы сети" и нажмите на устройство, которое вы хотите отслеживать. Перейдите на вкладку "элементы данных" и нажмите кнопку "создать элемент данных". Заполните необходимую информацию: имя элемента, тип (для нашего примера, агент SNMPv2), тип информации и OID. Заполните строку "Key" номером OID.
Создание элемента данных
Нажмите "test", чтобы убедиться, что все работает.
Тестирование опроса элемента данных
После того как все настроено, вы должны начать видеть настроенные данные с устройства в Zabbix. Вы можете использовать графики, триггеры и другие функции Zabbix для мониторинга устройства и получения предупреждений в случае возникновения проблем.
## Заключение
Мы узнали, как получить необходимые OID и создать хосты и элементы SNMP для мониторинга их с помощью Zabbix.
https://serverspace.uz/support/help/nastrojka-konvejera-nepreryvnoj-integraczii-s-concourse-ci-v-ubuntu-20-22.mdИнструкция по настройке конвейера непрерывной интеграции с Concourse CI в Ubuntu 20/22. Запуск тестового приложения Hapi.js
## Введение
Настройка непрерывной интеграции и автоматизация конвейеров тестирования с помощью компонуемого декларативного синтаксиса Concourse CI. По сравнению с остальными системами для настройки непрерывной интеграции, команда Concourse вкладывают все усилия, чтобы упростить управление конвейером непрерывной интеграции.
В предыдущих инструкциях рассматривали скачивание и настройку Concourse на сервер Ubuntu 22.04 и обезопасили наш web-интерфейс при помощи SSL от центра сертификации Let's Encrypt.
В этой инструкции рассмотрим, использование Concourse для запуска тестов в автоматическом режиме, а также изменения будут фиксироваться в нашем репозитории.
Рассмотрим настройку конвейера непрерывной интеграции с использованием приложения "hello world", при помощи кода [Hapi.js](https://hapijs.com/), созданного на web-фреймворке Node.js для обеспечения процесса синхронизации кода со сборкой и тестированием. Добавим определения CI в сам репозиторий продукта. Воспользуемся терминалом и утилитой "fly" для запуска конвейера в Concourse. В конце, добавим изменения в наш репозиторий, чтобы сохранять их и реализовать тесты в рабочем процессе CI.
## Подготовка к работе
Перед началом работы, необходимо запустить сервер на базе Ubuntu/Debian/CentOS, оперативная память должна составлять не менее 1 GB.
Настройте права для пользователя на выполнение с помощью sudo.
Скачайте и установите утилиту Concourse из официального сайта или из GitHub и web-сервер Nginx установленный при помощи пакетного менеджера. Необходимо настроить сертификат безопасности TLS/SSL, настроить обратный proxy-сервер для web-интерфейса Concourse.
Необходимо получить доменное имя, указывающее на наш сервер Concourse.
Воспользуйтесь следующими инструкциями для правильной настройки:
- [Установка и настройка сервера с обычным пользователем](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/);
- [Установка Concourse CI](https://serverspace.ru/support/help/ustanovka-concourse-ci/);
- [https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/](https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/)[Установка и настройка Nginx](https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/);
- [Настройка безопасности Concourse CI с помощью SSL](https://serverspace.ru/support/help/nastrojka-bezopasnosti-concourse-ci-s-pomoshhyu-ssl/);
- [Настройка безопасности Nginx](https://serverspace.ru/support/help/vozmozhnosti-ispolzovania-certbot-dlia-web-servera-nginx/).
В этой инструкции весь процесс работы рассматривается на рабочем компьютере с заранее установленной Ubuntu Linux. По этой причине следует удостовериться, что установлены разные утилиты для редактирования текстовых файлов, которые удобны вам в использовании.
Также вам потребуется утилита Git на локальном компьютере и для правильной настройки воспользуйтесь нашей инструкцией.
Когда убедились, что сервер Concourse работает и на локальном компьютере имеются все инструменты для работы с текстовыми файлами и установлен Git, приступим к основной задаче нашей инструкции.
## Использование Fly в командной строке
Необходимо убедиться, что на основном сервере установлен Concourse Worker и Fly (для управления конвейером с помощью командной строки).
При повседневной работе с Concourse CI удобнее установить fly на рабочий компьютер, в котором установлены ежедневные инструменты для работы с разработкой разных продуктов.
Для получения актуальной версии fly, необходимо открыть web-интерфейс Concourse CI установленный на сервере:
```
https://server_url
```
После авторизации в сервере, в нижней правой части экрана можно скачать fly выбрав свою систему на рабочем месте:
Рисунок 1 – Версия Fly и ссылка на файлы
Нажимаем на иконку нашей локальной системы и скачиваем в удобную нам директорию, в нашем случае это Загрузки.
### Linux и MacOS
Если на вашем основном рабочем месте установлен Linux или устройство работающее на MacOS, выполните следующие действия для установки и запуска Fly:
```bash
chmod +x /root/fly
```
Далее необходимо добавить утилиту fly в окружение "PATH" для запуска в терминале:
```
install /root/fly /usr/local/bin
```
Запустим утилиту fly и получим информацию о версии:
```
fly –version
```
Получим результат, который совпадает с версией из web-интерфейса:
```
7.9.0
```
### Windows
Если основная система на рабочем месте Windows, необходимо запустить PowerShell и добавить директорию bin:
```
PS C:\Пользователи\Serverspace> mkdir bin
```
Необходимо скопировать скачанную утилиту fly.exe в директорию bin:
```
PS C:\Пользователи\Serverspace> mv .\Загрузки\fly.exe .\bin\
```
Проведём проверку на актуальность профиля, выполнив команду:
```
PS C:\Пользователи\Serverspace> Test-Path $profile
```
При получении результата True, актуальный профиль имеется в системе.
При получении результата False, необходимо создать новый профиль:
```
PS C:\Пользователи\Serverspace> New-Item -path $profile -type file -force
```
В результате получим:
```
Каталог: C:\Пользователи\Serverspace\Документы\WindowsPowerShell
Mode LastWriteTime Length Name
---- ------------- --------- ----
-a---- 31.01.2023 18:05 0 Microsoft.PowerShell_profile.ps1
```
Откроем созданный файл профиля утилиты для редактирования текстов Notepad:
```
PS C:\Users\Serverspace> notepad.exe $profile
```
Откроется новое окно редактора текстовых файлов и добавим в окружение PATH и укажем путь до файла:
```
$env:path += ";C:\Пользователи\Serverspace\bin"
```
Сохраним файл и выполним выход.
Запустим чтение пути из $profile:
```
PS C:\Пользователи\Serverspace> . $profile
```
Далее выполним команду для проверки версии скачанного файла fly:
```
PS C:\Пользователи\Serverspace> fly.exe –version
```
В результате получим:
```
7.9.0
```
При выполнении команд из Windows, вам необходимо изменять каждую команду fly (в этой инструкции) на fly.exe.
## Авторизация с помощью командной строки
После успешного запуска fly, необходимо войти на установленный Concourse, в каждом сервере может использоваться несколько "target", с помощью которых можно идентифицировать необходимый конвейер в системе и в нём выполнять команды.
В этой инструкции рассмотрим tutorial в целевом названии системы Concourse:
```
fly -t tutorial login -c https://concourse_server_url
```
Необходимо заполнить логин и пароль из конфигурационного файла /etc/concourse/web_environment нашего сервера.
В результате получим:
```
logging in to team 'main'
username: serverspace
password:
target saved
```
Если авторизация выполнена успешно появиться файл .flyrc в домашнем каталоге.
Проверим создание "tutorial" в .flyrc:
```
fly -t tutorial sync
```
В результате получим:
```
version 7.9.0 already matches; skipping
```
## Разветвление и клонирование репозитория
После настройки fly, необходимо настроить репозиторий для использования конвейеров Concourse.
В web-браузере откроем ссылку на репозиторий, которым воспользуемся в нашей инструкции.
В Concourse необходимо добавить конвейер непрерывной интеграции в основной [ветке репозитория](https://github.com/do-community/hello_hapi).
Рисунок 2 – Репозиторий hello_hapi
В терминале перейдём в директорию пользователя. Сделаем копию репозитория на нашем рабочем компьютере, для этого воспользуемся следующими командами утилиты git для клонирования и перейдём в новую ветку:
```bash
cd
git clone https://github.com/githubUser/hello_hapi
cd hello_hapi
git checkout -b pipeline
```
После выполнения команд получим следующую строку:
```
Switched to a new branch 'pipeline'
```
Мы выполнили переключение на новую ветку.
## Настройка непрерывной интеграции для приложения
Определим наши файлы, которые связаны с репозиторием проекта. Тем самым обеспечим синхронизацию работы непрерывной интеграции с тестируемым кодом.
Тестовый набор находится в директории test. В нём находится три теста. Сценарий тестов находится в package.json, который хранит элемент test в объекте scripts.
Необходимо создать директорию с названием ci и в нём определить две подпапки с названиями tasks и scripts и в них разместим файлы непрерывной интеграции продукта.
Выполним следующую команду:
```
mkdir -p ci/{tasks,scripts}
```
## Добавление конвейера
В директории ci создадим файл с названием pipeline.yml, в котором укажем наши конфигурационные настройки:
```
vim ci/pipeline.yml
```
После создания конфигурационного файла для основного конвейера, необходимо добавить в него нашу конфигурацию.
### Определение для кэша NPM
Добавим следующую конфигурацию:
```yaml
---
resource_types:
- name: npm-cache
type: docker-image
source:
repository: ymedlop/npm-cache-resource
tag: latest
```
Процессы, отделяющиеся от данных непрерывной интеграции, обрабатываются в Concourse и извлекают информацию о статусе абстракции и они преобразуются в ресурсы.
Ресурсы — являются данными источников для использования Concourse при получении или отправления информации.
Строка resource_types будет определять новые типы ресурсов, которых можно будет реализовать в своем конвейере.
### Определение и кэширование репозитория
Добавим следующий кусок кода в pipeline.yml для определения фактического ресурса для конвейера:
```
resources:
- name: hello_hapi
type: git
source: &repo-source
uri: https://github.com/githubUser/hello_hapi
branch: master
- name: dependency-cache
type: npm-cache
source:
https://serverspace.uz/support/help/nastrojka-konvejera-nepreryvnogo-razvertyvaniya--gitlab-ubuntu-20-22.mdИнструкция по настройке конвейера непрерывного развертывания с помощью GitLab на Ubuntu 20/22. Тестирование непрерывного развертывания
## Введение
[GitLab](https://about.gitlab.com/stages-devops-lifecycle/) является платформой для совместной работы команд разработчиков и проектом с открытым исходным кодом, в котором реализованы различные полезные функции для DevOps и где можно размещать репозиторий кода. Также платформа предоставляет возможность для отслеживания проблем, размещения пакетов и реестров, сопровождения Wiki, настраивания конвейеров непрерывной интеграции и развертывания (CI/CD).
В этой инструкции рассмотрим создание конвейера непрерывного развертывания с помощью платформы GitLab. Настроим его при создании образа Docker, разместим в реестр контейнеров GitLab и развернем на собственном сервере, используя утилиту SSH. Запуск конвейера будет для всех фиксаций, размещенных в репозиториях.
Необходимо развернуть статическую web-страницу, но в данной инструкции большое внимание будет обращено на настройку конвейера непрерывного развертывания.
После выполнения всех шагов в этой инструкции, мы сможем посетить нашу платформу, введя в адресную строку браузера IP-адрес нашего сервера для получения результатов автоматического развертывания.
## Подготовка к работе
С необходимыми требованиями для развертывания GitLab на своем сервере, вы можете ознакомиться на [официальном сайте](https://about.gitlab.com/) проекта.
Также вам необходимо развернуть [сервер на базе Ubuntu/Debian/CentOS](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/). Настроить брандмауэр и добавить пользователя с правами доступа на выполнения команд, используя sudo.
[https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/)[Установить Docker](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) согласно нашей инструкции.
Зарегистрироваться на [сайте GitLab](https://gitlab.com/) для развертывания своего проекта, либо развернуть в собственном сервере, как показано в [нашем руководстве](https://serverspace.ru/support/help/ustanovka-gitlab-na-ubuntu/).
## Создание репозитория в GitLab
Первым шагом является создание нового проекта в репозитории. Создадим в нём HTML файл. Позже этот файл скопируем в образ Nginx Docker, который мы развернем на собственном сервере.
Авторизуйтесь в платформе и создайте проект.
Рисунок 1 – Добавление нового проекта
Выберем **Create blank project**.
Рисунок 2 - Выбор шаблона проекта
Укажем название проекта, URL проекта, видимость проекта и нажмём на кнопку **Create project**.
Рисунок 3 – Настройки проекта
Создадим новый файл с помощью кнопки **New file**.
Рисунок 4 – Создание нового файла
Укажем в названии файла index.html и вставим наш код:
```html
GitLab ServerSpace
# Our project in GitLab
```
Необходимо сохранить изменения с помощью кнопки Commit. Укажем название нашего изменения и щелкнем по кнопке Commit.
В этом коде создается пустая страница с одним заголовком, отображающим при открытии страницы надпись Our project in GitLab.
Создадим Dockerfile и скопируем файл index.html в образ web-сервера Nginx.
Вернемся на страницу нашего проекта и создадим новый файл.
Укажем в названии Dockerfile и вставим следующий код.
```
FROM nginx:1.18
COPY index.html /usr/share/nginx/html
```
Рисунок 5 – Добавление Dockerfile
В параметре FROM обращаемся к образу для наследования, в нашем случае образ nginx:1.18. Необходимо указывать версии образов, при указании параметра latest, могут возникнуть проблемы при сборке проекта.
Параметр COPY копирует ранее созданный index.html в /usr/share/nginx/html в образе Docker. В этом каталоге будут храниться статические страницы HTML-файлов.
Внесём изменения в репозиторий, нажав на кнопку Commit.
В следующем шаге рассмотрим настройку GitLab Runner для контроля выполнения заданий по развертыванию.
## Настройка агента GitLab Runner
Отслеживание среды происходит следующим образом, необходимо зарегистрировать свой сервер, как исполнителя GitLab с закрытым ключом SSH.
При использовании SSH для входа на свой сервер конвейера развертывания, необходимо сохранить приватный ключ SSH в нашей переменной GitLab CI/CD (рассматривается в шаге Хранение ключа в переменной GitLab).
Приватный ключ SSH является конфиденциальной частью данных и считается пропуском на сервер. Необходимо обезопасить его и сделать так, чтобы он не попал в чужие руки.
Мы рассматриваем иную ситуацию, нам нужно предоставить ключ платформе GitLab для доступа к нашему серверу, чтобы автоматизировать процесс развертывания.
GitLab Runner считается агентом платформы GitLab, который будет выполнять вход на наш сервер, используя приватный ключ. Каждый конвейер GitLab использует агентов, которых будем указывать в конфигурации CI/CD, для выполнения заданий. Задание развертывания будет выполняться на исполнителе GitLab, по этой причине приватный ключ будет размещен на стороне исполнителя для получения доступа к серверу с помощью SSH.
Авторизуемся в нашем сервере:
```bash
ssh serverspace@server-host-IP
```
Установка утилиты gitlab-runner производится путём скачивания скриптового файла и запуска.
```bash
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh > script.deb.sh
```
Запустим файл script.deb.sh с помощью командного интерпретатора bash:
```
bash script.deb.sh
```
Рисунок 6 – Настройка репозитория
Установим утилиту с помощью apt:
```bash
apt install gitlab-runner
```
После установки получим результат:
Рисунок 7 – Установка агента GitLab-Runner
Перейдём в репозиторий проекта и скопируем Token проекта. Перейдём в раздел **Settings** – **CI/CD** – **Runners**. В Set up a specific Runner manually скопируем наш токен и URL адрес в текстовый документ.
Рисунок 8 – Копирование токена
Вернемся в командную строку нашего сервера и введём следующую команду, используя ранее скопированные данные нашего проекта:
```
gitlab-runner register -n --url https://your_gitlab.com --registration-token project_token --executor docker --description "Deployment Runner" --docker-image "docker:stable" --tag-list deployment --docker-privileged
```
В результате получим:
Рисунок 9 – Использование токена для GitLab-Runner
-n — регистрирует не интерактивно (все параметры выполняются как опции команды);
--url — адрес GitLab;
--registration-token — токен из репозитория;
--executor — тип исполнителя;
--description — описание;
--docker-image — образ Docker;
--tag-list — список тегов;
--docker-privived – запуск контейнера Docker.
Если перейдём в раздел **Settings** – **CI/CD** – **Runners** можем получить результат авторизации нашего агента GitLab-Runner:
Рисунок 10 – Авторизованные агенты
## Создание пользователя для развертывания
После успешной авторизации необходимо добавить пользователя в сервер, который будет выполнять задания для развертывания:
```
useradd -m dep-user
passwd dep-user
```
Добавим пользователя в группу Docker.
```
usermod -aG docker dep-user
```
Теперь наш пользователь может выполнять команды, используя docker.
## Настройка ключа SSH
Необходимо переключиться на пользователя dep-user и сгенерировать ключ SSH.
При выполнении команды укажем путь, где будет сохранён ключ, укажем пароль и повторим:
```bash
ssh-keygen -b 4096
```
Получим результат:
Рисунок11 – Создание ключа
В следующем шаге рассмотрим добавления ключа в настройках репозитория, сделав его доступным при обработке процесса непрерывного развертывания нашего конвейера.
## Копирование ключа в репозиторий проекта
Нам нужно хранить приватный ключ в платформе GitLab для конвейера, который использует ключ для входа на сервер.
GitLab добавляет конвейер CI/CD и отправляет все данные исполнителю, которые будут установлены на время выполнения задания.
Посмотрим наш созданный ключ:
```
cat .ssh/authorized_keys
```
Скопируем наш ключ и перейдём в **Settings** – **CI/CD** – **Variables** и добавим переменную (Add variable).
```yaml
Key: ID_RSA
Value: Скопированный ключ
Type: File
Environment scope: All
Flags:
- Protect variable – поставить галочку
- Mask variable – снять галочку
```
Таким образом, добавим адрес нашего сервера и пользователя:
```yaml
Key: SERVER_IP
Value: IP-адрес сервера
Type: Variable
Environment scope: All
Flags:
- Protect variable – поставить галочку
- Mask variable – поставить галочку
Key: SERVER_USER
Value: dep-user
Type: Variable
Environment scope: All
Flags:
- Protect variable – поставить галочку
- Mask variable – поставить галочку
```
В следующем шаге рассмотрим описание файла gitlab-ci.yml.
## Конфигурирование gitlab-ci.yml
Мы собираемся развернуть конвейер, который создаст образ Docker и отправит в реестр контейнеров. В GitLab имеется реестр контейнеров для каждого проекта отдельно. Про реестр контейнеров, можно подробнее изучить, перейдя в раздел **Packages & Registers** -> **Container registry** в своём проекте. Можно также воспользоваться официальной документацией GitLab.
В репозитории проекта создадим файл с названием .gitlab-ci.yml, который будет содержать конфигурацию нашего конвейера.
Добавим конфигурацию:
```
stages:
- publish
- deploy
```
Каждое задание закрепляется за этапом (stages). Задания, которые назначаются одному и тому же этапу (stages), выполняются параллельно. Этапы выполняются в том порядке как указываются. В данном этапе публикация рассматривается первой и за ним развертывание.
Новые этапы (stages) начинают выполняться после успешного выполнения предыдущего этапа.
Добавим следующую конфигурацию после записанного этапа:
```yaml
variables:
TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
```
**CI_REGISTRY_IMAGE**: это URL-адрес нашего реестра для контейнеров, которые привязаны к конкретному проекту.
**CI_COMMIT_REF_NAME**: наименование ветки либо тега, где будет создаваться проект.
**CI_COMMIT_SHORT_SHA**: первые восемь символов ревизии фиксации, для которой создается проект.
**TAG_LATEST**: добавляет образ к последнему тегу.
**В $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME** указывается имя образа Docker по умолчанию. В документации GitLab, название образа Docker должно соответствовать следующей схеме:
```
image name scheme
///
```
Далее внесём изменения в gitlab-ci.yml и добавим следующий код:
```yaml
publish:
image: docker:latest
stage: publish
services:
- docker:dind
script:
- docker build -t $TAG_COMMIT -t $TAG_LATEST .
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- docker push $TAG_COMMIT
- docker push $TAG_LATEST
```
Элемент Publish является первым заданием в нашей конфигурации непрерывного интегрирования и развертывания и хранит в себе несколько команд, которые рассмотрим ниже:
**image** – Docker образ, который используется в этой инструкции.
**stage** – назначает задание стадии публикации.
**services** – обозначает Docker-in-Docker. По этой причине мы зарегистрировали GitLab-Runner в привилегированном режиме.
Рабочий каталог будет установлен в корень репозитория, когда эти команды будут выполнены.
**docker build**: создает образ Docker на основе файла Dockerfile и помечает его последним тегом фиксации, определенным в разделе переменных.
**docker login**: регистрирует Docker в реестре контейнеров проекта.
**docker push**: отправляет оба тега образа в реестр контейнеров.
Добавим конфигурацию для развертывания в файл gitlab-ci.yml
```yaml
deploy:
image: debian:latest
stage: deploy
tags:
- deployment
script:
- sudo apt update && apt install openssh-server
- ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY"
- ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker pull $TAG_COMMIT"
- ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker container rm -f ServerSpace || true"
- ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker run -d -p 80:80 --name ServerSpace $TAG_COMMIT"
```
Alpine – является облегченным дистрибутивом для образа Docker.
В разделе script запускается две конфигурационные команды:
- **chmod og= $ID_RSA**: для отмены всех разрешений группы и других лиц без приватного ключа.
- **apk update && apk add openssh-client**: APK является пакетным менеджером заданного дистрибутива и в данной команде обновляет информацию о пакетах и устанавливает утилиту ssh клиент.
Затем используются команды ssh из шаблона:
- ssh connect pattern for all deployment commands
- ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "command"
-i оператор означает файл идентификации
- $ID_RSA считается переменным GitLab, в котором содержится путь к файлу приватного ключа.
-o StrictHostKeyChecking=no: с помощью этого оператора мы автоматически пропускаем вопросы о доверие к удаленному хосту.
$SERVER_USER и $SERVER_IP — ранее созданные переменные, к которым мы прикрепили имя пользователя и адрес нашего сервера для подключения по SSH.
Добавим наш последний кусок кода, в котором укажем среду развертывания (environment), название среды (production), адрес нашего сервера (url) и единственный раздел (only):
```yaml
environment:
name: production
url: http://host-address
only:
- main
```
Рисунок 12 – Итоговый вид файла .gitlab-ci.yml
Сохраним наши изменения нажав на Commit changes.
## Тестирование развертывания
На этом этапе рассмотрим развертывание в разных платформах GitLab, на нашем сервере и в браузере.
После добавления gitlab-ci.yml в репозиторий, GitLab автоматически обнаружит и запустит конвейер.
Необходимо перейти в раздел **CI/CD** -> **Pipelines** в проекте для просмотра статуса конвейера. В списке конвейеров можем увидеть статус своего проекта Passed. Иногда требуется неопределенное количество времени для завершения запуска конвейера.
После завершения под столбцом Stages должны появиться две галочки:
Рисунок 13 – Статус конвейера
Более подробно можем получить информацию о процессе развертывания с помощью нажатия на "passed" под разделом "Status", и мы получим следующие данные:
- получим информацию о времени выполнения конвейера;
- название коммита и ветки;
- задания, которые выполнялись в этом конвейере и их состояние;
Рассмотрим статус развертывания.
Рисунок 14 – Завершение развертывания
Если прокрутить страницу вверх, мы увидим сообщение о том, что это задание развернуто в рабочей среде. Если нажать на кнопку deploy, то перейдём в раздел с результатами стадии развертывания.
Рисунок 15 - Production
Процесс повторного развертывания зависит от конфигурации нашего конвейера. Наш конвейер может повторно выполнять те же задания, которые были указаны в .gitlab-ci.yml.
Если нажать на кнопку "Посмотреть развертывание" (**View deployment**), то откроется страница с адресом нашего сервера, и увидим надпись "**Our project in GitLab**".
Для проверки развернутого контейнера перейдём на наш сервер и подключимся по ssh.
Далее проверим список контейнеров с помощью команды:
```bash
docker container ls
```
И получим следующий результат
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba1a841c23d4 registry.gitlab-server.com/authorized_user_of_gitlab/serverspace/master:commit "nginx -g 'daemon of..." 4 hours ago Up 4 hours 0.0.0.0:80->80/tcp gitlab-serverspace
```
Также предлагаем ознакомиться с нашей инструкцией по "[Установке и настройке Docker](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/)".
На следующем этапе рассмотрим откат развертывания.
## Откат непрерывного развертывания
Если обновить веб-страницу, создастся новое развертывание, а затем повторно развернет предыдущее развертывание с использованием сред GitLab. Тем самым охватывает вариант использования отката развертывания в случае ошибочного развертывания.
Необходимо внести в файле index.html внести небольшое изменение:
- Перейдём в репозиторий проекта с файлом index.html.
- Нажмем кнопку "Редактировать" для открытия редактора конвейера.
- Удалим старый код и добавим новый:
```html
# Successful
```
Необходимо сохранить изменения с помощью кнопки "**Commit changes**".
Запустится новый конвейер развертывания. В GitLab перейдём в раздел **CI/CD** > **Pipelines**. После успешного завершения заданий в конвейере необходимо открыть web-страницу по адресу нашего сервера, в котором отображается надпись **Successful**.
Если перейти в раздел **Deployments** > **Environments** > **production**, отображается новый созданный конвейер развертывания. Теперь нажмем кнопку повторного развертывания конвейера для отката на исходное состояние:
Рисунок 16 – Откат изменений
Необходимо подтвердить откат во всплывающем окне.
Наш конвейер развертывания запустит процесс обратного отката и перенаправит автоматически на страницу с результатами выполненного задания. Необходимо подождать до завершения задания и открыть web-страницу, указав адрес нашего сервера в браузере. В итоге будет отображаться старая надпись "Our project in GitLab".
## **Выводы**
В этой инструкции мы рассмотрели:
- создание проекта на сайте GitLab;
- установку и настройку GitLab на своём сервере;
- привязку gitlab-runner по SSH ключу на платформе GitLab;
- описание gitlab-ci.yml с заданиями;
- описание Dockerfile для запуска образа nginx в контейнере на сервере;
- запуск процесса непрерывной интеграции и развертывания;
- откат процесса развертывания web-страницы.
https://serverspace.uz/support/help/nastrojka-psk-klyuchej-dlya-zabbix-agentov-na-ubuntu-i-windows.mdРассматриваем как настроить для Zabbix шифрование через PSK ключи при использовании агентов для Windows и Ubuntu
Zabbix поддерживает встроенное шифрование между частями своей сети мониторинга с помощью PSK-ключей или сертификатов. Давайте рассмотрим настройку PSK ключей для агентов.
## Настройка сервера
Во-первых, давайте настроим режим шифрования хоста, который мы хотим использовать.
Откройте веб-интерфейс, перейдите в Настройки -> узлы сети, выберите узел, для которого вы хотите настроить PSK, откройте вкладку Шифрование. По умолчанию все соединения не зашифрованы, снимите эту галочку и выберите опцию PSK.
В строке "PSK identity" напишите идентификатор для вашего ключа. После этого создайте ключ с помощью любого генератора паролей на ваш выбор или используйте свой, затем поместите его в строку PSK. Нажмите "обновить".
## Настройка PSK-ключей для агента Ubuntu
Для начала нам нужно создать .psk файл для хранения ключа, который будет доступен учетной записи агента, например, /etc/zabbix/zabbix_agentd.psk, вставьте ваш пароль внутрь файла.
Дайте Zabbix доступ:
```bash
sudo chown zabbix:zabbix /etc/zabbix/zabbix_agentd.psk
sudo chmod 400 /etc/zabbix/zabbix_agentd.psk
```
После этого давайте рассмотрим настройку агента. Поправьте файл /etc/zabbix/zabbix_agentd.conf следующим образом: удалите символ # из строк TLSConnect и TLSAccept, укажите их значение =PSK а затем поправьте эти строки в конце файла:
TLSPSKFile=(путь к файлу ключа)
TLSPSKIdentity=(идентификатор вашего ключа)
Перезапустите агент, чтобы изменения вступили в силу.
## Настройка PSK для агента Windows
Для Windows версии измените файл C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf так же, как описано выше для Ubuntu.
Make zabbix_agentd.psk file in the default agent folder with your PSK in it.
Создайте файл zabbix_agentd.psk в папке агента с вашим PSK внутри. Не забудьте перезапустить агент в меню служб.
Проверьте продолжает ли опрос работать.
Всё отлично.
## Заключение
В этом руководстве мы рассмотрели, как настроить авторизацию PSK на агентах Zabbix для Windows и Ubuntu.
https://serverspace.uz/support/help/kak-poluchit-dostup-k-neskolkim-serveram-imeya-tolko-odin-publichnyj-ip-adres.mdВ этой статье описано, как организовать подключение к нескольким серверам, имея только один «публичный» IP-адрес
## Зачем может быть нужно "прятать" несколько серверов за одним публичным IP
Есть две основные причины, по которым вы можете захотеть "скрыть" свои серверы:
**Безопасность**. Если вы "поместите" какой-либо хост между вашим сервером и Интернетом, вы создадите частную "безопасную зону", потому что любые злоумышленники должны будут пройти "пограничный контроль", прежде чем они получат доступ непосредственно к серверу;
**Экономия денег**. В мире уже не осталось неиспользуемых подсетей IPv4, а IPv6 все еще не получил широкого распространения. Таким образом, стоимость аренды IP-адреса постоянно растет, и вы можете сэкономить свои деньги, используя меньшее количество публичных IP-адресов.
## Как создать свою собственную "безопасную сеть"
Чтобы создать ваше собственное сетевое пространство, мы будем использовать технологию преобразования сетевых адресов (NAT). Чтобы это организовать сделайте следующее:
Сначала нужно создать собственно защищенную сеть. Войдите в личный кабинет, нажмите кнопку **VMWare Cloud > Networks >** **Add Network** и выберите желаемую пропускную способность и требуемое количество "внутренних" IP-адресов. Запомните назначенный внешний IP, это "точка входа" в вашу сеть;
Следующим шагом вам нужно изменить сетевые интерфейсы ваших серверов. Удалите публичный интерфейс и вместо этого добавьте частный, затем перезагрузите все серверы, чтобы изменения вступили в силу;
В результате вы увидите внутренние IP-адреса, присвоенные каждому серверу. Запомните их;
Вернитесь обратно к настройкам вашей частной сети и добавьте NAT-правила для обеспечения доступа к каждому серверу;
## Проверка результата
Чтобы проверить доступ, вам нужно просто подключиться к общедоступному IP-адресу вашей сети и порту, "проброшенному" на сервер;
## Заключение
В этой статье я описал, как обеспечить доступ к нескольким серверам, имея только один IP-адрес, при помощи функций личного кабинета Serverspace.
https://serverspace.uz/support/help/sozdanie-i-nastrojka-triggerov.mdРазбираем, как в Zabbix создавать триггеры уведомлений и каким образом их настроить для генерации предупреждений и уведомлений
В этом руководстве мы рассмотрим шаги по созданию и настройке триггеров для уведомлений в Zabbix.
Триггер в Zabbix - это логическое выражение, используемое для генерации предупреждений и уведомлений, когда данные элемента, за которым он следит, превышают некоторый заданный нами порог. Когда это происходит, триггер меняет свое состояние. Состояния бывают следующими:
- OK - всё в порядке.
- Проблема - когда данные выходят за приемлемые значения (например, средняя доступность узла за 2 минуты переходит от логической 1 к логической 0, мы узнаем, что он оффлайн).
- Неизвестно - что-то пошло не так, и значение триггера не может быть вычислено.
## Создание триггеров
"Конфигурация" в верхнем меню. → "Хосты" в левом меню. → выберите узел, для которого хотите создать триггер → вкладка "Триггеры" → "Создать триггер" в правом верхнем углу. Заполните необходимую информацию, такую как имя триггера, важность.
Список триггеров
Окно настройки триггера
Строка "Выражение проблемы" работает как логическое выражение, которое определяет приемлемый порог отслеживаемых данных, когда входящие данные превышают его - триггер меняет свое состояние. Нажмите на конструктор выражений. Выберите, на какой элемент он будет ссылаться, функцию, описывающую условие, и результат функции, который запускает условие.
Для подробных примеров вы можете посмотреть в официальной документации по адресу [https://www.zabbix.com/documentation/5.2/ru/manual/config/triggers/expression](https://www.zabbix.com/documentation/5.2/ru/manual/config/triggers/expression)
Окно настройки выражения проблемы
Формирование ОК событий - описывает, когда триггер перейдет в состояние OK:
- Выражение работает на обратном выражении из предыдущей строки.
- Выражение восстановления работает, когда оно становится Истинным, а выражение ошибки становится Ложным.
- Если выбрано значение "Нет", триггер не вернется в нормальное состояние самостоятельно.
Режим генерации проблемных событий позволяет выбирать между генерацией событий при каждом возникновении проблемы или только при первом.
Следующая строка определяет, закрывает ли событие Ok все проблемы на этом триггере или только с соответствующими тегами.
"Ручное закрытие" позволяет закрывать проблемы этого триггера вручную.
И, как обычно, "Активировано" делает этот триггер рабочим.
Добавляем триггер.
Теперь чтобы проверить его идем в Конфигурацию → узлы сети → триггеры и проверяем состояние нашего триггера.
## Заключение
Мы изучили важный аспект мониторинга вашей сетевой инфраструктуры Zabbix - создание и настройку триггеров.
https://serverspace.uz/support/help/sozdanie-i-nastrojka-panelej-monitoringa-v-zabbix.mdРассматриваем создание панелей мониторинга в Zabbix, а так же добавление и настройку виджетов в них
В Zabbix панель - это графическое представление данных, которое позволяет визуализировать и мониторить различные аспекты вашей ИТ-инфраструктуры в реальном времени. Обычно панели включают виджеты, которые отображают важные метрики и информацию о вашей сети, серверах, приложениях и т.д.
## Создание панелей
Чтобы создать панель в Zabbix, откройте веб-интерфейс и перейдите на вкладку "Мониторинг" → "Панели" → Нажмите кнопку "Создать панель" в правом верхнем углу экрана.
Установите владельца, введите имя вашей панели и выберите период времени, который будет отображаться по умолчанию.
Нажмите кнопку "Применить".
Окно создания панели
## Добавление виджетов на панель
После создания вашей панели, вы можете начать добавлять виджеты, чтобы отображать интересующие вас метрики и данные. Вот как это сделать:
Нажмите кнопку "Добавить виджет" на вашей панели.
Выберите тип виджета, который вы хотите добавить. Zabbix предоставляет несколько заранее определенных типов виджетов, включая графики, карты, индикаторы статуса и многое другое.
Примеры вариантов виджетов (1)
Примеры вариантов виджетов (2)
Введите параметры виджета, включая источник данных, диапазон времени и любые другие параметры настройки, которые доступны.
Нажмите кнопку "Добавить", чтобы добавить виджет на вашу панель.
## Настройка виджетов
Zabbix позволяет настраивать виджеты под ваши нужды. Вот несколько способов, как вы можете настроить свои виджеты:
- Измените размер виджета, щелкнув и перетаскивая правый нижний угол.
- Переместите виджет по дашборду, щелкнув и перетаскивая верхнюю панель.
- Измените настройки виджета, нажав кнопку "Изменить" в правом верхнем углу.
- Удалите виджет, нажав кнопку "Удалить" в правом верхнем углу.
Стандартная панель Zabbix
## Заключение
Мы узнали, как создавать и настраивать панели в Zabbix - отличный способ мониторинга вашей ИТ-инфраструктуры в реальном времени. С интуитивно понятным веб-интерфейсом Zabbix вы легко создавать настраивать и делиться панелями со своей командой.
https://serverspace.uz/support/help/ustanovka-jenkins-na-ubuntu-22-04.mdУстановка Jenkins на Ubuntu 22.04 - Severspace. Добавление ключа в репозиторий и обновление пакетов в системе. Установка пакета с помощью apt.
## Введение
[Jenkins](https://jenkins.io/) считается инструментом с открытым исходным кодом и сервером автоматизации конвейеров непрерывной интеграции и развертывания. Jenkins – написан на Java, и его можно установить на Ubuntu/Debian/CentOS и на разные дистрибутивы с помощью пакетного менеджера, который установлен на сервере или же из исходных файлов репозитория проекта.
## Подготовка к установке Jenkins
Перед тем, как установим Jenkins, необходимо:
- Установить и настроить [базовую систему с пользователем](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/), которому предоставлен доступ на выполнения команд с использованием sudo и настроенный ufw (брандмауэр) по умолчанию;
- Технические требования должны соответствовать [согласно руководству](https://jenkins.io/doc/book/hardware-recommendations/) Jenkins. Минимальная оперативная память должна составлять 1 GB;
- Установите Java 11 версию согласно [нашему руководству](https://serverspace.ru/support/help/kak-ustanovit-java-s-pomoshhyu-apt-na-ubuntu-18-04/).
## Установка Jenkins
Часто версия Jenkins, включенная в репозитории Ubuntu, считается устаревшей. Для новой версии необходимо добавить ссылку репозитория Jenkins в наш файл с ключами, чтобы обновить информацию о пакетах и установить новую версию Jenkins.
Добавим ключ в репозиторий нашей системы:
```bash
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add –
```
После добавления ключа получим следующий результат:
Рисунок 1 – Установка ключа
Теперь добавим репозиторий Jenkins в наш список репозиториев:
```
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
```
Обновим информацию о пакетах и установим пакет Jenkins:
```bash
apt update && apt install -y jenkins
```
После того, как все необходимые пакеты и их зависимости с Jenkins установятся, то получим следующий результат:
Рисунок 2 – Установка Jenkins
## Запуск утилиты Jenkins
Запустим Jenkins:
```bash
systemctl start jenkins
```
Проверим статус после запуска:
```bash
service jenkins status
```
Рисунок 3 – Проверка статуса Jenkins
После запуска Jenkins, необходимо настроить безопасное подключение с помощью брандмауэра UFW.
## Доступ к серверу Jenkins
Добавим правило в брандмауэр для доступа к серверу через порт 8080:
```
ufw allow 8080
```
Проверим статус брандмауэра:
```
ufw status
```
Рисунок 4 – Статус брандмауэра
После настройки брандмауэра перейдём к настройке нашего сервера.
## Настройка Jenkins сервера
Перейдём в браузер и в адресной строке укажем наши данные http://server_ip:8080.
После перехода на страницу Jenkins, необходимо разблокировать с помощью ключа из файла:
```
cat /var/lib/jenkins/secrets/initialAdminPassword
```
Рисунок 5 – Ввод сгенерированного пароля
Скопируем пароль администратора, который состоит из 32-символов.
Установим предлагаемые плагины (Install suggested plugins). Это стандартные плагины от сервера, но вы можете выбрать также необходимые плагины выбрав (Select plugins to install):
Рисунок 6 – Установка стандартных плагинов
Начнётся процесс установки плагинов:
Рисунок 7 – Процесс установки плагинов
После установки всех плагинов, мы автоматически будем перенаправлены на страницу настройки учётной записи администратора:
Рисунок 8 – Создание учётной записи для администратора
После заполнения всех полей, автоматически будем перенаправлены на страницу с адресом нашего сервера. В поле можем указать доменное имя, которое прикрепим к серверу, либо оставить IP-адрес сервера:
Рисунок 9 – Прикрепленный адрес нашего сервера
После нажатия кнопки Save and Finish, перейдём на страницу с кнопкой Start using Jenkins:
Рисунок 10 – Запуск сервера Jenkins
После перехода на страницу платформы Jenkins, получим доступ к панели инструментов:
Рисунок 11 – Панель инструментов Jenkins
## Выводы
В данной инструкции мы рассмотрели:
- Добавление ключа в репозиторий;
- Установку пакета Jenkins;
- Настройку Jenkins сервера с плагинами;
- Создание учетной записи администратора;
https://serverspace.uz/support/help/sozdanie-sposobov-opoveshheniya-dlya-uvedomlenij-zabbix.mdВ статье мы рассмотрим способы создания оповещения для уведомлений Zabbix на примере электронной почты и настройку уведомлений для пользователей
Одной из ключевых возможностей любой системы мониторинга является возможность отправки уведомлений ее пользователям, если происходит что-либо непредвиденное. Давайте рассмотрим создание медиа, используемого для уведомлений по электронной почте в качестве примера.
Настроив уведомления по электронной почте, вы сможете получать оповещения напрямую на свой адрес электронной почты, когда будут выполнены определенные условия, что позволит быстро реагировать на любые проблемы.
## Создание способов оповещения
Заходим в веб-интерфейс вашего сервера Zabbix.
Перейдите в "Администрирование" > "Типы медиа".
Нажмите на созданный по умолчанию или "Создать тип медиа".
Заполните поле "Название" описательным именем для вашего типа медиа, например, "Уведомление по электронной почте".
Выберите "Email" в качестве типа.
Заполните поля "SMTP-сервер" и "SMTP helo" информацией о вашем почтовом сервере.
Заполните поле "SMTP-адрес электронной почты" адресом электронной почты, который вы хотите использовать для отправки уведомлений.
Если ваш почтовый сервер требует аутентификации, заполните раздел "SMTP-аутентификация" соответствующими учетными данными.
Заполните раздел "Безопасность соединения" настройками для вашего почтового сервера.
Нажмите "Добавить", чтобы создать новый способ оповещения.
## Настройка пользователей
Теперь, когда вы создали свой тип медиа для электронной почты, вы можете настроить его для ваших пользователей Zabbix:
Перейдите в "Администрирование" > "Пользователи".
Нажмите на пользователя, для которого вы хотите настроить уведомления по электронной почте.
Перейдите на вкладку "Способы оповещения".
Нажмите "Добавить", чтобы добавить новый способ.
Выберите свежесозданный тип оповещения.
Заполните поле "Отправить на" адресом электронной почты, на который вы хотите получать уведомления.
Если вы хотите получать уведомления для определенных триггеров или событий, выберите соответствующие опции в разделе "Включено".
Теперь мы можем проверить, работает ли всё правильно, нажав кнопку "тест" справа от списка медиа. Если там будет написано "оповещение успешно", значит всё в порядке.
## Заключение
Мы узнали, как настроить тип оповещений — электронную почту для отправки уведомлений в случае возникновения любых проблем.
https://serverspace.uz/support/help/nastrojka-i-ispolzovanie-tegov-v-zabbix.mdИнструкция по добавлению тэгов и макросов к элементам в Zabbix и описание способов, как ими пользоваться для организации систем мониторинга
Теги — это мощная функция, которая позволяет организовывать и управлять элементами Zabbix, такими как хосты, шаблоны и триггеры. С помощью тегов вы можете назначать им метки использовать эти метки для фильтрации и группировки. Это может быть особенно полезно, когда у вас их большое количество или когда вам нужно быстро идентифицировать конкретные группы на основе их свойств.
## Тэги
Теги могут быть добавлены к:
- шаблонам;
- хостам;
- элементам;
- триггерам;
- сервисам;
- элементам шаблонов и хостам шаблонов.
Чтобы использовать теги в Zabbix:
1. Определите свойства тегов
Прежде чем использовать теги, необходимо определить свойства, которые будут связаны с ними. Например, вы можете определить свойство тега, называемое "окружение", которое может иметь значения, такие как "производство" или "тестирование".
2. Назначьте теги элементам
После определения свойств тегов можно назначить теги элементам вашего мониторинга. Например, вы можете назначить тег "окружение" узлу сети и установить его значение на "производство". Вы можете назначать теги в разделе Конфигурация > Узлы сети(или другие типы элементов, такие как шаблоны или триггеры) > теги.
3. Фильтруйте и группируйте элементы по тегам
С назначенными тегами для ваших элементов вы можете фильтровать и группировать их на панели мониторинга. Например, вы можете фильтровать хосты по тегу "окружение" и показывать только те, у которых значение "производство". Вы также можете группировать сущности по тегам и создавать настраиваемые виды вашей контролируемой инфраструктуры.
## Макросы
Кроме определения и назначения тегов, вы также можете использовать макросы для назначения динамических значений тегам на основе их свойств или других факторов. Макросы - это переменные, которые заменяются своими фактическими значениями при использовании их в тегах или других конфигурациях Zabbix.
Вот несколько примеров макросов для тегов в Zabbix:
- {HOST.NAME}: Этот макрос заменяется именем хоста. Вы можете использовать этот макрос для создания тегов, специфических для отдельных хостов, например environment: production-{HOST.NAME}.
- {TRIGGER.NAME}: Этот макрос заменяется именем триггера, который вызвал событие или действие. Вы можете использовать этот макрос для создания тегов, которые указывают на причину события, например cause:high-cpu-{TRIGGER.NAME}.
- {ITEM.VALUE}: Этот макрос заменяется значением элемента, который наблюдается. Вы можете использовать этот макрос для создания тегов, которые указывают на состояние элемента, например state:up-{ITEM.VALUE}.
Для использования макросов в тегах просто включите макрос в определение тега, заключив его в фигурные скобки ({}). Zabbix заменит макрос на его фактическое значение при отображении тега или использовании его в других конфигурациях.
Использование макросов в тегах может сделать ваши конфигурации мониторинга более гибкими и динамическими. Путем назначения тегов с макросами на основе свойств элементов или других факторов вы можете быстро идентифицировать и реагировать на события или проблемы в вашей мониторинговой инфраструктуре.
## Вывод
Мы рассмотрели добавление тегов к вашим элементам Zabbix, которые являются мощным инструментом для организации ваших систем мониторинга.
https://serverspace.uz/support/help/postroenie-lokalnoj-seti.mdИнструкция: как при помощи функций личного кабинета Serverspace организовать локальную сеть vStack с одним «белым» IP-адресом
## В чем цель создания локальной сети
Если ваш проект предусматривает использование более одного сервера, то при планировании топологии инфраструктуры может быть оптимальным решением создание отдельной локальной сети между серверами. Основных причин тому две:
- **Безопасность**. Если "изолировать" ваш сервер от "общедоступного" Интернета, вы тем самым значительно повысите его безопасность, потому что потенциальному злоумышленнику нужно будет так или иначе проникнуть "за периметр", прежде чем будет возможен доступ именно к серверу.
- **Оптимизация затрат**. Сейчас уже не осталось свободных подсетей IPv4, на IPv6, так и не получивший еще широкого распространения, надежды тоже мало. Поэтому стоимость IP-адресов растет все время, и если использовать меньше публичных IP-адресов, можно существенно сэкономить.
## Как создать локальную сеть vStack
В рамках данной статьи при помощи личного кабинета Serverspace мы создадим маршрутизируемую сеть, автоматически перенаправляющую запросы к нужному серверу при помощи механизма трансляции сетевых адресов (NAT). Порядок действий такой:
Первым делом требуется создать собственно локальную сеть. Войдите в личный кабинет, нажмите кнопку **vStack Cloud > Networks >** **Add Network**.
Выберите тип сети **Isolated**, укажите имя сети и выберите регион размещения. Учтите, что регион должен совпадать с дата-центром, где установлены остальные узлы проекта. Внутреннюю адресацию можно отдать на откуп автоматике или указать собственный диапазон.
Далее снова перейдите в раздел **vStack Cloud > Networks**, снова нажмите **Add Network**, выберите вариант **Routed** и создайте узел-шлюз. Укажите пропускную способность создаваемой сети, регион размещения и имя шлюза, после чего "присоедините" шлюз к созданной ранее "внутренней" сети.
Запомните выданный "белый" адрес, он будет нужен для входа в вашу сеть извне.
Затем нужно подключить сервер (или серверы) к созданной локальной сети. Перейдите в свойства конкретного сервера и добавьте к нему сетевой интерфейс частной сети.
Для пущей безопасности можно удалить с сервера "публичный" интерфейс или как минимум заблокировать доступ с него "встроенным" файрволлом сервера. Также запомните назначенный серверу "внутренний" IP, он понадобится на следующем шаге.
Вернитесь обратно к настройкам "шлюза" и добавьте правила переадресации трафика обеспечивающие доступ с внешнего IP сети к серверу внутри периметра.
Если сделать как в указанном примере, вы сможете подключиться по выданному вашей сети IP-адресу и порту 222, запрос будет переадресован на "внутренний" IP сервера и порт 22.
## Заключение
В этой статье я описал, как при помощи функций личного кабинета Serverspace организовать локальную сеть vStack с одним "белым" IP-адресом, и организовать "проброс" портов для доступа к серверу внутри этой сети.
https://serverspace.uz/support/help/ispolzovanie-podtverzhdeniya-problem-v-zabbix.mdРассматриваем как может использоваться меню проблем в Zabbix, как оставлять комментарии, подтверждать и закрывать проблемы.
В Zabbix проблемы относятся к оповещениям, обнаруженным мониторингом триггеров. Проблема возникает, когда выполнены условия, заданные для триггера, что указывает на наличие необычных событий или конкретных интересующих событий в контролируемой среде.
Когда проблема обнаруживается, Zabbix генерирует уведомление и отображает соответствующую информацию в меню "Проблемы". Этом меню предоставляет централизованный вид на все активные проблемы, что позволяет администраторам быстро идентифицировать и устранять проблемы в их ИТ-инфраструктуре.
## Меню "Проблемы"
Чтобы открыть это меню, перейдите в "Мониторинг" → "Проблемы" в веб-интерфейсе.
Это меню состоит из двух частей: фильтра поиска с обширными настройками на верхней половине и списка проблем, соответствующих этому фильтру, на нижней половине.
Описание каждой проблемы состоит из следующих столбцов:
- Время: Этот столбец указывает временную метку, когда проблема была обнаружена или последний раз обновлена. Он помогает определить временные рамки возникновения проблемы и отслеживать ее прогресс.
- Серьезность: Столбец "Серьезность" отображает уровень серьезности, назначенный проблеме, как уже обсуждалось. Он классифицирует влияние или важность проблемы, варьируя от 0 (не классифицирована) до 5 (катастрофа).
- Время восстановления: Этот столбец показывает временную метку, когда проблема была решена или восстановлена. Он помогает отслеживать время, затраченное на устранение проблемы, и оценивать эффективность процессов по ее устранению.
- Статус: Столбец "Статус" указывает текущее состояние проблемы. Он может отображать значения, такие как "Открыта", "Закрыта", "Решена" или "Подтверждена", предоставляя видимость жизненного цикла проблемы и ее текущего состояния.
- Информация: Столбец "Информация" предоставляет дополнительные сведения или описательную информацию о проблеме. Он может содержать соответствующие сообщения об ошибках, описания событий или любую другую контекстную информацию, которая помогает понять характер или причину проблемы.
- Узел сети: Этот столбец отображает имя или IP-адрес затронутого узла, связанного с проблемой. Это помогает определить, какой конкретный узел испытывает проблему.
- Проблема: Столбец "Проблема" предоставляет краткое описание или обзор проблемы. Он дает лаконичное представление о проблеме для быстрого понимания ее характера или основной причины.
- Продолжительность: Столбец "Продолжительность" указывает длительность активной или нерешенной проблемы. Он помогает отслеживать продолжительность проблем и определить приоритетные своевременные решения.
- Подтв.: Столбец "Подтв." (Подтверждение) указывает, была ли проблема подтверждена. Подтверждение означает, что проблема была признана администратором или ответственным членом команды.
- Действия: Столбец "Действия" позволяет пользователям выполнять конкретные действия, связанные с проблемой. Он может включать в себя опции подтверждения проблемы, ее эскалации, назначения пользователя или группы или выполнения любых настроенных пользовательских действий в Zabbix.
- Теги: Столбец "Теги" отображает любые связанные теги или метки, назначенные проблеме. Теги могут использоваться для категоризации, фильтрации или группировки проблем на основе определенных критериев, таких как местоположение, приложение или отдел.
Эти столбцы в меню "Проблемы" Zabbix предоставляют ценную информацию администраторам, позволяя им эффективно контролировать и управлять обнаруженными проблемами в их ИТ-инфраструктуре.
## Сведения о событии
Давайте ближе рассмотрим одну из наших проблем, щелкнув на ее дате, которая должна быть выделена.
Это приведет нас на страницу с подробностями события.
Здесь у нас есть 4 вкладки:
- Детали триггера и детали события содержат некоторую базовую информацию, которую мы уже видели.
- Вкладка "Действия" является более интересной, здесь мы можем увидеть список действий, выполненных в отношении проблемы, как автоматических, так и пользовательских: создание проблемы, комментарии пользователей, подтверждение/отмена подтверждения проблемы, сообщения, отправленные через действия, и изменение серьезности.
- Список событий отображает некоторую информацию о рассматриваемой проблеме и ее предыдущих событиях: ее статус, время возникновения/восстановления, сколько времени проблема существовала, краткое отображение сделанных действий и подтверждение (подтв), щелкнув по которому откроется меню обновления проблемы.
## Меню обновления проблемы
В этом меню вы можете добавить сообщение, чтобы сообщить другим членам команды, что вы делаете для устранения проблемы.
Также вы можете увидеть историю действий пользователей, указывающую, кто что сделал в отношении проблемы.
Переключая область, вы можете выполнить выбранные действия/комментарий только для выбранной проблемы или для всех других проблем этого триггера.
Если установить флажок "Подтверждение", это означает, что проблема была просмотрена администратором и начата работа над ней, что позволяет команде не спешить с одновременным исправлением всего и избежать дублирования усилий, так как каждый знает, какие проблемы уже были подтверждены и кто над ними работает.
Флажок "Закрыть проблему" позволяет отметить проблему как решенную в случае отсутствия надежного "ОК" триггера .
После нажатия кнопки "Обновить" для сохранения изменений действия и комментарии, которые вы сделали, попадают в историю этого события.
После того, как вы подтвердите проблему, она будет отмечена как "подтвержденная" в панели мониторинга. Другие члены команды также смогут видеть, что проблема уже подтверждена и работа по ее устранению начата. B случае если вам понадобится отменить подтверждение проблемы можно зайти в это меню и прожать галочку "отменить подтверждение"
## Заключение
Мы рассмотрели меню управления проблемами которое предоставляет централизованный взгляд на активные проблемы, позволяя администраторам быстро выстроить приоритеты в зависимости от тяжести, времени возникновения и прочей информации.
Меню обновления проблемы позволяет администратора добавлять к проблеме сообщения, обновлять статус проблемы, подтверждать или отменять подтверждение. Это позволяет упростить коммуникацию и взаимодействие между разными членами команды, быть уверенными что все в курсе о статусе проблемы и знают какие действия принимались для её решения.
https://serverspace.uz/support/help/dejstviya-i-operaczii-v-zabbix.mdВ инструкции мы рассматриваем виды и применение действий и операций в Zabbix, а так же как их настраивать для автоматизации работы с сервером
Еще одной из функций Zabbix является возможность выполнения автоматизированных действий и операций на основе заранее заданных триггеров. В этой статье мы рассмотрим, как настроить и использовать действия и операции в Zabbix.
## Действия в Zabbix
Действия - это набор заранее определенных шагов, которые автоматически запускаются при возникновении определенного события. Эти действия могут использоваться для выполнения широкого спектра задач, таких как отправка уведомлений, выполнение скриптов и перезапуск служб.
Существует несколько типов действий, которые можно использовать для автоматизации задач. Вот некоторые распространенные типы действий и их использование:
- Действия триггеров позволяют выполнять действия при изменении состояния триггера. Например, вы можете настроить Zabbix на отправку уведомления по электронной почте определенному пользователю, когда триггер переходит из "OK" в "PROBLEM".
- Авторегистрация обнаружения - это функция, которая позволяет Zabbix автоматически обнаруживать новые хосты в сети и добавлять их в систему мониторинга. Это может сэкономить много времени и усилий при мониторинге большого количества хостов.
- Внутренние действия - это действия, которые запускаются внутренними событиями в Zabbix. Например, вы можете настроить Zabbix на автоматическое добавление нового элемента на хост, когда новый шаблон связывается с хостом.
## Создание действий
Чтобы создать действие в Zabbix, выполните следующие действия:
- Щелкните "Configuration" в главном меню, а затем щелкните нужный тип действия в разделе "Действия".
- Щелкните кнопку "Добавить" для создания нового действия.
- Введите имя для действия и выберите триггер, который будет активировать действие.
- Под вкладкой "Operations" вы можете определить действия, которые будут выполнены при активации триггера. Вы можете добавить несколько операций к одному действию.
## Операции в Zabbix
Операции в Zabbix - это отдельные задачи, которые выполняются в рамках действия. Список доступных операций зависит от выбранного типа действия.
Варианты действий:
- отправка сообщений;
- удаленные команды, включая IPMI и скрипты.
А также доступные для действий обнаружения:
- добавление хоста: автоматически добавляет новый хост в Zabbix при активации триггера;
- удаление хоста: автоматически удаляет хост из Zabbix при активации триггера;
- включение хоста: включает мониторинг для ранее отключенного хоста;
- отключение хоста: отключает мониторинг для хоста, предотвращая дальнейшее сбор данных и срабатывание оповещений;
- добавление в группу: добавляет хост в конкретную группу хостов для организационных целей;
- удаление из группы: удаляет хост из конкретной группы хостов;
- привязка к шаблону: связывает хост с конкретным мониторинговым шаблоном, который определяет проверки и метрики, которые будут собираться для этого хоста;
- отвязка от шаблона: удаляет связь между хостом и мониторинговым шаблоном.
## Добавление операций
Нажмите на "Операции", выберите тип операции, которую вы хотите добавить: "Операции" работают с триггером, "Операции восстановления" реагируют на устранение проблем, а операции обновления активируются при обновлении проблем другими пользователями.
Выберите тип операции, который вы хотите создать.
Введите необходимые данные для операции. Например, если вы создаете операцию "Отправить сообщение", вам нужно будет ввести адрес электронной почты получателя и текст сообщения.
По мере добавления большего количества операций, они будут получать номера шагов. Вы можете определить время, за которое Zabbix перейдет от шага 1 к шагу 2 и т. д., а также сколько раз будут повторяться эти шаги.
Также вы можете добавлять условия для работы этих операций, таких как подтверждение проблемы и т. д.
Сохраните операцию.
## Вывод
Мы рассмотрели настройку и использование действий и операций в Zabbix, которые могут помочь автоматизировать широкий спектр задач, от отправки уведомлений до выполнения скриптов.
https://serverspace.uz/support/kak-otklyuchit-ili-vklyuchit-moduli-nginx.mdВ статье описывается метод изменения конфигурации Nginx для установки или удаления любых дополнительных модулей с целью оптимизации системы
## Зачем вносить изменения в конфигурацию Nginx?
[Веб-сервер с nginx](https://serverspace.uz/services/cloud-marketplace/nginx.md) сегодня является, можно сказать, отраслевым стандартом, поэтому присутствует в репозиториях всех актуальных операционных систем. Установить его можно "одним кликом", но справедливо это ровно до того момента, пока не потребуется добавить или наоборот, в целях безопасности отключить какую-то функцию, изменить предлагаемую в репозитории конфигурацию.
## Как изменить набор функций nginx
Функции, которые может выполнять nginx, определяются набором входящих в его состав модулей. Увы, единственный доступный сегодня способ изменить состав модулей nginx - пересборка пакета из исходного кода. Ниже я опишу процесс пересборки и установки nginx на примере Ubuntu 20.04.
Прежде всего нужно узнать текущую версию nginx:
```
nginx -v
```
Далее посмотрим на список имеющихся компонентов nginx. Чтобы упростить последующую компиляцию, вывод команды ниже можно куда-нибудь скопировать:
```
nginx -V
```
Тот же самый результат, но в более читабельном виде, можно получить при помощи команды:
```
nginx -V 2>&1|xargs -n1|grep module
```
Установим ряд утилит, необходимых для сборки nginx:
```bash
apt-get update; apt install -y build-essential wget libssl-dev libpcre++-dev libgeoip-dev libssl-dev zlib1g-dev libxslt1-dev libgd-dev
```
Скачайте архив с кодом nginx соответствующей версии, распакуйте его и перейдите в соответствующую папку:
```
cd /tmp; wget http://nginx.org/download/nginx-1.18.0.tar.gz; tar -xvf *.gz; cd nginx-1.18.0
```
## Сборка конфигурации Nginx
Чтобы добавить модуль, используется конструкция **--with-**, соответственно для исключения модуля достаточно просто удалить описывающие этот модуль параметры. Для примера отключим компонент **mail_ssl_module** и наоборот добавим возможности, которые дает **http_geoip_module**:
```
./configure --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-lUTckl/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-http_geoip_module
```
Если все хорошо, вы увидите картину наподобие показанной ниже:
Запускаем собственно процесс сборки:
```
make; make install
```
## Проверка новой конфигурации Nginx
Проверим список модулей, поддерживаемых скомпилированным пакетом:
```
objs/nginx -V 2>&1|xargs -n1|grep module
```
Сборка прошла успешно, самое время заменить установленный файл на свежескомпилированный. После нужен будет перезапуск nginx:
```
mv -f objs/nginx /usr/sbin/nginx; service nginx restart
```
## Заключение
В данной статье мы рассмотрели как изменить конфигурацию nginx, добавив или исключив модули по собственному усмотрению.
https://serverspace.uz/support/help/kak-zapustit-veb-prilozhenie-na-nginx-v-docker.mdНастройка веб-приложения (сайта) с использованием Nginx в контейнере Docker — пошаговое руководство для новичков
## Преимущества запуска Nginx в Docker
Одним из основных преимуществ докера является полная идемпотентность. Образ Docker — это "вещь в себе", вы можете скопировать или переместить его на другой сервер, и результат при запуске будет точно таким же.
## Установка Docker
Прежде чем запускать любое "контейнеpизованное" ПО, вы должны установить собственно Docker. Давайте это сделаем:
```bash
curl -fsSL https://get.docker.com -o initial.sh; bash ./initial.sh
```
Создадим каталог для файлов проекта:
```
mkdir -p ~/project/content
```
Поместите содержимое проекта в этот каталог. Я в демонстрационных целях просто создам индексную страницу:
```
echo "# Serverspace — лучшая в мире хостинговая компания
" > ~/project/content/index.html
```
Запустите службу:
```bash
docker run --name nginxapp -p 80:80 -v ~/project/content:/usr/share/nginx/html nginx
```
Уже сейчас, если вы откроете IP сервера в браузере, сервер должен "отдать" корректный ответ:
Этого достаточно для минимальной настройки, но при необходимости вы можете "подсоединить" к веб-серверу дополнительные конфиг-файлы. Также я советую запускать контейнер с флагом **-d**, этот флаг "скажет" докеру, что запускать контейнер нужно в фоне, чтобы потом вы могли закрыть сеанс терминала:
```bash
docker run --name nginxapp -p 80:80 -v ~/project/content:/usr/share/nginx/html -v ~/project/yourdomain.conf:/etc/project/conf.d/yourdomain.conf -d nginx
```
https://serverspace.uz/support/help/nastrojka-klastera-mongodb.mdВ инструкции подробно рассматривается пошаговая настройка кластера «replica set» при работе на сервере с базами данных MongoDB
**MongoDB** – популярная документо-ориентированная СУБД, для которой не требуется описывать и создавать схемы. Обычно используется в разработке веб приложений, но не только – там, где NoSQL система может быть полезнее и эффективнее реляционной СУБД.
В процессе разработки и тестирования приложения, часто бывает достаточно одного сервера для работы СУБД.
Перед началом использования приложения в рабочей (продуктивной) среде, необходимо определить – какие риски могут возникнуть в ситуации, когда все данные хранятся на одном сервере.
Если данные не критичны (например, это кэшированные данные), приложение продолжит функционировать без них на приемлемом уровне, и время на восстановление работы БД предполагается относительно небольшим – тогда можно сделать вывод, что одного сервера достаточно.
Если данные критичны, их потеря или недоступность (например, в результате инцидента с сетью) влияет на функционирование приложения (а следовательно, и на предоставляемый сервис клиентам) – в этом случае рекомендуется использование кластера для хранения данных.
MongoDB позволяет настроить два вида кластера:
- Replica set: группа серверов, которые хранят один и тот же набор данных. Надежность хранения обеспечивается репликацией данных между серверами.
- Sharded cluster: распределение наборов данных между серверами, т.е. горизонтальное масштабирование.
Для работы вам может пригодиться [инструкция по установке MongoDB на Ubuntu](https://serverspace.ru/support/help/ustanovka-mongodb-na-ubuntu-18-04/). Далее описывается процесс настройки кластера replica set.
## Replica set — роли серверов
Для кластера необходимо минимум три сервера MongoDB:
- Первичный (primary), выполняет все запросы на чтение и запись в БД от приложения. Все операции по изменению данных записываются в специальную коллекцию "oplog" (operation log) – она используется для репликации этих изменений на вторичные серверы.
- Вторичный (secondary), реплицирует коллекцию oplog, и применяет все имеющиеся операции из этой коллекции по изменению данных. Этим и обеспечивается идентичность данных на всех серверах кластера. Минимально требуется два вторичных сервера.
Схематичное изображение:
## Replica set – конфигурирование
Описание серверов для примера настройки:
- Первичный сервер: имя – server1, IP 10.20.30.10;
- Вторичный сервер: имя – server2, IP 10.20.30.20;
- Вторичный сервер: имя – server3, IP 10.20.30.30.
Имена серверов и их IP адреса необходимо заменить на реальные.
Перед настройкой кластера необходимо:
- Установить MongoDB на все серверы;
- Разрешить в правилах firewall подключение между серверами для порта 27017;
- Настроить разрешение имен серверов: если DNS сервер отсутствует, то добавить на каждом сервере записи в /etc/hosts в виде:
```
10.20.30.10 server1.domain.local server1
10.20.30.20 server2.domain.local server2
10.20.30.30 server3.domain.local server3
```
**Важно:** все дальнейшие команды для настройки должны содержать только имена серверов! Начиная с версии 5.0 не допускается использование IP адресов – MongoDB проверяет их наличие в конфигурации, и не запустится если они присутствуют.
### Настройка кластера
1. Запустить на каждом сервере MongoDB:
```
mongod --replSet "rs0" –bind_ip localhost,server_name
```
"rs0" – название реплики.
server_name - имя сервера, на котором запускается MongoDB.
2. На первичном сервере запустить командную оболочку mongo (используя свои учетные данные вместо username и password):
```
mongo -u username -p password
```
3. В оболочке mongo инициализировать репликацию и добавить все серверы в кластер:
```
rs.initiate( {
_id: "rs0",
members: [
{ _id: 0, host: "server1.domain.local:27017" },
{ _id: 1, host: "server2.domain.local:27017" },
{ _id: 2, host: "server3.domain.local:27017" },
]
})
```
На других серверах эти действия выполнять не требуется.
4. Проверить настройки репликации командой rs.conf() – в выводе команды отображаются параметры каждого сервера. Для первичного сервера:
```
{
"_id" : "rs0",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "server1. domain.local:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
```
5. Можно заметить, что для каждого сервера установлен приоритет по умолчанию – 1: строка "priority: 1".
Значение приоритета используется в процессе голосования: чем ниже значение, тем выше вероятность быть выбранным первичным сервером.
Можно заранее определить какой из вторичных серверов будет выбран следующим первичным такими командами:
```
conf = rs.conf()
conf['members'][0].priority = 1
conf['members'][1].priority = 2
conf['members'][2].priority = 3
rs.reconfig(conf)
```
Таким образом:
- server1 всегда будет первичным;
- server2 будет выбран следующим первичным если server1 недоступен;
- server3 – останется единственным в кластере и станет первичным если server1 и server2 недоступны.
6. Проверить статус репликации командой "rs.status()". Необходимо проверить наличие всех серверов в выводе команды, и состояние каждого сервера (строка "stateStr").
Пример для первичного сервера:
```
"members" : [
{
"_id" : 0,
"name" : "server1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 87986,
"optime" : {
"ts" : Timestamp(1526936047, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2023-03-29T12:54:07Z"),
"electionTime" : Timestamp(1526848104, 1),
"electionDate" : ISODate("2018-03-29T12:28:24Z"),
"configVersion" : 3,
"self" : true
},
```
Значение для "stateStr" - "PRIMARY", т.е. server1 действительно первичный.
Для вторичного сервера server2:
```
{
"_id" : 0,
"name" : "server2:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 97453,
"optime" : {
"ts" : Timestamp(1526936047, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2023-03-29T12:54:07Z"),
"electionTime" : Timestamp(1526848104, 1),
"electionDate" : ISODate("2018-03-29T12:28:24Z"),
"configVersion" : 3,
"self" : true
},
```
"stateStr" - "SECONDARY", т.е. server2 действительно присутствует в кластере как вторичный.
Аналогичный вывод должен быть и для server3.
По умолчания серверы отслеживают состояние друг друга раз в 10 секунд (значение можно поменять на более подходящее).
Как было отмечено ранее - при недоступности первичного сервера запустится процесс голосования.
В соответствии с приоритетом, server2 станет первичным – это можно увидеть в выводе "rs.status()", значение "stateStr" изменится с "SECONDARY" на "PRIMARY".
Для server1 в выводе значение "stateStr" изменится на "(not reachable/healthy)". После того как server1 опять станет доступным, данные будут реплицированы с server2, и после этого запустится голосование - server1 опять станет первичным.
Наличие кластера позволяет также выполнять плановые работы на любом сервере без остановки приложения, так как критичные данные останутся доступными.
## Заключение
Этих действий достаточно для простой настройки кластера replica set.
MongoDB предусматривает более сложные конфигурации, в том числе можно использовать сочетание replica set и sharding.
Примеры таких конфигураций будут рассмотрены в следующих статьях.
## Вам также может быть интересно
- [VPS сервер для баз MongoDB](https://serverspace.uz/services/vps-server.md)
- [Сервер с базой MySQL](https://serverspace.uz/services/cloud-marketplace/mysql/)
- [Мануалы по работе с базами данных](https://serverspace.uz/support/help/category/databases/)
https://serverspace.uz/support/help/nastrojka-udalennyh-komand-i-skriptov-v-zabbix.mdИнструкция по настройке и использованию удаленных команд и скриптов в Zabbix для автоматизации и интеграции вашей системы мониторинга
**Скрипты в Zabbix** могут использоваться для выполнения настраиваемых проверок мониторинга, сбора и обработки данных из внешних источников и автоматизации задач на основе событий мониторинга. Zabbix поддерживает различные языки программирования, включая Bash, Python, Perl и Ruby. В этой статье мы рассмотрим скрипты оповещения Zabbix, как их создавать и как настроить агента Zabbix для работы с ними.
## Настройка агента Zabbix для работы с удаленными командами
Сначала нам понадобится [настроить агент Zabbix](https://serverspace.uz/support/help/ustanovka-agenta-zabbix-na-ubuntu/) для работы со скриптами:
- Войдите на хост, на котором запущен агент.
- Отредактируйте файл zabbix_agentd.conf:
- Пропишите 1 в параметр "EnableRemoteCommands", чтобы агент мог выполнять удаленные команды.
- Так же поменяйте "UnsafeUserParameters" на 1, чтобы позволить агенту
- Zabbix выполнять пользовательские скрипты.
- Можно ещё включить "LogRemoteCommands", если нужно вести журналы.
Перезапустите службу агента Zabbix, чтобы применить изменения.
## Создание скриптов оповещения Zabbix
Чтобы создать скрипт оповещения в Zabbix, выполните следующие действия:
Перейдите в раздел "Administration" → "Scripts" в левом меню. Нажмите на кнопку "Create Script" в правом верхнем углу экрана.
Дайте скрипту имя, выберите нужный параметр области действия, заполните необходимую информацию, которая может включать параметры скрипта, аргументы команды или настройки типа медиа, и нажмите "Add".
Теперь более подробно рассмотрим некоторые из вариантов настройки, такие как область действия и тип скрипта.
## Направления скриптов
**Скрипты операций действий:**
Это скрипты, которые выполняются в рамках операции. Скрипты операций действий выполняются автоматически и могут использоваться для выполнения задач, таких как отправка уведомлений, запуск скриптов на удаленных хостах или обновление данных во внешних системах. Эти скрипты связаны с конкретным действием и выполняются при каждом его срабатывании.
**Скрипты действий на хосте:**
Это скрипты, которые можно выполнять вручную на конкретном хосте. Они связаны с конкретным хостом и могут использоваться для выполнения задач, таких как перезапуск сервиса, запуск диагностической команды или выполнение резервного копирования. Скрипты действий на хосте выполняются вручную пользователем из веб-интерфейса Zabbix или API и могут быть выполнены только на хосте, с которым они связаны.
**Скрипты действий на событии:**
Это скрипты, которые можно выполнять вручную на конкретном событии. Они связаны с конкретным событием и могут использоваться для выполнения задач, таких как отправка пользовательского уведомления, обновление системы учета инцидентов или запуск рабочего процесса. Скрипты действий на событии выполняются вручную пользователем из веб-интерфейса Zabbix или API и могут быть выполнены только на событии, с которым они связаны.
## Типы скриптов
**Скрипты webhook:** webhook - это способ для одного приложения предоставлять данные другому приложению в режиме реального времени. Скрипты webhook в Zabbix могут использоваться для отправки данных во внешнюю систему, такую как чат-приложение или платформа управления инцидентами. Чтобы настроить скрипт webhook в Zabbix, вам нужно создать новый тип медиа с соответствующими настройками (например, URL webhook и любые необходимые заголовки или аутентификация), а затем связать этот тип медиа с действием.
**Скрипты**: Zabbix также поддерживает настраиваемые скрипты, которые могут быть написаны на различных языках программирования (таких как Bash, Perl, Python или PowerShell) и выполняться в различных областях действия в зависимости от того, где предполагается запуск скрипта. Существуют три разных области действия для настраиваемых скриптов, которые определяют, где они могут быть использованы:
- Агент Zabbix
- Прокси-сервер Zabbix
- Сервер Zabbix
Чтобы настроить настраиваемый скрипт в Zabbix, вам нужно создать новый скрипт с соответствующими настройками кода и языка. Затем вы сможете использовать этот скрипт в различных контекстах, таких как в действии или в настраиваемом ключе элемента.
**Скрипты SSH**: скрипты SSH в Zabbix могут использоваться для выполнения команд или скриптов на удаленном хосте через SSH. Чтобы настроить скрипт SSH в Zabbix, вам нужно [создать новую пару ключей SSH](https://serverspace.uz/support/help/generaciya-ssh-kluchey/) и добавить открытый ключ в файл authorized_keys на удаленном хосте. Затем вам нужно создать новый скрипт в Zabbix, который указывает команду для выполнения на удаленном хосте вместе с необходимыми деталями подключения SSH.
**Скрипты Telnet**: Telnet - это протокол сетевого взаимодействия, который обеспечивает виртуальное терминальное соединение с удаленным хостом. Чтобы настроить скрипт Telnet в Zabbix, вам нужно создать новый элемент Telnet в конфигурации Zabbix (на любом выбранном вами хосте, это проверка без агента, которая может указывать на любой IP-адрес, что может быть полезно для мониторинга хостов, не способных запускать агент), указав имя хоста или IP-адрес удаленного хоста, а также номер порта и любые необходимые учетные данные для входа. Затем вам нужно создать новый скрипт в Zabbix, который указывает команду для выполнения на удаленном хосте.
Скрипты IPMI: IPMI (Intelligent Platform Management Interface) - это стандарт для удаленного управления сервером, который позволяет администраторам мониторить и управлять аппаратными компонентами, такими как блоки питания, вентиляторы и датчики температуры. Скрипты IPMI в Zabbix могут использоваться для выполнения IPMI-команд на удаленном сервере. Чтобы настроить скрипт IPMI в Zabbix, вам нужно включить IPMI на удаленном сервере и настроить необходимые сетевые настройки. Затем вам нужно создать новый скрипт в Zabbix, который указывает IPMI-команду для выполнения вместе с необходимыми деталями подключения.
## Примеры скриптов оповещения Zabbix
После того, как вы создали свой скрипт оповещения, вы можете настроить его для выполнения конкретных действий при генерации оповещения. Например, вы можете настроить скрипт для перезапуска сервиса, отправки уведомления по электронной почте или выполнения команды на удаленном сервере.
Вот несколько примеров скриптов оповещения из базовой конфигурации Zabbix:
Обнаружение операционной системы: этот скрипт можно использовать для определения версии операционной системы на хосте
```
sudo /usr/bin/nmap -O/usr/bin/traceroute {HOST.CONN} {HOST.CONN}
```
Ping: говорит сам за себя
```
ping -c 3 {HOST.CONN}; case $? in [01]) true;; *) false;; esac
```
Перезапуск сервиса: перезапускает службу на хосте Windows, обнаруженном функцией автообнаружения
```
net start {TRIGGER.DESCRIPTION}
```
## Заключение
Мы рассмотрели настройку скриптов Zabbix. В целом для настройки этих скриптов требуется некоторые технические знания протоколов и технологий, а также понимание возможностей скриптинга и автоматизации Zabbix. Однако с правильной настройкой эти скрипты могут обеспечить мощные возможности автоматизации и интеграции для вашей системы мониторинга Zabbix.
https://serverspace.uz/support/help/kak-avtomatizirovat-nastrojku-jenkins-s-pomoshhyu-docker-i-konfiguraczii-jenkins-kak-koda.mdКак автоматизировать настройку Jenkins с помощью Docker и конфигурации Jenkins как кода. Настройка авторизации с помощью CasC
## Введение
[Jenkins](https://jenkins.io/) считается инструментом с открытым исходным кодом и сервером автоматизации конвейеров непрерывной интеграции и развертывания. Jenkins – написан на Java, и его можно установить на Ubuntu/Debian/CentOS и на разные дистрибутивы с помощью пакетного менеджера, который установлен на сервере или же из исходных файлов репозитория проекта.
Jenkins можно настроить вручную, как рассмотрено в [нашей инструкции](https://serverspace.ru/support/help/ustanovka-jenkins-na-ubuntu-22-04/), либо можно установить в контейнере Docker, чтобы процесс работы в Jenkins не был медленным и был без ошибок. Если устанавливать Jenkins вручную, то некоторые конфигурации не отследить в системе контроля версий (VCS), такой как [Git](https://git-scm.com/).
В этой инструкции мы рассмотрим установку и настройку Jenkins в контейнере [Docker](https://www.docker.com/) и рассмотрим метод "Конфигурация Jenkins как код" (JCasC).
Мы рассмотрим запуск своего экземпляра Jenkins с помощью Docker и воспользуемся преимуществами, в виде кроссплатформенности и согласованности.
В этой инструкции начнём с настройки JCasC и поэтапно будем добавлять в файл конфигурации JCasC настройку пользователей, аутентификацию и защиту нашего экземпляра Jenkins. После этой инструкции у нас будет собственный образ Docker, который настроен на использование подключаемого плагина [JCasC](https://plugins.jenkins.io/configuration-as-code/) для автоматической настройки и защиты экземпляра Jenkins.
## Подготовка к работе
Для выполнения всех шагов в данной инструкции, необходимо развернуть [собственный сервер](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/) на базе Debian/Ubuntu/CentOS, выбрать оперативную память минимально 2 GB. [Установить Docker](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/) согласно нашей инструкции.
## Отключение мастера установки
Использование JCasC избавляет от необходимости показывать мастер настройки, поэтому на первом этапе мы создадим модифицированную версию официального образа [jenkins/jenkins](https://hub.docker.com/r/jenkins/jenkins/), в которой мастер настройки будет отключен. Для этого нужно создать **Dockerfile** и собрать из него пользовательский образ Jenkins.
Образ **jenkins/jenkins** позволяет включить или отключить мастер установки, передав системное свойство **jenkins.install.runSetupWizard** через переменную окружения **JAVA_OPTS**. Пользователи образа могут передать переменную окружения **JAVA_OPTS** во время выполнения с помощью флага --env в docker run. Однако такой подход возлагает бремя отключения мастера установки на пользователя образа. Вместо этого следует отключать мастер установки во время сборки, чтобы он был отключен по умолчанию. Этого можно добиться, создав **Dockerfile** и используя инструкцию **ENV** для установки переменной окружения JAVA_OPTS.
Сначала создадим новый каталог внутри нашего сервера для хранения файлов, которые мы будем создавать в этом руководстве:
```
mkdir -p jenproject/jcasc
```
Перейдём в созданную директорию:
```
cd jenproject/jcasc
```
Создадим Docerfile с помощью nano/vim и добавим следующую конфигурацию:
```
FROM jenkins/jenkins:latest
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
```
FROM – указываем наш образ и версию
ENV (environment) – указываем среду JAVA_OPTS и в опции jenkins.install.runSetupWizard указываем параметр ЛОЖЬ (false) и отключаем мастер настройки. Сохраним файл и выполним выход. Необходимо находится в каталоге, где находится Dockerfile и запустить команду:
```bash
docker build -t jenkins:jcasc .
```
После запуска получим следующий результат:
Рисунок 1 – Сборка Dockerfile
Также можно посмотреть образ сборки с помощью:
```bash
docker images
```
Рисунок 2 – Образ сборки
Запустим наш образ в контейнере с помощью docker run и в конце указываем ID образа:
```bash
docker run --name jenkins --rm -p 8080:8080 IMAGE_ID
```
Рисунок 3 – Запуск контейнера
Далее переходим в браузер и указываем IP-адрес сервера и порт 8080:
```
http://ip-address:8080
```
Рисунок 4 – Доступ к Jenkins и уведомление о пустом URL
Мы только что убедились, что мастер настройки был отключен. Чтобы остановить контейнер, нажмите CTRL+C. Если вы ранее указали флаг --rm, остановленный контейнер будет автоматически удален.
В этом шаге мы создали пользовательский образ Jenkins, в котором отключен мастер настройки. Однако в правом верхнем углу веб-интерфейса теперь отображается красный значок уведомления, указывающий на наличие проблем с настройкой. Нажмите на значок, чтобы увидеть подробности:
Рисунок 5 – Предупреждение от системы
Первое предупреждение информирует нас о том, что выполнение сборки на встроенном узле может быть небезопасно и ссылается на документацию. Ранее мастер настройки подсказывал нам, как решить эти проблемы. Теперь, когда мы отключили его, нам нужно воспроизвести те же функции с помощью JCasC. Остальная часть этого руководства включает в себя изменение вашего Dockerfile и конфигурации JCasC до тех пор, пока не останется никаких проблем (то есть пока не исчезнет красный значок уведомления).
На следующем этапе мы начнем этот процесс с предварительной установки ряда плагинов Jenkins, включая плагин Configuration as Code, в наш пользовательский образ Jenkins.
## Установка плагинов Jenkins
Чтобы использовать JCasC, необходимо установить плагин Configuration as Code. В настоящее время плагины не установлены. Мы можем убедиться в этом, перейдя по адресу http://ip_address:8080/pluginManager/installed:
Рисунок 6 – Установленные плагины
В этом шаге мы изменим свой Dockerfile для предварительной установки ряда плагинов, включая плагин Configuration as Code.
Чтобы автоматизировать процесс установки плагина, мы можем воспользоваться сценарием установки, который поставляется вместе с Docker-образом jenkins/jenkins. Мы можем найти его внутри контейнера по адресу /usr/local/bin/install-plugins.sh. Чтобы использовать его, мам нужно:
- создать текстовый файл, содержащий список плагинов для установки;
- скопировать его в образ Docker;
- запустить скрипт install-plugins.sh для установки плагинов.
Сначала с помощью редактора vim/nano создадим новый файл с именем plugins.txt:
```
vim jenproject/jcasc/plugins.txt
```
Затем добавим следующий список имен и версий плагинов, разделенных новой строкой (используя формат :):
```bash
ant:latest
antisamy-markup-formatter:latest
build-timeout:latest
cloudbees-folder:latest
configuration-as-code:latest
credentials-binding:latest
email-ext:latest
git:latest
github-branch-source:latest
gradle:latest
ldap:latest
mailer:latest
matrix-auth:latest
pam-auth:latest
pipeline-github-lib:latest
pipeline-stage-view:latest
ssh-slaves:latest
timestamper:latest
workflow-aggregator:latest
ws-cleanup:latest
```
Сохраним файл и выполним выход из редактора.
Список содержит плагин Configuration as Code, а также все плагины, предложенные мастером настройки. Например, у нас есть плагин Git, который позволяет Jenkins работать с репозиториями [Git](https://plugins.jenkins.io/git/); у нас также есть плагин [Pipeline](https://plugins.jenkins.io/workflow-aggregator/), который на самом деле представляет собой набор плагинов, позволяющих определять задания Jenkins в виде кода.
Откроем наш Dockerfile и добавим изменения. В нем добавим конструкцию COPY, чтобы скопировать файл plugins.txt в каталог /usr/share/jenkins/ref/ внутри образа; именно там Jenkins обычно ищет плагины. Затем включим дополнительную конструкцию RUN для запуска сценария install-plugins.sh:
```
FROM jenkins/jenkins:latest
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
COPY --chown=jenkins:jenkins plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.txt
```
Сохраним файл и выполним выход. Начнём сборку нашего образа с помощью команды:
```bash
docker build -t jenkins:jcasc .
```
Рисунок 7 – Результат сборки образа
Далее необходимо скопировать ID образа и запустить в контейнере.
```bash
docker images -a
docker run --name jenkins --rm -p 8080:8080 IMAGE_ID
```
Рисунок 8 – Запуск нового контейнера
Далее переходим по ссылке http://ip_address:8080/pluginManager/installed и увидим результат с установленными плагинами:
Рисунок 9 – Установленные плагины
Убедившись, что плагин Configuration As Code установлен, завершим процесс контейнера, нажав CTRL+C.
В этом шаге мы установили все предложенные плагины Jenkins и плагин Configuration as Code. Теперь мы готовы использовать JCasC для решения проблем, перечисленных в окне уведомления. В следующем шаге мы устраним первую проблему, которая предупреждает нас о том, что корневой URL Jenkins пуст:
Рисунок 10 – URL-адрес пуст
## Настройка URL-адреса для Jenkins
URL-адрес Jenkins - это URL-адрес экземпляра Jenkins, который можно маршрутизировать с устройств, которым необходим доступ к нему. Например, если мы развертываем Jenkins как узел внутри частной сети, URL Jenkins может быть частным IP-адресом или DNS-именем, которое можно разрешить с помощью частного DNS-сервера. В данном руководстве для формирования URL Jenkins достаточно использовать IP-адрес сервера (или 127.0.0.1 для локальных узлов).
Мы можем задать URL Jenkins в веб-интерфейсе, перейдя по адресу ip_address:8080/configure и введя значение в поле Jenkins URL под заголовком Jenkins Location. Добиться того же самого с помощью плагина Configuration as Code:
- Определим желаемую конфигурацию нашего экземпляра Jenkins в декларативном конфигурационном файле (который мы назовем casc.yaml).
- Скопируем файл конфигурации в образ Docker (так же, как мы сделали это для файла plugins.txt).
- Установим переменную окружения CASC_JENKINS_CONFIG на путь к файлу конфигурации, чтобы указать плагину Configuration as Code прочитать его.
Для начала создадим файл casc.yml:
```
vim jenproject/jcasc/casc.yml
```
Добавим следующий кусок кода вместе с IP-адресом нашего сервера.
```yaml
unclassified:
location:
url: http://ip_address:8080/
```
unclassified.location.url - это путь для установки URL-адреса Jenkins. Это лишь одно из огромного количества свойств, которые можно задать с помощью JCasC. Валидные свойства определяются установленными плагинами.
Например, свойство jenkins.authorizationStrategy.globalMatrix.permissions будет действительным, только если установлен плагин Matrix Authorization Strategy. Чтобы узнать, какие свойства доступны, перейдите по адресу ip_address:8080/configuration-as-code/reference, и вы найдете страницу документации, настроенной на вашу конкретную установку Jenkins.
Сохраним код и откроем Dockerfile. Добавим конструкцию COPY в конец, которая копирует файл casc.yaml в образ по адресу /var/jenkins_home/casc.yaml. Мы выбрали /var/jenkins_home/, потому что это каталог по умолчанию, в котором Jenkins хранит все свои данные. Затем добавим еще одну конструкцию ENV, которая устанавливает переменную окружения CASC_JENKINS_CONFIG:
```
FROM jenkins/jenkins:latest
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
ENV CASC_JENKINS_CONFIG /var/jenkins_home/casc.yaml
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
COPY casc.yaml /var/jenkins_home/casc.yaml
```
Сохраним файл и запустим сборку образа:
```
ocker build -t jenkins:jcasc .
```
Запустим наш образ в контейнере:
```bash
docker images
docker run --name jenkins --rm -p 8080:8080 IMAGE_ID
```
Перейдем на ip_address:8080, чтобы просмотреть панель инструментов. На этот раз мы, заметили, что количество уведомлений уменьшилось на единицу, а предупреждение об URL-адресе Jenkins исчезло:
Рисунок 11 – Отсутствие уведомления
Теперь перейдем по адресу ip_address:8080/configure и прокрутим вниз до поля Jenkins URL. Убедимся, что URL Jenkins был установлен на то же значение, которое указано в файле casc.yaml:
Рисунок 12 – Location.URL
Наконец, остановим процесс контейнера, нажав CTRL+C.
В этом шаге мы использовали плагин Configuration as Code для установки URL Jenkins. В следующем шаге мы решим второе предупреждение из списка уведомлений (Незащищенный Jenkins позволяет каждому, у кого есть доступ к сети).
## Настройка авторизации
Первая проблема в списке уведомлений связана с аутентификацией сборки. По умолчанию все задания запускаются от имени системного пользователя, который имеет много системных привилегий. Поэтому пользователь Jenkins может выполнить повышение привилегий, просто определив и запустив вредоносное задание или конвейер, это небезопасно.
Вместо этого задания должны запускаться тем же пользователем Jenkins, который их сконфигурировал или запустил. Для этого необходимо установить дополнительный плагин [Authorize Project](https://plugins.jenkins.io/authorize-project).
Откройте файл plugins.txt и внесите следующую строку:
```
authorize-project:latest
```
Плагин предоставляет новую стратегию авторизации сборки, которую нам нужно будет указать в конфигурации JCasC. Выполним выход из файла plugins.txt и откроем файл casc.yaml и добавим следующую конфигурацию:
```
jenkins:
securityRealm:
local:
allowsSignup: false
users:
- id: ${JENKINS_ADMIN_ID}
password: ${JENKINS_ADMIN_PASSWORD}
authorizationStrategy:
globalMatrix:
permissions:
- "Overall/Administer:admin"
- "Overall/Read:authenticated"
remotingSecurity:
enabled: true
security:
queueItemAuthenticator:
authenticators:
- global:
strategy: triggeringUsersAuthorizationStrategy
unclassified:
```
Сохраним файл и запустим сборку образа:
```bash
docker build -t jenkins:jcasc .
```
Запустим образ в контейнере:
```bash
docker images
docker run --name jenkins --rm -p 8080:8080 --env JENKINS_ADMIN_ID=admin --env JENKINS_ADMIN_PASSWORD=serverspace IMAGE_ID
```
Дождемся появления строки журнала "Jenkins is fully up and running", затем перейдем по адресу ip_address:8080/login, укажем логин и пароль и будем перенаправлены на главную панелей инструментов. Откроем уведомления, и увидим, что проблемы отсутствуют из-за строк в файле casc.yml:
```
remotingSecurity:
enabled: true
```
Рисунок 13 - Авторизация
Рисунок 14 – Отсутствие предупреждений
## Выводы
Теперь мы успешно настроили простой сервер Jenkins с помощью JCasC. Подобно тому, как плагин [Pipeline](https://plugins.jenkins.io/workflow-aggregator/) позволяет разработчикам определять свои задания внутри Jenkinsfile, плагин Configuration as Code позволяет администраторам определять конфигурацию Jenkins внутри YAML-файла. Оба этих плагина приближают Jenkins к парадигме Everything as Code (EaC).
Однако правильное понимание синтаксиса JCasC может быть затруднено, а документацию трудно расшифровать. Если вы застряли и вам нужна помощь, вы можете найти ее в чате [Gitter](https://gitter.im/jenkinsci/configuration-as-code-plugin) для этого плагина.
Хотя мы настроили основные параметры Jenkins с помощью JCasC, новый экземпляр не содержит никаких проектов или заданий. Чтобы пойти еще дальше, изучите плагин [Job DSL](https://plugins.jenkins.io/job-dsl), который позволяет вам определять проекты и задания в виде кода. Более того, вы можете включить код Job DSL в конфигурационный файл JCasC, и проекты и задания будут созданы в процессе конфигурирования.
https://serverspace.uz/support/help/sozdanie-polzovatelej-grupp-polzovatelej-i-rolej-v-zabbix.mdИнструкция по созданию и настройке пользователей Zabbix, а так же групп пользователей и ролей пользователей для них
Чтобы наилучшим образом использовать возможности Zabbix, важно создать пользователей, группы пользователей и настроить разрешения. Это позволит вам контролировать, кто может получать доступ и изменять различные части системы мониторинга, обеспечивая безопасность ваших данных и позволяя только авторизованному персоналу вносить изменения.
В этой статье мы рассмотрим пошаговые инструкции по созданию пользователей, групп пользователей и настройке разрешений.
## Создание пользователей
Нажмите на вкладку "Администрирование" в меню навигации, затем нажмите "Пользователи".
Нажмите на кнопку "Создать пользователя" или выберите пользователя, которого хотите изменить.
Заполните поля Имя пользователя и Пароль.
В разделе Группа выберите группу пользователей, к которой должен принадлежать пользователь. Если группа ещё не существует, вы можете создать ее, используя инструкции ниже.
В разделе разрешения вы должны выбрать предварительно созданную роль для вашего пользователя, которая указывает, какие элементы пользовательского интерфейса доступны для этого пользователя. Также устанавливаются разрешения на конкретные действия, например, на подтверждение проблем или удаление событий.
## Создание групп пользователей
Группы пользователей в Zabbix служат способом управления и организации пользователей, которые выполняют сходные обязанности в системе мониторинга. Группы пользователей позволяют администраторам назначать разрешения группе пользователей, вместо того, чтобы назначать разрешения каждому пользователю индивидуально. Это помогает упростить управление доступом пользователей и облегчает обеспечение того, что все пользователи с похожими обязанностями имеют соответствующий уровень доступа.
Меню "Администрирование", нажимаем "Группы пользователей".
Нажмите кнопку "Создать группу пользователей" или группу, которую вы хотите изменить.
В разделе "Детали группы пользователей" укажите название группы и добавьте пользователей для этой группы.
В разделе "Разрешения" вы можете указать, на какие группы узлов сети и шаблоны, а также на другие связанные с ними объекты группа пользователей может иметь доступ и читать и/или записывать.
Вкладка "Фильтр по тегам" позволяет давать доступ на основе тегов. Напишите комбинацию необходимых групп хостов и тегов.
## Роли пользователей
"Роли пользователей" во вкладке "Администрирование". Как обычно, создайте роль пользователя или измените существующую.
Дайте ей имя и выберите, какие элементы пользовательского интерфейса доступны для этой роли (вы можете отталкиваться от трех типов пользователей, которые она предлагает). Затем вы можете выбрать доступ к модулям, службам и действиям.
Сохраните изменения, и готово.
## Заключение
Мы рассмотрели настройку пользователей Zabbix, а также групп пользователей и ролей для них.
https://serverspace.uz/support/help/sozdanie-i-nastrojka-shablonov-v-zabbix.mdРассматриваем как в Zabbix создавать шаблоны, закреплять за ними элементы данных и как применять шаблоны к узлам сети
Шаблоны в Zabbix - это мощная функция, которая позволяет легко настроить мониторинг для нескольких хостов одновременно. В этом руководстве мы расскажем вам, как их создавать и настраивать.
## Создание шаблонов
Чтобы создать новый шаблон в Zabbix, сначала перейдите на вкладку "Конфигурация", затем нажмите на "Шаблоны".
Нажмите кнопку "Создать шаблон". Введите имя шаблона и описание, если хотите. В строке "Шаблоны" вы можете связать этот шаблон с другими, если хотите. Выберите группы хостов, выровненные для этого шаблона, в следующей строке, затем нажмите "Добавить", чтобы создать шаблон.
## Настройка содержимого шаблона
Вернемся назад к "Шаблонам".
Теперь, когда вы создали шаблон, вы можете просмотреть и настроить его элементы, такие как связанные узлы сети, элементы данных, триггеры, графики, и другие шаблоны.
Чтобы добавить любой из перечисленных элементов, перейдите на соответствующую страницу, найдите нужные элементы в своем шаблоне, используя фильтр вверху страницы, затем отметьте их флажком слева и нажмите кнопку копирования.
Выберите, куда вы хотите скопировать выбранные элементы.
Повторите процесс для всех элементов, которые вы хотите добавить.
## Назначение шаблонов для узлов сети
Теперь, когда вы создали и настроили шаблон, вы можете назначить его одному или нескольким хостам:
Конфигурация → Хосты, найдите хост, которому вы хотите назначить шаблон, и нажмите на его имя.
На вкладке "Шаблоны" в обзоре хоста нажмите кнопку "Выбрать".
Нажмите кнопку "Добавить", чтобы назначить шаблон хосту.
Повторите процесс для всех хостов, которым вы хотите назначить шаблон.
## Заключение
Шаблоны в Zabbix - это мощная функция, которая может сэкономить вам время и усилия при мониторинге вашей IT-инфраструктуры, а с помощью этой инструкции мы научились создавать шаблоны, добавлять в них элементы и привязывать к ним узлы сети.
https://serverspace.uz/support/help/kak-sohranit-rabotu-kontejnera-docker-posle-zapuska-sluzhb.mdПрочитав эту статью, вы узнаете, как сохранить докер-контейнер работающим, даже если запущенные «внутри» него команды завершились
## Почему вообще возник такой вопрос
Docker был разработан, чтобы запускать предварительно сконфигурированное программное обеспечение полностью изолированно, в так называемой "песочнице". С одной стороны, такой подход обеспечивает полную идемпотентность, у нас есть гарантия, что программное обеспечение не зависит от внешней среды и его "поведение" всегда одинаково. С другой стороны, Docker останавливается, когда завершают свою работу запущенные внутри образа команды. Пример. Работа контейнера сразу остановится после выполнения команды ниже:
```bash
docker run # Запуск команды
docker ps # Вывод списка работающих контейнеров
```
Такое поведение Docker - не ошибка, оно обусловлено экономией системных ресурсов. Однако иногда контейнер должен работать постоянно, например, если программное обеспечение должно постоянно ждать "входящие" соединения.
## Как "заставить" контейнер Docker работать постоянно
Вы можете достигнуть эту цель несколькими способами:
Запуск "дополнительной" сессии псевдотерминала. Такой способ хорош, если поддерживать работу Docker-контейнера нужно не постоянно, а лишь время от времени. Достаточно просто запустить команду с флагами _-it_:
```bash
docker run -it bash # Запуск сессии командного интерпретатора
# Запуск команды или скрипта "внутри" контейнера
docker ps # Вывод списка работающих контейнеров
```
Другой способ не дать контейнеру выключиться - выполнение любой команды "в цикле". После запуска команды можно закрыть сеанс терминала:
```bash
docker run bash -c
```
Затем просто проверьте статус контейнера:
```bash
docker ps
```
Тот же самый результат можно получить, если запустить докер в "непривязанном" режиме. Для этого используйте флаг _-d_:
```bash
docker run -d bash -c # Запуск команды
docker ps # Вывод списка работающих контейнеров
```
## Заключение
Прочитав эту статью, вы узнали, как сохранить докер-контейнер работающим, даже если запущенные "внутри" него команды завершились.
https://serverspace.uz/support/help/ustanovka-i-zapusk-nginx-v-docker-kontejnere-na-ubuntu.mdУстановка и запуск Nginx в Docker-контейнере на Ubuntu - Serverspace. Проверка статуса контейнера. Копирование файлов в образ контейнера.
## Введение
Nginx – один из популярных web-серверов для размещения крупных сайтов с высоким трафиком пользователей в Интернете. Также, считается одним из удобных утилит, как для web-сервера, так и для конфигурирования обратного прокси.
Вы можете ознакомиться с нашей инструкцией по установке [Nginx в Ubuntu](https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/). Здесь мы рассмотрим запуск последней версии Nginx в Docker-контейнере.
## Подготовка к работе
Вам необходимо развернуть сервер на базе Ubuntu, настроить пользователя с правами на выполнения команд с "sudo" и брандмауэр UFW согласно нашей [инструкции](https://serverspace.ru/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
Как установить и настроить [Docker на Ubuntu 22.04](https://serverspace.ru/support/help/ustanovka-docker-na-ubuntu-20-04/).
## Конфигурационные файлы Nginx
Для файлов необходимо создать основную директорию, в которой будут хранится папки и файлы конфигурации для отображения нашей web-страницы.
```
mkdir -p serverspace
cd serverspace
```
Создадим несколько директорий и в них создадим файлы конфигурации для нашего тестового сайта, в котором запустим Nginx в Docker.
```
mkdir -p project/conf-files
mkdir -p html/files
touch project/conf-files/serverspace.ru.conf
touch project/nginx.conf
touch html/files/serverspace.html
```
После создания всех файлов мы должны получить следующий список содержимого:
Рисунок 1 – Содержание
Перейдём к их настройке.
Внесём изменения в файле serverspace.ru.conf удобным для нас текстовым редактором.
```
vim /serverspace/project/conf-files/serverspace.ru.conf
```
Запишем наш код:
```
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index serverspace.html;
location / {
try_files $uri $uri/ =404;
}
}
```
Перейдём к настройке файла nginx.conf и вставим наш код:
```css
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
```
В файле html/files/serverspace.html добавим код, в котором указываются заголовок сайта и одна строка с текстом:
```
## Welcome to the Test-Site from Serverspace
```
Перейдём к запуску Nginx в Docker-контейнере.
## Запуск контейнера
Запустим контейнер с помощью команды:
```bash
docker run --name nginx-serverspace -p 80:80 -v /root/serverspace/html/files/:/usr/share/nginx/html/ -v /root/serverspace/project/nginx.conf:/etc/nginx/nginx.conf -v /root/serverspace/project/conf-files/:/etc/nginx/conf.d/ -d nginx
```
**docker run** – запускает контейнер;
**--name nginx-serverspace** – указывает название контейнера;
**-p 80:80** – прослушиваемый порт;
**-v /path/to/file** – указывает путь откуда будет извлекаться файлы и передаваться в контейнер Nginx;
**-d nginx** – запускаемый образ в контейнере
После успешного запуска контейнера получим результат и проверим статус с помощью команды "docker ps":
Рисунок 2 – Статус контейнера
Перейдём по IP адресу созданного сервера, где откроется web-страница с нашим заголовком:
Рисунок 3 – Отображение web-страницы в браузере
## Выводы
Мы рассмотрели создание файлов и папок, которые в дальнейшем копируются в образ web-сервера при запуске в контейнере. В результате, мы смогли получить доступ к простой web-странице.
Каждый раз использование вручную команды по запуску Nginx и обозначения пути до директории файлов занимает больше времени. По этой причине удобно использовать docker-compose.yml, в котором заранее прописаны базовые настройки по запуску Nginx в Docker, указаны порт, пути до файлов. С помощью простой команды docker-compose up -d можно быстро развернуть свой образ Nginx в Docker.
https://serverspace.uz/support/help/ustanovka-maven-na-ubuntu-22-04.mdПошаговое руководство по установке Maven на Ubuntu 22.04. Скачивание исходных файлов OpenJDK и Maven. Установка OpenJDK и Maven из исходных файлов
## Введение
Maven является фреймворком для автоматизации сборки проектов. Maven используется при построении и управлении проектов, написанных на языках Java, C#, Ruby, Scala.
В этой инструкции рассмотрим установку Maven на Ubuntu 22.04.
## Подготовка к установке
Разверните виртуальную машину или сервер на базе Ubuntu и настройте пользователя с правами доступа для использования sudo, согласно [нашей инструкции](https://serverspace.uz/support/help/pervonachalnaya-nastrojka-ubuntu-server-22-04/).
## Скачивание исходных файлов JDK
Перейдем по ссылке версий JDK и скопируем ссылку "for Lunux/x64". Воспользуемся командной утилитой **wget** для скачивания файла. Разархивируйте, используя tar -xvzf, и поместите в папку _/opt/_ с помощью mv:
```bash
wget https://download.java.net/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-x64_bin.tar.gz
tar -xvzf openjdk-20_linux-x64_bin.tar.gz
mv jdk-20 /opt/
```
Теперь исходные файлы находятся в папке /opt/.
## Добавление JAVA_HOME в переменную окружения
В пользовательской директории внесем изменения в файл _.profile_, добавив строки с переменными окружения jdk-20:
```
JAVA_HOME='/opt/jdk-20'
PATH="$JAVA_HOME/bin:$PATH"
export PATH
```
Перезагрузим данные из файла:
```
source .profile
```
Провалидируем версию Java, чтобы удостовериться, что данные внесены в переменную:
```
java -version
```
##
## Скачивание Maven
Перейдите по ссылке для скачивания файлов Maven (Binary tar.gz archive). Вставим в терминал, чтобы скачать с помощью wget. Разархивируйте, используя утилиту **tar** и переместите в директорию _/opt/_:
```bash
wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz
tar -xvzf apache-maven-3.9.3-bin.tar.gz
mv apache-maven-3.9.3 /opt/
```
Добавим папку как переменную пути в пользовательский профиль:
```
M2_HOME='/opt/apache-maven-3.9.3'
PATH="$M2_HOME/bin:$PATH"
export PATH
```
В итоге файл _~/.profile_ будет выглядеть вот так:
Повторно перезагрузим переменные среды с помощью команды _source .profile_:
Совершим проверку версии Apache Maven:
```
mvn -version
```
## Выводы
В этой инструкции мы рассмотрели установку OpenJDK и Maven на сервер с ОС Ubuntu 22.04.
https://serverspace.uz/support/help/nastrojka-zashhity-dlya-trafika-smb.mdПроверка настроек безопасности SMB и основные правила брандмауэра и методы защиты SMB-трафика на Windows Server
## Вступление
Какая самая опасная угроза существует для корпоративной сети? Возможно, это физическое разрушение сервера, DDoS-атака злоумышленника на сервер или ошибка сотрудника в конфигурации ПО? Однако более глобальная проблема кроется в самой системе. Протоколы являются неотъемлемой частью этого процесса. Они устанавливают правила передачи данных по сети, которые напоминают кровь в организме. Любая инфекция и вирус передаются через эту жидкость. Абсолютно то же самое и с протоколом!
**SMB**, или серверный блок сообщений, - это протокол, разработанный для передачи файлов по сети. Его цель - облегчить общий доступ к файлам, принтерам и другим ресурсам между компьютерами, подключенными к сети. Значимость этого набора правил передачи чрезвычайно важна. Различные операционные системы получили возможность обмениваться данными без проблем с совместимостью, такие как Mac OS, Linux и Windows.
Поэтому он довольно часто используется в корпоративных сетях, и, к сожалению, уязвимость является большой проблемой!
## Анализ: проверьте свои настройки
Давайте сначала взглянем на версию протокола, которую вы используете:
- Зажмите комбинацию клавиш Win+R и напишите powershell;
- Затем введите приведенную ниже команду в CLI.
```
sc.exe qc lanmanworkstationе
```
Найдите строчку Dependencies и проверьте параметры, которые указаны рядом:
Скриншот №1 — Проверка версии протокола
Строчка обозначает поддержку соответствующей версии вашего SMB протокола:
- **smb1** — mrxsmb10.sys;
- **smb2** — mrxsmb20.sys;
- **smb3** — mrxsmb30.sys.
Если по несчастью у вас установлен протокол первой версии или вы хотите быть уверены, что он точно не доставит проблем, то я советую вам отключить его с помощью приведенных ниже команд:
```
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
```
Приведенная выше строка включает зависимости SMB2/3.
```
sc.exe config mrxsmb10 start= disabled
```
И эта команда отключает протокол первой версии. Все эти действия связаны с тем, что SMB1 не имеет надежного алгоритма шифрования, поэтому конфиденциальность, целостность и доступность сети остается под вопросом.
## Методы: меры защиты
Если у вас установлена вторая или третья версия протокола, значит, вам необходимо выполнить два действия для сохранения информационной безопасности: выполнить настройку правил брандмауэра, который позволит разграничить сеть по определенному порту и включить шифрование, которое поможет избежать перехвата и дешифровки.
### Правила брандмауэра
Есть несколько случаев сетевой архитектуры, в которых люди используют SMB за пределами своей LAN, однако это очень небольшой процент. Тогда SMB станет лакомым кусочком для нападающих. Вам необходимо написать правила для входящих и исходящих подключений для вашего брандмауэра. Заблокируйте TCP-порт с номером 445:
Скриншот №2 — Блокировка порта
Скриншот №3 — Применение настроек
И вам нужно выполнить аналогичные действия для исходящих подключений.
### Включите шифрование
В Windows Server у вас есть настройки по умолчанию для SMB: отключить шифрование. У этой проблемы есть быстрое решение. На стороне сервера откройте командную строку с повышенными правами доступа и введите следующую команду:
```
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "SMBEncryption" /t REG_DWORD /d 1 /f
```
И в клиент введите:
```
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "RequireSecureNegotiate" /t REG_DWORD /d 1 /f
```
Описание команды и ее атрибутов:
- **/v "SMBEncryption"** — Этот атрибут указывает имя значения, которое будет добавлено;
- **/t REG_DWORD** — Этот атрибут определяет тип данных, которые будут храниться в значении. В этом случае это будет 32-разрядное двоичное значение (DWORD);
- **/d 1** — Этот атрибут определяет данные, которые будут сохранены в значении. В этом случае он устанавливает значение равным 1, что включает шифрование SMB;
- **/f** — Этот атрибут указывает команде reg принудительно выполнить операцию без запроса подтверждения. Если этот атрибут опущен, команда предложит вам подтвердить, прежде чем вносить какие-либо изменения.
В целом, эта команда добавляет новое значение в реестр Windows, которое включает шифрование SMB на сервере или клиенте, в зависимости от того, что используется.
## Вывод
Я настоятельно рекомендую отказаться от SMB1 из-за отсутствия шифрования. Используйте более новую версию этого протокола SMB2/3 или отключите их, если они вам не нужны. Включите шифрование и добавьте правила брандмауэра для TCP-порта 445.
https://serverspace.uz/support/help/montirovanie-nfs-centos.mdИнструкция по монтированию NFS в Linux (CentOS) с помощью NFS (Network File System), чтобы работать с сетевым диском как с локальной папкой
**NFS** — сетевой протокол доступа к файловым системам, позволяющий получать доступ к удалённым объектам файловой системы и работать с ними, как с локальными.
Далее будет рассмотрено, как выполнить подключение ресурса распределенной файловой системы в CentOS.
Все действия необходимо выполнять от имени пользователя с повышенными правами.
Прежде всего, нужно установить **необходимое программное обеспечение** на сервер, на котором планируется монтировать директорию.
Для этого используем терминал и впишем туда команду ниже:
```bash
sudo dnf install nfs-utils
```
В результате будут установлены пакеты для поддержки протокола NFS и инструменты управления.
## **Поиск совместного ресурса NFS**
Далее нужно определиться с NFS директорией, которую необходимо подключить. Это можно сделать, выполнив команду на сервере-клиенте:
```
showmount -e "IP сервера"
```
В результате будут перечислены все доступные общие директории.
## **Создание точки монтирования**
Теперь создаём так называемую точку монтирования. Она представляет собой папку, в которую будет смонтирован ресурс распределённой файловой системы. Можно создать её в произвольном месте файловой системы, но обычно располагают в каталоге /mnt. Создаётся она такой командой:
```
sudo mkdir /mnt/nshare
```
## **Подключение совместного ресурса NFS**
Всё готово для монтирования NFS-ресурса. Выполняем команду:
```
sudo mount "общий ресурс NFS" /mnt/nshare
```
Например, для IP сервера — 10.10.1.1, NFS-ресурс — /home/nshare, команда будет выглядеть так:
```
sudo mount 10.10.1.1:/home/nshare /mnt/nshare
```
## **Проверка монтирования**
Для проверки, что ресурс успешно смонтирован, можно выполнить:
```
df –H
```
В выводе команды будут перечислены все смонтированные файловые системы. В нём должен отображаться общий ресурс NFS, смонтированный в каталог /mnt/nshare.
Для возможности автоматического подключения ресурса NFS при каждом запуске можно отредактировать файл /etc/fstab любым удобным текстовым редактором, добавив туда следующую строку:
```
"общий ресурс NFS" /mnt/nshare nfs defaults 0 0
```
После редактирования необходимо сохранить файл и выйти из текстового редактора. Теперь ресурс NFS будет автоматически монтироваться при каждом запуске сервера.
## **Заключение**
В инструкции рассматривается, как подключить общие ресурсы NFS в CentOS 8. Следуя ей, можно легко получить доступ к файлам и каталогам, расположенным на удаленных серверах и работать с ними как с локальными.
https://serverspace.uz/support/help/ustanovka-balansirovshhika-haproxy-na-centos.mdHAProxy → установка и настройка: пошаговая инструкция по установке HAProxy на CentOS и пример конфигурирования HAProxy
У малого и среднего бизнеса много проблем с сетевой архитектурой: старое серверное оборудование, нехватка ИТ—сотрудников, весь механизм открыт для злоумышленников! Существуют локальные, но жизненно важные решения, которые могут помочь в этой критической ситуации. Прокси—сервер — это такая деталь гигантского механизма защиты. Он обладает набором явных возможностей: перераспределяет нагрузку на сервер, предоставляет возможность установки IPS и IDS и обеспечивает примитивную анонимность, заменяя IP-адрес в заголовке данных. Одним из таких решений является **HAProxy**.
## Зачем нужен HAProxy?
**HAProxy** представляет этот тип утилиты для разных ОС. Бесплатное ПО с открытым исходным кодом — это заманчивое рыночное предложение, которое довольно выгодно и относительно безопасно. Нужно переписать программу под себя? Вряд ли это проблема. HAProxy обладает множеством различных возможностей и опций, которые подключают различные алгоритмы балансировки нагрузки, мониторинга, отслеживания входящего трафика и основной функции проксирования TCP, UDP соединений.
Настройка HAProxy достаточно простоя и не должна вызвать проблем.
## Подготовка к установке и действия
Для корректной работы необходимо проверить системные требования:
- **Операционная система:** HAProxy может работать в нескольких операционных системах, включая Linux, FreeBSD и Windows;
- **Память:** Потребность в памяти зависит от количества одновременных подключений и размера файла конфигурации. Как правило, вы должны выделять не менее 2 МБ на 1000 подключений;
- **ЦП:** Как правило, рекомендуется использовать многоядерный процессор;
- **Место на диске:** Требования к дисковому пространству минимальны. Однако вам может потребоваться выделить место для журналов или других пользовательских конфигураций.
Если параметры вашей системы в порядке, мы можем начать установку с помощью приведенных ниже команд:
```bash
sudo yum update -y
```
Обновление индексов пакетов важный процесс, который поможет установить актуальную версию программного обеспечения.
```bash
sudo yum install epel-release
```
Эта команда настраивает расширенные пакеты для вашего компьютера. Их нет в репозитории.
```bash
sudo yum install haproxy
```
Вывод в CLI может выглядеть, как показано на скриншоте:
Скриншот №1 — Установка HAProxy
Вот и все! Осталось совсем немного: настройка конфига.
## Создаем конфигурацию
Процесс написания конфигурации довольно творческий. Вам нужно рассчитать и продумать цель использования этой утилиты. Я рассматриваю две ситуации эксплуатации HAProxy, которых может быть великое множество.
Первое и самое популярное использование HAProxy для проксирования ваших данных через сервер. Найдите файл конфигурации:
```
nano /etc/haproxy/haproxy.cfg
```
Затем откройте с помощью любого текстового редактора: nano, vim и т.д. Вы можете увидеть три основных блока конфигурации: глобальный, по умолчанию и пару разделов, в которых необходимо выстроить логику настройки. В моем примере конфигурация должна проксировать http-соединение через блок "listen". Вначале вам нужно настроить блок "defaults". Пример, показанный на этом рисунке:
Скриншот №2 — Конфигурация прокси
Давайте опишем эти параметры:
- **log global:** Включает ведение журнала глобально для всего трафика, обрабатываемого HAProxy;
- **mode http:** Указывает, что HAProxy работает в режиме HTTP, что означает, что он сможет проверять HTTP-трафик и манипулировать им;
- **option httplog:** Включает подробное протоколирование HTTP, которое включает заголовки запросов и ответов, а также другую информацию, такую как IP-адрес клиента и версия SSL;
- **option dontlognull**: Запрещает HAProxy регистрировать соединения, которые не получают никаких данных.
Если вы используете UDP-соединение, то замените "TCP". Рассмотрим следующий блок "listen".
Скриншот №3 — Конфиг правила
В первой строке мы дали имя нашему правилу "http1", а затем параметром "bind" определили исходный IP и порт. Я выбираю знак "*" из-за отсутствия конкретной машины источника траффика. Укажите режим "http" и запишите целевой сервер. Первое слово означает параметр, второе — это его название, затем указывается IP:порт и необязательный параметр "check", который контролирует доступность соединения.
Во—вторых, используйте HAProxy для балансировки нагрузки на ваши данные через прокси-сервер. Существует множество методов и алгоритмов перераспределения нагрузки на сервер:
- **Round—Robin:** метод перераспределяет входящий трафик равномерно на все сервера, используя математический цикл, это доказанный на практике и эффективный способ сохранить доступность серверов;
- **Least Connections:** метод направляет входящий трафик на сервер с наименьшей нагрузкой, что может быть полезно при использовании соединения типа keep—alive;
- **Source IP Hash:** метод, подразумевающий вычисление хэш-значения всех клиентов, сравнение со следующими подключениями и маршрутизацию по правилу прошлых соединений.
Пример конфигурации показан на рисунке ниже:
Скриншот №4 — Конфиг балансировки
Параметры остаются прежними, но разделы были немного изменены. Добавлю блоки "frontend" и "backend". Первое подразумевает настройки исходного трафика, а второе - настройки целевого подключения к серверу. В поле "frontend" укажите IP:порт и целевой сервер. В разделе "backend" указывается только адрес сервера.
Затем вам нужно скомпилировать свою конфигурацию и перезагрузить службу с помощью приведенных ниже команд:
```
haproxy -c -f /etc/haproxy/haproxy.cfg
```
Результатом выполнения этой команды будет сообщение о состоянии вашего конфигурационного файла, и если в ваших параметрах была ошибка, то появится сообщение "ALERT" и "WARNING".
```bash
sudo service haproxy restart
```
Перезагрузите сервис и проверьте соединение!
## Вывод
HAProxy — это мощный инструмент, программное обеспечение, которое можно использовать для различных полевых задач: балансировки нагрузки на сервер, изменения IP-адреса для простой анонимности и проксирования трафика различными способами.
https://serverspace.uz/support/help/reservnoye-kopirovanie-servera-debian.mdСпособ клонирования сервера на Deboan с помощью утилиты Genisoimage для создания резервной копии в виде образа ISO
## Введение
Главная проблема и заноза в работе любого системного администратора, компьютерного инженера или заинтересованного IT—специалиста в области ОС: это автоматизация системы. Безопасная, быстрая и надежная установка ОС с подготовленным приложением и конфигурацией на многих машинах, звучит довольно устрашающе. Не так ли? Однако все процессы настройки довольно просты. Предположим, вам нужно воспроизвести конфигурацию и настройки существующего сервера. Вот тут—то и пригодится клонирование — создав клон текущего сервера, вы сможете быстро и легко развернуть новый сервер с программным обеспечением.
**Genisoimage** — это инструмент командной строки для создания образов файловой системы CD—ROM ISO 9660. Он обычно используется в системах Unix и Linux для создания загрузочных компакт—дисков, дисков резервного копирования или для распространения больших объемов данных в одном файле. Полученный ISO—образ затем можно записать на CD или DVD с помощью программного обеспечения для записи или смонтировать как виртуальный привод.
В этом кратком руководстве мы покажем и объясним процесс клонирования сервера Debian как можно более подробно. Независимо от того, являетесь ли вы опытным ветераном Linux или новичком в мире Debian, руководство предоставит вам всю необходимую информацию для успешного клонирования вашего сервера и экономии драгоценного времени и усилий. Итак, без лишних слов, давайте начнем!
## Системные требования и установка
Ниже приведены обычно рекомендуемые минимальные системные требования:
- **Процессор:** 1 ГГц или быстрее;
- **ОЗУ:** 1 ГБ (рекомендуется 2 ГБ или более);
- **Жесткий диск:** 20 МБ свободного места;
- **Операционная система:** Системы на базе Linux, например Debian.
Если параметры вашей системы в порядке, мы можем начать установку Genisoimage с помощью приведенных ниже команд:
```bash
sudo apt update && sudo apt upgrade -y
```
Эта строка означает обновление индексного списка пакетов и запуск процесса загрузки.
```bash
sudo apt-get install genisoimage -y
```
Эта команда запускает утилиту установочного пакета.
Скриншот №1 — Установка genisoimage
Затем для корректной работы программного обеспечения вам необходимо создать каталог, в котором данные будут подготавливаться и компилироваться в ISO—образ, приведенная ниже команда поможет это сделать:
```
sudo mkdir /tmp/image
```
Теперь скопируйте все файлы из "корневого каталога" в "iso_contents", если вы хотите сделать часть резервной копии, напишите каталог или файл, который следует скопировать. Приведенные ниже команды отображают этот шаг:
```
sudo fdisk -l
```
Скриншот №2 — Просмотр дискового label
Сначала необходимо определить имя устройства корневого раздела, выполнив команду.
```
sudo mount /dev/sda1 /mnt
```
Затем вы можете использовать команду "монтировать", чтобы присоединить корневой раздел к точке монтирования.
```
sudo cp -a /mnt/* /tmp/image/
```
Скопируйте все содержимое корневой файловой системы компьютера в новый каталог.
```
umount /mnt
```
В этой команде я "размонтирую" эту точку.
```
sudo genisoimage -r -o debian.iso /tmp/image
```
Используем genisoimage для создания ISO-образа скопированных файлов.
Скриншот №3 — Остальные шаги
**Обратите внимание!** Этот процесс может занять некоторое время в зависимости от размера корневой файловой системы компьютера. Кроме того, создание ISO—образа работающей системы может подходить не для всех случаев использования, поэтому обязательно учтите свои конкретные потребности, прежде чем продолжить.
Запишите ISO—образ на CD или DVD или сохраните его на USB—накопителе для использования в качестве загрузочного образа. Создайте новую виртуальную машину в программном обеспечении виртуализации, указав объем оперативной памяти и дискового пространства, которые вы хотите выделить виртуальной машине, и важное примечание: вам необходимо выбрать ту же конфигурацию, что и на предыдущей исходной машине!
## Вывод
Процесс клонирования включает в себя создание директории, копирование файлов из корневого каталога в новый каталог, создание ISO—образа скопированных файлов с помощью genisoimage и, наконец, запись ISO—образа на CD или DVD или сохранение его на USB—накопитель. Руководство также содержит системные требования и инструкции по установке. Важно отметить, что создание ISO—образа работающей системы может подходить не для всех случаев использования!
https://serverspace.uz/support/help/nastroika-samba-na-centos.mdРуководство по установке, настройке и отладке файлового сервера Samba на ОС CentOS. Конфигурирование, настройка доступов и пользователей
## Вступление
Samba — программа с открытым исходным кодом, которая предназначена для обмена файлами и печати между компьютерами в сети, работающими под различными операционными системами, такими как Windows, Linux и Mac OS. Она работает на протоколе SMB, который используется для обмена файлами и печати в сетях Windows и позволяет создавать шары на компьютере, к которым можно подключаться из других компьютеров в сети и обмениваться файлами.
Основными функциями Samba являются шифрование данных, аутентификация пользователей и доступ к удаленным ресурсам. Samba была создана в 1991 году и быстро стала популярной в качестве альтернативы проприетарным решениям для обмена файлами и печати в сетях Windows. Сейчас Samba является одним из наиболее популярных решений. Кроме того, Samba может использоваться в качестве доменного контроллера, который управляет учетными записями пользователей и группами в сети. Она также может быть использована для создания веб-сервера, который позволяет пользователям обмениваться файлами через Интернет.
## Установка Samba
Сначала установим пакеты Samba на сервер. Для этого нужно открыть терминал и ввести:
```bash
sudo yum install samba samba-client samba-common
```
Скриншот №1. Установка компонентов Samba
## Создание каталогов для обмена файлами
Следующим шагом является создание каталогов, которые впоследствии будут использоваться для обмена файлами. Можно создать несколько каталогов для разных пользователей или групп. Для создания каталога share1 используется команда ниже:
```
sudo mkdir /home/username/share1
```
Скриншот №2. Создание папки для шары
## Настройка конфигурации
После установки необходимых пакетов отредактируем конфигурационный файл, расположенный в каталоге /etc/samba/smb.conf. Для редактирования можно воспользоваться любым текстовым редактором. Выполняем:
```
sudo nano /etc/samba/smb.conf
```
Файл содержит множество строк. Для корректной работы службы потребуется изменить некоторые из них.
Скриншот №3. Содержимое файла конфигурации по умолчанию
## Настройка доступа
После создания каталогов следующим шагом является настройка доступа к ним. Добавляем следующие строки в конфигурационный файл:
```
path = /home/username/share1
valid users = username
read only = no
```
Этой конфигурацией описываем путь к папке share1,перечисляем пользователей с доступом и тип доступа, в данном случае указываем, что ресурс будет доступен не только для чтения.
Скриншот №4. Редактирование параметров файла конфигурации
## Создание пользователей
Далее производится создание пользователей Samba, которые будут иметь доступ к предоставляемым ресурсам. Для этого выполняем:
Заводим пользователя в ОС
```
adduser username
```
И задаём пароль
```
sudo smbpasswd -a username
```
Скриншот №5. Создание пользователя Samba
## Перезапуск Samba
Финальный этап — рестарт службы Samba для применения настроек.
Выполняется так:
```bash
sudo systemctl restart smb
```
Теперь можно пробовать подключаться к общим папкам с другого компьютера в сети, используя имя пользователя и пароль, созданные ранее.
Скриншот №6. Перезапуск службы после изменений конфигурации
## Заключение
Samba — хороший инструмент, позволяющий обмениваться файлами и предоставляющий общий доступ к принтерам между компьютерами в локальной сети.
В этой статье разобрали основные моменты настройки сервера Samba в операционной системе CentOS.
https://serverspace.uz/support/help/nastrojka-zabbix-dlya-raspredelennogo-monitoringa.mdРассматриваем в каких случаях будет полезным использование прокси-сервер для Zabbix, как его установить и настроить для работы
**Прокси-сервер Zabbix** может помочь вам убавить нагрузку на сервер или наблюдать узлы, которые недоступны по какой-то причине (например, если они расположены в локальной сети - иногда проще перенаправить порт для прокси, чем для всех хостов или создавать VLAN), или может использоваться в качестве резервной системы во время проведения обслуживания. Прокси-сервер работает по тому же принципу, что и сервер: у него есть своя база данных, раз в некий период времени (указанный в конфигурации) он получает у сервера, список хостов которые ему нужно опрашивать, затем получает данные и отправляет их на дальнейшую обработку.
## Установка
Команды могут отличаться для разных систем и версий. Мы воспользуемся Ubuntu 20.04 и Mysql, также вы можете посмотреть [команды для остальных вариантов](https://www.zabbix.com/download?zabbix=6.4&os_distribution=ubuntu&os_version=20.04&components=proxy&db=mysql&ws=).
Установите все необходимое (используем администраторский доступ):
```bash
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu20.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb
apt update
apt install zabbix-proxy-mysql zabbix-sql-scripts
```
Подготовим БД к работе:
```bash
mysql -u root -p CREATE DATABASE zabbix_proxy CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *zabbix_proxy.* TO 'zabbix'@'localhost';
set global log_bin_trust_function_creators = 1;
exit;
```
Добавьте шаблон и данные:
```
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix_proxy -p zabbix_proxy
```
Снова войдите в базу:
```
set global log_bin_trust_function_creators = 0;
```
## Настройка прокси
Внесите изменения в /etc/zabbix/zabbix_proxy.conf, раскомментировав и заполнив эти строки, если это необходимо:
**DBName=, DBUser=** - не трогаем, либо вписываем свои, если что-то меняли при создании пользователя
**DBPassword=** введите пароль пользователя добавленного созданного для базы выше.
**ProxyMode=** определяет как прокси передает данные серверу мониторинга. Когда значение 'ProxyMode' равно 0, прокси в активном режиме, то есть самостоятельно инициирует подключение для передачи данных. Если значение 'ProxyMode' равно 1 - работает в пассивном режиме, то есть ждёт обращения от сервера. Изначально используется активный режим.
Запустите службу:
```bash
service zabbix-proxy start
service zabbix-proxy enable
```
Проверьте, работает ли он нормально при помощи команды:
```bash
service zabbix-proxy status
```
## Настройка сервера
Войдем в веб интерфейс: "Администрирование" > "Прокси" > "Создать". Введите название, введенное в Hostname, выберите активный режим если ничего не меняли.
После этого, при добавлении новых узлов вы можете выбрать мониторинг через прокси или изменить существующие. При создании новых хостов не забудьте добавить их в конфигурацию агента, иначе он не сможет их опросить.
## Заключение
Мы рассмотрели причины использования прокси-сервера Zabbix, как его можно установить и настроить для использования.
https://serverspace.uz/support/help/nastrojka-setevogo-interfejsa-na-centos.mdКак настроить сеть в CentOS: конфигурация сетевых интерфейсов в CentOS, которые управляются Network Manager, с помощью утилит nmtui и nmcli
Конфигурирование сетевых интерфейсов в CentOS заметно отличается от того, как это выполняется в Ubuntu. В CentOS управлением сетевой подсистемой занимается **Network Manager (NM)**.
Как и другое системное ПО, NM использует конфигурационные файлы для управления сетевыми интерфейсами – они располагаются в директории _/etc/sysconfig/network-scripts/_.
Необходимо пояснить, что в CentOS есть различие в понятиях "сетевое устройство" и "подключение":
- **Сетевое устройство (network device)** – это сетевой интерфейс, через который отправляются\принимаются пакеты. Например – enp0s5;
- **Подключение (connection)** – конфигурационные настройки (профиль) для устройства.
Таких профилей может быть несколько для одного интерфейса, в зависимости от задачи. Можно быстро менять настройки устройства применяя нужный профиль.
Для взаимодействия с NM используются два программных инструмента:
- **_nmtui_ **– Network Manager Text User Interface, утилита с графическим интерфейсом (основанная на библиотеке curses);
- **_nmcli_ **– Network Manager Command Line Interface, утилита для запуска в консоли. Имеет большое количество подкоманд и опций, чаще используется в скриптах для автоматической настройки.
Вызов обеих утилит для просмотра текущих настроек возможен под обычным пользователем, для внесений изменений требуется права root пользователя. NM – systemd сервис, который всегда должен быть запущен для корректной работы сети сервера.
Обычно он сразу добавляется в автозагрузку при установке сервера, проверить включен ли он можно командой:
```bash
systemctl status NetworkManager.service
```
В выводе команды должна быть строка _"Active: active (running) since"_, которая означает, что сервис запущен.
При старте NM проверяет файлы подключений (профилей) в /etc/sysconfig/network-scripts/ и применяет их к соответствующим интерфейсам. Имена профилей начинаются на _"ifcfg"_ – например, _"ifcfg-ens0p5"_.
## Настройка интерфейса с nmtui – наглядно и понятно
При запуске nmtui появится окно с запросом на необходимое действие:
Отсюда можно перейти к редактированию профилей, активировать необходимый профиль, и задать имя сервера.
При переходе к редактированию слева доступен список созданных профилей, справа кнопки для действий – создание нового профиля, редактирование, удаление, возврат в предыдущее окно:
В примере имеется только один профиль с названием _"System ens0p5"_.
Для редактирования профиля необходимо нажать "Edit", откроется окно для изменения настроек протоколов IPv4 и IPv6:
В первых двух полях видно название профиля, и для какого сетевого устройства он применяется. На серверах IP адреса часто являются постоянными и задаются вручную. Для этого на нужной версии IP протокола необходимо выбрать тип _"Manual"_ из списка:
Нажатие на кнопку "Show" справа отобразит настройки.
В нужных полях прописываются необходимые значения:
Также можно отметить крестиком доступные опции, например - _"Ignore automatically obtained DNS parameters"_ в случае, если планируется использование DNS серверов, которые отличаются от полученных автоматически.
**Важно: прочитайте полностью следующий абзац во избежание потери связи с сервером!**
После задания значений необходимо нажать на "OK" — в этот момент будут внесены изменения в конфиг профиля "ifcfg-ens0p5", но эти изменения не применятся к текущим настройкам интерфейса. Для применения необходимо деактивировать предыдущие настройки и активировать измененный профиль – для этого нажать в окне с выбором действий _"Activate a connection"_, отметить профиль и нажать справа _"Deactivate"_. После этого появится кнопка _"Activate"_ - нажатие на нее применит новые настройки. Если деактивируется профиль для единственного интерфейса на сервере, то это приведет к тому, что старые настройки перестанут действовать, и облачный сервер будет отключен от сети. Это не позволит активировать профиль.
**Serverspace **позволяет в таком случае открыть веб консоль управления сервером, в которой можно запустить nmtui и активировать профиль – сервер снова станет доступным. Применение новых настроек можно безопасно выполнить с помощью утилиты nmcli (описание в следующем разделе), поэтому в nmtui не требуется нажимать на "Activate a connection" в окне выбора действий, а нажать "OK" для сохранения настроек и выхода. Если изменения проводятся для дополнительного интерфейса сервера, отключение которого не приведет к потере связи, то все действия выполняются в nmtui.
## Настройка интерфейса с nmcli – быстро и эффективно
Запуск nmcli с необходимыми подкомандами и опциями также позволяет вносить изменения в профиль. Стоит отметить, что доступно большое количество подкоманд для настройки протоколов IP и VPN, создания мостов, агрегирования каналов и др., которые хорошо описаны в _man_.
В задаче по настройке IP адреса вручную достаточно использовать базовые команды.
Для просмотра имеющихся сетевых устройств:
```
nmcli device show
```
В выводе будет содержаться подробная информация: тип, MAC и IP адрес, маршруты и DNS серверы.
Чтобы увидеть профили:
```
nmcli connection show
```
Вывод будет намного короче: имя, UUID, тип, и для какого интерфейса применяется профиль.
Имена профилей и интерфейсов могут не совпадать – на это нужно обратить внимание при изменении и активировании профилей.
Изменить конфигурацию профиля можно подкомандой _modify_. Например, эта команда установит IP адрес, шлюз, DNS сервер в профиле "System enp0s5":
```
nmcli connection modify "System enp0s5" ipv4.method manual ip4 172.16.61.10/24 gw4 172.16.61.1 ipv4.dns "208.67.220.220 208.67.222.222"
```
- ipv4.method указывает на тип Manual, т.е. задается статичный адрес;
- gw – шлюз по умолчанию;
- ipv4.dns – серверы DNS через пробел.
Отдельными командами можно поменять нужные настройки, например – прописать новые DNS серверы:
```
nmcli connection modify "System enp0s5" ipv4.dns "8.8.8.8 8.8.4.4"
```
Как и в случае конфигурирования с помощью nmtui, после вызова этих команд будут внесены изменения в файл настроек /etc/sysconfig/network-scripts/ifcfg-enp0s5, но текущие настройки не поменяются. Для их использования требуется применить профиль еще раз (деактивировать и активировать):
```
nmcli connection down "System enp0s5" && nmcli connection up "System enp0s5"
```
Фактически, nmcli вызывается два раза с использованием _&&_, при котором второй вызов выполниться только если первый выполнится успешно.
Важно выполнить именно последовательный запуск nmcli. Иначе, как было отмечено в разделе про nmtui, если на сервере только один интерфейс, то профиль не будет активирован, и связь с сервером будет утеряна. Используйте этот способ после изменений через nmtui.
Как было сказано в начале, для одного интерфейса может быть более одного профиля (можно создать в nmtui), и тогда список профилей будет содержать и активные (которые в данный момент применяются) и неактивные. Например:
Видно, что профиль "System enp0s5" является активным (выделен зеленым) и применяется к интерфейсу enp0s5. При создании профиля "enp0s5-new" был указан интерфейс enp0s5, но в данный момент он не применяется. Если требуется – его можно быстро применить. Для этого деактивировать "System enp0s5" и активировать "enp0s5-new" командой, указанной ниже. Необходимо обратить внимаение, что в результате выполнения этой команды ssh соединение будет разорвано, потребуется заново подключиться к серверу.
```
nmcli connection down "System enp0s5" && sudo nmcli connection up "enp0s5-new"
```
Если была допущена ошибка в настройке, и подключение по ssh недоступно, то возможно внести исправления через веб консоль управления сервера, как уже было отмечено ранее.
## Настройка интерфейса без nmtui и nmcli
Не обязательно использовать утилиты nmtui и nmcli для внесения изменений в профили.
Можно вручную создать/изменить конфиг файлы "ifcfg-". В этом случае есть большая вероятность ошибок и опечаток, что можно привести к потере подключения к серверу. Поэтому рекомендуется все же использовать указанные утилиты – они корректно формируют конфиги. Эти утилиты часто устанавливаются при установке сервера, поэтому сразу доступны для использования.
https://serverspace.uz/support/help/nastrojka-samba-na-debian.mdСледуя этому пошаговому руководству, вы сможете настроить Samba на Debian 10 и 11 и обеспечить обмен файлами между системами и работать с печатью
**Samba** — протокол для обмена информацией, его цель — реализация служб файлового доступа корпоративного уровня и их использование в ЛВС предприятия. Далее будет рассмотрен процесс конфигурирования Samba в Debian, состоящий из нескольких этапов.
## Установка требуемых программных компонентов
Вначале нужно обновить кэш apt и поставить требуемые программные компоненты. Открываем терминал и вставляем:
```bash
sudo apt update
```
```bash
sudo apt install samba
```
В результате выполнения установятся Samba и необходимые зависимости.
## Добавление пользователей
Когда установка завершена, создаём и настраиваем пользователей для доступа к ресурсам. Делается это так:
```
sudo useradd -m user1
```
Вместо "user1" нужно указать требуемое имя пользователя.
По завершению процесса создания необходимо задать ему пароль:
```
sudo passwd user1
```
И далее пользователю присваиваем группу Samba :
```
sudo smbpasswd -a user1
```
## Подготовка общих папок
После создания и настройки пользователей создаём общие ресурсы, к которым у них будет доступ. Создадим папку share1 по пути /media
```
mkdir /media/share1
```
Далее правим файл конфигурации Samba текстовым редактором, в данном случае nano :
```
sudo nano /etc/samba/smb.conf
```
Этот файл используем для создания общих папок, прав доступа к ним и другие важные параметры службы. Создадим новый общий ресурс и определим права доступа к нему. Создадим папку "share1", выставим права доступа :
```
path = /media/share1
read only = no
guest ok = no
valid users = user1
```
После внесения данных изменений папка "share1" будет доступна для чтения и записи пользователю user1.
## Перезагрузка Samba
После изменения настроек для корректного применения изменений службу необходимо перезапустить:
```bash
sudo systemctl restart smbd.service
```
Данная команда перезапустит службу Samba и подтвердит все внесенные изменения в конфигурацию.
## Проверка доступности
После настройки можно проверить доступ к общим папкам с другого хоста в сети. Для проверки с самого сервера можно воспользоваться утилитой smbclient, которую сначала нужно установить:
```bash
sudo apt install smbclient -y
```
И проверяем:
```
smbclient -U user1 //[IP_address|Server_name]/share1 -c 'ls'
```
Или открыв файловый менеджер на другом компьютере и введя в адресную строку:
```
\\Debian_server_IP\share1
```
"Debian_server_IP" — IP-адрес только что настроенного сервера.
Если все было выполнено правильно, то в результате должны увидеть содержимое папки "share1".
## Заключение
**Samba** — это популярное программное обеспечение с открытым исходным кодом, которое позволяет обмениваться файлами и для организации совместной печати в сети с использованием протокола SMB (Server Message Block). В статье рассмотрены базовые настройки данного сервиса в ОС Debian Linux. Следуя этому пошаговому руководству, вы сможете настроить Samba на Debian и обеспечить обмен файлами между Linux и Windows системами.
https://serverspace.uz/support/help/aktivnye-i-passivnye-proverki-agenta-zabbix.mdРассматриваем активные и пассивные проверки агента Zabbix для мониторинга состояния серверов, различия проверок и способы их настройки
Zabbix имеет два типа проверок агента: активные и пассивные. Каждый тип имеет свои преимущества и недостатки, которые мы рассмотрим в этой статье вместе с тем, как их настроить.
## Типы проверок
Активные проверки агента Zabbix инициируются сервером Zabbix. Активные проверки полезны при мониторинге большого количества машин или сборе данных через определенные интервалы времени. Они также полезны при мониторинге данных, которые часто меняются, таких как использование процессора или сетевой трафик. Активные проверки могут быть запланированы на определенные интервалы времени, что позволяет администраторам собирать данные через регулярные интервалы времени.
Пассивные проверки инициируются агентом Zabbix на удаленной машине, когда происходит изменение наблюдаемых данных. Это означает, что серверу не нужно постоянно опрашивать удаленные машины, что снижает сетевой трафик и нагрузку на сервер. Пассивные проверки полезны при мониторинге данных, которые изменяются редко, таких как использование диска или памяти. Пассивные проверки также могут быть полезны при мониторинге машин, находящихся за брандмауэрами или NAT, поскольку сервер Zabbix не должен инициировать проверки самостоятельно. Так же при настроенных пассивных проверках можно пользоваться удаленными командами.
## Настройка проверок
Чтобы настроить агент Zabbix для активных или пассивных проверок, измените файл конфигурации /etc/zabbix/zabbix_agentd.conf. Установите опцию "Server" на IP-адрес или имя хоста сервера Zabbix для пассивных проверок, а для активных проверок установите опцию "ServerActive". Обратите внимание, что вы можете настроить и активный, и пассивный режимы одновременно.
В веб-интерфейсе Zabbix вы можете настроить тип проверки для элемента. Перейдите в раздел "Configuration" > "Hosts", выберите хост, который вы хотите настроить, и перейдите на вкладку "Item". Откройте элемент и установите тип "Zabbix agent (active)" или "Zabbix agent (passive)", чтобы указать тип проверки для элемента.
## Заключение
Чтобы получить максимальную отдачу от агента Zabbix, важно понимать различия между активными и пассивными проверками и настраивать их в соответствии с вашими потребностями, и мы рассмотрели эти два типа опроса и узнали, как их настроить.
https://serverspace.uz/support/help/zashhita-ot-ddos-v-debian-chast-1.mdУзнайте, как защитить свой веб-сайт от вредоносных DDoS-атак с помощью установки системы защиты от DDoS-атак на сервер с Linux Debian
## Введение и цели
В области информационной безопасности существует три основных аспекта любой информации: целостность, доступность и конфиденциальность, которые могут быть нарушены. Главная проблема в этой ситуации - это "угрозы".
**Угрозы** — совокупность факторов и процессов, которые могут нанести ущерб информационной системе и повлиять на выполнение бизнес-задач. Одна из угроз, направленных на доступность информации, — это DDoS-атаки (Distributed Denial of Service или распределенный отказ в обслуживании).
**Почему это важно?**
Атака направлена на сервер для того, чтобы создать критическую ситуацию: недоступность серверов из-за перегрузки огромным количеством запросов. DDoS направлен на 2 уровня: аппаратный или уровень железа, сервисов развернутых на сервере или ПО.
**И что с этим делать?**
Разделим инфраструктуру на две категории: внутренний и прокси-уровень, которые будут выступать защитными этапами инфраструктуры. На каждом из них будут описаны утилиты и методы, которые представляют собой сложные и точечные способы защиты системы.
### План защиты
Теория: первоначально используем комплексный подход к созданию первичного уровня системы защиты от потенциальных DDoS-атак. Впоследствии, установим целенаправленные решения для устранения оставшихся уязвимых областей, которые, возможно, были упущены из виду при первоначальных мерах защиты.
Практика: довольно сложное, но эффективное решение — "**внедрение трафика**", которое включает в себя IP—адреса/идентификаторы, программное обеспечение для создания ложного трафика, брандмауэр, фильтры, балансировку нагрузки, автоматическое масштабирование и виртуальную инфраструктуру. Это уже набор точечных решений, объединенных в единую и взаимосвязанную систему. Подходит для различных типов архитектуры сетей.
## ПО и установка
**Первая стадия** плана включает установку и развертывание службы сбора информации и анализа для составления профиля эталонного трафика.
Ниже приведены обычно рекомендуемые минимальные системные требования:
- Процессор: 2.5 ГГц или быстрее;
- ОЗУ: 2 Гб (4 Гб или более рекомендовано);
- Жесткий диск: 20 Гб свободного места;
- Операционная система: ОС Debian или системы семейства Unix.
Если с параметрами системы все в порядке, можем начать установку с помощью приведенных ниже команд:
```bash
sudo apt update && sudo apt upgrade -y
```
Скриншот №1 — Обновление пакетов
Эта команда обновляет индекс пакетов и загружает необходимые компоненты. Установите необходимые параметры, включающие инструменты для мониторинга трафика, анализа журналов и другое:
```bash
sudo apt install tcpdump -y
```
Скриншот №2 — Установка tcpdump
Однако вы можете использовать другое программное обеспечение из-за возможностей системы:
```bash
sudo apt install wireshark -y
```
Эта команда загружает необходимый пакет для мониторинга и перехвата трафика:
```bash
sudo apt install logwatch -y
```
Скриншот №3 — Установка logwatch
Для создания профилей необходимо установить контроль над журналом событий:
```bash
sudo apt install acct -y
```
Для сбора информации о пользователях вы можете использовать "acct", но для этой цели вы также можете выбрать любое доступное ПО:
Скриншот №4 — Установка acct
Настройте параметры сбора информации в соответствии с требованиями вашей информационной системы. После анализа архитектуры сети и вашего запроса на систему защиты — определите потоки входящего и исходящего трафика для записи: определите используемые интерфейсы, пул портов и IP—адресов:
```
sudo tcpdump -i enp0s5 -s 0 -w output.pcap port 80
```
Скриншот №5 — Настройка правил tcpdump
В этом примере используется интерфейс "enp0s5", источником обозначен абсолютно любой IP-адрес, порт "80" и выходной файл с именем "output.pcap". Поэтому перехватывается трафик с eth0 на порт 80, HTTP-трафик.
Для Wireshark плоскость использования будет такой же:
```
sudo wireshark
```
Выберите интерфейс, нажмите кнопку "Пуск", чтобы начать считывать трафик, и "Стоп", чтобы закончить, а затем сохраните дамп данных. Нажмите на "Файл" —> "Сохранить" и выберите местоположение и формат для сохраненного файла. Из-за небольшого размера дампа данных рекомендуем очистить вашу систему:
```bash
sudo apt-get autoremove && sudo apt-get clean
```
Скриншот №6 — Wireshark
Для получения более подробных и точных результатов начните мониторинг системы в течение 7 дней. Чем больше, тем лучше! Таким образом, мы сможем собрать данные из системы и составить профиль обычного трафика. Этот процесс будет описан в [следующем эпизоде](https://serverspace.ru/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-2/) инструкции.
## Вывод
Настройка системы сбора и перехвата информации о DDoS-атаках является важным шагом в защите вашей сети от вредоносного трафика. Используя такие инструменты, как Wireshark и tcpdump, вы можете легко захватывать и анализировать сетевой трафик в режиме реального времени, помогая выявлять закономерности и потенциальные угрозы до того, как они нанесут значительный ущерб. Важно убедиться, что ваша система правильно настроена и защищена, так как неправильная настройка может привести к дополнительным уязвимостям. С помощью правильных инструментов и надлежащей реализации вы можете значительно снизить риск DDoS-атак и защитить свою сеть от киберугроз.
https://serverspace.uz/support/help/nastrojka-setevogo-interfejsa-na-debian.mdИнструкция по настройке сетевого интерфейса со статическим IP адресом на облачном сервере с Debian 11 и 10
В зависимости от задачи, облачные серверы часто образуют общую логическую инфраструктуру для взаимодействия друг с другом: серверы приложений могут быть собраны в кластер, серверы БД обрабатывают запросы на чтение\запись от других серверов, ПО для резервного копирования подключается к целевым серверам, VPN серверы обрабатывают трафик от клиентов и др.
Облачный сервер доступен после создания через публичный IP адрес – очевидно, что это удобно для управления сервером. При этом, сетевой канал имеет ограничение, которое может стать препятствием при передаче большого количества данных с одного сервера на другой.
Вместо использования публичных IP возможно создать отдельную изолированную (локальную) сеть, и подключить все нужные серверы к такой сети для обмена данными. Скорость в изолированной сети намного выше, что позволяет передавать большой объем трафика от сервера к серверу.
При подключении сервера к изолированной сети добавляется новый сетевой адаптер. Можно даже создать сервер без публичного IP, и подключить его сразу к изолированной сети – в этом случае он не будет доступен извне.
Создание изолированных, а также маршрутизируемых сетей доступно для облаков vStack и VMWare (с некоторыми отличиями). Дополнительно для VMWare доступно создание публичной сети.
Debian 11 использует для настройки сетевых соединений файлы конфигураций в каталоге _/etc/network/_
В предыдущих версиях все настройки задавались в файле _/etc/network/interfaces_. В версии 11 этот файл существует, и в нем присутствует единственная строка настройки (помимо комментариев):
Она указывает на то, что реальные настройки для сетевых интерфейсов будут загружены из всех файлов, которые находятся в директории _/etc/network/interfaces.d/_
Т.е. как и для другого системного ПО, используется подход разделения единого конфигурационного файла на отдельные для каждого интерфейса. Ошибка\опечатка в каком-то файле позволит продолжить работу, также можно скопировать уже подготовленный файл или удалить его если необходимо.
## Пример простой настройки со статическим IP адресом
- установлен сервер с ОС Debian 11 и публичным IP;
- создана изолированная (локальная) сеть с адресацией 172.16.61.0/24 (используйте другую для ваших настроек) без DHCP, шлюз 172.16.61.1;
- сервер подключен к локальной сети.
Публичный IP настроен на интерфейсе _enp0s5_, после подключения к локальной сети на сервере появился сетевой интерфейс _enp0s6_ без настроек:
На серверах IP адреса обычно задаются статическими. Для настройки на enp0s6 IP адреса 172.16.61.10 необходимо создать файл /etc/network/interfaces.d/enp0s6 с таким содержимым:
```
auto enp0s6
iface enp0s6 inet static
address 172.16.61.10/24
mtu 1500
```
С такими настройками интерфейс будет активен при старте ОС.
Для применения настроек необходимо перезапустить сетевую службу systemd:
```bash
systemctl restart networking
```
Повторное выполнение команды " ip a " покажет, что IP настроен для enp0s6:
Если в локальной сети уже присутствуют другие серверы, то можно проверить доступность настроенного IP адреса. Либо добавить нужные серверы в сеть, и после настройки убедиться, что серверы доступны в локальной сети.
## Вам также может быть интересно
- [Debian 11 VPS](https://serverspace.uz/services/vps-server/debian.md)
- [Облачный сервер с Debian](https://serverspace.uz/services/cloud-servers.md)
- [Резервное копирование сервера Debian](https://serverspace.uz/support/help/reservnoye-kopirovanie-servera-debian/)
https://serverspace.uz/support/help/obnovlenie-python-centos.mdИнструкция по актуализации или установке с нуля последней версии Python 3 на сервер под управлением ОС Centos
Python — высокоуровневый универсальный и быстрый язык программирования, используемый во многих, в том числе и крупных проектах.
Установка свежей версии библиотек для поддержки этого языка программирования в операционной системе CentOS обычно не представляет сложности, особенно если выполнять всё поэтапно. В данной инструкции выполним сборку версии 3.10.11 из исходников.
## Обновление пакетов операционной системы
До начала установки/обновления Python производим обновление самой операционной системы. Для этого открываем терминал и выполняем:
```bash
sudo dnf update
```
```bash
sudo dnf upgrade
```
## Установка Python на CentOS
Для работы с Python необходимо поместить его на свой компьютер, что может быть нетривиальной задачей для новичков в Linux. На данном этапе мы пошагово пройдемся по всем этапам установки и предоставим подробные инструкции с командами, которые будем использовать, и описанием каждого шага.
### Установка дополнительных пакетов
Если в вашей системе отсутствует модуль "wget". Поочередно впишите строчки:
```bash
sudo yum search wget
```
```bash
sudo yum install wget
```
Для дальнейшей работы нужно получить пакеты:
```bash
yum install gcc yum-utils zlib-devel python-tools cmake git pkgconfig -y --skip-broken
```
После успешного окончания установки, установим "Инструменты разработки"
```bash
yum groupinstall -y "Development Tools" --skip-broken
```
Для продолжения, нужно перейти в директорию:
```
cd /usr/src
```
### Загрузка файлов с исходниками
Последнюю версию получаем с веб-сайта [Python.org](https://www.python.org/). Посетив его, в разделе "Downloads\Source code" копируем найденную и нужную нам ссылку на скачивание. Далее выполняем в терминале, вставляя только что скопированную ссылку:
```bash
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
```
После скачивания нужно достать содержимое архива. Для выполнения данного действия можно воспользоваться этой командой:
```bash
tar xzf Python-3.11.3.tgz
```
Перемещаемся в получившуюся папку Python-3.11.3 и выполняем непосредственно установку из исходного кода:
```
./configure
```
Завершаем установку выполнив друг за другом команды:
```
make
```
```
make install
```
Убедимся, что обновление выполнено успешно, отправив в терминал строчку:
```
python3 --version
```
Если отображается версия Питон 3.11.x, то все предыдущие действия прошли корректно! Теперь стало возможным использовать универсальный язык программирования в своих целях.
## Обновление версии Python
Если у Вас уже была установлена более ранняя версия Python, следует выполнить, описанные ниже, шаги.
### Установка дополнительных пакетов
Для выполнения обновления версии Python необходимо поставить в дополнение несколько новых пакетов. Отправим в терминал команды:
```bash
yum groupinstall -y "Development Tools" --skip-broken
```
```bash
wget https://public-yum.oracle.com/public-yum-ol6.repo -O /etc/yum.repos.d/public-yum-ol6.repo
```
```bash
dnf --enablerepo=powertools install libpcap-devel
```
```bash
sudo dnf install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
```
### Загрузка файлов с исходниками
Последнюю версию получаем с веб-сайта [Python.org](https://www.python.org/). Посетив его, в разделе "Downloads\Source code" копируем найденную и нужную нам ссылку на скачивание. Далее выполняем в терминале, вставляя только что скопированную ссылку:
```bash
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
```
После скачивания нужно достать содержимое архива. Для выполнения данного действия можно воспользоваться этой командой:
```bash
tar xzf Python-3.11.3.tgz
```
### Обновление версии
Перемещаемся в получившуюся папку Python-3.11.3 и выполняем непосредственно установку из исходного кода:
```
./configure --enable-optimizations
```
```
make
```
```
make install
```
### Проверка обновления
Убедимся, что обновление выполнено успешно, выполнив команду:
```
python3 --version
```
Если отображается версия Python 3.11.x, то обновление прошло успешно.
## Заключение
В данном обзоре рассмотрели вопрос "Как обновить Python на CentOS" путём с помощью файлов исходного кода.
## Вас может заинтересовать следующие материалы по данной теме
- [VPS с CentOs](https://serverspace.uz/services/vps-server/linux.md)
- [Облачный сервер с CentOS](https://serverspace.uz/services/cloud-servers.md)
- [Установка LAMP CentOS](https://serverspace.uz/support/help/ustanovka-lamp-na-centos/)
https://serverspace.uz/support/help/almalinux-ustanovka-gnome.mdИнструкция как установить Gnome на машину AlmaLinux. Всего несколько шагов для работы с современным и интуитивно понятным интерфейсом Gnome
## Введение
Удобство **графической оболочки** для Linux заключается в ее интерфейсе, который упрощает управление и выполнение различных команд и приложений в операционной системе Linux. В отличие от традиционных интерфейсов командной строки, графическая оболочка позволяет пользователям взаимодействовать с операционной системой и ее функциями с помощью графических элементов, таких как меню, значки и кнопки.
В целом, уникальность **графической оболочки** для Linux заключается в ее способности улучшать удобство использования и доступность операционной системы Linux, особенно в сочетании с проектом GNU.
Операционная система AlmaLinux поставляется с графической оболочкой GNOME, поэтому в этой статье будет рассмотрена установка GUI на ОС AlmaLinux.
## Gnome
**Gnome** (Графический интерфейс) — это удобная для просмотра среда, которая может помочь взаимодействовать с машинами без требований знаний нюансов командной строки и специфического языка CLI оболочки.
Системы GNU и GUI имеют свои преимущества и недостатки, каждый может использовать более подходящую систему для своих запросов. Графическая среда обычно используется для игр, творчества, офисных и домашних целей. Удобный интерфейс с гибким набором параметров может помочь улучшить ваш пользовательский опыт и сделать визуальное восприятие системы более удобным для просмотра.
## AlmaLinux установка GNOME
Перед установкой любого программного обеспечения нам необходимо обновить индексы и пакеты в AlmaLinux:
```bash
sudo dnf update -y
```
Скриншот №1 — Обновление пакетов
Установите среду рабочего стола Gnome и связанные с ней пакеты, выполнив следующую команду:
```bash
sudo dnf groupinstall "Server with GUI"
```
Скриншот №2 — Установка Gnome
После завершения установки включите графический менеджер входа в систему, выполнив следующую команду:
```bash
sudo systemctl set-default graphical.target
```
Скриншот №3 — Выбор GUI
Перезагрузите систему, чтобы изменения вступили в силу:
```
sudo reboot
```
Скриншот №5 — Окно Gnome
После перезагрузки системы вы должны увидеть экран входа в систему, где вы можете выбрать сеанс Gnome. Для этого вы можете использовать Web интерфейс на сайте или любое удобное вам ПО.
## Заключение
Графическая оболочка — важный инструмент, который позволяет пользователям Linux более эффективно взаимодействовать с операционной системой. Использование графической оболочки уменьшает потребность в обширных знаниях интерфейсов командной строки, делая операционную систему Linux более доступной для широкого круга пользователей.
Выполнив описанные выше действия, вы сможете быстро и легко установить Gnome на свой компьютер AlmaLinux. После установки вы сможете наслаждаться современным и интуитивно понятным интерфейсом, который упрощает управление и выполнение команд в вашей системе Linux.
https://serverspace.uz/support/help/kak-otklyuchit-selinux-centos.mdСамый простой способ отключить SELinux на CentOS и Linux. Наше руководство поможет вам легко получить доступ к ядру виртуальной машины
Есть случаи, когда необходимо получить доступ к ядру виртуальной машины на CentOS: настроить специализированное программное обеспечение, драйверы и другие функции, для которых может потребоваться более высокий уровень разрешений. И иногда права не позволяют выполнить задачи из—за политик безопасности по умолчанию. Почти в каждом дистрибутиве есть модуль, который ограничивает доступ к изменению системных файлов.
## Что такое SELinux?
**SELinux** — это модуль безопасности, который может обеспечить значительные меры по защите системы. Часть ядра Linux, выполняющая политики безопасности контроля доступа к ролям: мандатную и дискреционную. Управление системой осуществляется из конфигурационного файла, который администратор может изменять, чтобы разделить права пользователей для более эффективного контроля безопасности.
Также предоставляет набор правил политики, которые определяют поведение системных компонентов и приложений. Эти правила применяются ядром и могут быть настроены в соответствии с конкретными требованиями безопасности данной системы.
Другой уникальной особенностью **SELinux** является его способность привязывать процессы к определенным доменам, что ограничивает их доступ к ресурсам за пределами этих доменов. Это помогает предотвратить доступ скомпрометированных процессов к конфиденциальным данным или выполнение вредоносных действий.
## Как отключить SELinux?
Рассмотрим различные способы отключения модулей безопасности: откройте конфигурационный файл в любом удобном текстовом редакторе:
```bash
sudo apt install nano && sudo nano /etc/selinux/config
```
Найдите строчку со значением **permission**, и замените его на:
```
SELINUX=disabled
```
Скриншот №1 — Файл конфигурации
Сохраните изменения с помощью комбинации **Ctrl + O** и закройте файл с помощью **Ctrl + X**.
**Примечание**:Комбинации клавиш подходят только для текстового редактора nano!
Перезагрузите систему, чтобы изменения вступили в силу, с помощью приведенной ниже команды:
```
sudo reboot
```
Скриншот №2 — Перезагрузка
Если этот способ не подходит для вашей операционной системы, выполните следующую команду:
```
sudo setenforce 0
```
Эта строка отключает **SELinux** на сеанс до перезагрузки системы, что может быть более безопасным способом, чем первый. Если вам нужно включить этот модуль, введите команду:
```
sudo setenforce 1
```
Скриншот №3 — Способ CLI
Но если модули не являются частью ядра вашей операционной системы, деинсталляция будет проходить по-другому:
```bash
sudo dnf remove selinux-policy\*
```
Скриншот №4 — Удаление пакетов
И чтобы удостовериться в том, что все удалено корректно введите комманду:
```xml
sestatus
```
Скриншот №5 — Проверка
## Заключение
**SELinux** — это эффективный модуль безопасности, который использует важнейшие меры для защиты системы путем ограничения модификации ядра Linux. Тем не менее бывают случаи, когда возникает необходимость деактивировать этот модуль для выполнения определенных задач, требующих повышенных уровней авторизации, или из—за предустановленных конфигураций. В основном используются 3 способа отключения модулей безопасности: удаление пакета, изменение конфига, ввод команды в CLI.
https://serverspace.uz/support/help/ustanovka-i-nastrojka-svyazki-grafana-graphite-carbon-collectd-na-debian-i-ubuntu.mdИнсталляция и настройка Grafana, Graphite, Carbon, Collectd для серверных платформ под управлением ОС Debian и Ubuntu
В мире Linux с большим объемом данных, метрик, различных утилит нам нужно решение, которое поможет справиться с проблемами быстрого прогнозирования и мониторинга данных.
Установка системы визуализации данных на сервер может быть выгодна по нескольким причинам:
- **Мониторинг**. Система визуализации данных предоставляет информацию о производительности и работоспособности сервера в режиме реального времени. Это может помочь выявить проблемы до того, как они превратятся в серьезные.
- **Оптимизация**. С помощью системы визуализации данных вы можете идентифицировать ресурсоемкие процессы или приложения и оптимизировать их для повышения общей производительности сервера.
- **Прогнозирование**. Анализируя исторические данные, система визуализации данных может прогнозировать будущие тенденции и помогать планировать.
- **Коммуникация**. Может обеспечить визуальное представление сложных данных, облегчая обмен информацией с другими сотрудниками организации.
В целом, система визуализации данных может помочь вам принимать основанные на данных решения о серверной инфраструктуре и повышать эффективность операций.
## Программное обеспечение
Существуют различные типы пакетного программного обеспечения, которые мы можем использовать для решения этих задач. Но свзяка Graphite, Collectd и Carbon в точности отвечают всем требованиям для быстрого создания, простой в использовании и удобной в управлении системы.
## Установка системы визуализации
Перед использованием основной утилиты обновите система:
```bash
sudo apt update -y && sudo apt dist-upgrade -y
```
Скриншот №1 — Обновление
Первым шагом для установки системы будет создание учетной записи на [DockerHub](https://hub.docker.com/), которая предоставляет контейнер. Заполните поля и подтвердите свой email:
Скриншот №2 — Сайт
Затем загрузите пакет docker, который был встроен в систему, с помощью приведенной ниже команды:
```bash
sudo apt-get install docker.io
```
Скриншот №3 — Установка Docker
Нажмите **Y**, чтобы начать процесс установки. После этого нам нужно запустить все службы:
```bash
sudo systemctl start docker && sudo systemctl enable docker && sudo systemctl status docker
```
В результате мы увидим журнал служб:
Скриншот №4 — Статус Docker
Перед извлечением и запуском контейнера войдите в DockerHub с помощью команды:
```bash
docker login
```
Скриншот №5 — Вход в Docker
Введите **имя пользователя** и **пароль**, которые вы использовали при регистрации на DockerHub. Загрузите контейнер Carbon из Docker Hub:
```bash
docker pull hopsoft/graphite-statsd
```
Скриншот №6 — Скачиваем образ Carbon
Дождитесь окончания процесса установки. И запустите нужный контейнер с параметрами:
```bash
docker run -d\
--name graphite\
--restart=always\
-p 80:80\
-p 81:81\
-p 2003-2004:2003-2004\
-p 2023-2024:2023-2024\
-p 8125:8125/udp\
-p 8126:8126\
hopsoft/graphite-statsd
```
Загрузите контейнер Graphite из Docker Hub:
```bash
docker pull banno/graphite-web
```
Скриншот №7 — Скачиваем образ Graphite
Теперь происходит загрузка файла для второго модуля системы визуализации. Будьте терпеливы!
Скриншот №8 — Успешное скачивание Graphite
После успешного извлечения всех компонентов запустим один из них в системе. Включим последний модуль:
```bash
docker run -d\
--name graphite-web\
--restart=always\
-e "GRAPHITE_URL=http://localhost:80"\
-p 8080:80\
banno/graphite-web
```
Скриншот №9 — Запуск контейнера
В этом блоке введите свой домен сайта или параметр localhost и выберите порт, где ваш сайт будет доступен! Так как доступ к этой системе осуществляется через графическую оболочку. Установим Gnome:
```bash
sudo apt install gnome-shell ubuntu-gnome-desktop
```
Скриншот №10 — Установка Gnome
Нажмите на кнопку **Y**, войдите в CLI и перезагрузите вашу систему:
Скриншот №11 — Gnome подготовка
Пройдите все этапы подготовки вашей системы к использованию Gnome shell и нажмите кнопку в центре. Затем введите данные своей учетной записи и войдите в систему:
Скриншот №12 — Вход в аккаунт
Затем откройте браузер и введите **yourdomain.com** или **localhost** на порте 8080. Вуаля! Теперь система полностью установлена и зарущена!
Скриншот №13 — Запуск системы
## Вывод
В инструкции была развернута система визуализации данных и мониторинга. Был использован пакет программного обеспечения, включающий Graphana, Collectd и Carbon для решения этой проблемы. Описано то, как установить и запустить эти компоненты в контейнере Docker. Кроме того, были даны инструкции о том, как установить Gnome и получить доступ к системе визуализации через веб-браузер. Следуя этим незамысловатым шагам, пользователи могут настроить надежную и простую в использовании систему мониторинга для инфраструктуры.
https://serverspace.uz/support/help/ustanovka-i-ispolzovanie-docker-na-centos-7.mdВ этой инструкции мы рассмотрим, как установить Docker CE на CentOS 7 и изучить основные концепции и команды Docker.
Docker-это технология контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде портативных, самодостаточных контейнеров, которые могут работать практически в любом месте.
В этой инструкции мы рассмотрим, как установить Docker CE на CentOS 7 и изучить основные концепции и команды Docker.
## Требования
Прежде чем приступить к работе с этим учебником, убедитесь, что выполнены следующие предварительные условия:
- Сервер CentOS 7
- Вы вошли в систему как пользователь без полномочий root с правами sudo.
## Установка Docker на CentOS 7
Хотя пакет Docker доступен в официальном репозитории CentOS 7, он не всегда может быть последней версией. Рекомендуемый подход заключается в установке Docker из репозиториев Docker.
Чтобы установить Docker на сервере CentOS 7, выполните следующие действия:
- Начните с обновления системных пакетов и установки необходимых зависимостей:sudo yum updatesudo yum install yum-utils device-mapper-persistent-data lvm2
- Затем выполните следующую команду, которая добавит хранилище Docker stable в вашу систему:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Теперь, когда хранилище Docker включено, установите последнюю версию Docker CE (Community Edition) с помощью yum, введя:sudo yum install docker-ce
- После установки пакета Docker запустите демон Docker и включите его автоматический запуск во время загрузки:sudo systemctl start dockersudo systemctl enable docker
- Чтобы убедиться, что Служба Docker запущена тип: sudo systemctl status dockerвыходные данные должны выглядеть примерно так:● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago Docs: https://docs.docker.com Main PID: 2492 (dockerd) CGroup: /system.slice/docker.service ├─2492 /usr/bin/dockerd └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
- На момент написания статьи текущая стабильная версия Docker является,18.06.1, чтобы напечатать тип версии Docker:docker -vDocker version 18.06.1-ce, build e68fc7a
## Выполнение команды Docker без Sudo
По умолчанию для управления Docker требуются права администратора. Если вы хотите выполнять команды Docker от имени пользователя, не являющегося пользователем root, не добавляя sudo, вам необходимо добавить пользователя в группу docker, которая создается во время установки пакета Docker CE. Вы можете сделать это, введя:
```
sudo usermod -aG docker $USER
```
$USER это переменная окружения, которая содержит ваше имя пользователя.
Выйдите из системы и войдите обратно, чтобы обновить членство в группе.
Чтобы убедиться, что Docker установлен успешно и что вы можете запускать команды docker без sudo, выполните следующую команду, которая загрузит тестовый образ, запустите его в контейнере, распечатайте сообщение " Hello from Docker" и выйдите:
```bash
docker container run hello-world
```
Выходные данные должны выглядеть следующим образом:
```yaml
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
```
## Интерфейс командной строки Docker
Теперь, когда у нас есть рабочая установка Docker, давайте рассмотрим базовый синтаксис интерфейса командной строки docker.
Командная строка docker принимает следующую форму:
```bash
docker [option] [subcommand] [arguments]
```
Вы можете перечислить все доступные команды, введя dockerбез параметров:
```bash
docker
```
Если вам нужна дополнительная помощь по любому[subcommand], просто введите:
```bash
docker [subcommand] --help
```
## Образы Docker
Образ Docker состоит из ряда слоев, представляющих инструкции в файле docker изображения, которые составляют исполняемое программное приложение. Образ-это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как двоичные файлы, библиотеки и инструкции, необходимые для запуска приложения. Короче говоря, образ Docker по существу является моментальным снимком контейнера Docker.
Docker Hub-это облачная служба реестра, которая среди других функциональных возможностей используется для хранения изображений Docker либо в публичном, либо в частном репозитории.
Для поиска образа в репозитории Docker Hub просто используйте эту searchподкоманду. Например, чтобы найти изображение CentOS, выполните команду:
```bash
docker search centos
```
Выходные данные должны выглядеть следующим образом:
```
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 4257 [OK]
ansible/centos7-ansible Ansible on Centos7 109 [OK]
jdeathe/centos-ssh CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_ 94 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session 52 [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 40 [OK]
tutum/centos Simple CentOS docker image with SSH access 39
```
Как вы можете видеть результаты поиска печатает таблицу с пятью столбцами, NAME, DESCRIPTION,STARS, OFFICIALи AUTOMATED. Официальный образ-это образ, который Docker разрабатывает совместно с вышестоящими партнерами.
Если мы хотим скачать официальную сборку CentOS 7, мы можем сделать это с помощью image pullподкоманды:
```bash
docker image pull centos
```
```yaml
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest
```
В зависимости от скорости вашего интернета, загрузка может занять несколько секунд или несколько минут. После того, как изображение загружается мы можем перечислить изображения с:
```bash
docker image ls
```
Выходные данные должны выглядеть примерно так::
```
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
centos latest e934aafc2206 4 weeks ago 199MB
```
Если по какой-то причине вы хотите удалить изображение, вы можете сделать это с помощью image rm [image_name]подкоманды:
```bash
docker image rm centos
```
```yaml
Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0
```
## Контейнеры Docker
Экземпляр образа называется контейнером. Контейнер представляет собой среду выполнения для одного приложения, процесса или службы.
Это может быть не самое подходящее сравнение, но если вы программист, вы можете думать об образе Docker как о классе и контейнере Docker как об экземпляре класса.
Мы можем запускать, останавливать, удалять и управлять контейнером с помощью docker containerподкоманды.
Следующая команда запустит контейнер Docker, основанный на образе CentoOS. Если у вас нет изображения локально, он сначала загрузит его:
```bash
docker container run centos
```
На первый взгляд вам может показаться, что вообще ничего не произошло. Ну, это не совсем так. Контейнер CentOS останавливается сразу после загрузки, потому что у него нет длительного процесса, и мы не предоставили никакой команды, поэтому контейнер загрузился, выполнил пустую команду и затем вышел.
Коммутатор -itпозволяет нам взаимодействовать с контейнером через командную строку. Чтобы запустить интерактивный тип контейнера:
```bash
docker container run -it centos /bin/bash
```
Как вы можете видеть из выходных данных, как только контейнер запускается, командная строка изменяется, что означает, что теперь вы работаете изнутри контейнера:
```
[root@719ef9304412 /]#
```
Чтобы вывести список запущенных контейнеров:, введите:
```bash
docker container ls
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
```
Если у вас нет никаких работающих контейнеров, выходные данные будут пустыми.
Для просмотра как запущенных, так и остановленных контейнеров, передайте ему -aпереключатель:
```bash
docker container ls -a
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79ab8e16d567 centos "/bin/bash" 22 minutes ago Up 22 minutes ecstatic_ardinghelli
c55680af670c centos "/bin/bash" 30 minutes ago Exited (0) 30 minutes ago modest_hawking
c6a147d1bc8a hello-world "/hello" 20 hours ago Exited (0) 20 hours ago sleepy_shannon
```
Чтобы удалить один или несколько контейнеров, просто скопируйте идентификатор контейнера (или идентификаторы) сверху и вставьте их после container rmкоманды:
```bash
docker container rm c55680af670c
```
## Заключение
Вы узнали, как установить Docker на вашем компьютере CentOS 7 и как загружать образы Docker и управлять контейнерами Docker. Вы также можете прочитать о программе Docker Compose, которая позволяет определять и запускать приложения Docker с несколькими контейнерами.
Этот учебник едва царапает поверхность экосистемы Docker. В некоторых из наших следующих статей мы продолжим погружение в другие аспекты Docker. Чтобы узнать больше о компании Docker, ознакомьтесь с официальной [документацией Docker](https://docs.docker.com/).
Если у вас есть какие-либо вопросы или замечания, пожалуйста, оставьте комментарий ниже.
https://serverspace.uz/support/help/ustanovka-i-ispolzovanie-docker-na-ubuntu-18-04.mdDocker отсутствует в официальном репозитории Ubuntu 18.04, поэтому осуществим предварительную подготовку операционной системы к его установке и обновим ее.
Docker — это инструмент, позволяющий разворачивать приложения из контейнеров, которые, в свою очередь, являются облегченными версиями виртуальных машин, работающих вне зависимости от операционной системы и запускающих определенные приложения или сервисы.
## Установочный процесс
Docker нет в официальном репозитории Ubuntu 18.04, поэтому осуществим предварительную подготовку операционной системы к его установке и обновим ее:
sudo apt update
sudo apt upgrade
После обновления системы и до запуска установочного процесса Docker следует позаботиться о наличии пакетов, которые понадобятся для установки. Для этого необходимо выполнить команду:
sudo apt-get install curl apt-transport-https ca-certificates software-properties-common
Следующим шагом станет добавление репозитория Docker. Это дает возможность облегчить процесс и не отклоняться от официально поддерживаемой разработчиками версии программного обеспечения. Выполним команду:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Далее добавим репозиторий:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
И обновим данные по репозиторию:
sudo apt update
Затем установим Docker. Выполним команду apt для его загрузки:
sudo apt install docker-ce
После завершения установочного процесса проверим статус Docker командой:
sudo systemctl status docker
## **Инструкция по использованию Docker**
После окончания загрузки Docker можно осуществить запуск тестового образа, который позволит быть уверенным, что сервис функционирует корректно. Выполните команду:
sudo docker run hello-world
Для поиска доступных образов существует команда:
sudo docker search [поисковый_запрос]
, где "поисковый запрос" — это образ, который вы ищете.
К примеру, чтобы отыскать образ Debian, команда и данные на выходе будут такими:
sudo docker search debian
Чтобы осуществить загрузку образа на VPS, необходимо указать название образа с помощью команды:
sudo docker pull [имя_образа]
, где [имя_образа] — это образ, который вы устанавливаете.
Например:
sudo docker pull debian
Обычно, в системе уже имеется некоторое количество образов. Можно вывести их список, применив команду:
sudo docker images
Список будет представлен в виде перечислений, как при запросе в поиске. Далее можно запустить образ, применив команду run:
sudo docker run -i -t [image]
, где [image] — это ID запускаемого образа.
Также имеются опции, способные расширить возможности самой команды. К примеру, опция **–i** позволяет запустить образ интерактивно, а **–d** осуществляет его запуск в фоновом режиме.
Завершить запуск образа можно сочетанием клавиш CTRL+D.
Если вы планируете использовать Docker без root-доступа, выполните команду:
sudo usermod -aG docker $(whoami)
После этого потребуется перезагрузка системы.
https://serverspace.uz/support/help/ustanovka-docker-na-ubuntu-20-04.mdПодробная пошаговая инструкция по установке Docker — приложения, представляющего собой систему управления контейнерами
Docker — это инструмент, представляющий собой систему управления контейнерами, официальный релиз которого состоялся в 2013 году. Такая система крайне полезна при масштабировании, обновлении и особенно при миграции на другой сервер.
Docker функционирует на программном языке Go. Несмотря на то, что изначально инструмент мог использоваться исключительно на оборудовании, работающем на операционной системе Linux, теперь он совместим также и с устройствами на Windows и macOS.
**В Serverspace вы можете создать сервер с уже установленным приложением Docker**.
Говорить о нишевости проекта не приходится. За относительно краткий срок он стал популярен среди широкого круга специалистов и уже используется для целого ряда решений, а тенденция к обретению еще большей популярности ожидается и в будущем. Одна из главных причин этого — Docker Hub, репозиторий предварительно созданных образов контейнеров со свободным доступом. Заполняют его не только фрилансеры, но и энтузиасты, увлекающиеся программированием. Официальные разработчики также оставляют в открытом доступе десятки готовых приложений. К примеру, сейчас там можно найти Jenkins, Redmine, GitLab, MySQL, Apache, Elasticsearch и множество других решений.
## Пошаговая установка Докер на Ubuntu
**Шаг 1.** Сначала обновим пакеты, которые уже существуют:
```bash
sudo apt update
```
**Шаг 2.** Затем установим пару пакетов, которые назначат право для "apt" пользоваться пакетами по протоколу HTTPS:
```bash
sudo apt install apt-transport-https ca-certificates curl software-properties-common
```
**Шаг 3.** После чего установим GPG ключ для репозитория Docker в нашу систему:
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```
**Шаг 4.** Добавим в APT sources репозиторий Docker:
```
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
```
**Шаг 5.** После чего обновим базу данных пакетами Docker из добавленного нами репозитория:
```bash
sudo apt update
```
**Шаг 6.** Убедимся, что мы собираемся установить его именно из репозитория Docker:
```bash
apt-cache policy docker-ce
```
Вы увидите данные строчки кода(номер версии для Docker может быть другим):
```bash
docker-ce:
Installed: (none)
Candidate: 5:19.03.9~3-0~ubuntu-focal
Version table:
5:19.03.9~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
```
Обратите внимание, что docker-ce не установлен, но находится в ожидании на установку в репозитории Docker для Ubuntu 20.04
**Шаг 7.** После устанавливаем сам Docker:
```bash
sudo apt install docker-ce
```
Теперь Docker установлен на вашу машину и процесс для запуска при загрузке включен. Проверим, что Docker работает:
```bash
sudo systemctl status docker
```
Если все установлено правильно, вы увидите следующее:
```bash
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
```
Установка Docker на Ubuntu 20.04 закончена!
https://serverspace.uz/support/help/debian-install-python.mdКак установить самую последнюю версию Python на сервере с Debian из командной строки. Загрузка и компилирование на сервере актуальной версии Python
Python — популярный язык программирования в настоящее время за счёт его быстроты, переносимости написанных на нём программ и относительно низкого порога вхождения для начинающих разработчиков.
В рассматриваемом ниже материале будет описан процесс обновления до версии пакетов 3.10.9 этого языка на сервере под управлением ОС Debian.
## Обновление системного ПО операционной системы
Все команды будем выполнять от пользователя root, для этого выполняем первоначальную настройку:
```bash
apt-get install sudo -y
```
```bash
apt-get install aptitude
```
В первую очередь обновим саму ОС:
```
aptitude update
```
```
aptitude upgrade
```
После завершения обновления ОС посмотрим на текущие имеющиеся библиотеки поддержки языка:
```
Python3 -V
```
## Устанавливаем зависимое ПО, компилируем
```bash
sudo apt install wget software-properties-common
```
```bash
apt-get install build-essential
```
```
aptitude install build-essential libncursesw5-dev libreadline-gplv2-dev libssl-dev libsqlite3-dev tk-dev libc6-dev libbz2-dev libffi-dev -y
```
Загружаем актуальный файл, распаковываем его в произвольное место:
```bash
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
```
```bash
tar xvf Python-3.11.3.tgz
```
Перемещаемся в локацию:
```
cd Python-3.11.3/
```
Затем производим компилирование:
```
./configure --enable-optimizations
```
А затем устанавливаем:
```
make install
```
## Проверяем корректность обновления
```
python3 -V
```
Также можно проверить, создав простенький скрипт и запустив его:
```
touch test.py
```
Сделаем его исполняемым:
```bash
chmod +x test.py
```
Вставим в этот файл содержимое:
```
echo "print('Hello, world')">test.py
```
И запустим:
```
/usr/bin/python3 test.py
```
В результате на экран будет выведено сообщение
```
Hello, world
```
## Удаление временных файлов
В случае отсутствия необходимости в загруженных ранее файлах архивов, их можно удалить так:
```
cd .. Rm -rf Python-3.1.* sudo aptitude clean
```
## Итог
Теперь всё готово для использования обновлённой версии Python на сервере.
https://serverspace.uz/support/help/bezopasnost-nginx-kontrol-resursov-ogranicheniya.mdНастройка Nginx для повышения стабильности работы сервера: работа с диском, кэширование, сжатие и безопасность (ограничение доступа)
**Nginx** — на сегодняшний день один из самых популярных веб-серверов, и эта популярность обусловлена тем, что он очень быстро и легко настраивается. Обратная сторона такой популярности — этот веб-сервер часто становится целью вредоносных атак. И в один не особенно прекрасный день вы можете столкнуться с ситуацией, когда ваш не имеющий лимитов nginx "упал" после того, как израсходовал доступные системные ресурсы. Поэтому стоит контролировать и ограничивать ресурсы, потребляемые Nginx.
Все ограничения задаются в конфигурационном файле nginx. Здесь будет описан один из вариантов настройки на примере Ubuntu 20.04. Ограничения вносятся в файл _/etc/nginx/nginx.conf_. Каждая директива должна заканчиваться точкой с запятой. Далее будут описаны наиболее важные параметры.
## Глобальные настройки
Эти настройки повлияют на весь сервер. Описание параметров:
- **worker_connections** — этот параметр определяет, сколько одновременных соединений возможно для одного воркера (специального процесса, который взаимодействует между nginx и ядром операционной системы). Оптимальное количество таких процессов зависит от того, сколько ядер процессора и оперативной памяти имеет ваш сервер;
- **multi_accept** и **multi_accept** — эти директивы позволяют воркерам обрабатывать несколько процессов. Создается очередь, задачи в которой обрабатываются одна за другой;
- **multi_accept_delay** — этот параметр определяет задержку между обрабатываемыми задачами;
- **use** — метод обработки. Лучший выбор для серверов Linux — _epoll_.
****
- **limit_conn** — эта директива ограничивает количество одновременных соединений. Указывать ее можно в разных секциях конфигурационного файла, система работает до достижения первого из заданных ограничений. На скриншоте ниже показан пример, где общее доступное количество подключений равно 5 с одного IP-адреса, а на папку _/download_ таких подключений может быть только 2:
## Дисковые операции
Настройки в этой секции определяют, как именно nginx будет работать с диском:
- **sendfile on** — эта опция позволяет веб-серверу "обмениваться" данными небольших файлов в пространстве ядра ОС, не отправляя их в пространство приложения, тем самым значительно ускоряя работу nginx;
****
- **aio on** — эта директива разрешает многопоточные операции чтения/записи на диск.
## Сжатие и кэширование
Вы можете кэшировать некоторые данные, чтобы заставить nginx работать быстрее. Сжатие в свою очередь уменьшит поток отправляемого веб-сервером трафика:
- **gzip on** — эта опция включает сжатие;
- **gzip_comp_level** — уровень сжатия. Чем выше цифра, тем более сильное сжатие будет применяться;
- **gzip_types** - определяет, файлы каких типов будут сжиматься. Например. текст хорошо сжимается, а картинки сжимать никакого смысла нет.
- **open_file_cache** — этот параметр разрешает кеширование файлов;
- **open_file_cache_valid** — время хранения кеша;
- **open_file_cache_errors** — эта опция позволяет кэшировать ошибки типа "отказано в доступе". Это может быть полезно для предотвращения массовых одновременных атак;
## Настройки безопасности
Вы можете ограничить доступ для парсеров, ботов, загрузчиков ит.д. Просто добавьте показанную ниже конструкцию в описание раздела, доступ к которому нужно ограничить. Чаще всего доступ ботам запрещают глобально ко всему сайту:
```
if ($http_user_agent ~* LWP::curl|wget|*bot) {
return 403;
}
```
Кроме того, вы можете вообще разрешить доступ к некоторым разделам веб-сайта только с определенных IP-адресов. Может быть полезно, например, ограничить таким образом доступ к административной части вашего сайта:
```
location /admin/ {
## Разрешаем доступ с вашего IP
allow xxx.xxx.xxx.xxx/32;
## Блокируем подключение с любых других адресов
deny all;
}
```
## Заключение
В этой статье описано, как оптимизировать работу сервера nginx, и приводится несколько советов по повышению уровня безопасности.
https://serverspace.uz/support/help/zashhita-ot-sql-inekczii.mdУзнайте, как защитить базы данных MySQL от SQL-инъекций на Linux. Следуйте простым и эффективным рекомендациям из статьи для безопасной работы с БД
Ознакомьтесь с основами безопасности веб—приложений и с тем, как предотвратить атаки на ваши базы данных. В рамках инструкции вы узнаете, как найти уязвимости и как применять различные методы защиты от такого рода атак, чтобы обеспечить безопасность своих приложений.
## SQL
**SQL** (Structured Query Language) — это язык, который имеет строгие синтаксические правила при построении запросов и выполняет функцию управления реляционными базами данных. Это декларативный язык, который упрощает запрос к базе данных. Вы можете получить к нему прямой доступ или использовать язык программирования с предустановленными библиотеками.
## Защита от SQL-инъекций
Первое и самое главное действие по обеспечению безопасности в любой системе довольно простое, нам нужно обновить программное обеспечение машины. В Debian эта команда будет:
```bash
sudo apt update && sudo apt upgrade -y
```
Скриншот №1 — Обновление пакетов
Затем мы используем библиотеку Python для запроса нашей базы данных. Загрузите необходимый пакет:
```bash
pip install psycopg2
```
Скриншот №2 — Установка psycopg2
Если вы видите сообщение об ошибке "команда pip не найдена" в системе Debian, введите эту команду:
```bash
sudo apt-get install python3-pip
```
Если вы видите сообщение об ошибке "Could not find a version that satisfies the requirement psycopg2", введите эту команду:
```bash
pip install psycopg2-binary
```
Проверка осуществляется с помощью этой команды в CLI:
```bash
pip --version
```
Скриншот №3 —Установка пакетного менеджера pip
## Параметризованные запросы
Предположим у вас есть веб—приложение, которое позволяет пользователям искать продукты по названию. Вместо запроса вида:
```sql
SELECT * FROM products WHERE name = 'searchterm';
Вам нужно использовать параметризованный запрос, который может определить тип вводимых данных, как в этой конфигурации:
SELECT * FROM products WHERE name = ?;
And pass the search term as a parameter, for example, present below:
import psycopg2
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
search_term = "apple"
cur.execute("SELECT * FROM products WHERE name = %s;", (search_term,))
rows = cur.fetchall()
for row in rows:
print(row)
conn.close()
```
Скриншот №4 — Первый метод
## Проверка вводимых данных
Допустим, у вас есть форма, в которой пользователи могут оставлять комментарии. Прежде чем вставлять комментарий в базу данных, проверьте вводимые данные, чтобы убедиться, что они содержат только допустимые символы. Например, в PHP вы можете использовать функцию preg_match для проверки наличия буквенно—цифровых символов и пробелов.
```
$comment = $_POST['comment'];
if (!preg_match('/^[a-zA-Z0-9 ]+$/', $comment)) {
// Invalid input, do something
} else {
// Insert comment into database
}
```
Скриншот №5 — Второй метод
## Доступ с наименьшими привилегиями
Допустим, у вас есть база данных с несколькими таблицами, и вы хотите создать пользователя, который может считывать данные только из одной таблицы. Создайте нового пользователя и предоставьте ему ограниченные права. Пример ниже:
```sql
CREATE USER readonly_user;
GRANT SELECT ON products TO readonly_user;
```
## Обработка ошибок
Допустим, у вас есть форма входа в систему, в которой пользователи могут ввести свое имя пользователя и пароль. При возникновении ошибки, такой как неправильное имя пользователя или пароль, отобразите общее сообщение об ошибке вместо подробного. Например, в Java вы можете перехватить исключение SQLException и отобразить общее сообщение об ошибке.
```css
try {
// Execute query to check if the username and password match
} catch (SQLException e) {
System.out.println("Error: Could not log in.");
}
```
Скриншот №6 — Третий метод
## Вывод
В заключение следует отметить, что безопасность веб—приложений является важнейшим аспектом разработки программного обеспечения. Атаки с использованием **SQL—инъекций** являются одними из наиболее распространенных типов атак на базы данных, которые могут привести к значительному ущербу для организаций. Чтобы предотвратить их, важно изучить основные принципы языка SQL и его уязвимости, изучить методы SQL—инъекций и проанализировать примеры кода, содержащие уязвимости.
Кроме того, разработчикам следует применять различные методы защиты от ** SQL—инъекций**, такие как использование параметризованных запросов, проверка вводимых данных, доступ с наименьшими привилегиями и обработка ошибок. Внедряя эти методы, разработчики могут обеспечить безопасность своих приложений и защитить конфиденциальные данные от несанкционированного доступа. Важно быть в курсе последних мер безопасности и поддерживать программное обеспечение в актуальном состоянии, чтобы избежать любых потенциальных уязвимостей.
https://serverspace.uz/support/help/nastrojka-siem-sistemy-s-otkrytym-ishodnym-kodom-v-debian.mdУзнайте о системах SIEM: их настройке и обслуживании для повышения скорости и эффективности реагирования на кибер—инциденты.
## Цель
Сформировать представление об управлении **SIEM—системой**, настройке и обслуживании, что может помочь повысить эффективность и скорость реагирования на кибер—инциденты и обеспечить повышенную безопасность вашей информационной системы. Изучите больше возможностей контроля кибер—инцидентов, основанных на корреляционном анализе и методах управления рисками.
## Задачи
- Сформировать начальное представление о системе;
- Рассмотреть проблемы детектирования инцидентов в корпоративной сети;
- Установка и настройка SIEM с открытым исходным кодом в ОС Linux.
## Теория
**SIEM** (Security Event Management + Security Information Management) — системы, которые контролируют информационные системы, анализируют события безопасности в режиме реального времени, исходящие от сетевых устройств, средств информационной безопасности, ИТ—служб, системной и прикладной инфраструктуры, и помогают обнаруживать инциденты информационной безопасности. Проблемы обнаружения инцидентов в корпоративных сетях:
- Средства безопасности, серверы и сетевые устройства создают миллионы событий, терабайты журналов;
- Неэффективно реагировать на все инциденты: 50-95% из них являются ложными;
- Данные, полученные с помощью одного средства защиты, не позволяют выявить сложные и целенаправленные атаки;
- События разбросаны по разным системам и десяткам отчетов;
- Нормативные требования в области информационной безопасности.
## Действия
Перед установкой любого программного обеспечения нам необходимо обновить индекс и пакет в Debian:
```bash
sudo apt update && sudo apt upgrade -y
```
Скриншот №1 — Обновление пакетов
Следующий этап: установите необходимые пакеты.
```bash
sudo apt-get install suricata
```
Скриншот №2 — Установка
Настройка Suricata:
```
sudo nano /etc/suricata/suricata.yaml
```
Скриншот №3 — Настройка конфига
В файле конфигурации установите соответствующий сетевой интерфейс для мониторинга Suricata:
```yaml
default-log-dir: /var/log/suricata/
...
af-packet:
- interface: enp0s5
```
Скриншот №4 — Настройка SIEM
Примечание: Замените "enp0s5" именем вашего сетевого интерфейса.
Сохраните и закройте файл конфигурации. Запустите Suricata:
```
sudo suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal
```
Скриншот №5 — Проверка работы
Убедитесь, что Suricata запущена, проверив ее лог-файлы:
```
tail -f /var/log/suricata/fast.log
```
## Вывод
В заключение, настройка системы **SIEM** с открытым исходным кодом на Debian является важным шагом на пути к повышению безопасности информационных систем для малого и среднего бизнеса. Отслеживая и анализируя события безопасности в режиме реального времени, **SIEM**—системы помогают выявлять потенциальные инциденты безопасности. Однако обнаружение инцидентов в корпоративных сетях может быть сложной задачей из-за большого объема событий, генерируемых различными инструментами и устройствами безопасности. При правильно настроенной системе SIEM предприятия могут эффективно управлять кибер—инцидентами на основе корреляционного анализа и методов управления рисками, обеспечивая тем самым режим повышенной безопасности своей информационной системы.
https://serverspace.uz/support/help/ustanovka-ansible-na-debian.mdПошаговая инструкция как установить приложение Ansible для автоматизации работы с серверами на ОС Debian 10 и 11
**Ansible** - это высокоэффективный инструмент автоматизации, предназначенный для управления множеством серверов одновременно, а также для управления конфигурацией, развертыванием приложений и других задач. В этой статье рассмотрим процесс установки Ansible на Debian и начнем использовать его для автоматизации.
Зачем это нужно? Представим,что в распоряжении имеются сотни или даже тысячи серверов,и на каждом необходимо выполнить одну и ту же операцию или команду. Выполнение такой работы вручную займет катастрофически много времени. С помощью Ansible можно автоматизировать:
- Установку и настройку ПО на серверах
- Конфигурирование сетевых устройств
- Развёртывание виртуальных машин
- Управление контейнерами Docker
- Мониторинг и логирование системы
- И многие другие задачи.
## Обновление Debian
Перед установкой Ansible необходимо обновить операционную систему. Для этого выполним:
```bash
sudo apt-get update
sudo apt-get upgrade
```
## Установка зависимостей
Для работы Ansible требуются некоторые зависимости. Для их установки вводим в терминал:
```bash
sudo apt-get install software-properties-common
```
Кроме того, Ansible требует поддержку языка Python, библиотеки непосредственно также будут установлены.
## Установка Ansible
После установки зависимостей можно приступить к развёртыванию Ansible. Делается так:
```bash
sudo apt-get install ansible
```
## Проверка развёртывания
После установки необходимо проверить работоспособность. Для этого выполним команду:
```
ansible --version
```
Если все установлено правильно, то будет вывод информации о версии.
## Настройка хостов
Чтобы начать использовать непосредственно автоматизацию, необходимо настроить хосты, на которых будут выполняться задачи. Для этого создаём файл inventory и перечислим в нём список хостов.
Пример файла inventory:
```
websrv1.localdomain
websrv2.localdomain
dbsrv1.localdomain
dbsrv2.localdomain
```
## Ansible playbook
Playbook — файл, содержащий задачи, которые впоследствии будут выполнены на требуемых узлах. Создаём файл playbook.yml и добавляем в него следующее:
```bash
- hosts: web
tasks:
- name: Установить lighttpd
apt:
name: lighttpd
state: present
- hosts: database
tasks:
- name: Установить mariadb
apt:
name: mariadb-server
state: present
```
С помощью такого playbook установится веб-сервер lighttp и сервер баз данных MariaDB на всех хостах из группы web и database соответственно.
## Запуск playbook
Чтобы запустить playbook, выполните:
```
ansible-playbook -i inventory playbook.yml
```
Будут выполнены задачи, перечисленные в playbook на всех хостах, прописанных в файле inventory.
## Проверка работоспособности Ansible
Для проверки работоспособности можно подключиться к серверам из списка inventory по ssh и проверить наличие установленного ПО из файла playbook.
Кроме установки приложений, настройки конфигурации, Ansible может использоваться для автоматического развертывания приложений, управления пользователями и группами, копирования файлов и многих других задач. Для этого необходимо создать соответствующие playbook и запустить их на нужных хостах.
Ansible - это мощный инструмент автоматизации, который позволяет управлять множеством серверов одновременно. Установка Ansible на Debian проста и занимает всего несколько шагов. После завершения установки требуется настроить хосты и создать playbook описать в нём задачи для выполнения на этих хостах. Ansible может быть использован для автоматизации различных задач, что позволяет значительно упростить администрирование серверов.
https://serverspace.uz/support/help/routed-network-server.mdСоздание маршрутизированной сети в облаках vStack и VMWare от Serverspace. Пошаговая инструкция со скриншотами.
Самый простой способ получить доступ к облачному серверу – подключиться к его консоли, используя публичный IP адрес. При создании сервера также необходимо указывать требуемую ширину для публичного канала – это напрямую влияет на конечную стоимость. Даже в небольших проектах несколько серверов обмениваются данными для обеспечения функционирования приложения – объем данных может быть большим, и ширины публичного канала может не хватить на их своевременную передачу. Как результат – заметное замедление работы приложения, либо полная остановка работы. В этом случае можно увеличить ширину с заметным повышением стоимости.
Гораздо эффективнее организовать отдельную облачную локальную сеть с большой шириной канала, через которую серверы могут обмениваться техническими данными. Т.е. теми данными, которые не отправляются пользователю напрямую, например – веб приложение запрашивает данные из БД, и после получения дальше обрабатывает их для отображения в браузере. В сети также присутствует интерфейс с публичным IP (выполняющего функцию шлюза сети), с помощью которого настраивается маршрутизация трафика от серверов в интернет и обратно (т.е. задействование механизма NAT). Поэтому такая сеть называется маршрутизируемой.
Каждый сервер может быть подключен только к локальной сети без выделения публичного IP. Это позволяет уменьшить конечную стоимость, и получить возможность организовать инфраструктуру для проекта с меньшими сетевыми ограничениями.
Облака VMWare и vStack от Serverspace позволяют создавать маршрутизируемые локальные сети с некоторыми отличиями.
## Создание маршрутизируемой сети в облаке VMWare
В панели управления слева необходимо выбрать раздел "Сети", и справа нажать синюю кнопку "СОЗДАТЬ":
В следующем окне выбрать тип сети "Маршрутизируемая":
В этом же окне необходимо выбрать:
- ЦОД, совпадающий с тем, в котором созданы серверы;
- Адрес сети можно оставить предложенный или задать свой, учитывая, что адрес должен быть из диапазонов 10.0.0.0 — 10.255.255.0, 100.64.0.0 — 100.127.255.0, 172.16.0.0 — 172.31.255.0, 192.168.0.0 — 192.168.255.0;
- использовать DHCP или нет (т.е. будут ли серверы получать IP автоматически, или потребуется вручную их настраивать на каждом сервере);
- необходимую ширину публичного канала;
- название сети.
Далее нажать внизу слева кнопку "СОЗДАТЬ".
Создание сети займет некоторое время:
После успешного создания сеть появится в списке:
Нажав на название, можно увидеть в новом окне детали сети, а также вкладки настроек:
В настройках доступно создание правил Firewall, VPN подключений, и функций NAT.
В этом же окне можно сразу подключить серверы к созданной сети нажатием на кнопку "ПОДКЛЮЧИТЬ СЕРВЕР". Появится новое окно со списком серверов:
Сервер также можно подключить из окна настроек.
Для этого необходимо нажать на кнопку "ДОБАВИТЬ" в разделе "Подключенные сети":
В новом окне выбрать сеть и нажать на кнопку "ПРИСОЕДИНИТЬ":
Подключения к сети появится в разделе "Подключенные сети":
Также, в окне настроек сети появится подключенный сервер:
В примере DHCP не используется, поэтому IP адрес на сервере необходимо установить вручную.
## Создание маршрутизируемой сети в облаке vStack
Процесс создания маршрутизируемой сети в vStack отличается – необходимо выполнить объединение изолированной (локальной) сети и шлюза с публичным IP для возможности выхода в интернет. Для этого первым шагом необходимо создать изолированную сеть, далее создать шлюз и добавить его к созданной сети.
В панели управления слева необходимо выбрать раздел "Сети", и справа нажать синюю кнопку "СОЗДАТЬ СЕТЬ":
В следующем окне выбрать тип сети "Изолированная":
В этом же окне необходимо выбрать:
- ЦОД, совпадающий с тем, в котором находятся серверы. Также, в этом же ЦОД должен создаваться и шлюз;
- Адресацию. Она может быть задана автоматически, либо можно задать требуемую (нажатием на кнопку "Задать вручную");
- теги при необходимости;
- название и описание создаваемой сети.
Создание не займет много времени:
Далее необходимо подключить созданную сеть к шлюзу. Для этого в разделе "Сети" также нажать на кнопку "СОЗДАТЬ СЕТЬ" и выбрать тип "Маршрутизируемая". Откроется новое окно "Создание шлюза":
В этом окне:
- выбрать ЦОД, в котором создана изолированная сеть;
- нажатием кнопки "Добавить" выбрать созданную изолированную сеть;
- выбрать необходимую ширину канала;
- добавить теги при необходимости;
- задать имя.
Для продолжения нажать кнопку "СОЗДАТЬ" ниже. После завершения будет создан шлюз:
При нажатии на название шлюза откроется окно настроек, в котором видно подключенную сеть:
Создание дополнительной маршрутизируемой сети приведет к созданию нового шлюза. Если требуется подключить другую изолированную сеть, то из этого же окна ее можно выбрать после нажатия на кнопку "ДОБАВИТЬ". Правила Firewall и функции NAT доступны именно в настройках шлюза. В VMWare это доступно в настройках маршрутизируемой сети.
После добавления нужных серверов в созданные сети требуется настроить сетевой адаптер.
Для этого могут быть полезны статьи:
- [Настройка сетевого интерфейса в Ubuntu 18.04](https://serverspace.uz/support/help/configuring-the-network-interface-in-ubuntu-18-04/)
- [Настройка сетевого интерфейса на Debian](https://serverspace.uz/support/help/nastrojka-setevogo-interfejsa-na-debian/)
- [Настройка сетевого интерфейса на CentOS](https://serverspace.uz/support/help/nastrojka-setevogo-interfejsa-na-centos/)
- [Настройка сетевого адаптера в Windows](https://serverspace.uz/support/help/nastrojka_setevogo_adaptera_windows/)
https://serverspace.uz/support/help/monitoring-nginx-zabbix.mdНастраиваем сервер Nginx для мониторинга с помощью Zabbix, рассматриваем метрики шаблона Nginx by Zabbix Agent
Nginx - это широко используемый веб-сервер, который часто используется для обслуживания статического контента, обратного прокси или балансировки нагрузки веб-трафика. Он известен своей надежностью, гибкостью и высокой производительностью. Как и с любым сервером, важно контролировать Nginx, чтобы убедиться, что он функционирует должным образом, и решать любые проблемы, которые могут возникнуть. В этой статье мы рассмотрим, как мониторить Nginx с помощью Zabbix для обнаружения и устранения проблем с вашим сервером Nginx.
## Подготовка
Прежде чем мы начнем изучать процесс мониторинга Nginx с помощью Zabbix, необходимо убедиться, что у нас есть все необходимое:
- Сервер с установленным Nginx, за которым вы хотите наблюдать
- Запущенный [сервер Zabbix](https://serverspace.ru/support/help/ustanovka-zabbix-na-ubuntu/)
- Установленный и настроенный [агент Zabbix](https://serverspace.ru/support/help/ustanovka-agenta-zabbix-na-ubuntu/) на сервере, на котором работает Nginx.
## Настройка Nginx
Откройте файл /etc/nginx/conf.d/stub_status.conf любым удобным вам редактором и вставьте следующий текстовый блок:
```css
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
```
Эти настройки позволят серверу генерировать базовую информацию о состоянии на странице /basic_status, доступной только с этого же сервера, чтобы наш агент мог получить ее.
Теперь давайте проверим, работает ли процесс Nginx с новыми настройками, выполнив следующие команды:
```bash
nginx -t
systemctl restart nginx
systemctl status nginx
```
Затем давайте проверим, работает ли новая страница состояния с помощью curl:
```bash
curl http://127.0.0.1/basic_status
```
## Настройка логов
Вы должны проверить, генерирует ли Nginx необходимые для Zabbix логи, проверив настройки логирования в файле /etc/nginx/nginx.conf
Теперь, чтобы Zabbix смог работать с логами, давайте закомментируем оригинальную строку access_log и вставим этот фрагмент:
```
error_log /var/log/nginx/error.log notice; access_log /var/log/nginx/access.log main; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
```
Он должен выглядеть примерно так: Проверьте и перезапустите Nginx еще раз, и приступим к настройке Zabbix.
## Настройка Zabbix
Предполагая, что все предыдущие инструкции выполнены, вам теперь нужно только создать хост для этого сервера и добавить к нему Nginx с помощью шаблона Zabbix agent, или добавить его к уже существующему. Назначьте шаблон хосту с установленным Nginx, перейдя в Configuration → Hosts → Выберите хост → Templates → Add.
Если все правильно, вы сможете работать с данными, предоставляемыми шаблоном:
- Общие показатели: использование процессора и памяти, количество открытых подключений к серверу.
- Метрики запросов: среднее время отклика на запрос, процент запросов, приводящих к ошибке, количество запросов, обрабатываемых Nginx в секунду.
- Метрики SSL: количество обработанных Nginx рукопожатий в секунду, количество поддерживаемых Nginx шифров и количество ошибок сертификатов, с которыми сталкивается Nginx.
- Время работы: отслеживает, как долго Nginx работает без простоев.
Шаблон Zabbix также включает ряд триггеров, которые уведомляют вас о проблемах с вашим сервером Nginx. Эти триггеры оповещают вас о таких проблемах, как высокая загрузка процессора, высокое использование памяти, высокий уровень ошибок и простои. Например:
- Триггер высокой загрузки процессора: этот триггер будет оповещать вас, когда использование процессора на вашем сервере Nginx превысит определенный порог.
- Триггер высокого использования памяти: этот триггер будет оповещать вас, когда использование памяти на вашем сервере Nginx превысит определенный порог.
-
Триггер высокого уровня ошибок: этот триггер будет оповещать вас, когда уровень ошибок на вашем сервере Nginx превысит определенный порог.
-
Триггер простоя: этот триггер будет оповещать вас, если ваш сервер Nginx перестанет работать.
## Вывод
Вы изучили, как подготовить Nginx для мониторинга с помощью Zabbix и добавить подходящий шаблон в Zabbix, что позволяет вам проактивно отслеживать работу вашего сервера и быстро решать возникающие проблемы.
https://serverspace.uz/support/help/kak-nastroit-tipy-shifrovaniya-nginx.mdВ статье рассказывается, как «поднять» SSL-рейтинг вашего сайта, с помощью тонкой настройки сервера Nginx, что будет полезно для SEO
## О чем речь и зачем вообще менять набор шифров nginx
Nginx — один из самых известных сегодня веб-серверов. И, по ставшей стандартом в индустрии практике, для уверенности в том, что сайт действительно тот, чем кажется, при настройке сервера используются SSL-сертификаты. При этом прогресс не стоит на месте, злоумышленники совершенствуют свои методы, а в ответ появляются новые алгоритмы шифрования. Вот почему конфигурация Nginx, предлагаемая "из коробки" не всегда оптимальна.
## Как проверить ваш сервер на соответствие стандартам и повысить его рейтинг
Для проверки потребуется быстрый и надежный VPS с работающим "внутри" веб-сервером, а также домен, DNS-записи которого "указывают" на этот сервер.
Если все это есть, можно оценить текущее положение вещей при помощи [сервиса проверки рейтинга SSL](https://www.ssllabs.com/ssltest/). Как правило, конфигурация по умолчанию оставляет желать лучшего:
Для исправления достаточно открыть файл, описывающий настройки Nginx, найти директиву _ssl_ciphers_ и заменить ее значение следующим кодом:
```
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4;
```
Тем самым мы добавили поддержку современных шифров, а устаревшие, наоборот, исключили. Сохраните файл, перезапустите службу с помощью команды _systemctl restart nginx_ и еще раз проверьте результат:
## Заключение
После прочтения этой статьи вы узнали, как "поднять" SSL-рейтинг вашего сайта, что несомненно будет полезно для SEO.
https://serverspace.uz/support/help/traceroute-trassirovka-seti-v-linux.mdИнструкция: трассировка сетевых подключений в ОС Linux и Windows с помощью утилиты traceroute
Представим ситуацию: установлено и настроено нужное ПО для работы, которое взаимодействует с другими серверами в сети (любое web-приложение, использующее БД на удаленном сервере, резервное копирование по сети и др.). До какого-то момента все работает корректно и без задержек, но внезапно либо ПО начинает работать заметно медленнее, либо перестает работать полностью. Как понять на каком сервере возникла проблема? На каком этапе передачи трафика возникает задержка или ограничение? Каким образом провести диагностику сетевого подключения?
## Установка traceroute
Утилита ping поможет понять доступен ли удаленный сервер, но в дальнейшей диагностике потребуются уже другие инструменты, одним из которых является traceroute. Эта утилита способна выполнить трассировку сетевых соединений. Данные traceroute показывают через какие узлы (маршрутизаторы) проходит пакет, сколько времени занимает обработка пакета на каждом узле.
Утилита часто уже предустановлена в ОС, и сразу доступна для использования. Если все же она отсутствует, то установить ее можно из стандартного репозитория дистрибутива с помощью менеджера пакетов:
- для deb-based дистрибутива:
```bash
sudo apt install traceroute
```
- для rpm-based дистрибутива:
```bash
sudo yum install traceroute
```
## Как работает traceroute
Утилита отслеживает, на какие узлы попадает сетевой пакет в процессе его передачи на целевой хост. По умолчанию используется UDP протокол – формируется UDP датаграмма, которая упаковывается в IP пакет. В одном из заголовков этого пакета утилита устанавливает значение параметра TTL (Time To Live) равным 1. Этот параметр используется для ограничения количества переходов от одного маршрутизатора к другому, т.е. позволяет избежать бесконечной передачи пакета между маршрутизаторами (например, в случае некорректно настроенного протокола динамической маршрутизации, или при ошибках в статических маршрутах). Каждый маршрутизатор, получив пакет, уменьшает значение TTL на 1 перед отправкой далее в сеть. В ситуации, когда после очередного уменьшения TTL становится равным 0 пакет считается недоставленным и отбрасывается, при этом маршрутизатор отвечает отправителю сообщением об ошибке.
При TTL = 1 traceroute, получая ответ от первого маршрутизатора, определяет его IP адрес и время, затраченное на обработку пакета. После этого TTL увеличивается на единицу для определения следующего маршрутизатора, и так далее до момента попадания пакета на целевой хост. Утилита использует указанный ей IP-адрес, и порт 34434 по умолчанию. Целевой хост принимает пакет, и отправляет сообщение о недоступности порта 34434 (так как в большинстве случаев он не используется каким-либо сервисом и закрыт). В итоге отслеживается вся цепочка следования пакета, которая завершается ответом от целевого хоста.
Маршрутизатором является любое устройство, передающее пакет из одной подсети в другую — это может быть какой-либо сервер, а не специализированное сетевое устройство. Это особенно актуально для микросервисной архитектуры приложений, использующей технологии контейнеризации. Анализируя время, затраченное на переход от одного маршрутизатора к другому, можно определить на каком из них возникает задержка - возможно из-за нехватки ресурсов на одном из серверов, или из-за неисправности дисковой системы, и др. Если один из серверов недоступен, то пакет не дойдет до целевого хоста, и утилита определит на каком этапе передачи это происходит. Также, пакет не дойдет если действует фильтрация трафика, мешающая передачи пакета.
## Запуск traceroute
Обязательным для утилиты является имя целевого хоста или IP адрес:
```
traceroute linux.org
```
Вывод команды:
Какие данные получены этой командой и отображены в выводе в виде таблицы:
- потребовалось 5 переходов (или хопов - hops), их число отображено в первом столбце;
- на каждом хопе определен IP адрес следующего маршрутизатора и его имя (при наличии);
- время (RTT – Round Trip Time), затраченное на отправку и получения запроса от маршрутизатора.
По умолчанию traceroute отправляет три UDP пакета, поэтому в выводе отображены три значения RTT. Для первой строки это 3.034 ms, 5.349 ms, 5.325 ms. Другим значением по умолчанию является количество хопов, которые может пройти пакет, т.е. TTL = 30. Произвольное значение, например 35, можно указать в строке запуска с опцией " -m 35 ".
На некоторых хопах может быть определено более одного маршрутизатора – это происходит из-за наличия нескольких маршрутов на этом этапе. Отправляя сразу три UDP пакета ответ может приходить от трех разных маршрутизаторов, и для каждого также указано RTT. Пример такого ответа на четвертом хопе: определены IP 172.71.180.2 и 172.71.100.2, через которые возможна доставка пакетов на целевой хост.
Необходимо обращать внимание на хопы имеющие большое значение RTT – это означает, что маршрутизатор долго обрабатывает пакет, и необходимо выяснить причину такой задержки.
Стоит отметить, что ответ может приходить отправителю альтернативным маршрутом, либо использования технологий балансировки нагрузки. Если на каком-то хопе имеется высокий RTT, то стоит запустить утилиту еще раз и проверить результат. Также, на одном из маршрутизаторов могут быть в действии фильтры пакетов, либо это может быть специализированный Firewall. В таком случае возможны ограничения для порта или UDP протокола, и в выводе traceroute будут отображены три звездочки (т.е. превышен таймаут получения ответа):
```
traceroute mongodb.org
```
Ресурс mongodb.com доступен, но UDP пакеты фильтруются.
Traceroute может использовать ICMP протокол вместо UDP – отправляется один запрос "Echo Request", в ответ также приходят ICMP сообщения, порт не используется. В остальном – схема работы не отличается. Опция " -I " в строке запуска для ICMP трассировки:
```
traceroute mongodb.org -I
```
Видно, что ответ получен от целевого хоста, хотя с 5 по 21 хопы ответы не приходят.
TCP протокол также может быть использован (опция " -T ") – в этом случае отправляются SYN запросы на 80 порт.
## Полезные опции traceroute
- " -4 " и " -6 ", указание протоколов IPv4 и IPv6 соответственно;
- " -i ", указание сетевого интерфейса, например "-i ens0s5";
- " -n ", отключение определения доменного имени для IP маршрутизатора;
- " -p ", указание произвольного порта (для UDP и TCP);
- " -m ", максимальное количество переходов (хопов).
## Трассировка в ОС Windows
Утилита tracert доступна в ОС Windows для трассировки сети аналогично traceroute в ОС Linux. Эта утилита использует только ICMP протокол, имеет меньшее количество опций, в остальном процесс не отличается от traceroute.
## Заключение
Traceroute является удобным инструментом для диагностики сетевых подключений, помогающий определить на каком узле возникают задержки или ограничения для прохождения трафика. При этом, интерпретировать результаты его работы не всегда просто из-за правил фильтрации, систем перенаправления и балансировки трафика. Для диагностики распределенного приложения требуется четкое представление об используемой архитектуре. Комбинирование доступных опций также полезно для диагностики внешних ресурсов.
https://serverspace.uz/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-2.mdАнализ и фильтрация трафика для защиты от DDoS-атак. Пошаговое руководство по созданию профиля трафика сайта с помощью программы мониторинга WireShark
## Предыдущий эпизод
В [предыдущем эпизоде](https://serverspace.uz/support/help/zashhita-ot-ddos-v-debian-chast-1/) серии инструкций мы рассмотрели первые шаги по созданию системы безопасности, способной противостоять **DDoS—атакам**, и подготовили нашу систему к такому состоянию. Вкратце, мы установили программное обеспечение для прослушивания и мониторинга на наш прокси—сервер, которое собирает для нас данные и помещает их в специальную папку в файле формата ".pcap". Теперь мы используем этот трафик для анализа и фильтрации в режиме, который может помочь криминалистам и пентестерам в их работе. Давайте начнем!
## Wireshark
**В wireshark** у нас есть параметры фильтрации, которые могут быть очень полезны для создания нормального профиля трафика. Порт, протокол, IP—адрес и фильтр выражений изолируют трафик и могут создать список необходимой информации. Мы можем импортировать эти данные в Excel или любое другое удобное программное обеспечение для работы с трафиком.
## Анализ траффика
Рассмотрим главное окно программы мониторинга:
Скриншот №1 — Главное окно
Если вы пропустили предыдущий эпизод, вам нужно собрать определенное количество трафика в нашей программе, это также возможно. Нажмите на кнопку, напоминающую гребень акулы:
Скриншот №2 — Кнопка старта
После сбора данных вам нужно прекратить мониторинг и нажать на кнопку **остановить**, как на фотографии ниже:
Скриншот №3 — Кнопка стоп
Или, если у вас есть файл **pcap**, откройте его из меню этой программы в строке выше:
Скриншот №4 — Меню
Появится окно о сохранении — сохранять или нет на ваш выбор:
Скриншот №5 — Сохранение
Все инструменты для анализа и сбора статистики о вашем трафике в сети также расположены в строке выше, с названиями "**Анализировать**" и "**Статистика**". Они представляют собой ряд разнообразных методов и инструментов для того, чтобы подчеркнуть смысл информации:
Скриншот №6 — Анализ
Скриншот №7 — Статистика
Сначала мы собираем список исходного и конечного трафика IP—адреса, который будет помечен как легитимный. Выберите вкладку Статистика, найдите точку IPv4 и нажмите на первую строку:
Скриншот №8 — IP статистика
Все адреса будут отображаться в списке с различными параметрами: частотный адрес в общем наборе, скорость и процент от общего трафика. Нажав на меню на вкладке ниже, мы можем увидеть пункты назначения и порты:
Скриншот №9 — IP статистика
Скриншот №10 — Порт статистика
Сохраните эту информацию, нажав на кнопку Сохранить как. Далее мы рассматриваем всю извлеченную информацию и составляем список важных данных. IP—протоколы, которые мы можем увидеть ниже:
Скриншот №11 — Статистика протоколов
В этой программе перехвата мы можем использовать диаграмму для примитивной визуализации частотных пакетов. Нажмите на статистику на вкладке выше, затем выберите графики и посмотрите результат:
Скриншот №12 — Меню графика
Скриншот №13 — График
## Вывод
После того, как мы произвели измерения всех точек и цифровых отпечатков, обобщим полученные данные и сделаем вывод о профиле нашего трафика, но вы можете заметить, что профиль не был визуализирован в следующем эпизоде серии инструкций, которые мы рассмотрим "Как использовать профиль трафика для защиты от DDoS?" и "Как визуализировать траекторию профиля трафика?" для составления более тщательного и глубокого портрета легитимизированного пользователя. Все это и многое другое мы сможем увидеть в следующих инструкциях. Оставайтесь с нами! Для составления более тщательного и глубокого портрета легитимизированного пользователя. Все это и многое другое мы сможем увидеть в [следующих инструкциях](https://serverspace.ru/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-3/). Оставайтесь с нами!
https://serverspace.uz/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-3.mdВ этом руководстве вы узнаете, как автоматизировать профилирование сетевых данных с помощью logwatch, acct.
## Предыдущие эпизоды
[В предыдущих сериях инструкций](https://serverspace.ru/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-2/) мы рассматривали возможность создания вручную обычного профиля данных с помощью Wireshark для программного обеспечения. Данные меры защищают систему от незаконных данных и создают безопасную среду. Ручной сбор данных для крупной компании может быть долгой и скучной задачей, однако достаточно гибкой и удобной для малого и среднего бизнеса. В этой инструкции мы рассмотрим автоматизацию создания профилей сетевых данных, которые могут помочь в различных сложных и неоднозначных ситуациях. Давайте посмотрим!
Возникает первый вопрос, какое программное обеспечение необходимо использовать в данной ситуации. Существуют различные типы программ, но мы выбрали **logwatch** и **acct**. Они помогают создавать автоматические отчеты и создавать профильные системы, которые преобразуют рутину в автоматизированную задачу.
## Установка и использование утилит
В начале напишите эту команду, чтобы обновить индекс пакета:
```bash
sudo apt update –y && sudo apt upgrade –y
```
Скриншот №1 — Обновление
Подождите немного, чтобы обновить все пакеты. Это важная часть любой установки. Сразу после этого действия напишите в CLI команды, приведенные ниже, которые установят необходимое программное обеспечение в систему:
```bash
sudo apt install acct
```
Скриншот №2 — Установка acct
После этого установим монитор системного журнала:
```bash
sudo apt install logwatch
```
Скриншот №3 — Установка Logwatch
После установки просмотрите конфигурационный файл:
```
cd ~/usr/share/logwatch/default.conf && nano logwatch.conf
```
Скриншот №4 —Конфигурация Logwatch
В этом файле вы можете указать, какие журналы следует анализировать, какой уровень детализации отчетов необходим и т.д. Если вы хотите собрать информацию журнала об аутентификации, то вам нужно раскомментировать строку:
```
LogFile = /var/log/auth.log
```
Скриншот №5 — Пропишем логи
После компиляции этого параметра, если вы настроили SMTP–сервер, вы можете записать в конфигурационный файл данные:
```
MailTo = an1ik@ya.ru
```
Скриншот №5 — Почтовые запросы
Затем сохраните файл с помощью комбинации клавиш **Ctrl+O**, **Ctrl+X** и запустите logwatch:
```
sudo logwatch
```
И посмотрим на результат:
Скриншот №7 — Информация с систем
Теперь мы переходим к использованию acct. После установки acct вы можете включить его работу с помощью команды:
```bash
sudo service acct start
```
Скриншот №8 — Запуск службы
После этого утилита начнет записывать информацию о пользователе в **/var/log/account/pacct**. Чтобы просмотреть статистику использования ресурсов для конкретного пользователя, вы можете воспользоваться командой sa. Например, чтобы просмотреть статистику для пользователя root, вам необходимо выполнить следующую команду:
```
ac –p /var/log/account/pacct root
```
Скриншот №9 — Отчет
## Вывод
В этой инструкции мы установили утилиты мониторинга и сбора системных данных, которые могут автоматизировать сбор и систематизировать сбор информации о журналах из всех систем и действиях пользователей. Это дополнительный цифровой отпечаток, который мы можем использовать для нашей системы безопасности. В следующем эпизоде мы можем коснуться создания синтетического трафика и профилей пользователей в системе IPS/IDS для защиты. Следите за новыми инструкциями!
https://serverspace.uz/support/help/ustanovka-postgresql-windows.mdКак установить PostgreSQL 15 в Windows Server 2019-2022. Пошаговое руководство по установке, выбору компонентов и настройке Windows Server
PostgreSQL — система управления базами данных с открытым исходным кодом, которая объединяет возможности объектно-ориентированных и реляционных подходов к хранению данных. Она обладает высокой мощностью и расширяемостью, а также поддерживает множество функций и возможностей. PostgreSQL поддерживает множество функций, включая поддержку транзакций, поддержку хранимых процедур и триггеров, полнотекстовый поиск, геопространственные данные, JSON и многое другое. PostgreSQL также обеспечивает высокую производительность и надежность, благодаря своей архитектуре и технологиям многопоточности. Установка PostgreSQL не является сложной задачей и следуя приведенным ниже шагам вы сможете успешно установить её самостоятельно.
## Загрузка установочного дистрибутива
Первым шагом в установке PostgreSQL является загрузка установочного файла. Вы можете загрузить установочный файл с официального сайта "[www.postgresql.org/download/windows](https://www.postgresql.org/download/windows/)", выбрав соответствующую версию для вашей операционной системы.
## Запуск установки
После загрузки установочного файла запустите его. При запуске установки вы увидите окно приветствия, где нужно нажать кнопку "Next".
Скриншот №1. Запуск установки PostgreSQL 15
## Выбор места установки приложения
На следующем экране вы должны выбрать директорию, в которую будет установлен PostgreSQL. По умолчанию директория установки - "C:\Program Files\PostgreSQL\", но вы можете изменить ее на любую другую директорию.
Скриншот №2. Выбор места расположения файлов для установки
## Выбор компонентов
На следующем экране вы можете выбрать компоненты, которые вы хотите установить. По умолчанию выбраны все компоненты, но можно изменить этот выбор в соответствии с вашими потребностями. В данном случае выберем базовые компоненты:
- непосредственно саму СУБД;
- графическую утилиту администрирования pgAdmin 4;
- утилиты администрирования через командную строку.
Скриншот №3. Выбор компонентов для установки
## Установка параметров
На следующем экране нужно ввести пароль для учетной записи по умолчанию PostgreSQL. Этот пароль будет использоваться для доступа к базе данных PostgreSQL.
Скриншот №4. Установка пароля пользователя администратора СУБД
Кроме пароля инсталлятор спросит, на каком порту будет работать приложение, а также локаль, всё оставим по умолчанию :
Скриншот №5. Выбор порта для работы приложения
Скриншот №6. Выбор локали
## Запуск установки
После того как вы ввели все необходимые параметры, нажмите кнопку "Next". Установка PostgreSQL может занять некоторое время, в зависимости от технических характеристик сервера.
Скриншот №7. Начало установки
## Завершение установки
После завершения установки вы увидите окно с сообщением об успешной установке PostgreSQL. Нажмите кнопку "Finish", чтобы закрыть установщик.
Скриншот №8. Завершение мастера установки
## Проверка работоспособности
После успешной установки PostgreSQL можно проверить работу базы данных, запустив графическую утилиту PgAdmin 4. Выбираем из списка наш сервер и вводим пароль от пользователя администратор, который придумали ранее при установке:
Скриншот №9. Подключение к локальному серверу СУБД
Если все настроено правильно, вы увидите список объектов на локальном сервере. Теперь можно сделать SQL-запрос для вывода установленной версии. Для этого правой кнопкой мыши кликнем по БД postgres и выберем инструмент "Query Tool".
В правой части экрана в поле "Query" вводим:
```sql
SELECT version();
```
И нажимаем "Run". В результате получим примерно как на скрине ниже:
Скриншот №10. Запрос к БД postgres
Это позволит убедиться, что база данных работает корректно и готова к использованию в ваших проектах и приложениях.
**Заключение**
Придерживаясь указанных инструкций, вы легко установите PostgreSQL и сможете использовать его для своих проектов и приложений. Не забывайте регулярно обновлять PostgreSQL и следить за безопасностью вашей базы данных.
https://serverspace.uz/support/help/ogranichenie-prav-dostupa-polzovatelya-linux.mdУзнайте, как ограничить права доступа пользователей в операционной системе Linux, чтобы обеспечить и усилить безопасность вашей системы
Linux позволяет осуществлять контроль над системными ресурсами. Одним из способов осуществления такого контроля является ограничение прав пользователя. По умолчанию в системах Linux настроена многопользовательская среда, которая позволяет нескольким пользователям одновременно входить в систему и выполнять задачи.
Однако не всем пользователям требуется доступ ко всем системным ресурсам. Чтобы решить эти проблемы, администраторы могут использовать различные методы ограничения пользовательских разрешений таким образом, чтобы каждый имел только необходимый уровень доступа для выполнения своих задач.
## Программное обеспечение
Ограничение прав пользователей включает в себя настройку параметров безопасности различных конфигурационных файлов: пользователей, групп пользователей или процессов. Это можно сделать с помощью встроенных системных разрешений, групп пользователей или таких инструментов, как AppArmor. Системное разрешение предоставляет доступ к определенным субъектам информационных систем.
Такие возможности, как запись, чтение и выполнение доступа к объекту файловой системы. AppArmor и другое программное обеспечение могут быть модулями безопасности, которые предоставляют услуги безопасности через подмножество системы MAC concept и configuration process.
## Установка и использование
Перед использованием основной утилиты обновите свою систему :
```bash
sudo apt update —y && sudo apt upgrade —y
```
Скриншот №1 — Обновление
Установите необходимый пакет для создания профиля и файла журнала:
```bash
sudo apt install apparmor—utils apparmor
```
Скриншот №2 — Установка
И проверьте наличие пакета в утилитах:
Скриншот №3 — Установка дополнения
Процесс будет структурирован следующим образом: мы создаем профиль для пользователей, которые начинают сканировать свои действия и перемещения, запускаем необходимую для пользователя программу, которая влияет на их процесс. Теперь мы можем собрать все файлы журнала и установить для него разрешение. Сначала создайте профиль пользователя, которого вам нужно ограничить:
```
sudo aa—genprof —h
```
Скриншот №4 — Помощь по ПО
Мы можем увидеть шаблон синтаксиса программы и заполнить пробелы, следуя этому примеру:
```
sudo aa—genprof sudo
```
Скриншот №5 — Сканирование процессов
Вы можете использовать любой параметр на экране ниже, но мы используем настройку по умолчанию. Теперь, как вы можете видеть из инструкции, мы должны создать новое окно в нашем удаленном программном приложении:
Скриншот №6 — Новая вкладка
Запустите все программы, которые вам нужно использовать, и подождите, теперь они полностью запускаются, требуя записи процесса в журнал регистрации:
Скриншот №7 — Продолжение сканирования
Перейдите к предыдущему окну и остановите процесс, нажав **букву F** на клавиатуре. Перейдите к файлам журнала и проверьте, правильно ли запускается процесс ядра AppArmor:
```
sudo journalctl —k
```
Скриншот №8 — Журнал
После того, как мы убедимся, что все процессы запускаются правильно, нам нужно обновить файл журнала в AppArmour:
```
aa—logprof
```
Скриншот №9 — Обновление файла
Запустите профиль в принудительном режиме, который может включить систему ограничений MAC:
```
aa—enforce /usr/bin/sudo
```
Скриншот №10 — Усиленный режим
## Вывод
Ограничение прав позволяет администраторам гарантировать, что пользователи имеют доступ только к необходимым ресурсам, и снижает риск нарушений безопасности. AppArmor — это инструмент, который может помочь администраторам ограничить права пользователей, определив конкретные профили для пользователей и связанных с ними процессов.
Следуя шагам, описанным в этой статье, администраторы могут создавать профили AppArmor и файлы журналов, анализировать их и вводить ограничения на разрешения пользователей. В конечном счете, внедрение этих методов приведет к созданию более безопасной и эффективной системы Linux. В [следующей серии](https://serverspace.ru/support/help/ogranichenie-prav-dostupa-polzovatelya-linux-chast-2/) инструкций рассмотрим шаблоны и гибкую настройку!
https://serverspace.uz/support/help/ustanovka-mysql-windows-server.mdВ статье рассматривается пошаговый процесс загрузки, установки и первоначальной настройки СУБД MySQL на сервер под управлением Window Server
**MySQL** — СУБД с открытым исходным кодом, широко применяемая в хранении, организации больших объемов данных с высокой скоростью и производительностью. Поддерживает язык SQL, позволяя производить разные манипуляции с базами, к примеру, создание таблиц, изменение, удаление, вставку данных. Кроме того, MySQL поддерживает использование триггеров, функций, хранимых процедур. Популярность обусловлена простотой использования, хорошей производительностью и большим разнообразием ПО для непосредственно работы с ней. Ниже рассмотрим процесс инсталляции в операционной системе Windows Server.
## Подготовительные работы
Для корректной установки СУБД требуется наличие установленного пакета Python не ниже версии 3.7. Необходимо заранее загрузить и установить его на сервер. Кроме того, желательно обновить ОС последними патчами от Microsoft.
Скриншот №1. Окно с требованием наличия установленного Python
[Загружаем](https://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe) дистрибутив msi с сайта и устанавливаем, следуя мастеру установки, практически везде нажимая "Далее".
## Загрузка дистрибутива MySQL
Перед тем как начать установку, необходимо [загрузить](https://dev.mysql.com/downloads/windows/installer/) дистрибутив MySQL с официального сайта. Выберите опцию "MySQL Installer for Windows", загрузите и запустите ее на вашем сервере.
Скриншот №2. Загрузка дистрибутива
## Запуск установки и выбор компонентов
После того как загрузка успешно завершена, на вашем экране появится интерфейс установщика MySQL. Для установки только MySQL выберите "Custom". Однако, если вы решили, что вам необходимы другие продукты Oracle, выберите "Developer Default". Следует обратить внимание, что некоторые компоненты могут зависеть от других, и если вы их не выберете, то не получите необходимый функционал системы. Нужно выбрать один из вариантов ,наиболее подходящий под задачи сервера, в данном случае, выберем "Full" и нажмём "Next", чтобы перейти к установке.
Скриншот №3. Выбор компонентов для установки
На следующей странице "Installation" нажимаем "Execute"
Скриншот №4. Запуск установки
## Настройка типов подключений
Следующий шаг — настройка типов подключений. Если вам необходимы стандартные настройки, оставьте дальнейшие пункты без изменений.
На этапе создания пользователя администратора необходимо будет сменить его пароль. Эта учетная запись будет использоваться для управления системой MySQL.
Скриншот №5. Выбор профиля использования сервера и настройки сети
Скриншот №6. Выбор метода аутентификации
Скриншот №7. Установка пароля администратора СУБД
Скриншот №8. Установка приложения для работы в качестве службы Windows
Скриншот №9. Инсталлятор предлагает защитить важные собственные данные СУБД с помощью ACL
Скриншот №10. Подтверждение конфигурации и начало установки
## Настройка сервера
После завершения установки необходимо настроить сервер MySQL. Если возникнут проблемы, программа установки сможет предоставить подробную информацию о том, что нужно настроить.
Скриншот №11. Запуск настройки после установки
Скриншот №12. Настройка роутера MySql
Скриншот №13. Подключение к локальному установленному серверу
Скриншот №14. Завершение установки
## Проверка установки
После того как система установлена, советуем проверить работоспособность сервера MySQL. Это можно сделать, например, с помощью MySQL Workbench или любого другого инструмента для управления базой данных. Запускаем Workbench и подключаемся к локальному серверу
Скриншот №15. Подключение к локальному серверу и БД
Скриншот №16. Подключение к локальной БД
После подключения к БД можно воспользоваться таким запросом для проверки версии СУБД:
```sql
SELECT version();
```
Результат будет примерно как на скриншоте ниже:
Скриншот №17. Проверка версии СУБД
В результате можно сказать, что установка выполнена успешно.
## Заключение
В статье были рассмотрены основные этапы установки данной СУБД на сервер. Установка MySQL на Windows Server не слишком сложна, если вы следуете нашим шагам. Если у вас возникнут какие-либо проблемы или вам понадобится помощь, советуем обратиться к документации MySQL или к сообществу разработчиков для получения дополнительной информации.
https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11-chast-2.mdУстановка и настройка почтового сервера с использованием контейнеризации приложений Docker вместо ручной установки
## Введение
[В предыдущей статье](https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11/) мы рассмотрели установку зависимостей, библиотек, DNS-записей и программного обеспечения для работы сервера. Во второй части руководства мы продолжим установку и настройку программного обеспечения. В этой части мы используем быструю развертку с помощью контейнеризации приложений вместо ручной установки. У этого есть свои преимущества и недостатки, поэтому ознакомьтесь с ними, прежде чем принимать решение!
Преимущества установки почтового сервера вручную:
- Гибкость: Ручная установка позволяет вам полностью настроить сервер в соответствии с индивидуальными потребностями. Вы полностью контролируете каждый аспект настройки и можете вносить изменения по мере необходимости;
- Более глубокое понимание: При установке вручную вы получаете более глубокое представление о работе почтового сервера и его компонентов. Это может быть полезно при устранении неполадок и управлении сервером в будущем;
- Меньший размер: Установка без Docker может иметь меньший размер, поскольку она не требует использования дополнительных контейнеров и образов Docker.
Недостатки настройки почтового сервера вручную:
- Сложность настройки: Установка почтового сервера вручную может быть сложной и требовать более глубоких знаний в области системного администрирования и работы с конфигурационными файлами;
- Сложность масштабирования: При установке вручную может оказаться сложнее масштабировать почтовый сервер и управлять большим количеством пользователей или трафиком;
- Больше времени и ресурсов: Установка и настройка почтового сервера вручную может занять больше времени и потребовать больше ресурсов, поскольку вам нужно будет самостоятельно управлять каждым аспектом процесса.
Выбор между установкой почтового сервера вручную или с помощью Docker зависит от ваших конкретных потребностей и уровня опыта. Docker может быть более удобным решением для быстрой установки сервера и управления им, особенно если вам необходимо масштабировать и изолировать контейнеры. Однако ручная установка может обеспечить большую гибкость и глубокое понимание того, как работает сервер.
## Требования к установке
- Доменное имя;
- Docker CLI >= версии 20
- Docker Compose >= версии 2.0;
- Права администратора;
- Configured FQDN;
- SSL сертификат.
## Продолжим настройку:
**Очень важная часть!** Если вы хотите использовать только **IPv4** или просто не имеете интерфейсов с **IPv6**-адресом, вам нужно отключить параметры, иначе nginx или вебчасть не запустятся из-за проблемы с подключением по этим адресам. Прежде всего, укажите все IP для режима прослушивания в системе, для этого перейдите в файл mailcow.conf и добавьте параметр BIND, который поможет определить диапазон адресов:
```
nano /main/mail/mailcow-dockerized/mailcow.conf
```
Скриншот №1 — IP для работы сервиса
```
HTTP_BIND=0.0.0.0
HTTPS_BIND=0.0.0.0
```
Установите значение в двух строках равное 0.0.0.0, для сервера nginx укажите использование IP адресов. Для сохранения файла нажмите комбинацию клавиш **Ctrl+O** и **Ctrl+ X** для выхода из текстового редактора. Теперь измените конфигурацию Docker в соответствии с требованиями и найдите нужную строку, нажав комбинацию кнопок для поиска **Ctrl + W** и введите значение **enable_ipv6: true**. Измените его на **false**, как показано на рисунке ниже:
```
nano docker-compose.yml
```
Скриншот №2 — Модификация конфига
```
enable_ipv6: false
```
Скриншот №3 — Конфигурация Docker
Эта настройка позволяет использовать данное решение без добавления интерфейса IPv6.
Затем нам нужно отключить контейнер mailcow-nat, для этого перейдите в каталог и создайте файл override:
```
nano /main/mail/mailcow-dockerized/docker-compose.override.yml
```
Это создаст и откроет файл в соответствующем каталоге, затем запишите следующую конфигурацию:
```yaml
version: '2.1'
services:
ipv6nat-mailcow:
image: bash:latest
restart: "no"
entrypoint: ["echo", "ipv6nat disabled in compose.override.yml"]
```
Скриншот №4 — Отключаем NAT для IPv6
В журнале этого контейнера мы не увидим логов о работе:
```bash
docker logs -f ipv6nat-mailcow
```
Запускаем всю систему, ждем пока создастся весь контейнер и затем очищаем остатки конфига IPv6:
```
cd /main/mail/mailcow-dockerized && docker compose up -d
```
Скриншот №5 — Запускаем контейнеризацию
Это займет некоторое время на установку и проверку всей системы, но когда она завершится, вам нужно будет открыть файл для отключения настроек.
Измените конфигурационный файл **data/conf/unbound/unbound.conf**, установив для параметра **do-ip6** значение **no**:
```
nano /main/mail/mailcow-dockerized/data/conf/unbound/unbound.conf
```
Скриншот №6 — Отключаем IPv6
Теперь перезапустите контейнер, который мы модифицировали:
```bash
docker compose restart unbound-mailcow
```
Перейдите к следующему файлу в каталоге **data/conf/postfix/** и создайте файл с настройками:
```
nano /main/mail/mailcow-dockerized/data/conf/postfix/extra.cf
```
И войти с сохранением необходимого файла:
```
smtp_address_preference = ipv4
inet_protocols = ipv4
```
Скриншот №7 — Выбираем IPv4
Для применения новых настроек необходимо перезагрузить всю систему:
```bash
docker compose restart
```
Скриншот №8 — Перезапуск контейнеров
Для следующего шага нам нужно удалить все упоминания IPv6 в оставшихся файлах, для этого введите команду ниже:
```
sed -i '/::/d' ./data/conf/nginx/listen_*
sed -i '/::/d' ./data/conf/nginx/templates/listen*
sed -i '/::/d' ./data/conf/nginx/dynmaps.conf
sed -i 's/,\[::\]//g' ./data/conf/dovecot/dovecot.conf
sed -i 's/\[::\]://g' ./data/conf/phpfpm/php-fpm.d/pools.conf
```
Скриншот №9 — Очистка строк от IPv6
Для корректной работы всех систем проверки записанных DNS записей с Linux машины, установите **dnsutils** командой ниже:
```bash
apt install dnsutils
```
Скриншот №10 — Установка dnsutils
И сделайте запрос к NS-серверу, например, так:
```
dig vdushu.space && dig test.vdushu.space
```
По умолчанию dig предоставляет вам различную информацию о DNS, такую как время запроса, IP-адрес, связанный с доменом, и дополнительные записи DNS. Для конкретного запроса вам нужно использовать флаг -t следующим образом:
```
dig -t MX vdushu.space
```
Символ @ определяет, какой DNS-сервер будет искать доменное имя:
```
dig vdushu.space @8.8.8.8
```
Скриншот №11 — Запрос к DNS серверу
Ответ будет в разделе **Answer**. Для более надежного соединения настройте перенаправление в конфигурации Nginx, нам нужно перейти в каталог **data/conf/nginx/redirect.conf** :
```
nano /main/mail/mailcow-dockerized/data/conf/nginx/redirect.conf
```
**Важно!** Не забудьте закомментировать строку с IPv6 — это важно для корректной работы Nginx:
```css
server {
root /web;
listen 80 default_server;
#listen [::]:80 default_server;
include /etc/nginx/conf.d/server_name.active;
if ( $request_uri ~* "%0A|%0D" ) { return 403; }
location ^~ /.well-known/acme-challenge/ {
allow all;
default_type "text/plain";
}
location / {
return 301 https://$host$uri$is_args$args;
}
}
```
Этот код поможет перенаправить весь трафик по протоколу https и зашифровать его независимо от запроса клиента!
Скриншот №12 — Перенаправление траффика
Прекрасно! Мы установили всю систему, [в следующем эпизоде серии инструкций](https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11-chast-3/) мы рассмотрим, как настроить защиту от СПАМ почты для почтового сервиса, и введем новые DNS-записи для наших серверов, зайдем через удобные клиенты и рассмотрим насколько валидны наши сообщения!
## Вывод
Вторая часть из серии была посвящена установке и настройке почтового сервера с использованием контейнеризации приложений вместо ручной установки. В ней были отмечены преимущества ручной установки, такие как гибкость конфигурации, более глубокое понимание компонентов сервера и потенциально меньший размер. Однако были упомянуты и недостатки, включая сложность конфигурации, трудности масштабирования и повышенные требования к времени и ресурсам.
https://serverspace.uz/support/help/kak-nastroit-brandmauer-s-ufw-na-ubuntu.mdЗащитите сервер на Ubuntu с помощью UFW! Узнайте, как создать защищенную сеть с помощью современных межсетевых экранов и IP-таблиц
## Введение
Настройка защищенной сети с использованием современных межсетевых экранов и таблиц IP-адресов может быть сопряжена с определенными трудностями. Вот несколько трудностей, с которыми вы можете столкнуться:
- Сложность: настройка и управление современными межсетевыми экранами и IP-таблицами может быть сложной, особенно для пользователей, не знакомых с концепциями сетевой безопасности. Понимание синтаксиса, правил и политик, связанных с этими инструментами, требует технических знаний и хорошего понимания сетевых протоколов;
- Управление правилами: создание и управление правилами межсетевого экрана и таблицами IP-адресов может быть сложной задачей, особенно если речь идет о большом количестве правил или сложных сетевых конфигурациях. Очень важно тщательно разрабатывать и поддерживать правила, чтобы обеспечить надлежащую безопасность сети, не блокируя легитимный трафик и не оставляя открытых уязвимостей;
- Совместимость: обеспечение совместимости между современными межсетевыми экранами, IP-таблицами и сетевой инфраструктурой может оказаться непростой задачей. Различные межсетевые экраны имеют различные функции, синтаксис и конфигурации, что может потребовать дополнительных исследований или устранения неполадок для их интеграции в конкретную сетевую среду;
- Мониторинг и обслуживание: постоянный мониторинг и обслуживание межсетевого экрана и IP-таблиц необходимы для поддержания безопасности сети. Регулярное обновление правил, просмотр журналов и анализ сетевого трафика могут отнимать много времени, но очень важны для выявления и снижения потенциальных рисков безопасности.
Постоянное знакомство с передовыми методами обеспечения безопасности и поиск соответствующих ресурсов или документации может помочь сориентироваться в сложностях, связанных с эффективной защитой сети. В этой инструкции мы предлагаем решение для начинающих пользователей, знакомящихся с сетевой безопасностью.
## Требования
- Административные права;
- Ubuntu версии 20.04 или выше;
- Начальные знания об ОС;
- Подключение к Интернету.
## Установка
Прежде всего, необходимо обновить индекс пакетов во всей системе, так как наша ОС могла устареть:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление пакетов
После этого проводится инвентаризация всех интерфейсов и сетевых подключений в системе для составления плана. Как построить более надежный и безопасный периметр нашей ОС и прилегающей сети?
Классическая схема представляет собой две основные концепции: запретить весь трафик по причине человеческого фактора, объясняющий уязвимости и слабые места, которые не устраняют, и сверх этого разрешить весь легитимный трафик на соединения и запросы.
Рассмотрим план и выполним пошаговую настройку.
Установите все необходимые для вашей системы пакеты с помощью приведенной ниже команды:
```bash
apt install ufw && sudo ufw status
```
Скриншот №2 — Установка
Подтвердите установку пакета нажатием кнопки **Y**. Дождитесь окончания всего процесса, после чего сможем приступить к настройке нашей системы:
```bash
apt install net-tools -y && ip a
```
Скриншот №3 — Интерфейсы
На экране выше мы видим все интерфейсы нашей системы, которые должны быть защищены правилами UFW.
## Конфигурирование и защита сети
У нас есть внутренняя — enp0s5 и внешняя — enp0s6 сети. Прежде чем добавить некоторые правила, следует учесть, что каждое новое правило с условиями имеет более высокий приоритет, чем предыдущие. Например, мы добавляем запрещающее правило для всех интерфейсов, а затем разрешаем подключение по одному типу протокола. Это правило будет добавлено, и в результате мы получим сеть с запрещенными соединениями вообще, с исключением одного типа протокола.
Запретим весь трафик с помощью следующей команды:
```
sudo ufw enable
```
```
sudo ufw default deny incoming && sudo ufw default deny outgoing
```
Для настройки правил вначале включаем утилиту и устанавливаем правила по умолчанию для всех интерфейсов.
Затем для локального процесса нам необходимо разрешить внутренний трафик между основными компонентами ОС:
```
sudo ufw allow from 127.0.0.1 && sudo ufw allow from 10.0.0.0/24
```
Скриншот №4 — Разрешить localhost
Необходимо указать диапазон IP-адресов для внутренней сети, что позволит обрабатывать весь трафик от устройств в этой области.
Далее мы разрешаем исходящий трафик с машины и запрещаем входящий из WAN:
```
sudo ufw default allow outgoing
```
Скриншот №5 — Разрешить трафик
Разрешить трафик ping по протоколу SSH:
```
ufw allow 22/tcp
```
Скриншот №6 — SSH порт
Разрешить DNS-соединение:
```
ufw allow 53
```
Скриншот №7 — DNS — порты
Разрешить HTTP и HTTPS-соединение для пользователей сети:
```
ufw allow 80 && ufw allow 443
```
Скриншот №8 — HTTP и HTTPS — порты
Проверьте весь трафик с помощью команды тестирования:
```
ufw deny in 80 && curl -p 80 google.com
```
Скриншот №9 — Проверка
Как видно, все правила имеют право блокировать входящий и исходящий трафик. Для удаления этих правил введите:
```
ufw delete deny in 80
```
Скриншот №10 — Удаление правила
Это минимальная настройка для вашего сервера, которая может защитить от нелегитимного трафика, поступающего из глобальной сети.
## Правила отключения
Если у вас есть причина для сброса правил брандмауэра, вы можете воспользоваться действием reset в утилите ufw:
```
ufw reset
```
Скриншот №11 — Сброс правил
Есть также возможность отключения файрволла:
```
ufw disable
```
Скриншот №12 — Отключение файрволла
Кроме того, можно полностью удалить пакет с ПО:
```bash
apt purge ufw
```
Скриншот №13 — Удаление пакета
## Вывод
Настройка защищенной сети с помощью современных межсетевых экранов и IP-таблиц может быть сложной и трудной задачей, особенно для пользователей, не знакомых с концепциями сетевой безопасности. Она требует понимания синтаксиса, правил и политик, связанных с этими средствами, а также обеспечения совместимости с сетевой инфраструктурой. Постоянный мониторинг и сопровождение являются важнейшими условиями поддержания безопасности сети и снижения возможных рисков.
Для решения этих задач рекомендуется хорошо разбираться в концепциях сетевой безопасности или обращаться за помощью к профессионалам, имеющим опыт работы в области сетевой безопасности. Постоянное знакомство с передовыми методами обеспечения безопасности и использование соответствующих ресурсов и документации поможет эффективно справиться со всеми сложностями защиты сети.
Приведенные инструкции позволяют новичкам приобрести опыт и знания в области сетевой безопасности. Обновление системы, установка необходимых пакетов и настройка UFW (Uncomplicated Firewall) шаг за шагом помогут пользователям создать защищенную сеть. В инструкциях рассматриваются такие понятия, как запрет всего трафика, разрешение определенных протоколов и соединений, а также применение правил для входящего и исходящего трафика. Подчеркивается важность защиты внутренних и внешних интерфейсов, а также гибкость включения и отключения брандмауэра по мере необходимости.
https://serverspace.uz/support/help/kak-nastroit-vpn-server-wireguard-na-centos.mdПошаговый процесс установки и настройки WireGuard на сервер с CentOS. Генерация ключей для VPN и настройка файрволла и сетевой конфигурации
**WireGuard** — это приложение, создающее безопасную виртуальную частную сеть ([VPN](https://serverspace.uz/about/blog/chto-takoe-vpn/)), при этом оно достаточно простое в использовании и настройке. Программа использует надежные криптографические протоколы и алгоритмы для шифрования данных. Разработанная исключительно для ядра Linux, она может быть развернута и на Windows, macOS, FreeBSD, iOS, а так же Android.
В нашем случае для установки WireGuard мы будем использовать CentOS 8.3, предоставленный Serverspace
## Шаг 1. Установка сервера WireGuard на CentOS
Для начала скачаем последние обновления с помощью данных команд:
```bash
sudo yum update
```
```bash
sudo dnf update
```
Добавьте репозитории EPEL и Elrepo для установки модулей ядра и инструментов WireGuard.
```bash
sudo dnf install epel-release elrepo-release -y
```
Убедимся, что у нас включены репозиторий PowerTools, так как пакеты EPEL могут зависеть от пакетов из него:
```bash
sudo yum install 'dnf-command(config-manager)'
```
```bash
sudo yum config-manager --set-enabled PowerTools
```
Прежде чем мы сможем установить модуль ядра WireGuard, включим его официальный репозиторий:
```bash
sudo yum copr enable jdoss/wireguard
```
Теперь установим WireGuard:
```bash
sudo yum install wireguard-dkms wireguard-tools
```
## Шаг 2. Генерация закрытого и открытого ключей
WireGuard работает путем шифрования соединения с помощью пары криптографических ключей. Пара ключей используется путем передачи открытого ключа другой стороне, которая затем может зашифровать свое сообщение таким образом, что оно может быть расшифровано только с помощью соответствующего закрытого ключа. Для обеспечения безопасности двусторонней связи каждая сторона должна иметь собственные закрытый и открытый ключи, так как каждая пара обеспечивает только односторонний обмен сообщениями.
Перед генерацией пары ключей перейдите в каталог
```
cd /etc/wireguard
```
Установите разрешение на эту директорию:
```
umask 077
```
Чтобы сгенерировать пару ключей, введите следующую команду:
```
wg genkey | tee private.key | wg pubkey > public.key
```
Чтобы просмотреть сгенерированные ключи, воспользуйтесь командами:
```
ls -l privatekey publickey
```
```
sudo cat privatekey
```
Обязательно запишите этот ключ, он понадобиться нам далее.
```
sudo cat publickey
```
Также, обязательно запишите этот ключ, он понадобиться нам далее.
## Шаг 3. Настройка серверной конфигурации
Чтобы начать настройку сервера WireGuard, перейдите в папку /etc/wireguard и создайте файл wg0.conf
```
sudo nano /etc/wireguard/wg0.conf
```
Добавьте в файл конфигурации следующие директивы и заполните данные созданными до этого ключами:
```
PrivateKey =
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PublicKey =
AllowedIPs = 10.0.0.2/32
```
Скопируйте закрытый ключ, который мы сгенерировали ранее, и вставьте его в PrivateKey.
Аналогично нужно сгенерировать пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в PublicKey.
Чтобы скопировать значение ключа, выполните следующую команду:
```
sudo cat /etc/wireguard/public.key
```
```
sudo cat /etc/wireguard/private.key
```
## Шаг 4. Настройка FireWall
По умолчанию firewall прекращает все коммуникации между внутренней (wg0) и общедоступной сетью (eth0).
Изменим это с помощью данных команд:
```
sudo firewall-cmd --add-interface=wg0 --zone=internal
```
```
sudo firewall-cmd --permanent --zone=internal --add-masquerade
```
## Шаг 5. Запуск WireGuard и включение его при загрузке
Теперь мы готовы к запуску сервера, для запуска WireGuard мы используем wg-quick и указываем имя нового интерфейса:
```
wg-quick up wg0
```
Если конфигурация выполнена идеально, вы увидите следующий экран
Чтобы проверить статус работы сервера WireGuard введите:
```
wg show
```
Поздравляю, WireGuard VPN успешно поднят!
https://serverspace.uz/support/help/ustanovka-ansible-centos.mdAnsible – это мощный инструмент автоматизации, который позволяет управлять множеством серверов одновременно. В инструкции разберем установку Ansible на CentOS достаточно проста и занимает всего несколько шагов
Ansible — ПО для автоматизации, которое позволяет управлять множеством хостов одновременно, менять конфигурации, развертывать приложения и многое другое. В этой статье рассмотрим установку Ansible на CentOS, а также будем использовать его в целях автоматизации рутины.
## Обновление системы
Перед установкой Ansible необходимо обновить систему. Для этого выполните следующую команду:
```bash
sudo yum update
```
## Установка EPEL-репозитория
Ansible требует наличия EPEL-репозитория для установки. Чтобы его установить, выполните следующую команду:
```bash
sudo yum install epel-release
```
## Установка Ansible
После установки EPEL-репозитория можно приступать к установке Ansible. Выполните следующую команду:
```bash
sudo yum install ansible
```
## Проверка установки
После установки Ansible можно проверить его работоспособность. Для этого выполните следующую команду:
```
ansible --version
```
Если все установлено правильно, то вы получите информацию о версии Ansible.
## Описание конфигурации
После установки будет созданы конфигурационные файлы, которые находятся в расположениях:
- /etc/ansible/hosts — спсиок хостов для управления
- /etc/ansible/ansible.cfg — непосредственно настройки ansible
Чтобы начать использовать Ansible, необходимо настроить хосты, на которых будут выполняться задачи. Для этого необходимо создать файл inventory, в котором указать список хостов.
Структура файла :
```
server1
server2
db1
db2
```
Дальнейший шаг — создание так называемого плэйбука. Playbook — файл, описывающий порядок действий, которые необходимо выполнить на хостах. Пример:
```bash
- hosts: mc
tasks:
- name: Install mc
yum:
name: mc
state: present
- hosts: database
tasks:
- name: Install postgresql
yum:
name: postgresql-server
state: present
```
Этот playbook устанавливает файловый менеджер mc на всех хостах из группы mc и postgresql на всех хостах из группы database.
Запускается так:
```
ansible-playbook -i inventory playbook.yml
```
Ansible выполнит задачи, описанные в playbook, на всех хостах, указанных в файле inventory.
Кроме установки пакетов и настройки конфигурации, Ansible может использоваться для автоматического развертывания приложений, управления пользователями и группами, копирования файлов и многих других задач. Для этого необходимо создать соответствующие playbook'и запустить их на нужных хостах.
## Вывод
Ansible – это мощный инструмент автоматизации, который позволяет управлять множеством серверов одновременно. Установка Ansible на CentOS достаточно проста и занимает всего несколько шагов. Ansible может использоваться для автоматизации различных задач, что позволяет значительно упростить администрирование серверов.
https://serverspace.uz/support/help/ogranichenie-prav-dostupa-polzovatelya-linux-chast-2.mdВо второй части статьи, продолжаем рассматривать способы ограничения прав доступа пользователей в операционной системе Linux.
Linux предлагает многопользовательскую среду**, которая позволяет нескольким пользователям** входить в систему и работать с ней одновременно. Однако не всем пользователям требуется равный доступ к системным ресурсам.
Чтобы решить эти проблемы, администраторы могут использовать различные методы для ограничения разрешений пользователей, гарантируя, что каждый пользователь ** имеет доступ только к ресурсам, необходимым ** для выполнения своих задач. Один из таких вариантов программного обеспечения, который может быть использован для этой цели, рассматривается в данной инструкции.
## Программное обеспечение
Ограничение прав пользователей включает в себя настройку параметров безопасности различных конфигурационных файлов: пользователей, групп пользователей или процессов. Это можно сделать с помощью встроенных системных разрешений, групп пользователей или инструментов**, таких как AppArmor**. Системное разрешение предоставляет доступ к определенным субъектам информационных систем.
Такие возможности, как запись, чтение и выполнение доступа к объекту файловой системы. AppArmor и другое программное обеспечение могут быть модулями безопасности, которые предоставляют услуги безопасности через подмножество системы MAC concept и configuration process.
## Установка и использование
Перед использованием основной утилиты обновите свою систему:
```bash
sudo apt update -y && sudo apt upgrade -y
```
Скриншот №1 — Обновление
Основные компоненты модуля security уже встроены в сервер Debian. Однако ресурсы управления и инструменты вам нужно скачивать отдельно. Абсолютно то же самое с профилями, установка вручную:
```bash
sudo apt install apparmor-utils apparmor-profiles -y
```
Скриншот №2 — Установка
Давайте убедимся, что все работает правильно, и выполним следующую команду:
```
sudo apparmor_status
```
Скриншот №3 — Статус
Для более гибкой настройки мы можем использовать профиль, созданный сообществом и разработчиками, они помогают быстро выполнить настройку для определенных задач. Итак, чтобы открыть этот профиль, напишите команду:
```
sudo ls -l /usr/share/apparmor/extra-profiles/ |head
```
Скриншот №4 — Лист профилей
Мы видим более 100 готовых к использованию профилей и можем настроить их:
```
sudo cp -r /usr/share/apparmor/extra—profiles/ /etc/apparmor.d/
```
Скриншот №5 — Активировать профиль
Скопируйте шаблон для рабочей папки и активируйте его. Для более подробной настройки загляните в профиль, откройте с помощью команды:
```bash
sudo apt install nano -y && nano /etc/apparmor.d/bin.ping
```
Скриншот №6 — Редакция конфигурации
Нажмите Ctrl + O для сохранения и Ctrl + X для выхода. Рассмотрим другой файл, чтобы у них были простые настройки конфигурации. Давайте взглянем на параметры:
- **profile ping /{usr/,}bin/{,iputils—}ping flags=(complain)**. При этом объявляется новый профиль AppArmor с именем ping, который применяется к команде ping, расположенной по адресу **/bin/ping** или **/usr/bin/ping** или **/usr/bin/iputils—ping**. Параметр flags=(complain) указывает AppArmor регистрировать нарушения этого профиля вместо того, чтобы немедленно применять их.
- **#include **. Включает в себя базовые абстракции для системы, которая предоставляет общие шаблоны доступа и правила для путей к файлам, возможностей и других ресурсов;
- **#include **. Включает в себя правила доступа к консольным устройствам;
- **#include **. Ввключает в себя правила доступа к базам данных служб имен, таким как DNS;
Изменяя эти параметры, вы можете более точно и гибко настроить систему в соответствии с вашей конкретной задачей.
Выполним проверку разрешений для команды ping:
Скриншот № 7 — Тест
## Вывод
Следуя шагам, описанным в этой статье, администраторы могут создавать профили AppArmor и файлы журналов, анализировать их и вводить ограничения на разрешения пользователей. В конечном счете, внедрение этих методов приведет к созданию более безопасной и эффективной системы Linux.
https://serverspace.uz/support/help/ustanovka-i-ispolzovanie-openvas-gvm-na-ubuntu.mdУзнайте, как установить OpenVAS (GVM) в Ubuntu. Повысьте безопасность вашей системы, настроив мощный сканер уязвимостей.
Сканеры уязвимостей сетевых служб — это инструменты, предназначенные для выявления слабых мест в системе безопасности в критических информационных инфраструктурах или сфер КИИ, таких как энергетика, водоснабжение, транспорт и производство. Эти системы часто тесно взаимосвязаны и взаимозависимы, в них используются запатентованные технологии и протоколы, которые, возможно, изначально не были разработаны с учетом соображений безопасности. Кроме того, многие из этих систем используются десятилетиями, и замена их может оказаться сложной или дорогостоящей.
Утилитарные сканеры уязвимостей позволяют выявить потенциальные уязвимости в критически важных системах и предоставляют рекомендации по их устранению. Они могут помочь предотвратить кибератаки, которые могут нанести значительный ущерб физической инфраструктуре, нарушить работу основных служб и даже создать угрозу общественной безопасности.
## Программное обеспечение — OpenVAS
В качестве решения этой проблемы доступно несколько типов программного обеспечения. OpenVAS является отличным решением, поскольку он отвечает всем необходимым требованиям для создания быстрой, простой в использовании и понятной в управлении системы.
## Установка системы
Перед использованием утилиты обновите систему:
```bash
sudo apt update -y && sudo apt dist-upgrade -y
```
Скриншот №1 — Обновление
Необходимо войти в Docker Hub.[Зарегистрируйтесь на сайте](https://hub.docker.com/), заполните все необходимые поля и подтвердите почту, письмо на которую вы получите после регистрации:
Скриншот №2 — Сайт
Установите программное обеспечение виртуализации для запуска контейнера:
```bash
apt install docker.io
```
Скриншот №3 — Установка Docker
Нажмите кнопку для подтверждения процесса установки. Затем вам нужно войти в Docker Hub через консоль, используя команду:
```bash
docker login
```
Скриншот №4 — Логин Docker
Введите свои регистрационные данные и дождитесь, пока Docker подтвердит успешный вход в систему, который обеспечит доступ к контейнеру в репозиториях. Теперь нужно скачать контейнер из репозиториев:
```bash
docker pull mikesplain/openvas
```
Скриншот №5 — Docker загрузка
Объем данных в файле довольно большой, пожалуйста, наберитесь терпения в процессе загрузки! После этого запустите контейнер с параметрами:
```bash
docker run -d -p 443:443 --name openvas mikesplain/openvas
```
Скриншот №6 — Запуск контейнера
Начнется скачивание контейнера из реестра docker и его запуск. Пожалуйста, обратите внимание, что запуск Openvas может потребовать значительного времени при сканировании NVT и восстановлении баз данных, поэтому, подождите конца загрузки. Обнаружив сообщение в журналах, вы можете перейти к доступу к веб—интерфейсу пользователя, открыв **https://localhost**.
Для входа в систему используйте эти** учетные данные**:
```yaml
Username: admin
Password: admin
```
Для этого программного обеспечения нам необходимо установить графическую оболочку Gnome:
```bash
apt install gnome-core
```
Скриншот №7 — Установка оболочки
Перезагрузите сервер и войдите в систему через веб—консоль. Откроется панель входа в систему, где нужно ввести учетные данные:
Скриншот №8 — Окно входа
После этого перейдите на панель приложения и выберите нужный браузер для поиска по URL:
Скриншот №9 — Браузер
Введите в поле поиска **URL—адрес**:
```
https://localhost
```
Скриншот №10 — Сканер уязвимостей
Введите учетные данные, которые мы упомянали выше в этой инструкции. Теперь у вас есть доступ к современному сканеру уязвимостей, который поможет создать более безопасную систему!
Скриншот №11 — Панель управления
Если вы хотите сменить пароль для входа в систему, для начала остановите контейнер и потом запустите контейнер с процессом смены пароля:
```bash
docker stop $(docker ps -a -q)
```
```bash
docker run -d -p 443:443 -e OV_PASSWORD=securepassword41 --name openvas mikesplain/openvas
```
И выберите сложный пароль с буквами, цифрами и специальными символами.
## Вывод
Сканеры уязвимостей сетевых служб играют решающую роль в выявлении потенциальных слабых мест в системе безопасности критически важных инфраструктурных систем, таких как энергетика, водоснабжение, транспорт и производство. Помогают в предотвращении кибератак, которые могут нанести значительный ущерб физической инфраструктуре, нарушить работу основных служб и даже создать угрозу общественной безопасности. **OpenVAS** — это идеальный выбор программного обеспечения для создания быстрой, простой в использовании и понятной в управлении системы. Следуя шагам, описанным в этой инструкции, можно легко установить и использовать **OpenVAS** для защиты своих критически важных инфраструктурных систем от киберугроз. Кроме того, рекомендуется изменить пароль по умолчанию на более сложный, содержащий буквы, цифры и специальные символы для повышения безопасности.
https://serverspace.uz/support/help/kak-monitorit-mongodb-s-pomoshhyu-grafana-i-prometheus-na-ubuntu.mdПравильная настройка мониторинга ресурсов MongoDB на Ubuntu имеет решающее значение для управления компьютерными системами, серверами и сетями
Мониторинг ресурсов является важным аспектом управления любой системой, будь то компьютерная система, сеть или сервер. Отслеживая ресурсы, мы получаем информацию о том, как работают системы, выявляем потенциальные проблемы до того, как они станут критическими, и оптимизируем использование ресурсов для повышения производительности и снижения затрат.
Вот несколько причин, для чего нужен мониторинг ресурсов:
- Оптимизация производительности — мониторинг ресурсов помогает выявить узкие места в производительности, чтобы администраторы могли предпринять действия для повышения производительности системы. Например, если мы заметим, что загрузка процессора стабильно высока, мы можем обновить аппаратное обеспечение или скорректировать распределение рабочей нагрузки, чтобы более эффективно сбалансировать нагрузку.
- Планирование мощностей — мониторинг ресурсов предоставляет информацию о том, какой объем мощностей используется, позволяя администраторам принимать решения о том, когда следует добавить больше ресурсов. Это помогает гарантировать, что система обладает достаточной производительностью для удовлетворения потребностей.
- Контроль затрат — мониторинг ресурсов помогает отслеживать использование ресурсов, что может помочь организациям определить возможности для снижения затрат за счет оптимизации использования.
- Ресурсы мониторинга безопасности также могут помочь обнаружить потенциальные угрозы безопасности, обеспечивая видимость необычных действий или шаблонов, которые могут указывать на нарушение или другой несанкционированный доступ.
В целом, мониторинг ресурсов является важным инструментом для обеспечения оптимальной производительности, масштабируемости и безопасности ИТ-систем.
Программное обеспечение для установки
В этой инструкции мы будем использовать связку ПО для создания системы мониторинга, оповещения и визуализации. MongoDB, Graphana, Prometheus представляют интересное решение для реализации этой системы. Graphana - это система, которая включает в себя множество модулей и форм, что очень удобно. Prometheus играет не менее важную роль: мониторинг, оповещение и передача данных. MongoDB - это база данных, с главной функцией хранения данных. Приступим!
## Установка и эксплуатация системы мониторинга
Перед использованием утилиты обновите систему:
```bash
sudo apt update -y && sudo apt dist-upgrade -y
```
Скриншот №1 — Обновление
Для загрузки контейнера вам необходимо зарегистрироваться на DockerHub, пожалуйста, заполните все необходимые поля и проверьте электронную почту для подтверждения:
Скриншот №2 — Сайт
На следующем шаге загрузите все зависимости и программное обеспечение:
```bash
apt install docker.io
```
Скриншот №3 — Установка Docker
Затем нам нужно войти в учетную запись на сервере с помощью приведенной ниже команды:
```bash
docker login
```
Скриншот №4 — Вход в репозиторий
Вы не увидите вводимый пароль, но все буквы и символы будут учтены, при проверке! Нам нужно загрузитбь все контейнеры, в которых находятся библиотеки и скомпилированное системное приложение:
```bash
docker pull grafana/grafana && docker pull prom/prometheus && docker pull ranchercharts/bitnami-mongodb-exporter:0.8.0-debian-9-r4
```
Скриншот №5 — Загрузка контейнеров
После этого нам нужно построить зависимости между базой данных и системой мониторинга, создадим конфигурационный файл в папке:
```
cd / && mkdir /conf && nano conf/prometheus.yml
```
Скриншот №6 — Создание папки
Введите в конфигурационные файлы следующие параметры:
```yaml
global:
scrape_interval: 15s # how often to scrape targets by default
evaluation_interval: 15s # how often to evaluate rules by default
scrape_configs:
- job_name: 'mongodb-exporter'
scrape_interval: 5s
static_configs:
- targets: ['mongo-exporter:9216']
```
Скриншот №7 — Конфигурация
В этих параметрах мы указали MongoDB и порт для связи и экспорта данных. Нажмите комбинацию клавиш **Ctrl + O** для сохранения конфигурации и **Ctrl + X** для выхода из текстового редактора. Теперь запустите контейнер с модулями:
```bash
sudo docker run -d --name=grafana -p 3000:3000 grafana/grafana
```
```bash
sudo docker run -d --name=prometheus -p 9090:9090 prom/prometheus
```
```bash
sudo docker run -d --name mongodb-exporter -p 9216:9216 ranchercharts/bitnami-mongodb-exporter:0.8.0-debian-9-r4
```
Скриншот №8 — Запуск контейнеров
В выходных данных мы увидим идентификатор для каждого обрабатываемого контейнера. Давайте проверим это:
```bash
docker ps -a
```
Скриншот №9 — Процессы Docker
Если система все корректно установит, то мы сможем продолжить и установить графическую оболочку для системы с помощью команды:
```bash
apt-get install ubuntu-gnome-desktop
```
Скриншот №10 — Установка Gnome
Наберитесь терпения и дождитесь окончания установки всей оболочки, а затем перезагрузите систему с помощью команды:
```
reboot
```
После этого сервер перезагрузится и мы увидим панель для входа в систему, введите свои учетные данные:
Скриншот №11 — Панель входа
Для наших целей нам нужно установить браузер Firefox и дождаться окончания установки:
```bash
sudo apt install firefox
```
Скриншот №12 — Установка FireFox
Запустите браузер на рабочем столе для следующего шага:
Скриншот №13 — Запуск FireFox
Перейти к http://localhost:3000 в строке поиска. Поэтому URL откроется интерфейс Graphana, введите логин и пароль в соответствии с настройками по умолчанию Login:admin и Password:admin. Введите учетные данные:
Скриншот №14 — Веб интерфейс
Хорошо, мы зашли. Перейдите на вкладку Администрирование и выберите Добавить данные, затем вы можете ввести URL для Prometheus **http://localhost:9090**, как показано ниже:
Скриншот №15 — Главное окно
Нажмите на кнопку **Add data source**:
Скриншот №16 — Источник данных
Проверьте сообщение над этим источником, оно должно всплыть в правом верхнем углу. Система была установлена!
Скриншот №17 — Подтверждение
## Вывод
В заключение следует отметить, что мониторинг ресурсов имеет решающее значение для эффективного управления любой системой. Отслеживая такие ресурсы, как загрузка центрального процессора, пропускная способность и стоимость, организации могут оптимизировать производительность своих ИТ-систем и выявлять потенциальные угрозы безопасности. В этой статье мы рассмотрели, как настроить систему мониторинга ресурсов с использованием таких инструментов, как Prometheus, MongoDB и Grafana. Следуя инструкциям, приведенным в этом руководстве, вы сможете легко установить и использовать эти инструменты для создания эффективной системы мониторинга, оповещения и визуализации для вашей организации. Установив правильную систему, вы можете гарантировать, что ваша ИТ-инфраструктура будет работать бесперебойно, надежно и с максимальной эффективностью.
https://serverspace.uz/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-4.mdУзнайте, как настроить надежную систему защиты от DDoS-атак в Debian с помощью системы IPS/IDS из нашего подробного руководства
[В предыдущей инструкции](https://serverspace.uz/support/help/kak-nastroit-sistemu-zashhity-ot-ddos-atak-v-debian-chast-3/) мы углубились в концепцию автоматизации создания профилей сетевых данных, которая критически необходима, при решении сложных и неопределенных сценариев. Это должно помочь системе использовать нормальный трафик профиля для идентификации легитимных пользователей и запросов. Но нам нужно автоматизировать использование этого профиля, потому что вручную в большой сетевой инфраструктуре возможность контролировать и фильтровать трафик довольно мала. В этой инструкции мы рассмотрим установку системы IPS/IDS: быстрое развертывание. Давайте приступим!
## Программное обеспечение
Для наших целей мы будем использовать довольно популярное решение с открытым исходным кодом, которое обеспечивает большую степень стабильности при развертывании, аудит добавит уверенности в безопасности программного обеспечения. Связка Snort и Snorby представляет собой основной модуль с IDS/IPS и веб—интерфейсом в соответствующем порядке. Включив Snort в свое развертывание, вы получаете его широкие возможности обнаружения на основе правил. Snort исследует сетевой трафик и сравнивает его с заранее определенным набором правил для выявления потенциальных угроз безопасности, таких как вредоносное ПО, сетевые атаки или нарушения политики. Он может активно блокировать или предупреждать о подозрительной активности, обеспечивая дополнительный уровень безопасности вашей системы.
## Установка и развертка системы IPS/IDS
В начале напишите эту команду для обновления индекса пакета :
```bash
sudo apt update –y && sudo apt upgrade –y
```
Скриншот №1 — Обновление
Все пакеты и путь к утилите будут обновлены, но обратите внимание на выбор команды для обновления. В примере она менее стабильна, чем upgrade, что выбирать, решать вам. На следующем этапе установите Docker, об этой утилите в двух словах: скомпилированное приложение. Вам не нужно искать репозитории с устаревшими библиотеками и вручную прописывать пути для подключения различных модулей в вашей системе. Быстрое развертывание и удобное использование будет обеспечено:
```bash
sudo apt install docker.io
```
Скриншот №2 — Установка Docker
После этого проверьте, как завершилась установка и как был запущен процесс с помощью приведенной ниже команды:
```bash
systemctl status docker
```
Скриншот №3 — Статус Docker
Ниже сводной информации мы можем увидеть журнал процесса, убедитесь, что все пакеты в порядке, как на картинке выше! Далее нам нужно войти в репозиторий Docker и зарегистрироваться на сайте:
Скриншот №4 — Сайт
Введите все необходимые учетные данные и подтвердите свой email, затем войдите на сервер с помощью команды:
```bash
docker login
```
Screenshot №5 — Login
Когда вы введете пароль, вы не увидите никаких данных, только логин. Теперь мы можем приступить к извлечению или загрузке контейнера Docker. Процесс довольно прост. Введите команду ниже:
```bash
docker pull ciscotalos/snort3
docker pull polinux/snorby
```
Скриншот №6 — Загрузка контейнеров
Однако для нормальной работы системы нам также необходима база данных, которая будет использовать POST и GET для информации для нашей системы. Давайте установим ее:
```bash
docker pull million12/mariadb
```
```bash
docker run \
-d \
--name snorby-db \
-p 3306:3306 \
--env="MARIADB_USER=admin" \
--env="MARIADB_PASS=admin" \
million12/mariadb
```
Скриншот №7 — Запуск базы данных
В строке укажите логин и пароль пользователя, введите свои учетные данные и сохраните в защищенной папке! Затем запустите контейнер с главным модулем:
```bash
docker run --name snort3 -h snort3 -u snorty -w /home/snorty -d -it ciscotalos/snort3 bash
```
```bash
docker run \
-d \
--name snorby \
-p 3000:3000 \
--env="DB_ADDRESS=localhost:3306" \
--env="DB_USER=admin" \
--env="DB_PASS=admin" \
polinux/snorby
```
После запуска этого компонента вы увидите следующий вывод в командной строке:
```bash
docker exec -it snort3 bash
```
Скриншот №8 — Запуск bash для IDS/IPS
После этого вы увидите оболочку bash, которую можно использовать для настройки IDS/IPS. Вы можете использовать обычный профиль трафика, который мы создавали в течение семи дней, и установить параметры в соответствии с ним или вы можете использовать примеры безопасности. Для выхода в bash-оболочку контейнера необходимо использовать команду:
```
exit
```
Затем нам нужно установить графическую оболочку для использования Snorby:
```bash
sudo apt install ubuntu-desktop
```
Скриншот №9 — Скачивание Gnome
Откройте веб—консоль и введите данные для входа:
Скриншот №10 — Панель входа
Перейдите на сайт http://localhost:3000 и введите стандартные учетные данные Имя пользователя: snorby@snorby.org и Пароль: snorby.
Скриншот №11 — Панель управления
И система успешно установилась!
## Вывод
В данной инструкции мы внедрили IPS/IDS быстрой разверткой. Выбрали популярное решение с открытым исходным кодом, которое обеспечивает стабильность и аудит безопасности — связку Snort и Snorby. Snort, функционирующий как основной модуль с возможностями IDS/IPS, проверяет сетевой трафик на соответствие правилам для обнаружения потенциальных угроз безопасности и может активно блокировать или предупреждать подозрительную активности. Snorby дополняет Snort, предлагая веб—интерфейс для удобного управления.
Процесс установки включал обновление индекса пакетов и обновление операционной системы. Был установлен Docker, скомпилированное приложение, способствующее быстрому развертыванию и простой интеграции модулей. Статус службы Docker был проверен, чтобы убедиться в успешной установке. Затем из репозитория Docker были получены учетные данные для входа в систему, и были установлены контейнеры Docker для Snort, Snorby и необходимой базы данных Mariadb.
Для настройки базы данных был запущен контейнер с именем snorby-db с соответствующими переменными окружения для логина и пароля пользователя. Аналогичным образом были запущены контейнеры для Snort (snort3) и Snorby, причем Snorby был настроен на подключение к экземпляру MariaDB. Доступ к bash-оболочке контейнера Snort позволил дополнительно настроить систему IDS/IPS, используя индивидуальный профиль трафика. В следующей серии инструкций расскажем о защите локальных частей системы! Не пропустите!
https://serverspace.uz/support/help/sozdanie-api-tokena-zabbix.mdИнструкция по созданию API токенов в Zabbix для пользователей. Тестирование работы с Zabbix через API c токеном с помощью cURL
Zabbix - мощное решение с открытым исходным кодом для мониторинга, которое позволяет отслеживать и управлять IT инфраструктурой. API Zabbix обеспечивает программное взаимодействие с сервером Zabbix, облегчая автоматизацию и интеграцию. В этом руководстве мы расскажем вам, как создать токен API Zabbix, который предоставляет доступ к функционалу API.
## Создание токена
Откройте веб-интерфейс Zabbix в предпочитаемом веб-браузере и введите свои учетные данные для доступа к панели управления Zabbix.
Теперь у вас есть два способа: либо управлять токенами самостоятельно, либо предоставить пользователям Zabbix права на создание токенов для себя.
Если вы хотите создавать токены самостоятельно, вам потребуется перейти в "Administration" → "General" → "API tokens".
Здесь вы можете просматривать список созданных токенов для вашего Zabbix, отключать или включать их при необходимости или проверять дату истечения срока действия.
Нажмите "Создать токен API".
Заполните форму, нажмите "Добавить", и вы увидите что-то подобное:
Не забудьте сохранить токен в надежном месте, иначе вы не сможете увидеть его после создания.
Если вы хотите, чтобы пользователи могли создавать токены для себя, [отредактируйте разрешения их группы пользователей:](https://serverspace.ru/support/help/sozdanie-polzovatelej-grupp-polzovatelej-i-rolej-v-zabbix/) разрешите доступ к API и включите или отключите выбранные вами методы API в белый или черный список.
После этого пользователь сможет видеть или создавать свой токен в этом меню.
## Тестирование токена API Zabbix с помощью cURL:
Для тестирования токена API вы можете использовать cURL, командную строку для выполнения HTTP-запросов.
Откройте терминал или командную строку, чтобы выполнить команды cURL.
Используйте следующий шаблон команды cURL для выполнения API-запроса:
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" -d '{"jsonrpc":"2.0","method":"user.login","params":{"user":"YOUR_USERNAME","password":"YOUR_PASSWORD"},"id":1}' http://YOUR_ZABBIX_SERVER/api_jsonrpc.php
Обязательно замените следующие заполнители на вашу реальную информацию:
- YOUR_API_TOKEN: Замените это на сгенерированный вами токен
- YOUR_USERNAME: Укажите ваше имя пользователя Zabbix.
- YOUR_PASSWORD: Введите ваш пароль Zabbix.
- YOUR_ZABBIX_SERVER: Введите URL или IP-адрес вашего сервера Zabbix.
Скопируйте и вставьте сконструированную команду cURL в ваш терминал или командную строку. Нажмите Enter, чтобы выполнить команду.
Проверьте ответ, полученный от API Zabbix. Он должен указывать на успешность или неуспешность вашего API-запроса. Если все в порядке, вы получите что-то подобное:
## Заключение
Поздравляем! Вы успешно создали токен API Zabbix в Zabbix 6.4. Этот токен позволяет вам программно взаимодействовать с API Zabbix и использовать его возможности для автоматизации и интеграции. Используя такие инструменты, как cURL, вы можете протестировать токен API и проверить его функциональность. Изучайте обширную документацию API Zabbix, чтобы открыть для себя все возможности мониторинга и управления вашей IT-инфраструктурой.
https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11-chast-3.mdНастройка почты для домена: DKIM, SPF, DMARC и другие DNS—записи. Установка графического интерфейса пользователя (GUI) для электронной почты
## Введение
[В предыдущей части](https://serverspace.uz/support/help/nastroyka-pochtovogo-servera-debian-11-chast-2/) мы рассмотрели завершение установки серверного ПО, отключение IPv6-адресов в ряде настроек и перенаправление Nginx. На этой части инструкции мы завершаем серию установки почтового сервера: пропишем DKIM, SPF, DMARC и другие DNS-записи, настроим домен для почты! Но зачем это нужно? Почему современная и конкурентоспособная компания должна иметь GUI-интерфейс для работы с электронной почтой?
Графические среды важны для почты, поскольку они повышают удобство работы с ней и обеспечивают ряд преимуществ:
- Удобный интерфейс: Графические среды предлагают визуально привлекательный и интуитивно понятный интерфейс, который облегчает пользователям навигацию и взаимодействие со своими электронными письмами. Значки, кнопки, меню и другие графические элементы обеспечивают привычный и интерактивный способ управления сообщениями электронной почты и их упорядочивания;
- Эффективное управление электронной почтой: Графическая среда позволяет пользователям легко выполнять различные задачи, такие как составление, чтение, ответ, пересылка и удаление электронных писем. Интерфейс обычно включает в себя такие функции, как перетаскивание, контекстные меню и сочетания клавиш, которые упрощают управление электронной почтой и повышают общую производительность;
- Расширенная поддержка форматирования и мультимедиа: Графические среды электронной почты позволяют пользователям создавать электронные письма с расширенными возможностями форматирования, включая стили шрифтов, цвета, маркеры и выравнивание. Они также поддерживают прикрепление файлов, встраивание изображений, видео и другого мультимедийного контента непосредственно в сообщения электронной почты. Такая универсальность помогает пользователям создавать более визуально привлекательные электронные письма;
- Организационные инструменты: Графические интерфейсы электронной почты обычно предоставляют организационные инструменты, такие как папки, ярлыки, теги и функции поиска, облегчающие пользователям сортировку, категоризацию и поиск конкретных электронных писем. Эти функции упрощают организацию электронной почты и поиск по ней, особенно при работе с большим объемом сообщений.
В целом, графические среды для электронной почты обеспечивают визуально привлекательный, удобный для пользователя и эффективный способ управления, организации и общения с помощью электронной почты. Они повышают производительность, упрощают организацию электронной почты и предлагают пользователям более привлекательный и настраиваемый интерфейс.
## Требования к установке
- Доменное имя;
- Docker CLI >= версии 20
- Docker Compose >= версии 2.0;
- Права Администратора;
- SSL сертификат.
## Конфигурация:
Зайдите в любой браузер на другой машине и проверьте, что ваша веб—часть электронной почты работает корректно! Если у вас возникли проблемы, проверьте журналы Nginx:
```bash
docker logs -f nginx-mailcow
```
Если вы увидите предупреждение или аварийное сообщение, значит, что—то пошло не так и необходимо проверить все предыдущие шаги по отключению IPv6—адреса. Есть вероятность, что вы пропустили или неправильно настроили систему, проверьте более тщательно все шаги перед этим.
Если же система успешно запустилась, то итог установки должен выглядеть так:
Скриншот №1 — Окно входа в панель
Вы увидите страницу для входа в админ—панель и управления всей почтой. На странице есть кнопка FIDO2 — это современный способ безопасной авторизации с помощью 3 основных методов двухфакторной аутентификации. Токен OTP: [вы можете скачать](https://googleauthenticator.org/) любое приложение, поддерживающее данный алгоритм шифрования. Touch Id или аналогичную технологию входа по биометрии и т.д.
В этом случае мы будем использовать стандартный метод с помощью логина и пароля. Для входа в панель напишите **Логин: admin** и **Пароль: moohoo** и нажмите кнопку **Войти**. В главном окне мы можем увидеть сводную информацию о нашем сервере и статистику использования ресурсов, что очень удобно!
Скриншот №2 — Консоль ресурсов сервера
Нажимаем на кнопку **System** и переходим в конфигурацию web-почты. В открывшемся окне мы увидим панель управления администраторами, при необходимости добавьте несколько пользователей и создайте дополнительные методы входа, исходя из ваших потребностей:
Скриншот №3 — Настройки админской панели
После редактирования стандартного пароля необходимо создать почту, для этого перейдите в раздел **Configuration**, как показано на рисунке ниже:
Скриншот №4 — Конфигурация почты
В этом шаге необходимо добавить домен, который будет отображаться вместе с именем пользователя, например jhon@vdushu.space:
Скриншот №5 — Создание домена
Выделите необходимые и разрешенные ресурсы для вашего текущего домена, проверьте глобальный список адресов. Для этого действия сервер перезапустит графический или же веб-интерфейс, и после этого вы получите всплывающее сообщение о завершенном процессе. Также в поле **Selector** выберите dkim с длиной ключа 1024, потому что не все почтовые службы могут предоставить и проверить подпись с большей длиной ключа:
Скриншот №6 — Подтверждение создания домена
Нажмите на кнопку **Add domain** и перезапустите **SOGo**, после чего перезапустите docker с помощью команды:
```bash
docker compose restart
```
После этого вы увидите добавленный домен:
Скриншот №7 — Созданный домен
Во всплывающем сообщении мы видим, что DKIM—ключ и домен были успешно добавлены! Следующий шаг будет длинным - необходимо прописать DNS—записи для вашего домена.
Для этого нажимаем на кнопку **DNS**:
Скриншот №8 — DNS записи
Все это необходимо записать в панель, исключение составляют записи типа **SRV** и **TLSA**, их указывать необязательно, две последние записи необходимо настроить с помощью [специальных инструментов](https://www.kitterman.com/dmarc/assistant.html) для **DMARC**:
Скриншот №9 — DMARC
В поле **Domain name **укажите **_dmarc **в поле Text **v=DMARC1; p=qurantine; sp=reject**. В панели управления вашего DNS — хостера выберите тип записи и пропишите ее содержимое для каждого типа:
Скриншот №10 — Создание записи
Укажите имя вашего домена и правила для почты, в случае того если записи **SPF** и **DKIM** — записи не совпадут! Затем нажмите кнопку и вы получите данные для ввода. Для записи SPF введите следующее:
```
v=spf1 ip4:185.104.114.103 include:test.vdushu.space ~all
```
Параметры: Тип: **TXT**, имя: **@**, TTL: **Auto**. Введите это и сохраните запись DNS!
Добавив каждую, общий список будет выглядеть так:
Скриншот №11 — Список записей
Перейдите в Configuraton > Setup mail > Mailboxes и нажмите кнопку **Add mailboxes**:
Скриншот №12 — Создание почты
Выберите необходимые параметры в поле:
Скриншот №13 — Заполните данные
Нажмите на кнопку **Добавить**! Проверьте всплывающее сообщение.
Скриншот №14 — Пуш подтверждение
Вернитесь на домашнюю страницу и выберите пункт **Apps-Webmail**, войдите в SOGo GUI, используя учетные данные, которые вы создали несколько секунд назад:
Скриншот №15 — SOGo веб-интерфейс
Зайдите на любой тестер почты и проверьте валидность сообщений от вашего домена в глазах почтовых провайдеров! Настройка сервера и DNS записей прошли успешно, если вы хотите достичь рейтинга 10/10, то вам нужны доверенные TLD *.us, *.gb и т.д. Но это почти не влияет на процесс передачи сообщений. Если ваш рейтинг низок, проверьте рекомендации по устранению проблем ниже из списка:
Скриншот №16 — Тест почты на спам
Отправьте письмо для проверки эффективности работы почтового сервера:
Скриншот №17 — Письмо
Как видите, почта работает исправно и отлично!
## Вывод
В заключение следует отметить, что графический интерфейс пользователя (GUI) для электронной почты обеспечивает удобный интерфейс, эффективное управление электронной почтой, богатую поддержку форматирования и мультимедиа, а также организационные инструменты. Он повышает производительность, упрощает организацию электронной почты и обеспечивает более удобный опыт взаимодействия.
https://serverspace.uz/support/help/kak-ustanovit-i-nastroit-active-directory.mdВ этой статье описывается процесс установки и настройки Active Directory — центральной службы домена в операционных системах Windows
## Введение
В этой инструкции мы установим сервис для управления доменом, централизованного хранения объектов и контроля ресурсов — Active Directory.
## Минимальные требования
- Процессор: 64-битный с частотой от 1.4 ГГц;
- Совместимость с набором инструкций: Поддержка набора инструкций x64;
- Функции безопасности: Обеспечивается поддержка технологий NX (No Execute) и DEP (Data Execution Prevention);
- Оперативная память: 512 МБ (2 ГБ для сервера с опцией Desktop Experience);
- Дисковое пространство: 32 ГБ.
## Установка
Если все требования удовлетворены, приступаем к установке Active Directory через графический интерфейс с использованием программы управления сервером и мастера установки. Прежде всего, войдите в систему под учетной записью, созданной вами в момент установки, для разблокировки экранной панели нажмите комбинацию кнопок **Ctrl + Alt + Delete** и введите свои учетные данные:
Скриншот №1 — Логин
Если пароль на учетную запись не установлен, необходимо зажать ту же комбинацию кнопок и на новом экране выбрать пункт **Change Password**:
Скриншот №2 — Меню
Это необходимо для обеспечения требований безопасности настройки Active Directory, далее будем называть этот модуль AD. В открывшемся окне задайте новый пароль, требования к которому важны: использование символов, хотя бы один — заглавный, специальные знаки и длина пароля должна быть в диапазоне от 8 до 63 символов:
Скриншот №3 — Смена пароля
После этого вы получите доступ к рабочему столу и увидите открытую программу Server manager, но если случайно закроете окно, то всегда сможете найти его в панели Windows:
Скриншот №4 — Консоль
Мы видим много информации, не пугайтесь, мы рассмотрим все пошагово. Прежде всего, посмотрите на панель с пунктами конфигурации вверху экрана. Начнем с первого пункта **Configure this local server**. После нажатия кнопки появится окно с краткой информацией о вашем сервере: имя, настройки, сетевые адреса и т.д.
Скриншот №5 — Настройки сервера
Найдите строку со значением **Computer name** и щелкните на него:
Скриншот №6 — Название сервера
Нажмите на кнопку **Change...** и введите новое имя сервера в соответствии с функциональностью машины. После нажатия на кнопку **OK** в предыдущем окне **Apply** появится всплывающее окно, в котором необходимо перезагрузить компьютер. Дождитесь применения изменений и завершения перезагрузки. Теперь вернемся к окну **Properties** или **Configure server**, как было описано ранее. Если вы хотите управлять этой машиной удаленно, найдите пункт **Remote Desktop** и поставьте галочку:
Скриншот №7 — Удаленное управление
Нажимаем кнопку **OK** или **Apply** для обновления настроек на машине и в меню слева выбираем Dashboard. Переходим ко второму пункту списка **Add role**.
Скриншот №8 — Добавление роли
В меню выберите тип установки: автономный VHD, текущая ОС или Remote Desktop. В данном случае мы будем устанавливать на нашу машину и выберем установку на основе ролей.
Скриншот №9 — Выбор носителя
На этом шаге выберите AD Domain Services и подтвердите во всплывающем окне:
Скриншот №10 — Подтверждение
Нажмите кнопку Add features для подтверждения установки. Выберите функции, которые вы хотите установить вместе с сервером, на скриншоте указаны минимальные функции, необходимые для установки:
Скриншот №11 — Установка компонентов
Отметьте компонент для установки, установите галочку для перезапуска сервера после завершения процесса и нажмите кнопку **Install**:
Скриншот №12 — Проверка компонентов
Дождитесь окончания процесса установки и нажмите кнопку **Close**:
Скриншот №13 — Установка
Нажмите на кнопку-флажок, расположенную выше на экране, и выберите пункт **Promote this server to a domain controller**:
Скриншот №14 — Повышение сервера
Выбираем тип активации в соответствии с назначением, производим первичную установку и выбираем **New Forest**:
Скриншот №15 — Выбор типа установки
Запишите новое доменное имя с **TLD** или для удобства понимания в формате** example.com** или **example.local**, которые часто используются для маршрутизируемой сети.
Скриншот №16 — Настройки контроллера
На этом шаге выберите функциональный уровень вашего домена и леса, введите пароль для каталога восстановления. Далее следуйте шагам в левом меню и нажмите кнопку в нижней части экрана установки. Все пункты вплоть до Paths заполнятся автоматически, и менять их не нужно. Пути создаются также автоматически, но если вы хотите изменить расположение журналов и другой информации, это не составит никакого труда!
Скриншот №17 — Пути
На странице Review проверьте все устанавливаемые компоненты и состояние системы, если вы увидите зеленую галочку с уведомлением, значит, система уже готова к установке:
Скриншот №18 — Проверка требований
Нажмите кнопку** Install** и подтвердите процесс установки, дождитесь завершения, сервер перезагрузится:
Скриншот №19 — Применение настроек
Если вы видите окно контроллера домена, значит, установка прошла успешно!
Скриншот №20 — Итог
## Выводы
Доменные сети имеют более простую интерпретацию моделей по сравнению с сетями общего назначения. Благодаря меньшему количеству параметров и более целенаправленной архитектуре становится проще интерпретировать и понимать поведение этих сетей в рамках домена. Такое упрощение облегчает анализ выученных представлений и извлечение значимых идей из процесса принятия решений сетью.
https://serverspace.uz/support/help/nastrojka-i-ispolzovanie-cron-avtomatizaczii-ubuntu.mdУстановка, настройка и создание задач с помощью файла crontab – в нашей инструкции по запуску инструмента автоматизации Cron с нуля
Настройка и использование Cron для автоматизации задач в Ubuntu
Cron — это стандартный инструмент в операционной системе Ubuntu, который позволяет выполнять задачи на определенное время с заданной периодичностью. Это инструмент, который помогает автоматизировать выполнение различных задач, таких как резервное копирование данных, обновление программного обеспечения, отправка отчетов и т.д.
В этом обзоре рассмотрим настройку и использование Cron на примере VPS-сервера с предустановленной ОС Ubuntu.
## Проверка установки Cron
Перед использованием Cron, необходимо убедиться, что он установлен в системе. Для этого выполним в терминале:
```
crontab -l
```
Скриншот №1. Просмотр текущих настроенных заданий
Если вы видите сообщение "no crontab for user", это означает, что у вас еще нет задач Cron. Если же вы видите активные задачи, значит, Cron уже установлен и готов к использованию.
## Создание задачи Cron
Для создания нового задания Cron необходимо отредактировать файл crontab. Для этого выполните команду, после чего выберите удобный текстовый редактор:
```
crontab -e
```
Скриншот №2. Создание нового задания
## Структура файла crontab
Файл crontab состоит из строк, каждая из которых представляет собой отдельную задачу. Каждая строка имеет следующую структуру:
*** * * * * команда**
Первый столбец представляет минуту, второй - час, третий - день месяца, четвертый - месяц и пятый - день недели. Указание символа ***** означает, что задача должна выполняться в каждой единице выбранного времени.
Например, если вы укажете в каждом столбце *****, то задача будет выполняться каждую минуту.
## Примеры задач Cron
Рассмотрим несколько примеров задач Cron.
Запуск скрипта каждые 2 минуты:
***/2 * * * * /folder/to/testscript.sh**
Запуск команды в 10, 40, 45 минут каждый час:
**10 40 45 * * * * ls**
Запуск команды каждый день ночью в 3 часа:
**0 3 * * * команда**
Запуск скрипта каждый понедельник в 9 часов утра:
**0 9 * * 1 /folder/to/testscript.sh**
Для более сложных расписаний можно использовать дополнительные команды, такие как команды диапазона (например, 1-10) или команды шага (например, */10).
## Понимание вывода Cron
После настройки задач Cron важно убедиться, что они выполняются правильно.
Чтобы проверить вывод выполненных задач, вы можете добавить строку вида:
*** * * * * команда >> /путь/к/файлу.log 2>&1**
Например:
```
* * * * * ps >> /home/ps.log 2>&1
```
Скриншот №3. Пример задачи с запуском каждую минуту. Выводится список процессов в файл
Таким образом, вывод задачи будет перенаправлен в файл.log, который вы можете проверить для анализа выполненных задач.
## Управление задачами
Для просмотра заданий Cron, можно выполнить:
```
crontab -l
```
Скриншот №4. Повторный вывод списка задач после создания нового
А для удаления всех заданий:
```
crontab -r
```
## Отладка задач Cron
Если задачи Cron не работают ожидаемым образом, важно проверить правильность команды и пути к файлам.
Пользователь, от имени которого выполняется задача, должен иметь права на выполнение команды и доступ к необходимым файлам.
Также некоторые задачи Cron могут требовать окружения, которое отличается от обычного терминального окружения. В таком случае, укажите полный путь к исполняемым файлам и используйте команды, такие как source, для загрузки окружения задачи.
## Заключение
**Настройка и использование Cron в Ubuntu** позволяет автоматизировать множество задач и сделать вашу работу более эффективной. Правильная конфигурация задач Cron и их отладка могут потребовать некоторого времени, но они стоят усилий, так как могут значительно упростить выполнение рутинных операций по администрированию ОС.
https://serverspace.uz/support/help/sozdanie-i-nastrojka-htaccess.mdНастройка .htaccess для управления сервером Apache: установка перенаправлений, использование модуля Rewrite, контроль доступа к файлам
## Введение
Мы не можем представить себе современный мир без онлайн-маркетов, магазинов, поисковых систем, мессенджеров и всех ценных компонентов WEB, которые позволили нам общаться быстрее. Но новые возможности приносят нам и новые уязвимости и детали в веб—серверах, которые необходимо учитывать. Для этих целей нам нужна гибкий инструмент управления сервером - **htaccess**!
Конфигурирование веб—серверов с помощью конфигурационных файлов является распространенной и удобной практикой по нескольким причинам:
- Гибкость: конфигурационные файлы позволяют администраторам веб—серверов точно настроить параметры сервера в соответствии с требованиями конкретного сайта или приложения. Можно настроить различные параметры, такие как поведение сервера, параметры безопасности, виртуальные хосты и конфигурации модулей;
- Простота использования: конфигурационные файлы, как правило, написаны интуитивно понятным синтаксисом для человека, что облегчает администраторам понимание и изменение настроек. Такая простота позволяет быстро вносить изменения и дополнения без использования сложного пользовательского интерфейса;
- Контроль версий: конфигурационные файлы можно контролировать по версиям с помощью таких инструментов, как Git, что облегчает отслеживание изменений, совместную работу с командой и, при необходимости, возврат к предыдущим конфигурациям;
- Переносимость: конфигурационные файлы можно переносить между различными серверными средами, что упрощает развертывание веб-сайта или приложения на новых серверах с теми же настройками;
- Автоматизация: конфигурационные файлы можно изменять или генерировать программно, что позволяет автоматизировать настройку и обслуживание сервера. Это особенно полезно при работе с несколькими серверами или при развертывании сайтов в облачной среде;
- Безопасность: хранение конфигурационных параметров отдельно от кода приложения повышает уровень безопасности. В случае компрометации кода приложения конфиденциальные параметры сервера остаются защищенными в конфигурационных файлах;
- Эффективность: веб—серверы могут быстро считывать и разбирать конфигурационные файлы при запуске, что делает процесс внесения изменений эффективным и быстрым;
- Детализация: конфигурационные файлы позволяют администраторам отдельно контролировать различные аспекты работы сервера. Например, они могут настраивать конкретные параметры для различных виртуальных хостов, каталогов или путей URL;
- Стандартизация: многие веб—серверы используют общие форматы конфигурационных файлов, такие как .htaccess Apache или nginx.conf Nginx, что позволяет администраторам применять свои знания и опыт для различных конфигураций серверов.
В целом конфигурационные файлы обеспечивают простой и эффективный способ управления веб—серверами, предоставляя администраторам возможность контроля и настройки для оптимизации производительности и безопасности сервера в соответствии с их конкретными потребностями.
В инструкции рассмотрим процесс создания и настройки файла .htaccess на примере VDS сервера, работающего под управлением ОС Ubuntu.
## Требования
- Административные права;
- Ubuntu 20.04 или более поздняя версия;
- Начальные знания о работе ОС;
- Веб—сервер Apache.
## Установка и создание файла
Первым шагом в этом руководстве будет обновления и установка пакетов для всей системы, для этого введите приведенную ниже команду CLI:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Если у вас уже есть веб-сервер Apache, то этот шаг установки можно пропустить, но если вы впервые занимаетесь установкой, то следуйте дальнейшим шагам. Введите приведенную ниже команду и убедитесь, что у вас есть необходимый пакет:
```bash
apt list | grep apache2
```
Скриншот №2 — Поиск пакета
После этого устанавливаем web—сервер, он запускается автоматически и начинает свою работу:
```bash
apt install apache2
```
Скриншот №3 — Установка
После установки Apache2, он будет автоматически запущен, а его конфигурационные файлы будут находиться в разных местах в зависимости от используемой ОС. В этом веб—сервере для настройки глобальных параметров мы используем конфигурационный файл httpd.conf (или apache2.conf в некоторых системах). Напоминаю! Htaccess мы используем для переопределения некоторых правил обработки клиентских запросов и оптимизации ответа сервера.
Убедитесь в том, что ваш веб—сервер разрешает использование файлов .htaccess. Для этого необходимо проверить, что в основном конфигурационном файле Apache2 (httpd.conf или apache2.conf) включена директива AllowOverride. Измените значение AllowOverride на All:
```
nano ./etc/apache2/apache2.conf
```
Скриншот №4 — Изменение значений
Если вы не можете найти нужный каталог, то воспользуйтесь командой ниже:
```
cd / && find ./ -name apache2.conf && find ./ -name httpd.conf
```
Скриншот №5 — Поиск конфига
Включив AllowOverride, вы предоставляете серверу возможность интерпретировать директивы, указанные в файлах .htaccess, расположенных в каталогах вашего сайта. Это позволяет создавать более гибкие конфигурации на уровне каталогов, повышая общую функциональность и безопасность веб—сервера.
В иерархии настройки параметров по умолчанию:
Скриншот №6 — Иерархия конфигов
Расположение файлов Apache может варьироваться в зависимости от операционной системы и способа установки. Однако ниже приведена общая организация, используемая в большинстве инсталляций:
- **apache2.conf:** Этот файл служит центральным конфигурационным файлом Apache, содержащим глобальные настройки и определяющим параметры сервера. Ports.conf: Важнейший конфигурационный файл, отвечающий за указание портов, на которых прослушивается сервер.
- **sites-available/:** Этот каталог содержит конфигурационные файлы для каждого виртуального хоста. Здесь можно задать различные конфигурации хостов. Включенные конфигурации хостов затем символически связываются с каталогом "sites-enabled/".
- **mods-available/:** В этом каталоге находятся конфигурационные файлы для различных модулей Apache, позволяющие управлять и включать/выключать определенные функции.
- **mods-enabled/:** Состоит из символических ссылок, которые соединяют активированные модули из каталога "mods-available/", позволяя использовать их в Apache.
- **conf-available/:** В этом каталоге находятся дополнительные конфигурационные файлы, позволяющие расширять и настраивать параметры Apache.
- **conf-enabled/:** В этом каталоге находятся символические ссылки на активированные дополнительные конфигурации из каталога "conf-available/". Это позволяет включать дополнительные конфигурации без изменения основных конфигурационных файлов.
Теперь мы можем настроить файл htaccess, который является переопределяющим расширением для нашей текущей конфигурации. Все изменения и значения этого файла будут влиять на конфигурацию в результате. Давайте продемонстрируем, как это работает на обычной конфигурации.
Сначала необходимо включить функцию override и указать DocumentRoot в конфигурации virtualhost, для чего зайти в CLI:
```
mkdir /etc/site-for-test
```
```
nano /etc/apache2/sites-available/000-default.conf
```
Скриншот №7 — Конфиг виртуального хоста
Измените параметр ServerName на свой домен и AllowOverride на значение All. Напоминание! В DNS—панели необходимо поставить запись соответствующую вашему публичному IP—адресу сервера! Измените параметр DocumentRoot для рабочей директории со страницами и файлами необходимого сайта. В данном случае мы создаем каталог site—for—test. Далее напишите первую простую страницу или, если вы используете свой собственный сайт, пропустите этот шаг:
```
nano /etc/site-for-test/index.html
```
Скриншот №8 — Главная страница
```html
TEST
# Hi, that test htaccess file!
```
Содержимое вашей страницы может иметь другую конфигурацию и структуру, но смысл тот же. Создадим в той же папке файл .htaccess, который выстраивает логическую цепочку между html и действиями пользователя:
```
nano /etc/site-for-test/.htaccess
```
```
RewriteEngine On
RewriteRule ^hello$ index.html [L]
```
Скриншот №9 — Перезаписанный конфиг
Эта конфигурация с помощью синтаксиса **RewriteEngine On** включает модуль rewrite на сервере и в следующей строке переписывает правила, которому буквально присвоена html—страница и атрибут **[L]**. Он означает, что последнее правило будет выполнено и остальные инструкции будут проигнорированы. Для корректной работы необходимо включить модуль rewrite, который входит в пакет apache2, и перезапустить службу:
```
sudo a2enmod rewrite && systemctl restart apache2
```
Скриншот №10 — Дополнительные шаги
Проверим результат наших действий:
Скриншот №11 — Страница в браузере
Взглянем на URL сайта, все работает — корректно:
Скриншот №12 — URL ссылка
## Контроль доступа
Рассмотрим популярный пример использования .htaccess. Файл .htaccess служит мощным инструментом настройки, позволяющим контролировать доступ к файлам, папкам и целым каталогам ваших сайтов!
Order: Эта команда определяет последовательность выполнения директив. Она устанавливает приоритет последующих директив, независимо от их расположения в файле.
Deny: С помощью этой директивы можно запретить доступ к определенному каталогу с указанных адресов или IP—адресов.
Allow (разрешить): Напротив, эта директива разрешает доступ к каталогу только с указанных адресов или IP—адресов.
Используя эти команды, можно легко настроить доступ к определенным ресурсам веб—сервера. Например, с помощью .htaccess можно ограничить доступ к конфиденциальной информации в указанной папке или разрешить доступ только определенным IP—адресам, тем самым повысив безопасность и обеспечив контроль над ресурсами своего сайта. Откройте файл .htaccess, который мы создали ранее, и введите в него конфигурацию, дополняющую предыдущий синтаксис.
```
Order allow,deny
Allow 95.141.86.46
```
Этот конфиг определяет процесс доступа к папке на сервере, разрешим для только стороннего IP. В результате мы видим флаг Forbidden для входа на сайт с другого IP-адреса:
Скриншот №13 — Запрет на вход
## Ограничение индексации
Для повышения безопасности можно запретить вывод списка каталогов в веб—сервере Apache. По умолчанию, если в каталоге не найден файл index.html или указанный файл, Apache выводит список всех файлов, присутствующих в этом каталоге. Чтобы отключить эту функцию и ограничить вывод списка каталогов, примените следующую конфигурацию:
```
Options -Indexes
```
## Не найдено — 404
Для перенаправления посетителей на страницу 404 (страница "Not Found"), когда запрашиваемая страница отсутствует, можно реализовать следующий код:
```
nano /etc/site-for-test/error404.html
```
Введите в файл следующее содержимое:
```html
Page Not Found - 404 Error
#
404 Page not found!
```
Затем добавляем в конфигурацию .htaccess и завершаем настройку:
```
ErrorDocument 404 /error404.html
```
Скриншот №14 — Ошибка 404
## Перенаправление
Создайте html—страницу, как мы рассматривали в предыдущем шаге, и сделайте целевой файл для перенаправления:
```
nano /etc/site-for-test/targeturl.html
```
Чтобы добиться переадресации с "/hello" на "/target" с помощью 301 (постоянного) редиректа, можно использовать следующее правило RewriteRule в файле .htaccess:
```
RewriteRule ^hello$ /target [R=301,L]
RewriteRule ^hello$ index.html
RewriteRule ^target$ targeturl.html
```
RewriteEngine On: Включает RewriteEngine, позволяя использовать правила перезаписи в файле .htaccess.
RewriteRule ^hello$ /target [R=301,L]: Данное правило соответствует запросам к "/hello" (символы "^" обозначают начало, а "$" - конец URL) и перенаправляет их на "/target" с помощью 301—го (постоянного) редиректа. Флаг "R=301" указывает на постоянное перенаправление, а флаг "L" — на то, что это последнее правило, которое будет выполняться.
При такой конфигурации любой запрос к "/hello" будет перенаправлен на "/target" с кодом состояния 301, то есть это будет постоянное перенаправление. Другие правила, присутствующие в файле .htaccess после этого, не будут выполняться из-за флага "L".
Скриншот №15 — Перенаправление
## Вывод
Файл .htaccess — это мощный инструмент для управления доступом к ресурсам на веб—сервере. Он предоставляет веб—администраторам возможность определять порядок выполнения директив, блокировать доступ с определенных IP—адресов или адресов с помощью директивы "Deny" и предоставлять доступ только к указанным местам с помощью директивы "Allow". Это дает администраторам возможность гибко настраивать управление доступом, обеспечивая безопасность и точный контроль над ресурсами сервера.
Кроме того, файл .htaccess выполняет и другие важные функции. Он может управлять индексами, предотвращая появление списков каталогов и тем самым повышая безопасность за счет отсутствия доступа к конфиденциальным файлам. Кроме того, он может обрабатывать ошибки 404 (Not Found), позволяя администраторам перенаправлять посетителей на пользовательскую страницу ошибок, если запрашиваемая страница отсутствует или недоступна.
Таким образом, файл .htaccess является универсальным и незаменимым инструментом для настройки веб-сервера. Он обеспечивает контроль над доступом, безопасностью, обработкой ошибок и перенаправлением URL—адресов, что делает его важным компонентом для оптимизации и настройки веб—сервера в соответствии с требованиями конкретного сайта или приложения.
https://serverspace.uz/support/help/ispolzovanie-scp-na-debian.mdУзнайте способы безопасной передачи данных с помощью SCP в Linux. Разберитесь в процессе передачи файлов между удаленными системами.
## Введение
Шифрование конфиденциальных данных перед их передачей необходимо для сохранения их конфиденциальности, целостности и аутентичности в процессе передачи. При шифровании данные преобразуются в защищенный формат, который может быть понят только уполномоченными лицами, имеющими правильный ключ для расшифровки. Таким образом, неавторизованные лица и хакеры не могут перехватить и расшифровать конфиденциальные данные во время их передачи.
Более того, шифрование выступает в качестве дополнительного уровня безопасности, защищая конфиденциальную информацию, такую как персональные данные, финансовые сведения или интеллектуальная собственность, от несанкционированного доступа и подслушивания. Когда данные передаются по незащищенным каналам, таким как Интернет, шифрование становится решающим фактором снижения рисков, связанных с перехватом и утечкой информации. Для решения этой задачи создали SCP.
**SCP** — это утилита в UNIX-подобных системах, позволяющая копировать файлы и каталоги между локальными и удаленными хостами по защищенному протоколу SSH.
В целом, использование шифрования с помощью таких утилит, как SCP, обеспечивает спокойствие как отправителям, так и получателям данных. Они могут быть уверены, что их конфиденциальная информация защищена от несанкционированного доступа и манипуляций. Использование шифрования является одним из основных принципов безопасного обмена данными в современном компьютерном мире.
## Требования к установке
- Root-права;
- Debian 11 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Установка
Для безопасной передачи и перед использованием утилиты нам необходимо обновить и установить все пакеты:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
После этого необходимо проверить список репозиториев и пакетов. Если вы уверены, что ваша система соответствует всем требованиям, то этот шаг можно пропустить. Однако если вы еще не сделали этого, введите следующую команду CLI:
```bash
apt list | grep scp && scp
```
Скриншот №2 — Проверка пакетов
На рисунке выше мы видим список пакетов и с помощью написанной команды можем проверить, установлен ли один из них. Рассмотрим синтаксис этой команды:
scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-] destination] [-l limit] [-o ssh_option] [-P port] [-S program] source target
- [-346ABCpqrTv]: Это набор опций для управления поведением scp. Каждая опция имеет свое значение:
- -3: Позволяет копировать файлы между двумя удаленными хостами через локальный хост;
- -4: Принудительно использует IPv4 для соединения;
- -6: Принудительное использование IPv6 для соединения;
- -A: Аутентификация через агент аутентификации SSH;
- -B: Оптимизация пропускной способности и превращение копирования в фоновый процесс;
- -C: Включает сжатие данных при передаче;
- -p: Сохраняет атрибуты и права доступа к исходным файлам;
- -q: Тихий режим, не выводит сообщений о ходе копирования;
- -r: Рекурсивное копирование каталогов и их содержимого;
- -T: Отключает проверку TTY для удаленного хоста (используется при перенаправлении ввода/вывода);
- -v: Подробный вывод, отображает информацию о ходе копирования;
- [-c cipher]: Задает алгоритм шифрования, который будет использоваться для защиты данных при передаче. Например, aes128-ctr или blowfish-cbc;
- [-F ssh_config]: Указывает альтернативный конфигурационный файл SSH, в котором задаются параметры подключения к удаленному хосту;
- [-i identity_file]: Указывает файл с закрытым ключом, который будет использоваться для аутентификации при подключении по SSH;
- [-] destination: Опционально указывает место, куда будут скопированы исходные файлы или каталоги на удаленном хосте. Если параметр опущен, то копирование будет производиться в текущий каталог удаленного хоста;
- [-l limit]: Ограничивает пропускную способность соединения в Кбит/с;
- [-o ssh_option]: Позволяет задать дополнительные опции SSH;
- [-P port]: Задает порт;
- [-S program]: Указывает путь к программе, которая будет использоваться для выполнения шифрования, например, ssh-program.
Выше мы рассмотрели все опции и параметры, которые получают полезность при использовании. Рассмотрим различные способы использования этой полезности.
## Обычная передача файла
Утилита позволяет перемещать защищенный файл между различными машинами. Для этого необходимо ввести команду CLI:
```bash
scp /etc/apple.txt root@78.140.240.178:/etc/
```
Скриншот №3 — Обычная передача файла
Введите свои учетные данные в форме user, IP, password и согласитесь с подключением. Отлично! Теперь мы можем найти на целевой машине тот же самый файл с помощью следующей команды:
```
cd /etc && ls
```
Скриншот №4 — Точка удаленного хоста
В первой колонке apple.txt успешно передан между двумя системами по ssh! Если необходимо передать целую папку или каталог, используйте опцию -r, посмотрим на примере:
```bash
scp -r -C -4 /etc/network root@78.140.240.178:/dump
```
Скриншот №5 — Опции передачи файла
Эту утилиту можно использовать для резервного копирования, начиная с простого файла и заканчивая ISO всего диска и системы. К счастью, в системе Linux все настройки хранятся в конфигурационных файлах, которые позволяют переносить данные без проблем. Также мы можем использовать обратное подключение и передавать файлы с удаленной машины на локальную, просто поменяв их местами.
## Резервное копирование с архивом
С помощью SCP можно создать архив всего диска, системной базы данных и других вещей, которые могут содержать всю систему. Посмотрите на связку tar и scp, как передавать данные такого типа? Дополнительно многие компании используют нестандартный порт для SSH-соединения, давайте изменим на целевой машине порт на 2222 и подумаем, как передавать данные в такой ситуации. Запишите команды ниже:
```bash
tar -cvzf dump.tar.gz / && ls
```
Скриншот №6 — Создание архива
Убедитесь, что файл был заархивирован, и напишите следующую команду:
```bash
scp -4 -C -v -P 2222 dump.tar.gz root@78.140.240.178:/
```
Скриншот №7 — Передача архива
Теперь необходимо разархивировать папку с помощью следующей команды:
```
mkdir dump && tar -xvf dump.tar.gz -C /dump
```
Скриншот №8 — Разархивирование
## Трансфер dd-образа диска
Убедитесь, что у вас достаточно прав для доступа к исходному файлу изображения и записи в каталог назначения. Также следует учитывать, что передача больших файлов образов DD может занять некоторое время, зависящее от вашего сетевого подключения и размера образа. Перед созданием ISO-образа всей системы необходимо узнать параметры дискового пространства с помощью следующей команды:
```
lsblk
```
Скриншот №9 — Список дисков
В нашем случае мы видим один физический диск и два логических пространства, для наших манипуляций мы используем логический диск для создания ISO-образа:
```
dd if=/dev/vda1 of=dump.iso bs=4M status=progress
```
Скриншот №10 — Создание образа
После успешного создания файла образа мы можем передать его предыдущим способом:
```bash
scp -4 -C -v -P 2222 /dump.iso root@78.140.240.178:/tmp
```
Скриншот №11 — Передача файла
## Вывод
В заключении следует отметить, что шифрование конфиденциальных данных при передаче имеет первостепенное значение для обеспечения их безопасности. SCP, утилита, доступная в UNIX-подобных системах, играет важную роль в обеспечении безопасной передачи файлов и каталогов между локальными и удаленными узлами по протоколу SSH. Шифрование с помощью таких инструментов, как SCP, вселяет уверенность в отправителей и получателей, обеспечивая защиту конфиденциальной информации от несанкционированного доступа и манипуляций. Использование шифрования — это не только передовая практика, но и необходимый компонент безопасной передачи данных в современном компьютерном ландшафте.
https://serverspace.uz/support/help/ssh-tunnel-kak-sozdat-i-ispolzovat.mdРуководство по созданию и использованию SSH-туннелей в Linux — безопасных соединений для перенаправления портов и защиты трафика
## Введение
Цель туннелирования SSH — обеспечить надежную и безопасную передачу данных между двумя узлами или устройствами по ненадежным или открытым сетям, таким как Интернет. Когда трафик должен проходить через внутренние порты и безопасно перенаправляться наружу, туннелирование SSH может быть использовано для создания защищенного канала связи, позволяющего трафику безопасно покидать внутреннюю сеть и направляться во внешнюю.
Основные варианты использования SSH-туннелирования для этих целей включают:
- Безопасная переадресация портов: SSH позволяет перенаправлять локальные порты на клиентском устройстве на удаленный сервер через защищенное соединение. Это позволяет перенаправлять трафик с внутренних портов на внешние и обеспечивать безопасный доступ к ресурсам, расположенным за пределами внутренней сети;
- Защита трафика: SSH-туннелирование обеспечивает шифрование передаваемых по туннелю данных, что делает их недоступными для прослушивания или перехвата третьими лицами. Это обеспечивает конфиденциальность данных и защищает их от несанкционированного доступа;
- Обход сетевых ограничений: SSH-туннелирование позволяет обходить сетевые ограничения, устанавливаемые сетевыми администраторами, что дает возможность пользователям получать доступ к ресурсам или сервисам, доступ к которым в сети может быть ограничен;
- Создание защищенного прокси-сервера: SSH-туннелирование может быть использовано для создания защищенного прокси-сервера, позволяющего пользователю анонимно и безопасно получать доступ к внешним ресурсам через защищенное соединение.
В целом туннелирование SSH предоставляет мощные возможности для обеспечения безопасной передачи данных и доступа к ресурсам через ненадежные сети. Оно позволяет создать защищенный канал связи и обеспечить безопасный доступ к внешним ресурсам из внутренней сети, что делает его важным инструментом для обеспечения безопасности и конфиденциальности данных.
## Требования к установке
- Root-права;
- Debian 11 или более поздняя версия;
- Начальные знания о работе ОС;
- Подключение к Интернету.
## Создадим туннель
Для безопасной передачи перед использованием утилиты нам необходимо обновить и установить все пакеты:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Для создания туннеля по SSH нам необходимо сформировать открытый и закрытый ключ, что поможет более надежно авторизовать пользователя и автоматизировать процесс. Выполним команду ssh-keygen:
```bash
ssh-keygen -t rsa
```
Скриншот №2 — Создание пары ключей
В этой части выберите путь для сохранения открытого и закрытого ключей для подключения по SSH, по умолчанию они будут сохраняться в папке /root/.ssh/. Затем введите ключевую фразу, если хотите усложнить компрометацию закрытого ключа:
Скриншот №3 — Пути ключей
Также в результате хеширования открытого ключа мы видим хэш, по которому можно идентифицировать пользователя. Но основное назначение хеширования открытых ключей в контексте SSH — это удобство и эффективность аутентификации. После того как хэш открытого ключа клиента будет сохранен на сервере, сервер может быстро и эффективно сравнить его с хэшами, которые уже хранятся в его базе данных. Хотя хэширование открытых ключей не обеспечивает дополнительной безопасности в том смысле, что не делает ключи секретными (открытые ключи всегда должны оставаться открытыми), оно обеспечивает защиту от случайных или злонамеренных изменений ключей или ошибок копирования.
После этого необходимо скопировать открытый ключ и сохранить его на целевом сервере с помощью команды, приведенной ниже:
```
nano /root/.ssh/id_rsa.pub
```
После ввода команды появится длинная строка с различными символами, в текстовом редакторе nano необходимо нажать **Alt + 6**, а затем нажать комбинацию кнопок **Ctrl + X**!
Скриншот №4 — Просмотр публичного ключа
Переключите окна терминала и вставьте файл в нужную директорию, по умолчанию это /home/user/.ssh/id_rsa.pub на целевой машине или, как правило, для этих целей мы можем сразу отправить его на целевой сервер с помощью команды, приведенной ниже:
```bash
ssh-copy-id root@94.141.96.47
```
В этой команде необходимо заменить IP-адрес вашей целевой машины и добавить открытый ключ. В этот момент сервер будет сравнивать свою базу хэш-ключей и ваш хэш открытого ключа. В нашей ситуации мы не добавляем файл на сервер и подключаемся впервые:
Скриншот №5 — Копирование ключа
Для подтверждения того, что у вас есть разрешение на добавление ключа к данной учетной записи — введите пароль.
Скриншот №6 — Добавление ключа
Ключ добавлен на наш сервер, поэтому дальнейший процесс аутентификации будет прост: нужно ввести учетные данные, как мы рассматривали ранее, и целевой сервер проверит хэш и достоверность открытого, закрытого ключей.
## Сменим SSH порт
Изменение стандартного порта SSH с 22 на нестандартный порт — простой, но эффективный способ усиления безопасности и защиты от автоматического сканирования и атак методом перебора. Для этого откройте конфигурационный файл на своей машине:
```
nano /etc/ssh/sshd_config
```
Скриншот №7 — Конфигурация порта
В открывшемся окне удалите хэштег перед **Port** и измените значение на желаемое. После этого нажмите **Ctrl+O** для сохранения файла и перезапустите службу **ssh**, выполнив следующую команду:
```bash
systemctl restart ssh
```
Теперь ваш порт для SSH изменен и вы можете использовать его для установки соединения!
## Использование туннеля
Кроме управления и передачи данных на другую машину с помощью туннелирования мы можем использовать его для перенаправления трафика и представлять наш туннель как прокси-сервер.
Проброс портов SSH позволяет пользователям получить безопасный доступ к службам, работающим на удаленном сервере, даже если они не имеют прямого выхода в Интернет. С помощью SSH-туннелирования такие сервисы, как веб-приложения, базы данных или удаленные рабочие столы, могут быть перенаправлены на локальную машину, что позволяет эффективно управлять и администрировать удаленные системы. Для этого введите команду:
```bash
ssh -L 9999:127.0.0.1:80 root@94.141.96.47
```
Скриншот №8 — Статический проброс порта
Поэтапное объяснение:
- При выполнении указанной команды она от имени пользователя инициирует SSH-соединение с удаленным сервером. После установления соединения ваша локальная машина начинает прослушивать порт 9999;
- При каждом запросе на порт 9999 на локальной машине SSH перенаправляет этот трафик через установленное SSH-соединение на удаленный сервер. Затем удаленный сервер перенаправляет трафик на порт 80, который обычно используется для HTTP-серверов;
- Таким образом, при обращении к адресу 127.0.0.1:9999 (localhost:9999) на локальной машине трафик фактически перенаправляется на удаленный сервер и подключается к его порту 80. Эта функциональность становится полезной, когда необходимо получить доступ к веб-серверу на удаленной машине, который не доступен напрямую из Интернета, но может быть доступен через SSH-туннель.
Создав динамический SSH-туннель и настроив его как SOCKS-прокси-сервер, мы можем эффективно направлять сетевой трафик с локальной машины через удаленный сервер. Это позволит любому приложению или службе на локальной машине, поддерживающей настройки SOCKS-прокси, использовать туннель в качестве прокси-сервера. Для этого можно воспользоваться указанной командой:
```bash
ssh -D 8888 root@94.141.96.47
```
Скриншот №9 — Динамический проброс порта
Когда вы выполняете указанную команду, она от вашего имени инициирует SSH-соединение с удаленным сервером. После установления соединения на локальной машине устанавливается прослушивающий порт, которым в данном случае является порт 8888.
В отличие от локальной проброски портов, о которой мы говорили ранее (с помощью опции -L), динамическая проброска портов (с помощью опции -D) создает прокси-сервер SOCKS непосредственно на локальной машине. Когда приложение на локальной машине пытается получить доступ в Интернет, оно может использовать этот SOCKS-прокси-сервер, настроив его на подключение через localhost:8888.
В результате весь сетевой трафик с локальной машины будет перенаправляться через установленное SSH-соединение на удаленный сервер. Удаленный сервер будет обрабатывать исходящий трафик и перенаправлять его в конечный пункт назначения в Интернете.
Такая технология динамической переадресации портов обеспечивает вашим приложениям безопасное и зашифрованное подключение к Интернету через удаленный сервер. Она может быть особенно полезна в тех случаях, когда определенные интернет-серверы или ресурсы недоступны из-за ограничений или брандмауэров в локальной сети. Использование динамической переадресации портов позволяет обойти эти ограничения и получить безопасный доступ в Интернет через удаленный сервер.
## Вывод
Туннелирование SSH представляет собой надежное решение для безопасной передачи данных и доступа к ресурсам в ненадежных сетях. Благодаря возможности создания защищенных каналов связи и безопасного перенаправления трафика туннелирование SSH повышает уровень безопасности и конфиденциальности данных, что делает его незаменимым инструментом для защиты конфиденциальной информации и обеспечения безопасного доступа к удаленным ресурсам. Использование SSH-туннелирования позволяет пользователям устанавливать защищенные соединения, защищать конфиденциальные данные и обходить сетевые ограничения, что способствует повышению безопасности и устойчивости вычислительной среды.
https://serverspace.uz/support/help/kak-ustanovit-i-nastroit-wine-ubuntu.mdПошаговое руководство по установке и настройке Wine на сервере под управлением Ubuntu для бесперебойного запуска приложений под Windows
## Введение
В настоящее время на рынке информационных технологий представлены различные операционные системы от немалого числа производителей, и каждый из них старается создать эффективную, быструю и стабильную систему. Но у разных людей разная точка зрения о создании нового продукта, который должен приносить доход и быть конкурентоспособным по сравнению с другими. Современная сетевая архитектура предполагает набор и стек используемых технологий от разных производителей, но как связать эти возможности и преимущества разных ОС?
Для этого у нас есть **Wine**! Утилита с открытым исходным кодом и эмулятор, позволяющий запускать различные приложения на UNIX-системах. Но нужно ли это нам?
Основные причины возникновения проблем:
- Различия в архитектуре: Windows работает на архитектурах x86 (32-бит) и x64 (64-бит), в то время как Linux может работать на различных архитектурах, таких как x86, x64, ARM и других. Это приводит к тому, что некоторые Windows-приложения, скомпилированные под конкретную архитектуру, не могут работать в Linux;
- Различия в API и библиотеках: В Windows и Linux используются разные наборы API (интерфейсов прикладного программирования) и библиотек. Это означает, что приложения, зависящие от определенных API или библиотек Windows, не могут быть запущены в Linux без дополнительных настроек или совместимости уровней;
- Зависимость от файлов .exe: Многие приложения Windows имеют исполняемые файлы с расширением.exe, которые не совместимы с Linux. Это требует использования эмуляторов или инструментов совместимости, таких как Wine, чтобы попытаться запустить эти .exe-файлы в Linux;
- Проприетарные приложения: Некоторые приложения Windows являются собственными и не имеют версий для Linux. Это делает невозможным их запуск в Linux без использования виртуальных машин или других решений.
Все эти проблемы можно решить различными способами, например, с помощью эмуляторов (например, Wine) или виртуальных машин, которые позволяют запускать Windows-приложения в Linux. Однако это может потребовать дополнительной настройки и не обеспечить 100% совместимости и стабильности работы приложений. Поэтому для обеспечения наилучшей производительности и совместимости рекомендуется по возможности использовать альтернативные приложения, разработанные специально для Linux.
## Требования к установке
- Root-права;
- Ubuntu 20 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Установка
Прежде всего, нам необходимо обновить и установить системные пакеты на нашей машине для их корректной работы:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Wine поддерживает приложения на 32-битной архитектуре, но из-за отсутствия поддержки на 64-битных системах некоторых приложений, необходимо добавить поддержку 32-битной архитектуры. Для этого введите следующую команду:
```
dpkg --add-architecture i386
```
Скриншот №2 — Добавим поддержку архитектуры
Напоминаем! Для работы всех программ потребуется не менее 30 Гб свободного дискового пространства и не менее двух ядер процессора. На следующем шаге установим основной компонент этой системы Wine:
```bash
apt install wine
```
В процессе установки система может запросить подтверждение на установку дополнительных пакетов. Просто нажмите **Y** и **Enter**, чтобы продолжить установку.
Некоторые Windows-приложения нуждаются в графическом интерфейсе. Для них потребуется установить рабочий стол GNOME:
```
add-apt-repository ppa:shemgp/gnome-40
```
```bash
apt update && apt install mutter gnome-session gnome-shell
```
Скриншот №3 — Установка
После завершения процесса установки оболочки Gnome и Wine, нам необходимо проверить версию и корректность установки до перехода к графическому интерфейсу:
```
wine --version
```
Скриншот №4 — Версия Wine
Если вы видите, что командная строка не открылась, значит, установка завершена правильно! Добавьте нового пользователя на машину в целях безопасности, т.к. мы не хотим подвергать риску какие-либо данные, а для этого необходимо разделить права и создать безопасную среду. Обычно рекомендуется не использовать учетные записи с правами администратора в повседневных задачах, чтобы снизить вероятность ошибок или вредоносных действий. Для создания учетной записи пользователя введите команду ниже:
```
adduser jhon && usermod -aG sudo jhon
```
Скриншот №5 — Добавим пользователя
Перейдем к графическому интерфейсу, для этого необходимо открыть панель Serverspace и выбрать нужный сервер:
Скриншот №6 — Веб — окно
В правом верхнем углу мы видим кнопку Web-console, щелкните по ней, затем нас перенаправит в GUI-интерфейс машины:
Скриншот №7 — Графический интерфейс
Также можно использовать другой способ для подключения через графический интерфейс:
- VNC (Virtual Network Computing): VNC расшифровывается как Virtual Network Computing и представляет собой протокол удаленного доступа, обеспечивающий отображение рабочего стола удаленной машины на локальном компьютере. Используя VNC, пользователи получают возможность удаленного управления рабочим столом Linux и выполнения множества задач, таких как запуск приложений и управление файлами;
- RDP (Remote Desktop Protocol): RDP, сокращение от Remote Desktop Protocol, был разработан компанией Microsoft и позволяет пользователям устанавливать удаленные соединения с рабочими столами систем Windows. Несмотря на то, что RDP ассоциируется в первую очередь с Windows, существуют реализации RDP для Linux, например, xrdp, позволяющие подключаться к Linux-машинам через RDP-клиент;
- X11: X11, также известная как X Window System, служит стандартным протоколом для графических интерфейсов пользователя (GUI) в Linux и других Unix-подобных операционных системах. С помощью X11 пользователи могут выполнять приложения на удаленном сервере, отображая при этом их окна на локальной машине;
- SPICE (Simple Protocol for Independent Computing Environments): SPICE — это специализированный протокол, разработанный специально для удаленного доступа к графическим рабочим средам. В частности, SPICE используется в сценариях виртуализации, например, в гипервизоре KVM, и обеспечивает повышенную производительность и сжатие данных для оптимизации удаленного доступа;
- NX: NX, технология, разработанная компанией NoMachine, обеспечивает удаленный доступ и виртуализацию графических настольных сред. Благодаря использованию NX пользователи получают повышенную производительность и оптимизированное сжатие данных, что обеспечивает превосходные возможности удаленного доступа.
Однако вернемся к нашему процессу установки, откройте терминал и введите:
```
winecfg
```
Скриншот №8 — Окно конфигурации
Перед нами откроется окно конфигурации, в котором мы сможем добавить любое приложение и выбрать совместимость в нижнем поле для ОС вплоть до Windows 10!
## Вывод
Wine позволяет пользователям Linux преодолеть барьеры, связанные с несовместимостью ОС, и получить более интегрированное окружение. Хотя для обеспечения оптимальной производительности и совместимости рекомендуется использовать альтернативные приложения, разработанные специально для Linux, Wine играет не малую роль для доступа к программам Windows в среде Linux.
https://serverspace.uz/support/help/kody-oshibok-http-servera.mdОписание распространённых ошибок сервера (4хх, 5хх) и методов их устранения для серверов, работающих на Nginx и Apache
Эффективное устранение кодов ошибок HTTP представляет собой серьезную задачу, поскольку требует понимания причин их возникновения и навыков поиска и устранения неисправностей. Коды ошибок, представленные трехзначными числами (например, 404, 500), означают наличие проблем с обработкой запроса клиента или сервера. Выявление конкретной ошибки и ее первопричины требует знания протокола HTTP, конфигурации сервера и поведения приложения.
## Как исправить ошибку сервера?
Во-первых, необходимо определить точный код ошибки HTTP, возвращаемой сервером (например, 404, 500), а затем проследовать действиям ниже.
**Проверка журналов сервера**: Проанализируйте журналы сервера, чтобы получить представление о времени возникновения ошибки и ее источнике. В веб-сервере Apache мы можем проверить журнал с помощью следующей команды:
```
cat /var/log/apache2/error.log
```
Для просмотра журнала доступа Nginx можно воспользоваться командой cat, less или tail. С помощью приведенной ниже команды проверьте журнал событий:
```
tail -n 50 /var/log/apache2/error.log
```
**Проверка конфигурации сервера:** Проверьте конфигурацию виртуальных хостов и файлы **.htaccess** на предмет возможных ошибок в конфигурации. Как уже описывали выше, можно воспользоваться утилитами cat или nano:
```
nano /etc/apache2/apache2.conf
```
```
nano /etc/apache2/sites-available/000-default.conf
```
Вторая команда - это конфигурация виртуального хоста, которую мы должны проверить на корректность работы. Для сервера Nginx мы будем использовать команды:
```
nano /etc/nginx/nginx.conf
```
```
nano /etc/nginx/nginx.conf
```
**Очистите cookies и кэш-память:** Убедитесь, что после применения изменений на сайте вы очищаете браузер от временного хранящейся информации.
Расположение этого пункта может отличаться в зависимости от браузера, но обычно его можно найти в разделе **Настройки** или **Конфигурация **далее перейти в подраздел **Конфиденциальность и безопасность ** и найти вкладку **Очистить данные просмотра** или **Очистить историю**.
Если эти базовые меры не помогли, можно попытаться сделать следующее:
- **Проверить соединение с базой данных:** Проверить настройки подключения к базе данных и доступность, если приложение использует базу данных;
- **Отладка кода приложения:** Проверить код приложения на предмет возможных проблем, вызывающих ошибку;
- **Проверить сетевые подключения:** Проверить настройки сети и брандмауэра, которые могут блокировать доступ клиентов;
- **Использовать онлайн-ресурсы:** Использовать форумы разработчиков и онлайн-ресурсы для обмена опытом и решениями;
- **Внедрить исправления:** Применить найденные исправления для устранения кодов ошибок HTTP.
Устранение ошибок HTTP требует систематического и методичного подхода, особенно для сложных веб-приложений. Поддержание в актуальном состоянии серверного и прикладного программного обеспечения, а также соблюдение лучших практик веб-разработки помогут предотвратить появление ошибок HTTP в будущем. Давайте рассмотрим тип распространенного кода ошибки более подробно!
## 400 Bad Request
Это означает, что сервер получает неверный синтаксис в HTTP-запросе со стороны клиента, который может возникать из-за:
- Неправильной настройка программного обеспечения или наличие ошибки в приложении браузера;
- Ошибка человека, связанная с невнимательностью, в результате которой URL-запрос не соответствует правилам настройки;
- Повреждение cookies в результате какого-либо воздействия на хранилище браузера.
Скриншот №1 — Ошибка 400
## 401 Unauthorized Error
Это означает, что сервер не может предоставить доступ пользователю на сайт из-за нелегитимного запроса. Такое может произойти из-за неправильного ввода учетных данных и нарушения идентификации, авторизации системы. Следовательно, для получения доступа и просмотра защищенного ресурса пользователю необходимо ввести учетные данные. Для решения этой проблемы можно попросить администратора веб-сервера проверить **.htpasswd** и ввести учетные данные для корректной работы с сайтом:
```
find ./ -name .htpasswd
```
Используя этот путь, вы можете открыть файл в текстовом редакторе **nano**, используя соответствующий синтаксис nano, а затем путь для открытия вашего файла!
Скриншот №2 — Ошибка 401
## 403 Forbidden
В этом случае мы сталкиваемся с запрещающими правилами на веб-сервере для соединений из нашей сети или машины. Для решения возникшей проблемы проверьте основную причину. Возможно, права доступа к файлам не установлены пользователем на сервере, посмотрим на типичную конфигурацию в этом случае. У нас есть пользователь **www-data** для управления сервером, мы пытаемся получить доступ к файлу .php или .html, значит добавляем правило для чтения файла:
```bash
chmod 644 /etc/site-for-test/index.html
```
В другой ситуации в файл **.htaccess** могут быть добавлены свои специфические запрещающие правила на сервере, определить их расположение можно через рабочий каталог, обычно они используются, как правила переопределения. Найти можно через команду, приведенную ниже:
```
find ./ -name .htaccess
```
Но есть и другая причина этой ошибки - если на веб-сервере нет листинга индексных файлов или каталогов, то сервер выдает сообщение об отказе. Если вы хотите включить листинг сайта, зайдите в конфигурацию и измените соответствующий параметр:
```
nano /etc/apache2/apache2.conf
```
Это поможет в решении ошибки!
Скриншот №3 — Ошибка 403
## 404 Not Found
Страница не найдена на сервере. Когда вы столкнулись с данной проблемой, необходимо задать себе несколько вопросов:
- Какой процесс был при возникновении этой ошибки?
- Указан ли правильный путь к корневому каталогу?
- Существуют ли в системе необходимые файлы?
И остальные детали, в которых крыться некорректная настройка веб-сервера или некорректном запросе URL:
```
nano /etc/apache2/apache2.conf
```
Скриншот №4 — Ошибка 404
## 500 Internal Server Eroor
Это означает, что сервер получает запрос, но не может его обработать из-за неизвестной проблемы на стороне веб-сервера. Обычно возникает при наличии двух или более проблем. Может происходить по разным сценариям, например: неправильно настроен системный файл .htaccess, .htpasswd и другие параметры, или отсутствует HTML-файл для формирования ответа клиенту, проверьте журнал сервера, как мы показывали в базовом руководстве выше!
Скриншот №5 — Ошибка 500
## 502 Bad Gateway и 504 Gateway Timeout
Шлюз или прокси-сервер не получает должного ответа от внутреннего сервера. Если для передачи трафика используется прокси, то проверьте:
- Работоспособность бэкэнда и ответы, а также проверьте его конфигурацию;
- Проверьте конфигурацию на стороне прокси-сервера и возможность взаимодействия по-другому порту, возможно, используемый вами порт занят другим программным обеспечением;
- Проверьте состояние сетевого соединения и конфигурацию системы, отправив данные через утилиту netcat и протестируйте передачу данных;
- Если в вашем web-приложении используются сокеты, необходимо проверить их расположение, наличие доступа и разрешения.
## 503 Service Unavailable
Эта проблема означает, что сервер не может обработать все запросы от клиентов. Если ваша машина не обслуживается, то увеличьте ресурсы процессора, оперативной памяти и проверьте одновременно доступ пользователей, потоков и процессов в конфигурации сервера! Так же ошибка может свидетельствовать о некорректной настройке балансировщика—нагрузки, для проверки его корректной настройки. Перейдите в **/etc/nginx/nginx.conf **и удостоверьтесь в формате и корректности записей.
Скриншот №6 — Ошибка 503
https://serverspace.uz/support/help/osnovy-linux-bash-rukovodstvo-po-napisaniyu-skriptov.mdИзучите основы Linux Bash: команды, аргументы, переменные, циклы и управляющие конструкции. Узнайте, как написать и как запустить Bash скрипт
## Введение
Bash является ценной утилитой, оболочкой и интерпретатором для решения современных и комплексных задач: ОС администрирования, как Linux и macOS. Его понятный синтаксис, тесная интеграция с операционной системой и эффективность работы с функциями, специфичными для оболочки, обеспечивают явные преимущества для конкретных случаев использования.
## Преимущества Bash скриптинга
- Оптимизированная автоматизация: скрипты Bash — это легкий и интуитивно понятный подход к автоматизации повторяющихся задач и выполнению обязанностей системного администратора. Скрипт выполняется достаточно быстро, оптимизируя такие задачи, как резервное копирование, ведение журналов и настройка пользователей;
- Бесшовная интеграция с системой: являясь оболочкой по умолчанию в большинстве Unix-подобных систем, Bash легко интегрируется с базовой ОС. Такая тесная интеграция обеспечивает легкий доступ к системным утилитам, переменным окружения и системной информации, упрощая выполнение операций, связанных с системой;
- Эффективность работы с командной строкой: bash представляет оболочку командной строки, что позволяет ему выполнять такие задачи, как работа с текстом, обработка файлов и навигация по каталогам. Поддержка пайпов, перенаправлений и других специфических для оболочки функций;
- Быстрое создание прототипов и тестирование: благодаря простому синтаксису, при выполнении командной строки Bash позволяет быстро создавать прототипы и тестировать идеи и решения. Такая гибкость оказывается полезной для быстрых исправлений и временных скриптов;
- Доступность для системных администраторов: скрипты Bash доступны системным администраторам, даже не обладающим обширными знаниями в области программирования. Такая доступность позволяет системным администраторам с легкостью создавать собственные решения и автоматизировать задачи;
- Оптимальные встроенные команды оболочки: bash предоставляет встроенные, оптимизированные команды, что делает его эффективным для выполнения небольших и повторяющихся задач;
- Переносимость на платформы: Хотя Bash в основном используется на Unix-подобных системах, он доступен на различных платформах, включая Linux, macOS и Windows (через Cygwin или Windows Subsystem for Linux). Такая переносимость позволяет использовать сценарии Bash в различных средах.
В заключение следует отметить, что достоинствами сценария Bash являются его простота, тесная интеграция с системами на базе Unix и умение решать специфические для оболочки задачи. Он позволяет автоматизировать задачи системного администрирования, легко работать с утилитами командной строки, быстро находить решения для обработки текста и работы с файлами. Доступность и способность быстро создавать прототипы идей делают его отличным выбором для системных администраторов и задач, требующих лаконичного и эффективного сценарного подхода.
## Требования к работе
- Root-права;
- Debian 11 или более поздняя версия;
- Начальные знания о работе ОС;
- Подключение к Интернету.
## Включим машину
Мы будем работать на [VPS сервере](https://serverspace.ru/services/vps-server/) нашего провайдера Serverspace. На ней будет использоваться операционная система Debian 11 с оболочкой bash. Прежде всего, зайдите в панель управления Serverspace и выберите нужную платформу для работы:
Скриншот №1 — Панель управления
Вы можете увидеть различные дата-центры в разных странах, выбрать по своему усмотрению и целям, желательно, чтобы они находились недалеко от вас. Затем можно посмотреть на операционную систему и выбрать одну из них, для нашего примера мы выбрали классическую Debian 11.
Скриншот №2 — Цены
После выбора ресурсов для вашей машины, вы можете увидеть их стоимость и нажать кнопку "Заказать", дождаться окончания настройки сервера. После этого введите свои учетные данные для входа в систему с помощью команды, приведенной ниже.
```bash
ssh root@162.64.253.1
```
Скриншот №3 — Вход
**Напоминание!** Необходимо заменить IP-адрес и ввести пароль от учетной записи.
## Создаем первый скрипт
Мы вошли и уже используем интерпретатор и оболочку bash. Знак **#** или если вы вошли в систему под пользователем **$**, то это означает, что машина уже готова читать и обрабатывать ввод в bash. Во-вторых, мы установим текстовый редактор для более удобной работы с файлом нашего скрипта:
```bash
apt install nano
```
Вы также можете использовать более простые и сложные текстовые редакторы, такие как: gedit, vim, Emacs и др. Выбирайте, что вам удобнее. Давайте создадим наш первый скрипт. Для этого необходимо найти путь к bash в вашей системе, по умолчанию это /bin/bash, но можно найти его и по команде:
```
cd / && which bash
```
Следующим шагом будет создание файла скрипта командой, приведенной ниже:
```
nano /etc/script.sh
```
Введите эти строки:
```bash
#!/bin/bash
echo "My first script in bash!"
```
Скриншот №4 — Первый скрипт
В первой строке мы указываем интерпретатор для скрипта, прописываем свой путь, как мы описали выше, но в 99% случаев путь будет по умолчанию. Строкой ниже мы видим команду echo, которая выводит на экран наш текст. Изменим права на исполняемый файл:
```
cd etc && chmod +x script.sh
```
Теперь вы можете запустить свой скрипт, указав путь к файлу или используя команду, приведенную ниже:
```
sh script.sh
```
Скриншот №5 — Запуск скрипта
Отлично! Мы впервые написали скрипт, но посмотрим на более сложные и полезные детали процесса написания скриптов.
## Аргументы
Существуют входные данные, которые необходимо обработать скрипту, обычно, вводимые пользователем или передаваемые другой утилитой, сервисом или скриптом. Для этого в языке программирования существует определение — аргументы или данные, необходимые для обработки алгоритмом. Рассмотрим это на примере:
Для этого необходимо создать новый файл и открыть его одной командой:
```
nano /etc/price.sh && chmod +x /etc/price.sh
```
Запишите скрипт ниже:
```bash
#!/bin/bash
echo "My suggested price is $1"
```
**Пояснение:** В этом скрипте мы используем аргумент и обозначаем его знаком $**K**, где** K **— это номер вводимого аргумента. При этом $0 всегда является именем выполняемого скрипта, **$1**, **$2** и т.д. Это просто список вводимых данных. Давайте запустим его!
```
sh /etc/price.sh 4333$
```
Скриншот №6 — Результат скрипта аргументов
Вы можете заметить пустую часть, это произошло из-за того, что мы не предусмотрели ошибку и в скрипте баг! Давайте сделаем механизм проверки:
```
nano /etc/price.sh
```
И введите этот код:
```bash
#!/bin/bash
if [ "$1" -z]; then
echo "You entering data don't accordance rule!"
exit 1
fi
echo "My suggested price is $1"
```
**Пояснение:** мы добавляем функцию проверки вводимых данных конструкцией if-then-else. Синтаксис if означает команду запуска условия, которую мы пишем и указываем фильтр для переменной. В данном случае мы используем опцию -z, которая означает, что поле пустое. Далее мы написали команду then, которая указывает на действие, если утверждение выше было истинным. В нашем случае мы выводим сообщение об ошибке и используем команду exit 1 — команду завершения программы с указанием ошибки. Запускаем и проверяем:
```
sh /etc/price.sh 44$ && sh /etc/price.sh
```
Скриншот №7 — Система проверки
Хорошо! Но если нам нужно использовать подготовленные данные в скрипте? Для этого у нас есть переменная!
## Переменные
Они представляют собой ячейки памяти, которые сохраняют информацию и позволяют использовать ее путем упоминания в скрипте. Объявление переменных: Переменные в Bash объявляются без использования ключевых слов, просто присваивая переменной значение. Например:
```
name="John" age=30
```
Переменные в Bash поддерживают различные типы данных благодаря динамической типизации. Имена переменных должны начинаться с буквы или символа **_ **, допускаются буквы, цифры. Чтобы облегчить понимание кода, используйте осмысленные имена переменных, а для доступа к их значениям используйте, например, символ доллара **$**:
```
echo "Hello, $name!"
```
Значение переменной может быть переназначено, изменено в любой момент выполнения сценария:
```
count=5
echo "Current value of count: $count"
count=10
echo "New value of count: $count"
```
Чтение значения от пользователя: С помощью команды read можно прочитать значение от пользователя и присвоить его переменной:
```
read -p "Enter your price: " price
echo "Awwww, $price?"
```
Удаление переменной: Для удаления переменной используйте команду unset:
```
unset name
```
Экспорт переменной: Если необходимо сделать переменную доступной для подпроцессов, можно воспользоваться командой export:
```
export MY_VARIABLE="price"
```
Переменные в Bash играют важную роль при написании скриптов и автоматизации задач, позволяя хранить и обрабатывать данные в течение всего времени выполнения программы или команд.
## Управляющие конструкции
В любом скрипте есть логический путь, по которому проходит информация, фильтруется, изменяет значение и выдает результат. Все это возможно благодаря управляющим конструкциям, добавляющим ветвления и возможность выбора. Существуют циклы, условные конструкции и т.д. Простой пример, который мы приводили выше, конструкция if-then-else. Она обычно используется для одного, двух или трех ветвлений и имеет структуру:
```
if [ condition ]; then
statement-1
elif [ condition-2 ]; then
statement-2
fi
```
В этом примере мы видим 3 ветви, но что делать, если у нас есть список условий и один параметр? Для этого можно использовать конструкцию switch-case. Все значения, входящие в наш параметр, сравниваются с другими в списке, поэтому выполняется действие в соответствии с ответом. Например:
```
read -p "What is machine you search for? " car
case "$car" in
"Volkswagen" )
price="3000$"
;;
"BMW" )
price="4000$"
;;
*)
price="we don't know"
esac
echo "You requesting cost of car: $price"
```
Введите это в файл, как мы делали ранее! И запустите его:
```
./etc/price.sh
```
Скриншот №8 — Пример switch case
После запуска проведем проверку:
Скриншот №9 — Проверка switch case
Хорошо, скрипт работает! Возникает следующая проблема: некоторые команды нужно выполнять определенное количество раз или до тех пор, пока условия не будут выполнены. Для этого мы используем циклы!
## Циклы
Мы можем использовать цикл for, который позволяет, например, последовательно итерировать определенную команду для каждого объекта:
```
cars=("Toyota" "Honda" "Ford" "BMW" "Tesla")
for ((i=0; i
https://serverspace.uz/support/help/nastrojka-raid-massiva.mdПодробное описание создания RAID массива в Linux — от выбора уровня RAID до конфигурирования и тестирование массива
## План создания RAID-массива в Linux
Конфигурирование RAID-массива включает в себя несколько основных этапов:
- Подготовка дисков: обеспечение доступности и подготовка физических дисков, которые будут использоваться в RAID-массиве. Диски могут быть новыми или содержать данные, которые необходимо сохранить;
- Выбор уровня RAID: определение оптимального уровня RAID-массива в соответствии с требованиями системы. Например, RAID 1 для обеспечения отказоустойчивости данных, RAID 0 для повышения производительности или RAID 5/6 для достижения баланса между отказоустойчивостью и производительностью;
- Создание массива RAID: использование утилиты mdadm (Multiple Device Administration) для создания логического RAID-массива на основе выбранного уровня RAID и физических дисков;
- Конфигурирование файловой системы: форматирование RAID-массива с использованием выбранной файловой системы для хранения данных;
- Монтирование RAID-массива: настройка автоматического монтирования RAID-массива при загрузке системы;
- Тестирование и проверка: проверка правильности конфигурации RAID-массива и его работоспособности путем создания, записи и чтения тестовых данных.
## Требования
- Root—права;
- Debian 11 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Добавим диск
В зависимости от инфраструктуры выберите способ подключения диска в систему. Для физической машины — подключиться к свободному порту, для виртуальной машины — заглянуть на вкладку гипервизора и добавить текущий или целевой диск, в другом случае, если вы выбрали VPS—сервер Serverspace, вы можете добавить необходимое пространство через главную панель:
Скриншот №1 — Панель управления
Выберите облачные технологии и серверы, затем выберите вкладку Настройки и прокрутите страницу до появления томов, затем нажмите кнопку Добавить:
Скриншот №2 — Создать диски
Во всплывающем окне выберите необходимое дисковое пространство, установите флажок и перезапустите сервер по кнопке ниже, после чего убедитесь, что диск подключен. В терминале введите команду:
```
lsblk
```
Скриншот №3 — Список дисков
Итак, два диска в системе есть и они подключены. На следующем шаге необходимо выбрать формат RAID.
## RAID схемы
В различных связках, комбинациях и архитектурах выделяют несколько современных RAID—схем для использования:
### RAID 0
Представляет собой базовый метод передачи данных путем чередования блоков информации между двумя или более дисками. При этом целые данные делятся на части, что повышает пропускную способность за счет использования нескольких дисков вместо одного накопителя. Однако в этом случае возникает существенная проблема: отсутствие отказоустойчивости. Если хотя бы один диск будет поврежден, то все данные превратятся в мусор. Эта простая система используется для временного хранения данных и систем с требованиями быстрого чтения и записи информации.
### RAID 1
Представляет собой основной метод передачи данных путем зеркалирования и синхронизации информации между двумя или более дисками. При этом все данные копируются на другое хранилище. При этом работает параметр отказоустойчивости и сохранения данных системы при повреждении одного из дисков, но отсутствует быстрая скорость записи данных по сравнению с **RAID 0**.
### RAID 5
Эти решения являются компромиссом между скоростью ввода-вывода и отказоустойчивостью в RAID-системе. Целостность данных будет возможна благодаря алгоритму блоков четности, которые сохраняют данные более надежно.
Процесс вычисления блоков четности зависит от уровня RAID и используемого алгоритма четности. Рассмотрим процессы вычисления блоков четности для RAID 5 и RAID 6, которые являются наиболее распространенными уровнями RAID, использующими блоки четности.
Предположим, у нас есть 4 диска A, B, C и P (где P — диск четности), и мы хотим записать данные на диски A, B и C. Для вычисления блока четности для данных, которые мы хотим записать на диски A, B и C, используется операция XOR (исключающее ИЛИ) над данными на этих дисках.
**Пример:**
Допустим, у нас есть данные 10101010, которые необходимо записать на диски A, B и C. Тогда процесс вычисления блока четности (P) будет выглядеть следующим образом: **P = A XOR B XOR C**
Таким образом, значение P будет равно результату операции XOR между данными на дисках A, B и C.
При чтении данных с дисков A, B и C RAID-контроллер может использовать блок четности (P) для восстановления данных на отказавшем диске. Например, при отказе диска В RAID-контроллер использует данные на дисках А, С и Р для восстановления данных, хранившихся на диске В. Но для такого RAID-массива нам необходимо как минимум три диска.
## Установка
После того как выбор RAID-системы сделан, необходимо обновить и установить системные пакеты на нашей машине для их корректной работы:
```bash
apt update && apt upgrade -y
```
Скриншот №4 — Обновление
Если на диске имеются важные данные, создайте их резервную копию с помощью приведенной ниже команды:
```bash
tar -czvf backup.tar.gz /etc && scp backup.tar.gz root@65.44.32.1:/etc/backup/
```
Необходимо изменить IP-адрес на IP вашей машины. Проверьте, установлен ли в вашем дистрибутиве Linux пакет для работы с RAID. В большинстве случаев это будет пакет **mdadm**. Установить его можно с помощью менеджера пакетов вашего дистрибутива (например, apt, yum, dnf). В нашем примере мы будем использовать пакетный менеджер apt, в вашем случае используйте его в соответствии с вашей ОС. Если вы забыли метку диска, необходимо набрать:
```
lsblk
```
После этого установите необходимое программное обеспечение, в нашей инструкции это будет **mdadm**, которое позволяет создать программную RAID-систему для диска в Linux:
```bash
apt install mdadm
```
Скриншот №5 — Установка
Теперь мы можем использовать **mdadm** для создания массива, выберем **RAID 1**, создадим виртуальное устройство контроллера и укажем необходимые диски для использования.
**Важно отметить!** В зависимости от архитектуры вашей сети вам необходимо решить. Будете ли вы использовать загрузочный диск ОС в RAID-системе или нет. Если ответ положительный, то необходимо убедиться, что загрузчик поддерживает версию md. Создадим массив командой, приведенной ниже:
```
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdb
```
Скриншот №6 — Создание массива
В утилите **mdadm** — это основная синтаксическая команда, опция **--create** позволяет создать массив, **/dev/mdo --level=1** устройство RAID 1, **--raid-devices=2 /dev/sdc /dev/sdb** в этой части мы указываем два используемых диска для нашего массива.
Проверим состояние процесса с помощью следующей команды:
```
cat /proc/mdstat
```
Скриншот №7 — Проверка массива
Для нашего массива необходимо создать единую файловую систему для всех дисков, мы будем использовать ext4 для наших целей:
```
sudo mkfs.ext4 /dev/md0
```
Скриншот №8 — Создадим файловую
Смонтируем RAID-систему в точку файловой системы:
```
sudo mkdir /mnt/md
sudo mount /dev/md0 /mnt/md
```
Скриншот №9 — Смонтируем массив
Добавьте RAID-систему в автозагрузку при старте, после чего откройте nano командой ниже и поставьте Tab в красное поле:
```
echo "/dev/md0 /mnt/md ext4 defaults 0 0" >> /etc/fstab
```
```
nano /etc/fstab
```
Скриншот №10 — Добавим автозагрузку
После этого перезагрузим службу:
```bash
systemctl daemon-reload
```
И введем команду, чтобы убедиться в корректности работы файловой системы и RAID:
```
lsblk
```
Скриншот №11 — Результат
## Вывод
Настройка RAID-массива в Linux включает в себя подготовку дисков, выбор уровня RAID, создание RAID-массива с помощью mdadm, настройку файловой системы и монтирование RAID—массива. Тестирование и проверка работоспособности установки является важнейшим условием обеспечения ее функциональности. Особые требования: root-доступ, Debian 11 или выше, знание ОС и подключение к Интернету. Также рассматривается добавление диска, выбор схемы RAID (RAID 0, RAID 1, RAID 5) и шаги по установке. В заключении дается краткий обзор процесса конфигурирования RAID в Linux.
https://serverspace.uz/support/help/utilta-dd-dlia-rezervnogo-kopirovania-windows.mdОптимизируйте процесс резервного копирования в Windows с использованием утилиты DD. Узнайте, как создавать и восстанавливать резервные копии.
В этой инструкции описан процесс создания резервных копий на сервере Windows Server с помощью Unix—подобной утилиты DD.
## Введение
Система резервного копирования является важным компонентом защиты данных. Выбор методов резервного копирования и пересылки зависит от ваших потребностей и условий использования. При настройке резервного копирования необходимо учитывать степень критичности данных, доступное пространство для хранения, скорость доступа, а также уровень защиты, который требуется для данных.
Утилита DD предназначена в основном для операционных систем на базе Linux и предлагает различные команды с определенными операндами для облегчения копирования файлов. Будучи одной из старейших утилит, DD создает резервные копии, совместимые с многочисленными программными приложениями. Однако ее функциональность в операционной системе Windows сравнительно ограничена по сравнению с аналогом для Linux. В частности, в версии для Windows отсутствует поддержка конвертации файлов и использования блочных устройств.
## Скачать утилиту
Прежде всего, нам нужно [скачать утилиту](https://disk.yandex.ru/d/dq3StQ_UJ_MGsA), затем проверить ее на наличие вредоносного программного обеспечения, это обязательный шаг для сохранения вашей безопасности. Выберите архив в файловом менеджере и загрузите [в сервис](https://www.virustotal.com/gui/home/upload), дождитесь результатов. Если вы увидите отчет, подобный этому, значит, все в порядке:
Скриншот №1 — Отчет о сканировании
**Внимание! **Мы не несем ответственности за программу, размещенную на сайте, в связи с отсутствием контроля над файлом, загружайте утилиту на свой страх и риск.
Открыв архив, вы увидите три файла, нам необходимо открыть программу формата .exe:
Скриншот №2 — Список файлов
## Создадим бэкап
Для начала работы с утилитой необходимо ввести приведенную ниже команду, но перед этим перейти в папку с исполняемым файлом:
```
cd C:\Users\Administrator.WIN22\Desktop && dd.exe --list
```
Скриншот №3 — Опции утилиты
Мы видим различные опции, которые можно использовать с этой командой, давайте решим задачу создания образа папки **диска C**. Для этого введите команду:
```
dd if=\\.\c:\tt\1.zip of=c:\tt\disk1.img bs=1440k
```
Скриншот №4 — Создадим ISO
Давайте разберем эту команду по шагам:
- dd: Это сама команда, указывающая на то, что вы хотите использовать утилиту dd.
- if=\\\.\c:\tt\1.zip: Параметр if означает входной файл, а \\\.\c:\tt\1.zip - это источник входных данных. В Windows \\\.\ используется для прямого доступа к физическому устройству, а c:\tt\1.zip представляет собой путь к исходному файлу. Это означает, что данные будут считаны из файла 1.zip, расположенного по адресу c:\tt\ на диске C:.
- of=c:\tt\disk1.img: Параметр of означает выходной файл, а c:\tt\disk1.img - место назначения выходного файла. Он указывает, что скопированные данные будут записаны в файл с именем disk1.img в каталоге c:\tt\ на диске C:.
- bs=1440k: Параметр bs означает размер блока. Этот параметр определяет размер блоков данных, которые dd считывает и записывает за один раз. В данном случае размер блока установлен в 1440 килобайт (1440k), что означает, что dd будет читать и записывать данные блоками по 1440 КБ.
**Обратите внимание**: перед созданием резервных копий необходимо убедиться, что на нужном диске достаточно свободного пространства.
Восстановим информацию из файла disk1.img с помощью следующей команды:
```
dd if=c:\tt\disk1.img of=\\.\c:\tt\new bs=1440k
```
Скриншот №5 — Распакуем ISO
Давайте разберем команду пошагово:
- dd: Это сама команда, указывающая на то, что вы хотите использовать утилиту dd.
- if=c:\tt\disk1.img: Параметр if означает "входной файл", а c:\tt\disk1.img - источник входных данных. Этот путь указывает, что данные будут считываться из файла с именем disk1.img, расположенного по адресу c:\tt\.
- of=\\\.\c:\tt\new: Параметр of означает "выходной файл", а \\\.\c:\tt\new - место назначения выходного файла. В Windows \\\.\ используется для прямого доступа к физическому устройству. Здесь за ним следует путь c:\tt\new, что означает, что данные будут записаны в файл с именем new по адресу c:\tt\.
- bs=1440k: Параметр bs означает "размер блока". Этот параметр определяет размер блоков данных, которые dd считывает и записывает за один раз. В данном случае размер блока установлен равным 1440 килобайтам (1440k), что означает, что dd будет обрабатывать данные блоками по 1440 КБ.
## Создадим задачу
Найдите в строке windows приложение **Task Scheduler** и откройте его:
Скриншот №6 — Поиск
После этого появится всплывающее окно с основным полем и пунктом для следующей настройки - создания задачи:
Скриншот №7 — Описание
Дайте имя задаче для понимания, запускаемого процесса, также можно добавить описание и установить флажок **Run with highest privileges**. Установите триггеры для запуска сценария, который мы напишем после этого:
Скриншот №8 — Триггер
Создайте новый текстовый файл и введите строки кода:
```
# Set the source and destination paths
$sourcePath = "c:\tt\1.zip"
$destinationPath = "c:\tt\disk1.img"
# Read the data from the source file and save it to the image file $sourceContent = Get-Content -LiteralPath $sourcePath -Encoding Byte Set-Content -LiteralPath $destinationPath -Value $sourceContent -Encoding Byte
# Set the source and destination paths for writing back to the floppy disk $sourcePath = "c:\tt\disk1.img" $destinationPath = "c:\new"
# Read the data from the image file and write it back to the floppy disk $sourceContent = Get-Content -LiteralPath $sourcePath -Encoding Byte Set-Content -LiteralPath $destinationPath -Value $sourceContent -Encoding Byte
```
Скриншот №9 — Скрипт
Сохраните файл в формате .bat, просто переименуйте его и замените .txt на .bat, после чего скопируйте путь к файлу и введите на вкладке Actions в планировщике:
Скриншот №10 — Путь к файлу
Или используйте Browse и найдите скрипт. Перейдите на следующую вкладку Settings:
Скриншот №11 — Настройки
И нажмите OK, теперь у нас есть запланированная задача, которая будет запускаться по таймеру!
## Вывод
Процесс создания резервных копий на сервере Windows Server с помощью Unix—подобной утилиты dd включает в себя ряд шагов, направленных на обеспечение безопасности и доступности данных. Система резервного копирования имеет первостепенное значение для защиты критически важных данных от потери или повреждения. Выбор методов резервного копирования и способов пересылки зависит от таких факторов, как критичность данных, емкость хранилища, скорость доступа и требуемый уровень безопасности.
Хотя утилита dd предназначена в основном для систем на базе Linux, она может быть использована и на серверах Windows для копирования данных. Хотя dd предоставляет различные команды и операнды для эффективного копирования файлов, важно отметить, что ее функциональность под Windows может быть менее широкой по сравнению с возможностями под Linux. Например, некоторые функции, такие как преобразование файлов и использование блочных устройств, могут быть ограничены или отсутствовать в версии для Windows.
https://serverspace.uz/support/help/kak-najti-fajly-po-ih-soderzhimomu-v-linux.mdИнструкция по использованию утилиты grep для поиска текста в файлах. Использование операторов, флагов и паттернов для оптимизации поиска
## Введение
Управление задачами в Linux поначалу может показаться сложным из-за ряда факторов, присущих дизайну и философии этой операционной системы. Несмотря на то, что Linux обладает невероятной мощью и гибкостью, ее уникальные характеристики могут вызывать у новичков ощущение сложности:
- Упор на командную строку: в управлении системой Linux в значительной степени опирается на командную строку. Несмотря на то, что она обеспечивает мощный контроль, она может быть пугающей для тех, кто привык к графическим интерфейсам;
- Кривая обучения: интерфейс командной строки требует изучения специфических команд, опций и синтаксиса. Это может отпугнуть пользователей, не знакомых с этими командами;
- Разнообразие дистрибутивов: Linux поставляется в виде различных дистрибутивов (дистров), каждый из которых имеет свои средства управления пакетами, конфигурационными файлами и репозиториями программного обеспечения. Такое разнообразие может привести к путанице при переходе от одного дистрибутива к другому;
- Ручное конфигурирование: многие задачи в Linux требуют ручной настройки с помощью текстовых файлов. Хотя это и обеспечивает более тонкий контроль, но может оказаться непосильным для тех, кто привык к автоматическим настройкам;
- Управление зависимостями: установка программного обеспечения иногда связана с разрешением зависимостей, т.е. других пакетов, необходимых для работы программы. Это может оказаться сложной задачей, особенно для сложных приложений.
Однако важно отметить, что кажущаяся сложность управления Linux уменьшается по мере того, как пользователи знакомятся с этой системой. Существует множество ресурсов, учебников и сообществ, помогающих пользователям эффективно изучать и использовать Linux. Кроме того, командная строка обеспечивает эффективность и точность выполнения команд после их освоения. Несмотря на то, что поначалу Linux может показаться сложной системой, по мере приобретения уверенности и опыта в управлении системой она становится очень полезной. Также для более простого управления существуют утилиты для поиска нужных данных по команде!
## Требования
- Root-права;
- Debian 11 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Установка
Прежде всего нам необходимо обновить все пакеты в системе и установить их:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Для нашей цели мы будем использовать утилиту **grep**, которая поможет расширить диапазон наших возможностей. Для поиска нужной информации мы будем использовать различные атрибуты. По умолчанию эта утилита уже есть в репозиториях или установлена в нашей операционной системе, проверьте это, набрав команду, приведенную ниже:
```
grep --help
```
Скриншот №2 — Помощь по команде
Если вы увидите опции для команды, значит, вы уже установили ее, и теперь мы можем использовать утилиту **grep** одним способом. Для этого введите команду, приведенную ниже:
```
grep -r "tt" /etc
```
Система выполнит поиск в каталоге /etc и его подкаталогах вхождений строки tt в любые файлы. Если таковые будут найдены, то соответствующие строки, содержащие шаблон tt, будут выведены в терминал в качестве выходных данных.
Обратите внимание, что для поиска в системных каталогах, таких как /etc, могут потребоваться привилегии администратора, поэтому в зависимости от конфигурации системы может потребоваться использование команды с повышенными правами (с помощью sudo).
```
grep -v "tt" /root/sometextfile.txt
```
В этой комбинации опций мы подбираем только целые слова, / означает корневой каталог, а -name имеет смысл искать формат и имя. Также мы можем использовать инверсный запрос, для этого достаточно ввести опцию -v для поиска всего содержимого, исключающего шаблон, а опция -l выводит имена файлов, содержащих шаблон:
```
grep -w -r "tt" /
```
Это можно использовать, например, при поиске файла количества содержимого apt list:
```bash
apt list | grep nginx
```
В нашем случае **знак |** означает pipe или оператор, который передает выход из первой команды во вторую в качестве аргумента:
Скриншот №3 — Поиск
В результате мы видим файл с упоминанием nginx в заголовке файлов или если используем опцию с точным совпадением искомого слова:
```bash
apt list | grep -w nginx
```
Скриншот №4 — Точный поиск
## Вывод
Linux предоставляет множество различных утилит для работы с модулями системы, один из которых мы рассмотрели в этой статье. Используя синтаксис и приведенные выше опции, вы сможете искать и более эффективно выполнять поставленные перед вами задачи, при работе с файлами.
https://serverspace.uz/support/help/kak-nastroit-redirekt-cherez-htaccess.mdСоздание и настройка редиректов (перенаправлений) 301 и 302 с помощью файла конфигурации сервера .htaccess. Готовые решения для сервера Apache
## Введение
Редиректы являются важнейшим инструментом для веб—сайтов компаний и обладают многочисленными преимуществами для эффективного управления:
- Адаптация к изменениям: поскольку компании часто обновляют, реорганизуют или удаляют веб—страницы, редиректы играют важную роль в обеспечении плавного перехода. Автоматически направляя посетителей на новые или нужные страницы, редиректы позволяют избежать разочарований, связанных с неработающими ссылками или сообщениями об ошибках.
- Сохранение SEO—рейтинга: поисковые системы, такие как Google, учитывают такие факторы, как качество и количество ссылок, при определении рейтинга страницы в результатах поиска. Без надлежащей переадресации при структурных изменениях сайта или модификации URL—адресов компания рискует потерять ценные позиции в рейтинге SEO. Решением проблемы являются редиректы, которые позволяют сохранить видимость в поисковых системах, указывая на перемещение страницы.
- Повышение качества обслуживания пользователей: обеспечение положительного пользовательского опыта является важнейшим условием удержания и привлечения посетителей сайта. Перенаправления в этой области являются отличным решением, так как они легко направляют пользователей к нужному контенту. Это устраняет путаницу и раздражение, которые могут возникнуть при переходе по ссылкам или вводе URL—адресов.
- Оптимизация маркетинговых мероприятий: в маркетинговых кампаниях часто используются специальные целевые страницы, которые могут устареть после завершения кампании. Перенаправления доказывают свою полезность, направляя трафик с этих рекламных URL на другие релевантные страницы, обеспечивая непрерывный поток вовлечения пользователей.
В двух словах, редиректы незаменимы для обеспечения бесперебойной работы пользователей, поддержания SEO—рейтинга, гибкого управления изменениями в структуре сайта, контенте и URL—адресах. Они помогают сохранить авторитет бренда и предоставляют удобства пользования сайтом.
## Требования к настройке
- Root-права;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Подготовка системы
Прежде всего нам необходимо обновить все пакеты в системе и установить их:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Если у вас уже есть веб—сервер с HTML или PHP—страницей, то этот этап можно пропустить, далее мы будем настраивать веб-сервер шаг за шагом. Нам необходимо загрузить пакет, в нашем примере это будет Apache. Введите следующую команду:
```bash
apt install apache2
```
Скриншот №2 — Установка
Сконфигурируем среду для настроек web—сервера, откроем основной конфигурационный файл:
```
nano /etc/apache2/apache2.conf
```
И изменим все параметры **AllowOverride** на значение **All**, что необходимо для корректной работы файлов **.htaccess**, которые мы создадим в рабочем каталоге сайта. Затем нажимаем комбинацию **Ctrl+O** и **Ctrl+X** для сохранения и выхода. Создайте рабочий каталог сайта и две html—страницы для перенаправления:
```
mkdir /etc/test
```
С помощью приведенной ниже команды создайте html—страницу для стартового перенаправления:
```
nano /etc/test/site1.html
```
Введите этот HTML—код ниже или используйте свою собственную страницу:
```html
FIRST PAGE
# That starting page!
```
Скриншот №3 — Первая страница
С помощью приведенной ниже команды создайте html—страницу для целевого сайта:
```
nano /etc/test/site2.html
```
Введите этот HTML—код ниже или используйте свою собственную страницу:
```html
SECOND PAGE
# Congratulations, you are in target site!
```
Скриншот №4 — Вторая страница
После того как мы создали страницу для нашей манипуляции, мы можем перейти к настройкам сайта с помощью следующей команды:
```
nano /etc/apache2/sites-available/000-default.conf
```
И отредактируйте параметры соответствия для корректной работы, укажите **DocumentRoot** как папку, которую мы создали ранее, **ServerName** в этом поле введите имя домена, а в последнем для вашей директории измените **AllowOverride** на **All**! **Ctr+O и Ctrl+X** для сохранения и выхода из файла:
Скриншот №5 — Конфигурация сайта
## Перенаправление
Теперь мы можем создать файл **.htaccess** для перенаправления нашей страницы по различным HTTP—кодам, для чего выполним следующую команду:
```
nano /etc/test/.htaccess
```
Для осуществления перманентного перенаправления необходимо указать HTML—страницу командой и синтаксисом, приведенными ниже:
```
RewriteEngine On
RewriteRule ^start$ /target [R=301, L]
RewriteRule ^start$ index.html
RewriteRule ^target$ index2.html
```
В первой строке мы указываем включенный статус модуля override, во второй видим правило редиректа с кодом 301, в третьей назначаем index.html стартовой меткой, а целевой в соответствии с index2.html.
Скриншот №6 — Редирект
Перезапустите веб—сервер и включите модуль override:
```
sudo a2enmod rewrite && systemctl restart apache2
```
Скриншот №7 — Перезапуск
Проверим реализацию нашего перенаправления, перейдем на сайт:
Скриншот №8 — Начальная страница
Вторая страница выглядит следующим образом:
Скриншот №9 — Целевая страница
В том, что перенаправление произошло, можно убедиться с помощью инструментов браузера, нажав клавишу **F12** и наблюдая за HTTP/S—запросами от клиента и сервера:
Скриншот №10 — Проверка редиректа 301
Итак, мы видим в колонке статуса 301 код HTTP—перенаправления, следовательно, все настройки системы и веб-сервера работают правильно! Далее, если мы хотим изменить код перенаправления, то необходимо лишь немного изменить предыдущую конфигурацию:
```
nano /etc/test/.htaccess
```
Введите этот код вместо предыдущей конфигурации:
```
Redirect 302 /start http://vdushu.space/target
RewriteRule ^start$ index.html
RewriteRule ^target$ index2.html
```
В этом случае мы прямо указываем на перенаправление синтаксисом выше Redirect, затем выбираем для этого HTTP—код и сохраняем файл! Проверим результат:
Скриншот №11— Проверка редиректа 302
## Вывод
Редиректы служат незаменимым инструментом для обеспечения бесперебойной работы пользователей, сохранения SEO—рейтинга и умелого управления изменениями в структуре сайта, его содержимом и URL. Стратегически грамотная реализация различных типов редиректов позволяет повысить доверие к бренду, улучшить удобство использования сайта и добиться цифрового процветания. Процесс реализации перенаправления в Apache2 включает в себя настройку веб—сервера и создание файлов .htaccess для эффективного управления поведением перенаправления. Правильная настройка редиректов позволяет направлять пользователей на нужный контент, что способствует успешному присутствию в Интернете.
https://serverspace.uz/support/help/linux-ispolzovanie-ps-kill-i-nice.mdУправление процессами в Linux обеспечивает контроль и манипулирование запущенными программами в системе. Позволяет отслеживать состояние процессов, изменять их приоритеты, запускать и завершать выполнение программ. Наиболее частыми инструментами, используемыми системными администраторами, являются ps, nice и kill. В данном обзоре рассмотрели основные…
Управление процессами в Linux обеспечивает контроль и манипулирование запущенными программами в системе. Позволяет отслеживать состояние процессов, изменять их приоритеты, запускать и завершать выполнение программ. Наиболее частыми инструментами, используемыми системными администраторами, являются ps, nice и kill. Каждый из этих инструментов рассмотрим более подробно ниже.
## Использование ps
Ps позволяет отображать и управлять процессами в операционной системе. Она предоставляет информацию о работающих процессах и позволяет мониторить их состояние. Также можно использовать команду ps для фильтрации и поиска конкретных процессов. Это полезная утилита для управления и анализа процессов в Linux.
### Отображение списка активных процессов
Когда вы открываете терминал на Linux-системе, можно использовать команду ps без аргументов, чтобы отобразить список всех текущих процессов. Простой пример:
```
ps
```
В выводе команды отобразится список процессов, выполненных под вашим идентификатором пользователя (UID).
### Отображение процессов определенного пользователя
Если необходимо отобразить список процессов только для определенного пользователя, вы можете использовать следующий синтаксис:
```
ps -u username
```
Замените username на имя пользователя, для которого вы хотите отобразить список процессов.
### Отображение полного списка информации о процессах
Значение по умолчанию для команды ps отображает только основную информацию о процессах. Однако, вы можете получить более подробную информацию о процессах, используя следующую команду:
```
ps -aux
```
Такая команда отобразит полный список всех процессов и информацию о них, включая PID, родительский PID, статус, использование ресурсов и многое другое.
### Отображение процессов в виде древовидной структуры
Для отображения процессов в виде древовидной структуры и визуализации связи между родительскими и дочерними процессами в Linux, можно воспользоваться следующей командой:
```
ps f
```
Такая команда покажет процессы, отображая их в виде древовидной структуры.
### Отображение информации о процессе по определенному идентификатору процесса (PID)
Вы можете получить подробную информацию о процессе, зная его идентификатор процесса (PID). Вот пример команды:
```
ps -p PID
```
Замените PID на актуальный идентификатор процесса, чтобы получить информацию о нем.
### Отображение процессов в реальном времени
Для отображения процессов в реальном времени, можно использовать команду top. Выйти из top можно, нажав клавишу q.
### Фильтрация и сортировка вывода
Команда ps также поддерживает фильтрацию и сортировку вывода. Например, если нужно отобразить только процессы, связанные с конкретной программой:
```
ps -C program
```
Замените program на имя программы, для которой непосредственно необходимо отобразить процессы.
Конечно, это лишь основные примеры применения ps для управления процессами в Linux. Команда ps имеет еще множество других опций и флагов, позволяющих вам полностью контролировать и анализировать процессы в вашей системе. Для получения подробной информации о доступных опциях команды ps вы можете воспользоваться командой man ps. Она отобразит страницу справки, содержащую полное описание команды ps и ее опций.
## Использование команды kill
Команда kill является мощным инструментом для управления процессами в операционных системах Linux. Она позволяет отправлять сигналы процессам, что позволяет контролировать их поведение.
### Отправка сигнала процессу
Основное использование команды kill - отправка сигнала процессу. По умолчанию команда kill отправляет процессу сигнал TERM (15), что приводит к стандартной остановке процесса. Пример использования:
```
kill PID
```
Замените PID на идентификатор процесса, который вы хотите остановить.
### Отправка других сигналов
Команда kill также позволяет отправлять другие сигналы процессу. Например, чтобы послать процессу сигнал KILL (9), который немедленно прекратит выполнение процесса, используйте следующий синтаксис:
```
kill -9 PID
```
Замените PID на идентификатор процесса.
### Отправка сигнала группе процессов
С помощью команды kill можно отправлять сигнал всей группе процессов. Разные процессы могут иметь одинаковый идентификатор группы (PGID). Пример использования:
```
kill -SIGTERM -- -PGID
```
Замените PGID на идентификатор группы процессов.
```
Удаление "зомби"-процессов:
```
"Зомби"-процессы — завершенные, но не полностью удаленные процессы, которые все еще присутствуют в системе. Вы можете очистить "зомби"-процессы, отправив сигнал процессу PID. Пример использования:
```
kill -SIGCHLD PID
```
Замените PID на идентификатор процесса.
### Проверка существования процесса перед отправкой сигнала
Если вы хотите убедиться, что процесс существует, прежде чем отправить ему сигнал, вы можете использовать параметр -0. Пример использования:
```
kill -0 PID
```
Замените PID на идентификатор процесса.
### Использование имен процессов
Вместо идентификаторов процессов (PID) можно использовать имена процессов при работе с командой kill. Для этого используется команда pkill. Пример использования:
```
pkill process_name
```
Замените process_name на имя процесса.
### Отправка сигнала на определенный поток процесса
Если процесс имеет несколько потоков, можно отправить сигнал только на определенный поток. Используйте следующий синтаксис:
```
kill -s SIGNAL -PID
```
Замените SIGNAL на сигнал и PID на идентификатор процесса.
Это основные примеры использования команды kill для управления процессами в Linux. Команда kill поддерживает другие флаги и сигналы, позволяющие более тонко настраивать управление процессами.
## Использование nice
Когда в Linux запускаются различные процессы, они получают некоторое количество ресурсов системы для своего выполнения. Команда nice предоставляет возможность установить приоритет выполнения процесса, что позволяет контролировать используемые ресурсы. В этой инструкции рассмотрим, как использовать команду nice для управления процессами в Linux.
### Понимание значения приоритета
Приоритет процесса в Linux измеряется числом, которое может варьироваться в диапазоне от -20 до 19. Более низкое значение приоритета означает более высокий приоритет выполнения процесса. Пользователи с правами суперпользователя (root) могут устанавливать отрицательные значения приоритета, тогда как обычные пользователи могут использовать только положительные значения.
### Запуск процесса с помощью nice
Чтобы запустить процесс с определенным приоритетом, используйте команду nice перед командой выполнения процесса. Синтаксис команды таков:
```
nice -n значение команда
```
Например, чтобы запустить процесс с приоритетом 10, выполните следующую команду:
```
nice -n 10 команда
```
Здесь команда — команда, которая будет запущена с определенным приоритетом.
### Отслеживание приоритета выполнения процесса
Чтобы проверить текущий приоритет выполнения процесса, воспользуйтесь командой nice без дополнительных параметров:
```
nice
```
Эта команда отобразит текущий приоритет выполнения процесса пользователя.
### Изменение приоритета выполнения процесса
Если процесс уже выполняется, но вы хотите изменить его приоритет, можно воспользоваться командой renice. Синтаксис команды таков:
```
renice -n -p
```
Чтобы узнать идентификатор процесса, выполните команду ps или top. Например, чтобы изменить приоритет выполнения процесса с идентификатором 1234 на -5, введите следующую команду:
```
renice -n -5 -p 1234
```
### Пример использования команды nice
Рассмотрим пример использования команды nice. Допустим, у нас есть процесс с командой sleep, который ждет 10 секунд:
```
sleep 10
```
Чтобы запустить этот процесс с приоритетом 5, выполните следующую команду:
```
nice -n 5 sleep 10
```
Теперь процесс будет выполняться с более низким приоритетом. Команда nice является мощным инструментом для управления приоритетом выполнения процессов в Linux. Она позволяет контролировать использование системных ресурсов и повысить эффективность выполнения процессов.
В данном обзоре рассмотрели основные инструменты для управления процессами в ОС семейства Линукс. Все они представляют собой довольно мощные утилиты для отображения информации о текущих процессах, завершения процессов и настройки приоритета выполнения процесса, что позволяет контролировать используемые ресурсы.
https://serverspace.uz/support/help/kak-ustanovit-sentry-s-docker-na-ubuntu.mdSentry - система для удобного и быстрого поиска ошибок в приложении, диагностики и повышения производительности.
## Что такое Sentry
При разработке приложения на каком-либо языке программирования очень часто появляются ошибки, влияющие на корректность его работы. Отдельные ошибки могут заметно влиять на производительность, что в итоге сказывается на качестве оказываемого сервиса.
Имеющиеся инструменты тестирования помогают находить многие ошибки до выхода релиза. После релиза ошибки можно найти в логах работы самого приложения, при этом на поиск нужных сообщений иногда затрачивается много времени. Сбор логов в единую систему сокращает это время. И анализ собранных логов часто начинается только после получения сообщений от пользователей приложения об ошибках, хотя в тестовых и предпродуктовых окружениях этих ошибок не было.
Sentry дает возможность оперативно узнавать о проблемах и сбоях (в том числе на стороне пользователя), выполнять диагностику работы приложения. Система анализирует код для выявления мест, требующих исправления. Также, предоставляет данные мониторинга для повышения производительности. Умеет определять наличие конфиденциальных данных в коде (пароли, ключи, номера банковских карт и др.), и выполнять их очистку.
Поддерживаются многие популярные языки программирования (JavaScript, Python, Go, Kotlin, Ruby) и фреймворки. Имеет большое количество интеграций с современными сервисами: GitHub, GitLab, Jira, Slack, Asana, Trello и др.
Sentry доступен в виде сервиса с ежемесячной оплатой. Также, это open source приложение, которое можно установить, например, на виртуальный сервер с ОС Ubuntu в облаке Serverspace, и далее будет описан процесс установки.
## Системные требования
- Docker 19.03.6;
- Compose 2.0.1+;
- 4 CPU Cores;
- 8 GB RAM;
- 20 GB Free Disk Space.
Это минимальные требования к CPU, RAM и объему диска. При росте проекта потребуется их увеличение.
## Процесс установки
Sentry – составное приложение, собрано из некоторого количества Docker образов: само приложение, различные СУБД, сервисы кеширования, web сервер и др. Поэтому имеется три этапа:
- Установить системные пакеты;
- Установить пакеты для Docker;
- Скачать весь набор образов, и запустить контейнеры.
Перед установкой требуется обновить кеш для apt:
```bash
sudo apt update
```
Далее установить системные пакеты:
```bash
sudo apt install ca-certificates curl gnupg
```
Свежие версии Docker доступны в репозитории разработчика, рекомендуется импортировать соответствующий GPG ключ:
```bash
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
Создать новую запись для репозитория, чтобы он стал доступен:
```
sudo echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
Обновить кеш для apt после добавления репозитория:
```bash
sudo apt update
```
Установить пакеты Docker:
```bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose docker-compose-plugin
```
Проверить запущен ли сервис Docker:
```bash
sudo systemctl status docker.service
```
В выводе статус сервиса должен быть "active (running)":
Если статус "inactive (dead)", то запустить его:
```bash
sudo systemctl start docker.service
```
Далее можно переходить к установке Sentry. Для этого - клонировать GitHub репозиторий:
```bash
git clone https://github.com/getsentry/self-hosted.git
```
В результате, в домашней директории пользователя будет создан каталог "self-hosted" с необходимым содержимым, среди которого скрипт "install.sh" для установки Sentry. Чтобы его запустить требуется перейти в созданный каталог:
```
cd self-hosted
```
Запустить скрипт:
```
sudo ./install.sh
```
В процессе установки появится запрос на сбор и отправку данных о работе установленного экземпляра Sentry:
Необходимо самостоятельно определить отправлять данные или нет, и ввести "y" или "n" исходя из решения. Также, будет предложено создать пользователя – для этого ввести при запросе произвольные логин и пароль. Этот пользователь будет использован после установки для входа в веб-интерфейс. После этого будет выполнено скачивание необходимого ПО для работы Sentry – это займет какое-то время. Фактически, на сервер загрузятся несколько Docker образов (Memcached, nginx, redis, postgres и др.), которые используются для запуска соответствующих контейнеров. Эти образы прописаны в файле docker-compose.yml – с его помощью запускается вся система. Для этого, находясь в каталоге "self-hosted" (в который были первоначально загружены файлы) выполнить команду:
```bash
sudo docker-compose up -d
```
Запуск всех контейнеров займет какое-то время, после чего веб-интерфейс системы будет доступен на 9000 порту. Для его открытия ввести в браузере IP сервера и порт в виде http://ip_address:9000, после чего откроется начальная страница для входа:
Необходимо залогиниться с логином и паролем, заданными при запуске скрипта установки. Если по какой-либо причине пользователь создан не был, то его можно создать командой:
```bash
sudo docker-compose run --rm web createuser
```
В процессе ввести нужный адрес email в поле "Email" и пароль два раза в "Password" и "Repeat for confirmation". При запросе добавить ли нового пользователя в администраторы системы ("Should this user be a superuser?") ответить "y".
После введения логина и пароля появится страница "Welcome to Sentry", на которой можно оставить имеющиеся значения без изменений:
Эти настройки доступны в административном разделе системы если возникнет необходимость их поменять. Далее откроется основной интерфейс системы:
Это значит, что Sentry успешно установлен, и можно переходить к настройке и использованию.
https://serverspace.uz/support/help/kak-otkryt-terminal-v-ubuntu-linux.mdУзнайте, как просто открыть терминал в Ubuntu Linux из нашего простого руководства. Запуск терминала из-под Windows и с помощью GIU методов
## Введение
Взаимодействие с операционной системой делится на два типа — **GUI** и **CLI**, на ядро пользователи или система за них устанавливают различные оболочки для более комфортной работы или же интерфейсы. Но ни один из них не главенствует среди пользователей в силу специфики целей использования ОС. Новички предпочитают графический интерфейс, который более интуитивен и удобен по сравнению с командной строкой. Существуют Gnome, KDE, Cinnamon, MATE и др. Все они имеют набор утилит и графических элементов для различных целей: офисной работы, программирования, игр, веб-серфинга и т.д. С другой стороны, CLI — это совсем другое удобство и комфорт для администраторов, разработчиков и любых IT-специалистов из-за преимуществ командной строки.
Терминал (или командная строка) и графический интерфейс пользователя (GUI) представляют собой два различных способа взаимодействия с операционной системой. Каждый из них имеет свои преимущества в различных ситуациях. Вот несколько преимуществ терминала перед графическим интерфейсом:
- Скорость и эффективность: В терминале можно выполнять команды с помощью текстовых команд. Это гораздо быстрее и эффективнее, чем поиск и нажатие меню и кнопок в графическом интерфейсе. Если знать команды, это может сэкономить много времени;
- Гибкость и контроль: Терминал обеспечивает больший контроль над системой, чем графический интерфейс. Вы можете выполнять сложные операции, автоматизировать задачи с помощью скриптов и более точно настраивать систему;
- Удаленное управление: Терминал позволяет управлять удаленными системами по SSH или другим протоколам, что особенно удобно для администрирования серверов и удаленных компьютеров;
- Отсутствие зависимости от графической оболочки: В некоторых ситуациях, например, при работе с серверами, где отсутствует графическая оболочка, терминал становится единственным доступным способом взаимодействия с системой;
- Удобство для опытных пользователей: Для опытных пользователей и администраторов терминал может быть более удобным инструментом для выполнения сложных задач, особенно если они знакомы с командами и сценариями.
Однако графический интерфейс имеет и свои преимущества, особенно для начинающих пользователей и тех, кто предпочитает визуальное взаимодействие. Графический интерфейс обеспечивает более интуитивный и наглядный способ доступа к функциям и приложениям, что делает его более доступным для широкого круга пользователей.
Таким образом, использование терминала или графического интерфейса зависит от ваших предпочтений, уровня опыта и конкретных задач, которые вы выполняете на компьютере или сервере. В большинстве случаев сочетание использования терминала и графического интерфейса позволяет достичь наилучшего результата и эффективности при работе с операционной системой.
## Как открыть терминал из-под Windows
Открыть терминал в Ubuntu можно, подключившись с другой машины, например, для удаленного управления системой можно использовать терминал Windows-PowerShell. В окне терминала необходимо нажать сочетание клавиш Win + X, после чего появится всплывающее меню:
Скриншот №1 — Всплывающее окно
В этом списке необходимо выбрать Terminal (Admin), после чего всплывет окно. Введите нижеприведенную команду, которая позволит подключиться к серверу и использовать терминал Ubuntu, но помните, что вам необходимо изменить IP-адрес на IP-адрес вашей машины:
```bash
ssh root@93.183.72.17
```
Скриншот №2 — Подключение
После ввода учетных данных вы получите доступ к системе!
## GUI методы
Если у вас есть прямой доступ к графическому интерфейсу, вы можете нажать комбинацию кнопок **Ctrl + Alt + T**, и в системе появится окно терминала:
Скриншот №3 — Окно терминала
Но если вам не нравится это сочетание и кажется, что оно мешает, вы можете изменить в настройках связку кнопок и выделить нужное сочетание. Нажмите кнопку в нижнем углу и наберите в строке поиска **Settings**, затем прокрутите левую полосу до пункта **Keyboard**, затем прокрутите правую полосу до пункта **Keyboard ****Shortcuts**. После этого нажмите на кнопку под заголовком и выберите пункт **Launchers** и измените комбинацию, нажав на нужную кнопку:
Скриншот №4 — Настройки
Также можно нажать комбинацию кнопок **Alt+F2**, при этом всплывают окна, в которых для графического интерфейса Gnome можно выполнить ввод:
```
gnome-terminal
```
Скриншот №5 — Запуск команды
И вы увидите открывшийся Терминал! Другой способ. Откройте строку поиска и наберите **Terminal** для открытого окна, нажмите на иконку Терминала и вы в нем:
Скриншот №6 — Поисковая строка
## Вывод
Управление операционной системой может осуществляться через два основных типа интерфейсов: графический интерфейс пользователя (GUI) и интерфейс командной строки (CLI). Каждый из них имеет свои преимущества и служит определенным целям.
CLI, или терминал, обладает такими преимуществами, как скорость, эффективность, гибкость и возможность удаленного управления. Он является предпочтительным инструментом для опытных пользователей, администраторов и ИТ-специалистов, которым требуется точный контроль и автоматизация. Кроме того, он становится незаменимым в сценариях, где графические оболочки недоступны, например, при администрировании серверов.
https://serverspace.uz/support/help/rdp-klienty-udalennogo-dostupa-dlya-linux.mdПошаговая инструкция по подключению к серверу на Linux Debian по протоколу RDP с компьютера под управлением Windows
## Введение
Графический интерфейс пользователя (GUI) является неотъемлемым компонентом современной вычислительной техники, предоставляя пользователям визуальный и интерактивный способ взаимодействия с программным обеспечением, приложениями и операционными системами. Использование графического интерфейса пользователя дает ряд преимуществ, которые способствуют повышению удобства и эффективности работы с компьютером:
- Интуитивность: В графических интерфейсах используются знакомые и понятные пиктограммы, меню, кнопки и визуальные элементы. Пользователи могут быстро понять, как выполнять задачи, не требуя при этом обширных технических знаний или запоминания сложных команд.
- Простота использования: Графические интерфейсы упрощают сложные операции и задачи, делая их доступными для более широкого круга пользователей. Благодаря простому взаимодействию пользователи могут легко перемещаться по опциям и функциям.
- Уменьшение кривой обучения: По сравнению с интерфейсами командной строки графические интерфейсы обычно имеют меньшую кривую обучения. Пользователи могут быстро перейти к продуктивной работе без необходимости запоминать команды и синтаксис.
- Визуальная обратная связь: Графические интерфейсы обеспечивают визуальную обратную связь в реальном времени, позволяя пользователям мгновенно видеть результаты своих действий. Такая обратная связь повышает производительность и минимизирует количество ошибок.
- Многозадачность: Графические интерфейсы позволяют пользователям работать с несколькими приложениями и окнами одновременно, что делает многозадачность более эффективной и управляемой.
- Графическое представление: Сложные данные и информация могут быть представлены наглядно, с помощью графиков, диаграмм и изображений, что облегчает их анализ и понимание.
Хотя графические интерфейсы имеют множество преимуществ, необходимо признать, что они могут подходить не для всех сценариев. В некоторых случаях задачи могут быть более эффективно решены с помощью интерфейсов командной строки, особенно для опытных пользователей, системных администраторов и разработчиков, которым требуется больший контроль и автоматизация.
Таким образом, графические интерфейсы играют важную роль в современных вычислительных системах, обеспечивая интуитивно понятный, удобный и визуально привлекательный интерфейс, позволяющий пользователям легко взаимодействовать с программным обеспечением и операционными системами. Сочетание графических интерфейсов и CLI обеспечивает пользователям универсальную вычислительную среду, отвечающую различным потребностям и предпочтениям.
## Требования к установке
- Root—права;
- Debian 12 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
## Установка
Прежде всего нам необходимо обновить и установить системные пакеты на нашей машине для их корректной работы:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
Давайте установим rdp сервер адаптированный для ОС Linux, в нашем примере мы используем Debian 12, найдем необходимые пакеты с помощью приведенной ниже команды:
```bash
apt list | grep xrdp
```
Скриншот №2 — Поиск пакетов
Если вы видите красные буквы, это значит, что у вас есть пакеты для установки и вам нужно вписать их названия в команду ниже, но важное напоминание: название - это буквы и символы перед косой чертой!
Пример со скриншота -
```bash
apt install xrdp
```
Скриншот №3 — Установка
При нажатии кнопки **Y** начнется установка и загрузка зависимых библиотек для корректной работы всей удаленной системы. Однако, если в списке нет этого пакета, необходимо добавить репозиторий, следуя правилам и набрав команду ниже:
```
nano /etc/apt/sources.list.d/other.list
```
Введите данные строки, если нужно использовать с исходным кодом, то удалите хэштег:
```
deb http://archive.ubuntu.com/ubuntu jammy multiverse
# deb-src http://archive.ubuntu.com/ubuntu jammy multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse
# deb-src http://archive.ubuntu.com/ubuntu jammy-updates multiverse
```
После этого обновите все индексы пакетов и обновите репозитории:
```bash
apt update
```
Скриншот №4 — Обновление списка репозиториев
Хорошо, теперь мы можем подключиться через rdp к Debian, убедитесь, что ваш брандмауэр пропускает трафик на порт 3389:
```
sudo ufw allow 3389
```
Переключимся на машину Windows и запустим утилиту rdp, открыв поисковую систему и нажав кнопку со значком Windows. Наберем **Remote** и выберем утилиту:
Скриншот №5 — Поиск утилиты
Щелкните на нее и введите имя хоста и имя пользователя в соответствующие поля:
Скриншот №6 — Параметры соединения
Нажмите на кнопку **Connect** и дождитесь ответа от входящего сервера:
Скриншот №7 — Пароль
Введите необходимые учетные данные и нажмите кнопку **OK**:
Скриншот №8 — Подключение по RDP
Отлично! Мы находимся в системе и подключены по протоколу RDP.
## Вывод
Графический интерфейс пользователя (**GUI**) является одним из основных аспектов современной вычислительной техники, предлагая пользователям визуально-интерактивный способ работы с программным обеспечением, приложениями и операционными системами. Преимущества использования графического интерфейса многообразны: интуитивно понятный дизайн, простота использования, сокращение времени обучения, визуальная обратная связь в реальном времени, многозадачность, графическое представление сложных данных и взаимодействие с пользователем с помощью различных интерактивных элементов.
Кроме того, графические интерфейсы повышают доступность, стандартизацию и визуальную привлекательность, что делает их незаменимым инструментом для широкого круга пользователей — от новичков до опытных профессионалов. Однако важно понимать, что графические интерфейсы не всегда являются наиболее эффективным выбором в любой ситуации, особенно для некоторых задач, где интерфейс командной строки (**[CLI](https://serverspace.uz/about/blog/cli-kak-upravlyat-infrastrukturoj-cherez-cli/)**) обеспечивает больший контроль, автоматизацию и гибкость.
https://serverspace.uz/support/help/razdelenie-terminala-v-ubuntu-komanda-screen-v-linux.mdИзучаем, как пользоваться утилитой Screen, чтобы удобно управлять множеством виртуальных терминалов. Установка и примеры использования Screen
## Введение
Одно из главных требований к любому IT-специалисту, который должен иметь в своем рюкзаке множество soft skills, — это умение автоматизировать! Но не всегда технически продукт или технология позволяет это сделать и для этого есть утилиты, которые помогают автоматизировать задачи в нашем случае в Linux. Одно подключение — одна сессия, это несколько неудобно для использования, и для этого разработали утилиту **screen**.
**Screen** использует два основных компонента, облегчающих создание и управление виртуальными терминалами. Первый компонент — это терминальная сессия, которая выступает в качестве контейнера для нескольких виртуальных терминалов или же окон. Этот терминальный сеанс обрабатывает ввод и вывод данных для всех виртуальных терминалов, находящихся в нем.
_Вторым важным_ компонентом является терминальный мультиплексор, который отвечает за управление различными аспектами работы виртуальных терминалов в рамках терминальной сессии. Он обрабатывает команды, связанные с переключением между окнами, и управляет виртуальными терминалами.
При создании нового окна в пределах экрана терминальный мультиплексор генерирует новый виртуальный терминал и инициирует процесс оболочки (например, bash) для этого окна. Каждый виртуальный терминал функционирует как самостоятельный процесс, управляя своим вводом и выводом, а также имея собственное окружение и рабочий каталог.
При отключении от экранной сессии терминальная сессия остается активной на сервере, а виртуальные терминалы продолжают работать в фоновом режиме. При повторном подключении доступ к виртуальным терминалам восстанавливается, а процессы, запущенные в них, сохраняются.
Таким образом, сочетание терминальной сессии и терминального мультиплексора позволяет программе screen обеспечить эффективную работу с несколькими процессами в одном окне терминала. Более того, он позволяет пользователям отключаться и впоследствии беспрепятственно возобновлять работу, что делает screen мощным и универсальным инструментом для эффективной работы с командной строкой в Linux.
## Требования к установке
- Root—права;
- Ubuntu 16 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
Мы будем работать на сервере с Ubuntu 22.04, заказанному в Serverspace.
## Установка и использование
Прежде всего, нам необходимо обновить и установить системные пакеты на нашей машине для корректной работы:
```bash
apt update && apt upgrade -y
```
Скриншот №1 — Обновление
После обновления системы необходимо установить пакет экранных утилит:
```bash
sudo apt-get install screen
```
Скриншот №2 — Установка ПО
Нажмите кнопку **Y** для запуска процесса установки и дождитесь его завершения. Это не займет много времени, наберитесь терпения.
Затем введите приведенную ниже команду:
```
screen
```
Скриншот №3 — Приветственное сообщение
Нажмите клавишу **Space** или **Return**, чтобы пропустить всплывающее окно, после чего вы увидите новый чистый экран, утилита создала новую терминальную сессию, которая выглядит как контейнер для сохранения и управления виртуальным окном. Создадим терминал, у нас есть два типа разделения экрана: горизонтальный и вертикальный. Также можно разделить уже поделенный экран для более сложных задач. Все команды активны по комбинации **Ctrl+a**, давайте создадим новое окно и разделим экран, зажав комбинацию клавиш:
```
Ctrl+a+c
```
```
Ctrl+a+S
```
Скриншот №4 — Деление экрана горизонтально
**Напоминание!** Для данной утилиты существует разница при использовании большого и малого регистра, запомните это. Мы можем переключать активное окно по комбинации:
```
Ctrl+a+Tab
```
И переключать нужный виртуальный терминал комбинацией для предыдущего и следующего окна соответственно:
```
Ctrl+a+n и Ctrl+a+p
```
Также можно вывести на экран список всех окон терминала:
```
Ctrl+"
```
Скриншот №5 — Список экранов
Если вы хотите увидеть более краткую информацию, введите:
```
Ctrl+a+w
```
Скриншот №6 — Короткий список экранов
Для более наглядного использования этих окон можно изменить метку каждого окна, нажав кнопку:
```
Ctrl+a+Tab
```
Переключитесь на нужное окно и зажмите комбинацию клавиш:
```
Ctrl+a+A
```
Скриншот №7 — Переименовать окна
В нашем примере в нижней строке отображается индекс и метка соответствия для данного окна. На экране видна вертикальная линия, разделенная командой:
```
Ctrl+a+|
```
Также можно выполнить более сложное деление, например, поделить правую область командой ниже:
```
Ctrl+a+S
```
Скриншот №8 — Деление на 3 окна
В начале работы у вас не будет активного окна, выберите его, как описывали ранее:
```
Ctrl+a+p or n
```
Для уничтожения одного процесса используйте комбинацию:
```
Ctrl+a+k
```
Для всей связки виртуальных окон:
```
Ctrl+a+\
```
И согласитесь с вопросом в всплывающем окне. Но если вы хотите просто свернуть окно виртуального терминала, то нужно набрать:
```
Ctrl+a+Q
```
При этом комбинация сворачивает все окна, кроме основного с фокусом, можно также отсоединиться от терминала и закрыть соединение с сервером, но они все равно будут работать, по комбинации кнопок:
```
Ctrl+a+d
```
И снова прикрепляется путем поиска нужной строки:
```
screen -ls
```
И введите их ID в приведенную ниже команду:
```
screen -r 23505
```
Для получения дополнительной информации об использовании комбинации можно нажать кнопку :
```
Ctrl+a+?
```
Скриншот №9 — Помощь
Давайте представим реальный пример использования этой утилиты, конечно, мы можем автоматизировать и настроить множество рутинных или неудобных действий, например, нам нужно проверить свободное место на хранилище и создать резервную копию. Разделяем экран и с задержкой в 2 секунды наблюдаем за изменениями.
Скриншот №10 — Пример использования
## Вывод
Утилита screen в Linux предоставляет мощный и эффективный способ управления несколькими виртуальными терминалами в рамках одного терминального окна. Она состоит из двух основных компонентов—терминальной сессии, которая является контейнером для виртуальных терминалов, и терминального мультиплексора, отвечающего за управление этими терминалами. С помощью screen ИТ—специалисты могут оптимизировать свой рабочий процесс, создавая и организуя несколько терминалов, переключаясь между ними и даже разделяя экран для решения сложных задач.
https://serverspace.uz/support/help/setting-up-wsus-na-windows-server-2022.mdКак развернуть WSUS Server на Windows Server 2022 разберем в инструкции от Serverspace. Windows Server Update Services. Инструмент компании Microsoft в серверных редакциях ОС, предоставляющий системным администраторам возможность управлять жизненным циклом обновлений для ОС Windows.
Windows Server Update Services или сокращённо WSUS — инструмент компании Microsoft в серверных редакциях ОС, предоставляющий системным администраторам возможность управлять жизненным циклом обновлений для операционных систем Windows и других продуктов Microsoft по всей сети организации. WSUS позволяет администраторам централизованно одобрять, отклонять и планировать обновления для развертывания на клиентских компьютерах и серверах. Он также предоставляет базовые возможности отчетности и мониторинга для отслеживания соответствия обновлений и выявления потенциальных проблем. В этой инструкции рассмотрим, как развернуть WSUS Server на Windows Server 2022.
## Установка роли
Перед тем, как начать необходимо проверить соответствие сервера минимальным требованиям:
- Минимум 2Гб ОЗУ + к системе (4 ГБ)
- CPU 1,5 ГГц
- Достаточный объем свободного места. Лучше использовать отдельный диск под хранение обновлений
Когда требования выполнены, приступим к установке:
Откроем Server Manager, затем выберем пункт "Add roles and features" в меню "Manage".
Кликнем "Next" в окне "Before you begin".
Выберем опцию "Role-based or feature-based installation" и далее "Next". Укажем сервер, на который соответственно будет установлена роль WSUS и далее жмём "Next".
Скриншот №1. Выбор сервера для установки
Выбираем опцию "Windows Server Update Services" в перечне ролей. При этом автоматически будут установлены зависимые и требующиеся компоненты. Жмём "Add Features" и "Next".
Скриншот №2.Добавление необходимых компонентов для установки
На экране "Select features" выберем опцию "Windows Internal Database" и нажмём "Next". После нажимаем снова "Next".
Скриншот №3. Выбор WID для установки
На экране "Select role services" должны стоять галки "WID Connectivity" и "WSUS services". Нажимаем "Next".
В окне "Content" укажем путь к хранилищу обновлений.
Скриншот №4. Выбор расположения для хранилища обновлений
На экране "Web Server Role" оставляем компоненты для установки IIS, предложенные системой по умолчанию и нажмём "Next".
Подтверждаем установку на следующем экране, жмём "Install".
Скриншот №5. Установка IIS
Скриншот №6. Установка дополнительных компонентов IIS
Нажимаем "Install"
Скриншот №7. Подтверждение установки
После завершения установки выбираем опцию "Launch Post-Installation tasks" и закроем кнопкой "Close".
Скриншот №8. Запуск процесс настройки после установки
На экране "Join the Microsoft Update Improvement Program (optional)" выберите опцию "I do not want to join the program at this time" и нажмите "Next".
Скриншот №9. Окно с предложением присоединения к программе улучшений ПО Wsus
На экране "Microsoft Software License Terms" нажмём "I accept the license terms".
На экране "Choose Upstream Server" выберем опцию "Synchronize from Microsoft Update" и далее нажимаем "Next".
Скриншот №10.Настройка источника синхронизации
На экране "Specify Proxy Server", если прокси не используется, можно пропустить и нажать "Next".
Скриншот №11.Настройка прокси
В окне "Connect to Upstream Server" нажимаем "Start Connecting". Ждём завершения операции и нажимаем "Next".
На экране "Choose Languages" выберем только те языки, для которых необходимо синхронизировать обновления.
На экране "Choose Products" выберем продукты Microsoft, для которых необходимо синхронизировать обновления.
На экране "Choose Classifications" выберем классификации обновлений, которые необходимо синхронизировать.
На экране "Ready to Install" нажмём "Finish". Необходимо также дождаться синхронизации обновлений.
После этого можно производить базовую настройку с помощью оснастки "Update Services" , включая:
- Synchronization Schedule — настройка графика синхронизации обновлений в соответствии с требованиями организации
- Email Notifications — уведомления по электронной почте для администраторов о новых обновлениях
- Настройка правил утверждений обновлений для развертывания на хостах
- Настройка крайних сроков (дедлайнов) установки
- Управление и создание групп хостов
- Отчётность и контроль состояния установок
WSUS Server — инструмент для управления и распространения апдейтов и патчей для ОС Windows и других продуктов Microsoft по всей сети организации. Настройка WSUS не сложна, но требует определенных знаний и навыков. Следуя этой инструкции, вы сможете успешно настроить WSUS Server на Windows Server 2022 и обеспечить свои системы последними обновлениями безопасности и программного обеспечения.
https://serverspace.uz/support/help/peremennye-okruzheniya-v-linux.mdТипы переменных окружения в Linux. Добавление, удаление, использование, вывод и просмотр переменных окружения. Файл переменных окружения.
## Введение
Переменные, в том числе и переменные окружения, являются фундаментальными элементами операционных систем и играют важные роли:
- Работа с данными: переменные служат контейнерами в памяти для хранения и манипулирования данными, позволяя программам работать со значениями на протяжении всего времени выполнения;
- Динамическая адаптивность: благодаря использованию переменных программы приобретают динамическое поведение, позволяющее им гибко подстраиваться под различные входные данные и условия;
- Читабельность кода: присвоение переменным значимых имен улучшает читаемость кода, облегчая его понимание и работу с ним разработчикам и специалистам DevOps;
- Многократное использование кода: переменные способствуют многократному использованию кода, поскольку хранят данные в одном месте, на которые можно ссылаться и использовать многократно, сокращая избыточность и способствуя эффективному программированию;
- Передача параметров: переменные позволяют передавать информацию между различными частями программы или функциями, что дает возможность функциям получать входные данные и возвращать результаты в вызывающий код;
- Управление конфигурацией: переменные среды, в частности, ценны для хранения конфигурационных настроек и общесистемной информации, обеспечивая удобный способ модификации поведения программы без внесения изменений в исходный код.
Переменные окружения играют ключевую роль в системе Linux, обеспечивая хранение данных, настройку поведения программ и читаемость кода. Они незаменимы при разработке программного обеспечения и системном администрировании, обеспечивая эффективность и адаптивность вычислений.
## Тип переменных окружения
Существует три типа переменных окружения, которые делятся по области применения во всей операционной системе. Прежде всего, рассмотрим локальные переменные окружения. Они представляют собой ячейки памяти, которые создаются текущей сессией и не записываются в конфигурационные файлы. Вместо этого они хранятся в кэш-памяти и удаляются, по завершению соединения и выхода из системы, с помощью специальных команд.
Если вы хотите продолжить использование этих переменных или вам необходимо сохранить процессы в рабочем состоянии, вы можете воспользоваться утилитой **screen**. Они создают виртуальный терминал и позволяют отсоединиться от системы. Рассмотрим, как управлять этим типом переменных: создавать, удалять и изменять.
```
export VARIABLE_LABEL=value
```
Также вывести переменную на экран можно с помощью следующей команды:
```
echo $VARIABLE_LABEL
```
Скриншот №1 — Создание локальных переменных окружения
Эта команда устанавливает локальную переменную окружения для текущего сеанса. Если задать их в утилите или в программе, то они будут доступны в соответствующем процессе. При завершении процесса переменная также перестает существовать, и ее значения не передаются другим процессам или новым сеансам. Если вы хотите изменить значение, то это можно сделать с помощью той же команды, которая была описана ранее:
```
export VARIABLE_LABEL=new-value!
```
Но если вы хотите удалить эту переменную, то нужно ввести следующее:
```
unset VARIABLE_LABEL
```
Или можно назначить пустое поле для быстрого удаления значения:
```
VARIABLE_LABEL=
```
Однако представим себе ситуацию, когда необходимо удалить на некоторое время переменную и вернуть ее значение, как мы видели ранее. Для этого мы можем запустить утилиту, **env** и указать любую команду, затем запуститься ее процесс без аргументов:
```
env -i bash
```
Скриншот №2 — Удаление локальных переменных окружения
Давайте масштабируем диапазон использования и посмотрим на переменные окружения пользователя, которые реализуют и сохраняют каждый сеанс, в сравнении с переменными локального окружения для одного пользователя. Схема процесса достаточно похожа, но теперь мы записываем в файл ту команду, которая запускается каждый раз при входе в систему.
Таким образом, это автоматизирует процесс запуска команды в файле и делает его более простым. Мы можем работать с двумя основными файлами: **.bashrc**, который используется для настройки локального пользователя, и **.bash_profile**, который используется для подключения удаленного пользователя по протоколу SSH. Если последний из них по какой—либо причине окажется недоступным, то система будет искать **.bash_login** и **.profile**. Найти эти файлы можно с помощью следующей команды:
```
find . -name bashrc
```
Скриншот №3 — Поиск файла переменных окружений
Если вы не можете найти нужный файл переменных удаленных подключений для пользователя, попробуйте поискать в **.bash_login** и **.profile**. Отредактируем файл и добавим необходимые переменные:
```
nano ~/.bashrc
```
Скриншот №4 — Изменение файла
Запишем в файл команду, приведенную ниже:
```
export GG='Nice to meet you!'
```
Сохраним файл командой после закрытия текстового редактора:
```
source ~/.bashrc
```
Скриншот №5 — Сохранение файла
И последнее, учитывая, что переменная окружения является глобальной, мы подчеркиваем и напоминаем, что имена и метки переменных указывают на область их использования. В настоящее время область использования охватывает всю систему от любых пользователей. Мы можем редактировать их файл **bash.bashrc**, окружение, профиль. Они также делятся на несколько пунктов для конкретного типа подключения пользователя. Например, мы можем изменить окружение, и это повлияет на всех пользователей в системе, независимо от типа их подключения:
```
nano /etc/environment
```
Введите строку ниже и сохраните файл с помощью комбинаций кнопок **Ctrl+O**:
```
export gg='Jay's dog byte me! '
```
Применение изменений, внесенных командой:
```
source /etc/environment
```
Скриншот №6 — Проверка глобальной переменной
Для пользователя, подключающегося только локально, мы можем настроить **bash.bashrc** с той же командой для ввода:
```
export gg='Jay's dog byte me! '
```
```
source /etc/bash.bashrc
```
Для пользователя, подключенного только удаленно и имеющего доступ ко всем сис