Налаштування Dropbear

Конфігурація SSH здійснюється через підсистему Dropbear у `uci`, а файл конфігурації знаходиться за шляхом `/etc/config/dropbear`.

Кожен екземпляр SSH-сервера Dropbear описується окремою секцією у конфігураційному файлі. Можна створювати кілька екземплярів.

Конфігурація `dropbear` містить параметри для SSH-сервера Dropbear в одній секції.

Секція `dropbear` містить наступні параметри. Назви чутливі до регістру.

Назва Тип Обов’язково Типове значення Опис
`enable` boolean ні 1 Встановіть `0`, щоб вимкнути запуск Dropbear під час завантаження системи.
`verbose` boolean ні 0 Встановіть `1`, щоб увімкнути докладний вивід у скрипті запуску.
`BannerFile` string ні (немає) Шлях до файлу, вміст якого буде показано до автентифікації користувача.
`PasswordAuth` boolean ні 1 Встановіть `0`, щоб вимкнути автентифікацію за паролем.
`Port` integer ні 22 Номер порту, на якому Dropbear буде слухати з’єднання.
`RootPasswordAuth` boolean ні 1 Встановіть `0`, щоб вимкнути автентифікацію root-користувача за паролем.
`RootLogin` boolean ні 1 Встановіть `0`, щоб заборонити SSH-вхід під root-користувачем.
`GatewayPorts` boolean ні 0 Встановіть `1`, щоб дозволити зовнішнім хостам підключатися до переспрямованих портів.
`Interface` string ні (немає) Вкажіть назву інтерфейсу, наприклад `lan`. Цей параметр дозволяє обмежити з’єднання лише з клієнтів, які можуть досягти IP цієї мережі. Наприклад, IP-адреса LAN буде доступна лише клієнтам у локальній мережі, але не з WAN при типовій конфігурації файрволу. Використовується у параметрі `-p` Dropbear: “Слухати на заданій адресі та TCP-порті. Якщо задано лише порт — слухати на всіх адресах. Можна вказати до 10 значень (типово 22).”
`keyfile` список файлів ні (немає) Шлях до файлу з ключем хоста.
`rsakeyfile` файл ні (немає) Шлях до RSA-ключа хоста. Застаріло. Див. `keyfile`.
`SSHKeepAlive` integer ні 300 Інтервал у секундах для надсилання keep-alive трафіку. Корисно, щоб уникнути обриву з’єднання маршрутизатором або фаєрволом під час бездіяльності. При 3 невдалих keep-alive з’єднання буде розірване. Значення 0 вимикає цю функцію. Еквівалент OpenSSH `ClientAliveInterval`.
`IdleTimeout` integer ні 0 Розірвати з’єднання, якщо не було трафіку протягом заданого часу, навіть із keep-alive активним. Еквівалент OpenSSH `ClientAliveInterval`, помножений на `ClientAliveCountMax`.
`mdns` integer ні 1 Оголошувати службу через mDNS.
`MaxAuthTries` integer ні 3 Кількість спроб введення пароля перед закриттям з’єднання.
`RecvWindowSize` integer ні 24576 Розмір буфера прийому для кожного каналу. Збільшення може покращити продуктивність, але потребує більше пам’яті.

Типова конфігурація виглядає так:

# uci show dropbear
dropbear.@dropbear[0]=dropbear
dropbear.@dropbear[0].RootPasswordAuth='1'
dropbear.@dropbear[0].PasswordAuth='1'
dropbear.@dropbear[0].Port='22'

Додати другий екземпляр Dropbear, що слухає порт 2022:

uci add dropbear dropbear
uci set dropbear.@dropbear[-1].RootPasswordAuth='1'
uci set dropbear.@dropbear[-1].PasswordAuth='0'
uci set dropbear.@dropbear[-1].Port="2022"
uci commit dropbear
service dropbear restart

Якщо ви хочете підключатися з Інтернету, дозвольте порт 2022 на інтерфейсі WAN.

Dropbear не підтримує SFTP.

OpenSSH-клієнт за замовчуванням використовує SFTP починаючи з версії 9.0.

Використовуйте `scp -O` для старішого SCP-протоколу, якщо потрібно.

Якщо у вас є достатньо вільного місця, можна встановити SFTP-сервер:

opkg update
opkg install openssh-sftp-server
  • Налаштуйте автентифікацію за відкритим ключем і, за можливості, вимкніть автентифікацію за паролем.
  • Налаштуйте VPN, щоб уникнути прямого відкриття SSH у мережу Інтернет, адже навіть одна критична вразливість може дозволити зловмиснику отримати доступ root.

Проблеми, що виникають при відкритому SSH-доступі:

  • Відсутність нормальних груп користувачів та окремих звичайних користувачів.
  • Відсутність механізмів блокування IP-адрес з великою кількістю невдалих спроб входу.
  • Дуже лояльні дозволи на файлову систему за замовчуванням у OpenWrt.
  • Відсутність обмежень для звичайних користувачів, що дозволяє зловживати BusyBox та отримувати доступ до команд, призначених лише для root, через символьні посилання.
  • Last modified: 2025/05/30 17:44
  • by vazaz