Files
Basic-Ubuntu-Server-Setup/README.md

220 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Базовая (Стартовая) настройка Ubuntu Server
[Termius_KeyGen]: images/Termius_KeyGen.png
[Termius_GetKey]: images/Termius_GetKey.png
# Содержание
* [Используемые программы](#используемые-программы)
* [Подготовка](#подготовка)
* [Установка Termius клиента](#установка-termius-клиента)
* [Установка OpenSSH на сервере](#установка-openssh-на-сервере)
* [Установка Nano на сервере](#установка-nano-на-сервере)
* [Установка whois на сервере](#установка-whois-на-сервере)
* [Установка fail2ban на сервере](#установка-fail2ban-на-сервере)
* [Настройки доступа по SSH](#настройки-доступа-по-ssh)
* [Создание публичного и приватного ключа](#создание-публичного-и-приватного-ключа)
* [Добавление публичного ключа в OpenSSH](#добавление-публичного-ключа-в-openssh)
* [Редактирование конфигурации OpenSSH](#редактирование-конфигурации-openssh)
* [Проверка доступа по ключу](#проверка-доступа-по-ключу)
* [Окончательное редактирование конфигурации OpenSSH](#окончательное-редактирование-конфигурации-openssh)
* [Настройки UFW](#настройки-ufw)
* [Редактирование файла приложения OpenSSH-Server](#редактирование-файла-приложения-openssh-server)
* [Создание файла приложения HTTP](#создание-файла-приложения-http)
* [Создание файла приложения HTTPS](#создание-файла-приложения-https)
* [Настройка и запуск UFW](#настройка-и-запуск-ufw)
* [UFW и Docker - особенности](#ufw-и-docker---особенности)
* [Настройки fail2ban](#настройки-fail2ban)
* [Настройка правил jail](#настройка-правил-jail)
* [Запуск fail2ban](#запуск-fail2ban)
# Используемые программы
| Название | Описание | Ссылка |
|:---|:----:|:---:|
| **Ubuntu Server** | *Ubuntu Server обеспечивает экономическую и техническую масштабируемость для корпоративного центра обработки данных, а также для публичного или частного облака. Независимо от того, планируете ли вы развернуть облако на базе OpenStack, кластер Kubernetes или рендер-ферму из 50 000 узлов, Ubuntu Server обеспечит вам наилучшую производительность при горизонтальном масштабировании.* | <a href="https://ubuntu.com/server" target="_blank">Официальный сайт</a> |
| **Termius** | *Termius — это современный SSH-клиент для Mac, Windows, Linux, iOS и Android. Подключайтесь одним щелчком мыши с любого устройства.* | <a href="https://termius.com" target="_blank">Официальный сайт</a> |
| **OpenSSH** | *OpenSSH — это ведущий инструмент для удаленного входа по протоколу SSH. Он шифрует весь трафик, предотвращая перехват данных, взлом соединений и другие атаки. Кроме того, OpenSSH предлагает обширный набор функций безопасного туннелирования, несколько методов аутентификации и расширенные возможности настройки.* | <a href="https://www.openssh.org/" target="_blank">Официальный сайт</a> |
| **Nano** | *GNU nano — это небольшой редактор для работы в терминале. Он поддерживает подсветку синтаксиса, проверку орфографии, выравнивание по ширине,* | <a href="https://www.nano-editor.org/" target="_blank">Официальный сайт</a> |
| **whois** | *Пакет whois в Ubuntu — это клиент командной строки для получения информации о доменах и IP-адресах из баз данных WHOIS.* | <a href="https://launchpad.net/ubuntu/+source/whois" target="_blank">Launchpad ubuntu</a> |
| **fail2ban** | *Fail2Ban сканирует файлы журналов, такие как /var/log/auth.log, и блокирует IP-адреса, с которых совершается слишком много неудачных попыток входа. Для этого он обновляет правила системного брандмауэра, чтобы на настраиваемый период времени отклонять новые подключения с этих IP-адресов. Fail2Ban изначально настроен на чтение многих стандартных файлов журналов, таких как файлы sshd и Apache, и его легко настроить на чтение любого выбранного вами файла журнала для отслеживания любых нужных вам ошибок.* | <a href="https://github.com/fail2ban/fail2ban" target="_blank">GitHub репозиторий</a> |
# Подготовка
Первоначальный действия и проверки для начала работы.
## Установка Termius клиента
**Шаг 1:**
Перейдите на <a href="https://termius.com" target="_blank">официальный сайт</a> Termius.
**Шаг 2:**
Зарегистрируйтесь на сайте.
**Шаг 3**
Скачайте приложение Termius для вашей операционной системы.
**Шаг 4:**
Установите приложение Termius в свою операционную сисстему.
## Установка OpenSSH на сервере
**Если не установлен и Вы подключались к серверу по RDP или VNC.**
> *Предполагается что Вы вошли под root правами*
**Шаг 1:** Обновление пакетов и файлов операционной системы:
```bash
apt update && apt update -y
```
**Шаг 2:** Установка OpenSSH-Server:
```bash
apt install openssh-server
```
**Шаг 3:** Запуск и автозагрузка OpenSSH-Server:
```bash
systemctl enable --now ssh
```
**Шаг 4:** Проверка статуса службы:
```bash
systemctl status ssh
```
## Установка Nano на сервере
*Проверить, а не установлен ли Nano:*
```bash
nano --version
```
> Если вывел версию, то Nano уже установлен.
---
> *Предполагается что Вы вошли под root правами*
**Шаг 1:** Обновление пакетов и файлов операционной системы:
```bash
apt update && apt update -y
```
**Шаг 2:** Установка Nano:
```bash
apt install nano
```
**Шаг 3:** Проверка установки Nano:
```bash
nano --version
```
> Если вывел версию, то Nano установлен успешно.
## Установка whois на сервере
> *Предполагается что Вы вошли под root правами*
**Шаг 1:** Обновление пакетов и файлов операционной системы:
```bash
apt update && apt update -y
```
**Шаг 2:** Установка Whois:
```bash
apt install whois
```
**Шаг 3:** Проверка установки Whois:
```bash
whois google.com
```
> Если Whois установлен успешно: Вы получите данные о регистраторе, дате создания и истечения срока регистрации, а также DNS-серверах.
## Установка fail2ban на сервере
> *Предполагается что Вы вошли под root правами*
**Шаг 1:** Обновление пакетов и файлов операционной системы:
```bash
apt update && apt update -y
```
**Шаг 2:** Установка fail2ban:
```bash
apt install fail2ban
```
**Шаг 3:** Создание локального конфига:
```bash
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
```
> Никогда не редактируйте файл /etc/fail2ban/jail.conf напрямую, так как он заменяется при обновлениях.
**Шаг 4:** Проверка базовой конфигурации:
```bash
nano /etc/fail2ban/jail.local
```
Вы должны увидеть:
```ini
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
```
> Если файл пуст, то вставьте в него код выше.
> Если enabled = false, измените на enabled = true.
Сохраните файл `Ctrl+X` -> `y` -> `Enter`.
**Шаг 5:** Перезапуск:
```bash
systemctl restart fail2ban
```
```bash
systemctl enable fail2ban
```
**Шаг 6:** Проверка:
```bash
fail2ban-client status sshd
```
> Эта команда покажет список заблокированных IP-адресов в данный момент.
# Настройки доступа по SSH
## Создание публичного и приватного ключа
**Шаг 1:** Запустите Termius
**Шаг 2:** Выберите пункт меню Keychain (1)
**Шаг 3:** Выбирите Kay type RSA (2)
**Шаг 4:** Выбирите Key size 2048 (3)
**Шаг 5:** Введите удобное для Вас название ключа в поле Label (4)
**Шаг 6:** Введите удобный для Вас пароль для ключа в поле Passphrase (5)
**Шаг 7:** Нажмите кнопку Generate & save
![Termius_KeyGen][Termius_KeyGen]
**Шаг 8:** Скопируйте публичный ключ
![Termius_GetKey][Termius_GetKey]
**Шаг 9:** Сохраните публичный ключ в удобное для Вас место
> ПРИМЕР ПУБЛИЧНОГО КЛЮЧА:
```pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW0f99tvseYmt9J+EJw9vvOUcJwKWdJufFy65SSnxe1RUNy5nc7kx7cqkyyE5IIXeS2EOMfK9pQ1sY5sR6PUQQAJSLxuet1PM69srnSNzFLUrJKKEySRpHcMuqh9BSUO/wYLsUQvKsofhHppZZS3c/YV6fvBGPgJ+cfvzUJPYSP3WrC7AeSg+EaHbydGyWU2unj+e7h9vmWyq7LyEl2vuyHX2aQMmAx8tTP3PGEk3bhfhlq71AiNKhGnqU0LEBj0RrZI2Ybfz6L6VZiXLh6L/lUfuGgIsoGjaFJFkExz/MPq3c/y9XGfck3640nwHSj/mQI+LvloXj+39WkzRqcVkn Generated By Termius
```
## Добавление публичного ключа в OpenSSH
## Редактирование конфигурации OpenSSH
## Проверка доступа по ключу
## Окончательное редактирование конфигурации OpenSSH
# Настройки UFW
## Редактирование файла приложения OpenSSH-Server
## Создание файла приложения HTTP
## Создание файла приложения HTTPS
## Настройка и запуск UFW
## UFW и Docker - особенности
## Настройки fail2ban
## Настройка правил jail
## Запуск fail2ban