Создание репозитория. Новые конфигурации сети и SSH
This commit is contained in:
commit
5e88312481
|
@ -0,0 +1,4 @@
|
||||||
|
# Конфигурации
|
||||||
|
|
||||||
|
- [Настройка сети](network.md)
|
||||||
|
- [Настройка SSH](ssh.md)
|
|
@ -0,0 +1,109 @@
|
||||||
|
# Настройка сети
|
||||||
|
|
||||||
|
## Netplan
|
||||||
|
|
||||||
|
Настройка профиля [netplan](https://netplan.io/examples/) в файле `/etc/netplan/config.yaml`. В `Ubuntu` файл расположен `/etc/netplan/00-installer-config.yaml`
|
||||||
|
|
||||||
|
### Параметры `netplan`
|
||||||
|
|
||||||
|
- `renderer` - программа для обработки конфигурации (`networkd` или `NetworkManager`)
|
||||||
|
- `ethernets` - настройка сетевых адаптеров `ethernet`
|
||||||
|
- `wifis` - настройка беспроводных адаптеров
|
||||||
|
- `dhcp4` - получение IPv4 адреса по DHCP
|
||||||
|
- `dhcp6` - получение IPv6 адреса по DHCP
|
||||||
|
- `dhcp-identifier` - если передать значение "mac", то будет использоваться MAC-адрес в качестве идентификатора DHCP
|
||||||
|
- `addresses` - добавляет статические адреса к интерфейсу, можно несколько
|
||||||
|
- `gateway4` - указывает шлюз IPv4
|
||||||
|
- `gateway6` - указывает шлюз IPv6
|
||||||
|
- `nameservers` - указывает DNS-серверы
|
||||||
|
- `search` - дописывает окончание домена, если происходит обращание к узлу сети только по его имени
|
||||||
|
- `macaddress` - устанавливает новый MAC-адрес
|
||||||
|
- `routes` - позволяет настроить маршруты таблицы маршрутизации
|
||||||
|
- `to` - адрес/подсеть до которой необходим маршрут
|
||||||
|
- `via` - шлюз через которой будет доступна подсеть
|
||||||
|
- `on-link` - прописывать маршруты всегда при поднятии линка
|
||||||
|
- `routing-policy` - дополнительная настройка маршрутов, для IP или подсети
|
||||||
|
- `access-points` - список точек доступа для Wi-Fi
|
||||||
|
- `password` - пароль для точки доступа Wi-Fi
|
||||||
|
- `mode` - режим работы сетевой карты Wi-Fi
|
||||||
|
|
||||||
|
### Команды `netplan`
|
||||||
|
|
||||||
|
- `try` - попробовать применить конфигурацию с возможностью отмены
|
||||||
|
- `apply` - применить конфигурацию
|
||||||
|
- `generate` - проверка текущей конфигурации и запись на диск
|
||||||
|
- `config` - записать текущую конфигурацию сети в YAML
|
||||||
|
|
||||||
|
### Отладка `netplan`
|
||||||
|
|
||||||
|
- `--debug` - получение подробной информации при применении команд
|
||||||
|
|
||||||
|
Проверка конфигурационного файла на ошибки и создание файлов конфигурации для программы-обработчика:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo netplan --debug generate
|
||||||
|
```
|
||||||
|
|
||||||
|
Применение конфигурации:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo netplan --debug apply
|
||||||
|
```
|
||||||
|
|
||||||
|
### Перезагрузка сетевого интерфейса
|
||||||
|
|
||||||
|
Перезагрузка сетефого интерфейса в `Ubuntu`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo systemctl restart systemd-networkd.service
|
||||||
|
```
|
||||||
|
|
||||||
|
В других дистрибутивах:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo systemctl restart networking
|
||||||
|
```
|
||||||
|
```sh
|
||||||
|
sudo /etc/init.d/networking restart
|
||||||
|
```
|
||||||
|
|
||||||
|
### Примеры `netplan`
|
||||||
|
|
||||||
|
Настройка сети, где `enp3s0`, `enp8s0` и `wlp3s0` - сетевые интерфейсы:
|
||||||
|
|
||||||
|
- `enp3s0` - динамическая адресация
|
||||||
|
- `enp8s0` - статическая адресация
|
||||||
|
- `wlp3s0` - беспроводное подключение
|
||||||
|
|
||||||
|
```sh
|
||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
renderer: networkd
|
||||||
|
ethernets:
|
||||||
|
enp3s0:
|
||||||
|
dhcp4: true
|
||||||
|
enp8s0:
|
||||||
|
addresses:
|
||||||
|
- 10.10.10.2/24
|
||||||
|
gateway4: 10.10.10.1
|
||||||
|
nameservers:
|
||||||
|
search: [mydomain, otherdomain]
|
||||||
|
addresses: [10.10.10.1, 1.1.1.1]
|
||||||
|
routes:
|
||||||
|
- to: default
|
||||||
|
via: 10.10.10.1
|
||||||
|
wifis:
|
||||||
|
wlp3s0:
|
||||||
|
dhcp4: no
|
||||||
|
dhcp6: no
|
||||||
|
addresses: [192.168.0.21/24]
|
||||||
|
nameservers:
|
||||||
|
addresses: [192.168.0.1, 8.8.8.8]
|
||||||
|
access-points:
|
||||||
|
"network_ssid_name":
|
||||||
|
password: "**********"
|
||||||
|
routes:
|
||||||
|
- to: default
|
||||||
|
via: 192.168.0.1
|
||||||
|
on-link: true
|
||||||
|
```
|
|
@ -0,0 +1,151 @@
|
||||||
|
# SSH
|
||||||
|
|
||||||
|
## Сервер
|
||||||
|
|
||||||
|
Файл кофигурации `/etc/ssh/sshd_config`
|
||||||
|
|
||||||
|
### Базовая настройка
|
||||||
|
|
||||||
|
- `Port` (**22**) - порт, через который происходит подключение
|
||||||
|
- `PermitRootLogin` (yes|**no**) - подключение с использованием `root`-доступа
|
||||||
|
- `PubkeyAuthentication` (**yes**|no) - подключение с использованием ключа
|
||||||
|
- `PasswordAuthentication` (yes|**no**) - подключение с использованием пароля
|
||||||
|
- `PermitEmptyPasswords` (yes|**no**) - подключение с использованием пустого пароля
|
||||||
|
|
||||||
|
### Настройка файлов хранения публичных ключей:
|
||||||
|
|
||||||
|
Создание каталога в домашней директории пользователя (`/home/user/.ssh`), от которого будет происходить подключение к серверу:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkdir ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
Создание файла файла хранения публичных ключей:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
touch ~/.ssh/authorized_keys
|
||||||
|
chmod 600 ~/.ssh/authorized_keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### Перезагрузка сервера SSH
|
||||||
|
|
||||||
|
Перезагрузка сервера SSH в `Ubuntu`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo systemctl restart sshd
|
||||||
|
```
|
||||||
|
|
||||||
|
В других дистрибутивах:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo service sshd restart
|
||||||
|
```
|
||||||
|
```sh
|
||||||
|
sudo /etc/init.d/sshd restart
|
||||||
|
```
|
||||||
|
|
||||||
|
## Клиент
|
||||||
|
|
||||||
|
### Подключение к серверу
|
||||||
|
|
||||||
|
Стандартное подключение:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh user@host
|
||||||
|
```
|
||||||
|
|
||||||
|
например, по умолчанию, через `22` порт:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh alexander@192.168.56.150
|
||||||
|
```
|
||||||
|
|
||||||
|
или с другим портом:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh -p 2222 alexander@192.168.56.150
|
||||||
|
```
|
||||||
|
|
||||||
|
или с использованием ключа `~/.ssh/mykey`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh -i ~/.ssh/mykey alexander@192.168.56.150
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Создание ключа
|
||||||
|
|
||||||
|
Ключи SSH используют алгоритмы:
|
||||||
|
- 🚨 `DSA` - это небезопасно и даже больше не поддерживается начиная с версии 7 `OpenSSH`.
|
||||||
|
- ⚠️ `RSA` - зависит от размера ключа. Если он имеет длину 3072 или 4096 бит, то все хорошо. 1024-битная длина считается небезопасной.
|
||||||
|
- `CD ECDSA` - зависит от того, насколько хорошо компьютер может генерировать случайное число, которое будет использоваться для создания подписи. Существует также проблема достоверности на кривых NIST, которые используются ECDSA.
|
||||||
|
- ✅ `Ed25519` - самый рекомендуемый алгоритм с открытым ключом, доступный сегодня.
|
||||||
|
|
||||||
|
Создание ключей выполняется через утилиту `ssh-keygen`. По умолчанию создаётся пара 2048-битных ключей `RSA`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-keygen
|
||||||
|
```
|
||||||
|
|
||||||
|
или
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-keygen -t rsa
|
||||||
|
```
|
||||||
|
|
||||||
|
Самый рекомендуемый способ создания ключа:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-keygen -t ed25519
|
||||||
|
```
|
||||||
|
|
||||||
|
Использование дополнительных полей при создании пары ключей SSH RSA:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-keygen -t rsa -b 4096 -C "alexander@zhirov.website" -f ~/.ssh/mykey -N password
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-t rsa` - тип создаваемого ключа
|
||||||
|
- `-b 4096` - количество битов в ключе
|
||||||
|
- `-C "alexander@zhirov.website"` - комментарий, который будет добавлен в конец файла открытого ключа для идентификации
|
||||||
|
- `-f ~/.ssh/mykey` - имя файла закрытого ключа. В том же каталоге будет создан соответствующий файл открытого ключа с `.pub` в имени
|
||||||
|
- `-N password` - дополнительная парольная фраза, используемая для доступа к файлу закрытого ключа
|
||||||
|
|
||||||
|
### Файл конфигурации серверов
|
||||||
|
|
||||||
|
Настройка файла конфигурации серверов `~/.ssh/config`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
Host myserver
|
||||||
|
HostName 192.168.56.150
|
||||||
|
User alexander
|
||||||
|
Port 2222
|
||||||
|
IdentityFile ~/.ssh/mykey
|
||||||
|
```
|
||||||
|
|
||||||
|
- `Host` - имя к подключаемому серверу (произвольное название)
|
||||||
|
- `HostName` - адрес сервера
|
||||||
|
- `User` - имя пользователя, от которого происходит подключение
|
||||||
|
- `Port` - порт, по которому происходит подключение
|
||||||
|
- `IdentityFile` - файл ключа, если подключение происходит с использованием ключа SSH
|
||||||
|
|
||||||
|
### Копирование ключа на сервер
|
||||||
|
|
||||||
|
После создания ключа `~/.ssh/mykey` необходимо зарегистрировать (добавить) его публичную версию `mykey.pub` на подключаемый сервер с использованием `ssh-copy-id`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-copy-id -i ~/.ssh/mykey.pub user@host
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавление ключа с использованием дополнительных опций:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ssh-copy-id -i ~/.ssh/mykey.pub -p 2222 alexander@192.168.56.150
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавления ключа вручную:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cat ~/.ssh/mykey.pub | ssh -p 2222 alexander@192.168.56.150 "cat >> ~/.ssh/authorized_keys"
|
||||||
|
```
|
Loading…
Reference in New Issue