Как установить и настроить Ansible на Ubuntu 18.04

1 февраля запускаем «Paranoid Rebirth» — курс по анонимности и безопасности от команды Кодебай

Настройка Брандмауэра (netfilter) для SSH и тырем порт

По умолчанию для SSH соединения, используется порт ТСP-порт 22. Забегая перед следует сказать, что многие рекомендует его поменять, но я так не думаю. Смена порта не поможет, «любой» сканер без труда отыщет ваш порт куда вы его не запрятали. Способ смены порта хорошо известен и Хакеры пишут соответствующие скрипты. Ниже будут приведены меры безопасности, прочитав их вы можете решить стоит ли менять порт или нет. Чтобы узнать какой порт слушает демон (sshd) на сервере, нужно выполнить команду:

$ sudo grep -w ‘Port’ /etc/ssh/sshd_config #Port 22

Применив директиву Port поменяв значение, вы укажете демону (sshd) порт который нужно слушать;

Port 8822

Теперь демон (sshd) будет слушать порт 8822, для подключения к серверу, нужно воспользоваться на клиентской машине командой:

$ ssh -p8822 [email protected]

Ключ ‘-p‘ указывает порт, вместо user пишем имя пользователя, 127.0.0.1 меняем на IP своего сервера.

C портами разобрались, теперь нужно настроить брандмауэр. Можно воспользоваться средствами TUI дистрибутива.

Внимание! Будьте внимательны и последовательны в ваших действиях ! Неправильные действия могут привести к потере удалённого доступа.

Для Red-Hat based:

$ sudo yum install iptables system-config-securitylevel-tui $ sudo system-config-securitylevel-tui

Нужно открыть порты (SSH) ТСP-22, UDP-22 или соответственно открыть порт который указали в директиве Port

Для SuSE:

$ sudo yast

Заходим в /Безопасность и пользователи/ Брандмауэр / Разрешённые службы — добавляем «Сервер Secure Shell», если вы указали порт директивой Port то / Брандмауэр / Разрешенные службы /Дополнительно и добавляем порт TCP и UDP .

Для «ручной настройки» следует внимательно ознакомиться с правилами iptables и настройкой брандмауэра вашего дистрибутива.

Приведу пример открытия портов простыми правилами:

iptables -A INPUT -p tcp —dport 22 -j ACCEPT iptables -A OUTPUT -p udp —sport 22 -j ACCEPT

Внимание ! Следует понимать, что к примеру SuSEfirewall2 генерирует правила для iptables из конфигурационного файла /etc/sysconfig/SuSEfirewall2, в каждом дистрибутиве есть свои особенности управления брандмауэром.

Установка SSH в Ubuntu

Поскольку протокол SSH клиент для его управления является общепринятым стандартом, установить его можно при помощи короткой команды в терминале Ubuntu. для этого запустите сам терминал, нажав комбинацию кнопок на клавиатуре Ctrl + Alt + T, после чего примените команду sudo apt-get install ssh. После подготовки к скачиванию утилита запросит, хотите ли вы продолжить. переключите клавиатуру на русский язык и нажмите Д. На вашем компьютере с Ubuntu установка ssh будет завершена уже через пару секунд. Если вы желаете активировать автоматический запуск при включении системы, используйте для этого команду sudo systemctl enable sshd. соответственно, если потом вы пожелаете убрать службу из автоматического запуска, вам понадобится команда sudo systemctl disable sshd.

Читайте также:  Установка и настройка LXC под Ubuntu 18.04

Теперь можно проверить, как всё работает. Этого достаточно попробовать подключиться к локальному SSH server: ssh localhost. Утилита обязательно запросит пароль суперпользователя, а также предложит добавить введённый адрес в список разрешённых. Если у вас всё работает, как положено, вы увидите небольшое сообщение, заканчивающиеся уведомление о дате последнего подключения к адресу.

Теперь можно подключаться к любому компьютеру в сети, если вы знаете его IP-адрес и имя пользователя. для этого в терминале вам нужно ввести команду следующего формата:

Установка SSH в Ubuntu

ssh имя_пользователя@ip_адрес

Например, если вы хотите подсоединиться к компьютеру Васи Пупкина с адресом , то команда будет выглядеть следующим образом:

ssh [email protected]

Установка

Обновите локальную базу пакетов:

sudo apt update

Для начала установите пакет software-properties-common, который позволяет легко управлять дистрибутивами и источниками программного обеспечения от независимых поставщиков:

sudo apt install software-properties-common

С помощью этого инструмента можно управлять персональными архивами пакетов (PPA), которые позволяют распространять собственные пакеты и утилиты без лишних сложностей.

Затем добавьте репозиторий Ansible PPA с помощью следующей команды:

sudo apt-add-repository ppa:ansible/ansible

В процессе присоединения потребуется нажать клавишу Enter.

Еще раз обновите базу пакетов и выполните установку Ansible:

sudo apt update sudo apt install ansible

Теперь на виртуальном сервере установлено программное обеспечение Ansible, необходимое для администрирования ваших хостов.

Установка OpenSSH в Debian

В Debian OpenSSH представлен несколькими пакетами:

gw ~ # aptitude search openssh … i openssh-client — клиент протокола SSH, для защищённого удалённого доступа i openssh-server — серверная часть протокола SSH, для защищённого удалённого доступа

основные — это openssh-server и openssh-client. При этом, последний чаще всего устанавливается вместе с системой. Итак, чтобы установить ssh сервер в Debian Squeeze, достаточно выполнить команду:

Во время выполнения установки будут автоматически сгенерированы необходимые ключи шифрования (RSA и DSA), демон sshd будет добавлен в автозагрузку и запущен. На этом по большому счету, можно считать сервер SSH вполне работоспособным. Но настройки по умолчанию, не совсем корректны и безопасны.

Читайте также:  планировщик в Linux и запуск по расписанию команд и приложений

OpenSSH в реализации Debian содержит следующие компоненты/команды:

ssh (/usr/bin/ssh)

Собственно, клиент ssh.

scp (/usr/bin/scp)

Клиент для удаленного копирования файлов по протоколу SSH.

sftp (/usr/bin/sftp)

FTP-подобный SSH клиент.

sshd (/usr/sbin/sshd)

Демон, собственно предоставляющий защищённый доступ к ресурсам.

Установка OpenSSH в Debian

sftp-server ( /usr/lib/openssh/sftp-server)

Отдельная реализация подсистемы SFTP (серверная часть). Обладает бОльшими возможностями, чем встроенная в sshd.

ssh-keygen (/usr/bin/ssh-keygen)

Генератор пар ключей.

ssh-keysign (/usr/lib/openssh/ssh-keysign)

Утилита для проверки ключей хостов. Задействуется при использовании аутентификации по хостам (аналогично rsh) вместо проводимой по умолчанию аутентификации по пользователям/паролям.

ssh-keyscan (/usr/bin/ssh-keyscan)

Вспомогательная утилита. Позволяет за считанные секунды собрать публичные ключи с других хостов.

ssh-agent (/usr/bin/ssh-agent)

Вспомогательная утилита. Поддерживает кэш закрытых ключей. Кэширование позволяет избегать частого ввода пароля для расшифровки ключей перед их использованием.

ssh-add (/usr/bin/ssh-add)

Вспомогательная утилита. Добавляет ключи в кэш ssh-agent.

Установка SSH-сервера на Ubuntu LTS

В основном, SSH реализован в виде двух приложений — SSH-сервера и SSH-клиента. В Ubuntu используется свободная реализация клиента и сервера SSH — OpenSSH. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. OpenSSH сервер может работать как с протоколом ssh1, так и с протоколом ssh2. Протокол ssh1 считается небезопасным, поэтому его использование не рекомендуется.

При установке SSH-сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд:

Разрешить или запретить запуск службы при загрузке системы:

Проверить, что служба работает:

А после этого попробуем добавить обратно:

Но это легко исправить, обратившись по имени:

Собственно, теперь уже можно подключаться по ssh:

При первом подключении будет выдано предупреждение, что подлинность хоста, к которому мы подключаемся, не может быть установлена:

После нашего согласия все-таки подключиться ( yes ), ключ хоста будет добавлен в файл

Настройки безопасности клиента OpenSSH

Доступно множество клиентов SSH, поэтому рассказать о каждом из них в одной статье невозможно. Остановимся подробнее на инструменте клиента OpenSSH.

Конфигурация клиента

Клиент OpenSSH можно настроить тремя способами. Они обрабатываются по порядку и проверяются для каждого доступного параметра конфигурации. Выбирается первый подходящий.

  1. Настройки задаются через командную строку;
  2. Через файл конфигурации в домашней директории (~/.ssh/config);
  3. Через файл конфигурации для всех пользователей (/etc/ssh/ssh_config).
Читайте также:  ТОП-10 лучших программ для рисования на ПК или планшете

Допустим, есть настройка А. Она задана для всей системы (3 способ) со значением «True». Пользователь michael установил для нее значение «False» (2 способ). В этом случае второе значение в приоритете, т.к. оно рассматривается перед настройками всей системы.

Просмотр активных настроек

Помните, как мы просматривали настройки для сервера (sshd -T)? У клиента есть похожий инструмент.

ssh -G abc

Здесь abc является произвольным именем хоста. Или, возможно, не совсем произвольным. Можно использовать что угодно, включая реальное имя хоста. Клиент может использовать блоки Host и Match для настройки конфигурации группы систем или отдельной системы. Если хоста abc не существует, будут рассматриваться настройки по умолчанию.

Настройки SSH для отдельной системы

Допустим, есть система secureserver. Вместо того, чтобы работать на порте 22, она принимает соединения по SSH на порте 2222. Вместо применения -p в командной строке можно добавить блок Host в файл конфигурации. Для этого необходимо в каталоге .ssh домашней директории создать файл config (/home/username/.ssh/config).

Затем создадим блок и определим нужные настройки.

Host secureserver Hostname User mynickname Port 2222 MACs hmac-sha2-512 KexAlgorithms [email protected]

Отступы необязательны, но рекомендуются, чтобы отличать, какие настройки к какому хосту относятся.

Какие же настройки следует определять в файле конфигурации клиента?

Рекомендуем использовать те, которые облегчат вам ежедневную работу. Если вы отдаете предпочтение безопасности, задайте надежные настройки по умолчанию. Если какой-то хост использует другой SSH-порт, создайте блок Host и переопределите его настройки нужным образом. Что касается KexAlgorithms, используйте более новые доступные алгоритмы. Это сильно зависит от версии OpenSSH на серверах. Если на сервере используется новая версия OpenSSH, то хорошо подойдет curve25519. Это высокоскоростной алгоритм на основе эллиптических кривых, который на данный момент считается безопасным.

Что такое SSH?

SSH или Secure Shell — это протокол безопасного доступа из одного компьютера к другому по сети. У протокола SSH очень много возможностей. Вы можете создавать защищенные соединения между компьютерами, открывать командную строку на удаленном компьютере, запускать графические программы, передавать файлы и организовывать частные сети.

За поддержку протокола SSH в Linux отвечает набор программного обеспечения OpenSSH. Это открытая реализация этого протокола, которая предоставляет все необходимые возможности. В состав пакета OpenSSH входят утилиты для установки соединения, передачи файлов, а также сам ssh сервер.