Как включить SSH в Ubuntu
Как включить SSH в Ubuntu 20.04
Secure Shell (SSH) — это сетевой протокол, используемый для безопасного соединения между клиентом и сервером. Каждое взаимодействие между сервером и клиентом зашифровано.
В этом руководстве объясняется, как включить SSH на компьютере с Ubuntu.
Включение SSH позволит вам удаленно подключаться к вашей системе и выполнять административные задачи. Вы также сможете безопасно передавать файлы через scp и sftp .
Включение SSH в Ubuntu
По умолчанию при первой установке Ubuntu удаленный доступ через SSH не разрешен. Включение SSH в Ubuntu довольно просто.
Выполните следующие шаги от имени пользователя root или пользователя с правами sudo для установки и включения SSH в вашей системе Ubuntu:
Откройте терминал с помощью Ctrl+Alt+T и установите пакет openssh-server :
При появлении запроса введите свой пароль и нажмите Enter, чтобы продолжить установку.
После завершения установки служба SSH запустится автоматически. Вы можете убедиться, что SSH работает, набрав:
Вывод должен сообщить вам, что служба запущена и разрешена для запуска при загрузке системы:
Нажмите q чтобы вернуться в командную строку.
Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр , обязательно откройте порт SSH:
Это оно! Теперь вы можете подключиться к своей системе Ubuntu через SSH с любого удаленного компьютера. В системах Linux и macOS по умолчанию установлены клиенты SSH. Для подключения с компьютера Windows используйте SSH-клиент, например PuTTY .
Подключение к SSH-серверу
Чтобы подключиться к вашей машине Ubuntu по локальной сети, вызовите команду ssh, за которой следует имя пользователя и IP-адрес в следующем формате:
Если вы не знаете свой IP-адрес, вы можете легко найти его с помощью команды ip :
Как видно из выходных данных, IP-адрес системы — 10.0.2.15 .
Найдя IP-адрес, войдите на удаленный компьютер, выполнив следующую команду ssh :
При первом подключении вы увидите такое сообщение:
Введите yes и вам будет предложено ввести пароль.
После ввода пароля вы увидите сообщение Ubuntu по умолчанию:
Теперь вы вошли в систему на своей машине с Ubuntu.
Подключение к SSH за NAT
Чтобы подключиться к домашней машине с Ubuntu через Интернет, вам необходимо знать свой общедоступный IP-адрес и настроить маршрутизатор на прием данных через порт 22 и их отправку в систему Ubuntu, где работает SSH.
Чтобы определить общедоступный IP-адрес компьютера, к которому вы пытаетесь подключиться по SSH, просто перейдите по следующему URL-адресу: https://api.ipify.org .
Когда дело доходит до настройки переадресации портов , каждый маршрутизатор имеет свой способ настройки переадресации портов. Чтобы узнать, как настроить переадресацию портов, обратитесь к документации маршрутизатора. Короче говоря, вам нужно ввести номер порта, на который будут выполняться запросы (порт SSH по умолчанию — 22), и частный IP-адрес, который вы нашли ранее (с помощью команды ip a ) машины, на которой работает SSH.
После того, как вы нашли IP-адрес и настроили маршрутизатор, вы можете войти в систему, набрав:
Если вы открываете свою машину для доступа в Интернет, рекомендуется принять некоторые меры безопасности. Самый простой — настроить маршрутизатор на прием трафика SSH на нестандартный порт и пересылку его на порт 22 на машине, на которой запущена служба SSH.
Вы также можете настроить аутентификацию на основе ключа SSH и подключиться к компьютеру с Ubuntu без ввода пароля.
Отключение SSH в Ubuntu
Чтобы отключить SSH-сервер в вашей системе Ubuntu, просто остановите службу SSH, запустив:
Позже, чтобы снова включить его, введите:
Выводы
Мы показали вам, как установить и включить SSH на вашем Ubuntu 20.04. Теперь вы можете войти на свой компьютер и выполнять повседневные задачи системного администратора через командную строку.
Если вы управляете несколькими системами, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH . Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашей системе, снижая риск автоматических атак.
Для получения дополнительной информации о том, как настроить SSH-сервер, прочтите руководство по SSH / OpenSSH / настройке Ubuntu и официальную страницу руководства по SSH .
Ubuntu Server: настройка и установка
Ubuntu известен, в первую очередь, как настольный дистрибутив для новичков — установил на свой компьютер и все работает «из коробки». Во всяком случае, так задумывалось. Кроме настольной версии, существует и серверная — Ubuntu Server, установку которой на обычный компьютер мы и рассмотрим в этой статье. Серверная версия отличается от настольной другим набором пакетов и отсутствием графического интерфейса. Но он и не нужен — ведь обычно работа с сервером осуществляется посредством удаленного подключения, а не работы за его монитором и клавиатурой.
Отметим, что будет устанавливаться самая актуальная на данный момент версия — 18.04 LTS. По сути, можете рассматривать эту статью как руководство о том, как «поднять сервер». Установка и настройка Ubuntu Server — тема для отдельной книги, поэтому в данной небольшой статье мы рассмотрим только процесс установки сервера, тем более что он отличается от предыдущих версий.
Шаг 1: загрузка образа и его запись на флешку
Скачать дистрибутив можно на официальном сайте. Рекомендуем загружать образы только с официального сайта во избежание их модификации. После того, как образ загружен, можно воспользоваться командой dd для его записи на флешку:
/ .04.1- .iso of=/dev/sdb1
Здесь /dev/sdb1 — имя раздела на флешке. Имя будет таким, если у вас только один накопитель (HDD или SDD), если накопителей несколько, то это имя будет другим. Убедитесь, что запись производится на флешку, а не на диск с данными!
Шаг 2. Загрузка с флешки
После того, как флешка с операционной системой Linux записана, необходимо произвести загрузку системы с нее. Как правило, для этого нужно нажать DEL или F2 при загрузке системы и изменить порядок загрузки — чтобы система в первую очередь загружалась с флешки. Если у вас не получается, обратитесь к руководству по материнской плате/ноутбуку — там вы найдете подробные инструкции, в том числе и название параметра, который нужно изменить (обычно он называется Boot order, но это название может отличаться в зависимости от поставщика BIOS).
Шаг 3. Начало установки дистрибутива
Как только вы загрузитесь с флешки, будет отображено меню выбора языка. Здесь можно выбрать русский или любой другой язык.
1. Ubuntu server настройка и установка: выбор языка
Затем будет отображено меню на выбранном вами языке.
2. Ubuntu Server 18.04 LTS: загрузочное меню
Очевидно, что для установки системы нужно выбрать первый пункт – Установить Ubuntu Server.
Шаг 4. Выбор языковых параметров
Нужно отметить, что инсталлятор в версии 18.04 претерпел существенных изменений и он кардинально отличается от той же версии 16.04. Изменено не только визуальное оформление, но и сам алгоритм работы инсталлятора – об этом позже. Первым делом инсталлятор просит снова выбрать язык, затем – установить параметры раскладки клавиатуры, а после – сообщает, как можно переключаться между выбранными языками.
3. Опять выбор языка
4. Выбор раскладки клавиатуры
5. Как можно переключаться между выбранными раскладками
Скорее всего, новый инсталлятор не совместим со старым загрузчиком и не получает от него выбранные параметры (а именно язык и выбранное действие). Только так можно объяснить повторный выбор языковых параметров и выбор действия – снова нужно выбрать Установить Ubuntu.
6. Выберите Установить Ubuntu
Шаг 5. Настройка сетевого интерфейса
Следующий шаг – настройка сетевого интерфейса. Если в сети работает DHCP-сервер, то сетевой интерфейс уже будет настроен автоматически.
7. Сетевой интерфейс настроен автоматически: установка ubuntu server
Если DHCP нет или же нужно изменить параметры сетевого интерфейса, выделите его с помощью стрелок вверх/вниз и нажмите Enter – после этого появится меню, содержащие команды редактирования настроек.
8. Изменение параметров интерфейса: настройка ubuntu server
Шаг 6. Параметры прокси
Если подключение к Интернету осуществляется через прокси, настройки прокси-сервера теперь можно ввести уже при установке системы, что очень удобно – раньше настройки прокси можно было ввести уже после установки, что не позволяло во время установки загрузить последние обновления. Чтобы пропустить этот шаг, просто нажмите Enter.
9. Параметры прокси
Шаг 7. Выбор зеркала Ubuntu
При желании можно установить альтернативное зеркало с пакетами дистрибутива. Но в большинстве случаев нужно просто нажать Enter.
10. Выбор зеркала дистрибутива
Шаг 8. Разметка диска
Наконец-то мы добрались до разметки. Инсталлятор предлагает следующие варианты:
- Use An Entire Disk – разметка будет создана автоматически, будет использован весь накопитель.
- Use An Entire Disk and Set Up LVM – инсталлятор будет использовать весь накопитель и настроит менеджер логических томов (LVM).
- Вручную – разделы будут создаваться вручную пользователем, этот вариант подходит только для опытных пользователей, которые понимают, что они делают.
Новичкам остается только два варианта – или первый или второй. Использовать или не использовать LVM – личное дело каждого. На наш взгляд, лучше выбрать второй вариант – ведь рано или поздно место на этом диске закончится, а с помощью LVM вы можете подключить второй диск и сделать его частью одного дискового пространства, попросту говоря, с LVM легко расширить имеющиеся разделы. О том, как это сделать, мы уже писали ранее в нашем блоге.
11. Разметка
Если сомневаетесь, то исходите из размера накопителя: при наличии HDD большого размера, скажем, 1-3 Гб, можно отказаться от использования LVM – проблема расширения дискового пространства, конечно, рано или поздно, проявит себя, но некоторое время можно будет о ней забыть. А при использовании небольших SSD, нужно обязательно использовать LVM – очень скоро вам придется расширить имеющийся диск.
После выбора типа разметки нужно выбрать устройство, на которое будет произведена установка системы. Учтите, что вся информация с выбранного диска будет удалена! Если на нем есть какая-то информация, рекомендуем на всякий случай сделать ее резервную копию!
12. Выбор устройства
Просмотрите предложенную программой разметку. Если все хорошо, нажмите Готово. Если же что-то не устраивает, нажмите Назад и затем выберите пункт Вручную. Дальше вам придется создать разделы вручную. Описывать этот процесс мы не станем – если вы знаете, что не так, то без проблем разберетесь и с созданием разделов.
13. Сводка по файловой системе
Шаг 9. Создание учетной записи администратора
В Ubuntu учетная запись root отключена, поэтому вы не найдете здесь экрана, позволяющего задать пароль root. Зато будет экран создания учетной записи администратора – пользователя, который имеет право вводить команду sudo, позволяющую выполнять другие команды с повышенными привилегиями. Укажите ваше настоящее имя, имя сервера (если есть доменное имя, укажите его), имя пользователя, которое будет использоваться для входа в системе, а также задайте пароль.
14. Создание учетной записи администратора
Шаг 10. Выбор наборов пакетов
Можно просто нажать кнопку Готово, а можно выбрать один из наборов пакетов, позволяющих сразу установить необходимое программное обеспечение. Например, если выбрать nextcloud, то это превратит ваш сервер в персональный облачный диск – что-то наподобие Google Диск. Впрочем, об установке и настройке nextcloud мы еще поговорим – в следующей статье. А пока нажмите кнопку Готово.
15. Выбор наборов пакетов
Шаг 11. Перезагрузка
В новом инсталляторе вы не найдете индикатора хода прогресса: установка производилась, пока вы были заняты другими делами, например, вводом пароля администратора, выбором дополнительных пакетов. По сути, когда вы выбирали дополнительные пакеты, система уже была установлена! Вот вам и новый инсталлятор. Все, что остается – нажать кнопку Перезагрузить сейчас, а после перезагрузки – войти в систему, используя указанные при установке учетные данные.
16. Нажмите Перезагрузить сейчас
17. Вход в систему выполнен
Что дальше? Дальше нужно установить и настроить программное обеспечение, исходя из поставленных перед будущим сервером задач. Например, для начала можно установить webmin – популярную панель управления сервером, затем установить Apache, PHP и MySQL, чтобы превратить наш убунту в web сервер. О том, как создать web сервер, было рассказано в нашей статье «Установка и настройка веб-сервера».
Как в Ubuntu войти как root-пользователь
По умолчанию в операционной системе Ubuntu учетная запись root не включена во время установки, соответственно далее пользователю не предлагается создать пароль root. Вместо этого создаётся обычная учетную запись пользователя, но с привилегиями sudo. То есть, для выполнения каких-либо команд с правами рута, необходимо запускать их вместе с командой sudo. Это не всегда удобно! Сейчас я расскажу как зайти под Root в Ubuntu или дать пользователю права рута. Существует несколько вариантов и мы рассмотрим каждый из них!
Примечание: Перед тем, как включить пользователя root в Убунту, Вы должны понимать всю опасность этого для неопытного пользователя. Выполняя команды от его имени, Вы можете легко и просто, буквально за несколько команд, привести операционную систему в нерабочее состояние.
Даём root-права пользователю
Первый и самый простой вариант позволяет не вводить постоянно команду sudo при каждом вводе команды, которую надо выполнить в привилегированном режиме. Для перехода в полный режим рута введите такую команду:
После этого Вы перейдёте в привилегированный режим суперпользователя Убунту.
Есть и второй вариант:
В этом случае домашний каталог не сменится на /root, а останется пользовательский. Как правило, этот вариант удобнее.
Как включить рута в Ubuntu
Вы всегда можете включить корневую учетную запись root в Ubuntu, задав ей пароль с помощью команды passwd. Но чтобы запустить команду passwd для учетной записи root, вам нужны права sudo.
Мы можем включить корневую учетную запись Ubuntu, задав ей пароль с помощью команды passwd. Но чтобы запустить команду passwd для учетной записи root, вам нужны права sudo.
Откройте терминал Ubuntu и выполните команду, чтобы убедиться, что вы являетесь членом группы администраторов:
Если у вас есть соответствующие права, то вы можете установить пароль root с помощью следующей команды:
Сначала система запросит ввод Вашего собственного пароля, чтобы подтвердить, что у вас есть права sudo.
После этого, команда passwd предложит вам ввести новый пароль для учетной записи root. Это делается дважды. Теперь вы можете войти в систему как пользователь root с помощью команды:
Далее последует запрос запроса пароля — введите пароль для root.
Как зайти под root в Ubuntu Desktop GUI
Если вы хотите зайти в систему как пользователь root не в консоли, а на графическом рабочем столе Ubuntu, тогда вам нужно выполнить несколько дополнительных шагов после включения пользователя root:
Откройте фаил /etc/gdm3/custom.conf . Здесь Вам надо будет добавить AllowRoot = true в блоке [security]. Вот так:
Затем откройте файл /etc/pam.d/gdm-password и найдите такую строку:
Закомментируйте её, поставив знак # перед ней:
Далее перезагрузите компьютер. Когда он перезапустится и появится экрану входа в систему — кликните на ссылку «Нет в списке?». Остаётся лишь ввести root в поле username и указать пароль для суперпользователя. Вот и всё!
Ubuntu и права администратора: утрата и обретение
Давеча, занимаясь настройкой виртуальных машин Ubuntu в VirtualBox’е, я с удивлением обнаружил, что в этом дистрибутиве нет простого способа включить пользователя в какую-либо дополнительную группу. Точнее, такого способа не предусмотрено ни в Параметрах системы, ни в Ubity Tweek Tool. В штатных настройках можно только поменять язык, пароль и включить автоматический вход в систему:
А в полуштатном твикере я вообще не нашёл ничего, имеющего отношение к управлению пользователями и группами.
Конечно, это не большая беда, поскольку в любой Linux-системе имеется специальная утилита usermod , которая, в том числе, позволяет и изменить групповую принадлежность пользователя — как сменить его основную группу (если это зачем-то потребовалось), так и приписать его к произвольному количеству групп дополнительных. Делается это так:
В результате, плюс к членству в группах, в которых пользователь оказался при создании его аккаунта, он окажется записанным… нет, не членом, и даже не карандашом, а в перечисленные через запятую (без пробелов) группы.
Так вот, понадобилось мне включить себя, любимого, в гостевой Ubuntu в группу vboxsf для доступа к каталогу на хост-машине. Вот тут-то и таилась погибель моя, ибо, дав команду
я совсем забыл про опцию -a , в результате чего был с позором изгнан из всех групп, в которых состоял ранее (кроме указанной в качестве значения опции -G ). В том числе и из группы собственной первичной группы. А что ещё печальней — из группы adm , которая является важнейшей для первого пользователя в системе. Так как именно она даёт право получать административные привилегии по команде sudo . И в результате я потерял возможность простым способом вернуть всё взад.
Однако справиться с этой незадачей не так сложно. Теоретически для этого надо при перезагрузке системы, сразу по выходе из BIOS’а, быстро-быстро нажать Escape, дабы получить доступ к меню GRUB’а, выбрать там дополнительные опции загрузки, а в них — пункт recovery mode:
Правда, в русифицированных Ubuntu 15.04 и 15.10 картина после этого будет несколько сюрреалистической. Впрочем, опознать в этой китайской грамоте пункт со словом root, написанным латиницей, труда не составит:
После чего мы, без всякого пароля и прочей индентификации, оказываемся в командной строке шелла с правами администратора. Где для начала надо перемонтировать корневую файловую систему в режим записи (по умолчанию она смонтирована только для чтения):
И дать уже правильные команды для определения своей групповой принадлежности, сначала основной:
К слову сказать, именно таким образом можно и просто поменять свою первичную группы, например, на users , для единообразия с большинством других дистрибутивов Linux — это может иметь смысл при наличии на машине (реальной) нескольких систем, из которых необходим доступ к одним и тем же данным. Хотя это и не обязательно — данная задача решается и иными способами.
А теперь повторить команду, аккуратно перечислив все нужные группы (нглавное, не забыв шарманку группу adm и опцию -a ):
Теперь командой exit можно вернуться в меню recovery mode и выбрать в нём пункт первый, содержащий волшебное слово resume:
Это приведёт к продолжению нормальной загрузки и появлению окна авторизации:
Именно таким способом нужно действовать в условиях реальности. В виртуальной же машине более простым способом может оказаться подключение установочного диска Ubuntu (или почти любого другого Live-образа) в качестве виртуального оптического привода с выбором при загрузке пункта Try Ubuntu. После чего монтируется (в файловом менеджере) корневая файловая система виртуальной машины и даётся команда смены корня:
Сам UUID можно подсмотреть в каталоге /media/ubuntu/ или определить непосредственно:
А теперь остаётся только дать приведённую выше последовательность команд usermod и перезагрузиться обычным образом. Не забыв, разумеется, предварительно отсоединив виртуальный Live-носитель.
1 комментарий к “ Ubuntu и права администратора: утрата и обретение ”
Вспоминается ситуация с mint и русской раскладкой. Если при установки не обдумав выбрать русский язык, то залогиниться в систему после установки будет невозможно т.к. на стартовом экране(и всех tty) будет только русская раскладка. Но это еще под беды, зайти в recovery mode тоже не удастся т.к. пользователь root по умолчанию не создан, а под имеющимися mint пускать отказывается(init=/bin/sh кстати не подумал загрузить, может и прокатило-бы). Остается только грузиться с livecd и вручную править /etc/defaults/keyboard, что еще более символично после успешного логина система начинает брюзжать, что кто-то трогал конфиги.
Установка и настройка SSH на сервере с Ubuntu
В этой статье мы создадим виртуальную машину с Ubuntu 18.04 LTS 64-bit и выполним настройки для безопасного взаимодействия с сервером.
SSH (Secure Shell) — протокол с шифрованием для безопасного обмена данными между элементами ИТ-инфраструктуры. Чаще всего SSH используется для управления серверами с операционными системами семейства Linux и различным сетевым оборудованием.
Чтобы создать сервер, откроем панель управления Selectel и перейдем в меню Облачная платформа, затем выберем подходящий дата-центр и создадим нужный сервер.
В нашем примере используется виртуальный сервер с фиксированной конфигурацией в виде 1 ядра CPU, 1 Гб оперативной памяти, 10 Гб пространства на жестком диске и операционной системой Ubuntu 18.04 LTS 64-bit.
Далее нажимаем Создать и уже через несколько минут сервер готов к работе. Для удобства доступа к серверу, также был заказан плавающий внешний IP-адрес.
После успешного создания сервера, можно запускать консоль и настроить подключение по SSH. В Ubuntu за это отвечает утилита OpenSSH. В статье мы рассмотрим настройку доступа по ключам, настройку firewall, отключение аутентификации по паролю и проделаем некоторые другие вещи.
Как установить OpenSSH
OpenSSH — это бесплатный SSH-сервер, дающий возможность интерактивного управления сервером. Для установки SSH на сервер воспользуемся встроенным в Ubuntu пакетным менеджером apt:
В большинстве дистрибутивов OpenSSH-сервер уже присутствует в системе и его установка не требуется. В случае отсутствия OpenSSH, вышеуказанная команда выполнит установку.
Теперь добавим SSH-сервер в автозагрузку. При следующем запуске сервера, операционная система выполнит автоматический запуск SSH-сервера. Как и в случае с другими сервисами systemd позволяет управлять параметрами запуска, автозагрузки и рестарта демона OpenSSH. Включим автозапуск:
В результате получим:
Проверим работоспособность утилиты:
И убедимся, что всё корректно работает:
Как настроить SSH
Настройка SSH на Ubuntu необходима для улучшения защищенности системы. Например, можно отключить возможность входа от имени пользователя root или изменить порт подключения со стандартного 22 на произвольный. Лучше использовать порты из верхнего диапазона (50000-65000). Напомним, что в стеке протоколов TCP/IP доступно 65536 портов.
Настройка выполняется выполняется в конфигурационном файле. Перед его модификацией, создадим резервную копию.
Вот теперь можно менять порт. Все изменения конфигурации SSH выполняются в файле /etc/ssh/sshd_config. Откроем его на редактирование:
Раскомментируем строку Port 22 и изменим значение на 55555. Но мы должны вас предостеречь, боты прежде всего сканируют порты с одинаковыми цифрами, поэтому в промышленных средах лучше использовать номер порта с отличными друг от друга цифрами.
Далее нужно отключить возможность входа на сервер учетной записи суперпользователя (root) и добавить возможность входить через ключи. Для этого изменим значения параметров PermitRootLogin на no и PubkeyAuthentication на yes:
После этого следует перезагрузить демон SSH. Соединение при этом будет разорвано и подключиться можно будет через новый порт и пользовательскую учетную запись (она должны быть предварительно создана).
Переподключимся от обычной учетной записи и по другому порту:
После успешного подключения можно продолжать работу с сервером.
Как создать пару ключей RSA
Еще один способ аутентификации на сервере — пара ключей RSA: открытый и закрытый. Открытый хранится на сервере, к которому будет выполняться подключение, а закрытый на удаленном компьютере (или другом сервере) откуда выполняется подключение.
На схеме ниже иллюстрация безопасного обмена ключами между Алисой и Бобом. Злоумышленник Ева может читать сообщения, если они не зашифрованы. Здесь Алиса или Боб шифруют сообщение при помощи открытого ключа принимающей стороны, которая его дешифрует при помощи своего закрытого ключа.
Чтобы сгенерировать такую пару ключей, достаточно выполнить команду:
Команду нужно выполнять на своей рабочей станции от имени пользователя, который будет в дальнейшем подключаться к удаленному компьютеру. Путь к хранению ключей можно оставить по умолчанию:
Ключи созданы, можно переходить к следующему шагу — копированию открытого ключа на удаленный сервер. Предварительно убедитесь, что на том сервере создана учетная запись, от имени которой вы будете подключаться.
Как скопировать открытый ключ на сервер
Чтобы скопировать ключ на удаленный сервер, выполним следующую команду:
В этом примере 95.213.154.235 — это IP-адрес удаленного сервера. После ввода пароля, ключ копируется папку .ssh домашней директории пользователя.
Вывод обеих команд на скриншоте ниже.
Как пройти аутентификацию на сервере через созданный ключ
Сразу же после выполнения копирования, проверим доступ при помощи созданной пары ключей:
Если подключение по SSH будет успешным — все настройки были выполнены корректно.
Как выполнить отключение аутентификации по паролю
Для отключения возможности входа по паролю необходимо в файле /etc/ssh/sshd_config отредактировать значение PasswordAuthentication и присвоить no.
После изменения настроек перезагружаем службу SSH:
Теперь при попытке подключения пользователем, для которого не определена пара ключей, будет выдаваться ошибка подключения.
При этом подключение при помощи ключа будет успешным.
Отключение доступа паролю — верная стратегия повышения безопасности сервера. Особенно в публичных облаках. Однако, если ключ будет утерян, это станет серьезной проблемой. Поэтому важно его хранить в надежном месте или пользоваться специализированными инструментами, например, аппаратным устройством Yubikey.
Как настроить стандартный firewall
В Ubuntu есть встроенный фаервол Netfilter, который может управляться как непосредственно вызовом утилиты iptables с параметрами так и специальной утилитой UFW (Uncomplicated Firewall). Мы разберем оба варианта.
Iptables на нашем демо-стенде уже установлен, но если в вашем дистрибутиве его нет — можно воспользоваться пакетным менеджером apt:
При работе с iptables можно настроить три типа правил: INPUT — для входящих соединений, OUTPUT — для исходящих и forward для транзитных (используется для маршрутизаторов). Для сервера актуальны первые два.
При обработке пакетов возможно выполнение следующих действий: ACCEPT — разрешить прием пакета, DROP — удалить пакет, REJECT — отклонить пакет и отправил уведомление об отклонении отправителю, LOG — записать пакет в лог и QUEUE — отправить пакет приложению.
В iptables доступны следующие функции управления:
- A — добавить правило в цепочку;
- С — проверить все правила;
- D — удалить правило;
- I — вставить правило с нужным номером;
- L — вывести все правила в текущей цепочке;
- S — вывести все правила;
- F — очистить все правила;
- N — создать цепочку;
- X — удалить цепочку;
- P — установить действие по умолчанию.
Например, чтобы посмотреть настроенные правила можно выполнить команду
Теперь попробуем заблокировать все пакеты от узла 10.10.10.10:
При помощи комбинаций перечисленных выше опций можно настроить любую требуемую логику работы с сетевыми пакетами.
Если перечисленные выше опции показались сложными, можно упростить задачу настройки фаервола и воспользоваться утилитой ufw. Перед началом работы, установим ее при помощи пакетного менеджера apt:
После установки можно начинать работать с правилами. Разрешим все исходящие соединения и запретим все входящие:
В выводе увидим:
В примерах выше мы меняли порт для доступа по SSH на 55555. Создадим правило для доступа по этому порту:
В выводе получим:
Теперь включим сам фаервол.
Обратите внимание на предупреждение системы об отключении SSH-подключений, если вдруг вы забыли добавить соответствующее правило. Но мы его добавили, поэтому смело включаем фаервол.
После включения фаервола, проверим его настройки командой:
В выводе увидим:
Дополнительно можно настроить доступ с определенного IP-адреса (или диапазона адресов), на определенный порт.
При помощи правил UFW можно также применять правила к определенным сетевым интерфейсам сервера.
Как настройки подключения по SSH влияют на безопасность
В этом разделе разберем основные настройки для повышения уровня безопасности SSH. Все настройки выполняются в уже известном конфигурационном файле /etc/ssh/sshd_config.
Первая настройка — проверка соответствия DNS-имени IP-адресу клиента. За это отвечает параметр UseDNS.
Следующий шаг к безопасности — запрет пустых паролей. Задается в параметре PermitEmptyPasswords.
Дополнительно можно ограничить количество неудачных попыток подключения:
Еще один подход к ограничению несанкционированных подключений — задание пользователей и групп, которым разрешен доступ по SSH. Они перечисляются в параметрах AllowUsers и AllowGroups.
Дополнительно, можно задать время, в течении которого система ожидает от пользователя ввода пароля. По умолчанию это две минуты, но лучше уменьшить до 30 секунд.
Отключение пользователя при бездействии позволит предотвратить доступ злоумышленника, если пользователь вдруг отлучился от своего рабочего места. Значение задается в секундах
Мы перечислили основные параметры для повышения безопасности SSH-соединений, однако, можно выполнять и более тонкую настройку. Полный список команд можно найти в официальной документации.
Нельзя не упомянуть про эффективный инструмент борьбы с попытками аутентификации — утилите fail2ban. Это сервис, который читает лог безопасности и блокирует злоумышленников по IP. Штатно устанавливается при помощи apt:
После установки появляются два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Первый отвечает за настройки запуска fail2ban, а второй за настройки защиты конкретных сервисов.
Заключение
Мы рассказали об основных настройках протокола SSH, которые помогут уберечь Ubuntu-сервер от несанкционированного доступа. Особенно важно их использовать при расположении сервера в публичных облаках с публичным IP-адресом. На скриншоте ниже вы видите журнал безопасности системы, на которой мы проводили перечисленные в этой статье настройки. В нем видно, что попытки авторизаций под разными пользователями (root, system и другими) происходят регулярно.
Перечисленных в этой статье настроек достаточно для обеспечения базовой безопасности сервера и предотвращения его вовлечения в бот-сети.